@nodetool-ai/runtime 0.7.0-rc.22 → 0.8.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 (665) hide show
  1. package/README.md +29 -0
  2. package/dist/.nodetool-build-stamp +1 -0
  3. package/dist/agent-memory.d.ts +118 -0
  4. package/dist/agent-memory.d.ts.map +1 -0
  5. package/dist/agent-memory.js +186 -0
  6. package/dist/agent-memory.js.map +1 -0
  7. package/dist/async-local-storage.d.ts +20 -0
  8. package/dist/async-local-storage.d.ts.map +1 -0
  9. package/dist/async-local-storage.js +28 -0
  10. package/dist/async-local-storage.js.map +1 -0
  11. package/dist/blender-executor.d.ts +93 -0
  12. package/dist/blender-executor.d.ts.map +1 -0
  13. package/dist/blender-executor.js +294 -0
  14. package/dist/blender-executor.js.map +1 -0
  15. package/dist/comfy-executor.d.ts +23 -1
  16. package/dist/comfy-executor.d.ts.map +1 -1
  17. package/dist/comfy-executor.js +234 -55
  18. package/dist/comfy-executor.js.map +1 -1
  19. package/dist/context-packer.d.ts +1 -1
  20. package/dist/context-packer.d.ts.map +1 -1
  21. package/dist/context-packer.js +23 -25
  22. package/dist/context-packer.js.map +1 -1
  23. package/dist/context.d.ts +954 -127
  24. package/dist/context.d.ts.map +1 -1
  25. package/dist/context.js +2424 -513
  26. package/dist/context.js.map +1 -1
  27. package/dist/cost-reconciler.d.ts +32 -0
  28. package/dist/cost-reconciler.d.ts.map +1 -0
  29. package/dist/cost-reconciler.js +21 -0
  30. package/dist/cost-reconciler.js.map +1 -0
  31. package/dist/entities.d.ts +33 -0
  32. package/dist/entities.d.ts.map +1 -0
  33. package/dist/entities.js +43 -0
  34. package/dist/entities.js.map +1 -0
  35. package/dist/external-media-fetch.d.ts +29 -0
  36. package/dist/external-media-fetch.d.ts.map +1 -0
  37. package/dist/external-media-fetch.js +38 -0
  38. package/dist/external-media-fetch.js.map +1 -0
  39. package/dist/generation-receipt.d.ts +86 -0
  40. package/dist/generation-receipt.d.ts.map +1 -0
  41. package/dist/generation-receipt.js +137 -0
  42. package/dist/generation-receipt.js.map +1 -0
  43. package/dist/generation-registry.d.ts +67 -0
  44. package/dist/generation-registry.d.ts.map +1 -0
  45. package/dist/generation-registry.js +126 -0
  46. package/dist/generation-registry.js.map +1 -0
  47. package/dist/google/client.d.ts +196 -0
  48. package/dist/google/client.d.ts.map +1 -0
  49. package/dist/google/client.js +396 -0
  50. package/dist/google/client.js.map +1 -0
  51. package/dist/google/index.d.ts +3 -0
  52. package/dist/google/index.d.ts.map +1 -0
  53. package/dist/google/index.js +3 -0
  54. package/dist/google/index.js.map +1 -0
  55. package/dist/google/token.d.ts +15 -0
  56. package/dist/google/token.d.ts.map +1 -0
  57. package/dist/google/token.js +24 -0
  58. package/dist/google/token.js.map +1 -0
  59. package/dist/host-binaries.d.ts +106 -0
  60. package/dist/host-binaries.d.ts.map +1 -0
  61. package/dist/host-binaries.js +344 -0
  62. package/dist/host-binaries.js.map +1 -0
  63. package/dist/image-codec.d.ts +74 -0
  64. package/dist/image-codec.d.ts.map +1 -0
  65. package/dist/image-codec.js +273 -0
  66. package/dist/image-codec.js.map +1 -0
  67. package/dist/index.d.ts +56 -6
  68. package/dist/index.d.ts.map +1 -1
  69. package/dist/index.js +43 -4
  70. package/dist/index.js.map +1 -1
  71. package/dist/invocation-account.d.ts +43 -0
  72. package/dist/invocation-account.d.ts.map +1 -0
  73. package/dist/invocation-account.js +60 -0
  74. package/dist/invocation-account.js.map +1 -0
  75. package/dist/media-ref-bytes.d.ts +19 -0
  76. package/dist/media-ref-bytes.d.ts.map +1 -0
  77. package/dist/media-ref-bytes.js +181 -0
  78. package/dist/media-ref-bytes.js.map +1 -0
  79. package/dist/node-executor.d.ts +113 -2
  80. package/dist/node-executor.d.ts.map +1 -1
  81. package/dist/permission-gate.d.ts +152 -0
  82. package/dist/permission-gate.d.ts.map +1 -0
  83. package/dist/permission-gate.js +87 -0
  84. package/dist/permission-gate.js.map +1 -0
  85. package/dist/prefixed-storage-adapter.d.ts +33 -0
  86. package/dist/prefixed-storage-adapter.d.ts.map +1 -0
  87. package/dist/prefixed-storage-adapter.js +70 -0
  88. package/dist/prefixed-storage-adapter.js.map +1 -0
  89. package/dist/prompt-asset-refs.d.ts +222 -0
  90. package/dist/prompt-asset-refs.d.ts.map +1 -0
  91. package/dist/prompt-asset-refs.js +751 -0
  92. package/dist/prompt-asset-refs.js.map +1 -0
  93. package/dist/provider-cache.d.ts +3 -0
  94. package/dist/provider-cache.d.ts.map +1 -0
  95. package/dist/provider-cache.js +8 -0
  96. package/dist/provider-cache.js.map +1 -0
  97. package/dist/providers/aki-provider.d.ts +33 -10
  98. package/dist/providers/aki-provider.d.ts.map +1 -1
  99. package/dist/providers/aki-provider.js +84 -77
  100. package/dist/providers/aki-provider.js.map +1 -1
  101. package/dist/providers/alibaba-provider.d.ts +39 -0
  102. package/dist/providers/alibaba-provider.d.ts.map +1 -0
  103. package/dist/providers/alibaba-provider.js +86 -0
  104. package/dist/providers/alibaba-provider.js.map +1 -0
  105. package/dist/providers/anthropic-provider.d.ts +52 -3
  106. package/dist/providers/anthropic-provider.d.ts.map +1 -1
  107. package/dist/providers/anthropic-provider.js +1020 -338
  108. package/dist/providers/anthropic-provider.js.map +1 -1
  109. package/dist/providers/atlascloud-provider.d.ts +101 -0
  110. package/dist/providers/atlascloud-provider.d.ts.map +1 -0
  111. package/dist/providers/atlascloud-provider.js +1009 -0
  112. package/dist/providers/atlascloud-provider.js.map +1 -0
  113. package/dist/providers/atlascloud-transport.d.ts +100 -0
  114. package/dist/providers/atlascloud-transport.d.ts.map +1 -0
  115. package/dist/providers/atlascloud-transport.js +364 -0
  116. package/dist/providers/atlascloud-transport.js.map +1 -0
  117. package/dist/providers/atlascloud-webhook-registry.d.ts +35 -0
  118. package/dist/providers/atlascloud-webhook-registry.d.ts.map +1 -0
  119. package/dist/providers/atlascloud-webhook-registry.js +104 -0
  120. package/dist/providers/atlascloud-webhook-registry.js.map +1 -0
  121. package/dist/providers/audio-mime.d.ts +11 -0
  122. package/dist/providers/audio-mime.d.ts.map +1 -0
  123. package/dist/providers/audio-mime.js +46 -0
  124. package/dist/providers/audio-mime.js.map +1 -0
  125. package/dist/providers/base-provider.d.ts +481 -24
  126. package/dist/providers/base-provider.d.ts.map +1 -1
  127. package/dist/providers/base-provider.js +1259 -42
  128. package/dist/providers/base-provider.js.map +1 -1
  129. package/dist/providers/cassette-provider.d.ts +217 -0
  130. package/dist/providers/cassette-provider.d.ts.map +1 -0
  131. package/dist/providers/cassette-provider.js +502 -0
  132. package/dist/providers/cassette-provider.js.map +1 -0
  133. package/dist/providers/cerebras-provider.d.ts +6 -12
  134. package/dist/providers/cerebras-provider.d.ts.map +1 -1
  135. package/dist/providers/cerebras-provider.js +8 -33
  136. package/dist/providers/cerebras-provider.js.map +1 -1
  137. package/dist/providers/claude-agent-provider.d.ts +131 -68
  138. package/dist/providers/claude-agent-provider.d.ts.map +1 -1
  139. package/dist/providers/claude-agent-provider.js +1095 -515
  140. package/dist/providers/claude-agent-provider.js.map +1 -1
  141. package/dist/providers/codex-provider.d.ts +82 -0
  142. package/dist/providers/codex-provider.d.ts.map +1 -0
  143. package/dist/providers/codex-provider.js +492 -0
  144. package/dist/providers/codex-provider.js.map +1 -0
  145. package/dist/providers/cohere-provider.d.ts +5 -2
  146. package/dist/providers/cohere-provider.d.ts.map +1 -1
  147. package/dist/providers/cohere-provider.js +9 -2
  148. package/dist/providers/cohere-provider.js.map +1 -1
  149. package/dist/providers/comfy-cloud-provider.d.ts +30 -0
  150. package/dist/providers/comfy-cloud-provider.d.ts.map +1 -0
  151. package/dist/providers/comfy-cloud-provider.js +42 -0
  152. package/dist/providers/comfy-cloud-provider.js.map +1 -0
  153. package/dist/providers/content-filter.d.ts +46 -0
  154. package/dist/providers/content-filter.d.ts.map +1 -0
  155. package/dist/providers/content-filter.js +92 -0
  156. package/dist/providers/content-filter.js.map +1 -0
  157. package/dist/providers/context-exceeded.d.ts +37 -0
  158. package/dist/providers/context-exceeded.d.ts.map +1 -0
  159. package/dist/providers/context-exceeded.js +114 -0
  160. package/dist/providers/context-exceeded.js.map +1 -0
  161. package/dist/providers/context-window.d.ts +44 -0
  162. package/dist/providers/context-window.d.ts.map +1 -0
  163. package/dist/providers/context-window.js +145 -0
  164. package/dist/providers/context-window.js.map +1 -0
  165. package/dist/providers/contract/index.d.ts +4 -0
  166. package/dist/providers/contract/index.d.ts.map +1 -0
  167. package/dist/providers/contract/index.js +4 -0
  168. package/dist/providers/contract/index.js.map +1 -0
  169. package/dist/providers/contract/probe-manifest.d.ts +75 -0
  170. package/dist/providers/contract/probe-manifest.d.ts.map +1 -0
  171. package/dist/providers/contract/probe-manifest.js +379 -0
  172. package/dist/providers/contract/probe-manifest.js.map +1 -0
  173. package/dist/providers/contract/probe-runner.d.ts +57 -0
  174. package/dist/providers/contract/probe-runner.d.ts.map +1 -0
  175. package/dist/providers/contract/probe-runner.js +180 -0
  176. package/dist/providers/contract/probe-runner.js.map +1 -0
  177. package/dist/providers/contract/redact.d.ts +29 -0
  178. package/dist/providers/contract/redact.d.ts.map +1 -0
  179. package/dist/providers/contract/redact.js +113 -0
  180. package/dist/providers/contract/redact.js.map +1 -0
  181. package/dist/providers/core-tools.d.ts +74 -0
  182. package/dist/providers/core-tools.d.ts.map +1 -0
  183. package/dist/providers/core-tools.js +127 -0
  184. package/dist/providers/core-tools.js.map +1 -0
  185. package/dist/providers/cost-calculator.d.ts +69 -50
  186. package/dist/providers/cost-calculator.d.ts.map +1 -1
  187. package/dist/providers/cost-calculator.js +207 -397
  188. package/dist/providers/cost-calculator.js.map +1 -1
  189. package/dist/providers/credential-check.d.ts +45 -0
  190. package/dist/providers/credential-check.d.ts.map +1 -0
  191. package/dist/providers/credential-check.js +159 -0
  192. package/dist/providers/credential-check.js.map +1 -0
  193. package/dist/providers/custom-model-kinds.d.ts +33 -0
  194. package/dist/providers/custom-model-kinds.d.ts.map +1 -0
  195. package/dist/providers/custom-model-kinds.js +96 -0
  196. package/dist/providers/custom-model-kinds.js.map +1 -0
  197. package/dist/providers/custom-openai-provider.d.ts +81 -0
  198. package/dist/providers/custom-openai-provider.d.ts.map +1 -0
  199. package/dist/providers/custom-openai-provider.js +182 -0
  200. package/dist/providers/custom-openai-provider.js.map +1 -0
  201. package/dist/providers/custom-provider-registry.d.ts +19 -0
  202. package/dist/providers/custom-provider-registry.d.ts.map +1 -0
  203. package/dist/providers/custom-provider-registry.js +52 -0
  204. package/dist/providers/custom-provider-registry.js.map +1 -0
  205. package/dist/providers/deepseek-provider.d.ts +8 -14
  206. package/dist/providers/deepseek-provider.d.ts.map +1 -1
  207. package/dist/providers/deepseek-provider.js +6 -35
  208. package/dist/providers/deepseek-provider.js.map +1 -1
  209. package/dist/providers/defaults.d.ts +12 -0
  210. package/dist/providers/defaults.d.ts.map +1 -0
  211. package/dist/providers/defaults.js +12 -0
  212. package/dist/providers/defaults.js.map +1 -0
  213. package/dist/providers/elevenlabs-provider.d.ts +49 -0
  214. package/dist/providers/elevenlabs-provider.d.ts.map +1 -0
  215. package/dist/providers/elevenlabs-provider.js +142 -0
  216. package/dist/providers/elevenlabs-provider.js.map +1 -0
  217. package/dist/providers/entity-references.d.ts +31 -0
  218. package/dist/providers/entity-references.d.ts.map +1 -0
  219. package/dist/providers/entity-references.js +113 -0
  220. package/dist/providers/entity-references.js.map +1 -0
  221. package/dist/providers/evolink-provider.d.ts +38 -0
  222. package/dist/providers/evolink-provider.d.ts.map +1 -0
  223. package/dist/providers/evolink-provider.js +304 -0
  224. package/dist/providers/evolink-provider.js.map +1 -0
  225. package/dist/providers/fake-provider.d.ts +72 -1
  226. package/dist/providers/fake-provider.d.ts.map +1 -1
  227. package/dist/providers/fake-provider.js +203 -1
  228. package/dist/providers/fake-provider.js.map +1 -1
  229. package/dist/providers/fal-generations.d.ts +106 -0
  230. package/dist/providers/fal-generations.d.ts.map +1 -0
  231. package/dist/providers/fal-generations.js +286 -0
  232. package/dist/providers/fal-generations.js.map +1 -0
  233. package/dist/providers/fal-provider.d.ts +171 -7
  234. package/dist/providers/fal-provider.d.ts.map +1 -1
  235. package/dist/providers/fal-provider.js +1369 -64
  236. package/dist/providers/fal-provider.js.map +1 -1
  237. package/dist/providers/fal-queue.d.ts +47 -0
  238. package/dist/providers/fal-queue.d.ts.map +1 -0
  239. package/dist/providers/fal-queue.js +231 -0
  240. package/dist/providers/fal-queue.js.map +1 -0
  241. package/dist/providers/gemini-provider.d.ts +148 -8
  242. package/dist/providers/gemini-provider.d.ts.map +1 -1
  243. package/dist/providers/gemini-provider.js +1500 -316
  244. package/dist/providers/gemini-provider.js.map +1 -1
  245. package/dist/providers/gmi-provider.d.ts +21 -0
  246. package/dist/providers/gmi-provider.d.ts.map +1 -0
  247. package/dist/providers/gmi-provider.js +34 -0
  248. package/dist/providers/gmi-provider.js.map +1 -0
  249. package/dist/providers/gpt-image-size.d.ts +3 -0
  250. package/dist/providers/gpt-image-size.d.ts.map +1 -0
  251. package/dist/providers/gpt-image-size.js +37 -0
  252. package/dist/providers/gpt-image-size.js.map +1 -0
  253. package/dist/providers/groq-provider.d.ts +9 -12
  254. package/dist/providers/groq-provider.d.ts.map +1 -1
  255. package/dist/providers/groq-provider.js +19 -33
  256. package/dist/providers/groq-provider.js.map +1 -1
  257. package/dist/providers/groq-request.d.ts +38 -0
  258. package/dist/providers/groq-request.d.ts.map +1 -0
  259. package/dist/providers/groq-request.js +138 -0
  260. package/dist/providers/groq-request.js.map +1 -0
  261. package/dist/providers/higgsfield-provider.d.ts +30 -0
  262. package/dist/providers/higgsfield-provider.d.ts.map +1 -0
  263. package/dist/providers/higgsfield-provider.js +131 -0
  264. package/dist/providers/higgsfield-provider.js.map +1 -0
  265. package/dist/providers/higgsfield-transport.d.ts +106 -0
  266. package/dist/providers/higgsfield-transport.d.ts.map +1 -0
  267. package/dist/providers/higgsfield-transport.js +182 -0
  268. package/dist/providers/higgsfield-transport.js.map +1 -0
  269. package/dist/providers/http-transport.d.ts +74 -0
  270. package/dist/providers/http-transport.d.ts.map +1 -0
  271. package/dist/providers/http-transport.js +152 -0
  272. package/dist/providers/http-transport.js.map +1 -0
  273. package/dist/providers/huggingface-provider.d.ts +71 -3
  274. package/dist/providers/huggingface-provider.d.ts.map +1 -1
  275. package/dist/providers/huggingface-provider.js +230 -34
  276. package/dist/providers/huggingface-provider.js.map +1 -1
  277. package/dist/providers/image-mime.d.ts +39 -0
  278. package/dist/providers/image-mime.d.ts.map +1 -0
  279. package/dist/providers/image-mime.js +111 -0
  280. package/dist/providers/image-mime.js.map +1 -0
  281. package/dist/providers/image-ref.d.ts +21 -0
  282. package/dist/providers/image-ref.d.ts.map +1 -0
  283. package/dist/providers/image-ref.js +44 -0
  284. package/dist/providers/image-ref.js.map +1 -0
  285. package/dist/providers/index.d.ts +84 -8
  286. package/dist/providers/index.d.ts.map +1 -1
  287. package/dist/providers/index.js +239 -56
  288. package/dist/providers/index.js.map +1 -1
  289. package/dist/providers/jina-provider.d.ts +10 -2
  290. package/dist/providers/jina-provider.d.ts.map +1 -1
  291. package/dist/providers/jina-provider.js +16 -7
  292. package/dist/providers/jina-provider.js.map +1 -1
  293. package/dist/providers/kie-provider.d.ts +170 -9
  294. package/dist/providers/kie-provider.d.ts.map +1 -1
  295. package/dist/providers/kie-provider.js +1176 -228
  296. package/dist/providers/kie-provider.js.map +1 -1
  297. package/dist/providers/kie-webhook-registry.d.ts +28 -0
  298. package/dist/providers/kie-webhook-registry.d.ts.map +1 -0
  299. package/dist/providers/kie-webhook-registry.js +91 -0
  300. package/dist/providers/kie-webhook-registry.js.map +1 -0
  301. package/dist/providers/llama-provider.d.ts +21 -37
  302. package/dist/providers/llama-provider.d.ts.map +1 -1
  303. package/dist/providers/llama-provider.js +43 -354
  304. package/dist/providers/llama-provider.js.map +1 -1
  305. package/dist/providers/lmstudio-provider.d.ts +4 -7
  306. package/dist/providers/lmstudio-provider.d.ts.map +1 -1
  307. package/dist/providers/lmstudio-provider.js +24 -15
  308. package/dist/providers/lmstudio-provider.js.map +1 -1
  309. package/dist/providers/manifest-models.d.ts +341 -1
  310. package/dist/providers/manifest-models.d.ts.map +1 -1
  311. package/dist/providers/manifest-models.js +1106 -22
  312. package/dist/providers/manifest-models.js.map +1 -1
  313. package/dist/providers/media-mime.d.ts +14 -0
  314. package/dist/providers/media-mime.d.ts.map +1 -0
  315. package/dist/providers/media-mime.js +35 -0
  316. package/dist/providers/media-mime.js.map +1 -0
  317. package/dist/providers/meshy-provider.d.ts +14 -1
  318. package/dist/providers/meshy-provider.d.ts.map +1 -1
  319. package/dist/providers/meshy-provider.js +76 -46
  320. package/dist/providers/meshy-provider.js.map +1 -1
  321. package/dist/providers/meta-provider.d.ts +22 -0
  322. package/dist/providers/meta-provider.d.ts.map +1 -0
  323. package/dist/providers/meta-provider.js +54 -0
  324. package/dist/providers/meta-provider.js.map +1 -0
  325. package/dist/providers/minimax-provider.d.ts +25 -18
  326. package/dist/providers/minimax-provider.d.ts.map +1 -1
  327. package/dist/providers/minimax-provider.js +211 -72
  328. package/dist/providers/minimax-provider.js.map +1 -1
  329. package/dist/providers/mistral-provider.d.ts +6 -12
  330. package/dist/providers/mistral-provider.d.ts.map +1 -1
  331. package/dist/providers/mistral-provider.js +10 -34
  332. package/dist/providers/mistral-provider.js.map +1 -1
  333. package/dist/providers/moonshot-provider.d.ts +11 -15
  334. package/dist/providers/moonshot-provider.d.ts.map +1 -1
  335. package/dist/providers/moonshot-provider.js +33 -23
  336. package/dist/providers/moonshot-provider.js.map +1 -1
  337. package/dist/providers/node-llama-cpp-provider.d.ts +98 -0
  338. package/dist/providers/node-llama-cpp-provider.d.ts.map +1 -0
  339. package/dist/providers/node-llama-cpp-provider.js +479 -0
  340. package/dist/providers/node-llama-cpp-provider.js.map +1 -0
  341. package/dist/providers/nodetool-provider.d.ts +49 -0
  342. package/dist/providers/nodetool-provider.d.ts.map +1 -0
  343. package/dist/providers/nodetool-provider.js +224 -0
  344. package/dist/providers/nodetool-provider.js.map +1 -0
  345. package/dist/providers/oauth/browser-launcher.d.ts +23 -0
  346. package/dist/providers/oauth/browser-launcher.d.ts.map +1 -0
  347. package/dist/providers/oauth/browser-launcher.js +45 -0
  348. package/dist/providers/oauth/browser-launcher.js.map +1 -0
  349. package/dist/providers/oauth/claude-code-credentials.d.ts +74 -0
  350. package/dist/providers/oauth/claude-code-credentials.d.ts.map +1 -0
  351. package/dist/providers/oauth/claude-code-credentials.js +133 -0
  352. package/dist/providers/oauth/claude-code-credentials.js.map +1 -0
  353. package/dist/providers/oauth/claude-code-login.d.ts +124 -0
  354. package/dist/providers/oauth/claude-code-login.d.ts.map +1 -0
  355. package/dist/providers/oauth/claude-code-login.js +230 -0
  356. package/dist/providers/oauth/claude-code-login.js.map +1 -0
  357. package/dist/providers/oauth/claude-code-oauth-client.d.ts +111 -0
  358. package/dist/providers/oauth/claude-code-oauth-client.d.ts.map +1 -0
  359. package/dist/providers/oauth/claude-code-oauth-client.js +207 -0
  360. package/dist/providers/oauth/claude-code-oauth-client.js.map +1 -0
  361. package/dist/providers/oauth/errors.d.ts +54 -0
  362. package/dist/providers/oauth/errors.d.ts.map +1 -0
  363. package/dist/providers/oauth/errors.js +79 -0
  364. package/dist/providers/oauth/errors.js.map +1 -0
  365. package/dist/providers/oauth/index.d.ts +105 -0
  366. package/dist/providers/oauth/index.d.ts.map +1 -0
  367. package/dist/providers/oauth/index.js +167 -0
  368. package/dist/providers/oauth/index.js.map +1 -0
  369. package/dist/providers/oauth/jwt-claims.d.ts +23 -0
  370. package/dist/providers/oauth/jwt-claims.d.ts.map +1 -0
  371. package/dist/providers/oauth/jwt-claims.js +67 -0
  372. package/dist/providers/oauth/jwt-claims.js.map +1 -0
  373. package/dist/providers/oauth/local-callback-server.d.ts +60 -0
  374. package/dist/providers/oauth/local-callback-server.d.ts.map +1 -0
  375. package/dist/providers/oauth/local-callback-server.js +148 -0
  376. package/dist/providers/oauth/local-callback-server.js.map +1 -0
  377. package/dist/providers/oauth/oauth-client.d.ts +55 -0
  378. package/dist/providers/oauth/oauth-client.d.ts.map +1 -0
  379. package/dist/providers/oauth/oauth-client.js +161 -0
  380. package/dist/providers/oauth/oauth-client.js.map +1 -0
  381. package/dist/providers/oauth/openai-oauth-provider.d.ts +129 -0
  382. package/dist/providers/oauth/openai-oauth-provider.d.ts.map +1 -0
  383. package/dist/providers/oauth/openai-oauth-provider.js +265 -0
  384. package/dist/providers/oauth/openai-oauth-provider.js.map +1 -0
  385. package/dist/providers/oauth/pkce-helper.d.ts +43 -0
  386. package/dist/providers/oauth/pkce-helper.d.ts.map +1 -0
  387. package/dist/providers/oauth/pkce-helper.js +57 -0
  388. package/dist/providers/oauth/pkce-helper.js.map +1 -0
  389. package/dist/providers/oauth/redaction.d.ts +22 -0
  390. package/dist/providers/oauth/redaction.d.ts.map +1 -0
  391. package/dist/providers/oauth/redaction.js +59 -0
  392. package/dist/providers/oauth/redaction.js.map +1 -0
  393. package/dist/providers/oauth/secure-credential-store.d.ts +67 -0
  394. package/dist/providers/oauth/secure-credential-store.d.ts.map +1 -0
  395. package/dist/providers/oauth/secure-credential-store.js +73 -0
  396. package/dist/providers/oauth/secure-credential-store.js.map +1 -0
  397. package/dist/providers/oauth/token-store.d.ts +53 -0
  398. package/dist/providers/oauth/token-store.d.ts.map +1 -0
  399. package/dist/providers/oauth/token-store.js +78 -0
  400. package/dist/providers/oauth/token-store.js.map +1 -0
  401. package/dist/providers/oauth/types.d.ts +64 -0
  402. package/dist/providers/oauth/types.d.ts.map +1 -0
  403. package/dist/providers/oauth/types.js +12 -0
  404. package/dist/providers/oauth/types.js.map +1 -0
  405. package/dist/providers/object-tracking.d.ts +47 -0
  406. package/dist/providers/object-tracking.d.ts.map +1 -0
  407. package/dist/providers/object-tracking.js +46 -0
  408. package/dist/providers/object-tracking.js.map +1 -0
  409. package/dist/providers/offline-model-index.d.ts +20 -0
  410. package/dist/providers/offline-model-index.d.ts.map +1 -0
  411. package/dist/providers/offline-model-index.js +112 -0
  412. package/dist/providers/offline-model-index.js.map +1 -0
  413. package/dist/providers/ollama-provider.d.ts +28 -1
  414. package/dist/providers/ollama-provider.d.ts.map +1 -1
  415. package/dist/providers/ollama-provider.js +193 -43
  416. package/dist/providers/ollama-provider.js.map +1 -1
  417. package/dist/providers/openai-compat/client.d.ts +57 -0
  418. package/dist/providers/openai-compat/client.d.ts.map +1 -0
  419. package/dist/providers/openai-compat/client.js +157 -0
  420. package/dist/providers/openai-compat/client.js.map +1 -0
  421. package/dist/providers/openai-compat/decode.d.ts +36 -0
  422. package/dist/providers/openai-compat/decode.d.ts.map +1 -0
  423. package/dist/providers/openai-compat/decode.js +55 -0
  424. package/dist/providers/openai-compat/decode.js.map +1 -0
  425. package/dist/providers/openai-compat/errors.d.ts +54 -0
  426. package/dist/providers/openai-compat/errors.d.ts.map +1 -0
  427. package/dist/providers/openai-compat/errors.js +144 -0
  428. package/dist/providers/openai-compat/errors.js.map +1 -0
  429. package/dist/providers/openai-compat/index.d.ts +8 -0
  430. package/dist/providers/openai-compat/index.d.ts.map +1 -0
  431. package/dist/providers/openai-compat/index.js +5 -0
  432. package/dist/providers/openai-compat/index.js.map +1 -0
  433. package/dist/providers/openai-compat/sse.d.ts +14 -0
  434. package/dist/providers/openai-compat/sse.d.ts.map +1 -0
  435. package/dist/providers/openai-compat/sse.js +69 -0
  436. package/dist/providers/openai-compat/sse.js.map +1 -0
  437. package/dist/providers/openai-compat/types.d.ts +75 -0
  438. package/dist/providers/openai-compat/types.d.ts.map +1 -0
  439. package/dist/providers/openai-compat/types.js +9 -0
  440. package/dist/providers/openai-compat/types.js.map +1 -0
  441. package/dist/providers/openai-compat-provider.d.ts +90 -0
  442. package/dist/providers/openai-compat-provider.d.ts.map +1 -0
  443. package/dist/providers/openai-compat-provider.js +282 -0
  444. package/dist/providers/openai-compat-provider.js.map +1 -0
  445. package/dist/providers/openai-provider.d.ts +89 -26
  446. package/dist/providers/openai-provider.d.ts.map +1 -1
  447. package/dist/providers/openai-provider.js +990 -105
  448. package/dist/providers/openai-provider.js.map +1 -1
  449. package/dist/providers/openrouter-provider.d.ts +6 -12
  450. package/dist/providers/openrouter-provider.d.ts.map +1 -1
  451. package/dist/providers/openrouter-provider.js +24 -53
  452. package/dist/providers/openrouter-provider.js.map +1 -1
  453. package/dist/providers/provider-call-failure.d.ts +39 -0
  454. package/dist/providers/provider-call-failure.d.ts.map +1 -0
  455. package/dist/providers/provider-call-failure.js +132 -0
  456. package/dist/providers/provider-call-failure.js.map +1 -0
  457. package/dist/providers/provider-error.d.ts +59 -0
  458. package/dist/providers/provider-error.d.ts.map +1 -0
  459. package/dist/providers/provider-error.js +165 -0
  460. package/dist/providers/provider-error.js.map +1 -0
  461. package/dist/providers/provider-generations.d.ts +99 -0
  462. package/dist/providers/provider-generations.d.ts.map +1 -0
  463. package/dist/providers/provider-generations.js +71 -0
  464. package/dist/providers/provider-generations.js.map +1 -0
  465. package/dist/providers/provider-queue.d.ts +62 -0
  466. package/dist/providers/provider-queue.d.ts.map +1 -0
  467. package/dist/providers/provider-queue.js +28 -0
  468. package/dist/providers/provider-queue.js.map +1 -0
  469. package/dist/providers/provider-registry.d.ts +33 -14
  470. package/dist/providers/provider-registry.d.ts.map +1 -1
  471. package/dist/providers/provider-registry.js +85 -68
  472. package/dist/providers/provider-registry.js.map +1 -1
  473. package/dist/providers/provider-request-log.d.ts +53 -0
  474. package/dist/providers/provider-request-log.d.ts.map +1 -0
  475. package/dist/providers/provider-request-log.js +157 -0
  476. package/dist/providers/provider-request-log.js.map +1 -0
  477. package/dist/providers/provider-session.d.ts +3 -0
  478. package/dist/providers/provider-session.d.ts.map +1 -0
  479. package/dist/providers/provider-session.js +10 -0
  480. package/dist/providers/provider-session.js.map +1 -0
  481. package/dist/providers/provider-transport.d.ts +11 -0
  482. package/dist/providers/provider-transport.d.ts.map +1 -0
  483. package/dist/providers/provider-transport.js +11 -0
  484. package/dist/providers/provider-transport.js.map +1 -0
  485. package/dist/providers/python-provider.d.ts +20 -12
  486. package/dist/providers/python-provider.d.ts.map +1 -1
  487. package/dist/providers/python-provider.js +185 -25
  488. package/dist/providers/python-provider.js.map +1 -1
  489. package/dist/providers/replicate-provider.d.ts +89 -7
  490. package/dist/providers/replicate-provider.d.ts.map +1 -1
  491. package/dist/providers/replicate-provider.js +801 -65
  492. package/dist/providers/replicate-provider.js.map +1 -1
  493. package/dist/providers/replicate-retry.d.ts +30 -0
  494. package/dist/providers/replicate-retry.d.ts.map +1 -0
  495. package/dist/providers/replicate-retry.js +97 -0
  496. package/dist/providers/replicate-retry.js.map +1 -0
  497. package/dist/providers/responses-api.d.ts +27 -0
  498. package/dist/providers/responses-api.d.ts.map +1 -0
  499. package/dist/providers/responses-api.js +297 -0
  500. package/dist/providers/responses-api.js.map +1 -0
  501. package/dist/providers/reve-provider.d.ts +45 -0
  502. package/dist/providers/reve-provider.d.ts.map +1 -0
  503. package/dist/providers/reve-provider.js +159 -0
  504. package/dist/providers/reve-provider.js.map +1 -0
  505. package/dist/providers/rodin-provider.d.ts +23 -1
  506. package/dist/providers/rodin-provider.d.ts.map +1 -1
  507. package/dist/providers/rodin-provider.js +89 -51
  508. package/dist/providers/rodin-provider.js.map +1 -1
  509. package/dist/providers/safe-url.d.ts +70 -0
  510. package/dist/providers/safe-url.d.ts.map +1 -0
  511. package/dist/providers/safe-url.js +277 -0
  512. package/dist/providers/safe-url.js.map +1 -0
  513. package/dist/providers/scripted-provider.d.ts +9 -0
  514. package/dist/providers/scripted-provider.d.ts.map +1 -1
  515. package/dist/providers/scripted-provider.js +86 -10
  516. package/dist/providers/scripted-provider.js.map +1 -1
  517. package/dist/providers/structured-output.d.ts +42 -0
  518. package/dist/providers/structured-output.d.ts.map +1 -0
  519. package/dist/providers/structured-output.js +83 -0
  520. package/dist/providers/structured-output.js.map +1 -0
  521. package/dist/providers/together-provider.d.ts +19 -16
  522. package/dist/providers/together-provider.d.ts.map +1 -1
  523. package/dist/providers/together-provider.js +103 -225
  524. package/dist/providers/together-provider.js.map +1 -1
  525. package/dist/providers/topaz-provider.d.ts +44 -0
  526. package/dist/providers/topaz-provider.d.ts.map +1 -0
  527. package/dist/providers/topaz-provider.js +239 -0
  528. package/dist/providers/topaz-provider.js.map +1 -0
  529. package/dist/providers/types.d.ts +603 -4
  530. package/dist/providers/types.d.ts.map +1 -1
  531. package/dist/providers/types.js +81 -1
  532. package/dist/providers/types.js.map +1 -1
  533. package/dist/providers/useapi-provider.d.ts +27 -0
  534. package/dist/providers/useapi-provider.d.ts.map +1 -0
  535. package/dist/providers/useapi-provider.js +266 -0
  536. package/dist/providers/useapi-provider.js.map +1 -0
  537. package/dist/providers/video-duration.d.ts +6 -0
  538. package/dist/providers/video-duration.d.ts.map +1 -0
  539. package/dist/providers/video-duration.js +63 -0
  540. package/dist/providers/video-duration.js.map +1 -0
  541. package/dist/providers/video-frame-fallback.d.ts +39 -0
  542. package/dist/providers/video-frame-fallback.d.ts.map +1 -0
  543. package/dist/providers/video-frame-fallback.js +155 -0
  544. package/dist/providers/video-frame-fallback.js.map +1 -0
  545. package/dist/providers/video-frames.d.ts +61 -0
  546. package/dist/providers/video-frames.d.ts.map +1 -0
  547. package/dist/providers/video-frames.js +208 -0
  548. package/dist/providers/video-frames.js.map +1 -0
  549. package/dist/providers/video-mime.d.ts +14 -0
  550. package/dist/providers/video-mime.d.ts.map +1 -0
  551. package/dist/providers/video-mime.js +44 -0
  552. package/dist/providers/video-mime.js.map +1 -0
  553. package/dist/providers/video-to-audio.d.ts +34 -0
  554. package/dist/providers/video-to-audio.d.ts.map +1 -0
  555. package/dist/providers/video-to-audio.js +62 -0
  556. package/dist/providers/video-to-audio.js.map +1 -0
  557. package/dist/providers/vllm-provider.d.ts +22 -8
  558. package/dist/providers/vllm-provider.d.ts.map +1 -1
  559. package/dist/providers/vllm-provider.js +48 -23
  560. package/dist/providers/vllm-provider.js.map +1 -1
  561. package/dist/providers/voyage-provider.d.ts +10 -2
  562. package/dist/providers/voyage-provider.d.ts.map +1 -1
  563. package/dist/providers/voyage-provider.js +16 -7
  564. package/dist/providers/voyage-provider.js.map +1 -1
  565. package/dist/providers/xai-provider.d.ts +54 -13
  566. package/dist/providers/xai-provider.d.ts.map +1 -1
  567. package/dist/providers/xai-provider.js +299 -22
  568. package/dist/providers/xai-provider.js.map +1 -1
  569. package/dist/python-bridge-base.d.ts +358 -0
  570. package/dist/python-bridge-base.d.ts.map +1 -0
  571. package/dist/python-bridge-base.js +1557 -0
  572. package/dist/python-bridge-base.js.map +1 -0
  573. package/dist/python-bridge-codec.d.ts +28 -0
  574. package/dist/python-bridge-codec.d.ts.map +1 -0
  575. package/dist/python-bridge-codec.js +39 -0
  576. package/dist/python-bridge-codec.js.map +1 -0
  577. package/dist/python-bridge-factory.d.ts +52 -0
  578. package/dist/python-bridge-factory.d.ts.map +1 -0
  579. package/dist/python-bridge-factory.js +69 -0
  580. package/dist/python-bridge-factory.js.map +1 -0
  581. package/dist/python-bridge-framing.d.ts +68 -0
  582. package/dist/python-bridge-framing.d.ts.map +1 -0
  583. package/dist/python-bridge-framing.js +91 -0
  584. package/dist/python-bridge-framing.js.map +1 -0
  585. package/dist/python-bridge-types.d.ts +545 -2
  586. package/dist/python-bridge-types.d.ts.map +1 -1
  587. package/dist/python-bridge-types.js +49 -1
  588. package/dist/python-bridge-types.js.map +1 -1
  589. package/dist/python-graph-resolver.d.ts +57 -0
  590. package/dist/python-graph-resolver.d.ts.map +1 -0
  591. package/dist/python-graph-resolver.js +79 -0
  592. package/dist/python-graph-resolver.js.map +1 -0
  593. package/dist/python-node-executor.d.ts +36 -4
  594. package/dist/python-node-executor.d.ts.map +1 -1
  595. package/dist/python-node-executor.js +177 -86
  596. package/dist/python-node-executor.js.map +1 -1
  597. package/dist/python-stdio-bridge.d.ts +18 -37
  598. package/dist/python-stdio-bridge.d.ts.map +1 -1
  599. package/dist/python-stdio-bridge.js +148 -475
  600. package/dist/python-stdio-bridge.js.map +1 -1
  601. package/dist/python-websocket-bridge.d.ts +140 -0
  602. package/dist/python-websocket-bridge.d.ts.map +1 -0
  603. package/dist/python-websocket-bridge.js +561 -0
  604. package/dist/python-websocket-bridge.js.map +1 -0
  605. package/dist/python-worker-stderr.d.ts +4 -0
  606. package/dist/python-worker-stderr.d.ts.map +1 -0
  607. package/dist/python-worker-stderr.js +24 -0
  608. package/dist/python-worker-stderr.js.map +1 -0
  609. package/dist/recommended-models.d.ts +2 -2
  610. package/dist/recommended-models.d.ts.map +1 -1
  611. package/dist/recommended-models.js +24 -4
  612. package/dist/recommended-models.js.map +1 -1
  613. package/dist/recoverable-node-error.d.ts +31 -0
  614. package/dist/recoverable-node-error.d.ts.map +1 -0
  615. package/dist/recoverable-node-error.js +37 -0
  616. package/dist/recoverable-node-error.js.map +1 -0
  617. package/dist/redact-params.d.ts +13 -0
  618. package/dist/redact-params.d.ts.map +1 -0
  619. package/dist/redact-params.js +57 -0
  620. package/dist/redact-params.js.map +1 -0
  621. package/dist/sandbox-module-catalog.d.ts +43 -0
  622. package/dist/sandbox-module-catalog.d.ts.map +1 -0
  623. package/dist/sandbox-module-catalog.js +25 -0
  624. package/dist/sandbox-module-catalog.js.map +1 -0
  625. package/dist/storage-workspace.d.ts +59 -0
  626. package/dist/storage-workspace.d.ts.map +1 -0
  627. package/dist/storage-workspace.js +426 -0
  628. package/dist/storage-workspace.js.map +1 -0
  629. package/dist/swappable-python-bridge.d.ts +83 -0
  630. package/dist/swappable-python-bridge.d.ts.map +1 -0
  631. package/dist/swappable-python-bridge.js +246 -0
  632. package/dist/swappable-python-bridge.js.map +1 -0
  633. package/dist/telemetry.d.ts +7 -0
  634. package/dist/telemetry.d.ts.map +1 -1
  635. package/dist/telemetry.js +23 -0
  636. package/dist/telemetry.js.map +1 -1
  637. package/dist/testing.d.ts +81 -0
  638. package/dist/testing.d.ts.map +1 -0
  639. package/dist/testing.js +130 -0
  640. package/dist/testing.js.map +1 -0
  641. package/dist/token-counter.d.ts +30 -0
  642. package/dist/token-counter.d.ts.map +1 -0
  643. package/dist/token-counter.js +156 -0
  644. package/dist/token-counter.js.map +1 -0
  645. package/dist/trace-exporters.d.ts +10 -0
  646. package/dist/trace-exporters.d.ts.map +1 -1
  647. package/dist/trace-exporters.js +59 -20
  648. package/dist/trace-exporters.js.map +1 -1
  649. package/dist/tracing-helpers.d.ts +45 -4
  650. package/dist/tracing-helpers.d.ts.map +1 -1
  651. package/dist/tracing-helpers.js +62 -19
  652. package/dist/tracing-helpers.js.map +1 -1
  653. package/dist/turn-budget.d.ts +278 -0
  654. package/dist/turn-budget.d.ts.map +1 -0
  655. package/dist/turn-budget.js +365 -0
  656. package/dist/turn-budget.js.map +1 -0
  657. package/dist/variable-channel.d.ts +48 -0
  658. package/dist/variable-channel.d.ts.map +1 -0
  659. package/dist/variable-channel.js +110 -0
  660. package/dist/variable-channel.js.map +1 -0
  661. package/dist/workspace.d.ts +119 -0
  662. package/dist/workspace.d.ts.map +1 -0
  663. package/dist/workspace.js +112 -0
  664. package/dist/workspace.js.map +1 -0
  665. package/package.json +107 -19
