@elizaos/plugin-elizacloud 2.0.0-alpha.8 → 2.0.0-beta.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 (378) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +220 -0
  3. package/auto-enable.ts +17 -0
  4. package/dist/browser/index.browser.js +2 -21
  5. package/dist/browser/index.browser.js.map +5 -38
  6. package/dist/cjs/index.d.ts +2 -2
  7. package/dist/cjs/index.node.cjs +12165 -2277
  8. package/dist/cjs/index.node.js.map +135 -28
  9. package/dist/cloud/auth.d.ts +19 -0
  10. package/dist/cloud/auth.d.ts.map +1 -0
  11. package/dist/cloud/auth.js +330 -0
  12. package/dist/cloud/auth.js.map +12 -0
  13. package/dist/cloud/backup.d.ts +18 -0
  14. package/dist/cloud/backup.d.ts.map +1 -0
  15. package/dist/cloud/backup.js +63 -0
  16. package/dist/cloud/backup.js.map +10 -0
  17. package/dist/cloud/base-url.d.ts +3 -0
  18. package/dist/cloud/base-url.d.ts.map +1 -0
  19. package/dist/cloud/base-url.js +77 -0
  20. package/dist/cloud/base-url.js.map +10 -0
  21. package/dist/cloud/bridge-client.d.ts +126 -0
  22. package/dist/cloud/bridge-client.d.ts.map +1 -0
  23. package/dist/cloud/bridge-client.js +432 -0
  24. package/dist/cloud/bridge-client.js.map +11 -0
  25. package/dist/cloud/cloud-api-key.d.ts +26 -0
  26. package/dist/cloud/cloud-api-key.d.ts.map +1 -0
  27. package/dist/cloud/cloud-api-key.js +60 -0
  28. package/dist/cloud/cloud-api-key.js.map +10 -0
  29. package/dist/cloud/cloud-manager.d.ts +33 -0
  30. package/dist/cloud/cloud-manager.d.ts.map +1 -0
  31. package/dist/cloud/cloud-manager.js +853 -0
  32. package/dist/cloud/cloud-manager.js.map +16 -0
  33. package/dist/cloud/cloud-proxy.d.ts +20 -0
  34. package/dist/cloud/cloud-proxy.d.ts.map +1 -0
  35. package/dist/cloud/cloud-proxy.js +54 -0
  36. package/dist/cloud/cloud-proxy.js.map +10 -0
  37. package/dist/cloud/cloud-wallet.d.ts +94 -0
  38. package/dist/cloud/cloud-wallet.d.ts.map +1 -0
  39. package/dist/cloud/cloud-wallet.js +5195 -0
  40. package/dist/cloud/cloud-wallet.js.map +92 -0
  41. package/dist/cloud/index.d.ts +9 -0
  42. package/dist/cloud/index.d.ts.map +1 -0
  43. package/dist/cloud/index.js +30 -0
  44. package/dist/cloud/index.js.map +9 -0
  45. package/dist/cloud/reconnect.d.ts +26 -0
  46. package/dist/cloud/reconnect.d.ts.map +1 -0
  47. package/dist/cloud/reconnect.js +104 -0
  48. package/dist/cloud/reconnect.js.map +10 -0
  49. package/dist/cloud/validate-url.d.ts +2 -0
  50. package/dist/cloud/validate-url.d.ts.map +1 -0
  51. package/dist/cloud/validate-url.js +174 -0
  52. package/dist/cloud/validate-url.js.map +10 -0
  53. package/dist/cloud-providers/cloud-status.d.ts.map +1 -1
  54. package/dist/cloud-providers/cloud-status.js +78 -0
  55. package/dist/cloud-providers/cloud-status.js.map +10 -0
  56. package/dist/cloud-providers/container-health.d.ts.map +1 -1
  57. package/dist/cloud-providers/container-health.js +74 -0
  58. package/dist/cloud-providers/container-health.js.map +10 -0
  59. package/dist/cloud-providers/credit-balance.d.ts.map +1 -1
  60. package/dist/cloud-providers/credit-balance.js +85 -0
  61. package/dist/cloud-providers/credit-balance.js.map +10 -0
  62. package/dist/cloud-providers/index.d.ts.map +1 -1
  63. package/dist/cloud-providers/index.js +24 -0
  64. package/dist/cloud-providers/index.js.map +9 -0
  65. package/dist/cloud-providers/model-registry.d.ts.map +1 -1
  66. package/dist/cloud-providers/model-registry.js +71 -0
  67. package/dist/cloud-providers/model-registry.js.map +10 -0
  68. package/dist/index.browser.d.ts +4 -3
  69. package/dist/index.browser.d.ts.map +1 -1
  70. package/dist/index.d.ts +18 -0
  71. package/dist/index.d.ts.map +1 -1
  72. package/dist/index.js +12851 -0
  73. package/dist/index.js.map +145 -0
  74. package/dist/index.node.d.ts +14 -2
  75. package/dist/index.node.d.ts.map +1 -1
  76. package/dist/init.d.ts.map +1 -1
  77. package/dist/init.js +169 -0
  78. package/dist/init.js.map +12 -0
  79. package/dist/lib/cloud-connection.d.ts +78 -0
  80. package/dist/lib/cloud-connection.d.ts.map +1 -0
  81. package/dist/lib/cloud-connection.js +731 -0
  82. package/dist/lib/cloud-connection.js.map +14 -0
  83. package/dist/lib/cloud-secrets.d.ts +23 -0
  84. package/dist/lib/cloud-secrets.d.ts.map +1 -0
  85. package/dist/lib/cloud-secrets.js +64 -0
  86. package/dist/lib/cloud-secrets.js.map +10 -0
  87. package/dist/lib/config-env.d.ts +5 -0
  88. package/dist/lib/config-env.d.ts.map +1 -0
  89. package/dist/lib/config-env.js +191 -0
  90. package/dist/lib/config-env.js.map +11 -0
  91. package/dist/lib/config-like.d.ts +40 -0
  92. package/dist/lib/config-like.d.ts.map +1 -0
  93. package/dist/lib/config-like.js +103 -0
  94. package/dist/lib/config-like.js.map +10 -0
  95. package/dist/lib/credential-type-map.d.ts +53 -0
  96. package/dist/lib/credential-type-map.d.ts.map +1 -0
  97. package/dist/lib/credential-type-map.js +88 -0
  98. package/dist/lib/credential-type-map.js.map +10 -0
  99. package/dist/lib/feature-flags.d.ts +2 -0
  100. package/dist/lib/feature-flags.d.ts.map +1 -0
  101. package/dist/lib/feature-flags.js +40 -0
  102. package/dist/lib/feature-flags.js.map +10 -0
  103. package/dist/lib/http.d.ts +22 -0
  104. package/dist/lib/http.d.ts.map +1 -0
  105. package/dist/lib/http.js +107 -0
  106. package/dist/lib/http.js.map +10 -0
  107. package/dist/lib/server-cloud-tts.d.ts +34 -0
  108. package/dist/lib/server-cloud-tts.d.ts.map +1 -0
  109. package/dist/lib/server-cloud-tts.js +549 -0
  110. package/dist/lib/server-cloud-tts.js.map +13 -0
  111. package/dist/lib/state-paths.d.ts +4 -0
  112. package/dist/lib/state-paths.d.ts.map +1 -0
  113. package/dist/lib/state-paths.js +52 -0
  114. package/dist/lib/state-paths.js.map +10 -0
  115. package/dist/lib/tts-debug.d.ts +4 -0
  116. package/dist/lib/tts-debug.d.ts.map +1 -0
  117. package/dist/lib/tts-debug.js +57 -0
  118. package/dist/lib/tts-debug.js.map +10 -0
  119. package/dist/models/embeddings.d.ts.map +1 -1
  120. package/dist/models/embeddings.js +319 -0
  121. package/dist/models/embeddings.js.map +13 -0
  122. package/dist/models/image.d.ts.map +1 -1
  123. package/dist/models/image.js +374 -0
  124. package/dist/models/image.js.map +14 -0
  125. package/dist/models/index.d.ts +1 -2
  126. package/dist/models/index.d.ts.map +1 -1
  127. package/dist/models/index.js +1386 -0
  128. package/dist/models/index.js.map +20 -0
  129. package/dist/models/research.d.ts.map +1 -1
  130. package/dist/models/research.js +324 -0
  131. package/dist/models/research.js.map +13 -0
  132. package/dist/models/speech.d.ts.map +1 -1
  133. package/dist/models/speech.js +273 -0
  134. package/dist/models/speech.js.map +13 -0
  135. package/dist/models/text.d.ts +5 -2
  136. package/dist/models/text.d.ts.map +1 -1
  137. package/dist/models/text.js +803 -0
  138. package/dist/models/text.js.map +15 -0
  139. package/dist/models/tokenization.d.ts.map +1 -1
  140. package/dist/models/tokenization.js +65 -0
  141. package/dist/models/tokenization.js.map +10 -0
  142. package/dist/models/transcription.d.ts.map +1 -1
  143. package/dist/models/transcription.js +283 -0
  144. package/dist/models/transcription.js.map +13 -0
  145. package/dist/node/index.d.ts +2 -2
  146. package/dist/node/index.node.js +12170 -2266
  147. package/dist/node/index.node.js.map +135 -28
  148. package/dist/onboarding.d.ts +35 -0
  149. package/dist/onboarding.d.ts.map +1 -0
  150. package/dist/onboarding.js +883 -0
  151. package/dist/onboarding.js.map +14 -0
  152. package/dist/plugin.d.ts +20 -0
  153. package/dist/plugin.d.ts.map +1 -0
  154. package/dist/plugin.js +7611 -0
  155. package/dist/plugin.js.map +104 -0
  156. package/dist/providers/openai.d.ts.map +1 -1
  157. package/dist/providers/openai.js +127 -0
  158. package/dist/providers/openai.js.map +11 -0
  159. package/dist/register-routes.d.ts +2 -0
  160. package/dist/register-routes.d.ts.map +1 -0
  161. package/dist/register-routes.js +7612 -0
  162. package/dist/register-routes.js.map +105 -0
  163. package/dist/routes/cloud-billing-routes.d.ts +9 -0
  164. package/dist/routes/cloud-billing-routes.d.ts.map +1 -0
  165. package/dist/routes/cloud-billing-routes.js +807 -0
  166. package/dist/routes/cloud-billing-routes.js.map +14 -0
  167. package/dist/routes/cloud-compat-routes.d.ts +10 -0
  168. package/dist/routes/cloud-compat-routes.d.ts.map +1 -0
  169. package/dist/routes/cloud-compat-routes.js +538 -0
  170. package/dist/routes/cloud-compat-routes.js.map +14 -0
  171. package/dist/routes/cloud-features-routes.d.ts +9 -0
  172. package/dist/routes/cloud-features-routes.d.ts.map +1 -0
  173. package/dist/routes/cloud-features-routes.js +124 -0
  174. package/dist/routes/cloud-features-routes.js.map +11 -0
  175. package/dist/routes/cloud-provisioning.d.ts +14 -0
  176. package/dist/routes/cloud-provisioning.d.ts.map +1 -0
  177. package/dist/routes/cloud-provisioning.js +37 -0
  178. package/dist/routes/cloud-provisioning.js.map +10 -0
  179. package/dist/routes/cloud-relay-routes.d.ts +22 -0
  180. package/dist/routes/cloud-relay-routes.d.ts.map +1 -0
  181. package/dist/routes/cloud-relay-routes.js +60 -0
  182. package/dist/routes/cloud-relay-routes.js.map +10 -0
  183. package/dist/routes/cloud-routes-autonomous.d.ts +83 -0
  184. package/dist/routes/cloud-routes-autonomous.d.ts.map +1 -0
  185. package/dist/routes/cloud-routes-autonomous.js +6134 -0
  186. package/dist/routes/cloud-routes-autonomous.js.map +97 -0
  187. package/dist/routes/cloud-routes.d.ts +35 -0
  188. package/dist/routes/cloud-routes.d.ts.map +1 -0
  189. package/dist/routes/cloud-routes.js +6888 -0
  190. package/dist/routes/cloud-routes.js.map +100 -0
  191. package/dist/routes/cloud-status-routes-autonomous.d.ts +15 -0
  192. package/dist/routes/cloud-status-routes-autonomous.d.ts.map +1 -0
  193. package/dist/routes/cloud-status-routes-autonomous.js +396 -0
  194. package/dist/routes/cloud-status-routes-autonomous.js.map +13 -0
  195. package/dist/routes/cloud-status-routes.d.ts +4 -0
  196. package/dist/routes/cloud-status-routes.d.ts.map +1 -0
  197. package/dist/routes/cloud-status-routes.js +771 -0
  198. package/dist/routes/cloud-status-routes.js.map +15 -0
  199. package/dist/services/cloud-auth.d.ts +140 -5
  200. package/dist/services/cloud-auth.d.ts.map +1 -1
  201. package/dist/services/cloud-auth.js +363 -0
  202. package/dist/services/cloud-auth.js.map +12 -0
  203. package/dist/services/cloud-backup.d.ts.map +1 -1
  204. package/dist/services/cloud-backup.js +176 -0
  205. package/dist/services/cloud-backup.js.map +11 -0
  206. package/dist/services/cloud-bootstrap.d.ts +38 -0
  207. package/dist/services/cloud-bootstrap.d.ts.map +1 -0
  208. package/dist/services/cloud-bootstrap.js +84 -0
  209. package/dist/services/cloud-bootstrap.js.map +10 -0
  210. package/dist/services/cloud-bridge.d.ts +1 -1
  211. package/dist/services/cloud-bridge.d.ts.map +1 -1
  212. package/dist/services/cloud-bridge.js +308 -0
  213. package/dist/services/cloud-bridge.js.map +11 -0
  214. package/dist/services/cloud-container.d.ts.map +1 -1
  215. package/dist/services/cloud-container.js +241 -0
  216. package/dist/services/cloud-container.js.map +11 -0
  217. package/dist/services/cloud-credential-provider.d.ts +55 -0
  218. package/dist/services/cloud-credential-provider.d.ts.map +1 -0
  219. package/dist/services/cloud-credential-provider.js +190 -0
  220. package/dist/services/cloud-credential-provider.js.map +11 -0
  221. package/dist/services/cloud-managed-gateway-relay.d.ts +38 -0
  222. package/dist/services/cloud-managed-gateway-relay.d.ts.map +1 -0
  223. package/dist/services/cloud-managed-gateway-relay.js +479 -0
  224. package/dist/services/cloud-managed-gateway-relay.js.map +10 -0
  225. package/dist/services/cloud-model-registry.d.ts.map +1 -1
  226. package/dist/services/cloud-model-registry.js +175 -0
  227. package/dist/services/cloud-model-registry.js.map +10 -0
  228. package/dist/services/index.d.ts +3 -1
  229. package/dist/services/index.d.ts.map +1 -1
  230. package/dist/services/index.js +29 -0
  231. package/dist/services/index.js.map +9 -0
  232. package/dist/types/cloud.d.ts +41 -19
  233. package/dist/types/cloud.d.ts.map +1 -1
  234. package/dist/types/cloud.js +52 -0
  235. package/dist/types/cloud.js.map +10 -0
  236. package/dist/types/index.d.ts +1 -1
  237. package/dist/types/index.d.ts.map +1 -1
  238. package/dist/types/index.js +24 -0
  239. package/dist/types/index.js.map +9 -0
  240. package/dist/utils/cloud-api.d.ts +2 -27
  241. package/dist/utils/cloud-api.d.ts.map +1 -1
  242. package/dist/utils/cloud-api.js +33 -0
  243. package/dist/utils/cloud-api.js.map +10 -0
  244. package/dist/utils/cloud-sdk/client.d.ts +133 -0
  245. package/dist/utils/cloud-sdk/client.d.ts.map +1 -0
  246. package/dist/utils/cloud-sdk/client.js +3561 -0
  247. package/dist/utils/cloud-sdk/client.js.map +13 -0
  248. package/dist/utils/cloud-sdk/http.d.ts +37 -0
  249. package/dist/utils/cloud-sdk/http.d.ts.map +1 -0
  250. package/dist/utils/cloud-sdk/http.js +237 -0
  251. package/dist/utils/cloud-sdk/http.js.map +11 -0
  252. package/dist/utils/cloud-sdk/index.d.ts +6 -0
  253. package/dist/utils/cloud-sdk/index.d.ts.map +1 -0
  254. package/dist/utils/cloud-sdk/index.js +29 -0
  255. package/dist/utils/cloud-sdk/index.js.map +9 -0
  256. package/dist/utils/cloud-sdk/public-routes.d.ts +5377 -0
  257. package/dist/utils/cloud-sdk/public-routes.d.ts.map +1 -0
  258. package/dist/utils/cloud-sdk/public-routes.js +2950 -0
  259. package/dist/utils/cloud-sdk/public-routes.js.map +10 -0
  260. package/dist/utils/cloud-sdk/types.cloud-api.d.ts +101 -0
  261. package/dist/utils/cloud-sdk/types.cloud-api.d.ts.map +1 -0
  262. package/dist/utils/cloud-sdk/types.cloud-api.js +2 -0
  263. package/dist/utils/cloud-sdk/types.cloud-api.js.map +9 -0
  264. package/dist/utils/cloud-sdk/types.d.ts +655 -0
  265. package/dist/utils/cloud-sdk/types.d.ts.map +1 -0
  266. package/dist/utils/cloud-sdk/types.js +29 -0
  267. package/dist/utils/cloud-sdk/types.js.map +10 -0
  268. package/dist/utils/config.d.ts +7 -3
  269. package/dist/utils/config.d.ts.map +1 -1
  270. package/dist/utils/config.js +137 -0
  271. package/dist/utils/config.js.map +10 -0
  272. package/dist/utils/events.d.ts.map +1 -1
  273. package/dist/utils/events.js +43 -0
  274. package/dist/utils/events.js.map +10 -0
  275. package/dist/utils/helpers.d.ts.map +1 -1
  276. package/dist/utils/helpers.js +103 -0
  277. package/dist/utils/helpers.js.map +10 -0
  278. package/dist/utils/responses-output.d.ts +13 -0
  279. package/dist/utils/responses-output.d.ts.map +1 -0
  280. package/dist/utils/responses-output.js +102 -0
  281. package/dist/utils/responses-output.js.map +10 -0
  282. package/dist/utils/sdk-client.d.ts +5 -0
  283. package/dist/utils/sdk-client.d.ts.map +1 -0
  284. package/dist/utils/sdk-client.js +144 -0
  285. package/dist/utils/sdk-client.js.map +11 -0
  286. package/package.json +108 -19
  287. package/src/cloud/auth.ts +175 -0
  288. package/src/cloud/backup.ts +46 -0
  289. package/src/cloud/base-url.ts +62 -0
  290. package/src/cloud/bridge-client.ts +602 -0
  291. package/src/cloud/cloud-api-key.ts +80 -0
  292. package/src/cloud/cloud-manager.ts +163 -0
  293. package/src/cloud/cloud-proxy.ts +52 -0
  294. package/src/cloud/cloud-wallet.ts +341 -0
  295. package/src/cloud/index.ts +28 -0
  296. package/src/cloud/reconnect.ts +111 -0
  297. package/src/cloud/validate-url.ts +181 -0
  298. package/src/cloud-providers/cloud-status.ts +75 -0
  299. package/src/cloud-providers/container-health.ts +68 -0
  300. package/src/cloud-providers/credit-balance.ts +70 -0
  301. package/src/cloud-providers/index.ts +3 -0
  302. package/src/cloud-providers/model-registry.ts +74 -0
  303. package/src/index.browser.ts +10 -0
  304. package/src/index.node.ts +39 -0
  305. package/src/index.ts +347 -0
  306. package/src/init.ts +39 -0
  307. package/src/lib/cloud-connection.ts +663 -0
  308. package/src/lib/cloud-secrets.ts +58 -0
  309. package/src/lib/config-env.ts +168 -0
  310. package/src/lib/config-like.ts +149 -0
  311. package/src/lib/credential-type-map.ts +130 -0
  312. package/src/lib/feature-flags.ts +26 -0
  313. package/src/lib/http.ts +139 -0
  314. package/src/lib/server-cloud-tts.ts +609 -0
  315. package/src/lib/state-paths.ts +28 -0
  316. package/src/lib/tts-debug.ts +34 -0
  317. package/src/models/embeddings.ts +234 -0
  318. package/src/models/image.ts +219 -0
  319. package/src/models/index.ts +16 -0
  320. package/src/models/research.ts +265 -0
  321. package/src/models/speech.ts +78 -0
  322. package/src/models/text.ts +899 -0
  323. package/src/models/tokenization.ts +67 -0
  324. package/src/models/transcription.ts +97 -0
  325. package/src/onboarding.ts +396 -0
  326. package/src/plugin.ts +243 -0
  327. package/src/providers/openai.ts +16 -0
  328. package/src/register-routes.ts +6 -0
  329. package/src/routes/cloud-billing-routes.ts +754 -0
  330. package/src/routes/cloud-compat-routes.ts +314 -0
  331. package/src/routes/cloud-features-routes.ts +57 -0
  332. package/src/routes/cloud-provisioning.ts +37 -0
  333. package/src/routes/cloud-relay-routes.ts +89 -0
  334. package/src/routes/cloud-routes-autonomous.ts +996 -0
  335. package/src/routes/cloud-routes.ts +576 -0
  336. package/src/routes/cloud-status-routes-autonomous.ts +234 -0
  337. package/src/routes/cloud-status-routes.ts +73 -0
  338. package/src/services/cloud-auth.ts +567 -0
  339. package/src/services/cloud-backup.ts +208 -0
  340. package/src/services/cloud-bootstrap.ts +108 -0
  341. package/src/services/cloud-bridge.ts +386 -0
  342. package/src/services/cloud-container.ts +297 -0
  343. package/src/services/cloud-credential-provider.ts +210 -0
  344. package/src/services/cloud-managed-gateway-relay.ts +663 -0
  345. package/src/services/cloud-model-registry.ts +202 -0
  346. package/src/services/index.ts +17 -0
  347. package/{types → src/types}/cloud.ts +52 -29
  348. package/{types → src/types}/index.ts +6 -0
  349. package/src/utils/cloud-api.ts +10 -0
  350. package/src/utils/cloud-sdk/client.ts +735 -0
  351. package/src/utils/cloud-sdk/http.ts +291 -0
  352. package/src/utils/cloud-sdk/index.ts +23 -0
  353. package/src/utils/cloud-sdk/public-routes.ts +5070 -0
  354. package/src/utils/cloud-sdk/types.cloud-api.ts +120 -0
  355. package/src/utils/cloud-sdk/types.ts +762 -0
  356. package/src/utils/config.ts +174 -0
  357. package/src/utils/events.ts +37 -0
  358. package/src/utils/helpers.ts +107 -0
  359. package/src/utils/responses-output.ts +115 -0
  360. package/src/utils/sdk-client.ts +37 -0
  361. package/dist/actions/check-credits.d.ts +0 -6
  362. package/dist/actions/check-credits.d.ts.map +0 -1
  363. package/dist/actions/freeze-agent.d.ts +0 -9
  364. package/dist/actions/freeze-agent.d.ts.map +0 -1
  365. package/dist/actions/index.d.ts +0 -5
  366. package/dist/actions/index.d.ts.map +0 -1
  367. package/dist/actions/provision-agent.d.ts +0 -8
  368. package/dist/actions/provision-agent.d.ts.map +0 -1
  369. package/dist/actions/resume-agent.d.ts +0 -9
  370. package/dist/actions/resume-agent.d.ts.map +0 -1
  371. package/dist/build.d.ts +0 -3
  372. package/dist/build.d.ts.map +0 -1
  373. package/dist/generated/specs/specs.d.ts +0 -55
  374. package/dist/generated/specs/specs.d.ts.map +0 -1
  375. package/dist/models/object.d.ts +0 -4
  376. package/dist/models/object.d.ts.map +0 -1
  377. package/dist/utils/forwarded-settings.d.ts +0 -8
  378. package/dist/utils/forwarded-settings.d.ts.map +0 -1
