dotdo 0.0.1 → 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 (667) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +446 -315
  3. package/cli/README.md +238 -0
  4. package/cli/agent.ts +72 -0
  5. package/cli/bin.js +44 -0
  6. package/cli/bin.ts +38 -0
  7. package/cli/build.ts +157 -0
  8. package/cli/commands/auth/login.ts +14 -0
  9. package/cli/commands/auth/logout.ts +6 -0
  10. package/cli/commands/auth/whoami.ts +16 -0
  11. package/cli/commands/deploy-multi.ts +245 -0
  12. package/cli/commands/dev/deploy.ts +100 -0
  13. package/cli/commands/dev/dev.ts +95 -0
  14. package/cli/commands/dev/logs.ts +91 -0
  15. package/cli/commands/dev-local.ts +88 -0
  16. package/cli/commands/do-ops.ts +314 -0
  17. package/cli/commands/index.ts +100 -0
  18. package/cli/commands/init.ts +247 -0
  19. package/cli/commands/introspect/emitter.ts +315 -0
  20. package/cli/commands/introspect/index.ts +193 -0
  21. package/cli/commands/link.ts +598 -0
  22. package/cli/commands/snippets.ts +415 -0
  23. package/cli/commands/tunnel.ts +239 -0
  24. package/cli/device-auth.ts +289 -0
  25. package/cli/fallback.ts +12 -0
  26. package/cli/index.ts +121 -0
  27. package/cli/main.ts +246 -0
  28. package/cli/mcp-stdio.ts +790 -0
  29. package/cli/package.json +62 -0
  30. package/cli/runtime/do-registry.ts +193 -0
  31. package/cli/runtime/embedded-db.ts +344 -0
  32. package/cli/runtime/index.ts +9 -0
  33. package/cli/runtime/miniflare-adapter.ts +162 -0
  34. package/cli/sandbox.ts +82 -0
  35. package/cli/src/args.ts +174 -0
  36. package/cli/src/auth.ts +55 -0
  37. package/cli/src/commands/call.ts +84 -0
  38. package/cli/src/commands/charge.ts +96 -0
  39. package/cli/src/commands/config.ts +115 -0
  40. package/cli/src/commands/email.ts +112 -0
  41. package/cli/src/commands/llm.ts +115 -0
  42. package/cli/src/commands/queue.ts +134 -0
  43. package/cli/src/commands/text.ts +86 -0
  44. package/cli/src/config.ts +185 -0
  45. package/cli/src/output.ts +246 -0
  46. package/cli/src/rpc.ts +192 -0
  47. package/cli/utils/config.ts +282 -0
  48. package/cli/utils/detect.ts +73 -0
  49. package/cli/utils/index.ts +15 -0
  50. package/cli/utils/logger.ts +232 -0
  51. package/dist/ai/index.js +19 -0
  52. package/dist/ai/index.js.map +1 -0
  53. package/dist/ai/template-literals.js +852 -0
  54. package/dist/ai/template-literals.js.map +1 -0
  55. package/dist/api/middleware/auth-federation.js +573 -0
  56. package/dist/api/middleware/auth-federation.js.map +1 -0
  57. package/dist/api/middleware/auth.js +545 -0
  58. package/dist/api/middleware/auth.js.map +1 -0
  59. package/dist/db/actions.js +212 -0
  60. package/dist/db/actions.js.map +1 -0
  61. package/dist/db/auth.js +506 -0
  62. package/dist/db/auth.js.map +1 -0
  63. package/dist/db/branches.js +65 -0
  64. package/dist/db/branches.js.map +1 -0
  65. package/dist/db/clickhouse.js +1074 -0
  66. package/dist/db/clickhouse.js.map +1 -0
  67. package/dist/db/dlq.js +39 -0
  68. package/dist/db/dlq.js.map +1 -0
  69. package/dist/db/events.js +28 -0
  70. package/dist/db/events.js.map +1 -0
  71. package/dist/db/exec.js +64 -0
  72. package/dist/db/exec.js.map +1 -0
  73. package/dist/db/files.js +85 -0
  74. package/dist/db/files.js.map +1 -0
  75. package/dist/db/flags.js +24 -0
  76. package/dist/db/flags.js.map +1 -0
  77. package/dist/db/git.js +116 -0
  78. package/dist/db/git.js.map +1 -0
  79. package/dist/db/iceberg/inverted-index.js +862 -0
  80. package/dist/db/iceberg/inverted-index.js.map +1 -0
  81. package/dist/db/iceberg/puffin.js +878 -0
  82. package/dist/db/iceberg/puffin.js.map +1 -0
  83. package/dist/db/iceberg/search-manifest.js +422 -0
  84. package/dist/db/iceberg/search-manifest.js.map +1 -0
  85. package/dist/db/iceberg/types.js +8 -0
  86. package/dist/db/iceberg/types.js.map +1 -0
  87. package/dist/db/index.js +121 -0
  88. package/dist/db/index.js.map +1 -0
  89. package/dist/db/integrations.js +368 -0
  90. package/dist/db/integrations.js.map +1 -0
  91. package/dist/db/json-indexes.js +332 -0
  92. package/dist/db/json-indexes.js.map +1 -0
  93. package/dist/db/linked-accounts.js +287 -0
  94. package/dist/db/linked-accounts.js.map +1 -0
  95. package/dist/db/nouns.js +183 -0
  96. package/dist/db/nouns.js.map +1 -0
  97. package/dist/db/objects.js +170 -0
  98. package/dist/db/objects.js.map +1 -0
  99. package/dist/db/primitives/dag-scheduler/index.js +869 -0
  100. package/dist/db/primitives/dag-scheduler/index.js.map +1 -0
  101. package/dist/db/primitives/exactly-once-context.js +237 -0
  102. package/dist/db/primitives/exactly-once-context.js.map +1 -0
  103. package/dist/db/primitives/index.js +62 -0
  104. package/dist/db/primitives/index.js.map +1 -0
  105. package/dist/db/primitives/keyed-router.js +145 -0
  106. package/dist/db/primitives/keyed-router.js.map +1 -0
  107. package/dist/db/primitives/observability.js +162 -0
  108. package/dist/db/primitives/observability.js.map +1 -0
  109. package/dist/db/primitives/schema-evolution.js +643 -0
  110. package/dist/db/primitives/schema-evolution.js.map +1 -0
  111. package/dist/db/primitives/stateful-operator/index.js +770 -0
  112. package/dist/db/primitives/stateful-operator/index.js.map +1 -0
  113. package/dist/db/primitives/temporal-store.js +306 -0
  114. package/dist/db/primitives/temporal-store.js.map +1 -0
  115. package/dist/db/primitives/typed-column-store.js +1229 -0
  116. package/dist/db/primitives/typed-column-store.js.map +1 -0
  117. package/dist/db/primitives/utils/duration.js +162 -0
  118. package/dist/db/primitives/utils/duration.js.map +1 -0
  119. package/dist/db/primitives/utils/murmur3.js +116 -0
  120. package/dist/db/primitives/utils/murmur3.js.map +1 -0
  121. package/dist/db/primitives/watermark-service.js +136 -0
  122. package/dist/db/primitives/watermark-service.js.map +1 -0
  123. package/dist/db/primitives/window-manager.js +764 -0
  124. package/dist/db/primitives/window-manager.js.map +1 -0
  125. package/dist/db/relationships.js +66 -0
  126. package/dist/db/relationships.js.map +1 -0
  127. package/dist/db/schema-minimal.js +61 -0
  128. package/dist/db/schema-minimal.js.map +1 -0
  129. package/dist/db/search.js +28 -0
  130. package/dist/db/search.js.map +1 -0
  131. package/dist/db/stores.js +1665 -0
  132. package/dist/db/stores.js.map +1 -0
  133. package/dist/db/things.js +297 -0
  134. package/dist/db/things.js.map +1 -0
  135. package/dist/db/vault.js +171 -0
  136. package/dist/db/vault.js.map +1 -0
  137. package/dist/db/verbs.js +102 -0
  138. package/dist/db/verbs.js.map +1 -0
  139. package/dist/do/base.js +48 -0
  140. package/dist/do/base.js.map +1 -0
  141. package/dist/do/tiny.js +31 -0
  142. package/dist/do/tiny.js.map +1 -0
  143. package/dist/lib/DOAuth.js +261 -0
  144. package/dist/lib/DOAuth.js.map +1 -0
  145. package/dist/lib/DODispatcher.js +72 -0
  146. package/dist/lib/DODispatcher.js.map +1 -0
  147. package/dist/lib/Modifier.js +189 -0
  148. package/dist/lib/Modifier.js.map +1 -0
  149. package/dist/lib/StateStorage.js +403 -0
  150. package/dist/lib/StateStorage.js.map +1 -0
  151. package/dist/lib/TypeRegistry.js +122 -0
  152. package/dist/lib/TypeRegistry.js.map +1 -0
  153. package/dist/lib/ai/gateway.js +247 -0
  154. package/dist/lib/ai/gateway.js.map +1 -0
  155. package/dist/lib/ai/tool-loop-agent.js +591 -0
  156. package/dist/lib/ai/tool-loop-agent.js.map +1 -0
  157. package/dist/lib/auto-wiring.js +439 -0
  158. package/dist/lib/auto-wiring.js.map +1 -0
  159. package/dist/lib/browse/browserbase.js +163 -0
  160. package/dist/lib/browse/browserbase.js.map +1 -0
  161. package/dist/lib/browse/cloudflare.js +144 -0
  162. package/dist/lib/browse/cloudflare.js.map +1 -0
  163. package/dist/lib/browse/index.js +62 -0
  164. package/dist/lib/browse/index.js.map +1 -0
  165. package/dist/lib/browse/types.js +13 -0
  166. package/dist/lib/browse/types.js.map +1 -0
  167. package/dist/lib/cache/index.js +37 -0
  168. package/dist/lib/cache/index.js.map +1 -0
  169. package/dist/lib/cache/visibility.js +638 -0
  170. package/dist/lib/cache/visibility.js.map +1 -0
  171. package/dist/lib/capabilities.js +268 -0
  172. package/dist/lib/capabilities.js.map +1 -0
  173. package/dist/lib/channels/base.js +106 -0
  174. package/dist/lib/channels/base.js.map +1 -0
  175. package/dist/lib/channels/discord.js +94 -0
  176. package/dist/lib/channels/discord.js.map +1 -0
  177. package/dist/lib/channels/email.js +204 -0
  178. package/dist/lib/channels/email.js.map +1 -0
  179. package/dist/lib/channels/index.js +90 -0
  180. package/dist/lib/channels/index.js.map +1 -0
  181. package/dist/lib/channels/mdxui-chat.js +95 -0
  182. package/dist/lib/channels/mdxui-chat.js.map +1 -0
  183. package/dist/lib/channels/slack-blockkit.js +121 -0
  184. package/dist/lib/channels/slack-blockkit.js.map +1 -0
  185. package/dist/lib/channels/types.js +7 -0
  186. package/dist/lib/channels/types.js.map +1 -0
  187. package/dist/lib/cloudflare/ai.js +654 -0
  188. package/dist/lib/cloudflare/ai.js.map +1 -0
  189. package/dist/lib/cloudflare/index.js +88 -0
  190. package/dist/lib/cloudflare/index.js.map +1 -0
  191. package/dist/lib/cloudflare/kv.js +342 -0
  192. package/dist/lib/cloudflare/kv.js.map +1 -0
  193. package/dist/lib/cloudflare/queues.js +434 -0
  194. package/dist/lib/cloudflare/queues.js.map +1 -0
  195. package/dist/lib/cloudflare/r2.js +604 -0
  196. package/dist/lib/cloudflare/r2.js.map +1 -0
  197. package/dist/lib/cloudflare/vectorize.js +494 -0
  198. package/dist/lib/cloudflare/vectorize.js.map +1 -0
  199. package/dist/lib/cloudflare/workflows.js +569 -0
  200. package/dist/lib/cloudflare/workflows.js.map +1 -0
  201. package/dist/lib/colo/caching.js +196 -0
  202. package/dist/lib/colo/caching.js.map +1 -0
  203. package/dist/lib/colo/detection.js +194 -0
  204. package/dist/lib/colo/detection.js.map +1 -0
  205. package/dist/lib/colo/external-data.js +219 -0
  206. package/dist/lib/colo/external-data.js.map +1 -0
  207. package/dist/lib/colo/globe-data.js +179 -0
  208. package/dist/lib/colo/globe-data.js.map +1 -0
  209. package/dist/lib/colo/index.js +16 -0
  210. package/dist/lib/colo/index.js.map +1 -0
  211. package/dist/lib/decorators.js +37 -0
  212. package/dist/lib/decorators.js.map +1 -0
  213. package/dist/lib/discovery.js +81 -0
  214. package/dist/lib/discovery.js.map +1 -0
  215. package/dist/lib/executors/AgenticFunctionExecutor.js +619 -0
  216. package/dist/lib/executors/AgenticFunctionExecutor.js.map +1 -0
  217. package/dist/lib/executors/BaseFunctionExecutor.js +328 -0
  218. package/dist/lib/executors/BaseFunctionExecutor.js.map +1 -0
  219. package/dist/lib/executors/CascadeExecutor.js +418 -0
  220. package/dist/lib/executors/CascadeExecutor.js.map +1 -0
  221. package/dist/lib/executors/CodeFunctionExecutor.js +904 -0
  222. package/dist/lib/executors/CodeFunctionExecutor.js.map +1 -0
  223. package/dist/lib/executors/GenerativeFunctionExecutor.js +904 -0
  224. package/dist/lib/executors/GenerativeFunctionExecutor.js.map +1 -0
  225. package/dist/lib/executors/HumanFunctionExecutor.js +884 -0
  226. package/dist/lib/executors/HumanFunctionExecutor.js.map +1 -0
  227. package/dist/lib/executors/ParallelStepExecutor.js +308 -0
  228. package/dist/lib/executors/ParallelStepExecutor.js.map +1 -0
  229. package/dist/lib/executors/types.js +12 -0
  230. package/dist/lib/executors/types.js.map +1 -0
  231. package/dist/lib/experiments.js +89 -0
  232. package/dist/lib/experiments.js.map +1 -0
  233. package/dist/lib/flags/store.js +262 -0
  234. package/dist/lib/flags/store.js.map +1 -0
  235. package/dist/lib/functions/FunctionComposition.js +467 -0
  236. package/dist/lib/functions/FunctionComposition.js.map +1 -0
  237. package/dist/lib/functions/FunctionMiddleware.js +457 -0
  238. package/dist/lib/functions/FunctionMiddleware.js.map +1 -0
  239. package/dist/lib/functions/FunctionRegistry.js +426 -0
  240. package/dist/lib/functions/FunctionRegistry.js.map +1 -0
  241. package/dist/lib/functions/createFunction.js +1048 -0
  242. package/dist/lib/functions/createFunction.js.map +1 -0
  243. package/dist/lib/humans/index.js +68 -0
  244. package/dist/lib/humans/index.js.map +1 -0
  245. package/dist/lib/humans/templates.js +117 -0
  246. package/dist/lib/humans/templates.js.map +1 -0
  247. package/dist/lib/identity.js +98 -0
  248. package/dist/lib/identity.js.map +1 -0
  249. package/dist/lib/index.js +9 -0
  250. package/dist/lib/index.js.map +1 -0
  251. package/dist/lib/logging/error-logger.js +163 -0
  252. package/dist/lib/logging/error-logger.js.map +1 -0
  253. package/dist/lib/logging/index.js +160 -0
  254. package/dist/lib/logging/index.js.map +1 -0
  255. package/dist/lib/mixins/bash.js +753 -0
  256. package/dist/lib/mixins/bash.js.map +1 -0
  257. package/dist/lib/mixins/fs.js +648 -0
  258. package/dist/lib/mixins/fs.js.map +1 -0
  259. package/dist/lib/mixins/git.js +1006 -0
  260. package/dist/lib/mixins/git.js.map +1 -0
  261. package/dist/lib/mixins/npm.js +662 -0
  262. package/dist/lib/mixins/npm.js.map +1 -0
  263. package/dist/lib/noun-id.js +278 -0
  264. package/dist/lib/noun-id.js.map +1 -0
  265. package/dist/lib/rate-limit/sliding-window.js +148 -0
  266. package/dist/lib/rate-limit/sliding-window.js.map +1 -0
  267. package/dist/lib/rate-limit.js +110 -0
  268. package/dist/lib/rate-limit.js.map +1 -0
  269. package/dist/lib/rpc/bindings.js +548 -0
  270. package/dist/lib/rpc/bindings.js.map +1 -0
  271. package/dist/lib/rpc/index.js +64 -0
  272. package/dist/lib/rpc/index.js.map +1 -0
  273. package/dist/lib/safe-stringify.js +223 -0
  274. package/dist/lib/safe-stringify.js.map +1 -0
  275. package/dist/lib/sandbox/miniflare-sandbox.js +1007 -0
  276. package/dist/lib/sandbox/miniflare-sandbox.js.map +1 -0
  277. package/dist/lib/sqids.js +110 -0
  278. package/dist/lib/sqids.js.map +1 -0
  279. package/dist/lib/sql/adapters/index.js +10 -0
  280. package/dist/lib/sql/adapters/index.js.map +1 -0
  281. package/dist/lib/sql/adapters/node-sql-parser.js +552 -0
  282. package/dist/lib/sql/adapters/node-sql-parser.js.map +1 -0
  283. package/dist/lib/sql/adapters/pgsql-parser.js +1190 -0
  284. package/dist/lib/sql/adapters/pgsql-parser.js.map +1 -0
  285. package/dist/lib/sql/index.js +277 -0
  286. package/dist/lib/sql/index.js.map +1 -0
  287. package/dist/lib/sql/types.js +56 -0
  288. package/dist/lib/sql/types.js.map +1 -0
  289. package/dist/lib/type-classifier.js +126 -0
  290. package/dist/lib/type-classifier.js.map +1 -0
  291. package/dist/lib/utils/html.js +47 -0
  292. package/dist/lib/utils/html.js.map +1 -0
  293. package/dist/lib/validation.js +48 -0
  294. package/dist/lib/validation.js.map +1 -0
  295. package/dist/lib/vault/store.js +411 -0
  296. package/dist/lib/vault/store.js.map +1 -0
  297. package/dist/metrics/hunch.js +739 -0
  298. package/dist/metrics/hunch.js.map +1 -0
  299. package/dist/objects/API.js +302 -0
  300. package/dist/objects/API.js.map +1 -0
  301. package/dist/objects/Agent.js +179 -0
  302. package/dist/objects/Agent.js.map +1 -0
  303. package/dist/objects/AgenticFunctionExecutor.js +8 -0
  304. package/dist/objects/AgenticFunctionExecutor.js.map +1 -0
  305. package/dist/objects/App.js +83 -0
  306. package/dist/objects/App.js.map +1 -0
  307. package/dist/objects/Browser.js +884 -0
  308. package/dist/objects/Browser.js.map +1 -0
  309. package/dist/objects/Business.js +107 -0
  310. package/dist/objects/Business.js.map +1 -0
  311. package/dist/objects/CLI.js +221 -0
  312. package/dist/objects/CLI.js.map +1 -0
  313. package/dist/objects/CodeFunctionExecutor.js +8 -0
  314. package/dist/objects/CodeFunctionExecutor.js.map +1 -0
  315. package/dist/objects/Collection.js +161 -0
  316. package/dist/objects/Collection.js.map +1 -0
  317. package/dist/objects/DO.js +41 -0
  318. package/dist/objects/DO.js.map +1 -0
  319. package/dist/objects/DOBase.js +2309 -0
  320. package/dist/objects/DOBase.js.map +1 -0
  321. package/dist/objects/DOCache.js +153 -0
  322. package/dist/objects/DOCache.js.map +1 -0
  323. package/dist/objects/DOFull.js +1676 -0
  324. package/dist/objects/DOFull.js.map +1 -0
  325. package/dist/objects/DOTiny.js +207 -0
  326. package/dist/objects/DOTiny.js.map +1 -0
  327. package/dist/objects/Directory.js +199 -0
  328. package/dist/objects/Directory.js.map +1 -0
  329. package/dist/objects/Entity.js +413 -0
  330. package/dist/objects/Entity.js.map +1 -0
  331. package/dist/objects/Function.js +116 -0
  332. package/dist/objects/Function.js.map +1 -0
  333. package/dist/objects/Human.js +231 -0
  334. package/dist/objects/Human.js.map +1 -0
  335. package/dist/objects/HumanFunctionExecutor.js +8 -0
  336. package/dist/objects/HumanFunctionExecutor.js.map +1 -0
  337. package/dist/objects/IcebergMetadataDO.js +938 -0
  338. package/dist/objects/IcebergMetadataDO.js.map +1 -0
  339. package/dist/objects/IntegrationsDO.js +1174 -0
  340. package/dist/objects/IntegrationsDO.js.map +1 -0
  341. package/dist/objects/ObservabilityBroadcaster.js +149 -0
  342. package/dist/objects/ObservabilityBroadcaster.js.map +1 -0
  343. package/dist/objects/Package.js +154 -0
  344. package/dist/objects/Package.js.map +1 -0
  345. package/dist/objects/Product.js +193 -0
  346. package/dist/objects/Product.js.map +1 -0
  347. package/dist/objects/SDK.js +152 -0
  348. package/dist/objects/SDK.js.map +1 -0
  349. package/dist/objects/SaaS.js +235 -0
  350. package/dist/objects/SaaS.js.map +1 -0
  351. package/dist/objects/SandboxDO.js +759 -0
  352. package/dist/objects/SandboxDO.js.map +1 -0
  353. package/dist/objects/Service.js +337 -0
  354. package/dist/objects/Service.js.map +1 -0
  355. package/dist/objects/Site.js +80 -0
  356. package/dist/objects/Site.js.map +1 -0
  357. package/dist/objects/Startup.js +479 -0
  358. package/dist/objects/Startup.js.map +1 -0
  359. package/dist/objects/ThingsDO.js +170 -0
  360. package/dist/objects/ThingsDO.js.map +1 -0
  361. package/dist/objects/VectorShardDO.js +650 -0
  362. package/dist/objects/VectorShardDO.js.map +1 -0
  363. package/dist/objects/Worker.js +144 -0
  364. package/dist/objects/Worker.js.map +1 -0
  365. package/dist/objects/Workflow.js +196 -0
  366. package/dist/objects/Workflow.js.map +1 -0
  367. package/dist/objects/WorkflowFactory.js +313 -0
  368. package/dist/objects/WorkflowFactory.js.map +1 -0
  369. package/dist/objects/WorkflowRuntime.js +863 -0
  370. package/dist/objects/WorkflowRuntime.js.map +1 -0
  371. package/dist/objects/circuit-breaker-bulkhead.js +178 -0
  372. package/dist/objects/circuit-breaker-bulkhead.js.map +1 -0
  373. package/dist/objects/createFunction.js +934 -0
  374. package/dist/objects/createFunction.js.map +1 -0
  375. package/dist/objects/index.js +80 -0
  376. package/dist/objects/index.js.map +1 -0
  377. package/dist/objects/lifecycle/Branch.js +275 -0
  378. package/dist/objects/lifecycle/Branch.js.map +1 -0
  379. package/dist/objects/lifecycle/Clone.js +1499 -0
  380. package/dist/objects/lifecycle/Clone.js.map +1 -0
  381. package/dist/objects/lifecycle/Compact.js +237 -0
  382. package/dist/objects/lifecycle/Compact.js.map +1 -0
  383. package/dist/objects/lifecycle/Promote.js +476 -0
  384. package/dist/objects/lifecycle/Promote.js.map +1 -0
  385. package/dist/objects/lifecycle/Shard.js +560 -0
  386. package/dist/objects/lifecycle/Shard.js.map +1 -0
  387. package/dist/objects/lifecycle/index.js +15 -0
  388. package/dist/objects/lifecycle/index.js.map +1 -0
  389. package/dist/objects/lifecycle/types.js +33 -0
  390. package/dist/objects/lifecycle/types.js.map +1 -0
  391. package/dist/objects/mixins/infrastructure.js +171 -0
  392. package/dist/objects/mixins/infrastructure.js.map +1 -0
  393. package/dist/objects/modules/StoresModule.js +153 -0
  394. package/dist/objects/modules/StoresModule.js.map +1 -0
  395. package/dist/objects/persistence/checkpoint-manager.js +606 -0
  396. package/dist/objects/persistence/checkpoint-manager.js.map +1 -0
  397. package/dist/objects/persistence/index.js +72 -0
  398. package/dist/objects/persistence/index.js.map +1 -0
  399. package/dist/objects/persistence/migration-runner.js +562 -0
  400. package/dist/objects/persistence/migration-runner.js.map +1 -0
  401. package/dist/objects/persistence/replication-manager.js +501 -0
  402. package/dist/objects/persistence/replication-manager.js.map +1 -0
  403. package/dist/objects/persistence/tiered-storage-manager.js +595 -0
  404. package/dist/objects/persistence/tiered-storage-manager.js.map +1 -0
  405. package/dist/objects/persistence/types.js +14 -0
  406. package/dist/objects/persistence/types.js.map +1 -0
  407. package/dist/objects/persistence/wal-manager.js +653 -0
  408. package/dist/objects/persistence/wal-manager.js.map +1 -0
  409. package/dist/objects/presets/index.js +20 -0
  410. package/dist/objects/presets/index.js.map +1 -0
  411. package/dist/objects/presets/primitives.js +188 -0
  412. package/dist/objects/presets/primitives.js.map +1 -0
  413. package/dist/objects/primitives/alarm-adapter.js +141 -0
  414. package/dist/objects/primitives/alarm-adapter.js.map +1 -0
  415. package/dist/objects/primitives/index.js +337 -0
  416. package/dist/objects/primitives/index.js.map +1 -0
  417. package/dist/objects/primitives/storage-adapter.js +182 -0
  418. package/dist/objects/primitives/storage-adapter.js.map +1 -0
  419. package/dist/objects/primitives/with-primitives.js +102 -0
  420. package/dist/objects/primitives/with-primitives.js.map +1 -0
  421. package/dist/objects/services/StoreManager.js +227 -0
  422. package/dist/objects/services/StoreManager.js.map +1 -0
  423. package/dist/objects/services/index.js +13 -0
  424. package/dist/objects/services/index.js.map +1 -0
  425. package/dist/objects/transport/auth-layer.js +1451 -0
  426. package/dist/objects/transport/auth-layer.js.map +1 -0
  427. package/dist/objects/transport/capnweb-target.js +355 -0
  428. package/dist/objects/transport/capnweb-target.js.map +1 -0
  429. package/dist/objects/transport/chain.js +441 -0
  430. package/dist/objects/transport/chain.js.map +1 -0
  431. package/dist/objects/transport/handler.js +58 -0
  432. package/dist/objects/transport/handler.js.map +1 -0
  433. package/dist/objects/transport/index.js +53 -0
  434. package/dist/objects/transport/index.js.map +1 -0
  435. package/dist/objects/transport/mcp-server.js +691 -0
  436. package/dist/objects/transport/mcp-server.js.map +1 -0
  437. package/dist/objects/transport/rest-autowire.js +1508 -0
  438. package/dist/objects/transport/rest-autowire.js.map +1 -0
  439. package/dist/objects/transport/rest-router.js +440 -0
  440. package/dist/objects/transport/rest-router.js.map +1 -0
  441. package/dist/objects/transport/rpc-server.js +1539 -0
  442. package/dist/objects/transport/rpc-server.js.map +1 -0
  443. package/dist/objects/transport/shared.js +576 -0
  444. package/dist/objects/transport/shared.js.map +1 -0
  445. package/dist/objects/transport/sync-engine.js +291 -0
  446. package/dist/objects/transport/sync-engine.js.map +1 -0
  447. package/dist/objects/transport/types.js +8 -0
  448. package/dist/objects/transport/types.js.map +1 -0
  449. package/dist/sandbox/index.js +258 -0
  450. package/dist/sandbox/index.js.map +1 -0
  451. package/dist/snippets/artifacts-config.js +241 -0
  452. package/dist/snippets/artifacts-config.js.map +1 -0
  453. package/dist/snippets/artifacts-ingest.js +832 -0
  454. package/dist/snippets/artifacts-ingest.js.map +1 -0
  455. package/dist/snippets/artifacts-serve.js +1035 -0
  456. package/dist/snippets/artifacts-serve.js.map +1 -0
  457. package/dist/snippets/artifacts-types.js +161 -0
  458. package/dist/snippets/artifacts-types.js.map +1 -0
  459. package/dist/snippets/cache-probe.js +376 -0
  460. package/dist/snippets/cache-probe.js.map +1 -0
  461. package/dist/snippets/cache.js +10 -0
  462. package/dist/snippets/cache.js.map +1 -0
  463. package/dist/snippets/events.js +469 -0
  464. package/dist/snippets/events.js.map +1 -0
  465. package/dist/snippets/index.js +7 -0
  466. package/dist/snippets/index.js.map +1 -0
  467. package/dist/snippets/proxy.js +495 -0
  468. package/dist/snippets/proxy.js.map +1 -0
  469. package/dist/snippets/search.js +1759 -0
  470. package/dist/snippets/search.js.map +1 -0
  471. package/dist/streams/index.js +30 -0
  472. package/dist/streams/index.js.map +1 -0
  473. package/dist/streams/observability.js +68 -0
  474. package/dist/streams/observability.js.map +1 -0
  475. package/dist/types/AI.js +92 -0
  476. package/dist/types/AI.js.map +1 -0
  477. package/dist/types/AIFunction.js +171 -0
  478. package/dist/types/AIFunction.js.map +1 -0
  479. package/dist/types/BrowseVerb.js +89 -0
  480. package/dist/types/BrowseVerb.js.map +1 -0
  481. package/dist/types/Browser.js +31 -0
  482. package/dist/types/Browser.js.map +1 -0
  483. package/dist/types/Chaos.js +15 -0
  484. package/dist/types/Chaos.js.map +1 -0
  485. package/dist/types/CloudflareBindings.js +109 -0
  486. package/dist/types/CloudflareBindings.js.map +1 -0
  487. package/dist/types/Collection.js +50 -0
  488. package/dist/types/Collection.js.map +1 -0
  489. package/dist/types/DO.js +2 -0
  490. package/dist/types/DO.js.map +1 -0
  491. package/dist/types/DOLocation.js +63 -0
  492. package/dist/types/DOLocation.js.map +1 -0
  493. package/dist/types/EventHandler.js +57 -0
  494. package/dist/types/EventHandler.js.map +1 -0
  495. package/dist/types/Experiment.js +33 -0
  496. package/dist/types/Experiment.js.map +1 -0
  497. package/dist/types/Flag.js +57 -0
  498. package/dist/types/Flag.js.map +1 -0
  499. package/dist/types/Lifecycle.js +13 -0
  500. package/dist/types/Lifecycle.js.map +1 -0
  501. package/dist/types/Location.js +169 -0
  502. package/dist/types/Location.js.map +1 -0
  503. package/dist/types/Noun.js +66 -0
  504. package/dist/types/Noun.js.map +1 -0
  505. package/dist/types/SessionEvent.js +194 -0
  506. package/dist/types/SessionEvent.js.map +1 -0
  507. package/dist/types/Thing.js +55 -0
  508. package/dist/types/Thing.js.map +1 -0
  509. package/dist/types/ThingDO.js +153 -0
  510. package/dist/types/ThingDO.js.map +1 -0
  511. package/dist/types/Things.js +2 -0
  512. package/dist/types/Things.js.map +1 -0
  513. package/dist/types/Verb.js +119 -0
  514. package/dist/types/Verb.js.map +1 -0
  515. package/dist/types/WorkflowContext.js +70 -0
  516. package/dist/types/WorkflowContext.js.map +1 -0
  517. package/dist/types/analytics-api.js +13 -0
  518. package/dist/types/analytics-api.js.map +1 -0
  519. package/dist/types/capabilities.js +135 -0
  520. package/dist/types/capabilities.js.map +1 -0
  521. package/dist/types/drizzle.js +12 -0
  522. package/dist/types/drizzle.js.map +1 -0
  523. package/dist/types/event.js +201 -0
  524. package/dist/types/event.js.map +1 -0
  525. package/dist/types/fn.js +12 -0
  526. package/dist/types/fn.js.map +1 -0
  527. package/dist/types/iceberg.js +48 -0
  528. package/dist/types/iceberg.js.map +1 -0
  529. package/dist/types/ids.js +170 -0
  530. package/dist/types/ids.js.map +1 -0
  531. package/dist/types/index.js +41 -0
  532. package/dist/types/index.js.map +1 -0
  533. package/dist/types/introspect.js +54 -0
  534. package/dist/types/introspect.js.map +1 -0
  535. package/dist/types/observability.js +124 -0
  536. package/dist/types/observability.js.map +1 -0
  537. package/dist/types/sync-protocol.js +175 -0
  538. package/dist/types/sync-protocol.js.map +1 -0
  539. package/dist/types/vector.js +13 -0
  540. package/dist/types/vector.js.map +1 -0
  541. package/dist/workflows/ScheduleManager.js +473 -0
  542. package/dist/workflows/ScheduleManager.js.map +1 -0
  543. package/dist/workflows/StepDOBridge.js +149 -0
  544. package/dist/workflows/StepDOBridge.js.map +1 -0
  545. package/dist/workflows/StepResultStorage.js +232 -0
  546. package/dist/workflows/StepResultStorage.js.map +1 -0
  547. package/dist/workflows/WaitForEventManager.js +461 -0
  548. package/dist/workflows/WaitForEventManager.js.map +1 -0
  549. package/dist/workflows/analyzer.js +332 -0
  550. package/dist/workflows/analyzer.js.map +1 -0
  551. package/dist/workflows/compat/activity-router.js +484 -0
  552. package/dist/workflows/compat/activity-router.js.map +1 -0
  553. package/dist/workflows/compat/backends/cloudflare-workflows.js +431 -0
  554. package/dist/workflows/compat/backends/cloudflare-workflows.js.map +1 -0
  555. package/dist/workflows/compat/backends/index.js +14 -0
  556. package/dist/workflows/compat/backends/index.js.map +1 -0
  557. package/dist/workflows/compat/errors/index.js +375 -0
  558. package/dist/workflows/compat/errors/index.js.map +1 -0
  559. package/dist/workflows/compat/index.js +79 -0
  560. package/dist/workflows/compat/index.js.map +1 -0
  561. package/dist/workflows/compat/inngest/index.js +989 -0
  562. package/dist/workflows/compat/inngest/index.js.map +1 -0
  563. package/dist/workflows/compat/qstash/index.js +1263 -0
  564. package/dist/workflows/compat/qstash/index.js.map +1 -0
  565. package/dist/workflows/compat/temporal/activities.js +739 -0
  566. package/dist/workflows/compat/temporal/activities.js.map +1 -0
  567. package/dist/workflows/compat/temporal/child-workflows.js +154 -0
  568. package/dist/workflows/compat/temporal/child-workflows.js.map +1 -0
  569. package/dist/workflows/compat/temporal/client.js +381 -0
  570. package/dist/workflows/compat/temporal/client.js.map +1 -0
  571. package/dist/workflows/compat/temporal/context.js +309 -0
  572. package/dist/workflows/compat/temporal/context.js.map +1 -0
  573. package/dist/workflows/compat/temporal/determinism.js +216 -0
  574. package/dist/workflows/compat/temporal/determinism.js.map +1 -0
  575. package/dist/workflows/compat/temporal/errors.js +128 -0
  576. package/dist/workflows/compat/temporal/errors.js.map +1 -0
  577. package/dist/workflows/compat/temporal/index.js +2464 -0
  578. package/dist/workflows/compat/temporal/index.js.map +1 -0
  579. package/dist/workflows/compat/temporal/saga.js +504 -0
  580. package/dist/workflows/compat/temporal/saga.js.map +1 -0
  581. package/dist/workflows/compat/temporal/signals.js +364 -0
  582. package/dist/workflows/compat/temporal/signals.js.map +1 -0
  583. package/dist/workflows/compat/temporal/storage.js +271 -0
  584. package/dist/workflows/compat/temporal/storage.js.map +1 -0
  585. package/dist/workflows/compat/temporal/timers.js +347 -0
  586. package/dist/workflows/compat/temporal/timers.js.map +1 -0
  587. package/dist/workflows/compat/temporal/types.js +7 -0
  588. package/dist/workflows/compat/temporal/types.js.map +1 -0
  589. package/dist/workflows/compat/temporal/unified-primitives.js +339 -0
  590. package/dist/workflows/compat/temporal/unified-primitives.js.map +1 -0
  591. package/dist/workflows/compat/trigger/index.js +468 -0
  592. package/dist/workflows/compat/trigger/index.js.map +1 -0
  593. package/dist/workflows/compat/utils/index.js +69 -0
  594. package/dist/workflows/compat/utils/index.js.map +1 -0
  595. package/dist/workflows/context/correlation-capability.js +266 -0
  596. package/dist/workflows/context/correlation-capability.js.map +1 -0
  597. package/dist/workflows/context/correlation.js +484 -0
  598. package/dist/workflows/context/correlation.js.map +1 -0
  599. package/dist/workflows/context/experiment.js +289 -0
  600. package/dist/workflows/context/experiment.js.map +1 -0
  601. package/dist/workflows/context/flag.js +244 -0
  602. package/dist/workflows/context/flag.js.map +1 -0
  603. package/dist/workflows/context/foundation.js +648 -0
  604. package/dist/workflows/context/foundation.js.map +1 -0
  605. package/dist/workflows/context/human-base.js +106 -0
  606. package/dist/workflows/context/human-base.js.map +1 -0
  607. package/dist/workflows/context/human.js +368 -0
  608. package/dist/workflows/context/human.js.map +1 -0
  609. package/dist/workflows/context/measure.js +354 -0
  610. package/dist/workflows/context/measure.js.map +1 -0
  611. package/dist/workflows/context/rate-limit.js +358 -0
  612. package/dist/workflows/context/rate-limit.js.map +1 -0
  613. package/dist/workflows/context/user.js +117 -0
  614. package/dist/workflows/context/user.js.map +1 -0
  615. package/dist/workflows/context/vault.js +360 -0
  616. package/dist/workflows/context/vault.js.map +1 -0
  617. package/dist/workflows/data/entity-events/entity-events.js +489 -0
  618. package/dist/workflows/data/entity-events/entity-events.js.map +1 -0
  619. package/dist/workflows/data/experiment/index.js +599 -0
  620. package/dist/workflows/data/experiment/index.js.map +1 -0
  621. package/dist/workflows/data/goal/context.js +558 -0
  622. package/dist/workflows/data/goal/context.js.map +1 -0
  623. package/dist/workflows/data/goal/index.js +32 -0
  624. package/dist/workflows/data/goal/index.js.map +1 -0
  625. package/dist/workflows/data/measure/index.js +840 -0
  626. package/dist/workflows/data/measure/index.js.map +1 -0
  627. package/dist/workflows/data/stream/index.js +1149 -0
  628. package/dist/workflows/data/stream/index.js.map +1 -0
  629. package/dist/workflows/data/track/context.js +883 -0
  630. package/dist/workflows/data/track/context.js.map +1 -0
  631. package/dist/workflows/data/track/index.js +15 -0
  632. package/dist/workflows/data/track/index.js.map +1 -0
  633. package/dist/workflows/data/view/context.js +864 -0
  634. package/dist/workflows/data/view/context.js.map +1 -0
  635. package/dist/workflows/domain.js +93 -0
  636. package/dist/workflows/domain.js.map +1 -0
  637. package/dist/workflows/flag.js +176 -0
  638. package/dist/workflows/flag.js.map +1 -0
  639. package/dist/workflows/flags.js +217 -0
  640. package/dist/workflows/flags.js.map +1 -0
  641. package/dist/workflows/hash.js +209 -0
  642. package/dist/workflows/hash.js.map +1 -0
  643. package/dist/workflows/index.js +50 -0
  644. package/dist/workflows/index.js.map +1 -0
  645. package/dist/workflows/on.js +378 -0
  646. package/dist/workflows/on.js.map +1 -0
  647. package/dist/workflows/pipeline-promise.js +481 -0
  648. package/dist/workflows/pipeline-promise.js.map +1 -0
  649. package/dist/workflows/pipeline-types.js +20 -0
  650. package/dist/workflows/pipeline-types.js.map +1 -0
  651. package/dist/workflows/proxy.js +76 -0
  652. package/dist/workflows/proxy.js.map +1 -0
  653. package/dist/workflows/runtime.js +310 -0
  654. package/dist/workflows/runtime.js.map +1 -0
  655. package/dist/workflows/schedule-builder.js +327 -0
  656. package/dist/workflows/schedule-builder.js.map +1 -0
  657. package/dist/workflows/visibility/index.js +146 -0
  658. package/dist/workflows/visibility/index.js.map +1 -0
  659. package/dist/workflows/visibility/query-parser.js +150 -0
  660. package/dist/workflows/visibility/query-parser.js.map +1 -0
  661. package/dist/workflows/visibility/store.js +223 -0
  662. package/dist/workflows/visibility/store.js.map +1 -0
  663. package/dist/workflows/visibility/types.js +30 -0
  664. package/dist/workflows/visibility/types.js.map +1 -0
  665. package/dist/workflows/workflow.js +53 -0
  666. package/dist/workflows/workflow.js.map +1 -0
  667. package/package.json +294 -46
