@synergenius/flow-weaver 0.2.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 (466) hide show
  1. package/LICENSE +122 -0
  2. package/README.md +315 -0
  3. package/dist/annotation-generator.d.ts +45 -0
  4. package/dist/annotation-generator.js +557 -0
  5. package/dist/api/builder.d.ts +223 -0
  6. package/dist/api/builder.js +345 -0
  7. package/dist/api/compile.d.ts +92 -0
  8. package/dist/api/compile.js +149 -0
  9. package/dist/api/extract-types.d.ts +29 -0
  10. package/dist/api/extract-types.js +57 -0
  11. package/dist/api/generate-in-place.d.ts +73 -0
  12. package/dist/api/generate-in-place.js +1353 -0
  13. package/dist/api/generate.d.ts +83 -0
  14. package/dist/api/generate.js +510 -0
  15. package/dist/api/helpers.d.ts +248 -0
  16. package/dist/api/helpers.js +285 -0
  17. package/dist/api/index.d.ts +46 -0
  18. package/dist/api/index.js +45 -0
  19. package/dist/api/inline-runtime.d.ts +27 -0
  20. package/dist/api/inline-runtime.js +551 -0
  21. package/dist/api/manipulation/connections.d.ts +79 -0
  22. package/dist/api/manipulation/connections.js +151 -0
  23. package/dist/api/manipulation/index.d.ts +34 -0
  24. package/dist/api/manipulation/index.js +41 -0
  25. package/dist/api/manipulation/node-types.d.ts +123 -0
  26. package/dist/api/manipulation/node-types.js +200 -0
  27. package/dist/api/manipulation/nodes.d.ts +144 -0
  28. package/dist/api/manipulation/nodes.js +333 -0
  29. package/dist/api/manipulation/ports.d.ts +59 -0
  30. package/dist/api/manipulation/ports.js +228 -0
  31. package/dist/api/manipulation/scopes.d.ts +52 -0
  32. package/dist/api/manipulation/scopes.js +156 -0
  33. package/dist/api/manipulation/validation.d.ts +6 -0
  34. package/dist/api/manipulation/validation.js +6 -0
  35. package/dist/api/manipulation/workflow.d.ts +81 -0
  36. package/dist/api/manipulation/workflow.js +116 -0
  37. package/dist/api/manipulation.d.ts +8 -0
  38. package/dist/api/manipulation.js +8 -0
  39. package/dist/api/parse.d.ts +48 -0
  40. package/dist/api/parse.js +110 -0
  41. package/dist/api/patterns.d.ts +112 -0
  42. package/dist/api/patterns.js +306 -0
  43. package/dist/api/query.d.ts +429 -0
  44. package/dist/api/query.js +816 -0
  45. package/dist/api/templates.d.ts +98 -0
  46. package/dist/api/templates.js +117 -0
  47. package/dist/api/transform.d.ts +31 -0
  48. package/dist/api/transform.js +40 -0
  49. package/dist/api/validate.d.ts +25 -0
  50. package/dist/api/validate.js +39 -0
  51. package/dist/api/workflow-file-operations.d.ts +29 -0
  52. package/dist/api/workflow-file-operations.js +180 -0
  53. package/dist/ast/builder.d.ts +210 -0
  54. package/dist/ast/builder.js +395 -0
  55. package/dist/ast/index.d.ts +5 -0
  56. package/dist/ast/index.js +5 -0
  57. package/dist/ast/serialization-node.d.ts +6 -0
  58. package/dist/ast/serialization-node.js +30 -0
  59. package/dist/ast/serialization.d.ts +43 -0
  60. package/dist/ast/serialization.js +134 -0
  61. package/dist/ast/types.d.ts +852 -0
  62. package/dist/ast/types.js +2 -0
  63. package/dist/ast/workflow-utils.d.ts +54 -0
  64. package/dist/ast/workflow-utils.js +114 -0
  65. package/dist/body-generator.d.ts +31 -0
  66. package/dist/body-generator.js +35 -0
  67. package/dist/built-in-nodes/delay.d.ts +11 -0
  68. package/dist/built-in-nodes/delay.js +29 -0
  69. package/dist/built-in-nodes/index.d.ts +5 -0
  70. package/dist/built-in-nodes/index.js +4 -0
  71. package/dist/built-in-nodes/invoke-workflow.d.ts +13 -0
  72. package/dist/built-in-nodes/invoke-workflow.js +25 -0
  73. package/dist/built-in-nodes/mock-types.d.ts +18 -0
  74. package/dist/built-in-nodes/mock-types.js +12 -0
  75. package/dist/built-in-nodes/wait-for-event.d.ts +13 -0
  76. package/dist/built-in-nodes/wait-for-event.js +25 -0
  77. package/dist/chevrotain-parser/connect-parser.d.ts +24 -0
  78. package/dist/chevrotain-parser/connect-parser.js +98 -0
  79. package/dist/chevrotain-parser/grammar-diagrams.d.ts +29 -0
  80. package/dist/chevrotain-parser/grammar-diagrams.js +264 -0
  81. package/dist/chevrotain-parser/index.d.ts +25 -0
  82. package/dist/chevrotain-parser/index.js +27 -0
  83. package/dist/chevrotain-parser/map-parser.d.ts +33 -0
  84. package/dist/chevrotain-parser/map-parser.js +130 -0
  85. package/dist/chevrotain-parser/node-parser.d.ts +36 -0
  86. package/dist/chevrotain-parser/node-parser.js +466 -0
  87. package/dist/chevrotain-parser/path-parser.d.ts +28 -0
  88. package/dist/chevrotain-parser/path-parser.js +118 -0
  89. package/dist/chevrotain-parser/port-parser.d.ts +36 -0
  90. package/dist/chevrotain-parser/port-parser.js +442 -0
  91. package/dist/chevrotain-parser/position-parser.d.ts +20 -0
  92. package/dist/chevrotain-parser/position-parser.js +83 -0
  93. package/dist/chevrotain-parser/scope-parser.d.ts +19 -0
  94. package/dist/chevrotain-parser/scope-parser.js +104 -0
  95. package/dist/chevrotain-parser/tokens.d.ts +78 -0
  96. package/dist/chevrotain-parser/tokens.js +384 -0
  97. package/dist/chevrotain-parser/trigger-cancel-parser.d.ts +50 -0
  98. package/dist/chevrotain-parser/trigger-cancel-parser.js +282 -0
  99. package/dist/cli/commands/changelog.d.ts +13 -0
  100. package/dist/cli/commands/changelog.js +135 -0
  101. package/dist/cli/commands/compile.d.ts +64 -0
  102. package/dist/cli/commands/compile.js +278 -0
  103. package/dist/cli/commands/create.d.ts +33 -0
  104. package/dist/cli/commands/create.js +147 -0
  105. package/dist/cli/commands/describe.d.ts +68 -0
  106. package/dist/cli/commands/describe.js +377 -0
  107. package/dist/cli/commands/dev.d.ts +32 -0
  108. package/dist/cli/commands/dev.js +384 -0
  109. package/dist/cli/commands/diagram.d.ts +13 -0
  110. package/dist/cli/commands/diagram.js +33 -0
  111. package/dist/cli/commands/diff.d.ts +11 -0
  112. package/dist/cli/commands/diff.js +59 -0
  113. package/dist/cli/commands/doctor.d.ts +57 -0
  114. package/dist/cli/commands/doctor.js +719 -0
  115. package/dist/cli/commands/export.d.ts +57 -0
  116. package/dist/cli/commands/export.js +163 -0
  117. package/dist/cli/commands/grammar.d.ts +9 -0
  118. package/dist/cli/commands/grammar.js +39 -0
  119. package/dist/cli/commands/init.d.ts +59 -0
  120. package/dist/cli/commands/init.js +435 -0
  121. package/dist/cli/commands/listen.d.ts +16 -0
  122. package/dist/cli/commands/listen.js +39 -0
  123. package/dist/cli/commands/market.d.ts +52 -0
  124. package/dist/cli/commands/market.js +436 -0
  125. package/dist/cli/commands/migrate.d.ts +13 -0
  126. package/dist/cli/commands/migrate.js +89 -0
  127. package/dist/cli/commands/openapi.d.ts +37 -0
  128. package/dist/cli/commands/openapi.js +67 -0
  129. package/dist/cli/commands/pattern.d.ts +34 -0
  130. package/dist/cli/commands/pattern.js +185 -0
  131. package/dist/cli/commands/plugin.d.ts +16 -0
  132. package/dist/cli/commands/plugin.js +176 -0
  133. package/dist/cli/commands/run.d.ts +49 -0
  134. package/dist/cli/commands/run.js +191 -0
  135. package/dist/cli/commands/serve.d.ts +45 -0
  136. package/dist/cli/commands/serve.js +81 -0
  137. package/dist/cli/commands/templates.d.ts +8 -0
  138. package/dist/cli/commands/templates.js +54 -0
  139. package/dist/cli/commands/ui.d.ts +16 -0
  140. package/dist/cli/commands/ui.js +130 -0
  141. package/dist/cli/commands/validate.d.ts +12 -0
  142. package/dist/cli/commands/validate.js +247 -0
  143. package/dist/cli/commands/watch.d.ts +9 -0
  144. package/dist/cli/commands/watch.js +70 -0
  145. package/dist/cli/flow-weaver.mjs +92924 -0
  146. package/dist/cli/index.d.ts +9 -0
  147. package/dist/cli/index.js +742 -0
  148. package/dist/cli/templates/ai/mock-provider.d.ts +7 -0
  149. package/dist/cli/templates/ai/mock-provider.js +64 -0
  150. package/dist/cli/templates/ai/types.d.ts +47 -0
  151. package/dist/cli/templates/ai/types.js +5 -0
  152. package/dist/cli/templates/approvals/index.d.ts +15 -0
  153. package/dist/cli/templates/approvals/index.js +241 -0
  154. package/dist/cli/templates/index.d.ts +102 -0
  155. package/dist/cli/templates/index.js +101 -0
  156. package/dist/cli/templates/nodes/agent-router.d.ts +3 -0
  157. package/dist/cli/templates/nodes/agent-router.js +114 -0
  158. package/dist/cli/templates/nodes/aggregator.d.ts +7 -0
  159. package/dist/cli/templates/nodes/aggregator.js +63 -0
  160. package/dist/cli/templates/nodes/conversation-memory.d.ts +3 -0
  161. package/dist/cli/templates/nodes/conversation-memory.js +85 -0
  162. package/dist/cli/templates/nodes/http.d.ts +7 -0
  163. package/dist/cli/templates/nodes/http.js +80 -0
  164. package/dist/cli/templates/nodes/human-approval.d.ts +3 -0
  165. package/dist/cli/templates/nodes/human-approval.js +110 -0
  166. package/dist/cli/templates/nodes/json-extractor.d.ts +3 -0
  167. package/dist/cli/templates/nodes/json-extractor.js +119 -0
  168. package/dist/cli/templates/nodes/llm-call.d.ts +3 -0
  169. package/dist/cli/templates/nodes/llm-call.js +106 -0
  170. package/dist/cli/templates/nodes/prompt-template.d.ts +3 -0
  171. package/dist/cli/templates/nodes/prompt-template.js +52 -0
  172. package/dist/cli/templates/nodes/rag-retriever.d.ts +3 -0
  173. package/dist/cli/templates/nodes/rag-retriever.js +128 -0
  174. package/dist/cli/templates/nodes/tool-executor.d.ts +3 -0
  175. package/dist/cli/templates/nodes/tool-executor.js +108 -0
  176. package/dist/cli/templates/nodes/transformer.d.ts +7 -0
  177. package/dist/cli/templates/nodes/transformer.js +68 -0
  178. package/dist/cli/templates/nodes/validator.d.ts +7 -0
  179. package/dist/cli/templates/nodes/validator.js +62 -0
  180. package/dist/cli/templates/providers/index.d.ts +14 -0
  181. package/dist/cli/templates/providers/index.js +239 -0
  182. package/dist/cli/templates/shared/approval-types.d.ts +9 -0
  183. package/dist/cli/templates/shared/approval-types.js +31 -0
  184. package/dist/cli/templates/shared/llm-types.d.ts +15 -0
  185. package/dist/cli/templates/shared/llm-types.js +104 -0
  186. package/dist/cli/templates/workflows/aggregator.d.ts +7 -0
  187. package/dist/cli/templates/workflows/aggregator.js +104 -0
  188. package/dist/cli/templates/workflows/ai-agent-durable.d.ts +8 -0
  189. package/dist/cli/templates/workflows/ai-agent-durable.js +338 -0
  190. package/dist/cli/templates/workflows/ai-agent.d.ts +31 -0
  191. package/dist/cli/templates/workflows/ai-agent.js +326 -0
  192. package/dist/cli/templates/workflows/ai-chat.d.ts +7 -0
  193. package/dist/cli/templates/workflows/ai-chat.js +169 -0
  194. package/dist/cli/templates/workflows/ai-pipeline-durable.d.ts +8 -0
  195. package/dist/cli/templates/workflows/ai-pipeline-durable.js +330 -0
  196. package/dist/cli/templates/workflows/ai-rag.d.ts +7 -0
  197. package/dist/cli/templates/workflows/ai-rag.js +186 -0
  198. package/dist/cli/templates/workflows/ai-react.d.ts +7 -0
  199. package/dist/cli/templates/workflows/ai-react.js +294 -0
  200. package/dist/cli/templates/workflows/conditional.d.ts +12 -0
  201. package/dist/cli/templates/workflows/conditional.js +142 -0
  202. package/dist/cli/templates/workflows/error-handler.d.ts +7 -0
  203. package/dist/cli/templates/workflows/error-handler.js +147 -0
  204. package/dist/cli/templates/workflows/foreach.d.ts +7 -0
  205. package/dist/cli/templates/workflows/foreach.js +143 -0
  206. package/dist/cli/templates/workflows/sequential.d.ts +7 -0
  207. package/dist/cli/templates/workflows/sequential.js +198 -0
  208. package/dist/cli/templates/workflows/webhook.d.ts +7 -0
  209. package/dist/cli/templates/workflows/webhook.js +161 -0
  210. package/dist/cli/utils/logger.d.ts +15 -0
  211. package/dist/cli/utils/logger.js +46 -0
  212. package/dist/constants.d.ts +100 -0
  213. package/dist/constants.js +125 -0
  214. package/dist/defaults.d.ts +3 -0
  215. package/dist/defaults.js +3 -0
  216. package/dist/deployment/config/defaults.d.ts +29 -0
  217. package/dist/deployment/config/defaults.js +98 -0
  218. package/dist/deployment/config/loader.d.ts +24 -0
  219. package/dist/deployment/config/loader.js +236 -0
  220. package/dist/deployment/config/types.d.ts +117 -0
  221. package/dist/deployment/config/types.js +5 -0
  222. package/dist/deployment/core/adapters.d.ts +90 -0
  223. package/dist/deployment/core/adapters.js +251 -0
  224. package/dist/deployment/core/executor.d.ts +62 -0
  225. package/dist/deployment/core/executor.js +197 -0
  226. package/dist/deployment/core/formatters.d.ts +57 -0
  227. package/dist/deployment/core/formatters.js +170 -0
  228. package/dist/deployment/index.d.ts +31 -0
  229. package/dist/deployment/index.js +48 -0
  230. package/dist/deployment/openapi/generator.d.ts +146 -0
  231. package/dist/deployment/openapi/generator.js +347 -0
  232. package/dist/deployment/openapi/schema-converter.d.ts +49 -0
  233. package/dist/deployment/openapi/schema-converter.js +192 -0
  234. package/dist/deployment/targets/base.d.ts +316 -0
  235. package/dist/deployment/targets/base.js +823 -0
  236. package/dist/deployment/targets/cloudflare.d.ts +23 -0
  237. package/dist/deployment/targets/cloudflare.js +1125 -0
  238. package/dist/deployment/targets/inngest.d.ts +38 -0
  239. package/dist/deployment/targets/inngest.js +926 -0
  240. package/dist/deployment/targets/lambda.d.ts +23 -0
  241. package/dist/deployment/targets/lambda.js +1289 -0
  242. package/dist/deployment/targets/vercel.d.ts +23 -0
  243. package/dist/deployment/targets/vercel.js +886 -0
  244. package/dist/deployment/types.d.ts +183 -0
  245. package/dist/deployment/types.js +8 -0
  246. package/dist/diagram/geometry.d.ts +26 -0
  247. package/dist/diagram/geometry.js +850 -0
  248. package/dist/diagram/index.d.ts +16 -0
  249. package/dist/diagram/index.js +42 -0
  250. package/dist/diagram/layout.d.ts +11 -0
  251. package/dist/diagram/layout.js +143 -0
  252. package/dist/diagram/orthogonal-router.d.ts +79 -0
  253. package/dist/diagram/orthogonal-router.js +568 -0
  254. package/dist/diagram/renderer.d.ts +3 -0
  255. package/dist/diagram/renderer.js +207 -0
  256. package/dist/diagram/theme.d.ts +20 -0
  257. package/dist/diagram/theme.js +189 -0
  258. package/dist/diagram/types.d.ts +70 -0
  259. package/dist/diagram/types.js +2 -0
  260. package/dist/diff/WorkflowDiffer.d.ts +13 -0
  261. package/dist/diff/WorkflowDiffer.js +429 -0
  262. package/dist/diff/formatDiff.d.ts +10 -0
  263. package/dist/diff/formatDiff.js +220 -0
  264. package/dist/diff/impact.d.ts +29 -0
  265. package/dist/diff/impact.js +119 -0
  266. package/dist/diff/index.d.ts +10 -0
  267. package/dist/diff/index.js +9 -0
  268. package/dist/diff/types.d.ts +138 -0
  269. package/dist/diff/types.js +35 -0
  270. package/dist/doc-metadata/extractors/annotations.d.ts +56 -0
  271. package/dist/doc-metadata/extractors/annotations.js +337 -0
  272. package/dist/doc-metadata/extractors/cli-commands.d.ts +17 -0
  273. package/dist/doc-metadata/extractors/cli-commands.js +355 -0
  274. package/dist/doc-metadata/extractors/mcp-tools.d.ts +16 -0
  275. package/dist/doc-metadata/extractors/mcp-tools.js +689 -0
  276. package/dist/doc-metadata/extractors/plugin-api.d.ts +19 -0
  277. package/dist/doc-metadata/extractors/plugin-api.js +279 -0
  278. package/dist/doc-metadata/index.d.ts +5 -0
  279. package/dist/doc-metadata/index.js +4 -0
  280. package/dist/doc-metadata/types.d.ts +120 -0
  281. package/dist/doc-metadata/types.js +5 -0
  282. package/dist/editor-completions/annotationValues.d.ts +12 -0
  283. package/dist/editor-completions/annotationValues.js +138 -0
  284. package/dist/editor-completions/contextParser.d.ts +40 -0
  285. package/dist/editor-completions/contextParser.js +410 -0
  286. package/dist/editor-completions/dataTypes.d.ts +16 -0
  287. package/dist/editor-completions/dataTypes.js +95 -0
  288. package/dist/editor-completions/goToDefinition.d.ts +27 -0
  289. package/dist/editor-completions/goToDefinition.js +112 -0
  290. package/dist/editor-completions/index.d.ts +39 -0
  291. package/dist/editor-completions/index.js +181 -0
  292. package/dist/editor-completions/jsDocAnnotations.d.ts +29 -0
  293. package/dist/editor-completions/jsDocAnnotations.js +357 -0
  294. package/dist/editor-completions/modifierCompletions.d.ts +17 -0
  295. package/dist/editor-completions/modifierCompletions.js +197 -0
  296. package/dist/editor-completions/types.d.ts +119 -0
  297. package/dist/editor-completions/types.js +8 -0
  298. package/dist/export/index.d.ts +68 -0
  299. package/dist/export/index.js +1074 -0
  300. package/dist/export/templates.d.ts +24 -0
  301. package/dist/export/templates.js +186 -0
  302. package/dist/friendly-errors.d.ts +35 -0
  303. package/dist/friendly-errors.js +375 -0
  304. package/dist/function-like.d.ts +38 -0
  305. package/dist/function-like.js +83 -0
  306. package/dist/generated-branding.d.ts +16 -0
  307. package/dist/generated-branding.js +22 -0
  308. package/dist/generator/async-detection.d.ts +27 -0
  309. package/dist/generator/async-detection.js +56 -0
  310. package/dist/generator/code-utils.d.ts +76 -0
  311. package/dist/generator/code-utils.js +410 -0
  312. package/dist/generator/control-flow.d.ts +54 -0
  313. package/dist/generator/control-flow.js +284 -0
  314. package/dist/generator/inngest.d.ts +53 -0
  315. package/dist/generator/inngest.js +1126 -0
  316. package/dist/generator/scope-function-generator.d.ts +78 -0
  317. package/dist/generator/scope-function-generator.js +360 -0
  318. package/dist/generator/unified.d.ts +42 -0
  319. package/dist/generator/unified.js +1504 -0
  320. package/dist/generator.d.ts +54 -0
  321. package/dist/generator.js +100 -0
  322. package/dist/index.d.ts +85 -0
  323. package/dist/index.js +89 -0
  324. package/dist/jsdoc-parser.d.ts +308 -0
  325. package/dist/jsdoc-parser.js +923 -0
  326. package/dist/jsdoc-port-sync/constants.d.ts +41 -0
  327. package/dist/jsdoc-port-sync/constants.js +103 -0
  328. package/dist/jsdoc-port-sync/diff.d.ts +76 -0
  329. package/dist/jsdoc-port-sync/diff.js +319 -0
  330. package/dist/jsdoc-port-sync/index.d.ts +42 -0
  331. package/dist/jsdoc-port-sync/index.js +45 -0
  332. package/dist/jsdoc-port-sync/port-parser.d.ts +68 -0
  333. package/dist/jsdoc-port-sync/port-parser.js +579 -0
  334. package/dist/jsdoc-port-sync/rename.d.ts +21 -0
  335. package/dist/jsdoc-port-sync/rename.js +256 -0
  336. package/dist/jsdoc-port-sync/signature-parser.d.ts +104 -0
  337. package/dist/jsdoc-port-sync/signature-parser.js +559 -0
  338. package/dist/jsdoc-port-sync/sync.d.ts +36 -0
  339. package/dist/jsdoc-port-sync/sync.js +644 -0
  340. package/dist/jsdoc-port-sync.d.ts +10 -0
  341. package/dist/jsdoc-port-sync.js +10 -0
  342. package/dist/marketplace/index.d.ts +11 -0
  343. package/dist/marketplace/index.js +10 -0
  344. package/dist/marketplace/manifest.d.ts +32 -0
  345. package/dist/marketplace/manifest.js +176 -0
  346. package/dist/marketplace/registry.d.ts +30 -0
  347. package/dist/marketplace/registry.js +100 -0
  348. package/dist/marketplace/types.d.ts +154 -0
  349. package/dist/marketplace/types.js +9 -0
  350. package/dist/marketplace/validator.d.ts +13 -0
  351. package/dist/marketplace/validator.js +131 -0
  352. package/dist/mcp/auto-registration.d.ts +3 -0
  353. package/dist/mcp/auto-registration.js +62 -0
  354. package/dist/mcp/editor-connection.d.ts +50 -0
  355. package/dist/mcp/editor-connection.js +125 -0
  356. package/dist/mcp/event-buffer.d.ts +62 -0
  357. package/dist/mcp/event-buffer.js +150 -0
  358. package/dist/mcp/index.d.ts +12 -0
  359. package/dist/mcp/index.js +11 -0
  360. package/dist/mcp/resources.d.ts +14 -0
  361. package/dist/mcp/resources.js +55 -0
  362. package/dist/mcp/response-utils.d.ts +63 -0
  363. package/dist/mcp/response-utils.js +89 -0
  364. package/dist/mcp/server.d.ts +4 -0
  365. package/dist/mcp/server.js +99 -0
  366. package/dist/mcp/tools-diagram.d.ts +8 -0
  367. package/dist/mcp/tools-diagram.js +53 -0
  368. package/dist/mcp/tools-editor.d.ts +5 -0
  369. package/dist/mcp/tools-editor.js +190 -0
  370. package/dist/mcp/tools-export.d.ts +9 -0
  371. package/dist/mcp/tools-export.js +180 -0
  372. package/dist/mcp/tools-marketplace.d.ts +9 -0
  373. package/dist/mcp/tools-marketplace.js +132 -0
  374. package/dist/mcp/tools-pattern.d.ts +3 -0
  375. package/dist/mcp/tools-pattern.js +783 -0
  376. package/dist/mcp/tools-query.d.ts +3 -0
  377. package/dist/mcp/tools-query.js +364 -0
  378. package/dist/mcp/tools-template.d.ts +10 -0
  379. package/dist/mcp/tools-template.js +119 -0
  380. package/dist/mcp/types.d.ts +70 -0
  381. package/dist/mcp/types.js +8 -0
  382. package/dist/mcp/workflow-executor.d.ts +47 -0
  383. package/dist/mcp/workflow-executor.js +133 -0
  384. package/dist/migration/registry.d.ts +30 -0
  385. package/dist/migration/registry.js +29 -0
  386. package/dist/node-types-generator.d.ts +49 -0
  387. package/dist/node-types-generator.js +139 -0
  388. package/dist/npm-packages.d.ts +56 -0
  389. package/dist/npm-packages.js +255 -0
  390. package/dist/parser.d.ts +204 -0
  391. package/dist/parser.js +2100 -0
  392. package/dist/plugin/PluginPanel.d.ts +12 -0
  393. package/dist/plugin/PluginPanel.js +5 -0
  394. package/dist/plugin/index.d.ts +13 -0
  395. package/dist/plugin/index.js +14 -0
  396. package/dist/plugin/types.d.ts +75 -0
  397. package/dist/plugin/types.js +8 -0
  398. package/dist/resolve-package-types.d.ts +17 -0
  399. package/dist/resolve-package-types.js +123 -0
  400. package/dist/runtime/CancellationError.d.ts +11 -0
  401. package/dist/runtime/CancellationError.js +20 -0
  402. package/dist/runtime/ExecutionContext.d.ts +146 -0
  403. package/dist/runtime/ExecutionContext.js +235 -0
  404. package/dist/runtime/builtin-functions.d.ts +8 -0
  405. package/dist/runtime/builtin-functions.js +549 -0
  406. package/dist/runtime/events.d.ts +50 -0
  407. package/dist/runtime/events.js +2 -0
  408. package/dist/runtime/function-registry.d.ts +59 -0
  409. package/dist/runtime/function-registry.js +66 -0
  410. package/dist/runtime/index.d.ts +7 -0
  411. package/dist/runtime/index.js +7 -0
  412. package/dist/runtime/parameter-resolver.d.ts +62 -0
  413. package/dist/runtime/parameter-resolver.js +113 -0
  414. package/dist/server/index.d.ts +7 -0
  415. package/dist/server/index.js +6 -0
  416. package/dist/server/types.d.ts +93 -0
  417. package/dist/server/types.js +5 -0
  418. package/dist/server/webhook-server.d.ts +50 -0
  419. package/dist/server/webhook-server.js +269 -0
  420. package/dist/server/workflow-registry.d.ts +61 -0
  421. package/dist/server/workflow-registry.js +202 -0
  422. package/dist/shared-project.d.ts +9 -0
  423. package/dist/shared-project.js +28 -0
  424. package/dist/sugar-optimizer.d.ts +40 -0
  425. package/dist/sugar-optimizer.js +387 -0
  426. package/dist/testing/assertions.d.ts +51 -0
  427. package/dist/testing/assertions.js +127 -0
  428. package/dist/testing/index.d.ts +30 -0
  429. package/dist/testing/index.js +24 -0
  430. package/dist/testing/mock-approval.d.ts +81 -0
  431. package/dist/testing/mock-approval.js +98 -0
  432. package/dist/testing/mock-llm.d.ts +124 -0
  433. package/dist/testing/mock-llm.js +119 -0
  434. package/dist/testing/recorder.d.ts +72 -0
  435. package/dist/testing/recorder.js +70 -0
  436. package/dist/testing/replayer.d.ts +56 -0
  437. package/dist/testing/replayer.js +143 -0
  438. package/dist/testing/token-tracker.d.ts +71 -0
  439. package/dist/testing/token-tracker.js +94 -0
  440. package/dist/type-checker.d.ts +42 -0
  441. package/dist/type-checker.js +190 -0
  442. package/dist/type-mappings.d.ts +29 -0
  443. package/dist/type-mappings.js +125 -0
  444. package/dist/types/branded-ports.d.ts +151 -0
  445. package/dist/types/branded-ports.js +121 -0
  446. package/dist/types/index.d.ts +5 -0
  447. package/dist/types/index.js +5 -0
  448. package/dist/types.d.ts +139 -0
  449. package/dist/types.js +15 -0
  450. package/dist/utils/error-utils.d.ts +15 -0
  451. package/dist/utils/error-utils.js +27 -0
  452. package/dist/utils/lru-cache.d.ts +15 -0
  453. package/dist/utils/lru-cache.js +40 -0
  454. package/dist/utils/port-ordering.d.ts +26 -0
  455. package/dist/utils/port-ordering.js +88 -0
  456. package/dist/utils/port-tag-utils.d.ts +23 -0
  457. package/dist/utils/port-tag-utils.js +41 -0
  458. package/dist/utils/string-distance.d.ts +14 -0
  459. package/dist/utils/string-distance.js +56 -0
  460. package/dist/validation/agent-detection.d.ts +33 -0
  461. package/dist/validation/agent-detection.js +115 -0
  462. package/dist/validation/agent-rules.d.ts +48 -0
  463. package/dist/validation/agent-rules.js +262 -0
  464. package/dist/validator.d.ts +92 -0
  465. package/dist/validator.js +970 -0
  466. package/package.json +109 -0
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Request adapters for normalizing input from different sources
3
+ *
4
+ * Each adapter transforms source-specific input into a unified WorkflowRequest.
5
+ */
6
+ import type { WorkflowRequest, ExecutionContext, ValidationResult, CliInput, HttpInput, LambdaInput, VercelInput, CloudflareInput, Environment } from '../types.js';
7
+ /**
8
+ * Request adapter interface
9
+ */
10
+ export interface RequestAdapter<TInput> {
11
+ /**
12
+ * Parse source input into a unified WorkflowRequest
13
+ */
14
+ parseRequest(input: TInput): WorkflowRequest;
15
+ /**
16
+ * Validate the parsed request
17
+ */
18
+ validate(request: WorkflowRequest): ValidationResult;
19
+ }
20
+ /**
21
+ * Base adapter with shared validation logic
22
+ */
23
+ declare abstract class BaseRequestAdapter<TInput> implements RequestAdapter<TInput> {
24
+ abstract parseRequest(input: TInput): WorkflowRequest;
25
+ validate(request: WorkflowRequest): ValidationResult;
26
+ /**
27
+ * Create a default execution context
28
+ */
29
+ protected createContext(source: WorkflowRequest['context']['source'], options?: {
30
+ requestId?: string;
31
+ includeTrace?: boolean;
32
+ timeout?: number;
33
+ environment?: Environment;
34
+ }): ExecutionContext;
35
+ /**
36
+ * Detect runtime environment
37
+ */
38
+ protected detectEnvironment(): Environment;
39
+ }
40
+ /**
41
+ * CLI request adapter
42
+ *
43
+ * Parses CLI command input into a WorkflowRequest
44
+ */
45
+ export declare class CliRequestAdapter extends BaseRequestAdapter<CliInput> {
46
+ parseRequest(input: CliInput): WorkflowRequest;
47
+ /**
48
+ * Extract workflow ID from file path (uses filename without extension)
49
+ */
50
+ private extractWorkflowId;
51
+ }
52
+ /**
53
+ * HTTP request adapter (for Fastify/Express-like servers)
54
+ *
55
+ * Parses HTTP request into a WorkflowRequest
56
+ */
57
+ export declare class HttpRequestAdapter extends BaseRequestAdapter<HttpInput> {
58
+ parseRequest(input: HttpInput): WorkflowRequest;
59
+ }
60
+ /**
61
+ * AWS Lambda request adapter
62
+ *
63
+ * Parses API Gateway event into a WorkflowRequest
64
+ */
65
+ export declare class LambdaRequestAdapter extends BaseRequestAdapter<LambdaInput> {
66
+ parseRequest(input: LambdaInput): WorkflowRequest;
67
+ }
68
+ /**
69
+ * Vercel serverless function request adapter
70
+ */
71
+ export declare class VercelRequestAdapter extends BaseRequestAdapter<VercelInput> {
72
+ parseRequest(input: VercelInput): WorkflowRequest;
73
+ }
74
+ /**
75
+ * Cloudflare Workers request adapter
76
+ */
77
+ export declare class CloudflareRequestAdapter extends BaseRequestAdapter<CloudflareInput> {
78
+ parseRequestAsync(input: CloudflareInput): Promise<WorkflowRequest>;
79
+ parseRequest(_input: CloudflareInput): WorkflowRequest;
80
+ }
81
+ /**
82
+ * Create the appropriate adapter for a given source
83
+ */
84
+ export declare function createAdapter(source: 'cli'): CliRequestAdapter;
85
+ export declare function createAdapter(source: 'http'): HttpRequestAdapter;
86
+ export declare function createAdapter(source: 'lambda'): LambdaRequestAdapter;
87
+ export declare function createAdapter(source: 'vercel'): VercelRequestAdapter;
88
+ export declare function createAdapter(source: 'cloudflare'): CloudflareRequestAdapter;
89
+ export {};
90
+ //# sourceMappingURL=adapters.d.ts.map
@@ -0,0 +1,251 @@
1
+ /**
2
+ * Request adapters for normalizing input from different sources
3
+ *
4
+ * Each adapter transforms source-specific input into a unified WorkflowRequest.
5
+ */
6
+ import * as fs from 'fs';
7
+ import * as path from 'path';
8
+ import { randomUUID } from 'crypto';
9
+ /**
10
+ * Base adapter with shared validation logic
11
+ */
12
+ class BaseRequestAdapter {
13
+ validate(request) {
14
+ const errors = [];
15
+ // Validate workflowId
16
+ if (!request.workflowId || typeof request.workflowId !== 'string') {
17
+ errors.push({
18
+ path: 'workflowId',
19
+ message: 'Workflow ID is required and must be a string',
20
+ expected: 'string',
21
+ actual: typeof request.workflowId,
22
+ });
23
+ }
24
+ // Validate params is an object
25
+ if (request.params !== null && typeof request.params !== 'object') {
26
+ errors.push({
27
+ path: 'params',
28
+ message: 'Params must be an object',
29
+ expected: 'object',
30
+ actual: typeof request.params,
31
+ });
32
+ }
33
+ // Validate context
34
+ if (!request.context) {
35
+ errors.push({
36
+ path: 'context',
37
+ message: 'Execution context is required',
38
+ });
39
+ }
40
+ else {
41
+ if (!request.context.requestId) {
42
+ errors.push({
43
+ path: 'context.requestId',
44
+ message: 'Request ID is required',
45
+ });
46
+ }
47
+ }
48
+ return {
49
+ valid: errors.length === 0,
50
+ errors: errors.length > 0 ? errors : undefined,
51
+ };
52
+ }
53
+ /**
54
+ * Create a default execution context
55
+ */
56
+ createContext(source, options = {}) {
57
+ return {
58
+ source,
59
+ environment: options.environment ?? this.detectEnvironment(),
60
+ requestId: options.requestId ?? randomUUID(),
61
+ includeTrace: options.includeTrace ?? true,
62
+ timeout: options.timeout,
63
+ };
64
+ }
65
+ /**
66
+ * Detect runtime environment
67
+ */
68
+ detectEnvironment() {
69
+ const nodeEnv = process.env.NODE_ENV?.toLowerCase();
70
+ if (nodeEnv === 'production' || nodeEnv === 'prod') {
71
+ return 'production';
72
+ }
73
+ if (nodeEnv === 'staging' || nodeEnv === 'stage') {
74
+ return 'staging';
75
+ }
76
+ return 'development';
77
+ }
78
+ }
79
+ /**
80
+ * CLI request adapter
81
+ *
82
+ * Parses CLI command input into a WorkflowRequest
83
+ */
84
+ export class CliRequestAdapter extends BaseRequestAdapter {
85
+ parseRequest(input) {
86
+ // Parse params from JSON string or file
87
+ let params = {};
88
+ if (input.params) {
89
+ try {
90
+ params = JSON.parse(input.params);
91
+ }
92
+ catch {
93
+ throw new Error(`Invalid JSON in params: ${input.params}`);
94
+ }
95
+ }
96
+ else if (input.paramsFile) {
97
+ const paramsFilePath = path.resolve(input.paramsFile);
98
+ if (!fs.existsSync(paramsFilePath)) {
99
+ throw new Error(`Params file not found: ${paramsFilePath}`);
100
+ }
101
+ try {
102
+ const content = fs.readFileSync(paramsFilePath, 'utf8');
103
+ params = JSON.parse(content);
104
+ }
105
+ catch {
106
+ throw new Error(`Failed to parse params file: ${input.paramsFile}`);
107
+ }
108
+ }
109
+ // Determine trace inclusion
110
+ const includeTrace = input.trace ?? !input.production;
111
+ return {
112
+ workflowId: input.workflowName || this.extractWorkflowId(input.filePath),
113
+ params,
114
+ context: this.createContext('cli', {
115
+ includeTrace,
116
+ timeout: input.timeout,
117
+ environment: input.production ? 'production' : 'development',
118
+ }),
119
+ };
120
+ }
121
+ /**
122
+ * Extract workflow ID from file path (uses filename without extension)
123
+ */
124
+ extractWorkflowId(filePath) {
125
+ const basename = path.basename(filePath, path.extname(filePath));
126
+ return basename;
127
+ }
128
+ }
129
+ /**
130
+ * HTTP request adapter (for Fastify/Express-like servers)
131
+ *
132
+ * Parses HTTP request into a WorkflowRequest
133
+ */
134
+ export class HttpRequestAdapter extends BaseRequestAdapter {
135
+ parseRequest(input) {
136
+ const workflowId = input.params.name || input.params.workflow || '';
137
+ const includeTrace = input.query.trace === 'true';
138
+ return {
139
+ workflowId,
140
+ params: input.body || {},
141
+ context: this.createContext('http', {
142
+ requestId: input.headers['x-request-id'],
143
+ includeTrace,
144
+ }),
145
+ };
146
+ }
147
+ }
148
+ /**
149
+ * AWS Lambda request adapter
150
+ *
151
+ * Parses API Gateway event into a WorkflowRequest
152
+ */
153
+ export class LambdaRequestAdapter extends BaseRequestAdapter {
154
+ parseRequest(input) {
155
+ // Parse body
156
+ let params = {};
157
+ if (typeof input.body === 'string') {
158
+ try {
159
+ params = JSON.parse(input.body || '{}');
160
+ }
161
+ catch {
162
+ params = {};
163
+ }
164
+ }
165
+ else if (input.body && typeof input.body === 'object') {
166
+ params = input.body;
167
+ }
168
+ // Get workflow ID from path parameters
169
+ const workflowId = input.pathParameters?.name ||
170
+ input.pathParameters?.workflow ||
171
+ input.pathParameters?.id ||
172
+ '';
173
+ const includeTrace = input.queryStringParameters?.trace === 'true';
174
+ const isProduction = input.requestContext?.stage === 'prod' || input.requestContext?.stage === 'production';
175
+ return {
176
+ workflowId,
177
+ params,
178
+ context: this.createContext('lambda', {
179
+ requestId: input.requestContext?.requestId,
180
+ includeTrace,
181
+ environment: isProduction ? 'production' : 'development',
182
+ }),
183
+ };
184
+ }
185
+ }
186
+ /**
187
+ * Vercel serverless function request adapter
188
+ */
189
+ export class VercelRequestAdapter extends BaseRequestAdapter {
190
+ parseRequest(input) {
191
+ // Workflow ID comes from the file-based routing in Vercel
192
+ // The caller should provide it, or we extract from query
193
+ const workflowId = input.query.workflow || input.query.name || '';
194
+ const includeTrace = input.query.trace === 'true';
195
+ return {
196
+ workflowId,
197
+ params: input.body || {},
198
+ context: this.createContext('vercel', {
199
+ requestId: input.headers['x-vercel-id'],
200
+ includeTrace,
201
+ }),
202
+ };
203
+ }
204
+ }
205
+ /**
206
+ * Cloudflare Workers request adapter
207
+ */
208
+ export class CloudflareRequestAdapter extends BaseRequestAdapter {
209
+ async parseRequestAsync(input) {
210
+ // Parse body
211
+ let params = {};
212
+ try {
213
+ params = await input.request.json();
214
+ }
215
+ catch {
216
+ params = {};
217
+ }
218
+ // Extract workflow ID from URL path
219
+ const url = new URL(input.request.url);
220
+ const pathParts = url.pathname.split('/').filter(Boolean);
221
+ const workflowId = pathParts[pathParts.length - 1] || '';
222
+ const includeTrace = url.searchParams.get('trace') === 'true';
223
+ return {
224
+ workflowId,
225
+ params,
226
+ context: this.createContext('cloudflare', {
227
+ requestId: input.request.headers.get('cf-ray') || undefined,
228
+ includeTrace,
229
+ }),
230
+ };
231
+ }
232
+ // Sync version throws - use parseRequestAsync for Cloudflare
233
+ parseRequest(_input) {
234
+ throw new Error('Use parseRequestAsync for Cloudflare Workers');
235
+ }
236
+ }
237
+ export function createAdapter(source) {
238
+ switch (source) {
239
+ case 'cli':
240
+ return new CliRequestAdapter();
241
+ case 'http':
242
+ return new HttpRequestAdapter();
243
+ case 'lambda':
244
+ return new LambdaRequestAdapter();
245
+ case 'vercel':
246
+ return new VercelRequestAdapter();
247
+ case 'cloudflare':
248
+ return new CloudflareRequestAdapter();
249
+ }
250
+ }
251
+ //# sourceMappingURL=adapters.js.map
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Unified workflow executor
3
+ *
4
+ * Provides a single entry point for executing workflows across all contexts.
5
+ */
6
+ import { WorkflowRegistry } from '../../server/workflow-registry.js';
7
+ import type { WorkflowRequest, WorkflowResponse, ValidationResult, ExecutionContext } from '../types.js';
8
+ /**
9
+ * Options for the unified executor
10
+ */
11
+ export interface ExecutorOptions {
12
+ /** Workflow registry for resolving workflows */
13
+ registry?: WorkflowRegistry;
14
+ /** Default timeout in milliseconds */
15
+ defaultTimeout?: number;
16
+ /** Production mode - disables trace by default */
17
+ production?: boolean;
18
+ }
19
+ /**
20
+ * Unified workflow executor
21
+ *
22
+ * Provides consistent execution behavior across CLI, HTTP, and serverless contexts.
23
+ */
24
+ export declare class UnifiedWorkflowExecutor {
25
+ private registry?;
26
+ private defaultTimeout;
27
+ private production;
28
+ constructor(options?: ExecutorOptions);
29
+ /**
30
+ * Execute a workflow with the given request
31
+ */
32
+ execute<T = unknown>(request: WorkflowRequest): Promise<WorkflowResponse<T>>;
33
+ /**
34
+ * Execute a workflow directly from a file path
35
+ */
36
+ executeFromFile<T = unknown>(filePath: string, params: Record<string, unknown>, context?: Partial<ExecutionContext>): Promise<WorkflowResponse<T>>;
37
+ /**
38
+ * Execute a file directly without registry lookup
39
+ */
40
+ private executeFileDirectly;
41
+ /**
42
+ * Resolve a workflow from the registry
43
+ */
44
+ private resolveWorkflow;
45
+ /**
46
+ * Execute workflow with timeout support
47
+ */
48
+ private executeWithTimeout;
49
+ /**
50
+ * Create a standardized error response
51
+ */
52
+ private createErrorResponse;
53
+ /**
54
+ * Validate a workflow request
55
+ */
56
+ validateRequest(request: WorkflowRequest): ValidationResult;
57
+ }
58
+ /**
59
+ * Create a new executor instance
60
+ */
61
+ export declare function createExecutor(options?: ExecutorOptions): UnifiedWorkflowExecutor;
62
+ //# sourceMappingURL=executor.d.ts.map
@@ -0,0 +1,197 @@
1
+ /**
2
+ * Unified workflow executor
3
+ *
4
+ * Provides a single entry point for executing workflows across all contexts.
5
+ */
6
+ import { randomUUID } from 'crypto';
7
+ import { executeWorkflowFromFile } from '../../mcp/workflow-executor.js';
8
+ /**
9
+ * Unified workflow executor
10
+ *
11
+ * Provides consistent execution behavior across CLI, HTTP, and serverless contexts.
12
+ */
13
+ export class UnifiedWorkflowExecutor {
14
+ registry;
15
+ defaultTimeout;
16
+ production;
17
+ constructor(options = {}) {
18
+ this.registry = options.registry;
19
+ this.defaultTimeout = options.defaultTimeout ?? 30000;
20
+ this.production = options.production ?? false;
21
+ }
22
+ /**
23
+ * Execute a workflow with the given request
24
+ */
25
+ async execute(request) {
26
+ const startTime = Date.now();
27
+ const requestId = request.context.requestId || randomUUID();
28
+ try {
29
+ // Resolve the workflow
30
+ const workflow = await this.resolveWorkflow(request.workflowId);
31
+ if (!workflow) {
32
+ return this.createErrorResponse(request.workflowId, requestId, 'WORKFLOW_NOT_FOUND', `Workflow "${request.workflowId}" not found`, startTime);
33
+ }
34
+ // Execute with timeout if specified
35
+ const timeout = request.context.timeout ?? this.defaultTimeout;
36
+ const includeTrace = request.context.includeTrace && !this.production;
37
+ const result = await this.executeWithTimeout(workflow.filePath, request.params, {
38
+ workflowName: workflow.functionName,
39
+ production: this.production || request.context.environment === 'production',
40
+ includeTrace,
41
+ }, timeout, request.abortSignal);
42
+ return {
43
+ success: true,
44
+ workflowId: request.workflowId,
45
+ result: result.result,
46
+ executionTime: Date.now() - startTime,
47
+ trace: includeTrace ? result.trace : undefined,
48
+ requestId,
49
+ };
50
+ }
51
+ catch (error) {
52
+ // Check for specific error types
53
+ if (error instanceof Error) {
54
+ if (error.name === 'AbortError' || error.message.includes('abort')) {
55
+ return this.createErrorResponse(request.workflowId, requestId, 'CANCELLED', 'Workflow execution was cancelled', startTime);
56
+ }
57
+ if (error.message.includes('timeout') || error.message.includes('timed out')) {
58
+ return this.createErrorResponse(request.workflowId, requestId, 'TIMEOUT', `Workflow execution timed out after ${request.context.timeout ?? this.defaultTimeout}ms`, startTime);
59
+ }
60
+ // Check if it's a validation error
61
+ if (error.message.includes('validation') || error.message.includes('invalid')) {
62
+ return this.createErrorResponse(request.workflowId, requestId, 'VALIDATION_ERROR', error.message, startTime, error.stack);
63
+ }
64
+ // General execution error
65
+ return this.createErrorResponse(request.workflowId, requestId, 'EXECUTION_ERROR', error.message, startTime, error.stack);
66
+ }
67
+ // Unknown error
68
+ return this.createErrorResponse(request.workflowId, requestId, 'INTERNAL_ERROR', String(error), startTime);
69
+ }
70
+ }
71
+ /**
72
+ * Execute a workflow directly from a file path
73
+ */
74
+ async executeFromFile(filePath, params, context = {}) {
75
+ const fullContext = {
76
+ source: context.source ?? 'cli',
77
+ environment: context.environment ?? 'development',
78
+ requestId: context.requestId ?? randomUUID(),
79
+ includeTrace: context.includeTrace ?? true,
80
+ timeout: context.timeout,
81
+ };
82
+ const request = {
83
+ workflowId: filePath,
84
+ params,
85
+ context: fullContext,
86
+ };
87
+ return this.executeFileDirectly(filePath, request);
88
+ }
89
+ /**
90
+ * Execute a file directly without registry lookup
91
+ */
92
+ async executeFileDirectly(filePath, request) {
93
+ const startTime = Date.now();
94
+ const requestId = request.context.requestId;
95
+ try {
96
+ const timeout = request.context.timeout ?? this.defaultTimeout;
97
+ const includeTrace = request.context.includeTrace && !this.production;
98
+ const result = await this.executeWithTimeout(filePath, request.params, {
99
+ production: this.production || request.context.environment === 'production',
100
+ includeTrace,
101
+ }, timeout, request.abortSignal);
102
+ return {
103
+ success: true,
104
+ workflowId: result.functionName,
105
+ result: result.result,
106
+ executionTime: Date.now() - startTime,
107
+ trace: includeTrace ? result.trace : undefined,
108
+ requestId,
109
+ };
110
+ }
111
+ catch (error) {
112
+ const errorMessage = error instanceof Error ? error.message : String(error);
113
+ const errorStack = error instanceof Error ? error.stack : undefined;
114
+ return this.createErrorResponse(request.workflowId, requestId, 'EXECUTION_ERROR', errorMessage, startTime, errorStack);
115
+ }
116
+ }
117
+ /**
118
+ * Resolve a workflow from the registry
119
+ */
120
+ async resolveWorkflow(workflowId) {
121
+ if (!this.registry) {
122
+ return null;
123
+ }
124
+ return this.registry.getEndpoint(workflowId);
125
+ }
126
+ /**
127
+ * Execute workflow with timeout support
128
+ */
129
+ async executeWithTimeout(filePath, params, options, timeout, abortSignal) {
130
+ // Create a promise that rejects on timeout
131
+ const timeoutPromise = new Promise((_, reject) => {
132
+ const timer = setTimeout(() => {
133
+ reject(new Error(`Workflow execution timed out after ${timeout}ms`));
134
+ }, timeout);
135
+ // Clear timeout if abort signal fires
136
+ if (abortSignal) {
137
+ abortSignal.addEventListener('abort', () => {
138
+ clearTimeout(timer);
139
+ reject(new Error('Workflow execution was cancelled'));
140
+ });
141
+ }
142
+ });
143
+ // Race between execution and timeout
144
+ return Promise.race([executeWorkflowFromFile(filePath, params, options), timeoutPromise]);
145
+ }
146
+ /**
147
+ * Create a standardized error response
148
+ */
149
+ createErrorResponse(workflowId, requestId, code, message, startTime, stack) {
150
+ const error = {
151
+ code,
152
+ message,
153
+ };
154
+ // Only include stack in non-production environments
155
+ if (stack && !this.production) {
156
+ error.stack = stack;
157
+ }
158
+ return {
159
+ success: false,
160
+ workflowId,
161
+ error,
162
+ executionTime: Date.now() - startTime,
163
+ requestId,
164
+ };
165
+ }
166
+ /**
167
+ * Validate a workflow request
168
+ */
169
+ validateRequest(request) {
170
+ const errors = [];
171
+ if (!request.workflowId) {
172
+ errors.push({
173
+ path: 'workflowId',
174
+ message: 'Workflow ID is required',
175
+ });
176
+ }
177
+ if (request.params && typeof request.params !== 'object') {
178
+ errors.push({
179
+ path: 'params',
180
+ message: 'Params must be an object',
181
+ expected: 'object',
182
+ actual: typeof request.params,
183
+ });
184
+ }
185
+ return {
186
+ valid: errors.length === 0,
187
+ errors: errors.length > 0 ? errors : undefined,
188
+ };
189
+ }
190
+ }
191
+ /**
192
+ * Create a new executor instance
193
+ */
194
+ export function createExecutor(options) {
195
+ return new UnifiedWorkflowExecutor(options);
196
+ }
197
+ //# sourceMappingURL=executor.js.map
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Response formatters for different output contexts
3
+ *
4
+ * Transforms unified WorkflowResponse into format-specific outputs.
5
+ */
6
+ import type { WorkflowResponse } from '../types.js';
7
+ /**
8
+ * Format response for CLI output
9
+ */
10
+ export interface CliOutputOptions {
11
+ /** Output as JSON */
12
+ json?: boolean;
13
+ /** Include trace summary */
14
+ includeTrace?: boolean;
15
+ /** Color output */
16
+ color?: boolean;
17
+ }
18
+ /**
19
+ * Format response for CLI consumption
20
+ */
21
+ export declare function formatCliResponse<T>(response: WorkflowResponse<T>, options?: CliOutputOptions): string;
22
+ /**
23
+ * Format response for HTTP (returns object suitable for JSON response)
24
+ */
25
+ export declare function formatHttpResponse<T>(response: WorkflowResponse<T>): {
26
+ statusCode: number;
27
+ body: Record<string, unknown>;
28
+ headers: Record<string, string>;
29
+ };
30
+ /**
31
+ * Format response for AWS Lambda (API Gateway response format)
32
+ */
33
+ export declare function formatLambdaResponse<T>(response: WorkflowResponse<T>): {
34
+ statusCode: number;
35
+ headers: Record<string, string>;
36
+ body: string;
37
+ };
38
+ /**
39
+ * Format response for Cloudflare Workers (returns Response object constructor args)
40
+ */
41
+ export declare function formatCloudflareResponse<T>(response: WorkflowResponse<T>): {
42
+ body: string;
43
+ init: ResponseInit;
44
+ };
45
+ /**
46
+ * Format error for consistent error responses
47
+ */
48
+ export declare function formatError(error: unknown, context?: {
49
+ workflowId?: string;
50
+ requestId?: string;
51
+ production?: boolean;
52
+ }): {
53
+ message: string;
54
+ code: string;
55
+ stack?: string;
56
+ };
57
+ //# sourceMappingURL=formatters.d.ts.map