@dotdo/do 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (486) hide show
  1. package/README.md +400 -0
  2. package/dist/ai/embeddings.d.ts +129 -0
  3. package/dist/ai/embeddings.d.ts.map +1 -0
  4. package/dist/ai/embeddings.js +217 -0
  5. package/dist/ai/embeddings.js.map +1 -0
  6. package/dist/ai/gateway.d.ts +139 -0
  7. package/dist/ai/gateway.d.ts.map +1 -0
  8. package/dist/ai/gateway.js +179 -0
  9. package/dist/ai/gateway.js.map +1 -0
  10. package/dist/ai/image.d.ts +140 -0
  11. package/dist/ai/image.d.ts.map +1 -0
  12. package/dist/ai/image.js +199 -0
  13. package/dist/ai/image.js.map +1 -0
  14. package/dist/ai/index.d.ts +98 -0
  15. package/dist/ai/index.d.ts.map +1 -0
  16. package/dist/ai/index.js +223 -0
  17. package/dist/ai/index.js.map +1 -0
  18. package/dist/ai/models.d.ts +81 -0
  19. package/dist/ai/models.d.ts.map +1 -0
  20. package/dist/ai/models.js +537 -0
  21. package/dist/ai/models.js.map +1 -0
  22. package/dist/ai/text.d.ts +176 -0
  23. package/dist/ai/text.d.ts.map +1 -0
  24. package/dist/ai/text.js +253 -0
  25. package/dist/ai/text.js.map +1 -0
  26. package/dist/ai/voice/agents.d.ts +224 -0
  27. package/dist/ai/voice/agents.d.ts.map +1 -0
  28. package/dist/ai/voice/agents.js +375 -0
  29. package/dist/ai/voice/agents.js.map +1 -0
  30. package/dist/ai/voice/campaigns.d.ts +307 -0
  31. package/dist/ai/voice/campaigns.d.ts.map +1 -0
  32. package/dist/ai/voice/campaigns.js +739 -0
  33. package/dist/ai/voice/campaigns.js.map +1 -0
  34. package/dist/ai/voice/index.d.ts +21 -0
  35. package/dist/ai/voice/index.d.ts.map +1 -0
  36. package/dist/ai/voice/index.js +42 -0
  37. package/dist/ai/voice/index.js.map +1 -0
  38. package/dist/ai/voice/providers.d.ts +283 -0
  39. package/dist/ai/voice/providers.d.ts.map +1 -0
  40. package/dist/ai/voice/providers.js +286 -0
  41. package/dist/ai/voice/providers.js.map +1 -0
  42. package/dist/ai/voice/sessions.d.ts +294 -0
  43. package/dist/ai/voice/sessions.d.ts.map +1 -0
  44. package/dist/ai/voice/sessions.js +531 -0
  45. package/dist/ai/voice/sessions.js.map +1 -0
  46. package/dist/ai/voice/tools.d.ts +242 -0
  47. package/dist/ai/voice/tools.d.ts.map +1 -0
  48. package/dist/ai/voice/tools.js +370 -0
  49. package/dist/ai/voice/tools.js.map +1 -0
  50. package/dist/ai/voice/tts.d.ts +173 -0
  51. package/dist/ai/voice/tts.d.ts.map +1 -0
  52. package/dist/ai/voice/tts.js +252 -0
  53. package/dist/ai/voice/tts.js.map +1 -0
  54. package/dist/ai/voice/webrtc.d.ts +228 -0
  55. package/dist/ai/voice/webrtc.d.ts.map +1 -0
  56. package/dist/ai/voice/webrtc.js +372 -0
  57. package/dist/ai/voice/webrtc.js.map +1 -0
  58. package/dist/api/index.d.ts +103 -0
  59. package/dist/api/index.d.ts.map +1 -0
  60. package/dist/api/index.js +191 -0
  61. package/dist/api/index.js.map +1 -0
  62. package/dist/api/mcp/handlers.d.ts +25 -0
  63. package/dist/api/mcp/handlers.d.ts.map +1 -0
  64. package/dist/api/mcp/handlers.js +422 -0
  65. package/dist/api/mcp/handlers.js.map +1 -0
  66. package/dist/api/mcp/index.d.ts +113 -0
  67. package/dist/api/mcp/index.d.ts.map +1 -0
  68. package/dist/api/mcp/index.js +141 -0
  69. package/dist/api/mcp/index.js.map +1 -0
  70. package/dist/api/middleware/auth.d.ts +65 -0
  71. package/dist/api/middleware/auth.d.ts.map +1 -0
  72. package/dist/api/middleware/auth.js +271 -0
  73. package/dist/api/middleware/auth.js.map +1 -0
  74. package/dist/api/middleware/cors.d.ts +62 -0
  75. package/dist/api/middleware/cors.d.ts.map +1 -0
  76. package/dist/api/middleware/cors.js +225 -0
  77. package/dist/api/middleware/cors.js.map +1 -0
  78. package/dist/api/middleware/index.d.ts +60 -0
  79. package/dist/api/middleware/index.d.ts.map +1 -0
  80. package/dist/api/middleware/index.js +175 -0
  81. package/dist/api/middleware/index.js.map +1 -0
  82. package/dist/api/middleware/rateLimit.d.ts +84 -0
  83. package/dist/api/middleware/rateLimit.d.ts.map +1 -0
  84. package/dist/api/middleware/rateLimit.js +321 -0
  85. package/dist/api/middleware/rateLimit.js.map +1 -0
  86. package/dist/api/routes/ai.d.ts +17 -0
  87. package/dist/api/routes/ai.d.ts.map +1 -0
  88. package/dist/api/routes/ai.js +430 -0
  89. package/dist/api/routes/ai.js.map +1 -0
  90. package/dist/api/routes/do.d.ts +17 -0
  91. package/dist/api/routes/do.d.ts.map +1 -0
  92. package/dist/api/routes/do.js +458 -0
  93. package/dist/api/routes/do.js.map +1 -0
  94. package/dist/api/routes/functions.d.ts +111 -0
  95. package/dist/api/routes/functions.d.ts.map +1 -0
  96. package/dist/api/routes/functions.js +548 -0
  97. package/dist/api/routes/functions.js.map +1 -0
  98. package/dist/api/routes/health.d.ts +16 -0
  99. package/dist/api/routes/health.d.ts.map +1 -0
  100. package/dist/api/routes/health.js +163 -0
  101. package/dist/api/routes/health.js.map +1 -0
  102. package/dist/api/routes/index.d.ts +41 -0
  103. package/dist/api/routes/index.d.ts.map +1 -0
  104. package/dist/api/routes/index.js +275 -0
  105. package/dist/api/routes/index.js.map +1 -0
  106. package/dist/api/routes/nouns.d.ts +26 -0
  107. package/dist/api/routes/nouns.d.ts.map +1 -0
  108. package/dist/api/routes/nouns.js +456 -0
  109. package/dist/api/routes/nouns.js.map +1 -0
  110. package/dist/api/routes/orgs.d.ts +17 -0
  111. package/dist/api/routes/orgs.d.ts.map +1 -0
  112. package/dist/api/routes/orgs.js +560 -0
  113. package/dist/api/routes/orgs.js.map +1 -0
  114. package/dist/api/routes/relationships.d.ts +30 -0
  115. package/dist/api/routes/relationships.d.ts.map +1 -0
  116. package/dist/api/routes/relationships.js +360 -0
  117. package/dist/api/routes/relationships.js.map +1 -0
  118. package/dist/api/routes/roles.d.ts +17 -0
  119. package/dist/api/routes/roles.d.ts.map +1 -0
  120. package/dist/api/routes/roles.js +721 -0
  121. package/dist/api/routes/roles.js.map +1 -0
  122. package/dist/api/routes/things.d.ts +27 -0
  123. package/dist/api/routes/things.d.ts.map +1 -0
  124. package/dist/api/routes/things.js +568 -0
  125. package/dist/api/routes/things.js.map +1 -0
  126. package/dist/api/routes/users.d.ts +17 -0
  127. package/dist/api/routes/users.d.ts.map +1 -0
  128. package/dist/api/routes/users.js +401 -0
  129. package/dist/api/routes/users.js.map +1 -0
  130. package/dist/api/routes/verbs.d.ts +31 -0
  131. package/dist/api/routes/verbs.d.ts.map +1 -0
  132. package/dist/api/routes/verbs.js +505 -0
  133. package/dist/api/routes/verbs.js.map +1 -0
  134. package/dist/api/routes/workflows.d.ts +44 -0
  135. package/dist/api/routes/workflows.d.ts.map +1 -0
  136. package/dist/api/routes/workflows.js +521 -0
  137. package/dist/api/routes/workflows.js.map +1 -0
  138. package/dist/api/types.d.ts +370 -0
  139. package/dist/api/types.d.ts.map +1 -0
  140. package/dist/api/types.js +11 -0
  141. package/dist/api/types.js.map +1 -0
  142. package/dist/db/cdc/events.d.ts +201 -0
  143. package/dist/db/cdc/events.d.ts.map +1 -0
  144. package/dist/db/cdc/events.js +271 -0
  145. package/dist/db/cdc/events.js.map +1 -0
  146. package/dist/db/cdc/index.d.ts +13 -0
  147. package/dist/db/cdc/index.d.ts.map +1 -0
  148. package/dist/db/cdc/index.js +16 -0
  149. package/dist/db/cdc/index.js.map +1 -0
  150. package/dist/db/cdc/replay.d.ts +388 -0
  151. package/dist/db/cdc/replay.d.ts.map +1 -0
  152. package/dist/db/cdc/replay.js +469 -0
  153. package/dist/db/cdc/replay.js.map +1 -0
  154. package/dist/db/cdc/storage.d.ts +567 -0
  155. package/dist/db/cdc/storage.d.ts.map +1 -0
  156. package/dist/db/cdc/storage.js +856 -0
  157. package/dist/db/cdc/storage.js.map +1 -0
  158. package/dist/db/cdc/streaming.d.ts +459 -0
  159. package/dist/db/cdc/streaming.d.ts.map +1 -0
  160. package/dist/db/cdc/streaming.js +636 -0
  161. package/dist/db/cdc/streaming.js.map +1 -0
  162. package/dist/db/collections/actions.d.ts +440 -0
  163. package/dist/db/collections/actions.d.ts.map +1 -0
  164. package/dist/db/collections/actions.js +631 -0
  165. package/dist/db/collections/actions.js.map +1 -0
  166. package/dist/db/collections/base.d.ts +342 -0
  167. package/dist/db/collections/base.d.ts.map +1 -0
  168. package/dist/db/collections/base.js +510 -0
  169. package/dist/db/collections/base.js.map +1 -0
  170. package/dist/db/collections/index.d.ts +50 -0
  171. package/dist/db/collections/index.d.ts.map +1 -0
  172. package/dist/db/collections/index.js +48 -0
  173. package/dist/db/collections/index.js.map +1 -0
  174. package/dist/db/collections/nouns.d.ts +260 -0
  175. package/dist/db/collections/nouns.d.ts.map +1 -0
  176. package/dist/db/collections/nouns.js +273 -0
  177. package/dist/db/collections/nouns.js.map +1 -0
  178. package/dist/db/collections/relationships.d.ts +484 -0
  179. package/dist/db/collections/relationships.d.ts.map +1 -0
  180. package/dist/db/collections/relationships.js +815 -0
  181. package/dist/db/collections/relationships.js.map +1 -0
  182. package/dist/db/collections/things.d.ts +439 -0
  183. package/dist/db/collections/things.d.ts.map +1 -0
  184. package/dist/db/collections/things.js +603 -0
  185. package/dist/db/collections/things.js.map +1 -0
  186. package/dist/db/collections/verbs.d.ts +308 -0
  187. package/dist/db/collections/verbs.d.ts.map +1 -0
  188. package/dist/db/collections/verbs.js +480 -0
  189. package/dist/db/collections/verbs.js.map +1 -0
  190. package/dist/db/index.d.ts +14 -0
  191. package/dist/db/index.d.ts.map +1 -0
  192. package/dist/db/index.js +23 -0
  193. package/dist/db/index.js.map +1 -0
  194. package/dist/db/storage/cold.d.ts +313 -0
  195. package/dist/db/storage/cold.d.ts.map +1 -0
  196. package/dist/db/storage/cold.js +319 -0
  197. package/dist/db/storage/cold.js.map +1 -0
  198. package/dist/db/storage/hot.d.ts +340 -0
  199. package/dist/db/storage/hot.d.ts.map +1 -0
  200. package/dist/db/storage/hot.js +333 -0
  201. package/dist/db/storage/hot.js.map +1 -0
  202. package/dist/db/storage/index.d.ts +242 -0
  203. package/dist/db/storage/index.d.ts.map +1 -0
  204. package/dist/db/storage/index.js +109 -0
  205. package/dist/db/storage/index.js.map +1 -0
  206. package/dist/db/storage/snapshots.d.ts +342 -0
  207. package/dist/db/storage/snapshots.d.ts.map +1 -0
  208. package/dist/db/storage/snapshots.js +298 -0
  209. package/dist/db/storage/snapshots.js.map +1 -0
  210. package/dist/db/storage/vortex.d.ts +324 -0
  211. package/dist/db/storage/vortex.d.ts.map +1 -0
  212. package/dist/db/storage/vortex.js +365 -0
  213. package/dist/db/storage/vortex.js.map +1 -0
  214. package/dist/db/storage/warm.d.ts +306 -0
  215. package/dist/db/storage/warm.d.ts.map +1 -0
  216. package/dist/db/storage/warm.js +339 -0
  217. package/dist/db/storage/warm.js.map +1 -0
  218. package/dist/do/DigitalObject.d.ts +595 -0
  219. package/dist/do/DigitalObject.d.ts.map +1 -0
  220. package/dist/do/DigitalObject.js +971 -0
  221. package/dist/do/DigitalObject.js.map +1 -0
  222. package/dist/do/business/financial/accounting.d.ts +436 -0
  223. package/dist/do/business/financial/accounting.d.ts.map +1 -0
  224. package/dist/do/business/financial/accounting.js +476 -0
  225. package/dist/do/business/financial/accounting.js.map +1 -0
  226. package/dist/do/business/financial/index.d.ts +15 -0
  227. package/dist/do/business/financial/index.d.ts.map +1 -0
  228. package/dist/do/business/financial/index.js +20 -0
  229. package/dist/do/business/financial/index.js.map +1 -0
  230. package/dist/do/business/financial/metrics.d.ts +370 -0
  231. package/dist/do/business/financial/metrics.d.ts.map +1 -0
  232. package/dist/do/business/financial/metrics.js +376 -0
  233. package/dist/do/business/financial/metrics.js.map +1 -0
  234. package/dist/do/business/financial/payments.d.ts +397 -0
  235. package/dist/do/business/financial/payments.d.ts.map +1 -0
  236. package/dist/do/business/financial/payments.js +395 -0
  237. package/dist/do/business/financial/payments.js.map +1 -0
  238. package/dist/do/business/financial/reports.d.ts +284 -0
  239. package/dist/do/business/financial/reports.d.ts.map +1 -0
  240. package/dist/do/business/financial/reports.js +347 -0
  241. package/dist/do/business/financial/reports.js.map +1 -0
  242. package/dist/do/business/financial/stripe.d.ts +254 -0
  243. package/dist/do/business/financial/stripe.d.ts.map +1 -0
  244. package/dist/do/business/financial/stripe.js +261 -0
  245. package/dist/do/business/financial/stripe.js.map +1 -0
  246. package/dist/do/business/financial/subscriptions.d.ts +402 -0
  247. package/dist/do/business/financial/subscriptions.d.ts.map +1 -0
  248. package/dist/do/business/financial/subscriptions.js +349 -0
  249. package/dist/do/business/financial/subscriptions.js.map +1 -0
  250. package/dist/do/business/index.d.ts +9 -0
  251. package/dist/do/business/index.d.ts.map +1 -0
  252. package/dist/do/business/index.js +10 -0
  253. package/dist/do/business/index.js.map +1 -0
  254. package/dist/do/colo/followers.d.ts +194 -0
  255. package/dist/do/colo/followers.d.ts.map +1 -0
  256. package/dist/do/colo/followers.js +224 -0
  257. package/dist/do/colo/followers.js.map +1 -0
  258. package/dist/do/colo/fork.d.ts +103 -0
  259. package/dist/do/colo/fork.d.ts.map +1 -0
  260. package/dist/do/colo/fork.js +143 -0
  261. package/dist/do/colo/fork.js.map +1 -0
  262. package/dist/do/colo/index.d.ts +181 -0
  263. package/dist/do/colo/index.d.ts.map +1 -0
  264. package/dist/do/colo/index.js +145 -0
  265. package/dist/do/colo/index.js.map +1 -0
  266. package/dist/do/colo/info.d.ts +106 -0
  267. package/dist/do/colo/info.d.ts.map +1 -0
  268. package/dist/do/colo/info.js +196 -0
  269. package/dist/do/colo/info.js.map +1 -0
  270. package/dist/do/colo/migrate.d.ts +161 -0
  271. package/dist/do/colo/migrate.d.ts.map +1 -0
  272. package/dist/do/colo/migrate.js +190 -0
  273. package/dist/do/colo/migrate.js.map +1 -0
  274. package/dist/do/colo/routing.d.ts +182 -0
  275. package/dist/do/colo/routing.d.ts.map +1 -0
  276. package/dist/do/colo/routing.js +254 -0
  277. package/dist/do/colo/routing.js.map +1 -0
  278. package/dist/do/domains/dns.d.ts +269 -0
  279. package/dist/do/domains/dns.d.ts.map +1 -0
  280. package/dist/do/domains/dns.js +215 -0
  281. package/dist/do/domains/dns.js.map +1 -0
  282. package/dist/do/domains/index.d.ts +40 -0
  283. package/dist/do/domains/index.d.ts.map +1 -0
  284. package/dist/do/domains/index.js +61 -0
  285. package/dist/do/domains/index.js.map +1 -0
  286. package/dist/do/domains/routing.d.ts +263 -0
  287. package/dist/do/domains/routing.d.ts.map +1 -0
  288. package/dist/do/domains/routing.js +362 -0
  289. package/dist/do/domains/routing.js.map +1 -0
  290. package/dist/do/domains/ssl.d.ts +217 -0
  291. package/dist/do/domains/ssl.d.ts.map +1 -0
  292. package/dist/do/domains/ssl.js +231 -0
  293. package/dist/do/domains/ssl.js.map +1 -0
  294. package/dist/do/domains/subdomains.d.ts +207 -0
  295. package/dist/do/domains/subdomains.d.ts.map +1 -0
  296. package/dist/do/domains/subdomains.js +223 -0
  297. package/dist/do/domains/subdomains.js.map +1 -0
  298. package/dist/do/domains/tlds.d.ts +175 -0
  299. package/dist/do/domains/tlds.d.ts.map +1 -0
  300. package/dist/do/domains/tlds.js +188 -0
  301. package/dist/do/domains/tlds.js.map +1 -0
  302. package/dist/do/domains/validation.d.ts +164 -0
  303. package/dist/do/domains/validation.d.ts.map +1 -0
  304. package/dist/do/domains/validation.js +290 -0
  305. package/dist/do/domains/validation.js.map +1 -0
  306. package/dist/do/hibernation.d.ts +385 -0
  307. package/dist/do/hibernation.d.ts.map +1 -0
  308. package/dist/do/hibernation.js +518 -0
  309. package/dist/do/hibernation.js.map +1 -0
  310. package/dist/do/index.d.ts +19 -0
  311. package/dist/do/index.d.ts.map +1 -0
  312. package/dist/do/index.js +23 -0
  313. package/dist/do/index.js.map +1 -0
  314. package/dist/do/state.d.ts +336 -0
  315. package/dist/do/state.d.ts.map +1 -0
  316. package/dist/do/state.js +290 -0
  317. package/dist/do/state.js.map +1 -0
  318. package/dist/index.d.ts +44 -0
  319. package/dist/index.d.ts.map +1 -0
  320. package/dist/index.js +89 -0
  321. package/dist/index.js.map +1 -0
  322. package/dist/rpc/client.d.ts +426 -0
  323. package/dist/rpc/client.d.ts.map +1 -0
  324. package/dist/rpc/client.js +826 -0
  325. package/dist/rpc/client.js.map +1 -0
  326. package/dist/rpc/index.d.ts +19 -0
  327. package/dist/rpc/index.d.ts.map +1 -0
  328. package/dist/rpc/index.js +23 -0
  329. package/dist/rpc/index.js.map +1 -0
  330. package/dist/rpc/methods.d.ts +364 -0
  331. package/dist/rpc/methods.d.ts.map +1 -0
  332. package/dist/rpc/methods.js +557 -0
  333. package/dist/rpc/methods.js.map +1 -0
  334. package/dist/rpc/protocol.d.ts +310 -0
  335. package/dist/rpc/protocol.d.ts.map +1 -0
  336. package/dist/rpc/protocol.js +672 -0
  337. package/dist/rpc/protocol.js.map +1 -0
  338. package/dist/rpc/routes.d.ts +332 -0
  339. package/dist/rpc/routes.d.ts.map +1 -0
  340. package/dist/rpc/routes.js +633 -0
  341. package/dist/rpc/routes.js.map +1 -0
  342. package/dist/rpc/server.d.ts +380 -0
  343. package/dist/rpc/server.d.ts.map +1 -0
  344. package/dist/rpc/server.js +850 -0
  345. package/dist/rpc/server.js.map +1 -0
  346. package/dist/sdk/auth.d.ts +201 -0
  347. package/dist/sdk/auth.d.ts.map +1 -0
  348. package/dist/sdk/auth.js +343 -0
  349. package/dist/sdk/auth.js.map +1 -0
  350. package/dist/sdk/client.d.ts +123 -0
  351. package/dist/sdk/client.d.ts.map +1 -0
  352. package/dist/sdk/client.js +403 -0
  353. package/dist/sdk/client.js.map +1 -0
  354. package/dist/sdk/index.d.ts +123 -0
  355. package/dist/sdk/index.d.ts.map +1 -0
  356. package/dist/sdk/index.js +230 -0
  357. package/dist/sdk/index.js.map +1 -0
  358. package/dist/sdk/rpc.d.ts +275 -0
  359. package/dist/sdk/rpc.d.ts.map +1 -0
  360. package/dist/sdk/rpc.js +249 -0
  361. package/dist/sdk/rpc.js.map +1 -0
  362. package/dist/sdk/transport.d.ts +283 -0
  363. package/dist/sdk/transport.d.ts.map +1 -0
  364. package/dist/sdk/transport.js +661 -0
  365. package/dist/sdk/transport.js.map +1 -0
  366. package/dist/sdk/types.d.ts +265 -0
  367. package/dist/sdk/types.d.ts.map +1 -0
  368. package/dist/sdk/types.js +27 -0
  369. package/dist/sdk/types.js.map +1 -0
  370. package/dist/types/ai.d.ts +533 -0
  371. package/dist/types/ai.d.ts.map +1 -0
  372. package/dist/types/ai.js +18 -0
  373. package/dist/types/ai.js.map +1 -0
  374. package/dist/types/app.d.ts +371 -0
  375. package/dist/types/app.d.ts.map +1 -0
  376. package/dist/types/app.js +151 -0
  377. package/dist/types/app.js.map +1 -0
  378. package/dist/types/business.d.ts +482 -0
  379. package/dist/types/business.d.ts.map +1 -0
  380. package/dist/types/business.js +60 -0
  381. package/dist/types/business.js.map +1 -0
  382. package/dist/types/cascade.d.ts +323 -0
  383. package/dist/types/cascade.d.ts.map +1 -0
  384. package/dist/types/cascade.js +82 -0
  385. package/dist/types/cascade.js.map +1 -0
  386. package/dist/types/collections.d.ts +704 -0
  387. package/dist/types/collections.d.ts.map +1 -0
  388. package/dist/types/collections.js +23 -0
  389. package/dist/types/collections.js.map +1 -0
  390. package/dist/types/colo.d.ts +171 -0
  391. package/dist/types/colo.d.ts.map +1 -0
  392. package/dist/types/colo.js +63 -0
  393. package/dist/types/colo.js.map +1 -0
  394. package/dist/types/communication.d.ts +595 -0
  395. package/dist/types/communication.d.ts.map +1 -0
  396. package/dist/types/communication.js +16 -0
  397. package/dist/types/communication.js.map +1 -0
  398. package/dist/types/content.d.ts +286 -0
  399. package/dist/types/content.d.ts.map +1 -0
  400. package/dist/types/content.js +8 -0
  401. package/dist/types/content.js.map +1 -0
  402. package/dist/types/context.d.ts +407 -0
  403. package/dist/types/context.d.ts.map +1 -0
  404. package/dist/types/context.js +36 -0
  405. package/dist/types/context.js.map +1 -0
  406. package/dist/types/databases.d.ts +377 -0
  407. package/dist/types/databases.d.ts.map +1 -0
  408. package/dist/types/databases.js +14 -0
  409. package/dist/types/databases.js.map +1 -0
  410. package/dist/types/domains.d.ts +132 -0
  411. package/dist/types/domains.d.ts.map +1 -0
  412. package/dist/types/domains.js +107 -0
  413. package/dist/types/domains.js.map +1 -0
  414. package/dist/types/execution.d.ts +381 -0
  415. package/dist/types/execution.d.ts.map +1 -0
  416. package/dist/types/execution.js +40 -0
  417. package/dist/types/execution.js.map +1 -0
  418. package/dist/types/financial.d.ts +608 -0
  419. package/dist/types/financial.d.ts.map +1 -0
  420. package/dist/types/financial.js +12 -0
  421. package/dist/types/financial.js.map +1 -0
  422. package/dist/types/functions.d.ts +215 -0
  423. package/dist/types/functions.d.ts.map +1 -0
  424. package/dist/types/functions.js +15 -0
  425. package/dist/types/functions.js.map +1 -0
  426. package/dist/types/git.d.ts +299 -0
  427. package/dist/types/git.d.ts.map +1 -0
  428. package/dist/types/git.js +17 -0
  429. package/dist/types/git.js.map +1 -0
  430. package/dist/types/identity.d.ts +141 -0
  431. package/dist/types/identity.d.ts.map +1 -0
  432. package/dist/types/identity.js +54 -0
  433. package/dist/types/identity.js.map +1 -0
  434. package/dist/types/index.d.ts +40 -0
  435. package/dist/types/index.d.ts.map +1 -0
  436. package/dist/types/index.js +65 -0
  437. package/dist/types/index.js.map +1 -0
  438. package/dist/types/integrations.d.ts +356 -0
  439. package/dist/types/integrations.d.ts.map +1 -0
  440. package/dist/types/integrations.js +19 -0
  441. package/dist/types/integrations.js.map +1 -0
  442. package/dist/types/mdxui.d.ts +1955 -0
  443. package/dist/types/mdxui.d.ts.map +1 -0
  444. package/dist/types/mdxui.js +751 -0
  445. package/dist/types/mdxui.js.map +1 -0
  446. package/dist/types/observability.d.ts +315 -0
  447. package/dist/types/observability.d.ts.map +1 -0
  448. package/dist/types/observability.js +13 -0
  449. package/dist/types/observability.js.map +1 -0
  450. package/dist/types/rpc.d.ts +339 -0
  451. package/dist/types/rpc.d.ts.map +1 -0
  452. package/dist/types/rpc.js +24 -0
  453. package/dist/types/rpc.js.map +1 -0
  454. package/dist/types/saas.d.ts +678 -0
  455. package/dist/types/saas.d.ts.map +1 -0
  456. package/dist/types/saas.js +59 -0
  457. package/dist/types/saas.js.map +1 -0
  458. package/dist/types/service.d.ts +676 -0
  459. package/dist/types/service.d.ts.map +1 -0
  460. package/dist/types/service.js +69 -0
  461. package/dist/types/service.js.map +1 -0
  462. package/dist/types/site.d.ts +317 -0
  463. package/dist/types/site.d.ts.map +1 -0
  464. package/dist/types/site.js +203 -0
  465. package/dist/types/site.js.map +1 -0
  466. package/dist/types/startup.d.ts +576 -0
  467. package/dist/types/startup.d.ts.map +1 -0
  468. package/dist/types/startup.js +59 -0
  469. package/dist/types/startup.js.map +1 -0
  470. package/dist/types/storage.d.ts +276 -0
  471. package/dist/types/storage.d.ts.map +1 -0
  472. package/dist/types/storage.js +35 -0
  473. package/dist/types/storage.js.map +1 -0
  474. package/dist/types/telephony.d.ts +458 -0
  475. package/dist/types/telephony.d.ts.map +1 -0
  476. package/dist/types/telephony.js +19 -0
  477. package/dist/types/telephony.js.map +1 -0
  478. package/dist/types/tenant.d.ts +708 -0
  479. package/dist/types/tenant.d.ts.map +1 -0
  480. package/dist/types/tenant.js +103 -0
  481. package/dist/types/tenant.js.map +1 -0
  482. package/dist/types/voice-ai.d.ts +459 -0
  483. package/dist/types/voice-ai.d.ts.map +1 -0
  484. package/dist/types/voice-ai.js +32 -0
  485. package/dist/types/voice-ai.js.map +1 -0
  486. package/package.json +143 -0
