@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,35 @@
1
+ import { type ConfigEngine, type Fetch, type OAuthTokens } from './common.ts';
2
+ export declare const ASANA_MCP_CREDENTIAL_KEY = "asana_mcp_access_token";
3
+ export declare const ASANA_OAUTH_STATE_KEY = "asana_oauth";
4
+ export declare const ASANA_OAUTH_PORT = 18981;
5
+ export type AsanaTokens = OAuthTokens;
6
+ export declare function buildAsanaAuthUrl(opts: {
7
+ clientId: string;
8
+ state: string;
9
+ challenge: string;
10
+ }): string;
11
+ export declare function exchangeAsanaCode(opts: {
12
+ clientId: string;
13
+ clientSecret: string;
14
+ code: string;
15
+ verifier: string;
16
+ fetch?: Fetch;
17
+ }): Promise<AsanaTokens>;
18
+ export declare function refreshAsanaToken(opts: {
19
+ clientId: string;
20
+ clientSecret: string;
21
+ refreshToken: string;
22
+ fetch?: Fetch;
23
+ }): Promise<AsanaTokens>;
24
+ export declare function connectAsana(opts: {
25
+ clientId: string;
26
+ clientSecret: string;
27
+ openUrl: (url: string) => unknown;
28
+ fetch?: Fetch;
29
+ timeoutMs?: number;
30
+ }): Promise<AsanaTokens>;
31
+ export declare function resolveAsanaCredential(opts: {
32
+ engine: ConfigEngine;
33
+ agentId?: string;
34
+ fetch?: Fetch;
35
+ }): Promise<string | null>;
@@ -0,0 +1,71 @@
1
+ import { URLSearchParams } from 'url';
2
+ import defaultFetch from '#fetch';
3
+ import { runBrowserConnect } from "./browser-connect.js";
4
+ import { oauthRedirectUri, tokenRequest } from "./common.js";
5
+ import { resolveOAuthCredential } from "./resolve.js";
6
+ export const ASANA_MCP_CREDENTIAL_KEY = 'asana_mcp_access_token';
7
+ export const ASANA_OAUTH_STATE_KEY = 'asana_oauth';
8
+ export const ASANA_OAUTH_PORT = 18981;
9
+ const REDIRECT_URI = oauthRedirectUri(ASANA_OAUTH_PORT);
10
+ const AUTH_URL = 'https://app.asana.com/-/oauth_authorize';
11
+ const TOKEN_URL = 'https://app.asana.com/-/oauth_token';
12
+ const MCP_RESOURCE = 'https://mcp.asana.com/v2';
13
+ export function buildAsanaAuthUrl(opts) {
14
+ const params = new URLSearchParams({
15
+ response_type: 'code',
16
+ client_id: opts.clientId,
17
+ redirect_uri: REDIRECT_URI,
18
+ resource: MCP_RESOURCE,
19
+ state: opts.state,
20
+ code_challenge: opts.challenge,
21
+ code_challenge_method: 'S256'
22
+ });
23
+ return `${AUTH_URL}?${params.toString()}`;
24
+ }
25
+ export async function exchangeAsanaCode(opts) {
26
+ return tokenRequest(opts.fetch ?? defaultFetch, TOKEN_URL, new URLSearchParams({
27
+ grant_type: 'authorization_code',
28
+ code: opts.code,
29
+ redirect_uri: REDIRECT_URI,
30
+ client_id: opts.clientId,
31
+ client_secret: opts.clientSecret,
32
+ code_verifier: opts.verifier
33
+ }), 'Asana');
34
+ }
35
+ export async function refreshAsanaToken(opts) {
36
+ const tokens = await tokenRequest(opts.fetch ?? defaultFetch, TOKEN_URL, new URLSearchParams({
37
+ grant_type: 'refresh_token',
38
+ refresh_token: opts.refreshToken,
39
+ client_id: opts.clientId,
40
+ client_secret: opts.clientSecret
41
+ }), 'Asana');
42
+ return { ...tokens, refreshToken: tokens.refreshToken ?? opts.refreshToken };
43
+ }
44
+ export async function connectAsana(opts) {
45
+ return runBrowserConnect({
46
+ port: ASANA_OAUTH_PORT,
47
+ timeoutMs: opts.timeoutMs,
48
+ openUrl: opts.openUrl,
49
+ buildAuthUrl: ({ state, challenge }) => buildAsanaAuthUrl({ clientId: opts.clientId, state, challenge }),
50
+ exchange: ({ code, verifier }) => exchangeAsanaCode({
51
+ clientId: opts.clientId,
52
+ clientSecret: opts.clientSecret,
53
+ code,
54
+ verifier,
55
+ fetch: opts.fetch
56
+ })
57
+ });
58
+ }
59
+ export async function resolveAsanaCredential(opts) {
60
+ return resolveOAuthCredential({
61
+ ...opts,
62
+ credentialKey: ASANA_MCP_CREDENTIAL_KEY,
63
+ stateKey: ASANA_OAUTH_STATE_KEY,
64
+ requireClientSecret: true,
65
+ refresh: async ({ clientId, clientSecret, refreshToken, fetch }) => {
66
+ if (!clientSecret)
67
+ throw new Error('Asana refresh requires clientSecret');
68
+ return refreshAsanaToken({ clientId, clientSecret, refreshToken, fetch });
69
+ }
70
+ });
71
+ }
@@ -0,0 +1,22 @@
1
+ import { type OAuthTokens } from './common.ts';
2
+ export declare function waitForOAuthCallback(opts: {
3
+ port: number;
4
+ state: string;
5
+ timeoutMs?: number;
6
+ onListening?: () => void;
7
+ }): Promise<{
8
+ code: string;
9
+ }>;
10
+ export declare function runBrowserConnect(opts: {
11
+ port: number;
12
+ buildAuthUrl: (args: {
13
+ state: string;
14
+ challenge: string;
15
+ }) => string;
16
+ openUrl: (url: string) => unknown;
17
+ exchange: (args: {
18
+ code: string;
19
+ verifier: string;
20
+ }) => Promise<OAuthTokens>;
21
+ timeoutMs?: number;
22
+ }): Promise<OAuthTokens>;
@@ -0,0 +1,83 @@
1
+ import { randomBytes as defaultRandomBytes } from 'crypto';
2
+ import { createServer } from 'http';
3
+ import { URL } from 'url';
4
+ import { base64url, CALLBACK_PATH, createPkce, DEFAULT_TIMEOUT_MS } from "./common.js";
5
+ export function waitForOAuthCallback(opts) {
6
+ const { port, state, timeoutMs = DEFAULT_TIMEOUT_MS, onListening } = opts;
7
+ return new Promise((resolve, reject) => {
8
+ let settled = false;
9
+ const respond = (res, status, body = '', close = false) => {
10
+ const headers = { 'Content-Type': 'text/html; charset=utf-8' };
11
+ if (close)
12
+ headers.Connection = 'close';
13
+ res.writeHead(status, headers);
14
+ res.end(body);
15
+ };
16
+ const settle = (err, result, res) => {
17
+ if (settled)
18
+ return;
19
+ settled = true;
20
+ clearTimeout(timer);
21
+ const close = () => {
22
+ server.close();
23
+ server.closeAllConnections?.();
24
+ };
25
+ const socket = res?.socket;
26
+ if (socket)
27
+ socket.once('close', close);
28
+ else
29
+ close();
30
+ if (err)
31
+ reject(err);
32
+ else
33
+ resolve(result);
34
+ };
35
+ const server = createServer((req, res) => {
36
+ const url = new URL(req.url ?? '/', `http://127.0.0.1:${port}`);
37
+ if (url.pathname !== CALLBACK_PATH)
38
+ return respond(res, 404, 'Not found');
39
+ if (url.searchParams.get('state') !== state)
40
+ return respond(res, 204);
41
+ const error = url.searchParams.get('error');
42
+ const code = url.searchParams.get('code');
43
+ if (error) {
44
+ respond(res, 200, '<html><body><p>Authorization failed. You can close this tab.</p></body></html>', true);
45
+ settle(new Error(`OAuth error: ${error}`), undefined, res);
46
+ }
47
+ else if (code) {
48
+ respond(res, 200, '<html><body><p>You can close this tab.</p></body></html>', true);
49
+ settle(null, { code }, res);
50
+ }
51
+ else {
52
+ respond(res, 204);
53
+ }
54
+ });
55
+ const timer = setTimeout(() => settle(new Error('OAuth callback timed out')), timeoutMs);
56
+ server.once('error', (err) => settle(err));
57
+ server.listen(port, '127.0.0.1', () => onListening?.());
58
+ });
59
+ }
60
+ export async function runBrowserConnect(opts) {
61
+ const { verifier, challenge } = createPkce();
62
+ const state = base64url(defaultRandomBytes(16));
63
+ let onListening;
64
+ const listening = new Promise((resolve) => {
65
+ onListening = resolve;
66
+ });
67
+ const callback = waitForOAuthCallback({
68
+ port: opts.port,
69
+ state,
70
+ timeoutMs: opts.timeoutMs,
71
+ onListening: () => onListening()
72
+ });
73
+ try {
74
+ await Promise.race([listening, callback]);
75
+ await opts.openUrl(opts.buildAuthUrl({ state, challenge }));
76
+ }
77
+ catch (err) {
78
+ callback.catch(() => { });
79
+ throw err;
80
+ }
81
+ const { code } = await callback;
82
+ return opts.exchange({ code, verifier });
83
+ }
@@ -0,0 +1,9 @@
1
+ import { type OAuthRuntimeFlowDeps } from './flow-core.ts';
2
+ import { isTokenExpired } from './token-exchange-core.ts';
3
+ import type { OAuthProviderConfig, OAuthRuntime, OAuthTokens } from './types.ts';
4
+ export type OAuthClient = {
5
+ readonly runOAuthFlow: (config: OAuthProviderConfig, deps: OAuthRuntimeFlowDeps) => Promise<OAuthTokens>;
6
+ readonly refreshOAuthTokens: (config: OAuthProviderConfig, refreshToken: string) => Promise<OAuthTokens>;
7
+ };
8
+ export declare function createOAuthClient(runtime: OAuthRuntime): OAuthClient;
9
+ export { isTokenExpired };
@@ -0,0 +1,9 @@
1
+ import { runOAuthFlowWithRuntime } from "./flow-core.js";
2
+ import { isTokenExpired, refreshOAuthTokensWithFetch } from "./token-exchange-core.js";
3
+ export function createOAuthClient(runtime) {
4
+ return {
5
+ runOAuthFlow: (config, deps) => runOAuthFlowWithRuntime(config, deps, runtime),
6
+ refreshOAuthTokens: (config, refreshToken) => refreshOAuthTokensWithFetch(config, refreshToken, runtime.fetch)
7
+ };
8
+ }
9
+ export { isTokenExpired };
@@ -0,0 +1,38 @@
1
+ import { Buffer } from 'buffer';
2
+ export declare const CALLBACK_PATH = "/callback";
3
+ export declare const DEFAULT_TIMEOUT_MS = 120000;
4
+ export declare const REFRESH_SKEW_MS = 60000;
5
+ export type FetchResponse = {
6
+ ok: boolean;
7
+ status: number;
8
+ text(): Promise<string>;
9
+ json(): Promise<unknown>;
10
+ };
11
+ export type Fetch = (url: string, init?: object) => Promise<FetchResponse>;
12
+ export type RandomBytes = (size: number) => Buffer | Uint8Array;
13
+ export type OAuthTokens = {
14
+ accessToken: string;
15
+ refreshToken?: string;
16
+ expiresAt?: number;
17
+ scope?: string;
18
+ };
19
+ export type ConfigEngine = {
20
+ configGet(req: {
21
+ key: string;
22
+ }): Promise<{
23
+ value?: unknown;
24
+ }>;
25
+ configSet(req: {
26
+ key: string;
27
+ value: string;
28
+ }): Promise<unknown>;
29
+ };
30
+ export declare function base64url(bytes: Buffer | Uint8Array): string;
31
+ export declare function createPkce(randomBytes?: RandomBytes): {
32
+ verifier: string;
33
+ challenge: string;
34
+ method: "S256";
35
+ };
36
+ export declare function scopedKey(agentId: string | undefined, key: string): string;
37
+ export declare function oauthRedirectUri(port: number): string;
38
+ export declare function tokenRequest(fetchImpl: Fetch, tokenUrl: string, body: URLSearchParams, label: string): Promise<OAuthTokens>;
@@ -0,0 +1,36 @@
1
+ import { Buffer } from 'buffer';
2
+ import { createHash, randomBytes as defaultRandomBytes } from 'crypto';
3
+ export const CALLBACK_PATH = '/callback';
4
+ export const DEFAULT_TIMEOUT_MS = 120_000;
5
+ export const REFRESH_SKEW_MS = 60_000;
6
+ export function base64url(bytes) {
7
+ return Buffer.from(bytes).toString('base64url');
8
+ }
9
+ export function createPkce(randomBytes = defaultRandomBytes) {
10
+ const verifier = base64url(randomBytes(32));
11
+ const challenge = base64url(createHash('sha256').update(verifier).digest());
12
+ return { verifier, challenge, method: 'S256' };
13
+ }
14
+ export function scopedKey(agentId, key) {
15
+ return agentId ? `skills.${agentId}.${key}` : `skills.${key}`;
16
+ }
17
+ export function oauthRedirectUri(port) {
18
+ return `http://127.0.0.1:${port}${CALLBACK_PATH}`;
19
+ }
20
+ export async function tokenRequest(fetchImpl, tokenUrl, body, label) {
21
+ const response = await fetchImpl(tokenUrl, {
22
+ method: 'POST',
23
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded', Accept: 'application/json' },
24
+ body: body.toString()
25
+ });
26
+ if (!response.ok) {
27
+ const text = await response.text().catch(() => '');
28
+ throw new Error(`${label} token request failed (${response.status}): ${text.slice(0, 256)}`);
29
+ }
30
+ const raw = (await response.json());
31
+ return {
32
+ accessToken: raw.access_token,
33
+ refreshToken: raw.refresh_token,
34
+ expiresAt: raw.expires_in ? Date.now() + raw.expires_in * 1000 : undefined
35
+ };
36
+ }
@@ -0,0 +1,3 @@
1
+ export declare function bytesToBase64Url(bytes: Uint8Array): string;
2
+ export declare function randomBase64Url(size: number): string;
3
+ export declare function sha256Base64Url(value: string): string;
@@ -0,0 +1,25 @@
1
+ import { createHash, randomBytes } from 'crypto';
2
+ const BASE64URL = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_';
3
+ export function bytesToBase64Url(bytes) {
4
+ let output = '';
5
+ for (let index = 0; index < bytes.length; index += 3) {
6
+ const first = bytes[index] ?? 0;
7
+ const second = bytes[index + 1] ?? 0;
8
+ const third = bytes[index + 2] ?? 0;
9
+ output += BASE64URL[first >> 2];
10
+ output += BASE64URL[((first & 0x03) << 4) | (second >> 4)];
11
+ if (index + 1 < bytes.length) {
12
+ output += BASE64URL[((second & 0x0f) << 2) | (third >> 6)];
13
+ }
14
+ if (index + 2 < bytes.length) {
15
+ output += BASE64URL[third & 0x3f];
16
+ }
17
+ }
18
+ return output;
19
+ }
20
+ export function randomBase64Url(size) {
21
+ return bytesToBase64Url(randomBytes(size));
22
+ }
23
+ export function sha256Base64Url(value) {
24
+ return createHash('sha256').update(value).digest('base64url');
25
+ }
@@ -0,0 +1 @@
1
+ export { default } from '#fetch';
@@ -0,0 +1 @@
1
+ export { default } from '#fetch';
@@ -0,0 +1,6 @@
1
+ import type { OAuthRedirectFactory } from './redirect-types.ts';
2
+ import type { OAuthFlowDeps, OAuthProviderConfig, OAuthRuntime, OAuthTokens } from './types.ts';
3
+ export type OAuthRuntimeFlowDeps = OAuthFlowDeps & {
4
+ readonly createRedirect: OAuthRedirectFactory;
5
+ };
6
+ export declare function runOAuthFlowWithRuntime(config: OAuthProviderConfig, deps: OAuthRuntimeFlowDeps, runtime: OAuthRuntime): Promise<OAuthTokens>;
@@ -0,0 +1,37 @@
1
+ import { generateRuntimePkceChallenge } from "./pkce-runtime.js";
2
+ import { resolveDynamicClientId } from "./register.js";
3
+ import { exchangeCodeWithFetch } from "./token-exchange-core.js";
4
+ function buildAuthParams(config, clientId, redirectUri, state, pkce) {
5
+ const params = new URLSearchParams({
6
+ ...(config.extraAuthParams ?? {}),
7
+ client_id: clientId,
8
+ redirect_uri: redirectUri,
9
+ response_type: 'code',
10
+ state,
11
+ code_challenge: pkce.challenge,
12
+ code_challenge_method: 'S256'
13
+ });
14
+ if (config.scopes.length > 0)
15
+ params.set('scope', config.scopes.join(' '));
16
+ return params;
17
+ }
18
+ export async function runOAuthFlowWithRuntime(config, deps, runtime) {
19
+ const openUrl = deps.openUrl ??
20
+ (() => Promise.reject(new Error('OAuth browser launcher is unavailable; inject openUrl or createRedirect')));
21
+ const redirect = await deps.createRedirect({ port: config.port }, { openUrl });
22
+ try {
23
+ const clientId = config.dynamicRegistration && !config.clientId
24
+ ? await resolveDynamicClientId(config, redirect.redirectUri, deps, runtime.fetch)
25
+ : config.clientId;
26
+ const pkce = await generateRuntimePkceChallenge(runtime);
27
+ const state = runtime.randomBase64Url(16);
28
+ const authParams = buildAuthParams(config, clientId, redirect.redirectUri, state, pkce);
29
+ const callback = await redirect.authorize(`${config.authUrl}?${authParams.toString()}`, deps.timeoutMs, state);
30
+ if (callback.state !== state)
31
+ throw new Error('OAuth state mismatch (possible CSRF)');
32
+ return exchangeCodeWithFetch(config, clientId, redirect.redirectUri, callback.code, pkce.verifier, deps, runtime.fetch);
33
+ }
34
+ finally {
35
+ redirect.close();
36
+ }
37
+ }
@@ -0,0 +1,3 @@
1
+ import type { OAuthFlowDeps, OAuthProvider, OAuthProviderConfig, OAuthTokens } from './types.ts';
2
+ export declare function cancelOAuthFlow(provider: OAuthProvider): Promise<boolean>;
3
+ export declare function runOAuthFlow(config: OAuthProviderConfig, deps?: OAuthFlowDeps): Promise<OAuthTokens>;
@@ -0,0 +1,24 @@
1
+ import { abortOAuthLoopback, startOAuthLoopback } from '#oauth-loopback';
2
+ import { randomBase64Url, sha256Base64Url } from '@qvac/core/oauth/runtime/crypto';
3
+ import defaultFetch from '@qvac/core/oauth/runtime/fetch';
4
+ import { runOAuthFlowWithRuntime } from "./flow-core.js";
5
+ import { OAUTH_PROVIDER_PORTS } from "./keys.js";
6
+ export function cancelOAuthFlow(provider) {
7
+ return abortOAuthLoopback(OAUTH_PROVIDER_PORTS[provider]);
8
+ }
9
+ const loopbackRedirect = async (target, deps) => {
10
+ const loopback = await startOAuthLoopback(target.port);
11
+ return {
12
+ redirectUri: loopback.redirectUri,
13
+ async authorize(authUrl, timeoutMs, expectedState) {
14
+ const callback = loopback.waitForCode(timeoutMs, expectedState);
15
+ callback.catch(() => undefined);
16
+ await deps.openUrl(authUrl);
17
+ return callback;
18
+ },
19
+ close: () => loopback.close()
20
+ };
21
+ };
22
+ export function runOAuthFlow(config, deps = {}) {
23
+ return runOAuthFlowWithRuntime(config, { ...deps, createRedirect: deps.createRedirect ?? loopbackRedirect }, { fetch: defaultFetch, randomBase64Url, sha256Base64Url });
24
+ }
@@ -0,0 +1,37 @@
1
+ import { type ConfigEngine, type Fetch, type OAuthTokens } from './common.ts';
2
+ export declare const GOOGLE_OAUTH_PORT: number;
3
+ export type GoogleTokens = OAuthTokens;
4
+ export declare function buildGoogleAuthUrl(opts: {
5
+ clientId: string;
6
+ state: string;
7
+ challenge: string;
8
+ credentialKey: string;
9
+ }): string;
10
+ export declare function exchangeGoogleCode(opts: {
11
+ clientId: string;
12
+ clientSecret: string;
13
+ code: string;
14
+ verifier: string;
15
+ fetch?: Fetch;
16
+ }): Promise<GoogleTokens>;
17
+ export declare function refreshGoogleToken(opts: {
18
+ clientId: string;
19
+ clientSecret: string;
20
+ refreshToken: string;
21
+ fetch?: Fetch;
22
+ }): Promise<GoogleTokens>;
23
+ export declare function connectGoogle(opts: {
24
+ clientId: string;
25
+ clientSecret: string;
26
+ credentialKey: string;
27
+ openUrl: (url: string) => unknown;
28
+ fetch?: Fetch;
29
+ timeoutMs?: number;
30
+ }): Promise<GoogleTokens>;
31
+ export declare function resolveGoogleCredential(opts: {
32
+ engine: ConfigEngine;
33
+ agentId?: string;
34
+ fetch?: Fetch;
35
+ credentialKey: string;
36
+ stateKey: string;
37
+ }): Promise<string | null>;
@@ -0,0 +1,77 @@
1
+ import { URLSearchParams } from 'url';
2
+ import defaultFetch from '#fetch';
3
+ import { runBrowserConnect } from "./browser-connect.js";
4
+ import { oauthRedirectUri, tokenRequest } from "./common.js";
5
+ import { OAUTH_PROVIDER_PORTS, oauthKeySpec } from "./keys.js";
6
+ import { resolveOAuthCredential } from "./resolve.js";
7
+ export const GOOGLE_OAUTH_PORT = OAUTH_PROVIDER_PORTS.google;
8
+ const REDIRECT_URI = oauthRedirectUri(GOOGLE_OAUTH_PORT);
9
+ const AUTH_URL = 'https://accounts.google.com/o/oauth2/v2/auth';
10
+ const TOKEN_URL = 'https://oauth2.googleapis.com/token';
11
+ function scopesFor(credentialKey) {
12
+ return oauthKeySpec(credentialKey)?.scopes ?? [];
13
+ }
14
+ export function buildGoogleAuthUrl(opts) {
15
+ const params = new URLSearchParams({
16
+ response_type: 'code',
17
+ client_id: opts.clientId,
18
+ redirect_uri: REDIRECT_URI,
19
+ scope: scopesFor(opts.credentialKey).join(' '),
20
+ state: opts.state,
21
+ code_challenge: opts.challenge,
22
+ code_challenge_method: 'S256',
23
+ access_type: 'offline',
24
+ prompt: 'consent'
25
+ });
26
+ return `${AUTH_URL}?${params.toString()}`;
27
+ }
28
+ export async function exchangeGoogleCode(opts) {
29
+ return tokenRequest(opts.fetch ?? defaultFetch, TOKEN_URL, new URLSearchParams({
30
+ grant_type: 'authorization_code',
31
+ code: opts.code,
32
+ redirect_uri: REDIRECT_URI,
33
+ client_id: opts.clientId,
34
+ client_secret: opts.clientSecret,
35
+ code_verifier: opts.verifier
36
+ }), 'Google');
37
+ }
38
+ export async function refreshGoogleToken(opts) {
39
+ const tokens = await tokenRequest(opts.fetch ?? defaultFetch, TOKEN_URL, new URLSearchParams({
40
+ grant_type: 'refresh_token',
41
+ refresh_token: opts.refreshToken,
42
+ client_id: opts.clientId,
43
+ client_secret: opts.clientSecret
44
+ }), 'Google');
45
+ return { ...tokens, refreshToken: tokens.refreshToken ?? opts.refreshToken };
46
+ }
47
+ export async function connectGoogle(opts) {
48
+ return runBrowserConnect({
49
+ port: GOOGLE_OAUTH_PORT,
50
+ timeoutMs: opts.timeoutMs,
51
+ openUrl: opts.openUrl,
52
+ buildAuthUrl: ({ state, challenge }) => buildGoogleAuthUrl({
53
+ clientId: opts.clientId,
54
+ state,
55
+ challenge,
56
+ credentialKey: opts.credentialKey
57
+ }),
58
+ exchange: ({ code, verifier }) => exchangeGoogleCode({
59
+ clientId: opts.clientId,
60
+ clientSecret: opts.clientSecret,
61
+ code,
62
+ verifier,
63
+ fetch: opts.fetch
64
+ })
65
+ });
66
+ }
67
+ export async function resolveGoogleCredential(opts) {
68
+ return resolveOAuthCredential({
69
+ ...opts,
70
+ requireClientSecret: true,
71
+ refresh: async ({ clientId, clientSecret, refreshToken, fetch }) => {
72
+ if (!clientSecret)
73
+ throw new Error('Google refresh requires clientSecret');
74
+ return refreshGoogleToken({ clientId, clientSecret, refreshToken, fetch });
75
+ }
76
+ });
77
+ }
@@ -0,0 +1,5 @@
1
+ export { buildProviderConfig, providerRequiresSecret, providerSupportsDcr, providerSupportsSharedIosSession } from './providers.ts';
2
+ export { isTokenExpired, refreshOAuthTokens } from './token-exchange.ts';
3
+ export { cancelOAuthFlow, runOAuthFlow } from './flow.ts';
4
+ export type { OAuthCredentials, OAuthFlowDeps, OAuthFlowResult, OAuthProvider, OAuthProviderConfig, OAuthTokens } from './types.ts';
5
+ export type { OAuthCallbackResult, OAuthRedirect, OAuthRedirectFactory } from './redirect-types.ts';
@@ -0,0 +1,3 @@
1
+ export { buildProviderConfig, providerRequiresSecret, providerSupportsDcr, providerSupportsSharedIosSession } from "./providers.js";
2
+ export { isTokenExpired, refreshOAuthTokens } from "./token-exchange.js";
3
+ export { cancelOAuthFlow, runOAuthFlow } from "./flow.js";
@@ -0,0 +1,25 @@
1
+ import type { OAuthProvider } from './types.ts';
2
+ export declare const GMAIL_CREDENTIAL_KEY = "gmail_access_token";
3
+ export declare const GOOGLE_CALENDAR_CREDENTIAL_KEY = "google_calendar_access_token";
4
+ export declare const GOOGLE_DOCS_CREDENTIAL_KEY = "google_docs_access_token";
5
+ export declare const GOOGLE_DRIVE_CREDENTIAL_KEY = "google_drive_access_token";
6
+ export declare const GOOGLE_SHEETS_CREDENTIAL_KEY = "google_sheets_access_token";
7
+ export declare const SPOTIFY_CREDENTIAL_KEY = "spotify_access_token";
8
+ export declare const ASANA_MCP_CREDENTIAL_KEY = "asana_mcp_access_token";
9
+ export declare const NOTION_MCP_CREDENTIAL_KEY = "notion_mcp_access_token";
10
+ export declare const LEGACY_GOOGLE_CREDENTIAL_KEY = "google_workspace_access_token";
11
+ export type OAuthKeySpec = {
12
+ readonly credentialKey: string;
13
+ readonly stateKey: string;
14
+ readonly provider: OAuthProvider;
15
+ readonly scopes: ReadonlyArray<string>;
16
+ };
17
+ export declare const OAUTH_KEY_SPECS: ReadonlyArray<OAuthKeySpec>;
18
+ export declare function oauthKeySpec(credentialKey: string): OAuthKeySpec | null;
19
+ export declare function oauthStateKeyFor(credentialKey: string): string | null;
20
+ export declare function defaultCredentialKeyFor(provider: OAuthProvider): string;
21
+ export declare const GOOGLE_CREDENTIAL_KEYS: ReadonlyArray<string>;
22
+ export declare const OAUTH_PROVIDER_PORTS: Readonly<Record<OAuthProvider, number>>;
23
+ export declare const OAUTH_CALLBACK_PATH = "/callback";
24
+ export declare const OAUTH_WAIT_FOR_CODE_TIMEOUT_MS = 120000;
25
+ export declare function oauthRedirectUri(port: number): string;