@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,239 @@
1
+ /**
2
+ * LLM Provider Code Generators
3
+ * Generate provider implementation code for different LLM services
4
+ */
5
+ export function generateOpenAIProvider(opts) {
6
+ const model = opts.model || 'gpt-4o';
7
+ const apiKey = opts.apiKeyEnvVar || 'OPENAI_API_KEY';
8
+ return `
9
+ /* ============================================================
10
+ * OPENAI PROVIDER
11
+ * Set ${apiKey} environment variable before running
12
+ * ============================================================ */
13
+
14
+ const ${apiKey} = process.env.${apiKey};
15
+ if (!${apiKey}) {
16
+ throw new Error('Missing ${apiKey} environment variable');
17
+ }
18
+
19
+ const _defaultLlmProvider: LLMProvider = {
20
+ async chat(messages, options) {
21
+ const response = await fetch('https://api.openai.com/v1/chat/completions', {
22
+ method: 'POST',
23
+ headers: {
24
+ 'Authorization': \`Bearer \${${apiKey}}\`,
25
+ 'Content-Type': 'application/json',
26
+ },
27
+ body: JSON.stringify({
28
+ model: options?.model ?? '${model}',
29
+ messages: messages.map(m => ({
30
+ role: m.role,
31
+ content: m.content,
32
+ ...(m.toolCallId && { tool_call_id: m.toolCallId }),
33
+ })),
34
+ tools: options?.tools?.map(t => ({
35
+ type: 'function',
36
+ function: { name: t.name, description: t.description, parameters: t.parameters },
37
+ })),
38
+ temperature: options?.temperature,
39
+ max_tokens: options?.maxTokens,
40
+ }),
41
+ });
42
+
43
+ if (!response.ok) {
44
+ const error = await response.text();
45
+ throw new Error(\`OpenAI API error: \${response.status} \${error}\`);
46
+ }
47
+
48
+ const data = await response.json();
49
+ const choice = data.choices[0];
50
+
51
+ return {
52
+ content: choice.message.content,
53
+ toolCalls: choice.message.tool_calls?.map((tc: any) => ({
54
+ id: tc.id,
55
+ name: tc.function.name,
56
+ arguments: JSON.parse(tc.function.arguments),
57
+ })) ?? [],
58
+ finishReason: choice.finish_reason === 'tool_calls' ? 'tool_calls' : 'stop',
59
+ };
60
+ },
61
+ };
62
+
63
+ const llmProvider: LLMProvider = (globalThis as unknown as { __fw_llm_provider__?: LLMProvider }).__fw_llm_provider__ ?? _defaultLlmProvider;
64
+ `;
65
+ }
66
+ export function generateAnthropicProvider(opts) {
67
+ const model = opts.model || 'claude-3-5-sonnet-20241022';
68
+ const apiKey = opts.apiKeyEnvVar || 'ANTHROPIC_API_KEY';
69
+ return `
70
+ /* ============================================================
71
+ * ANTHROPIC PROVIDER
72
+ * Set ${apiKey} environment variable before running
73
+ * ============================================================ */
74
+
75
+ const ${apiKey} = process.env.${apiKey};
76
+ if (!${apiKey}) {
77
+ throw new Error('Missing ${apiKey} environment variable');
78
+ }
79
+
80
+ const _defaultLlmProvider: LLMProvider = {
81
+ async chat(messages, options) {
82
+ // Separate system message (Anthropic handles it differently)
83
+ const systemMessage = messages.find(m => m.role === 'system');
84
+ const chatMessages = messages.filter(m => m.role !== 'system');
85
+
86
+ const response = await fetch('https://api.anthropic.com/v1/messages', {
87
+ method: 'POST',
88
+ headers: {
89
+ 'x-api-key': ${apiKey},
90
+ 'anthropic-version': '2023-06-01',
91
+ 'Content-Type': 'application/json',
92
+ },
93
+ body: JSON.stringify({
94
+ model: options?.model ?? '${model}',
95
+ max_tokens: options?.maxTokens ?? 4096,
96
+ system: systemMessage?.content ?? options?.systemPrompt,
97
+ messages: chatMessages.map(m => {
98
+ if (m.role === 'tool') {
99
+ return {
100
+ role: 'user',
101
+ content: [{ type: 'tool_result', tool_use_id: m.toolCallId, content: m.content }],
102
+ };
103
+ }
104
+ return { role: m.role, content: m.content };
105
+ }),
106
+ tools: options?.tools?.map(t => ({
107
+ name: t.name,
108
+ description: t.description,
109
+ input_schema: { type: 'object', properties: t.parameters.properties, required: t.parameters.required },
110
+ })),
111
+ }),
112
+ });
113
+
114
+ if (!response.ok) {
115
+ const error = await response.text();
116
+ throw new Error(\`Anthropic API error: \${response.status} \${error}\`);
117
+ }
118
+
119
+ const data = await response.json();
120
+
121
+ let content: string | null = null;
122
+ const toolCalls: LLMToolCall[] = [];
123
+
124
+ for (const block of data.content) {
125
+ if (block.type === 'text') content = block.text;
126
+ if (block.type === 'tool_use') {
127
+ toolCalls.push({ id: block.id, name: block.name, arguments: block.input });
128
+ }
129
+ }
130
+
131
+ return {
132
+ content,
133
+ toolCalls,
134
+ finishReason: data.stop_reason === 'tool_use' ? 'tool_calls' : 'stop',
135
+ };
136
+ },
137
+ };
138
+
139
+ const llmProvider: LLMProvider = (globalThis as unknown as { __fw_llm_provider__?: LLMProvider }).__fw_llm_provider__ ?? _defaultLlmProvider;
140
+ `;
141
+ }
142
+ export function generateOllamaProvider(opts) {
143
+ const model = opts.model || 'llama3.2';
144
+ return `
145
+ /* ============================================================
146
+ * OLLAMA PROVIDER (Local)
147
+ * Ensure Ollama is running: ollama serve
148
+ * Pull model first: ollama pull ${model}
149
+ * ============================================================ */
150
+
151
+ const OLLAMA_BASE_URL = process.env.OLLAMA_BASE_URL ?? 'http://localhost:11434';
152
+
153
+ const _defaultLlmProvider: LLMProvider = {
154
+ async chat(messages, options) {
155
+ const response = await fetch(\`\${OLLAMA_BASE_URL}/api/chat\`, {
156
+ method: 'POST',
157
+ headers: { 'Content-Type': 'application/json' },
158
+ body: JSON.stringify({
159
+ model: options?.model ?? '${model}',
160
+ messages: messages.map(m => ({ role: m.role, content: m.content })),
161
+ stream: false,
162
+ options: {
163
+ temperature: options?.temperature,
164
+ num_predict: options?.maxTokens,
165
+ },
166
+ }),
167
+ });
168
+
169
+ if (!response.ok) {
170
+ const error = await response.text();
171
+ throw new Error(\`Ollama error: \${response.status} \${error}\`);
172
+ }
173
+
174
+ const data = await response.json();
175
+
176
+ return {
177
+ content: data.message?.content ?? null,
178
+ toolCalls: [], // Ollama tool support varies by model
179
+ finishReason: 'stop',
180
+ };
181
+ },
182
+ };
183
+
184
+ const llmProvider: LLMProvider = (globalThis as unknown as { __fw_llm_provider__?: LLMProvider }).__fw_llm_provider__ ?? _defaultLlmProvider;
185
+ `;
186
+ }
187
+ export function generateMockProvider() {
188
+ return `
189
+ /* ============================================================
190
+ * MOCK PROVIDER (For Testing)
191
+ * Replace with real provider for production use
192
+ * ============================================================ */
193
+
194
+ const _defaultLlmProvider: LLMProvider = {
195
+ async chat(messages, options) {
196
+ const last = messages[messages.length - 1];
197
+
198
+ // Simulate tool call if message contains "search"
199
+ if (options?.tools && last.content.toLowerCase().includes('search')) {
200
+ return {
201
+ content: null,
202
+ toolCalls: [{
203
+ id: 'call_' + Date.now(),
204
+ name: 'search',
205
+ arguments: { query: last.content },
206
+ }],
207
+ finishReason: 'tool_calls',
208
+ };
209
+ }
210
+
211
+ return {
212
+ content: '[Mock response] ' + last.content,
213
+ toolCalls: [],
214
+ finishReason: 'stop',
215
+ };
216
+ },
217
+ };
218
+
219
+ const llmProvider: LLMProvider = (globalThis as unknown as { __fw_llm_provider__?: LLMProvider }).__fw_llm_provider__ ?? _defaultLlmProvider;
220
+ `;
221
+ }
222
+ export function getProviderCode(provider, model) {
223
+ const opts = { model: model || '' };
224
+ switch (provider) {
225
+ case 'openai':
226
+ return generateOpenAIProvider({ ...opts, model: model || 'gpt-4o' });
227
+ case 'anthropic':
228
+ return generateAnthropicProvider({
229
+ ...opts,
230
+ model: model || 'claude-3-5-sonnet-20241022',
231
+ });
232
+ case 'ollama':
233
+ return generateOllamaProvider({ ...opts, model: model || 'llama3.2' });
234
+ case 'mock':
235
+ default:
236
+ return generateMockProvider();
237
+ }
238
+ }
239
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Shared Approval type definitions for human-approval template code generation.
3
+ *
4
+ * These strings are embedded into generated node code by the human-approval template.
5
+ * They provide the common type system for approval workflows.
6
+ */
7
+ /** Core approval types — embedded in generated human-approval nodes */
8
+ export declare const APPROVAL_TYPES = "interface ApprovalRequest {\n /** Unique identifier for this approval request */\n id: string;\n /** Human-readable prompt describing what needs approval */\n prompt: string;\n /** Additional context for the reviewer */\n context?: Record<string, unknown>;\n /** Timeout duration (e.g. \"7d\", \"1h\") */\n timeout?: string;\n}\n\ninterface ApprovalResult {\n /** Whether the request was approved */\n approved: boolean;\n /** Reviewer's response text */\n response?: string;\n /** Reviewer identifier */\n reviewer?: string;\n}\n\ninterface ApprovalProvider {\n requestApproval(request: ApprovalRequest): Promise<ApprovalResult>;\n}";
9
+ //# sourceMappingURL=approval-types.d.ts.map
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Shared Approval type definitions for human-approval template code generation.
3
+ *
4
+ * These strings are embedded into generated node code by the human-approval template.
5
+ * They provide the common type system for approval workflows.
6
+ */
7
+ /** Core approval types — embedded in generated human-approval nodes */
8
+ export const APPROVAL_TYPES = `interface ApprovalRequest {
9
+ /** Unique identifier for this approval request */
10
+ id: string;
11
+ /** Human-readable prompt describing what needs approval */
12
+ prompt: string;
13
+ /** Additional context for the reviewer */
14
+ context?: Record<string, unknown>;
15
+ /** Timeout duration (e.g. "7d", "1h") */
16
+ timeout?: string;
17
+ }
18
+
19
+ interface ApprovalResult {
20
+ /** Whether the request was approved */
21
+ approved: boolean;
22
+ /** Reviewer's response text */
23
+ response?: string;
24
+ /** Reviewer identifier */
25
+ reviewer?: string;
26
+ }
27
+
28
+ interface ApprovalProvider {
29
+ requestApproval(request: ApprovalRequest): Promise<ApprovalResult>;
30
+ }`;
31
+ //# sourceMappingURL=approval-types.js.map
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Shared LLM type definitions for AI template code generation.
3
+ *
4
+ * These strings are embedded into generated workflow code by the AI templates.
5
+ * They provide the common type system that all AI workflows need.
6
+ */
7
+ /** Core LLM types — embedded in all AI templates */
8
+ export declare const LLM_CORE_TYPES = "interface LLMMessage {\n role: 'system' | 'user' | 'assistant' | 'tool';\n content: string;\n toolCallId?: string;\n}\n\ninterface LLMResponse {\n content: string | null;\n toolCalls: LLMToolCall[];\n finishReason: 'stop' | 'tool_calls' | 'length' | 'error';\n}\n\ninterface LLMToolCall {\n id: string;\n name: string;\n arguments: Record<string, unknown>;\n}\n\ninterface LLMTool {\n name: string;\n description: string;\n parameters: {\n type: 'object';\n properties: Record<string, { type: string }>;\n required?: string[];\n };\n}\n\ninterface LLMProvider {\n chat(\n messages: LLMMessage[],\n options?: { tools?: LLMTool[]; systemPrompt?: string; model?: string; temperature?: number; maxTokens?: number }\n ): Promise<LLMResponse>;\n}";
9
+ /** Simplified LLM types — for templates that don't need tool calling */
10
+ export declare const LLM_SIMPLE_TYPES = "interface LLMMessage {\n role: 'system' | 'user' | 'assistant' | 'tool';\n content: string;\n toolCallId?: string;\n}\n\ninterface LLMToolCall {\n id: string;\n name: string;\n arguments: Record<string, unknown>;\n}\n\ninterface LLMResponse {\n content: string | null;\n toolCalls: LLMToolCall[];\n finishReason: 'stop' | 'tool_calls' | 'length' | 'error';\n}\n\ninterface LLMProvider {\n chat(messages: LLMMessage[], options?: { systemPrompt?: string; model?: string; temperature?: number; maxTokens?: number }): Promise<LLMResponse>;\n}";
11
+ /** Mock provider factory code */
12
+ export declare const LLM_MOCK_PROVIDER = "const createMockProvider = (): LLMProvider => ({\n async chat(messages) {\n const lastMessage = messages[messages.length - 1];\n return {\n content: `[Mock response to: ${lastMessage.content.slice(0, 50)}...]`,\n toolCalls: [],\n finishReason: 'stop',\n };\n },\n});\n\nconst llmProvider: LLMProvider = (globalThis as unknown as { __fw_llm_provider__?: LLMProvider }).__fw_llm_provider__ ?? createMockProvider();";
13
+ /** Mock provider with tool calling support (for ai-agent) */
14
+ export declare const LLM_MOCK_PROVIDER_WITH_TOOLS = "const createMockProvider = (): LLMProvider => ({\n async chat(messages, options) {\n const last = messages[messages.length - 1];\n if (options?.tools && last.content.toLowerCase().includes('search')) {\n return {\n content: null,\n toolCalls: [\n {\n id: 'call_' + Date.now(),\n name: 'search',\n arguments: { query: last.content },\n },\n ],\n finishReason: 'tool_calls',\n };\n }\n\n return {\n content: '[Mock answer] ' + last.content,\n toolCalls: [],\n finishReason: 'stop',\n };\n },\n});\n\nconst llmProvider: LLMProvider = (globalThis as unknown as { __fw_llm_provider__?: LLMProvider }).__fw_llm_provider__ ?? createMockProvider();";
15
+ //# sourceMappingURL=llm-types.d.ts.map
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Shared LLM type definitions for AI template code generation.
3
+ *
4
+ * These strings are embedded into generated workflow code by the AI templates.
5
+ * They provide the common type system that all AI workflows need.
6
+ */
7
+ /** Core LLM types — embedded in all AI templates */
8
+ export const LLM_CORE_TYPES = `interface LLMMessage {
9
+ role: 'system' | 'user' | 'assistant' | 'tool';
10
+ content: string;
11
+ toolCallId?: string;
12
+ }
13
+
14
+ interface LLMResponse {
15
+ content: string | null;
16
+ toolCalls: LLMToolCall[];
17
+ finishReason: 'stop' | 'tool_calls' | 'length' | 'error';
18
+ }
19
+
20
+ interface LLMToolCall {
21
+ id: string;
22
+ name: string;
23
+ arguments: Record<string, unknown>;
24
+ }
25
+
26
+ interface LLMTool {
27
+ name: string;
28
+ description: string;
29
+ parameters: {
30
+ type: 'object';
31
+ properties: Record<string, { type: string }>;
32
+ required?: string[];
33
+ };
34
+ }
35
+
36
+ interface LLMProvider {
37
+ chat(
38
+ messages: LLMMessage[],
39
+ options?: { tools?: LLMTool[]; systemPrompt?: string; model?: string; temperature?: number; maxTokens?: number }
40
+ ): Promise<LLMResponse>;
41
+ }`;
42
+ /** Simplified LLM types — for templates that don't need tool calling */
43
+ export const LLM_SIMPLE_TYPES = `interface LLMMessage {
44
+ role: 'system' | 'user' | 'assistant' | 'tool';
45
+ content: string;
46
+ toolCallId?: string;
47
+ }
48
+
49
+ interface LLMToolCall {
50
+ id: string;
51
+ name: string;
52
+ arguments: Record<string, unknown>;
53
+ }
54
+
55
+ interface LLMResponse {
56
+ content: string | null;
57
+ toolCalls: LLMToolCall[];
58
+ finishReason: 'stop' | 'tool_calls' | 'length' | 'error';
59
+ }
60
+
61
+ interface LLMProvider {
62
+ chat(messages: LLMMessage[], options?: { systemPrompt?: string; model?: string; temperature?: number; maxTokens?: number }): Promise<LLMResponse>;
63
+ }`;
64
+ /** Mock provider factory code */
65
+ export const LLM_MOCK_PROVIDER = `const createMockProvider = (): LLMProvider => ({
66
+ async chat(messages) {
67
+ const lastMessage = messages[messages.length - 1];
68
+ return {
69
+ content: \`[Mock response to: \${lastMessage.content.slice(0, 50)}...]\`,
70
+ toolCalls: [],
71
+ finishReason: 'stop',
72
+ };
73
+ },
74
+ });
75
+
76
+ const llmProvider: LLMProvider = (globalThis as unknown as { __fw_llm_provider__?: LLMProvider }).__fw_llm_provider__ ?? createMockProvider();`;
77
+ /** Mock provider with tool calling support (for ai-agent) */
78
+ export const LLM_MOCK_PROVIDER_WITH_TOOLS = `const createMockProvider = (): LLMProvider => ({
79
+ async chat(messages, options) {
80
+ const last = messages[messages.length - 1];
81
+ if (options?.tools && last.content.toLowerCase().includes('search')) {
82
+ return {
83
+ content: null,
84
+ toolCalls: [
85
+ {
86
+ id: 'call_' + Date.now(),
87
+ name: 'search',
88
+ arguments: { query: last.content },
89
+ },
90
+ ],
91
+ finishReason: 'tool_calls',
92
+ };
93
+ }
94
+
95
+ return {
96
+ content: '[Mock answer] ' + last.content,
97
+ toolCalls: [],
98
+ finishReason: 'stop',
99
+ };
100
+ },
101
+ });
102
+
103
+ const llmProvider: LLMProvider = (globalThis as unknown as { __fw_llm_provider__?: LLMProvider }).__fw_llm_provider__ ?? createMockProvider();`;
104
+ //# sourceMappingURL=llm-types.js.map
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Aggregator Template
3
+ * Combine multiple inputs into a single output
4
+ */
5
+ import type { WorkflowTemplate } from "../index.js";
6
+ export declare const aggregatorTemplate: WorkflowTemplate;
7
+ //# sourceMappingURL=aggregator.d.ts.map
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Aggregator Template
3
+ * Combine multiple inputs into a single output
4
+ */
5
+ export const aggregatorTemplate = {
6
+ id: "aggregator",
7
+ name: "Aggregator",
8
+ description: "Combine multiple data sources into one output",
9
+ category: "data-processing",
10
+ generate: (opts) => {
11
+ const { workflowName, async: isAsync } = opts;
12
+ const asyncKeyword = isAsync ? "async " : "";
13
+ const returnType = isAsync
14
+ ? "Promise<{ onSuccess: boolean; onFailure: boolean; aggregated: any }>"
15
+ : "{ onSuccess: boolean; onFailure: boolean; aggregated: any }";
16
+ return `
17
+ // Use @expression for pure functions, normal mode for branching
18
+
19
+ /**
20
+ * Fetches data from source A
21
+ *
22
+ * @flowWeaver nodeType
23
+ * @expression
24
+ * @label Fetch Source A
25
+ * @input query [order:0] - Query parameters
26
+ * @output data [order:0] - Data from source A
27
+ */
28
+ function fetchSourceA(query: any): { data: any } {
29
+ // TODO: Fetch from source A
30
+ return { data: { source: "A", items: [] } };
31
+ }
32
+
33
+ /**
34
+ * Fetches data from source B
35
+ *
36
+ * @flowWeaver nodeType
37
+ * @expression
38
+ * @label Fetch Source B
39
+ * @input query [order:0] - Query parameters
40
+ * @output data [order:0] - Data from source B
41
+ */
42
+ function fetchSourceB(query: any): { data: any } {
43
+ // TODO: Fetch from source B
44
+ return { data: { source: "B", items: [] } };
45
+ }
46
+
47
+ /**
48
+ * Combines data from multiple sources
49
+ *
50
+ * @flowWeaver nodeType
51
+ * @expression
52
+ * @label Combine Data
53
+ * @input dataA [order:0] - Data from source A
54
+ * @input dataB [order:1] - Data from source B
55
+ * @output aggregated [order:0] - Combined data
56
+ */
57
+ function combineData(dataA: any, dataB: any): { aggregated: any } {
58
+ // TODO: Implement aggregation logic
59
+ return {
60
+ aggregated: {
61
+ sources: [dataA?.source, dataB?.source],
62
+ totalItems: (dataA?.items?.length || 0) + (dataB?.items?.length || 0),
63
+ items: [...(dataA?.items || []), ...(dataB?.items || [])],
64
+ aggregatedAt: new Date().toISOString()
65
+ }
66
+ };
67
+ }
68
+
69
+ /**
70
+ * @flowWeaver workflow
71
+ * @node sourceA fetchSourceA
72
+ * @node sourceB fetchSourceB
73
+ * @node combiner combineData
74
+ * @position Start -450 0
75
+ * @position sourceA -180 -90
76
+ * @position sourceB -180 90
77
+ * @position combiner 90 0
78
+ * @position Exit 360 0
79
+ * @connect Start.execute -> sourceA.execute
80
+ * @connect Start.execute -> sourceB.execute
81
+ * @connect Start.query -> sourceA.query
82
+ * @connect Start.query -> sourceB.query
83
+ * @connect sourceA.onSuccess -> combiner.execute
84
+ * @connect sourceA.data -> combiner.dataA
85
+ * @connect sourceB.data -> combiner.dataB
86
+ * @connect combiner.aggregated -> Exit.aggregated
87
+ * @connect combiner.onSuccess -> Exit.onSuccess
88
+ * @connect combiner.onFailure -> Exit.onFailure
89
+ * @param execute [order:0] - Execute
90
+ * @param query [order:1] - Query parameters for fetching
91
+ * @returns onSuccess [order:0] - On Success
92
+ * @returns onFailure [order:1] - On Failure
93
+ * @returns aggregated [order:2] - Combined data from all sources
94
+ */
95
+ export ${asyncKeyword}function ${workflowName}(
96
+ execute: boolean,
97
+ params: { query: any }
98
+ ): ${returnType} {
99
+ throw new Error("Compile with: flow-weaver compile <file>");
100
+ }
101
+ `.trim();
102
+ },
103
+ };
104
+ //# sourceMappingURL=aggregator.js.map
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Durable AI Agent Template
3
+ * Linear agent pipeline with durability annotations for Inngest compilation.
4
+ * Each node maps to a checkpointed step when compiled with: fw export --target inngest
5
+ */
6
+ import type { WorkflowTemplate } from '../index.js';
7
+ export declare const aiAgentDurableTemplate: WorkflowTemplate;
8
+ //# sourceMappingURL=ai-agent-durable.d.ts.map