@@ -0,0 +1,265 @@
1
+ /** Research model handler — calls /responses for deep-research models. */
2
+
3
+ import type {
4
+ IAgentRuntime,
5
+ ResearchAnnotation,
6
+ ResearchOutputItem,
7
+ ResearchParams,
8
+ ResearchResult,
9
+ } from "@elizaos/core";
10
+ import { logger, ModelType } from "@elizaos/core";
11
+ import { getResearchModel } from "../utils/config";
12
+ import { emitModelUsageEvent } from "../utils/events";
13
+ import { createCloudApiClient } from "../utils/sdk-client";
14
+
15
+ interface ResponsesAPIOutput {
16
+ id: string;
17
+ status: string;
18
+ output: Array<{
19
+ type: string;
20
+ id?: string;
21
+ status?: string;
22
+ content?: Array<{
23
+ type: string;
24
+ text?: string;
25
+ annotations?: Array<{
26
+ type: string;
27
+ url?: string;
28
+ title?: string;
29
+ start_index?: number;
30
+ end_index?: number;
31
+ }>;
32
+ }>;
33
+ action?: {
34
+ type: string;
35
+ query?: string;
36
+ url?: string;
37
+ };
38
+ query?: string;
39
+ results?: Array<{
40
+ file_id: string;
41
+ file_name: string;
42
+ score: number;
43
+ }>;
44
+ code?: string;
45
+ output?: string;
46
+ server_label?: string;
47
+ tool_name?: string;
48
+ arguments?: Record<string, unknown>;
49
+ result?: unknown;
50
+ }>;
51
+ usage?: {
52
+ input_tokens: number;
53
+ output_tokens: number;
54
+ total_tokens: number;
55
+ };
56
+ }
57
+
58
+ type ResponsesAPIInput =
59
+ | string
60
+ | Array<{
61
+ role: "user" | "system" | "assistant";
62
+ content: Array<{
63
+ type: "input_text";
64
+ text: string;
65
+ }>;
66
+ }>;
67
+
68
+ function normalizeInput(input: ResearchParams["input"]): ResponsesAPIInput {
69
+ if (typeof input !== "string") {
70
+ return input as ResponsesAPIInput;
71
+ }
72
+
73
+ return [
74
+ {
75
+ role: "user",
76
+ content: [
77
+ {
78
+ type: "input_text",
79
+ text: input,
80
+ },
81
+ ],
82
+ },
83
+ ];
84
+ }
85
+
86
+ function buildResearchApiError(status: number, errorText: string): Error {
87
+ try {
88
+ const parsed = JSON.parse(errorText) as {
89
+ error?: { message?: string; param?: string; code?: string };
90
+ };
91
+ const message = parsed.error?.message;
92
+ const param = parsed.error?.param;
93
+ if (param === "tools.0.type" && message?.includes('expected "function"')) {
94
+ return new Error(
95
+ `Research API error: ${status} Eliza Cloud /responses rejected deep-research tool types; the provider currently only accepts function tools on this route`
96
+ );
97
+ }
98
+ } catch {
99
+ // Fall through to the raw error text.
100
+ }
101
+
102
+ return new Error(`Research API error: ${status} ${errorText}`);
103
+ }
104
+
105
+ function parseAnnotations(
106
+ raw: Array<{
107
+ type: string;
108
+ url?: string;
109
+ title?: string;
110
+ start_index?: number;
111
+ end_index?: number;
112
+ }>
113
+ ): ResearchAnnotation[] {
114
+ return raw
115
+ .filter((a) => a.url !== undefined)
116
+ .map((a) => ({
117
+ url: a.url as string,
118
+ title: a.title ?? "",
119
+ startIndex: a.start_index ?? 0,
120
+ endIndex: a.end_index ?? 0,
121
+ }));
122
+ }
123
+
124
+ function parseOutputItems(raw: ResponsesAPIOutput["output"]): ResearchOutputItem[] {
125
+ const items: ResearchOutputItem[] = [];
126
+
127
+ for (const item of raw) {
128
+ switch (item.type) {
129
+ case "web_search_call":
130
+ items.push({
131
+ id: item.id ?? "",
132
+ type: "web_search_call",
133
+ status: (item.status as "completed" | "failed") ?? "completed",
134
+ action: {
135
+ type: (item.action?.type as "search" | "open_page" | "find_in_page") ?? "search",
136
+ query: item.action?.query,
137
+ url: item.action?.url,
138
+ },
139
+ });
140
+ break;
141
+ case "file_search_call":
142
+ items.push({
143
+ id: item.id ?? "",
144
+ type: "file_search_call",
145
+ status: (item.status as "completed" | "failed") ?? "completed",
146
+ query: item.query ?? "",
147
+ results: item.results?.map((r) => ({
148
+ fileId: r.file_id,
149
+ fileName: r.file_name,
150
+ score: r.score,
151
+ })),
152
+ });
153
+ break;
154
+ case "code_interpreter_call":
155
+ items.push({
156
+ id: item.id ?? "",
157
+ type: "code_interpreter_call",
158
+ status: (item.status as "completed" | "failed") ?? "completed",
159
+ code: item.code ?? "",
160
+ output: item.output,
161
+ });
162
+ break;
163
+ case "mcp_tool_call":
164
+ items.push({
165
+ id: item.id ?? "",
166
+ type: "mcp_tool_call",
167
+ status: (item.status as "completed" | "failed") ?? "completed",
168
+ serverLabel: item.server_label ?? "",
169
+ toolName: item.tool_name ?? "",
170
+ arguments: (item.arguments ?? {}) as Record<string, import("@elizaos/core").JsonValue>,
171
+ result: item.result as import("@elizaos/core").JsonValue | undefined,
172
+ });
173
+ break;
174
+ case "message": {
175
+ const content = item.content ?? [];
176
+ items.push({
177
+ type: "message",
178
+ content: content
179
+ .filter((c) => c.type === "output_text")
180
+ .map((c) => ({
181
+ type: "output_text" as const,
182
+ text: c.text ?? "",
183
+ annotations: parseAnnotations(c.annotations ?? []),
184
+ })),
185
+ });
186
+ break;
187
+ }
188
+ }
189
+ }
190
+
191
+ return items;
192
+ }
193
+
194
+ export async function handleResearch(
195
+ runtime: IAgentRuntime,
196
+ params: ResearchParams
197
+ ): Promise<ResearchResult> {
198
+ const modelName = params.model ?? getResearchModel(runtime);
199
+ logger.log(`[ELIZAOS_CLOUD] Using RESEARCH model: ${modelName}`);
200
+
201
+ const tools = params.tools ?? [{ type: "web_search_preview" }];
202
+
203
+ const requestBody: Record<string, unknown> = {
204
+ model: modelName,
205
+ input: normalizeInput(params.input),
206
+ tools: tools,
207
+ };
208
+
209
+ if (params.instructions) {
210
+ requestBody.instructions = params.instructions;
211
+ }
212
+ if (params.background !== undefined) {
213
+ requestBody.background = params.background;
214
+ }
215
+ if (params.maxToolCalls !== undefined) {
216
+ requestBody.max_tool_calls = params.maxToolCalls;
217
+ }
218
+ if (params.reasoningSummary) {
219
+ requestBody.reasoning = { summary: params.reasoningSummary };
220
+ }
221
+
222
+ const response = await createCloudApiClient(runtime).requestRaw("POST", "/responses", {
223
+ json: requestBody,
224
+ });
225
+
226
+ if (!response.ok) {
227
+ const errorText = await response.text();
228
+ throw buildResearchApiError(response.status, errorText);
229
+ }
230
+
231
+ const data = (await response.json()) as ResponsesAPIOutput;
232
+
233
+ if (data.usage) {
234
+ emitModelUsageEvent(runtime, ModelType.RESEARCH, params.input, {
235
+ inputTokens: data.usage.input_tokens,
236
+ outputTokens: data.usage.output_tokens,
237
+ totalTokens: data.usage.total_tokens,
238
+ });
239
+ }
240
+
241
+ const outputItems = parseOutputItems(data.output);
242
+
243
+ // Extract final text and annotations from the last message output
244
+ let text = "";
245
+ const annotations: ResearchAnnotation[] = [];
246
+
247
+ for (const item of outputItems) {
248
+ if (item.type === "message") {
249
+ for (const content of item.content) {
250
+ if (content.type === "output_text") {
251
+ text += content.text;
252
+ annotations.push(...content.annotations);
253
+ }
254
+ }
255
+ }
256
+ }
257
+
258
+ return {
259
+ id: data.id,
260
+ text,
261
+ annotations,
262
+ outputItems,
263
+ status: data.status as ResearchResult["status"],
264
+ };
265
+ }
@@ -0,0 +1,78 @@
1
+ import type { Readable } from "node:stream";
2
+ import type { IAgentRuntime } from "@elizaos/core";
3
+ import { logger } from "@elizaos/core";
4
+ import type { OpenAITextToSpeechParams } from "../types";
5
+ import { getSetting, isBrowser } from "../utils/config";
6
+ import { webStreamToNodeStream } from "../utils/helpers";
7
+ import { createElizaCloudClient } from "../utils/sdk-client";
8
+
9
+ async function fetchTextToSpeech(
10
+ runtime: IAgentRuntime,
11
+ options: OpenAITextToSpeechParams
12
+ ): Promise<ReadableStream<Uint8Array> | Readable> {
13
+ const defaultModel = getSetting(runtime, "ELIZAOS_CLOUD_TTS_MODEL", "gpt-5-mini-tts");
14
+ const defaultVoice = getSetting(runtime, "ELIZAOS_CLOUD_TTS_VOICE", "nova");
15
+
16
+ const model = options.model || (defaultModel as string);
17
+ const voice = options.voice || (defaultVoice as string);
18
+ const format = options.format || "mp3";
19
+ const modelId = model.startsWith("elevenlabs/")
20
+ ? model.split("/").slice(1).join("/")
21
+ : model.startsWith("eleven_")
22
+ ? model
23
+ : undefined;
24
+ const voiceId = voice && voice !== "nova" ? voice : undefined;
25
+
26
+ try {
27
+ const res = await createElizaCloudClient(runtime).routes.postApiV1VoiceTts({
28
+ headers: {
29
+ ...(format === "mp3" ? { Accept: "audio/mpeg" } : {}),
30
+ },
31
+ json: {
32
+ text: options.text,
33
+ ...(voiceId ? { voiceId } : {}),
34
+ ...(modelId ? { modelId } : {}),
35
+ },
36
+ });
37
+
38
+ if (!res.ok) {
39
+ const err = await res.text();
40
+ throw new Error(`ElizaOS Cloud TTS error ${res.status}: ${err}`);
41
+ }
42
+
43
+ if (!res.body) {
44
+ throw new Error("ElizaOS Cloud TTS response body is null");
45
+ }
46
+
47
+ if (!isBrowser()) {
48
+ return await webStreamToNodeStream(res.body);
49
+ }
50
+
51
+ return res.body;
52
+ } catch (err) {
53
+ const message = err instanceof Error ? err.message : String(err);
54
+ throw new Error(`Failed to fetch speech from ElizaOS Cloud TTS: ${message}`);
55
+ }
56
+ }
57
+
58
+ export async function handleTextToSpeech(
59
+ runtime: IAgentRuntime,
60
+ input: string | OpenAITextToSpeechParams
61
+ ): Promise<ReadableStream<Uint8Array> | Readable> {
62
+ const options: OpenAITextToSpeechParams =
63
+ typeof input === "string" ? { text: input } : (input as OpenAITextToSpeechParams);
64
+
65
+ const resolvedModel =
66
+ options.model || (getSetting(runtime, "ELIZAOS_CLOUD_TTS_MODEL", "gpt-5-mini-tts") as string);
67
+ logger.log(`[ELIZAOS_CLOUD] Using TEXT_TO_SPEECH model: ${resolvedModel}`);
68
+ try {
69
+ const speechStream = await fetchTextToSpeech(runtime, options);
70
+ return speechStream;
71
+ } catch (error) {
72
+ const message = error instanceof Error ? error.message : String(error);
73
+ logger.error(`Error in TEXT_TO_SPEECH: ${message}`);
74
+ throw error;
75
+ }
76
+ }
77
+
78
+ export { fetchTextToSpeech };