@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,372 @@
1
+ /**
2
+ * WebRTC Session Handling
3
+ *
4
+ * Manages browser-based voice calls using WebRTC.
5
+ * Supports multiple providers (LiveKit, Daily, Twilio).
6
+ *
7
+ * @module ai/voice/webrtc
8
+ */
9
+ import { VoiceProviderFactory } from './providers';
10
+ // =============================================================================
11
+ // WebRTC Session Manager
12
+ // =============================================================================
13
+ /**
14
+ * WebRTC session manager
15
+ *
16
+ * Creates and manages WebRTC sessions for browser-based voice calls.
17
+ * Works with LiveKit, Daily, or other WebRTC providers.
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * const manager = new WebRTCSessionManager(storage, agentManager, sessionManager)
22
+ *
23
+ * // Create a session for a user
24
+ * const { sessionId, roomUrl, token } = await manager.create({
25
+ * agentId: 'vagent_support',
26
+ * identity: 'user_123',
27
+ * displayName: 'John Doe',
28
+ * audioOnly: true,
29
+ * })
30
+ *
31
+ * // Client uses token to connect
32
+ * // const room = await LivekitClient.connect(roomUrl, token)
33
+ *
34
+ * // Get room info
35
+ * const room = await manager.getRoom(sessionId)
36
+ * ```
37
+ */
38
+ export class WebRTCSessionManager {
39
+ storage;
40
+ agentManager;
41
+ sessionManager;
42
+ /**
43
+ * Create a WebRTC session manager
44
+ *
45
+ * @param storage - DO storage interface
46
+ * @param agentManager - Voice agent manager
47
+ * @param sessionManager - Voice session manager
48
+ */
49
+ constructor(storage, agentManager, sessionManager) {
50
+ this.storage = storage;
51
+ this.agentManager = agentManager;
52
+ this.sessionManager = sessionManager;
53
+ }
54
+ /**
55
+ * Create a new WebRTC session
56
+ *
57
+ * Creates a room and generates an access token for the participant.
58
+ *
59
+ * @param options - Session options
60
+ * @returns Session details including token and room URL
61
+ */
62
+ async create(options) {
63
+ const { agentId, identity, displayName, audioOnly, autoConnect, metadata, transcription } = options;
64
+ // Get agent
65
+ const agent = await this.agentManager.get(agentId);
66
+ if (!agent) {
67
+ throw new Error(`Voice agent not found: ${agentId}`);
68
+ }
69
+ // Get provider adapter
70
+ const adapter = VoiceProviderFactory.get(agent.provider);
71
+ if (!adapter.createRoom) {
72
+ throw new Error(`Provider ${agent.provider} does not support WebRTC`);
73
+ }
74
+ // Get provider agent ID
75
+ const agentData = await this.storage.get(`voice_agent:${agentId}`);
76
+ if (!agentData?.providerAgentId) {
77
+ throw new Error(`Provider agent ID not found for: ${agentId}`);
78
+ }
79
+ // Create room via provider
80
+ const { token, roomUrl } = await adapter.createRoom(agentData.providerAgentId, identity);
81
+ // Extract room name from URL
82
+ const roomName = extractRoomName(roomUrl);
83
+ // Create voice session to track the call
84
+ const session = await this.sessionManager.createInbound(agentId, roomName, identity);
85
+ // Create config
86
+ const config = {
87
+ provider: agent.provider,
88
+ roomName,
89
+ identity,
90
+ audioOnly: audioOnly ?? true,
91
+ autoConnect: autoConnect ?? true,
92
+ token,
93
+ };
94
+ // Store room info
95
+ const room = {
96
+ name: roomName,
97
+ url: roomUrl,
98
+ sessionId: session.id,
99
+ agentId,
100
+ provider: agent.provider,
101
+ participants: [
102
+ {
103
+ identity,
104
+ displayName,
105
+ isAgent: false,
106
+ joinedAt: Date.now(),
107
+ connectionState: 'connecting',
108
+ },
109
+ ],
110
+ createdAt: Date.now(),
111
+ status: 'active',
112
+ };
113
+ await this.storage.put(`webrtc_room:${roomName}`, room);
114
+ await this.storage.put(`webrtc_session:${session.id}`, roomName);
115
+ return {
116
+ sessionId: session.id,
117
+ roomName,
118
+ roomUrl,
119
+ token,
120
+ config,
121
+ };
122
+ }
123
+ /**
124
+ * Get room information
125
+ *
126
+ * @param sessionId - Voice session ID
127
+ * @returns Room info or null if not found
128
+ */
129
+ async getRoom(sessionId) {
130
+ const roomName = await this.storage.get(`webrtc_session:${sessionId}`);
131
+ if (!roomName)
132
+ return null;
133
+ const room = await this.storage.get(`webrtc_room:${roomName}`);
134
+ return room ?? null;
135
+ }
136
+ /**
137
+ * Get room by name
138
+ *
139
+ * @param roomName - Room name
140
+ * @returns Room info or null if not found
141
+ */
142
+ async getRoomByName(roomName) {
143
+ const room = await this.storage.get(`webrtc_room:${roomName}`);
144
+ return room ?? null;
145
+ }
146
+ /**
147
+ * Generate a new token for an existing room
148
+ *
149
+ * Useful when a participant needs to reconnect.
150
+ *
151
+ * @param sessionId - Voice session ID
152
+ * @param identity - Participant identity
153
+ * @returns New access token
154
+ */
155
+ async generateToken(sessionId, identity) {
156
+ const room = await this.getRoom(sessionId);
157
+ if (!room) {
158
+ throw new Error(`Room not found for session: ${sessionId}`);
159
+ }
160
+ const agent = await this.agentManager.get(room.agentId);
161
+ if (!agent) {
162
+ throw new Error(`Voice agent not found: ${room.agentId}`);
163
+ }
164
+ const adapter = VoiceProviderFactory.get(agent.provider);
165
+ if (!adapter.createRoom) {
166
+ throw new Error(`Provider ${agent.provider} does not support WebRTC`);
167
+ }
168
+ const agentData = await this.storage.get(`voice_agent:${room.agentId}`);
169
+ if (!agentData?.providerAgentId) {
170
+ throw new Error(`Provider agent ID not found for: ${room.agentId}`);
171
+ }
172
+ // Create room returns new token (most providers allow re-joining existing rooms)
173
+ const { token } = await adapter.createRoom(agentData.providerAgentId, identity);
174
+ return token;
175
+ }
176
+ /**
177
+ * Update participant connection state
178
+ *
179
+ * Called from webhook when participant joins/leaves.
180
+ *
181
+ * @param roomName - Room name
182
+ * @param identity - Participant identity
183
+ * @param state - Connection state
184
+ */
185
+ async updateParticipantState(roomName, identity, state) {
186
+ const room = await this.getRoomByName(roomName);
187
+ if (!room)
188
+ return;
189
+ const updated = {
190
+ ...room,
191
+ participants: room.participants.map((p) => p.identity === identity ? { ...p, connectionState: state } : p),
192
+ };
193
+ await this.storage.put(`webrtc_room:${roomName}`, updated);
194
+ }
195
+ /**
196
+ * Add a participant to a room
197
+ *
198
+ * @param roomName - Room name
199
+ * @param participant - Participant info
200
+ */
201
+ async addParticipant(roomName, participant) {
202
+ const room = await this.getRoomByName(roomName);
203
+ if (!room)
204
+ return;
205
+ const exists = room.participants.some((p) => p.identity === participant.identity);
206
+ if (exists) {
207
+ // Update existing participant
208
+ await this.updateParticipantState(roomName, participant.identity, participant.connectionState);
209
+ return;
210
+ }
211
+ const updated = {
212
+ ...room,
213
+ participants: [...room.participants, participant],
214
+ };
215
+ await this.storage.put(`webrtc_room:${roomName}`, updated);
216
+ }
217
+ /**
218
+ * Remove a participant from a room
219
+ *
220
+ * @param roomName - Room name
221
+ * @param identity - Participant identity
222
+ */
223
+ async removeParticipant(roomName, identity) {
224
+ const room = await this.getRoomByName(roomName);
225
+ if (!room)
226
+ return;
227
+ const updated = {
228
+ ...room,
229
+ participants: room.participants.filter((p) => p.identity !== identity),
230
+ };
231
+ await this.storage.put(`webrtc_room:${roomName}`, updated);
232
+ // If no human participants left, close the room
233
+ const humanParticipants = updated.participants.filter((p) => !p.isAgent);
234
+ if (humanParticipants.length === 0) {
235
+ await this.closeRoom(roomName);
236
+ }
237
+ }
238
+ /**
239
+ * Close a room
240
+ *
241
+ * @param roomName - Room name
242
+ */
243
+ async closeRoom(roomName) {
244
+ const room = await this.getRoomByName(roomName);
245
+ if (!room)
246
+ return;
247
+ // Update room status
248
+ const updated = {
249
+ ...room,
250
+ status: 'closed',
251
+ };
252
+ await this.storage.put(`webrtc_room:${roomName}`, updated);
253
+ // End the voice session
254
+ await this.sessionManager.end(room.sessionId);
255
+ }
256
+ /**
257
+ * List active rooms
258
+ *
259
+ * @param agentId - Optional filter by agent
260
+ * @returns List of active rooms
261
+ */
262
+ async listActiveRooms(agentId) {
263
+ const allRooms = await this.storage.list({ prefix: 'webrtc_room:' });
264
+ const rooms = [];
265
+ for (const [, room] of allRooms) {
266
+ if (room.status !== 'active')
267
+ continue;
268
+ if (agentId && room.agentId !== agentId)
269
+ continue;
270
+ rooms.push(room);
271
+ }
272
+ return rooms;
273
+ }
274
+ /**
275
+ * Clean up old/stale rooms
276
+ *
277
+ * Should be called periodically to clean up rooms that weren't
278
+ * properly closed.
279
+ *
280
+ * @param maxAge - Maximum age in milliseconds (default: 24 hours)
281
+ */
282
+ async cleanup(maxAge = 24 * 60 * 60 * 1000) {
283
+ const cutoff = Date.now() - maxAge;
284
+ const allRooms = await this.storage.list({ prefix: 'webrtc_room:' });
285
+ let cleaned = 0;
286
+ for (const [key, room] of allRooms) {
287
+ if (room.createdAt < cutoff) {
288
+ await this.storage.delete(key);
289
+ await this.storage.delete(`webrtc_session:${room.sessionId}`);
290
+ cleaned++;
291
+ }
292
+ }
293
+ return cleaned;
294
+ }
295
+ }
296
+ // =============================================================================
297
+ // Helper Functions
298
+ // =============================================================================
299
+ /**
300
+ * Extract room name from room URL
301
+ */
302
+ function extractRoomName(roomUrl) {
303
+ try {
304
+ const url = new URL(roomUrl);
305
+ // Most providers use the last path segment as room name
306
+ const parts = url.pathname.split('/').filter(Boolean);
307
+ return parts[parts.length - 1] || `room_${generateId()}`;
308
+ }
309
+ catch {
310
+ // If not a valid URL, use as-is or generate
311
+ return roomUrl || `room_${generateId()}`;
312
+ }
313
+ }
314
+ /**
315
+ * Generate a random ID
316
+ */
317
+ function generateId() {
318
+ // TODO: Use nanoid
319
+ return Math.random().toString(36).substring(2, 15);
320
+ }
321
+ // =============================================================================
322
+ // Singleton Access
323
+ // =============================================================================
324
+ let defaultManager = null;
325
+ /**
326
+ * WebRTC session singleton access
327
+ */
328
+ export const WebRTCSession = {
329
+ /**
330
+ * Initialize with dependencies
331
+ */
332
+ init(storage, agentManager, sessionManager) {
333
+ defaultManager = new WebRTCSessionManager(storage, agentManager, sessionManager);
334
+ },
335
+ /**
336
+ * Create a WebRTC session
337
+ */
338
+ async create(options) {
339
+ if (!defaultManager)
340
+ throw new Error('WebRTCSession not initialized');
341
+ return defaultManager.create(options);
342
+ },
343
+ /**
344
+ * Get room info
345
+ */
346
+ async getRoom(sessionId) {
347
+ if (!defaultManager)
348
+ throw new Error('WebRTCSession not initialized');
349
+ return defaultManager.getRoom(sessionId);
350
+ },
351
+ /**
352
+ * Generate new token
353
+ */
354
+ async generateToken(sessionId, identity) {
355
+ if (!defaultManager)
356
+ throw new Error('WebRTCSession not initialized');
357
+ return defaultManager.generateToken(sessionId, identity);
358
+ },
359
+ /**
360
+ * List active rooms
361
+ */
362
+ async listActiveRooms(agentId) {
363
+ if (!defaultManager)
364
+ throw new Error('WebRTCSession not initialized');
365
+ return defaultManager.listActiveRooms(agentId);
366
+ },
367
+ };
368
+ // =============================================================================
369
+ // Type Exports
370
+ // =============================================================================
371
+ // Note: DurableObjectStorage is a Cloudflare Workers type, imported at runtime
372
+ //# sourceMappingURL=webrtc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webrtc.js","sourceRoot":"","sources":["../../../ai/voice/webrtc.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,103 @@
1
+ /**
2
+ * DO API Module
3
+ *
4
+ * Hono-based API layer for Digital Objects.
5
+ * Provides REST, RPC, and MCP endpoints with composable middleware.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * import { createApp } from './api'
10
+ *
11
+ * // Create the app with all defaults
12
+ * const app = createApp()
13
+ *
14
+ * // Or customize
15
+ * const app = createApp({
16
+ * cors: true,
17
+ * rateLimit: true,
18
+ * auth: false,
19
+ * })
20
+ *
21
+ * export default {
22
+ * fetch: app.fetch,
23
+ * }
24
+ * ```
25
+ */
26
+ import { Hono } from 'hono';
27
+ import type { Env, DOContext } from './types';
28
+ /**
29
+ * App configuration options
30
+ */
31
+ export interface AppConfig {
32
+ /** Enable CORS middleware (default: true) */
33
+ cors?: boolean;
34
+ /** Enable rate limiting (default: true) */
35
+ rateLimit?: boolean;
36
+ /** Enable authentication middleware (default: false) */
37
+ auth?: boolean;
38
+ /** Enable request logging (default: true in dev, false in prod) */
39
+ logging?: boolean;
40
+ /** Enable security headers (default: true) */
41
+ security?: boolean;
42
+ /** Custom middleware to add */
43
+ middleware?: Array<(c: unknown, next: () => Promise<void>) => Promise<void | Response>>;
44
+ }
45
+ /**
46
+ * Create a fully configured Hono app for the DO API
47
+ *
48
+ * @example
49
+ * // Basic usage - all defaults
50
+ * const app = createApp()
51
+ *
52
+ * @example
53
+ * // Production setup
54
+ * const app = createApp({
55
+ * cors: true,
56
+ * rateLimit: true,
57
+ * auth: true,
58
+ * logging: false,
59
+ * security: true,
60
+ * })
61
+ *
62
+ * @example
63
+ * // Development setup
64
+ * const app = createApp({
65
+ * cors: true,
66
+ * rateLimit: false,
67
+ * auth: false,
68
+ * logging: true,
69
+ * })
70
+ */
71
+ export declare function createApp(config?: AppConfig): Hono<{
72
+ Bindings: Env;
73
+ Variables: DOContext;
74
+ }>;
75
+ /**
76
+ * Create a minimal app with just core middleware
77
+ * Useful for testing or when you want full control
78
+ */
79
+ export declare function createMinimalApp(): Hono<{
80
+ Bindings: Env;
81
+ Variables: DOContext;
82
+ }>;
83
+ /**
84
+ * Create a production-ready app with all security features
85
+ */
86
+ export declare function createProductionApp(): Hono<{
87
+ Bindings: Env;
88
+ Variables: DOContext;
89
+ }>;
90
+ /**
91
+ * Create a development app with logging and relaxed security
92
+ */
93
+ export declare function createDevelopmentApp(): Hono<{
94
+ Bindings: Env;
95
+ Variables: DOContext;
96
+ }>;
97
+ export type { Env, DOContext, AuthUser, AuthOptions, AuthResult, APIResponse, APIErrorResponse, PaginatedResponse, PaginationInfo, RateLimitConfig, RateLimitInfo, CORSConfig, HealthCheckResponse, AIGenerateRequest, AIChatRequest, AIEmbedRequest, } from './types';
98
+ export { createAuthMiddleware, createApiKeyMiddleware, createCorsMiddleware, createDynamicCorsMiddleware, createRateLimitMiddleware, createAIRateLimitMiddleware, createWriteRateLimitMiddleware, createContextMiddleware, createLoggingMiddleware, createErrorMiddleware, createSecurityMiddleware, composeMiddleware, getUser, requireUser, hasRole, hasPermission, } from './middleware';
99
+ export { createHealthRoutes, createDORoutes, createAIRoutes, createRootRoute, createRPCRoutes, createAllRoutes, createRolesRoutes, } from './routes';
100
+ export { createMCPRoutes, getTools, handleListTools, handleToolCall, handleInitialize, } from './mcp';
101
+ export type { MCPServerInfo, MCPTool, MCPContent, MCPRequest, MCPToolCallResponse, MCPListToolsResponse, } from './mcp';
102
+ export default createApp;
103
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../api/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AA2B7C;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,2CAA2C;IAC3C,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,wDAAwD;IACxD,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,mEAAmE;IACnE,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,+BAA+B;IAC/B,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAA;CACxF;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,SAAS,CAAC,MAAM,GAAE,SAAc,GAAG,IAAI,CAAC;IAAE,QAAQ,EAAE,GAAG,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAAE,CAAC,CA8F/F;AAMD;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAAC;IAAE,QAAQ,EAAE,GAAG,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAAE,CAAC,CAQhF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAAC;IAAE,QAAQ,EAAE,GAAG,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAAE,CAAC,CAQnF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAAC;IAAE,QAAQ,EAAE,GAAG,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAAE,CAAC,CAQpF;AAOD,YAAY,EACV,GAAG,EACH,SAAS,EACT,QAAQ,EACR,WAAW,EACX,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,aAAa,EACb,UAAU,EACV,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,cAAc,GACf,MAAM,SAAS,CAAA;AAGhB,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,2BAA2B,EAC3B,yBAAyB,EACzB,2BAA2B,EAC3B,8BAA8B,EAC9B,uBAAuB,EACvB,uBAAuB,EACvB,qBAAqB,EACrB,wBAAwB,EACxB,iBAAiB,EACjB,OAAO,EACP,WAAW,EACX,OAAO,EACP,aAAa,GACd,MAAM,cAAc,CAAA;AAGrB,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,EACf,eAAe,EAGf,iBAAiB,GAClB,MAAM,UAAU,CAAA;AAGjB,OAAO,EACL,eAAe,EACf,QAAQ,EACR,eAAe,EACf,cAAc,EACd,gBAAgB,GACjB,MAAM,OAAO,CAAA;AAEd,YAAY,EACV,aAAa,EACb,OAAO,EACP,UAAU,EACV,UAAU,EACV,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,OAAO,CAAA;AAMd,eAAe,SAAS,CAAA"}
@@ -0,0 +1,191 @@
1
+ /**
2
+ * DO API Module
3
+ *
4
+ * Hono-based API layer for Digital Objects.
5
+ * Provides REST, RPC, and MCP endpoints with composable middleware.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * import { createApp } from './api'
10
+ *
11
+ * // Create the app with all defaults
12
+ * const app = createApp()
13
+ *
14
+ * // Or customize
15
+ * const app = createApp({
16
+ * cors: true,
17
+ * rateLimit: true,
18
+ * auth: false,
19
+ * })
20
+ *
21
+ * export default {
22
+ * fetch: app.fetch,
23
+ * }
24
+ * ```
25
+ */
26
+ import { Hono } from 'hono';
27
+ // Middleware
28
+ import { createContextMiddleware, createErrorMiddleware, createLoggingMiddleware, createSecurityMiddleware, createCorsMiddleware, createRateLimitMiddleware, createAuthMiddleware, } from './middleware';
29
+ // Routes
30
+ import { createHealthRoutes } from './routes/health';
31
+ import { createDORoutes } from './routes/do';
32
+ import { createAIRoutes } from './routes/ai';
33
+ import { createRootRoute, createRPCRoutes } from './routes';
34
+ // Agents routes excluded from 0.0.1 - depends on workers module
35
+ // import { createAgentsRoutes } from './routes/agents'
36
+ import { createRolesRoutes } from './routes/roles';
37
+ import { createMCPRoutes } from './mcp';
38
+ // =============================================================================
39
+ // App Factory
40
+ // =============================================================================
41
+ /**
42
+ * Create a fully configured Hono app for the DO API
43
+ *
44
+ * @example
45
+ * // Basic usage - all defaults
46
+ * const app = createApp()
47
+ *
48
+ * @example
49
+ * // Production setup
50
+ * const app = createApp({
51
+ * cors: true,
52
+ * rateLimit: true,
53
+ * auth: true,
54
+ * logging: false,
55
+ * security: true,
56
+ * })
57
+ *
58
+ * @example
59
+ * // Development setup
60
+ * const app = createApp({
61
+ * cors: true,
62
+ * rateLimit: false,
63
+ * auth: false,
64
+ * logging: true,
65
+ * })
66
+ */
67
+ export function createApp(config = {}) {
68
+ const app = new Hono();
69
+ // ==========================================================================
70
+ // Core Middleware (always enabled)
71
+ // ==========================================================================
72
+ // Request context (request ID, timing, hostname)
73
+ app.use('*', createContextMiddleware());
74
+ // Error handling
75
+ app.use('*', createErrorMiddleware());
76
+ // ==========================================================================
77
+ // Optional Middleware
78
+ // ==========================================================================
79
+ // Logging (default: true)
80
+ if (config.logging !== false) {
81
+ app.use('*', createLoggingMiddleware({
82
+ skipPaths: ['/_health', '/favicon.ico'],
83
+ }));
84
+ }
85
+ // Security headers (default: true)
86
+ if (config.security !== false) {
87
+ app.use('*', createSecurityMiddleware());
88
+ }
89
+ // CORS (default: true)
90
+ if (config.cors !== false) {
91
+ app.use('*', createCorsMiddleware());
92
+ }
93
+ // Rate limiting (default: true)
94
+ if (config.rateLimit !== false) {
95
+ app.use('*', createRateLimitMiddleware());
96
+ }
97
+ // Authentication (default: false - opt-in)
98
+ if (config.auth) {
99
+ app.use('*', createAuthMiddleware());
100
+ }
101
+ // Custom middleware
102
+ if (config.middleware) {
103
+ for (const mw of config.middleware) {
104
+ app.use('*', mw);
105
+ }
106
+ }
107
+ // ==========================================================================
108
+ // Routes
109
+ // ==========================================================================
110
+ // Health checks (first to ensure they're always fast)
111
+ app.route('/', createHealthRoutes());
112
+ // MCP routes
113
+ app.route('/', createMCPRoutes());
114
+ // RPC routes
115
+ app.route('/', createRPCRoutes());
116
+ // AI routes
117
+ app.route('/', createAIRoutes());
118
+ // Agents routes excluded from 0.0.1 - depends on workers module
119
+ // app.route('/', createAgentsRoutes())
120
+ // Roles routes (before generic DO routes for specific path matching)
121
+ app.route('/', createRolesRoutes());
122
+ // DO CRUD routes
123
+ app.route('/', createDORoutes());
124
+ // Root discovery (last to not interfere with other routes)
125
+ app.route('/', createRootRoute());
126
+ // ==========================================================================
127
+ // Catch-all: Route to DO
128
+ // ==========================================================================
129
+ app.all('*', async (c) => {
130
+ const url = new URL(c.req.url);
131
+ // Route to the appropriate DO
132
+ const doId = c.env.DO.idFromName(url.hostname);
133
+ const stub = c.env.DO.get(doId);
134
+ return stub.fetch(c.req.raw);
135
+ });
136
+ return app;
137
+ }
138
+ // =============================================================================
139
+ // Convenience Functions
140
+ // =============================================================================
141
+ /**
142
+ * Create a minimal app with just core middleware
143
+ * Useful for testing or when you want full control
144
+ */
145
+ export function createMinimalApp() {
146
+ return createApp({
147
+ cors: false,
148
+ rateLimit: false,
149
+ auth: false,
150
+ logging: false,
151
+ security: false,
152
+ });
153
+ }
154
+ /**
155
+ * Create a production-ready app with all security features
156
+ */
157
+ export function createProductionApp() {
158
+ return createApp({
159
+ cors: true,
160
+ rateLimit: true,
161
+ auth: true,
162
+ logging: false,
163
+ security: true,
164
+ });
165
+ }
166
+ /**
167
+ * Create a development app with logging and relaxed security
168
+ */
169
+ export function createDevelopmentApp() {
170
+ return createApp({
171
+ cors: true,
172
+ rateLimit: false,
173
+ auth: false,
174
+ logging: true,
175
+ security: false,
176
+ });
177
+ }
178
+ // Middleware
179
+ export { createAuthMiddleware, createApiKeyMiddleware, createCorsMiddleware, createDynamicCorsMiddleware, createRateLimitMiddleware, createAIRateLimitMiddleware, createWriteRateLimitMiddleware, createContextMiddleware, createLoggingMiddleware, createErrorMiddleware, createSecurityMiddleware, composeMiddleware, getUser, requireUser, hasRole, hasPermission, } from './middleware';
180
+ // Routes
181
+ export { createHealthRoutes, createDORoutes, createAIRoutes, createRootRoute, createRPCRoutes, createAllRoutes,
182
+ // Agents routes excluded from 0.0.1 - depends on workers module
183
+ // createAgentsRoutes,
184
+ createRolesRoutes, } from './routes';
185
+ // MCP
186
+ export { createMCPRoutes, getTools, handleListTools, handleToolCall, handleInitialize, } from './mcp';
187
+ // =============================================================================
188
+ // Default Export
189
+ // =============================================================================
190
+ export default createApp;
191
+ //# sourceMappingURL=index.js.map