@@ -1,21 +1,68 @@
1
1
  import { createLogger } from "@nodetool-ai/config";
2
2
  import { BaseProvider } from "./base-provider.js";
3
+ import { isCallable, isNumber, isString } from "@nodetool-ai/protocol";
3
4
  const log = createLogger("nodetool.runtime.providers.huggingface");
4
- // ---------------------------------------------------------------------------
5
- // HF Inference SDK (lazy-loaded)
6
- // ---------------------------------------------------------------------------
5
+ /**
6
+ * Normalize a feature-extraction result into a list of embedding vectors.
7
+ * Sentence-transformer models return `number[]` (single) or `number[][]`
8
+ * (batch); token-level models may nest deeper, in which case we mean-pool the
9
+ * token axis so callers always get one vector per input.
10
+ */
11
+ function normalizeEmbedding(result) {
12
+ if (!Array.isArray(result) || result.length === 0)
13
+ return [];
14
+ if (isNumber(result[0])) {
15
+ return [result];
16
+ }
17
+ const rows = result;
18
+ if (Array.isArray(rows[0]) && isNumber(rows[0][0])) {
19
+ return rows;
20
+ }
21
+ // number[][][] — mean-pool the token dimension of each input.
22
+ return rows.map(meanPool);
23
+ }
24
+ function meanPool(tokens) {
25
+ if (tokens.length === 0)
26
+ return [];
27
+ const dim = tokens[0].length;
28
+ const out = new Array(dim).fill(0);
29
+ for (const token of tokens) {
30
+ for (let i = 0; i < dim; i++)
31
+ out[i] += token[i] ?? 0;
32
+ }
33
+ for (let i = 0; i < dim; i++)
34
+ out[i] /= tokens.length;
35
+ return out;
36
+ }
37
+ /** Coerce any binary-ish SDK result into a Uint8Array. */
38
+ async function toBytes(result) {
39
+ if (result instanceof Uint8Array)
40
+ return result;
41
+ if (result instanceof ArrayBuffer)
42
+ return new Uint8Array(result);
43
+ if (isCallable(result?.arrayBuffer)) {
44
+ return new Uint8Array(await result.arrayBuffer());
45
+ }
46
+ throw new Error("HuggingFace returned an unexpected binary result type");
47
+ }
7
48
  let _hfModule = null;
