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,481 @@
1
+ /**
2
+ * PipelinePromise - Capnweb-style Lazy Execution
3
+ *
4
+ * Enables no-await workflows by capturing operations as expressions
5
+ * that can be analyzed and batched before execution.
6
+ */
7
+ // ============================================================================
8
+ // Core Implementation
9
+ // ============================================================================
10
+ const PIPELINE_PROMISE_MARKER = Symbol.for('__isPipelinePromise');
11
+ /**
12
+ * Type guard to check if a value is a PipelinePromise
13
+ */
14
+ export function isPipelinePromise(value) {
15
+ return value !== null && typeof value === 'object' && '__isPipelinePromise' in value && value.__isPipelinePromise === true;
16
+ }
17
+ /**
18
+ * Creates a PipelinePromise that captures an expression without executing it.
19
+ * The promise is both a Thenable (can be awaited) and a Proxy (property access works).
20
+ */
21
+ export function createPipelinePromise(expr, options) {
22
+ const defaultExecute = async (e) => {
23
+ throw new Error('No execute function provided - cannot resolve pipeline');
24
+ };
25
+ const execute = options.execute ?? defaultExecute;
26
+ // Create the base promise object with thenable interface
27
+ const promiseBase = {
28
+ __expr: expr,
29
+ __isPipelinePromise: true,
30
+ then(onFulfilled, onRejected) {
31
+ // When awaited, trigger execution
32
+ const resultPromise = execute(expr).then(onFulfilled, onRejected);
33
+ // Wrap the result in a PipelinePromise for chaining
34
+ // This creates a "resolved" pipeline promise
35
+ return createResolvedPipelinePromise(resultPromise, options);
36
+ },
37
+ catch(onRejected) {
38
+ return this.then(undefined, onRejected);
39
+ },
40
+ // Map support for magic map (record-replay)
41
+ map(callback) {
42
+ // Create a placeholder to record operations
43
+ const placeholder = createPlaceholderProxy([], options);
44
+ // Record phase: execute callback once with placeholder
45
+ const recordedResult = callback(placeholder, 0);
46
+ // Capture mapper instructions from the recorded result
47
+ const mapper = extractMapperInstructions(recordedResult, placeholder);
48
+ const mapExpr = {
49
+ type: 'map',
50
+ array: expr,
51
+ mapper,
52
+ };
53
+ return createPipelinePromise(mapExpr, options);
54
+ },
55
+ };
56
+ // Wrap in Proxy for property access
57
+ return new Proxy(promiseBase, {
58
+ get(target, prop, receiver) {
59
+ // Handle special properties
60
+ if (prop === '__expr' || prop === '__isPipelinePromise') {
61
+ return target[prop];
62
+ }
63
+ // Handle thenable methods
64
+ if (prop === 'then' || prop === 'catch') {
65
+ return target[prop].bind(target);
66
+ }
67
+ // Handle map
68
+ if (prop === 'map') {
69
+ return target.map.bind(target);
70
+ }
71
+ // Handle Symbol properties
72
+ if (typeof prop === 'symbol') {
73
+ return undefined;
74
+ }
75
+ // Property access returns a new PipelinePromise
76
+ const propertyExpr = {
77
+ type: 'property',
78
+ base: expr,
79
+ property: String(prop),
80
+ };
81
+ return createPipelinePromise(propertyExpr, options);
82
+ },
83
+ });
84
+ }
85
+ /**
86
+ * Creates a resolved pipeline promise (for chained .then() calls)
87
+ */
88
+ function createResolvedPipelinePromise(resultPromise, options) {
89
+ const promiseBase = {
90
+ __expr: { type: 'call', domain: '__resolved__', method: [], context: null, args: [] },
91
+ __isPipelinePromise: true,
92
+ then(onFulfilled, onRejected) {
93
+ const nextPromise = resultPromise.then(onFulfilled, onRejected);
94
+ return createResolvedPipelinePromise(nextPromise, options);
95
+ },
96
+ catch(onRejected) {
97
+ return this.then(undefined, onRejected);
98
+ },
99
+ };
100
+ return new Proxy(promiseBase, {
101
+ get(target, prop) {
102
+ if (prop === '__expr' || prop === '__isPipelinePromise' || prop === 'then' || prop === 'catch') {
103
+ const value = target[prop];
104
+ return typeof value === 'function' ? value.bind(target) : value;
105
+ }
106
+ return undefined;
107
+ },
108
+ });
109
+ }
110
+ /**
111
+ * Creates a placeholder proxy for map recording.
112
+ * The placeholder supports property access and .map() for nested maps.
113
+ */
114
+ function createPlaceholderProxy(path, options) {
115
+ const expr = { type: 'placeholder', path };
116
+ const placeholder = {
117
+ __expr: expr,
118
+ __isPipelinePromise: true,
119
+ __isPlaceholder: true,
120
+ __path: path,
121
+ // Support .map() for nested map operations
122
+ map(callback) {
123
+ // Create a nested placeholder for the inner map callback
124
+ const innerPlaceholder = createPlaceholderProxy([], options);
125
+ // Record the callback with the inner placeholder
126
+ const recordedResult = callback(innerPlaceholder, 0);
127
+ // Capture mapper instructions
128
+ const mapper = extractMapperInstructions(recordedResult, innerPlaceholder);
129
+ const mapExpr = {
130
+ type: 'map',
131
+ array: expr,
132
+ mapper,
133
+ };
134
+ return createPipelinePromise(mapExpr, options);
135
+ },
136
+ };
137
+ return new Proxy(placeholder, {
138
+ get(target, prop) {
139
+ if (prop === '__expr' || prop === '__isPipelinePromise' || prop === '__isPlaceholder' || prop === '__path') {
140
+ return target[prop];
141
+ }
142
+ // Handle map method
143
+ if (prop === 'map') {
144
+ return target.map.bind(target);
145
+ }
146
+ if (typeof prop === 'symbol') {
147
+ return undefined;
148
+ }
149
+ // Return a new placeholder with extended path for property access
150
+ return createPlaceholderProxy([...path, String(prop)], options);
151
+ },
152
+ });
153
+ }
154
+ /**
155
+ * Extracts mapper instructions from a recorded callback result
156
+ */
157
+ function extractMapperInstructions(result, placeholder) {
158
+ // For now, return a simple instruction based on the result expression
159
+ if (isPipelinePromise(result)) {
160
+ const expr = result.__expr;
161
+ if (expr.type === 'call') {
162
+ // Find input paths by looking at placeholder properties used in context
163
+ const inputPaths = findPlaceholderPaths(expr.context);
164
+ return [
165
+ {
166
+ operation: 'call',
167
+ path: [expr.domain, ...expr.method],
168
+ inputPaths,
169
+ },
170
+ ];
171
+ }
172
+ }
173
+ return [];
174
+ }
175
+ /**
176
+ * Finds placeholder paths in a value tree
177
+ */
178
+ function findPlaceholderPaths(value) {
179
+ const paths = [];
180
+ function traverse(v) {
181
+ if (v === null || v === undefined)
182
+ return;
183
+ if (typeof v === 'object') {
184
+ if (v.__isPlaceholder) {
185
+ paths.push(v.__path);
186
+ return;
187
+ }
188
+ if (isPipelinePromise(v)) {
189
+ const expr = v.__expr;
190
+ if (expr.type === 'placeholder') {
191
+ paths.push(expr.path);
192
+ }
193
+ return;
194
+ }
195
+ if (Array.isArray(v)) {
196
+ v.forEach(traverse);
197
+ }
198
+ else {
199
+ Object.values(v).forEach(traverse);
200
+ }
201
+ }
202
+ }
203
+ traverse(value);
204
+ return paths;
205
+ }
206
+ // ============================================================================
207
+ // Expression Capture Helpers
208
+ // ============================================================================
209
+ /**
210
+ * Captures an expression from a value, handling PipelinePromises and literals
211
+ */
212
+ function captureExpr(value, options) {
213
+ if (isPipelinePromise(value)) {
214
+ return value.__expr;
215
+ }
216
+ // Handle plain objects that might contain PipelinePromises
217
+ if (typeof value === 'object' && value !== null) {
218
+ return { type: 'literal', value };
219
+ }
220
+ // Handle primitive values
221
+ return { type: 'literal', value };
222
+ }
223
+ // ============================================================================
224
+ // Workflow Proxy
225
+ // ============================================================================
226
+ /**
227
+ * Creates the $ workflow proxy that captures domain method calls
228
+ */
229
+ export function createWorkflowProxy(options = {}) {
230
+ return new Proxy({}, {
231
+ get(target, domain) {
232
+ if (typeof domain === 'symbol') {
233
+ return undefined;
234
+ }
235
+ // Handle $.when(condition, { then, else }) - simple conditional
236
+ if (domain === 'when') {
237
+ return (condition, branches) => {
238
+ const conditionExpr = isPipelinePromise(condition)
239
+ ? condition.__expr
240
+ : {
241
+ type: 'literal',
242
+ value: condition,
243
+ };
244
+ // Capture branch expressions
245
+ const thenResult = branches.then();
246
+ const elseResult = branches.else?.();
247
+ const thenBranch = captureExpr(thenResult, options);
248
+ const elseBranch = elseResult !== undefined ? captureExpr(elseResult, options) : null;
249
+ const conditionalExpr = {
250
+ type: 'conditional',
251
+ condition: conditionExpr,
252
+ thenBranch,
253
+ elseBranch,
254
+ };
255
+ return createPipelinePromise(conditionalExpr, options);
256
+ };
257
+ }
258
+ // Handle $.branch(value, cases) - multi-way conditional
259
+ if (domain === 'branch') {
260
+ return (value, cases) => {
261
+ const valueExpr = isPipelinePromise(value)
262
+ ? value.__expr
263
+ : {
264
+ type: 'literal',
265
+ value,
266
+ };
267
+ const capturedCases = {};
268
+ for (const [key, fn] of Object.entries(cases)) {
269
+ if (typeof fn === 'function') {
270
+ const result = fn();
271
+ capturedCases[key] = captureExpr(result, options);
272
+ }
273
+ }
274
+ const branchExpr = {
275
+ type: 'branch',
276
+ value: valueExpr,
277
+ cases: capturedCases,
278
+ };
279
+ return createPipelinePromise(branchExpr, options);
280
+ };
281
+ }
282
+ // Handle $.match(value, patterns) - pattern matching
283
+ if (domain === 'match') {
284
+ return (value, patterns) => {
285
+ const valueExpr = isPipelinePromise(value)
286
+ ? value.__expr
287
+ : {
288
+ type: 'literal',
289
+ value,
290
+ };
291
+ const capturedPatterns = patterns.map(([predicate, resultFn]) => ({
292
+ predicateSource: predicate.toString(),
293
+ result: captureExpr(resultFn(), options),
294
+ }));
295
+ const matchExpr = {
296
+ type: 'match',
297
+ value: valueExpr,
298
+ patterns: capturedPatterns,
299
+ };
300
+ return createPipelinePromise(matchExpr, options);
301
+ };
302
+ }
303
+ // Handle $.waitFor(eventName, options) - human-in-the-loop / external events
304
+ // This causes the workflow to hibernate until the event is received
305
+ if (domain === 'waitFor') {
306
+ return (eventName, waitOptions = {}) => {
307
+ const waitForExpr = {
308
+ type: 'waitFor',
309
+ eventName,
310
+ options: waitOptions,
311
+ };
312
+ return createPipelinePromise(waitForExpr, options);
313
+ };
314
+ }
315
+ // Return a function that creates the domain context
316
+ return (context) => {
317
+ // Return a proxy for method calls on the domain
318
+ return new Proxy({}, {
319
+ get(methodTarget, method) {
320
+ if (typeof method === 'symbol') {
321
+ return undefined;
322
+ }
323
+ // Return a function that creates the pipeline expression
324
+ return (...args) => {
325
+ const expr = {
326
+ type: 'call',
327
+ domain: String(domain),
328
+ method: [String(method)],
329
+ context,
330
+ args,
331
+ };
332
+ // Don't execute immediately, just capture
333
+ // Note: onExecute is NOT called here - that's the point of deferred execution
334
+ return createPipelinePromise(expr, options);
335
+ };
336
+ },
337
+ });
338
+ };
339
+ },
340
+ });
341
+ }
342
+ // ============================================================================
343
+ // Expression Collection
344
+ // ============================================================================
345
+ /**
346
+ * Collects all PipelinePromises from a value tree
347
+ */
348
+ export function collectExpressions(value) {
349
+ const collected = [];
350
+ const seen = new WeakSet();
351
+ function traverse(v) {
352
+ if (v === null || v === undefined)
353
+ return;
354
+ if (typeof v === 'object') {
355
+ // Avoid cycles
356
+ if (seen.has(v))
357
+ return;
358
+ seen.add(v);
359
+ if (isPipelinePromise(v)) {
360
+ collected.push(v);
361
+ // Also traverse the expression for nested PipelinePromises (e.g., in context/args)
362
+ traverseExpression(v.__expr);
363
+ return;
364
+ }
365
+ if (Array.isArray(v)) {
366
+ v.forEach(traverse);
367
+ }
368
+ else {
369
+ Object.values(v).forEach(traverse);
370
+ }
371
+ }
372
+ }
373
+ function traverseExpression(expr) {
374
+ if (expr.type === 'call') {
375
+ traverse(expr.context);
376
+ expr.args.forEach(traverse);
377
+ }
378
+ else if (expr.type === 'property') {
379
+ // Don't re-add the base, but check its contents
380
+ if (isPipelinePromise(expr.base)) {
381
+ // Already collected via parent traversal
382
+ }
383
+ }
384
+ else if (expr.type === 'map') {
385
+ // Already collected the array expression
386
+ }
387
+ else if (expr.type === 'conditional') {
388
+ // Traverse branches for nested PipelinePromises
389
+ if (expr.thenBranch.type === 'literal') {
390
+ traverse(expr.thenBranch.value);
391
+ }
392
+ if (expr.elseBranch?.type === 'literal') {
393
+ traverse(expr.elseBranch.value);
394
+ }
395
+ }
396
+ else if (expr.type === 'branch') {
397
+ // Traverse all cases for nested PipelinePromises
398
+ for (const caseExpr of Object.values(expr.cases)) {
399
+ if (caseExpr.type === 'literal') {
400
+ traverse(caseExpr.value);
401
+ }
402
+ }
403
+ }
404
+ else if (expr.type === 'match') {
405
+ // Traverse all pattern results for nested PipelinePromises
406
+ for (const pattern of expr.patterns) {
407
+ if (pattern.result.type === 'literal') {
408
+ traverse(pattern.result.value);
409
+ }
410
+ }
411
+ }
412
+ }
413
+ traverse(value);
414
+ return collected;
415
+ }
416
+ // ============================================================================
417
+ // Dependency Analysis (for batching)
418
+ // ============================================================================
419
+ /**
420
+ * Analyzes expressions to determine which can run in parallel
421
+ */
422
+ export function analyzeExpressions(expressions) {
423
+ const independent = [];
424
+ const dependent = [];
425
+ // Build a set of all expression references
426
+ const exprSet = new Set(expressions.map((e) => e.__expr));
427
+ for (const expr of expressions) {
428
+ const deps = findDependencies(expr.__expr, exprSet);
429
+ if (deps.length > 0) {
430
+ dependent.push(expr);
431
+ }
432
+ else {
433
+ independent.push(expr);
434
+ }
435
+ }
436
+ return { independent, dependent };
437
+ }
438
+ /**
439
+ * Finds dependencies of an expression within a set of known expressions
440
+ */
441
+ function findDependencies(expr, knownExprs) {
442
+ const deps = [];
443
+ function traverse(v) {
444
+ if (v === null || v === undefined)
445
+ return;
446
+ if (isPipelinePromise(v)) {
447
+ const baseExpr = findBaseExpression(v.__expr);
448
+ if (knownExprs.has(baseExpr) && baseExpr !== expr) {
449
+ deps.push(baseExpr);
450
+ }
451
+ return;
452
+ }
453
+ if (typeof v === 'object') {
454
+ if (Array.isArray(v)) {
455
+ v.forEach(traverse);
456
+ }
457
+ else {
458
+ Object.values(v).forEach(traverse);
459
+ }
460
+ }
461
+ }
462
+ if (expr.type === 'call') {
463
+ traverse(expr.context);
464
+ expr.args.forEach(traverse);
465
+ }
466
+ return deps;
467
+ }
468
+ /**
469
+ * Finds the root call expression from a property chain
470
+ */
471
+ function findBaseExpression(expr) {
472
+ if (expr.type === 'property') {
473
+ return findBaseExpression(expr.base);
474
+ }
475
+ return expr;
476
+ }
477
+ // ============================================================================
478
+ // Re-exports from analyzer module (for advanced analysis)
479
+ // ============================================================================
480
+ export { analyzeExpressionsFull, findEmbeddedPromises } from './analyzer';
481
+ //# sourceMappingURL=pipeline-promise.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline-promise.js","sourceRoot":"","sources":["../../workflows/pipeline-promise.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Pipeline Types - Shared type definitions for pipeline expressions
3
+ *
4
+ * This module exists to break circular dependencies between:
5
+ * - workflows/pipeline-promise.ts
6
+ * - workflows/analyzer.ts
7
+ *
8
+ * By extracting shared types and helper functions here, both modules
9
+ * can import from this shared file without creating import cycles.
10
+ */
11
+ // ============================================================================
12
+ // Type Guards
13
+ // ============================================================================
14
+ /**
15
+ * Type guard to check if a value is a PipelinePromise
16
+ */
17
+ export function isPipelinePromise(value) {
18
+ return value !== null && typeof value === 'object' && '__isPipelinePromise' in value && value.__isPipelinePromise === true;
19
+ }
20
+ //# sourceMappingURL=pipeline-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline-types.js","sourceRoot":"","sources":["../../workflows/pipeline-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAoCH,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,qBAAqB,IAAI,KAAK,IAAK,KAAa,CAAC,mBAAmB,KAAK,IAAI,CAAA;AACrI,CAAC"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Pipeline Proxy System for ai-workflows
3
+ *
4
+ * Enables fluent domain-driven workflow syntax:
5
+ * const result = await $.Inventory(product).check()
6
+ * const priorities = await $.Roadmap(startup).prioritizeBacklog()
7
+ *
8
+ * The $ proxy intercepts property access and method calls to build
9
+ * a pipeline that executes steps through the runtime.
10
+ */
11
+ import { hashContext, hashPipeline } from './hash';
12
+ /**
13
+ * Generate a step ID from path and context hash using the centralized hashing system
14
+ */
15
+ function generateStepId(path, contextHash) {
16
+ return hashPipeline(path, contextHash);
17
+ }
18
+ /**
19
+ * Creates the pipeline proxy that handles property access and method calls.
20
+ *
21
+ * The proxy has two behaviors:
22
+ * 1. Property access (get trap): Returns a new proxy with extended path
23
+ * 2. Method call (apply trap): Executes the step via runtime and returns Promise
24
+ */
25
+ function createPipelineProxy(pipeline) {
26
+ // Create a function as the base so it can be called (apply trap works)
27
+ const fn = function () { };
28
+ return new Proxy(fn, {
29
+ // Handle property access - extend the path
30
+ get(_target, prop) {
31
+ if (typeof prop === 'symbol') {
32
+ return undefined;
33
+ }
34
+ // Create a new pipeline with extended path
35
+ return createPipelineProxy({
36
+ ...pipeline,
37
+ path: [...pipeline.path, prop],
38
+ });
39
+ },
40
+ // Handle method calls - execute the step
41
+ apply(_target, _thisArg, args) {
42
+ const stepId = generateStepId(pipeline.path, pipeline.contextHash);
43
+ return pipeline.runtime.executeStep(stepId, pipeline, args);
44
+ },
45
+ });
46
+ }
47
+ /**
48
+ * Creates the main workflow proxy ($).
49
+ *
50
+ * Usage:
51
+ * const $ = createWorkflowProxy(runtime)
52
+ * const result = await $.Inventory(product).check()
53
+ *
54
+ * The proxy intercepts property access to create domain factories.
55
+ * Each domain factory captures context and returns a pipeline proxy.
56
+ */
57
+ export function createWorkflowProxy(runtime) {
58
+ return new Proxy({}, {
59
+ get(_target, domain) {
60
+ if (typeof domain === 'symbol') {
61
+ return undefined;
62
+ }
63
+ // Return a function that captures context and creates pipeline proxy
64
+ return (context) => {
65
+ const contextHash = hashContext(context);
66
+ return createPipelineProxy({
67
+ path: [domain],
68
+ context,
69
+ contextHash,
70
+ runtime,
71
+ });
72
+ };
73
+ },
74
+ });
75
+ }
76
+ //# sourceMappingURL=proxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../workflows/proxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAuBlD;;GAEG;AACH,SAAS,cAAc,CAAC,IAAc,EAAE,WAAmB;IACzD,OAAO,YAAY,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;AACxC,CAAC;AAED;;;;;;GAMG;AACH,SAAS,mBAAmB,CAAC,QAAkB;IAC7C,uEAAuE;IACvE,MAAM,EAAE,GAAG,cAAa,CAA6B,CAAA;IAErD,OAAO,IAAI,KAAK,CAAC,EAAE,EAAE;QACnB,2CAA2C;QAC3C,GAAG,CAAC,OAAO,EAAE,IAAqB;YAChC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7B,OAAO,SAAS,CAAA;YAClB,CAAC;YAED,2CAA2C;YAC3C,OAAO,mBAAmB,CAAC;gBACzB,GAAG,QAAQ;gBACX,IAAI,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;aAC/B,CAAC,CAAA;QACJ,CAAC;QAED,yCAAyC;QACzC,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAe;YACtC,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAA;YAClE,OAAO,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;QAC7D,CAAC;KACF,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAwB;IAC1D,OAAO,IAAI,KAAK,CAAC,EAAiB,EAAE;QAClC,GAAG,CAAC,OAAO,EAAE,MAAuB;YAClC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC/B,OAAO,SAAS,CAAA;YAClB,CAAC;YAED,qEAAqE;YACrE,OAAO,CAAC,OAAgB,EAAiB,EAAE;gBACzC,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;gBAExC,OAAO,mBAAmB,CAAC;oBACzB,IAAI,EAAE,CAAC,MAAM,CAAC;oBACd,OAAO;oBACP,WAAW;oBACX,OAAO;iBACR,CAAC,CAAA;YACJ,CAAC,CAAA;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}