@@ -0,0 +1,375 @@
1
+ /**
2
+ * Voice Agent Management
3
+ *
4
+ * Voice agents are Agents with voice modality enabled.
5
+ * This module provides CRUD operations for voice-specific configuration
6
+ * that links to core Agent entities.
7
+ *
8
+ * @module ai/voice/agents
9
+ */
10
+ import { VoiceProviderFactory } from './providers';
11
+ // =============================================================================
12
+ // Voice Agent Manager
13
+ // =============================================================================
14
+ /**
15
+ * Voice agent manager
16
+ *
17
+ * Provides CRUD operations for voice agents. Voice agents link to core Agent
18
+ * entities and add voice-specific configuration (voice settings, conversation
19
+ * config, phone integration).
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * const manager = new VoiceAgentManager(storage)
24
+ *
25
+ * // Create a voice agent
26
+ * const agent = await manager.create({
27
+ * name: 'Sales Assistant',
28
+ * provider: 'vapi',
29
+ * voice: { provider: 'elevenlabs', voiceId: 'voice_rachel' },
30
+ * conversation: { systemPrompt: '...', model: 'gpt-4o', modelProvider: 'openai' },
31
+ * ownerRef: { $id: 'do_123', $type: 'Organization' },
32
+ * })
33
+ *
34
+ * // Update voice settings
35
+ * await manager.update(agent.id, { voice: { speed: 1.1 } })
36
+ *
37
+ * // List all agents
38
+ * const agents = await manager.list({ status: 'active' })
39
+ * ```
40
+ */
41
+ export class VoiceAgentManager {
42
+ storage;
43
+ /**
44
+ * Create a new voice agent manager
45
+ *
46
+ * @param storage - DO storage interface
47
+ */
48
+ constructor(storage) {
49
+ this.storage = storage;
50
+ }
51
+ /**
52
+ * Create a new voice agent
53
+ *
54
+ * Creates the agent in both the local DO storage and the provider's system.
55
+ *
56
+ * @param options - Agent configuration
57
+ * @returns Created voice agent
58
+ */
59
+ async create(options) {
60
+ const id = `vagent_${generateId()}`;
61
+ const now = Date.now();
62
+ // Create agent in provider's system
63
+ const adapter = VoiceProviderFactory.get(options.provider);
64
+ const providerConfig = {
65
+ voice: options.voice,
66
+ conversation: options.conversation,
67
+ phone: options.phone ? {
68
+ inboundNumber: options.phone.inboundNumber,
69
+ outboundCallerId: options.phone.outboundCallerId,
70
+ } : undefined,
71
+ webhooks: options.webhooks ? {
72
+ onCallStart: options.webhooks.onCallStart,
73
+ onCallEnd: options.webhooks.onCallEnd,
74
+ onTranscript: options.webhooks.onTranscript,
75
+ onToolCall: options.webhooks.onToolCall,
76
+ } : undefined,
77
+ };
78
+ const providerResult = await adapter.createAgent(providerConfig);
79
+ // Create local agent record
80
+ const agent = {
81
+ id,
82
+ name: options.name,
83
+ provider: options.provider,
84
+ voice: options.voice,
85
+ conversation: options.conversation,
86
+ phone: options.phone,
87
+ webhooks: options.webhooks,
88
+ ownerRef: options.ownerRef,
89
+ status: 'Active',
90
+ createdAt: now,
91
+ updatedAt: now,
92
+ };
93
+ // Store with provider agent ID
94
+ await this.storage.put(`voice_agent:${id}`, {
95
+ ...agent,
96
+ providerAgentId: providerResult.providerAgentId,
97
+ providerMetadata: providerResult.metadata,
98
+ });
99
+ // Index by provider agent ID for webhook lookup
100
+ await this.storage.put(`voice_agent_provider:${providerResult.providerAgentId}`, id);
101
+ return agent;
102
+ }
103
+ /**
104
+ * Get a voice agent by ID
105
+ *
106
+ * @param id - Voice agent ID
107
+ * @returns Voice agent or null if not found
108
+ */
109
+ async get(id) {
110
+ const data = await this.storage.get(`voice_agent:${id}`);
111
+ if (!data)
112
+ return null;
113
+ // Remove internal fields
114
+ const { providerAgentId, providerMetadata, ...agent } = data;
115
+ return agent;
116
+ }
117
+ /**
118
+ * Get a voice agent by provider agent ID
119
+ *
120
+ * Useful for webhook processing where only the provider's ID is known.
121
+ *
122
+ * @param providerAgentId - Provider's agent ID
123
+ * @returns Voice agent or null if not found
124
+ */
125
+ async getByProviderAgentId(providerAgentId) {
126
+ const id = await this.storage.get(`voice_agent_provider:${providerAgentId}`);
127
+ if (!id)
128
+ return null;
129
+ return this.get(id);
130
+ }
131
+ /**
132
+ * Update a voice agent
133
+ *
134
+ * Updates both local storage and provider's system.
135
+ *
136
+ * @param id - Voice agent ID
137
+ * @param options - Fields to update
138
+ * @returns Updated voice agent
139
+ * @throws Error if agent not found
140
+ */
141
+ async update(id, options) {
142
+ const existing = await this.storage.get(`voice_agent:${id}`);
143
+ if (!existing) {
144
+ throw new Error(`Voice agent not found: ${id}`);
145
+ }
146
+ // Update provider if voice/conversation config changed
147
+ if (options.voice || options.conversation || options.phone || options.webhooks) {
148
+ const adapter = VoiceProviderFactory.get(existing.provider);
149
+ const providerConfig = {};
150
+ if (options.voice) {
151
+ providerConfig.voice = { ...existing.voice, ...options.voice };
152
+ }
153
+ if (options.conversation) {
154
+ providerConfig.conversation = { ...existing.conversation, ...options.conversation };
155
+ }
156
+ if (options.phone) {
157
+ providerConfig.phone = {
158
+ inboundNumber: options.phone.inboundNumber ?? existing.phone?.inboundNumber,
159
+ outboundCallerId: options.phone.outboundCallerId ?? existing.phone?.outboundCallerId,
160
+ };
161
+ }
162
+ if (options.webhooks) {
163
+ providerConfig.webhooks = {
164
+ onCallStart: options.webhooks.onCallStart ?? existing.webhooks?.onCallStart,
165
+ onCallEnd: options.webhooks.onCallEnd ?? existing.webhooks?.onCallEnd,
166
+ onTranscript: options.webhooks.onTranscript ?? existing.webhooks?.onTranscript,
167
+ onToolCall: options.webhooks.onToolCall ?? existing.webhooks?.onToolCall,
168
+ };
169
+ }
170
+ await adapter.updateAgent(existing.providerAgentId, providerConfig);
171
+ }
172
+ // Update local storage
173
+ const updated = {
174
+ ...existing,
175
+ name: options.name ?? existing.name,
176
+ voice: options.voice ? { ...existing.voice, ...options.voice } : existing.voice,
177
+ conversation: options.conversation ? { ...existing.conversation, ...options.conversation } : existing.conversation,
178
+ phone: options.phone ? { enabled: existing.phone?.enabled ?? false, ...existing.phone, ...options.phone } : existing.phone,
179
+ webhooks: options.webhooks ? { ...existing.webhooks, ...options.webhooks } : existing.webhooks,
180
+ status: options.status ? (options.status === 'active' ? 'Active' : 'Inactive') : existing.status,
181
+ updatedAt: Date.now(),
182
+ };
183
+ await this.storage.put(`voice_agent:${id}`, updated);
184
+ const { providerAgentId, providerMetadata, ...agent } = updated;
185
+ return agent;
186
+ }
187
+ /**
188
+ * Delete a voice agent
189
+ *
190
+ * Removes from both local storage and provider's system.
191
+ *
192
+ * @param id - Voice agent ID
193
+ * @returns True if deleted, false if not found
194
+ */
195
+ async delete(id) {
196
+ const existing = await this.storage.get(`voice_agent:${id}`);
197
+ if (!existing) {
198
+ return false;
199
+ }
200
+ // Delete from provider
201
+ const adapter = VoiceProviderFactory.get(existing.provider);
202
+ await adapter.deleteAgent(existing.providerAgentId);
203
+ // Delete from local storage
204
+ await this.storage.delete(`voice_agent:${id}`);
205
+ await this.storage.delete(`voice_agent_provider:${existing.providerAgentId}`);
206
+ return true;
207
+ }
208
+ /**
209
+ * List voice agents
210
+ *
211
+ * @param options - Filter and pagination options
212
+ * @returns List of voice agents
213
+ */
214
+ async list(options = {}) {
215
+ const { status, provider, ownerRef, limit = 50, offset = 0 } = options;
216
+ // Get all agents (in production, use SQL with proper filtering)
217
+ const allAgents = await this.storage.list({ prefix: 'voice_agent:' });
218
+ let items = [];
219
+ for (const [, agent] of allAgents) {
220
+ // Apply filters
221
+ const statusMatch = status ? (status === 'active' ? 'Active' : status === 'inactive' ? 'Inactive' : 'Error') : null;
222
+ if (statusMatch && agent.status !== statusMatch)
223
+ continue;
224
+ if (provider && agent.provider !== provider)
225
+ continue;
226
+ if (ownerRef && agent.ownerRef !== ownerRef)
227
+ continue;
228
+ // Remove internal fields
229
+ const { providerAgentId, providerMetadata, ...cleanAgent } = agent;
230
+ items.push(cleanAgent);
231
+ }
232
+ // Sort by createdAt descending
233
+ items.sort((a, b) => b.createdAt - a.createdAt);
234
+ const total = items.length;
235
+ items = items.slice(offset, offset + limit);
236
+ return {
237
+ items,
238
+ total,
239
+ hasMore: offset + items.length < total,
240
+ };
241
+ }
242
+ /**
243
+ * Add a tool to a voice agent
244
+ *
245
+ * @param id - Voice agent ID
246
+ * @param tool - Tool to add
247
+ * @returns Updated voice agent
248
+ */
249
+ async addTool(id, tool) {
250
+ const existing = await this.storage.get(`voice_agent:${id}`);
251
+ if (!existing) {
252
+ throw new Error(`Voice agent not found: ${id}`);
253
+ }
254
+ const tools = existing.conversation.tools || [];
255
+ if (tools.some((t) => t.name === tool.name)) {
256
+ throw new Error(`Tool already exists: ${tool.name}`);
257
+ }
258
+ return this.update(id, {
259
+ conversation: {
260
+ tools: [...tools, tool],
261
+ },
262
+ });
263
+ }
264
+ /**
265
+ * Remove a tool from a voice agent
266
+ *
267
+ * @param id - Voice agent ID
268
+ * @param toolName - Name of tool to remove
269
+ * @returns Updated voice agent
270
+ */
271
+ async removeTool(id, toolName) {
272
+ const existing = await this.storage.get(`voice_agent:${id}`);
273
+ if (!existing) {
274
+ throw new Error(`Voice agent not found: ${id}`);
275
+ }
276
+ const tools = existing.conversation.tools || [];
277
+ const filtered = tools.filter((t) => t.name !== toolName);
278
+ if (filtered.length === tools.length) {
279
+ throw new Error(`Tool not found: ${toolName}`);
280
+ }
281
+ return this.update(id, {
282
+ conversation: {
283
+ tools: filtered,
284
+ },
285
+ });
286
+ }
287
+ /**
288
+ * Set agent status
289
+ *
290
+ * @param id - Voice agent ID
291
+ * @param status - New status
292
+ * @returns Updated voice agent
293
+ */
294
+ async setStatus(id, status) {
295
+ return this.update(id, { status });
296
+ }
297
+ }
298
+ // =============================================================================
299
+ // Helper Functions
300
+ // =============================================================================
301
+ /**
302
+ * Generate a random ID
303
+ * @returns Random ID string
304
+ */
305
+ function generateId() {
306
+ // TODO: Use nanoid
307
+ return Math.random().toString(36).substring(2, 15);
308
+ }
309
+ // =============================================================================
310
+ // Singleton Access (for convenience)
311
+ // =============================================================================
312
+ let defaultManager = null;
313
+ /**
314
+ * Voice agents singleton access
315
+ *
316
+ * @example
317
+ * ```typescript
318
+ * import { VoiceAgents } from 'do/ai/voice'
319
+ *
320
+ * const agent = await VoiceAgents.create({ ... })
321
+ * ```
322
+ */
323
+ export const VoiceAgents = {
324
+ /**
325
+ * Initialize with storage
326
+ */
327
+ init(storage) {
328
+ defaultManager = new VoiceAgentManager(storage);
329
+ },
330
+ /**
331
+ * Create a voice agent
332
+ */
333
+ async create(options) {
334
+ if (!defaultManager)
335
+ throw new Error('VoiceAgents not initialized');
336
+ return defaultManager.create(options);
337
+ },
338
+ /**
339
+ * Get a voice agent
340
+ */
341
+ async get(id) {
342
+ if (!defaultManager)
343
+ throw new Error('VoiceAgents not initialized');
344
+ return defaultManager.get(id);
345
+ },
346
+ /**
347
+ * Update a voice agent
348
+ */
349
+ async update(id, options) {
350
+ if (!defaultManager)
351
+ throw new Error('VoiceAgents not initialized');
352
+ return defaultManager.update(id, options);
353
+ },
354
+ /**
355
+ * Delete a voice agent
356
+ */
357
+ async delete(id) {
358
+ if (!defaultManager)
359
+ throw new Error('VoiceAgents not initialized');
360
+ return defaultManager.delete(id);
361
+ },
362
+ /**
363
+ * List voice agents
364
+ */
365
+ async list(options) {
366
+ if (!defaultManager)
367
+ throw new Error('VoiceAgents not initialized');
368
+ return defaultManager.list(options);
369
+ },
370
+ };
371
+ // =============================================================================
372
+ // Type Exports
373
+ // =============================================================================
374
+ // Note: DurableObjectStorage is a Cloudflare Workers type, imported at runtime
375
+ //# sourceMappingURL=agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../../ai/voice/agents.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,307 @@
1
+ /**
2
+ * Outbound Campaign Management
3
+ *
4
+ * Manages automated outbound calling campaigns with
5
+ * scheduling, contact management, and real-time statistics.
6
+ *
7
+ * @module ai/voice/campaigns
8
+ */
9
+ import type { OutboundCampaign, CampaignContact, CampaignSchedule, CampaignSettings, CampaignStats } from '../../types/voice-ai';
10
+ import { VoiceSessionManager } from './sessions';
11
+ import { VoiceAgentManager } from './agents';
12
+ /**
13
+ * Options for creating a campaign
14
+ */
15
+ export interface CreateCampaignOptions {
16
+ /** Campaign name */
17
+ name: string;
18
+ /** Voice agent ID to use for calls */
19
+ agentId: string;
20
+ /** Contacts to call */
21
+ contacts: Omit<CampaignContact, 'id' | 'status'>[];
22
+ /** Schedule configuration */
23
+ schedule?: CampaignSchedule;
24
+ /** Campaign settings */
25
+ settings: Omit<CampaignSettings, 'callerId'> & {
26
+ callerId: string;
27
+ };
28
+ }
29
+ /**
30
+ * Options for updating a campaign
31
+ */
32
+ export interface UpdateCampaignOptions {
33
+ /** Campaign name */
34
+ name?: string;
35
+ /** Schedule configuration */
36
+ schedule?: Partial<CampaignSchedule>;
37
+ /** Campaign settings */
38
+ settings?: Partial<CampaignSettings>;
39
+ }
40
+ /**
41
+ * Options for listing campaigns
42
+ */
43
+ export interface ListCampaignsOptions {
44
+ /** Filter by status */
45
+ status?: OutboundCampaign['status'];
46
+ /** Filter by agent ID */
47
+ agentId?: string;
48
+ /** Limit results */
49
+ limit?: number;
50
+ /** Offset for pagination */
51
+ offset?: number;
52
+ }
53
+ /**
54
+ * Result of listing campaigns
55
+ */
56
+ export interface ListCampaignsResult {
57
+ /** Campaigns */
58
+ items: OutboundCampaign[];
59
+ /** Total count */
60
+ total: number;
61
+ /** Has more results */
62
+ hasMore: boolean;
63
+ }
64
+ /**
65
+ * Campaign event types
66
+ */
67
+ export type CampaignEventType = 'started' | 'paused' | 'resumed' | 'completed' | 'contact_called' | 'contact_completed' | 'contact_failed' | 'stats_updated';
68
+ /**
69
+ * Campaign event handler
70
+ */
71
+ export type CampaignEventHandler<T = unknown> = (data: T) => void | Promise<void>;
72
+ /**
73
+ * Outbound campaign manager
74
+ *
75
+ * Manages automated outbound calling campaigns with scheduling,
76
+ * contact list management, retry logic, and statistics.
77
+ *
78
+ * @example
79
+ * ```typescript
80
+ * const manager = new VoiceCampaignManager(storage, sessionManager, agentManager)
81
+ *
82
+ * // Create a campaign
83
+ * const campaign = await manager.create({
84
+ * name: 'Q4 Follow-up',
85
+ * agentId: 'vagent_sales',
86
+ * contacts: [
87
+ * { phone: '+1-555-0001', name: 'Alice' },
88
+ * { phone: '+1-555-0002', name: 'Bob' },
89
+ * ],
90
+ * schedule: {
91
+ * startDate: Date.now(),
92
+ * callingHours: { start: '09:00', end: '17:00' },
93
+ * daysOfWeek: [1, 2, 3, 4, 5],
94
+ * timezone: 'America/New_York',
95
+ * maxConcurrent: 5,
96
+ * },
97
+ * settings: {
98
+ * maxAttempts: 3,
99
+ * retryDelay: 60,
100
+ * voicemailDetection: true,
101
+ * callerId: '+1-555-0100',
102
+ * },
103
+ * })
104
+ *
105
+ * // Start the campaign
106
+ * await manager.start(campaign.id)
107
+ *
108
+ * // Monitor stats
109
+ * const stats = await manager.getStats(campaign.id)
110
+ * ```
111
+ */
112
+ export declare class VoiceCampaignManager {
113
+ private storage;
114
+ private sessionManager;
115
+ private agentManager;
116
+ private eventHandlers;
117
+ /**
118
+ * Create a campaign manager
119
+ *
120
+ * @param storage - DO storage interface
121
+ * @param sessionManager - Voice session manager
122
+ * @param agentManager - Voice agent manager
123
+ */
124
+ constructor(storage: DurableObjectStorage, sessionManager: VoiceSessionManager, agentManager: VoiceAgentManager);
125
+ /**
126
+ * Create a new campaign
127
+ *
128
+ * @param options - Campaign options
129
+ * @returns Created campaign
130
+ */
131
+ create(options: CreateCampaignOptions): Promise<OutboundCampaign>;
132
+ /**
133
+ * Get a campaign by ID
134
+ *
135
+ * @param id - Campaign ID
136
+ * @returns Campaign or null if not found
137
+ */
138
+ get(id: string): Promise<OutboundCampaign | null>;
139
+ /**
140
+ * Update a campaign
141
+ *
142
+ * Can only update draft or paused campaigns.
143
+ *
144
+ * @param id - Campaign ID
145
+ * @param options - Fields to update
146
+ * @returns Updated campaign
147
+ */
148
+ update(id: string, options: UpdateCampaignOptions): Promise<OutboundCampaign>;
149
+ /**
150
+ * Add contacts to a campaign
151
+ *
152
+ * Can only add contacts to draft or paused campaigns.
153
+ *
154
+ * @param id - Campaign ID
155
+ * @param contacts - Contacts to add
156
+ * @returns Updated campaign
157
+ */
158
+ addContacts(id: string, contacts: Omit<CampaignContact, 'id' | 'status'>[]): Promise<OutboundCampaign>;
159
+ /**
160
+ * Remove a contact from a campaign
161
+ *
162
+ * @param id - Campaign ID
163
+ * @param contactId - Contact ID
164
+ * @returns Updated campaign
165
+ */
166
+ removeContact(id: string, contactId: string): Promise<OutboundCampaign>;
167
+ /**
168
+ * Start a campaign
169
+ *
170
+ * @param id - Campaign ID
171
+ * @returns Updated campaign
172
+ */
173
+ start(id: string): Promise<OutboundCampaign>;
174
+ /**
175
+ * Pause a running campaign
176
+ *
177
+ * @param id - Campaign ID
178
+ * @returns Updated campaign
179
+ */
180
+ pause(id: string): Promise<OutboundCampaign>;
181
+ /**
182
+ * Resume a paused campaign
183
+ *
184
+ * @param id - Campaign ID
185
+ * @returns Updated campaign
186
+ */
187
+ resume(id: string): Promise<OutboundCampaign>;
188
+ /**
189
+ * Stop a campaign (mark as completed)
190
+ *
191
+ * @param id - Campaign ID
192
+ * @returns Updated campaign
193
+ */
194
+ stop(id: string): Promise<OutboundCampaign>;
195
+ /**
196
+ * Delete a campaign
197
+ *
198
+ * @param id - Campaign ID
199
+ * @returns True if deleted
200
+ */
201
+ delete(id: string): Promise<boolean>;
202
+ /**
203
+ * List campaigns
204
+ *
205
+ * @param options - Filter and pagination options
206
+ * @returns List of campaigns
207
+ */
208
+ list(options?: ListCampaignsOptions): Promise<ListCampaignsResult>;
209
+ /**
210
+ * Get campaign statistics
211
+ *
212
+ * @param id - Campaign ID
213
+ * @returns Campaign statistics
214
+ */
215
+ getStats(id: string): Promise<CampaignStats>;
216
+ /**
217
+ * Schedule the next batch of calls
218
+ *
219
+ * @param id - Campaign ID
220
+ */
221
+ scheduleNextBatch(id: string): Promise<void>;
222
+ /**
223
+ * Start a call for a campaign contact
224
+ *
225
+ * @param campaignId - Campaign ID
226
+ * @param contact - Contact to call
227
+ */
228
+ private startContactCall;
229
+ /**
230
+ * Update contact status
231
+ */
232
+ private updateContactStatus;
233
+ /**
234
+ * Update contact with session ID
235
+ */
236
+ private updateContactSession;
237
+ /**
238
+ * Handle session completion (called from webhook processor)
239
+ *
240
+ * @param campaignId - Campaign ID
241
+ * @param contactId - Contact ID
242
+ * @param outcome - Call outcome
243
+ */
244
+ handleSessionComplete(campaignId: string, contactId: string, outcome: 'Completed' | 'Failed'): Promise<void>;
245
+ /**
246
+ * Subscribe to campaign events
247
+ *
248
+ * @param campaignId - Campaign ID
249
+ * @param event - Event type
250
+ * @param handler - Event handler
251
+ * @returns Unsubscribe function
252
+ */
253
+ on(campaignId: string, event: CampaignEventType, handler: CampaignEventHandler): () => void;
254
+ /**
255
+ * Watch campaign stats (returns async iterator)
256
+ *
257
+ * @param campaignId - Campaign ID
258
+ * @returns Async iterator of stats updates
259
+ */
260
+ watchStats(campaignId: string): AsyncGenerator<CampaignStats>;
261
+ /**
262
+ * Emit a campaign event
263
+ */
264
+ private emit;
265
+ }
266
+ /**
267
+ * Voice campaigns singleton access
268
+ */
269
+ export declare const VoiceCampaigns: {
270
+ /**
271
+ * Initialize with dependencies
272
+ */
273
+ init(storage: DurableObjectStorage, sessionManager: VoiceSessionManager, agentManager: VoiceAgentManager): void;
274
+ /**
275
+ * Create a campaign
276
+ */
277
+ create(options: CreateCampaignOptions): Promise<OutboundCampaign>;
278
+ /**
279
+ * Get a campaign
280
+ */
281
+ get(id: string): Promise<OutboundCampaign | null>;
282
+ /**
283
+ * Start a campaign
284
+ */
285
+ start(id: string): Promise<OutboundCampaign>;
286
+ /**
287
+ * Pause a campaign
288
+ */
289
+ pause(id: string): Promise<OutboundCampaign>;
290
+ /**
291
+ * Resume a campaign
292
+ */
293
+ resume(id: string): Promise<OutboundCampaign>;
294
+ /**
295
+ * Get campaign stats
296
+ */
297
+ getStats(id: string): Promise<CampaignStats>;
298
+ /**
299
+ * List campaigns
300
+ */
301
+ list(options?: ListCampaignsOptions): Promise<ListCampaignsResult>;
302
+ /**
303
+ * Watch campaign stats
304
+ */
305
+ watchStats(id: string): AsyncGenerator<CampaignStats>;
306
+ };
307
+ //# sourceMappingURL=campaigns.d.ts.map