8
- async function getHfInference(apiKey) {
49
+ /** The message every path reports when the optional dependency is absent. */
50
+ const HF_MODULE_MISSING = "@huggingface/inference is required for HuggingFaceProvider. " +
51
+ "Install it with: npm install @huggingface/inference";
52
+ async function loadHfModule() {
9
53
  if (!_hfModule) {
10
54
  try {
11
55
  _hfModule = await Function('return import("@huggingface/inference")')();
12
56
  }
13
57
  catch {
14
- throw new Error("@huggingface/inference is required for HuggingFaceProvider. " +
15
- "Install it with: npm install @huggingface/inference");
58
+ throw new Error(HF_MODULE_MISSING);
16
59
  }
17
60
  }
18
- const HfInference = _hfModule.HfInference ?? _hfModule.default?.HfInference;
61
+ return _hfModule;
62
+ }
63
+ async function getHfInference(apiKey) {
64
+ const module = await loadHfModule();
65
+ const HfInference = module.HfInference ?? module.default?.HfInference;
19
66
  if (!HfInference) {
20
67
  throw new Error("Could not find HfInference class in @huggingface/inference");
21
68
  }
@@ -56,9 +103,7 @@ function hfModelName(id) {
56
103
  // "black-forest-labs/FLUX.1-schnell" → "FLUX.1 Schnell"
57
104
  const parts = id.split("/");
58
105
  const raw = parts[parts.length - 1];
59
- return raw
60
- .replace(/[-_]/g, " ")
61
- .replace(/\b\w/g, (c) => c.toUpperCase());
106
+ return raw.replace(/[-_]/g, " ").replace(/\b\w/g, (c) => c.toUpperCase());
62
107
  }
63
108
  async function getHfLanguageModels() {
64
109
  const entries = await fetchHfModels("text-generation");
@@ -94,8 +139,24 @@ async function getHfTTSModels() {
94
139
  provider: "huggingface"
95
140
  }));
96
141
  }
