@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,242 @@
1
+ /**
2
+ * Voice Tool Calling Integration
3
+ *
4
+ * Enables voice agents to call tools mid-conversation.
5
+ * Tools are functions that can be invoked during a call
6
+ * to look up data, perform actions, or control call flow.
7
+ *
8
+ * @module ai/voice/tools
9
+ */
10
+ import type { ToolCallRecord, TranscriptEntry } from '../../types/voice-ai';
11
+ /**
12
+ * Context provided to tool handlers
13
+ */
14
+ export interface ToolContext {
15
+ /** Session ID */
16
+ sessionId: string;
17
+ /** Voice agent ID */
18
+ agentId: string;
19
+ /** Customer phone number (if phone call) */
20
+ customerPhone?: string;
21
+ /** Current transcript */
22
+ transcript: TranscriptEntry[];
23
+ /** Session metadata */
24
+ metadata?: Record<string, unknown>;
25
+ /** Provider-specific context */
26
+ providerContext?: Record<string, unknown>;
27
+ }
28
+ /**
29
+ * Tool handler function
30
+ *
31
+ * @param args - Arguments passed to the tool
32
+ * @param context - Execution context
33
+ * @returns Tool result (will be sent back to the voice agent)
34
+ */
35
+ export type ToolHandler<TArgs = Record<string, unknown>, TResult = unknown> = (args: TArgs, context: ToolContext) => Promise<TResult>;
36
+ /**
37
+ * Tool registration options
38
+ */
39
+ export interface RegisterToolOptions {
40
+ /** Tool name (must match VoiceAgentTool.name) */
41
+ name: string;
42
+ /** Tool handler function */
43
+ handler: ToolHandler;
44
+ /** Timeout in milliseconds (default: 10000) */
45
+ timeout?: number;
46
+ /** Whether this tool can end the call */
47
+ canEndCall?: boolean;
48
+ /** Validation function for arguments */
49
+ validate?: (args: Record<string, unknown>) => boolean | string;
50
+ }
51
+ /**
52
+ * Tool execution result
53
+ */
54
+ export interface ToolExecutionResult {
55
+ /** Tool call record */
56
+ record: ToolCallRecord;
57
+ /** Whether to end the call */
58
+ endCall?: boolean;
59
+ /** Message to speak before continuing/ending */
60
+ message?: string;
61
+ }
62
+ /**
63
+ * Transfer result from a tool
64
+ */
65
+ export interface TransferResult {
66
+ /** Signal transfer */
67
+ transfer: true;
68
+ /** Department or destination */
69
+ department?: string;
70
+ /** Phone number to transfer to */
71
+ number?: string;
72
+ /** Priority level */
73
+ priority?: 'low' | 'normal' | 'high';
74
+ /** Message to speak before transfer */
75
+ message?: string;
76
+ }
77
+ /**
78
+ * Voice tool registry and executor
79
+ *
80
+ * Manages tool registration and execution for voice agents.
81
+ * Tools are called mid-conversation when the voice agent
82
+ * decides to invoke them.
83
+ *
84
+ * @example
85
+ * ```typescript
86
+ * const registry = new VoiceToolRegistry()
87
+ *
88
+ * // Register a tool
89
+ * registry.register({
90
+ * name: 'lookup_order',
91
+ * handler: async (args, context) => {
92
+ * const order = await db.orders.get(args.orderId)
93
+ * return { status: order.status, eta: order.eta }
94
+ * },
95
+ * })
96
+ *
97
+ * // Execute a tool call
98
+ * const result = await registry.execute('lookup_order', { orderId: '123' }, context)
99
+ * ```
100
+ */
101
+ export declare class VoiceToolRegistry {
102
+ private tools;
103
+ private defaultTimeout;
104
+ /**
105
+ * Register a tool handler
106
+ *
107
+ * @param options - Tool registration options
108
+ */
109
+ register(options: RegisterToolOptions): void;
110
+ /**
111
+ * Register multiple tools at once
112
+ *
113
+ * @param tools - Array of tool registration options
114
+ */
115
+ registerAll(tools: RegisterToolOptions[]): void;
116
+ /**
117
+ * Unregister a tool
118
+ *
119
+ * @param name - Tool name
120
+ * @returns True if tool was unregistered
121
+ */
122
+ unregister(name: string): boolean;
123
+ /**
124
+ * Check if a tool is registered
125
+ *
126
+ * @param name - Tool name
127
+ * @returns True if tool is registered
128
+ */
129
+ has(name: string): boolean;
130
+ /**
131
+ * Get registered tool names
132
+ *
133
+ * @returns Array of tool names
134
+ */
135
+ list(): string[];
136
+ /**
137
+ * Execute a tool call
138
+ *
139
+ * @param name - Tool name
140
+ * @param args - Tool arguments
141
+ * @param context - Execution context
142
+ * @returns Tool execution result
143
+ */
144
+ execute(name: string, args: Record<string, unknown>, context: ToolContext): Promise<ToolExecutionResult>;
145
+ /**
146
+ * Set default timeout for tool execution
147
+ *
148
+ * @param timeout - Timeout in milliseconds
149
+ */
150
+ setDefaultTimeout(timeout: number): void;
151
+ /**
152
+ * Clear all registered tools
153
+ */
154
+ clear(): void;
155
+ }
156
+ /**
157
+ * Create a lookup tool that queries a data source
158
+ *
159
+ * @param name - Tool name
160
+ * @param description - Tool description
161
+ * @param lookup - Lookup function
162
+ * @returns Tool registration options
163
+ */
164
+ export declare function createLookupTool<T>(name: string, description: string, lookup: (args: Record<string, unknown>, context: ToolContext) => Promise<T>): RegisterToolOptions;
165
+ /**
166
+ * Create an action tool that performs a side effect
167
+ *
168
+ * @param name - Tool name
169
+ * @param description - Tool description
170
+ * @param action - Action function
171
+ * @returns Tool registration options
172
+ */
173
+ export declare function createActionTool(name: string, description: string, action: (args: Record<string, unknown>, context: ToolContext) => Promise<{
174
+ success: boolean;
175
+ message?: string;
176
+ }>): RegisterToolOptions;
177
+ /**
178
+ * Create a transfer tool that initiates call transfer
179
+ *
180
+ * @param name - Tool name
181
+ * @param getTransferConfig - Function to determine transfer destination
182
+ * @returns Tool registration options
183
+ */
184
+ export declare function createTransferTool(name: string, getTransferConfig: (args: Record<string, unknown>, context: ToolContext) => Promise<Omit<TransferResult, 'transfer'>>): RegisterToolOptions;
185
+ /**
186
+ * Create an end call tool
187
+ *
188
+ * @param name - Tool name
189
+ * @param getMessage - Function to get closing message
190
+ * @returns Tool registration options
191
+ */
192
+ export declare function createEndCallTool(name: string, getMessage: (args: Record<string, unknown>, context: ToolContext) => Promise<string>): RegisterToolOptions;
193
+ /**
194
+ * Voice tools singleton access
195
+ *
196
+ * @example
197
+ * ```typescript
198
+ * import { VoiceTools } from 'do/ai/voice'
199
+ *
200
+ * VoiceTools.register({
201
+ * name: 'lookup_order',
202
+ * handler: async (args, context) => {
203
+ * // ...
204
+ * },
205
+ * })
206
+ * ```
207
+ */
208
+ export declare const VoiceTools: {
209
+ /**
210
+ * Register a tool
211
+ */
212
+ register(options: RegisterToolOptions): void;
213
+ /**
214
+ * Register multiple tools
215
+ */
216
+ registerAll(tools: RegisterToolOptions[]): void;
217
+ /**
218
+ * Unregister a tool
219
+ */
220
+ unregister(name: string): boolean;
221
+ /**
222
+ * Check if tool is registered
223
+ */
224
+ has(name: string): boolean;
225
+ /**
226
+ * List registered tools
227
+ */
228
+ list(): string[];
229
+ /**
230
+ * Execute a tool
231
+ */
232
+ execute(name: string, args: Record<string, unknown>, context: ToolContext): Promise<ToolExecutionResult>;
233
+ /**
234
+ * Clear all tools
235
+ */
236
+ clear(): void;
237
+ /**
238
+ * Get the underlying registry
239
+ */
240
+ getRegistry(): VoiceToolRegistry;
241
+ };
242
+ //# sourceMappingURL=tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../ai/voice/tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,370 @@
1
+ /**
2
+ * Voice Tool Calling Integration
3
+ *
4
+ * Enables voice agents to call tools mid-conversation.
5
+ * Tools are functions that can be invoked during a call
6
+ * to look up data, perform actions, or control call flow.
7
+ *
8
+ * @module ai/voice/tools
9
+ */
10
+ // =============================================================================
11
+ // Voice Tool Registry
12
+ // =============================================================================
13
+ /**
14
+ * Voice tool registry and executor
15
+ *
16
+ * Manages tool registration and execution for voice agents.
17
+ * Tools are called mid-conversation when the voice agent
18
+ * decides to invoke them.
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * const registry = new VoiceToolRegistry()
23
+ *
24
+ * // Register a tool
25
+ * registry.register({
26
+ * name: 'lookup_order',
27
+ * handler: async (args, context) => {
28
+ * const order = await db.orders.get(args.orderId)
29
+ * return { status: order.status, eta: order.eta }
30
+ * },
31
+ * })
32
+ *
33
+ * // Execute a tool call
34
+ * const result = await registry.execute('lookup_order', { orderId: '123' }, context)
35
+ * ```
36
+ */
37
+ export class VoiceToolRegistry {
38
+ tools = new Map();
39
+ defaultTimeout = 10000;
40
+ /**
41
+ * Register a tool handler
42
+ *
43
+ * @param options - Tool registration options
44
+ */
45
+ register(options) {
46
+ if (this.tools.has(options.name)) {
47
+ throw new Error(`Tool already registered: ${options.name}`);
48
+ }
49
+ this.tools.set(options.name, options);
50
+ }
51
+ /**
52
+ * Register multiple tools at once
53
+ *
54
+ * @param tools - Array of tool registration options
55
+ */
56
+ registerAll(tools) {
57
+ for (const tool of tools) {
58
+ this.register(tool);
59
+ }
60
+ }
61
+ /**
62
+ * Unregister a tool
63
+ *
64
+ * @param name - Tool name
65
+ * @returns True if tool was unregistered
66
+ */
67
+ unregister(name) {
68
+ return this.tools.delete(name);
69
+ }
70
+ /**
71
+ * Check if a tool is registered
72
+ *
73
+ * @param name - Tool name
74
+ * @returns True if tool is registered
75
+ */
76
+ has(name) {
77
+ return this.tools.has(name);
78
+ }
79
+ /**
80
+ * Get registered tool names
81
+ *
82
+ * @returns Array of tool names
83
+ */
84
+ list() {
85
+ return Array.from(this.tools.keys());
86
+ }
87
+ /**
88
+ * Execute a tool call
89
+ *
90
+ * @param name - Tool name
91
+ * @param args - Tool arguments
92
+ * @param context - Execution context
93
+ * @returns Tool execution result
94
+ */
95
+ async execute(name, args, context) {
96
+ const tool = this.tools.get(name);
97
+ if (!tool) {
98
+ return {
99
+ record: createErrorRecord(name, args, `Tool not found: ${name}`),
100
+ };
101
+ }
102
+ // Validate arguments
103
+ if (tool.validate) {
104
+ const validationResult = tool.validate(args);
105
+ if (validationResult !== true) {
106
+ const error = typeof validationResult === 'string' ? validationResult : 'Invalid arguments';
107
+ return {
108
+ record: createErrorRecord(name, args, error),
109
+ };
110
+ }
111
+ }
112
+ const startTime = Date.now();
113
+ const recordId = `tc_${generateId()}`;
114
+ try {
115
+ // Execute with timeout
116
+ const result = await executeWithTimeout(tool.handler(args, context), tool.timeout ?? this.defaultTimeout);
117
+ // Check for transfer result
118
+ if (isTransferResult(result)) {
119
+ return {
120
+ record: {
121
+ id: recordId,
122
+ toolName: name,
123
+ arguments: args,
124
+ result,
125
+ startTime,
126
+ endTime: Date.now(),
127
+ success: true,
128
+ },
129
+ endCall: false,
130
+ message: result.message,
131
+ };
132
+ }
133
+ // Check for end call
134
+ const endCall = tool.canEndCall && isEndCallResult(result);
135
+ return {
136
+ record: {
137
+ id: recordId,
138
+ toolName: name,
139
+ arguments: args,
140
+ result,
141
+ startTime,
142
+ endTime: Date.now(),
143
+ success: true,
144
+ },
145
+ endCall,
146
+ message: typeof result === 'object' && result !== null && 'message' in result
147
+ ? result.message
148
+ : undefined,
149
+ };
150
+ }
151
+ catch (error) {
152
+ const errorMessage = error instanceof Error ? error.message : String(error);
153
+ return {
154
+ record: {
155
+ id: recordId,
156
+ toolName: name,
157
+ arguments: args,
158
+ startTime,
159
+ endTime: Date.now(),
160
+ success: false,
161
+ error: errorMessage,
162
+ },
163
+ };
164
+ }
165
+ }
166
+ /**
167
+ * Set default timeout for tool execution
168
+ *
169
+ * @param timeout - Timeout in milliseconds
170
+ */
171
+ setDefaultTimeout(timeout) {
172
+ this.defaultTimeout = timeout;
173
+ }
174
+ /**
175
+ * Clear all registered tools
176
+ */
177
+ clear() {
178
+ this.tools.clear();
179
+ }
180
+ }
181
+ // =============================================================================
182
+ // Common Tool Factories
183
+ // =============================================================================
184
+ /**
185
+ * Create a lookup tool that queries a data source
186
+ *
187
+ * @param name - Tool name
188
+ * @param description - Tool description
189
+ * @param lookup - Lookup function
190
+ * @returns Tool registration options
191
+ */
192
+ export function createLookupTool(name, description, lookup) {
193
+ return {
194
+ name,
195
+ handler: lookup,
196
+ };
197
+ }
198
+ /**
199
+ * Create an action tool that performs a side effect
200
+ *
201
+ * @param name - Tool name
202
+ * @param description - Tool description
203
+ * @param action - Action function
204
+ * @returns Tool registration options
205
+ */
206
+ export function createActionTool(name, description, action) {
207
+ return {
208
+ name,
209
+ handler: action,
210
+ };
211
+ }
212
+ /**
213
+ * Create a transfer tool that initiates call transfer
214
+ *
215
+ * @param name - Tool name
216
+ * @param getTransferConfig - Function to determine transfer destination
217
+ * @returns Tool registration options
218
+ */
219
+ export function createTransferTool(name, getTransferConfig) {
220
+ return {
221
+ name,
222
+ handler: async (args, context) => {
223
+ const config = await getTransferConfig(args, context);
224
+ return { transfer: true, ...config };
225
+ },
226
+ };
227
+ }
228
+ /**
229
+ * Create an end call tool
230
+ *
231
+ * @param name - Tool name
232
+ * @param getMessage - Function to get closing message
233
+ * @returns Tool registration options
234
+ */
235
+ export function createEndCallTool(name, getMessage) {
236
+ return {
237
+ name,
238
+ handler: async (args, context) => {
239
+ const message = await getMessage(args, context);
240
+ return { endCall: true, message };
241
+ },
242
+ canEndCall: true,
243
+ };
244
+ }
245
+ // =============================================================================
246
+ // Helper Functions
247
+ // =============================================================================
248
+ /**
249
+ * Generate a random ID
250
+ */
251
+ function generateId() {
252
+ // TODO: Use nanoid
253
+ return Math.random().toString(36).substring(2, 15);
254
+ }
255
+ /**
256
+ * Create an error tool call record
257
+ */
258
+ function createErrorRecord(toolName, args, error) {
259
+ const now = Date.now();
260
+ return {
261
+ id: `tc_${generateId()}`,
262
+ toolName,
263
+ arguments: args,
264
+ startTime: now,
265
+ endTime: now,
266
+ success: false,
267
+ error,
268
+ };
269
+ }
270
+ /**
271
+ * Execute a promise with timeout
272
+ */
273
+ async function executeWithTimeout(promise, timeout) {
274
+ const timeoutPromise = new Promise((_, reject) => {
275
+ setTimeout(() => reject(new Error('Tool execution timeout')), timeout);
276
+ });
277
+ return Promise.race([promise, timeoutPromise]);
278
+ }
279
+ /**
280
+ * Check if result signals transfer
281
+ */
282
+ function isTransferResult(result) {
283
+ return (typeof result === 'object' &&
284
+ result !== null &&
285
+ 'transfer' in result &&
286
+ result.transfer === true);
287
+ }
288
+ /**
289
+ * Check if result signals end call
290
+ */
291
+ function isEndCallResult(result) {
292
+ return (typeof result === 'object' &&
293
+ result !== null &&
294
+ 'endCall' in result &&
295
+ result.endCall === true);
296
+ }
297
+ // =============================================================================
298
+ // Singleton Access
299
+ // =============================================================================
300
+ const defaultRegistry = new VoiceToolRegistry();
301
+ /**
302
+ * Voice tools singleton access
303
+ *
304
+ * @example
305
+ * ```typescript
306
+ * import { VoiceTools } from 'do/ai/voice'
307
+ *
308
+ * VoiceTools.register({
309
+ * name: 'lookup_order',
310
+ * handler: async (args, context) => {
311
+ * // ...
312
+ * },
313
+ * })
314
+ * ```
315
+ */
316
+ export const VoiceTools = {
317
+ /**
318
+ * Register a tool
319
+ */
320
+ register(options) {
321
+ defaultRegistry.register(options);
322
+ },
323
+ /**
324
+ * Register multiple tools
325
+ */
326
+ registerAll(tools) {
327
+ defaultRegistry.registerAll(tools);
328
+ },
329
+ /**
330
+ * Unregister a tool
331
+ */
332
+ unregister(name) {
333
+ return defaultRegistry.unregister(name);
334
+ },
335
+ /**
336
+ * Check if tool is registered
337
+ */
338
+ has(name) {
339
+ return defaultRegistry.has(name);
340
+ },
341
+ /**
342
+ * List registered tools
343
+ */
344
+ list() {
345
+ return defaultRegistry.list();
346
+ },
347
+ /**
348
+ * Execute a tool
349
+ */
350
+ async execute(name, args, context) {
351
+ return defaultRegistry.execute(name, args, context);
352
+ },
353
+ /**
354
+ * Clear all tools
355
+ */
356
+ clear() {
357
+ defaultRegistry.clear();
358
+ },
359
+ /**
360
+ * Get the underlying registry
361
+ */
362
+ getRegistry() {
363
+ return defaultRegistry;
364
+ },
365
+ };
366
+ // =============================================================================
367
+ // Exports
368
+ // =============================================================================
369
+ // VoiceToolRegistry is already exported as a class declaration above
370
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../ai/voice/tools.ts"],"names":[],"mappings":"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"}