@@ -0,0 +1,439 @@
1
+ /**
2
+ * DO Auto-Wiring via Reflection
3
+ *
4
+ * Discovers public methods on DO subclasses and exposes them to
5
+ * SDK/RPC/MCP/REST/CLI transports. This enables a single class
6
+ * definition to automatically provide multiple API interfaces.
7
+ *
8
+ * Key concepts:
9
+ * - Public methods (no underscore prefix) are exposed
10
+ * - _prefixed methods remain private
11
+ * - __prefixed methods are protected-style
12
+ * - Reflection discovers methods on prototype chain
13
+ * - Method metadata (parameters, return types, descriptions) can be extracted
14
+ */
15
+ // ============================================================================
16
+ // CONSTANTS
17
+ // ============================================================================
18
+ /**
19
+ * Methods from Object.prototype that should never be exposed
20
+ */
21
+ const OBJECT_PROTOTYPE_METHODS = new Set([
22
+ 'constructor',
23
+ 'toString',
24
+ 'toLocaleString',
25
+ 'valueOf',
26
+ 'hasOwnProperty',
27
+ 'isPrototypeOf',
28
+ 'propertyIsEnumerable',
29
+ '__defineGetter__',
30
+ '__defineSetter__',
31
+ '__lookupGetter__',
32
+ '__lookupSetter__',
33
+ '__proto__',
34
+ ]);
35
+ /**
36
+ * Methods from DurableObject/DO base class that should not be exposed
37
+ * These are framework methods, not business logic
38
+ */
39
+ const DO_BASE_METHODS = new Set([
40
+ // Lifecycle
41
+ 'initialize',
42
+ 'fork',
43
+ 'compact',
44
+ 'moveTo',
45
+ // Branching
46
+ 'branch',
47
+ 'checkout',
48
+ 'merge',
49
+ // Resolution
50
+ 'resolve',
51
+ // HTTP handler from DurableObject
52
+ 'fetch',
53
+ // Workflow context methods (protected, but accessible via $)
54
+ 'send',
55
+ 'try',
56
+ 'do',
57
+ 'emit',
58
+ 'logAction',
59
+ 'emitEvent',
60
+ 'createWorkflowContext',
61
+ 'createOnProxy',
62
+ 'createScheduleBuilder',
63
+ 'createDomainProxy',
64
+ // Internal helpers
65
+ 'resolveLocal',
66
+ 'resolveCrossDO',
67
+ 'invokeDomainMethod',
68
+ 'invokeCrossDOMethod',
69
+ 'executeAction',
70
+ 'completeAction',
71
+ 'failAction',
72
+ 'updateActionStatus',
73
+ 'log',
74
+ 'sleep',
75
+ 'link',
76
+ 'getLinkedObjects',
77
+ 'createThing',
78
+ 'createAction',
79
+ // Capability system
80
+ 'hasCapability',
81
+ // Protected accessors (these become getters)
82
+ 'collection',
83
+ 'relationships',
84
+ // Private methods (no underscore prefix but marked private in TypeScript)
85
+ 'getStoreContext',
86
+ 'getOrCreateStub',
87
+ 'recordFailure',
88
+ 'clearCrossDoCache',
89
+ 'createDefaultApp',
90
+ // Actor context methods
91
+ 'setActor',
92
+ 'clearActor',
93
+ 'getCurrentActor',
94
+ // HTTP handling
95
+ 'handleFetch',
96
+ ]);
97
+ // ============================================================================
98
+ // CACHES
99
+ // ============================================================================
100
+ const exposedMethodsCache = new WeakMap();
101
+ const methodSignatureCache = new WeakMap();
102
+ const methodMetadataCache = new WeakMap();
103
+ // ============================================================================
104
+ // HELPER FUNCTIONS
105
+ // ============================================================================
106
+ /**
107
+ * Get the prototype chain for a class, stopping at Object.prototype
108
+ */
109
+ function getPrototypeChain(cls) {
110
+ const chain = [];
111
+ let proto = cls.prototype;
112
+ while (proto && proto !== Object.prototype) {
113
+ chain.push(proto);
114
+ proto = Object.getPrototypeOf(proto);
115
+ }
116
+ return chain;
117
+ }
118
+ /**
119
+ * Check if a property is a getter/setter (not a regular method)
120
+ */
121
+ function isGetterOrSetter(proto, name) {
122
+ const descriptor = Object.getOwnPropertyDescriptor(proto, name);
123
+ return descriptor !== undefined && (descriptor.get !== undefined || descriptor.set !== undefined);
124
+ }
125
+ /**
126
+ * Check if a method is an async function
127
+ */
128
+ function isAsyncFunction(fn) {
129
+ return fn.constructor.name === 'AsyncFunction' ||
130
+ fn.toString().startsWith('async ');
131
+ }
132
+ /**
133
+ * Parse function parameters from its source string
134
+ * Returns array of { name, optional } objects
135
+ */
136
+ function parseParameters(fn) {
137
+ const fnStr = fn.toString();
138
+ // Match the parameters section
139
+ // Handle multiple formats:
140
+ // - function name(a, b) { }
141
+ // - (a, b) => { }
142
+ // - async (a, b) => { }
143
+ // - methodName(a, b) { } (class methods)
144
+ // - async methodName(a, b) { } (async class methods)
145
+ // - *methodName(a, b) { } (generator methods)
146
+ const paramMatch = fnStr.match(/^(?:async\s+)?(?:\*\s*)?(?:function\s*)?(?:\w+\s*)?\(([^)]*)\)|^(?:async\s+)?(\w+)\s*=>/);
147
+ if (!paramMatch) {
148
+ return [];
149
+ }
150
+ // If it's a single arrow function param without parens (x => ...)
151
+ if (paramMatch[2]) {
152
+ return [{ name: paramMatch[2], optional: false }];
153
+ }
154
+ const paramStr = paramMatch[1];
155
+ if (!paramStr || paramStr.trim() === '') {
156
+ return [];
157
+ }
158
+ // Split by comma, handling nested structures like { a, b } and array types
159
+ const params = [];
160
+ let depth = 0;
161
+ let current = '';
162
+ for (const char of paramStr) {
163
+ if (char === '(' || char === '{' || char === '[' || char === '<') {
164
+ depth++;
165
+ current += char;
166
+ }
167
+ else if (char === ')' || char === '}' || char === ']' || char === '>') {
168
+ depth--;
169
+ current += char;
170
+ }
171
+ else if (char === ',' && depth === 0) {
172
+ if (current.trim()) {
173
+ params.push(parseParameter(current.trim()));
174
+ }
175
+ current = '';
176
+ }
177
+ else {
178
+ current += char;
179
+ }
180
+ }
181
+ if (current.trim()) {
182
+ params.push(parseParameter(current.trim()));
183
+ }
184
+ return params;
185
+ }
186
+ /**
187
+ * Parse a single parameter string like "name: type" or "name?: type" or "name = default"
188
+ */
189
+ function parseParameter(paramStr) {
190
+ // Handle rest parameters (...rest: type[])
191
+ const restMatch = paramStr.match(/^\.\.\.(\w+)/);
192
+ if (restMatch) {
193
+ return { name: restMatch[1], optional: true };
194
+ }
195
+ // Handle destructuring: { a, b }: Type or [a, b]: Type
196
+ if (paramStr.startsWith('{') || paramStr.startsWith('[')) {
197
+ // Extract name from after the closing brace/bracket
198
+ const colonIndex = paramStr.lastIndexOf(':');
199
+ if (colonIndex !== -1) {
200
+ // Try to get a meaningful name, or use 'data'
201
+ return { name: 'data', optional: paramStr.includes('?') };
202
+ }
203
+ return { name: 'data', optional: false };
204
+ }
205
+ // Handle regular parameters: name, name?, name: type, name?: type, name = default
206
+ const nameMatch = paramStr.match(/^(\w+)(\?)?(?:\s*[=:]|$)/);
207
+ if (nameMatch) {
208
+ const isOptional = nameMatch[2] === '?' || paramStr.includes('=');
209
+ return { name: nameMatch[1], optional: isOptional };
210
+ }
211
+ return { name: 'arg', optional: false };
212
+ }
213
+ /**
214
+ * Check if a method name should be excluded from exposure
215
+ */
216
+ function shouldExclude(name) {
217
+ // Exclude constructor
218
+ if (name === 'constructor')
219
+ return true;
220
+ // Exclude _prefixed and __prefixed methods
221
+ if (name.startsWith('_'))
222
+ return true;
223
+ // Exclude Object.prototype methods
224
+ if (OBJECT_PROTOTYPE_METHODS.has(name))
225
+ return true;
226
+ // Exclude DO base methods
227
+ if (DO_BASE_METHODS.has(name))
228
+ return true;
229
+ return false;
230
+ }
231
+ /**
232
+ * Generate a human-readable description from a camelCase/PascalCase method name
233
+ * e.g., "createOrder" -> "Create order"
234
+ * "getCustomerById" -> "Get customer by id"
235
+ */
236
+ function generateMethodDescription(methodName) {
237
+ // Split camelCase/PascalCase into words
238
+ const words = methodName
239
+ .replace(/([A-Z])/g, ' $1')
240
+ .replace(/^./, (str) => str.toUpperCase())
241
+ .trim()
242
+ .toLowerCase();
243
+ // Capitalize first letter
244
+ return words.charAt(0).toUpperCase() + words.slice(1);
245
+ }
246
+ // ============================================================================
247
+ // MAIN API
248
+ // ============================================================================
249
+ /**
250
+ * Get list of exposed (public) method names for a DO class
251
+ *
252
+ * @param DOClass - The DO class constructor to inspect
253
+ * @returns Array of public method names
254
+ */
255
+ export function getExposedMethods(DOClass) {
256
+ // Check cache
257
+ const cached = exposedMethodsCache.get(DOClass);
258
+ if (cached) {
259
+ return cached;
260
+ }
261
+ const methods = new Set();
262
+ const chain = getPrototypeChain(DOClass);
263
+ for (const proto of chain) {
264
+ // Get all own property names (string keys only, not symbols)
265
+ const names = Object.getOwnPropertyNames(proto);
266
+ for (const name of names) {
267
+ // Skip if should be excluded
268
+ if (shouldExclude(name))
269
+ continue;
270
+ // Skip getters/setters
271
+ if (isGetterOrSetter(proto, name))
272
+ continue;
273
+ // Get the property descriptor
274
+ const descriptor = Object.getOwnPropertyDescriptor(proto, name);
275
+ if (!descriptor)
276
+ continue;
277
+ // Must be a function
278
+ const value = descriptor.value;
279
+ if (typeof value !== 'function')
280
+ continue;
281
+ methods.add(name);
282
+ }
283
+ }
284
+ const result = Array.from(methods);
285
+ exposedMethodsCache.set(DOClass, result);
286
+ return result;
287
+ }
288
+ /**
289
+ * Check if a method is exposed (public) on a DO class
290
+ *
291
+ * @param DOClass - The DO class constructor to inspect
292
+ * @param methodName - The method name to check
293
+ * @returns true if the method is exposed, false otherwise
294
+ */
295
+ export function isExposed(DOClass, methodName) {
296
+ // Quick exclusion checks
297
+ if (shouldExclude(methodName))
298
+ return false;
299
+ // Check if it's a symbol string representation
300
+ if (methodName.includes('Symbol'))
301
+ return false;
302
+ const chain = getPrototypeChain(DOClass);
303
+ for (const proto of chain) {
304
+ // Check if property exists
305
+ if (!Object.prototype.hasOwnProperty.call(proto, methodName))
306
+ continue;
307
+ // Skip getters/setters
308
+ if (isGetterOrSetter(proto, methodName))
309
+ return false;
310
+ const descriptor = Object.getOwnPropertyDescriptor(proto, methodName);
311
+ if (!descriptor)
312
+ continue;
313
+ // Must be a function
314
+ if (typeof descriptor.value === 'function') {
315
+ return true;
316
+ }
317
+ }
318
+ return false;
319
+ }
320
+ /**
321
+ * Get the signature of a method on a DO class
322
+ *
323
+ * @param DOClass - The DO class constructor to inspect
324
+ * @param methodName - The method name to get signature for
325
+ * @returns MethodSignature if method is exposed, undefined otherwise
326
+ */
327
+ export function getMethodSignature(DOClass, methodName) {
328
+ // Check cache
329
+ let classCache = methodSignatureCache.get(DOClass);
330
+ if (classCache?.has(methodName)) {
331
+ return classCache.get(methodName);
332
+ }
333
+ // Method must be exposed
334
+ if (!isExposed(DOClass, methodName)) {
335
+ if (!classCache) {
336
+ classCache = new Map();
337
+ methodSignatureCache.set(DOClass, classCache);
338
+ }
339
+ classCache.set(methodName, undefined);
340
+ return undefined;
341
+ }
342
+ // Find the method in prototype chain
343
+ const chain = getPrototypeChain(DOClass);
344
+ let fn;
345
+ for (const proto of chain) {
346
+ const descriptor = Object.getOwnPropertyDescriptor(proto, methodName);
347
+ if (descriptor && typeof descriptor.value === 'function') {
348
+ fn = descriptor.value;
349
+ break;
350
+ }
351
+ }
352
+ if (!fn) {
353
+ return undefined;
354
+ }
355
+ const parameters = parseParameters(fn);
356
+ // Mark parameters beyond fn.length as optional
357
+ // fn.length counts only the parameters before the first one with a default value
358
+ // Parameters at or after fn.length are considered optional
359
+ const requiredParamCount = fn.length;
360
+ for (let i = requiredParamCount; i < parameters.length; i++) {
361
+ parameters[i].optional = true;
362
+ }
363
+ // Heuristic: Common optional parameter naming patterns
364
+ // In TypeScript/JavaScript, parameters with these names are often optional
365
+ const optionalPatterns = /^(options?|opts?|config|params?|settings|args|kwargs|extra|additional|metadata|context|props)$/i;
366
+ for (const param of parameters) {
367
+ if (optionalPatterns.test(param.name)) {
368
+ param.optional = true;
369
+ }
370
+ }
371
+ const signature = {
372
+ name: methodName,
373
+ parameterCount: fn.length,
374
+ parameters,
375
+ async: isAsyncFunction(fn),
376
+ };
377
+ // Cache the result
378
+ if (!classCache) {
379
+ classCache = new Map();
380
+ methodSignatureCache.set(DOClass, classCache);
381
+ }
382
+ classCache.set(methodName, signature);
383
+ return signature;
384
+ }
385
+ /**
386
+ * Get metadata for a method on a DO class
387
+ *
388
+ * Note: Full JSDoc parsing requires additional tooling (e.g., TypeScript compiler API
389
+ * or a JSDoc parser). This implementation provides basic metadata and a structure
390
+ * that can be extended with decorator-based or external metadata sources.
391
+ *
392
+ * @param DOClass - The DO class constructor to inspect
393
+ * @param methodName - The method name to get metadata for
394
+ * @returns MethodMetadata if method is exposed, undefined otherwise
395
+ */
396
+ export function getMethodMetadata(DOClass, methodName) {
397
+ // Check cache
398
+ let classCache = methodMetadataCache.get(DOClass);
399
+ if (classCache?.has(methodName)) {
400
+ return classCache.get(methodName);
401
+ }
402
+ // Method must be exposed
403
+ if (!isExposed(DOClass, methodName)) {
404
+ if (!classCache) {
405
+ classCache = new Map();
406
+ methodMetadataCache.set(DOClass, classCache);
407
+ }
408
+ classCache.set(methodName, undefined);
409
+ return undefined;
410
+ }
411
+ // Get signature for parameter info
412
+ const signature = getMethodSignature(DOClass, methodName);
413
+ if (!signature) {
414
+ return undefined;
415
+ }
416
+ // Build basic metadata
417
+ // In a full implementation, this could extract JSDoc from source or use decorators
418
+ // For now, we provide auto-generated descriptions based on method name
419
+ const generatedDescription = generateMethodDescription(methodName);
420
+ const metadata = {
421
+ name: methodName,
422
+ description: generatedDescription,
423
+ parameters: {},
424
+ returns: { description: `Return value of ${methodName}` },
425
+ throws: undefined,
426
+ };
427
+ // Populate parameter entries from signature
428
+ for (const param of signature.parameters) {
429
+ metadata.parameters[param.name] = { description: undefined };
430
+ }
431
+ // Cache the result
432
+ if (!classCache) {
433
+ classCache = new Map();
434
+ methodMetadataCache.set(DOClass, classCache);
435
+ }
436
+ classCache.set(methodName, metadata);
437
+ return metadata;
438
+ }
439
+ //# sourceMappingURL=auto-wiring.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-wiring.js","sourceRoot":"","sources":["../../lib/auto-wiring.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAkCH,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAE/E;;GAEG;AACH,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC;IACvC,aAAa;IACb,UAAU;IACV,gBAAgB;IAChB,SAAS;IACT,gBAAgB;IAChB,eAAe;IACf,sBAAsB;IACtB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,WAAW;CACZ,CAAC,CAAA;AAEF;;;GAGG;AACH,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC9B,YAAY;IACZ,YAAY;IACZ,MAAM;IACN,SAAS;IACT,QAAQ;IAER,YAAY;IACZ,QAAQ;IACR,UAAU;IACV,OAAO;IAEP,aAAa;IACb,SAAS;IAET,kCAAkC;IAClC,OAAO;IAEP,6DAA6D;IAC7D,MAAM;IACN,KAAK;IACL,IAAI;IACJ,MAAM;IACN,WAAW;IACX,WAAW;IACX,uBAAuB;IACvB,eAAe;IACf,uBAAuB;IACvB,mBAAmB;IAEnB,mBAAmB;IACnB,cAAc;IACd,gBAAgB;IAChB,oBAAoB;IACpB,qBAAqB;IACrB,eAAe;IACf,gBAAgB;IAChB,YAAY;IACZ,oBAAoB;IACpB,KAAK;IACL,OAAO;IACP,MAAM;IACN,kBAAkB;IAClB,aAAa;IACb,cAAc;IAEd,oBAAoB;IACpB,eAAe;IAEf,6CAA6C;IAC7C,YAAY;IACZ,eAAe;IAEf,0EAA0E;IAC1E,iBAAiB;IACjB,iBAAiB;IACjB,eAAe;IACf,mBAAmB;IACnB,kBAAkB;IAElB,wBAAwB;IACxB,UAAU;IACV,YAAY;IACZ,iBAAiB;IAEjB,gBAAgB;IAChB,aAAa;CACd,CAAC,CAAA;AAEF,+EAA+E;AAC/E,SAAS;AACT,+EAA+E;AAE/E,MAAM,mBAAmB,GAAG,IAAI,OAAO,EAAsB,CAAA;AAC7D,MAAM,oBAAoB,GAAG,IAAI,OAAO,EAAsD,CAAA;AAC9F,MAAM,mBAAmB,GAAG,IAAI,OAAO,EAAqD,CAAA;AAE5F,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E;;GAEG;AACH,SAAS,iBAAiB,CAAC,GAAa;IACtC,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,IAAI,KAAK,GAAG,GAAG,CAAC,SAAS,CAAA;IAEzB,OAAO,KAAK,IAAI,KAAK,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;QAC3C,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACjB,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;IACtC,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,KAAa,EAAE,IAAY;IACnD,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IAC/D,OAAO,UAAU,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,GAAG,KAAK,SAAS,IAAI,UAAU,CAAC,GAAG,KAAK,SAAS,CAAC,CAAA;AACnG,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,EAAY;IACnC,OAAO,EAAE,CAAC,WAAW,CAAC,IAAI,KAAK,eAAe;QACvC,EAAE,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;AAC3C,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,EAAY;IACnC,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAA;IAE3B,+BAA+B;IAC/B,2BAA2B;IAC3B,4BAA4B;IAC5B,kBAAkB;IAClB,wBAAwB;IACxB,yCAAyC;IACzC,qDAAqD;IACrD,8CAA8C;IAC9C,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAC5B,yFAAyF,CAC1F,CAAA;IAED,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,EAAE,CAAA;IACX,CAAC;IAED,kEAAkE;IAClE,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QAClB,OAAO,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;IACnD,CAAC;IAED,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;IAC9B,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACxC,OAAO,EAAE,CAAA;IACX,CAAC;IAED,2EAA2E;IAC3E,MAAM,MAAM,GAAoB,EAAE,CAAA;IAClC,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,OAAO,GAAG,EAAE,CAAA;IAEhB,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjE,KAAK,EAAE,CAAA;YACP,OAAO,IAAI,IAAI,CAAA;QACjB,CAAC;aAAM,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACxE,KAAK,EAAE,CAAA;YACP,OAAO,IAAI,IAAI,CAAA;QACjB,CAAC;aAAM,IAAI,IAAI,KAAK,GAAG,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YACvC,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;gBACnB,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;YAC7C,CAAC;YACD,OAAO,GAAG,EAAE,CAAA;QACd,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,IAAI,CAAA;QACjB,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IAC7C,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,QAAgB;IACtC,2CAA2C;IAC3C,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;IAChD,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;IAChD,CAAC;IAED,uDAAuD;IACvD,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACzD,oDAAoD;QACpD,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QAC5C,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;YACtB,8CAA8C;YAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAA;QAC3D,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;IAC1C,CAAC;IAED,kFAAkF;IAClF,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAA;IAC5D,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QACjE,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAA;IACtD,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;AACzC,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,IAAY;IACjC,sBAAsB;IACtB,IAAI,IAAI,KAAK,aAAa;QAAE,OAAO,IAAI,CAAA;IAEvC,2CAA2C;IAC3C,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAA;IAErC,mCAAmC;IACnC,IAAI,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IAEnD,0BAA0B;IAC1B,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IAE1C,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;GAIG;AACH,SAAS,yBAAyB,CAAC,UAAkB;IACnD,wCAAwC;IACxC,MAAM,KAAK,GAAG,UAAU;SACrB,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC;SAC1B,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;SACzC,IAAI,EAAE;SACN,WAAW,EAAE,CAAA;IAEhB,0BAA0B;IAC1B,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AACvD,CAAC;AAED,+EAA+E;AAC/E,WAAW;AACX,+EAA+E;AAE/E;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAiB;IACjD,cAAc;IACd,MAAM,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAC/C,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAA;IACf,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAA;IACjC,MAAM,KAAK,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;IAExC,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1B,6DAA6D;QAC7D,MAAM,KAAK,GAAG,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAA;QAE/C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,6BAA6B;YAC7B,IAAI,aAAa,CAAC,IAAI,CAAC;gBAAE,SAAQ;YAEjC,uBAAuB;YACvB,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC;gBAAE,SAAQ;YAE3C,8BAA8B;YAC9B,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;YAC/D,IAAI,CAAC,UAAU;gBAAE,SAAQ;YAEzB,qBAAqB;YACrB,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAA;YAC9B,IAAI,OAAO,KAAK,KAAK,UAAU;gBAAE,SAAQ;YAEzC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACnB,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAClC,mBAAmB,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IACxC,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,OAAiB,EAAE,UAAkB;IAC7D,yBAAyB;IACzB,IAAI,aAAa,CAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAA;IAE3C,+CAA+C;IAC/C,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAA;IAE/C,MAAM,KAAK,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;IAExC,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1B,2BAA2B;QAC3B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC;YAAE,SAAQ;QAEtE,uBAAuB;QACvB,IAAI,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC;YAAE,OAAO,KAAK,CAAA;QAErD,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;QACrE,IAAI,CAAC,UAAU;YAAE,SAAQ;QAEzB,qBAAqB;QACrB,IAAI,OAAO,UAAU,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YAC3C,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAiB,EAAE,UAAkB;IACtE,cAAc;IACd,IAAI,UAAU,GAAG,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAClD,IAAI,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;QAChC,OAAO,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IACnC,CAAC;IAED,yBAAyB;IACzB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC;QACpC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,UAAU,GAAG,IAAI,GAAG,EAAE,CAAA;YACtB,oBAAoB,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;QAC/C,CAAC;QACD,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;QACrC,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,qCAAqC;IACrC,MAAM,KAAK,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;IACxC,IAAI,EAAwB,CAAA;IAE5B,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,UAAU,GAAG,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;QACrE,IAAI,UAAU,IAAI,OAAO,UAAU,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YACzD,EAAE,GAAG,UAAU,CAAC,KAAK,CAAA;YACrB,MAAK;QACP,CAAC;IACH,CAAC;IAED,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,MAAM,UAAU,GAAG,eAAe,CAAC,EAAE,CAAC,CAAA;IAEtC,+CAA+C;IAC/C,iFAAiF;IACjF,2DAA2D;IAC3D,MAAM,kBAAkB,GAAG,EAAE,CAAC,MAAM,CAAA;IACpC,KAAK,IAAI,CAAC,GAAG,kBAAkB,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5D,UAAU,CAAC,CAAC,CAAE,CAAC,QAAQ,GAAG,IAAI,CAAA;IAChC,CAAC;IAED,uDAAuD;IACvD,2EAA2E;IAC3E,MAAM,gBAAgB,GAAG,iGAAiG,CAAA;IAE1H,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC/B,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAA;QACvB,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAoB;QACjC,IAAI,EAAE,UAAU;QAChB,cAAc,EAAE,EAAE,CAAC,MAAM;QACzB,UAAU;QACV,KAAK,EAAE,eAAe,CAAC,EAAE,CAAC;KAC3B,CAAA;IAED,mBAAmB;IACnB,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,UAAU,GAAG,IAAI,GAAG,EAAE,CAAA;QACtB,oBAAoB,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;IAC/C,CAAC;IACD,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;IAErC,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAiB,EAAE,UAAkB;IACrE,cAAc;IACd,IAAI,UAAU,GAAG,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IACjD,IAAI,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;QAChC,OAAO,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IACnC,CAAC;IAED,yBAAyB;IACzB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC;QACpC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,UAAU,GAAG,IAAI,GAAG,EAAE,CAAA;YACtB,mBAAmB,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;QAC9C,CAAC;QACD,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;QACrC,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,mCAAmC;IACnC,MAAM,SAAS,GAAG,kBAAkB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;IACzD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,uBAAuB;IACvB,mFAAmF;IACnF,uEAAuE;IACvE,MAAM,oBAAoB,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAAA;IAElE,MAAM,QAAQ,GAAmB;QAC/B,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,oBAAoB;QACjC,UAAU,EAAE,EAAE;QACd,OAAO,EAAE,EAAE,WAAW,EAAE,mBAAmB,UAAU,EAAE,EAAE;QACzD,MAAM,EAAE,SAAS;KAClB,CAAA;IAED,4CAA4C;IAC5C,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;QACzC,QAAQ,CAAC,UAAW,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,SAAS,EAAE,CAAA;IAC/D,CAAC;IAED,mBAAmB;IACnB,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,UAAU,GAAG,IAAI,GAAG,EAAE,CAAA;QACtB,mBAAmB,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;IAC9C,CAAC;IACD,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IAEpC,OAAO,QAAQ,CAAA;AACjB,CAAC"}
@@ -0,0 +1,163 @@
1
+ /**
2
+ * Browserbase Provider
3
+ *
4
+ * Implements the BrowseProvider interface using the Browserbase SDK
5
+ * for cloud browser automation with live view support.
6
+ */
7
+ /**
8
+ * Browserbase provider implementation
9
+ */
10
+ export class BrowserbaseBrowseProvider {
11
+ async init(config) {
12
+ // Validate credentials
13
+ if (!config.env?.BROWSERBASE_API_KEY) {
14
+ throw new Error('Browserbase provider requires BROWSERBASE_API_KEY in env');
15
+ }
16
+ if (!config.env?.BROWSERBASE_PROJECT_ID) {
17
+ throw new Error('Browserbase provider requires BROWSERBASE_PROJECT_ID in env');
18
+ }
19
+ // Initialize Browserbase SDK
20
+ // @ts-ignore - Optional peer dependency
21
+ const { Browserbase } = await import('@browserbasehq/sdk').catch(() => {
22
+ throw new Error('Package @browserbasehq/sdk is required for Browserbase provider. Run: npm install @browserbasehq/sdk');
23
+ });
24
+ const browserbase = new Browserbase({
25
+ apiKey: config.env.BROWSERBASE_API_KEY,
26
+ });
27
+ // Create session with options
28
+ const sessionOptions = {
29
+ projectId: config.env.BROWSERBASE_PROJECT_ID,
30
+ };
31
+ if (config.liveView) {
32
+ sessionOptions.keepAlive = true;
33
+ }
34
+ const browserSession = await browserbase.sessions.create(sessionOptions);
35
+ // Connect via puppeteer-core
36
+ // @ts-ignore - Optional peer dependency
37
+ const puppeteer = await import('puppeteer-core').catch(() => {
38
+ throw new Error('Package puppeteer-core is required for Browserbase provider. Run: npm install puppeteer-core');
39
+ });
40
+ const browser = await puppeteer.default.connect({
41
+ browserWSEndpoint: browserSession.connectUrl,
42
+ });
43
+ const page = await browser.newPage();
44
+ // Apply viewport if specified
45
+ if (config.viewport) {
46
+ await page.setViewport(config.viewport);
47
+ }
48
+ // Initialize Stagehand for AI operations
49
+ // @ts-ignore - Optional peer dependency
50
+ const { Stagehand } = await import('@browserbasehq/stagehand').catch(() => {
51
+ throw new Error('Package @browserbasehq/stagehand is required for Browserbase provider. Run: npm install @browserbasehq/stagehand');
52
+ });
53
+ const stagehand = new Stagehand({
54
+ env: 'BROWSERBASE',
55
+ enableCaching: false,
56
+ browserbaseSessionID: browserSession.id,
57
+ });
58
+ await stagehand.init();
59
+ // Track if session is closed
60
+ let closed = false;
61
+ // Create session object
62
+ const session = {
63
+ // Live view URL (only available for browserbase with liveView enabled)
64
+ liveViewUrl: config.liveView ? browserSession.liveUrl : undefined,
65
+ async goto(url) {
66
+ if (closed) {
67
+ throw new Error('Session is closed');
68
+ }
69
+ // Validate URL
70
+ try {
71
+ new URL(url);
72
+ }
73
+ catch {
74
+ throw new Error(`Invalid URL: ${url}`);
75
+ }
76
+ await stagehand.page.goto(url);
77
+ },
78
+ async act(instruction) {
79
+ if (closed) {
80
+ throw new Error('Session is closed');
81
+ }
82
+ try {
83
+ const result = await stagehand.act(instruction);
84
+ return {
85
+ success: true,
86
+ action: result?.action ?? instruction,
87
+ };
88
+ }
89
+ catch (error) {
90
+ return {
91
+ success: false,
92
+ error: error instanceof Error ? error.message : 'Unknown error',
93
+ };
94
+ }
95
+ },
96
+ async extract(instruction, schema) {
97
+ if (closed) {
98
+ throw new Error('Session is closed');
99
+ }
100
+ const result = await stagehand.extract(instruction, { schema });
101
+ return result;
102
+ },
103
+ async observe(instruction) {
104
+ if (closed) {
105
+ throw new Error('Session is closed');
106
+ }
107
+ const result = await stagehand.observe(instruction);
108
+ return result.map((item) => ({
109
+ action: item.action ?? 'unknown',
110
+ selector: item.selector,
111
+ description: item.description ?? '',
112
+ }));
113
+ },
114
+ async screenshot(options) {
115
+ if (closed) {
116
+ throw new Error('Session is closed');
117
+ }
118
+ const screenshotOptions = {
119
+ encoding: 'base64',
120
+ };
121
+ if (options?.fullPage) {
122
+ screenshotOptions.fullPage = true;
123
+ }
124
+ if (options?.type) {
125
+ screenshotOptions.type = options.type;
126
+ }
127
+ if (options?.quality && options.type === 'jpeg') {
128
+ screenshotOptions.quality = options.quality;
129
+ }
130
+ // Handle selector option by finding element first
131
+ if (options?.selector) {
132
+ const element = await stagehand.page.$(options.selector);
133
+ if (element) {
134
+ const buffer = await element.screenshot(screenshotOptions);
135
+ return typeof buffer === 'string' ? buffer : buffer.toString('base64');
136
+ }
137
+ }
138
+ const buffer = await stagehand.page.screenshot(screenshotOptions);
139
+ return typeof buffer === 'string' ? buffer : buffer.toString('base64');
140
+ },
141
+ async close() {
142
+ if (closed) {
143
+ return; // Already closed, no-op
144
+ }
145
+ closed = true;
146
+ try {
147
+ await stagehand.close();
148
+ }
149
+ catch {
150
+ // Ignore stagehand close errors
151
+ }
152
+ try {
153
+ await browser.close();
154
+ }
155
+ catch {
156
+ // Ignore browser close errors
157
+ }
158
+ },
159
+ };
160
+ return session;
161
+ }
162
+ }
163
+ //# sourceMappingURL=browserbase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browserbase.js","sourceRoot":"","sources":["../../../lib/browse/browserbase.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH;;GAEG;AACH,MAAM,OAAO,yBAAyB;IACpC,KAAK,CAAC,IAAI,CAAC,MAAwB;QACjC,uBAAuB;QACvB,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,mBAAmB,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAA;QAC7E,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,sBAAsB,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAA;QAChF,CAAC;QAED,6BAA6B;QAC7B,wCAAwC;QACxC,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YACpE,MAAM,IAAI,KAAK,CAAC,sGAAsG,CAAC,CAAA;QACzH,CAAC,CAAC,CAAA;QACF,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC;YAClC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,mBAAmB;SACvC,CAAC,CAAA;QAEF,8BAA8B;QAC9B,MAAM,cAAc,GAAQ;YAC1B,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,sBAAsB;SAC7C,CAAA;QAED,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,cAAc,CAAC,SAAS,GAAG,IAAI,CAAA;QACjC,CAAC;QAED,MAAM,cAAc,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;QAExE,6BAA6B;QAC7B,wCAAwC;QACxC,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YAC1D,MAAM,IAAI,KAAK,CAAC,8FAA8F,CAAC,CAAA;QACjH,CAAC,CAAC,CAAA;QACF,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC;YAC9C,iBAAiB,EAAE,cAAc,CAAC,UAAU;SAC7C,CAAC,CAAA;QAEF,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAA;QAEpC,8BAA8B;QAC9B,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QACzC,CAAC;QAED,yCAAyC;QACzC,wCAAwC;QACxC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YACxE,MAAM,IAAI,KAAK,CAAC,kHAAkH,CAAC,CAAA;QACrI,CAAC,CAAC,CAAA;QACF,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC;YAC9B,GAAG,EAAE,aAAa;YAClB,aAAa,EAAE,KAAK;YACpB,oBAAoB,EAAE,cAAc,CAAC,EAAE;SACxC,CAAC,CAAA;QAEF,MAAM,SAAS,CAAC,IAAI,EAAE,CAAA;QAEtB,6BAA6B;QAC7B,IAAI,MAAM,GAAG,KAAK,CAAA;QAElB,wBAAwB;QACxB,MAAM,OAAO,GAAkB;YAC7B,uEAAuE;YACvE,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;YAEjE,KAAK,CAAC,IAAI,CAAC,GAAW;gBACpB,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;gBACtC,CAAC;gBAED,eAAe;gBACf,IAAI,CAAC;oBACH,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;gBACd,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,EAAE,CAAC,CAAA;gBACxC,CAAC;gBAED,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAChC,CAAC;YAED,KAAK,CAAC,GAAG,CAAC,WAAmB;gBAC3B,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;gBACtC,CAAC;gBAED,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;oBAC/C,OAAO;wBACL,OAAO,EAAE,IAAI;wBACb,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,WAAW;qBACtC,CAAA;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;qBAChE,CAAA;gBACH,CAAC;YACH,CAAC;YAED,KAAK,CAAC,OAAO,CAAc,WAAmB,EAAE,MAAgB;gBAC9D,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;gBACtC,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;gBAC/D,OAAO,MAAW,CAAA;YACpB,CAAC;YAED,KAAK,CAAC,OAAO,CAAC,WAAoB;gBAChC,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;gBACtC,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;gBACnD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,CAAC;oBAChC,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,SAAS;oBAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;iBACpC,CAAC,CAAC,CAAA;YACL,CAAC;YAED,KAAK,CAAC,UAAU,CAAC,OAA2B;gBAC1C,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;gBACtC,CAAC;gBAED,MAAM,iBAAiB,GAAQ;oBAC7B,QAAQ,EAAE,QAAQ;iBACnB,CAAA;gBAED,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAC;oBACtB,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAA;gBACnC,CAAC;gBAED,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;oBAClB,iBAAiB,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;gBACvC,CAAC;gBAED,IAAI,OAAO,EAAE,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBAChD,iBAAiB,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;gBAC7C,CAAC;gBAED,kDAAkD;gBAClD,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAC;oBACtB,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;oBACxD,IAAI,OAAO,EAAE,CAAC;wBACZ,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAA;wBAC1D,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;oBACxE,CAAC;gBACH,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAA;gBACjE,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;YACxE,CAAC;YAED,KAAK,CAAC,KAAK;gBACT,IAAI,MAAM,EAAE,CAAC;oBACX,OAAM,CAAC,wBAAwB;gBACjC,CAAC;gBAED,MAAM,GAAG,IAAI,CAAA;gBAEb,IAAI,CAAC;oBACH,MAAM,SAAS,CAAC,KAAK,EAAE,CAAA;gBACzB,CAAC;gBAAC,MAAM,CAAC;oBACP,gCAAgC;gBAClC,CAAC;gBAED,IAAI,CAAC;oBACH,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA;gBACvB,CAAC;gBAAC,MAAM,CAAC;oBACP,8BAA8B;gBAChC,CAAC;YACH,CAAC;SACF,CAAA;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;CACF"}