142
+ async function getHfASRModels() {
143
+ const entries = await fetchHfModels("automatic-speech-recognition");
144
+ return entries.map((m) => ({
145
+ id: m.id,
146
+ name: hfModelName(m.id),
147
+ provider: "huggingface"
148
+ }));
149
+ }
150
+ async function getHfEmbeddingModels() {
151
+ const entries = await fetchHfModels("feature-extraction");
152
+ return entries.map((m) => ({
153
+ id: m.id,
154
+ name: hfModelName(m.id),
155
+ provider: "huggingface"
156
+ }));
157
+ }
97
158
  function extractTextContent(content) {
98
- if (typeof content === "string")
159
+ if (isString(content))
99
160
  return content;
100
161
  if (!content)
101
162
  return "";
@@ -104,6 +165,24 @@ function extractTextContent(content) {
104
165
  .map((c) => c.text)
105
166
  .join("\n");
106
167
  }
168
+ /**
169
+ * The HF chat request body, with temperature and top_p omitted when the caller
170
+ * did not set them.
171
+ */
172
+ function chatPayload(args, messages) {
173
+ const payload = {
174
+ model: args.model,
175
+ messages,
176
+ max_tokens: args.maxTokens ?? 4096
177
+ };
178
+ if (args.temperature != null) {
179
+ payload.temperature = args.temperature;
180
+ }
181
+ if (args.topP != null) {
182
+ payload.top_p = args.topP;
183
+ }
184
+ return payload;
185
+ }
107
186
  export class HuggingFaceProvider extends BaseProvider {
108
187
  static requiredSecrets() {
109
188
  return ["HF_TOKEN"];
@@ -121,6 +200,22 @@ export class HuggingFaceProvider extends BaseProvider {
121
200
  this._hfClient = options.hfClient;
122
201
  }
123
202
  }
203
+ /**
204
+ * `@huggingface/inference` is an optional dependency, so a host can hold a
205
+ * valid HF_TOKEN and still be unable to run a single call. Report that here
206
+ * rather than at the first generation.
207
+ */
208
+ async unavailableReason() {
209
+ if (this._hfClient)
210
+ return null;
211
+ try {
212
+ await loadHfModule();
213
+ return null;
214
+ }
215
+ catch (e) {
216
+ return e instanceof Error ? e.message : String(e);
217
+ }
218
+ }
124
219
  get apiKey() {
125
220
  return this._apiKey;
126
221
  }
@@ -143,12 +238,10 @@ export class HuggingFaceProvider extends BaseProvider {
143
238
  content: extractTextContent(m.content)
144
239
  }));
145
240
  log.debug("HuggingFace chatCompletion", { model: args.model });
146
- const response = await client.chatCompletion({
147
- model: args.model,
148
- messages: hfMessages,
149
- max_tokens: args.maxTokens ?? 4096,
150
- ...(args.temperature != null ? { temperature: args.temperature } : {}),
151
- ...(args.topP != null ? { top_p: args.topP } : {})
241
+ const requestPayload = chatPayload(args, hfMessages);
242
+ this.recordRequestPayload(requestPayload);
243
+ const response = await client.chatCompletion(requestPayload, {
244
+ signal: args.signal
152
245
  });
153
246
  const choice = response?.choices?.[0];
154
247
  if (!choice) {
@@ -173,14 +266,22 @@ export class HuggingFaceProvider extends BaseProvider {
173
266
  content: extractTextContent(m.content)
174
267
  }));
175
268
  log.debug("HuggingFace chatCompletionStream", { model: args.model });
176
- const stream = client.chatCompletionStream({
177
- model: args.model,
178
- messages: hfMessages,
179
- max_tokens: args.maxTokens ?? 4096,
180
- ...(args.temperature != null ? { temperature: args.temperature } : {}),
181
- ...(args.topP != null ? { top_p: args.topP } : {})
269
+ const requestPayload = chatPayload(args, hfMessages);
270
+ this.recordRequestPayload(requestPayload);
271
+ const stream = client.chatCompletionStream(requestPayload, {
272
+ signal: args.signal
182
273
  });
183
274
  for await (const chunk of stream) {
275
+ // OpenAI-compatible streams (which the HF Inference SDK proxies) carry
276
+ // usage on the terminal chunk. Record it, otherwise every streamed HF
277
+ // call reports 0 tokens / $0 cost (the non-streaming path already tracks).
278
+ const usage = (chunk)?.usage;
279
+ if (usage) {
280
+ this.trackUsage(args.model, {
281
+ inputTokens: usage.prompt_tokens ?? 0,
282
+ outputTokens: usage.completion_tokens ?? 0
283
+ });
284
+ }
184
285
  const choice = chunk?.choices?.[0];
185
286
  if (!choice)
186
287
  continue;
@@ -193,6 +294,14 @@ export class HuggingFaceProvider extends BaseProvider {
193
294
  };
194
295
  yield item;
195
296
  }
297
+ // Emit a terminal `done: true` chunk for every non-"stop" terminal reason
298
+ // (length, eos_token, tool_calls, content_filter) too, so consumers that
299
+ // finalize on `done` get a consistent end-of-stream marker. "stop" already
300
+ // emitted its terminal chunk above.
301
+ if (choice.finish_reason && choice.finish_reason !== "stop") {
302
+ const doneChunk = { type: "chunk", content: "", done: true };
303
+ yield doneChunk;
304
+ }
196
305
  }
197
306
  }
198
307
  async textToImage(params) {
@@ -236,17 +345,92 @@ export class HuggingFaceProvider extends BaseProvider {
236
345
  };
237
346
  }
238
347
  const result = await client.textToImage(request);
239
- // Result can be a Blob or ArrayBuffer
240
- if (result instanceof Uint8Array) {
241
- return result;
348
+ return toBytes(result);
349
+ }
350
+ async imageToImage(images, params) {
351
+ const client = await this.getClient();
352
+ const image = images[0] ?? new Uint8Array();
353
+ log.debug("HuggingFace imageToImage", { model: params.model.id });
354
+ const parameters = {};
355
+ if (params.prompt)
356
+ parameters.prompt = params.prompt;
357
+ if (params.negativePrompt)
358
+ parameters.negative_prompt = params.negativePrompt;
359
+ if (params.guidanceScale != null)
360
+ parameters.guidance_scale = params.guidanceScale;
361
+ if (params.numInferenceSteps != null)
362
+ parameters.num_inference_steps = params.numInferenceSteps;
363
+ if (params.targetWidth && params.targetHeight) {
364
+ parameters.target_size = {
365
+ width: params.targetWidth,
366
+ height: params.targetHeight
367
+ };
242
368
  }
243
- if (result instanceof ArrayBuffer) {
244
- return new Uint8Array(result);
369
+ const request = {
370
+ model: params.model.id,
371
+ inputs: new Blob([new Uint8Array(image)])
372
+ };
373
+ if (Object.keys(parameters).length > 0) {
374
+ request.parameters = parameters;
245
375
  }
246
- if (typeof result?.arrayBuffer === "function") {
247
- return new Uint8Array(await result.arrayBuffer());
376
+ const result = await client.imageToImage(request);
377
+ return toBytes(result);
378
+ }
379
+ async textToVideo(params) {
380
+ if (!params.prompt) {
381
+ throw new Error("The input prompt cannot be empty.");
248
382
  }
249
- throw new Error("HuggingFace textToImage returned unexpected result type");
383
+ const client = await this.getClient();
384
+ log.debug("HuggingFace textToVideo", { model: params.model.id });
385
+ const parameters = {};
386
+ if (params.negativePrompt)
387
+ parameters.negative_prompt = params.negativePrompt;
388
+ if (params.numFrames != null)
389
+ parameters.num_frames = params.numFrames;
390
+ if (params.guidanceScale != null)
391
+ parameters.guidance_scale = params.guidanceScale;
392
+ if (params.numInferenceSteps != null)
393
+ parameters.num_inference_steps = params.numInferenceSteps;
394
+ if (params.seed != null)
395
+ parameters.seed = params.seed;
396
+ const request = {
397
+ model: params.model.id,
398
+ inputs: params.prompt
399
+ };
400
+ if (Object.keys(parameters).length > 0) {
401
+ request.parameters = parameters;
402
+ }
403
+ const result = await client.textToVideo(request);
404
+ return toBytes(result);
405
+ }
406
+ async automaticSpeechRecognition(args) {
407
+ const client = await this.getClient();
408
+ log.debug("HuggingFace automaticSpeechRecognition", { model: args.model });
409
+ const request = {
410
+ model: args.model,
411
+ data: new Blob([new Uint8Array(args.audio)])
412
+ };
413
+ if (args.word_timestamps) {
414
+ request.parameters = { return_timestamps: true };
415
+ }
416
+ const result = await client.automaticSpeechRecognition(request);
417
+ const asr = { text: result?.text ?? "" };
418
+ if (result?.chunks) {
419
+ asr.chunks = result.chunks.map((c) => ({
420
+ text: c.text ?? "",
421
+ timestamp: c.timestamp ?? [0, 0]
422
+ }));
423
+ }
424
+ return asr;
425
+ }
426
+ async generateEmbedding(args) {
427
+ const client = await this.getClient();
428
+ log.debug("HuggingFace featureExtraction", { model: args.model });
429
+ const result = await client.featureExtraction({
430
+ model: args.model,
431
+ inputs: args.text
432
+ });
433
+ return normalizeEmbedding(result);
250
434
  }
251
435
  /**
252
436
  * HuggingFace TTS returns encoded audio (typically FLAC) — not raw PCM.
@@ -269,7 +453,7 @@ export class HuggingFaceProvider extends BaseProvider {
269
453
  else if (result instanceof ArrayBuffer) {
270
454
  bytes = new Uint8Array(result);
271
455
  }
272
- else if (typeof result?.arrayBuffer === "function") {
456
+ else if (isCallable(result?.arrayBuffer)) {
273
457
  bytes = new Uint8Array(await result.arrayBuffer());
274
458
  }
275
459
  else {
@@ -278,13 +462,19 @@ export class HuggingFaceProvider extends BaseProvider {
278
462
  // HuggingFace Inference API returns FLAC by default for most TTS models.
279
463
  // Detect format from magic bytes, fall back to FLAC.
280
464
  let mimeType = "audio/flac";
281
- if (bytes[0] === 0x52 && bytes[1] === 0x49 && bytes[2] === 0x46 && bytes[3] === 0x46) {
465
+ if (bytes[0] === 0x52 &&
466
+ bytes[1] === 0x49 &&
467
+ bytes[2] === 0x46 &&
468
+ bytes[3] === 0x46) {
282
469
  mimeType = "audio/wav";
283
470
  }
284
471
  else if (bytes[0] === 0xff && (bytes[1] & 0xe0) === 0xe0) {
285
472
  mimeType = "audio/mpeg";
286
473
  }
287
- else if (bytes[0] === 0x4f && bytes[1] === 0x67 && bytes[2] === 0x67 && bytes[3] === 0x53) {
474
+ else if (bytes[0] === 0x4f &&
475
+ bytes[1] === 0x67 &&
476
+ bytes[2] === 0x67 &&
477
+ bytes[3] === 0x53) {
288
478
  mimeType = "audio/ogg";
289
479
  }
290
480
  return { data: bytes, mimeType };
@@ -301,5 +491,11 @@ export class HuggingFaceProvider extends BaseProvider {
301
491
  async getAvailableTTSModels() {
302
492
  return getHfTTSModels();
303
493
  }
494
+ async getAvailableASRModels() {
495
+ return getHfASRModels();
496
+ }
497
+ async getAvailableEmbeddingModels() {
498
+ return getHfEmbeddingModels();
499
+ }
304
500
  }
305
501
  //# sourceMappingURL=huggingface-provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"huggingface-provider.js","sourceRoot":"","sources":["../../src/providers/huggingface-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"huggingface-provider.js","sourceRoot":"","sources":["../../src/providers/huggingface-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Magic-byte identification for image containers, mirroring `audio-mime.ts`.
3
+ *
4
+ * Providers hand back encoded bytes with no reliable declared type — Replicate
5
+ * returns WebP, FAL and KIE return whatever the endpoint produced — so
6
+ * anything that assumes PNG mislabels them, and a strict consumer rejects the
7
+ * file on the mismatch (Kie answers `500 File type not supported`, naming
8
+ * nothing).
9
+ */
10
+ export declare const IMAGE_MIME_TO_EXT: Record<string, string>;
11
+ /** Identify a container from its leading bytes; `null` when nothing matches. */
12
+ export declare function sniffImageMime(bytes: Uint8Array): string | null;
13
+ /** The MIME type SVG markup is stored and served under. */
14
+ export declare const SVG_MIME = "image/svg+xml";
15
+ /**
16
+ * Whether these bytes are SVG markup.
17
+ *
18
+ * Deliberately not part of `sniffImageMime`: that answers "which raster
19
+ * container is this", and its callers (provider uploads, asset extensions)
20
+ * read a `null` as "not a picture I can hand over". SVG is text with no magic
21
+ * number, so it is sniffed on its own, by the callers that can actually do
22
+ * something with a vector — today, the rasterizer behind `view_image`.
23
+ *
24
+ * Reads only the leading bytes: an SVG document begins with an XML
25
+ * declaration, a doctype, comments or whitespace before its `<svg` root, and
26
+ * a whole-file decode of an arbitrary upload is not worth paying for.
27
+ */
28
+ export declare function isSvgBytes(bytes: Uint8Array): boolean;
29
+ /**
30
+ * PNG-fallback variant, for the callers that must produce a string (a `data:`
31
+ * URI). Where the label gets stored or forwarded, prefer `sniffImageMime` and
32
+ * keep "unknown" as its own state.
33
+ */
34
+ export declare function detectImageMime(bytes: Uint8Array): string;
35
+ /** Encode image bytes as a base64 `data:` URI with a sniffed MIME type. */
36
+ export declare function bytesToImageDataUri(bytes: Uint8Array): string;
37
+ /** File extension for an image MIME type, or `null` when it is not an image. */
38
+ export declare function extForImageMime(mime: string): string | null;
39
+ //# sourceMappingURL=image-mime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-mime.d.ts","sourceRoot":"","sources":["../../src/providers/image-mime.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAQpD,CAAC;AAEF,gFAAgF;AAChF,wBAAgB,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAgE/D;AAED,2DAA2D;AAC3D,eAAO,MAAM,QAAQ,kBAAkB,CAAC;AAExC;;;;;;;;;;;;GAYG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAKrD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAEzD;AAED,2EAA2E;AAC3E,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAG7D;AAED,gFAAgF;AAChF,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE3D"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Magic-byte identification for image containers, mirroring `audio-mime.ts`.
3
+ *
4
+ * Providers hand back encoded bytes with no reliable declared type — Replicate
5
+ * returns WebP, FAL and KIE return whatever the endpoint produced — so
6
+ * anything that assumes PNG mislabels them, and a strict consumer rejects the
7
+ * file on the mismatch (Kie answers `500 File type not supported`, naming
8
+ * nothing).
9
+ */
10
+ export const IMAGE_MIME_TO_EXT = {
11
+ "image/png": "png",
12
+ "image/jpeg": "jpg",
13
+ "image/jpg": "jpg",
14
+ "image/webp": "webp",
15
+ "image/gif": "gif",
16
+ "image/bmp": "bmp",
17
+ "image/tiff": "tiff"
18
+ };
19
+ /** Identify a container from its leading bytes; `null` when nothing matches. */
20
+ export function sniffImageMime(bytes) {
21
+ // PNG: 89 50 4E 47
22
+ if (bytes.length >= 4 &&
23
+ bytes[0] === 0x89 &&
24
+ bytes[1] === 0x50 &&
25
+ bytes[2] === 0x4e &&
26
+ bytes[3] === 0x47) {
27
+ return "image/png";
28
+ }
29
+ // JPEG: FF D8 FF
30
+ if (bytes.length >= 3 &&
31
+ bytes[0] === 0xff &&
32
+ bytes[1] === 0xd8 &&
33
+ bytes[2] === 0xff) {
34
+ return "image/jpeg";
35
+ }
36
+ // WebP: "RIFF" + size + "WEBP"
37
+ if (bytes.length >= 12 &&
38
+ bytes[0] === 0x52 &&
39
+ bytes[1] === 0x49 &&
40
+ bytes[2] === 0x46 &&
41
+ bytes[3] === 0x46 &&
42
+ bytes[8] === 0x57 &&
43
+ bytes[9] === 0x45 &&
44
+ bytes[10] === 0x42 &&
45
+ bytes[11] === 0x50) {
46
+ return "image/webp";
47
+ }
48
+ // GIF: "GIF8"
49
+ if (bytes.length >= 4 &&
50
+ bytes[0] === 0x47 &&
51
+ bytes[1] === 0x49 &&
52
+ bytes[2] === 0x46 &&
53
+ bytes[3] === 0x38) {
54
+ return "image/gif";
55
+ }
56
+ // BMP: "BM"
57
+ if (bytes.length >= 2 && bytes[0] === 0x42 && bytes[1] === 0x4d) {
58
+ return "image/bmp";
59
+ }
60
+ // TIFF: little-endian "II*\0" or big-endian "MM\0*". Topaz returns TIFF from
61
+ // its upscale endpoints, so a sniffer that misses it mislabels a paid result.
62
+ if (bytes.length >= 4 &&
63
+ ((bytes[0] === 0x49 &&
64
+ bytes[1] === 0x49 &&
65
+ bytes[2] === 0x2a &&
66
+ bytes[3] === 0x00) ||
67
+ (bytes[0] === 0x4d &&
68
+ bytes[1] === 0x4d &&
69
+ bytes[2] === 0x00 &&
70
+ bytes[3] === 0x2a))) {
71
+ return "image/tiff";
72
+ }
73
+ return null;
74
+ }
75
+ /** The MIME type SVG markup is stored and served under. */
76
+ export const SVG_MIME = "image/svg+xml";
77
+ /**
78
+ * Whether these bytes are SVG markup.
79
+ *
80
+ * Deliberately not part of `sniffImageMime`: that answers "which raster
81
+ * container is this", and its callers (provider uploads, asset extensions)
82
+ * read a `null` as "not a picture I can hand over". SVG is text with no magic
83
+ * number, so it is sniffed on its own, by the callers that can actually do
84
+ * something with a vector — today, the rasterizer behind `view_image`.
85
+ *
86
+ * Reads only the leading bytes: an SVG document begins with an XML
87
+ * declaration, a doctype, comments or whitespace before its `<svg` root, and
88
+ * a whole-file decode of an arbitrary upload is not worth paying for.
89
+ */
90
+ export function isSvgBytes(bytes) {
91
+ const head = new TextDecoder("utf-8", { fatal: false }).decode(bytes.subarray(0, 1024));
92
+ return /<svg[\s>]/i.test(head);
93
+ }
94
+ /**
95
+ * PNG-fallback variant, for the callers that must produce a string (a `data:`
96
+ * URI). Where the label gets stored or forwarded, prefer `sniffImageMime` and
97
+ * keep "unknown" as its own state.
98
+ */
99
+ export function detectImageMime(bytes) {
100
+ return sniffImageMime(bytes) ?? "image/png";
101
+ }
102
+ /** Encode image bytes as a base64 `data:` URI with a sniffed MIME type. */
103
+ export function bytesToImageDataUri(bytes) {
104
+ const base64 = Buffer.from(bytes).toString("base64");
105
+ return `data:${detectImageMime(bytes)};base64,${base64}`;
106
+ }
107
+ /** File extension for an image MIME type, or `null` when it is not an image. */
108
+ export function extForImageMime(mime) {
109
+ return IMAGE_MIME_TO_EXT[mime.toLowerCase()] ?? null;
110
+ }
111
+ //# sourceMappingURL=image-mime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-mime.js","sourceRoot":"","sources":["../../src/providers/image-mime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * One builder for the `ImageRef` a provider returns as encoded image bytes.
3
+ *
4
+ * KIE, Topaz and Reve each carried the same function: load `sharp`, read
5
+ * format/width/height, emit `{type, uri, data, mimeType, width, height}`, and
6
+ * fall back to `{type, uri, data}` when sharp is missing. Only the input type
7
+ * differed. The MIME type no longer needs sharp at all — {@link detectImageMime}
8
+ * reads it from the magic bytes — so the fallback keeps it.
9
+ */
10
+ /** An image ref carrying raw base64 (never a `data:` prefix) in `data`. */
11
+ export interface EncodedImageRef {
12
+ type: "image";
13
+ uri: string;
14
+ data: string;
15
+ mimeType: string;
16
+ width?: number;
17
+ height?: number;
18
+ }
19
+ /** Build an `ImageRef` from encoded image bytes, sized when sharp is present. */
20
+ export declare function imageRefFromBytes(bytes: Uint8Array): Promise<EncodedImageRef>;
21
+ //# sourceMappingURL=image-ref.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-ref.d.ts","sourceRoot":"","sources":["../../src/providers/image-ref.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,2EAA2E;AAC3E,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAuBD,iFAAiF;AACjF,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC,eAAe,CAAC,CAY1B"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * One builder for the `ImageRef` a provider returns as encoded image bytes.
3
+ *
4
+ * KIE, Topaz and Reve each carried the same function: load `sharp`, read
5
+ * format/width/height, emit `{type, uri, data, mimeType, width, height}`, and
6
+ * fall back to `{type, uri, data}` when sharp is missing. Only the input type
7
+ * differed. The MIME type no longer needs sharp at all — {@link detectImageMime}
8
+ * reads it from the magic bytes — so the fallback keeps it.
9
+ */
10
+ import { importHidden } from "@nodetool-ai/config";
11
+ import { detectImageMime } from "./image-mime.js";
12
+ async function imageSize(bytes) {
13
+ try {
14
+ const mod = await importHidden("sharp");
15
+ const sharp = mod?.default ?? mod;
16
+ if (typeof sharp !== "function")
17
+ return {};
18
+ const meta = await sharp(Buffer.from(bytes)).metadata();
19
+ return { width: meta.width, height: meta.height, format: meta.format };
20
+ }
21
+ catch {
22
+ // sharp is an optional native addon: without it the ref still carries the
23
+ // bytes and a sniffed MIME type, just no dimensions.
24
+ return {};
25
+ }
26
+ }
27
+ /** Build an `ImageRef` from encoded image bytes, sized when sharp is present. */
28
+ export async function imageRefFromBytes(bytes) {
29
+ const ref = {
30
+ type: "image",
31
+ uri: "",
32
+ data: Buffer.from(bytes).toString("base64"),
33
+ mimeType: detectImageMime(bytes)
34
+ };
35
+ const { width, height, format } = await imageSize(bytes);
36
+ if (format)
37
+ ref.mimeType = `image/${format}`;
38
+ if (width)
39
+ ref.width = width;
40
+ if (height)
41
+ ref.height = height;
42
+ return ref;
43
+ }
44
+ //# sourceMappingURL=image-ref.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-ref.js","sourceRoot":"","sources":["../../src/providers/image-ref.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAelD,KAAK,UAAU,SAAS,CACtB,KAAiB;IAEjB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,YAAY,CAC5B,OAAO,CACR,CAAC;QACF,MAAM,KAAK,GAAG,GAAG,EAAE,OAAO,IAAK,GAA0B,CAAC;QAC1D,IAAI,OAAO,KAAK,KAAK,UAAU;YAAE,OAAO,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACxD,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IACzE,CAAC;IAAC,MAAM,CAAC;QACP,0EAA0E;QAC1E,qDAAqD;QACrD,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,iFAAiF;AACjF,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,KAAiB;IAEjB,MAAM,GAAG,GAAoB;QAC3B,IAAI,EAAE,OAAO;QACb,GAAG,EAAE,EAAE;QACP,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC3C,QAAQ,EAAE,eAAe,CAAC,KAAK,CAAC;KACjC,CAAC;IACF,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;IACzD,IAAI,MAAM;QAAE,GAAG,CAAC,QAAQ,GAAG,SAAS,MAAM,EAAE,CAAC;IAC7C,IAAI,KAAK;QAAE,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;IAC7B,IAAI,MAAM;QAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;IAChC,OAAO,GAAG,CAAC;AACb,CAAC"}