@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,106 @@
1
+ export const llmCallNodeTemplate = {
2
+ id: 'llm-call',
3
+ name: 'LLM Call',
4
+ description: 'Provider-agnostic LLM API call with tool support',
5
+ category: 'ai',
6
+ generate: (name) => {
7
+ const funcName = name || 'llmCall';
8
+ return `
9
+ // LLM Types
10
+ interface LLMMessage { role: 'system' | 'user' | 'assistant' | 'tool'; content: string; toolCallId?: string; }
11
+ interface LLMTool { name: string; description: string; parameters: { type: 'object'; properties: Record<string, { type: string; description?: string }>; required?: string[] }; }
12
+ interface LLMToolCall { id: string; name: string; arguments: Record<string, unknown>; }
13
+ interface LLMResponse { content: string | null; toolCalls: LLMToolCall[]; finishReason: string; }
14
+ interface LLMProvider { chat(messages: LLMMessage[], options?: { tools?: LLMTool[]; temperature?: number }): Promise<LLMResponse>; }
15
+
16
+ // Mock provider - replace with real provider (OpenAI, Anthropic, etc.)
17
+ const createMockProvider = (): LLMProvider => ({
18
+ async chat(messages, options) {
19
+ const lastMsg = messages[messages.length - 1];
20
+ if (options?.tools?.length && lastMsg.content.toLowerCase().includes('search')) {
21
+ return { content: null, toolCalls: [{ id: \`call_\${Date.now()}\`, name: 'search', arguments: { query: lastMsg.content } }], finishReason: 'tool_calls' };
22
+ }
23
+ return { content: \`[Mock: \${lastMsg.content.slice(0, 40)}...]\`, toolCalls: [], finishReason: 'stop' };
24
+ },
25
+ });
26
+
27
+ const llmProvider: LLMProvider = (globalThis as unknown as { __fw_llm_provider__?: LLMProvider }).__fw_llm_provider__ ?? createMockProvider();
28
+
29
+ /**
30
+ * Calls an LLM with messages and optional tools
31
+ *
32
+ * @flowWeaver nodeType
33
+ * @label ${funcName}
34
+ * @color purple
35
+ * @icon psychology
36
+ * @input messages [order:1] - Conversation messages
37
+ * @input tools [order:2] - Available tools/functions (optional)
38
+ * @input systemPrompt [order:3] - System prompt (optional)
39
+ * @input temperature [order:4] - Temperature 0-1 (optional)
40
+ * @input execute [order:0] - Execute
41
+ * @output content [order:2] - Text response (null if tool call)
42
+ * @output toolCalls [order:3] - Tool calls requested by LLM
43
+ * @output hasToolCalls [order:4] - Whether LLM wants to call tools
44
+ * @output finishReason [order:5] - Why generation stopped
45
+ * @output onSuccess [order:0] - On Success
46
+ * @output onFailure [order:1] - On Failure
47
+ */
48
+ async function ${funcName}(
49
+ execute: boolean,
50
+ messages: LLMMessage[],
51
+ tools?: LLMTool[],
52
+ systemPrompt?: string,
53
+ temperature?: number
54
+ ): Promise<{
55
+ onSuccess: boolean;
56
+ onFailure: boolean;
57
+ content: string | null;
58
+ toolCalls: LLMToolCall[];
59
+ hasToolCalls: boolean;
60
+ finishReason: string;
61
+ }> {
62
+ if (!execute) {
63
+ return {
64
+ onSuccess: false,
65
+ onFailure: false,
66
+ content: null,
67
+ toolCalls: [],
68
+ hasToolCalls: false,
69
+ finishReason: 'skipped'
70
+ };
71
+ }
72
+
73
+ try {
74
+ const allMessages: LLMMessage[] = systemPrompt
75
+ ? [{ role: 'system', content: systemPrompt }, ...messages]
76
+ : messages;
77
+
78
+ const response = await llmProvider.chat(allMessages, {
79
+ tools,
80
+ temperature,
81
+ });
82
+
83
+ return {
84
+ onSuccess: true,
85
+ onFailure: false,
86
+ content: response.content,
87
+ toolCalls: response.toolCalls,
88
+ hasToolCalls: response.toolCalls.length > 0,
89
+ finishReason: response.finishReason
90
+ };
91
+ } catch (error) {
92
+ console.error('LLM call failed:', error);
93
+ return {
94
+ onSuccess: false,
95
+ onFailure: true,
96
+ content: null,
97
+ toolCalls: [],
98
+ hasToolCalls: false,
99
+ finishReason: 'error'
100
+ };
101
+ }
102
+ }
103
+ `.trim();
104
+ },
105
+ };
106
+ //# sourceMappingURL=llm-call.js.map
@@ -0,0 +1,3 @@
1
+ import type { NodeTemplate } from '../index.js';
2
+ export declare const promptTemplateNodeTemplate: NodeTemplate;
3
+ //# sourceMappingURL=prompt-template.d.ts.map
@@ -0,0 +1,52 @@
1
+ import { toPascalCase } from '../index.js';
2
+ export const promptTemplateNodeTemplate = {
3
+ id: 'prompt-template',
4
+ name: 'Prompt Template',
5
+ description: 'Interpolate variables into a prompt template string',
6
+ category: 'ai',
7
+ generate: (name) => {
8
+ const funcName = name || 'promptTemplate';
9
+ const label = toPascalCase(funcName);
10
+ return `
11
+ /**
12
+ * Interpolate variables into a prompt template string.
13
+ * Uses {{variableName}} syntax for placeholders.
14
+ *
15
+ * Example:
16
+ * template: "Hello {{name}}, your order {{orderId}} is ready."
17
+ * variables: { name: "Alice", orderId: "12345" }
18
+ * → prompt: "Hello Alice, your order 12345 is ready."
19
+ *
20
+ * @flowWeaver nodeType
21
+ * @expression
22
+ * @label ${label}
23
+ * @color pink
24
+ * @icon textSnippet
25
+ * @input template [order:0] - Template string with {{variable}} placeholders
26
+ * @input variables [order:1] - Key-value pairs to interpolate
27
+ * @output prompt [order:0] - Rendered prompt string
28
+ * @output unresolvedCount [order:1] - Number of unresolved placeholders
29
+ */
30
+ function ${funcName}(
31
+ template: string,
32
+ variables: Record<string, string>
33
+ ): {
34
+ prompt: string;
35
+ unresolvedCount: number;
36
+ } {
37
+ let unresolved = 0;
38
+
39
+ const prompt = template.replace(/\\{\\{\\s*(\\w+)\\s*\\}\\}/g, (match, key) => {
40
+ if (key in variables) {
41
+ return variables[key];
42
+ }
43
+ unresolved++;
44
+ return match; // Leave unresolved placeholders as-is
45
+ });
46
+
47
+ return { prompt, unresolvedCount: unresolved };
48
+ }
49
+ `.trim();
50
+ },
51
+ };
52
+ //# sourceMappingURL=prompt-template.js.map
@@ -0,0 +1,3 @@
1
+ import type { NodeTemplate } from '../index.js';
2
+ export declare const ragRetrieverNodeTemplate: NodeTemplate;
3
+ //# sourceMappingURL=rag-retriever.d.ts.map
@@ -0,0 +1,128 @@
1
+ import { toPascalCase } from '../index.js';
2
+ export const ragRetrieverNodeTemplate = {
3
+ id: 'rag-retriever',
4
+ name: 'RAG Retriever',
5
+ description: 'Retrieve relevant documents via vector similarity search',
6
+ category: 'ai',
7
+ generate: (name) => {
8
+ const funcName = name || 'ragRetriever';
9
+ const label = toPascalCase(funcName);
10
+ return `
11
+ // ============================================================
12
+ // VECTOR STORE
13
+ // ============================================================
14
+ //
15
+ // Replace mockRetrieve() with your vector store:
16
+ //
17
+ // Pinecone: const results = await index.query({ vector: embedding, topK });
18
+ // pgvector: const results = await db.query(
19
+ // 'SELECT text, metadata, 1 - (embedding <=> $1) AS score FROM docs ORDER BY score DESC LIMIT $2',
20
+ // [embedding, topK]
21
+ // );
22
+ // Weaviate: const results = await client.graphql.get()
23
+ // .withClassName('Document')
24
+ // .withNearText({ concepts: [query] })
25
+ // .withLimit(topK)
26
+ // .do();
27
+ // ChromaDB: const results = await collection.query({ queryTexts: [query], nResults: topK });
28
+
29
+ interface RetrievedDocument {
30
+ text: string;
31
+ score: number;
32
+ metadata?: Record<string, unknown>;
33
+ }
34
+
35
+ // Mock document store — replace with real vector database
36
+ const MOCK_DOCUMENTS: Record<string, RetrievedDocument[]> = {
37
+ default: [
38
+ { text: 'Flow Weaver compiles workflows to standalone TypeScript functions.', score: 0.95, metadata: { source: 'docs/overview.md' } },
39
+ { text: 'The compiler validates connections at compile time, catching errors before runtime.', score: 0.88, metadata: { source: 'docs/compiler.md' } },
40
+ { text: 'Workflows are standard TypeScript files with JSDoc annotations.', score: 0.82, metadata: { source: 'docs/authoring.md' } },
41
+ { text: 'Deploy compiled workflows to Lambda, Vercel, Cloudflare, or Inngest.', score: 0.75, metadata: { source: 'docs/deployment.md' } },
42
+ { text: 'The visual editor provides bidirectional editing — code changes update the canvas and vice versa.', score: 0.71, metadata: { source: 'docs/editor.md' } },
43
+ ],
44
+ };
45
+
46
+ async function mockRetrieve(query: string, collection: string, topK: number): Promise<RetrievedDocument[]> {
47
+ const docs = MOCK_DOCUMENTS[collection] || MOCK_DOCUMENTS['default'] || [];
48
+
49
+ // Simple keyword overlap scoring (mock — real stores use vector similarity)
50
+ const queryWords = new Set(query.toLowerCase().split(/\\s+/));
51
+ const scored = docs.map((doc) => {
52
+ const docWords = doc.text.toLowerCase().split(/\\s+/);
53
+ const overlap = docWords.filter((w) => queryWords.has(w)).length;
54
+ const score = Math.min(0.99, overlap / Math.max(queryWords.size, 1) * 0.5 + doc.score * 0.5);
55
+ return { ...doc, score };
56
+ });
57
+
58
+ return scored
59
+ .sort((a, b) => b.score - a.score)
60
+ .slice(0, topK);
61
+ }
62
+
63
+ /**
64
+ * Retrieve relevant documents via vector similarity search.
65
+ * Returns scored documents and a concatenated context string ready for LLM input.
66
+ *
67
+ * @flowWeaver nodeType
68
+ * @label ${label}
69
+ * @color green
70
+ * @icon search
71
+ * @input execute [order:0] - Execute
72
+ * @input query [order:1] - Search query text
73
+ * @input collection [order:2] - Collection/index name
74
+ * @input topK [order:3] - Number of results (optional, default 5)
75
+ * @output onSuccess [order:0] - On Success
76
+ * @output onFailure [order:1] - On Failure
77
+ * @output documents [order:2] - Retrieved documents with relevance scores
78
+ * @output context [order:3] - Concatenated document text for LLM context
79
+ */
80
+ async function ${funcName}(
81
+ execute: boolean,
82
+ query: string,
83
+ collection: string,
84
+ topK?: number
85
+ ): Promise<{
86
+ onSuccess: boolean;
87
+ onFailure: boolean;
88
+ documents: RetrievedDocument[];
89
+ context: string;
90
+ }> {
91
+ if (!execute) {
92
+ return {
93
+ onSuccess: false,
94
+ onFailure: false,
95
+ documents: [],
96
+ context: '',
97
+ };
98
+ }
99
+
100
+ try {
101
+ const limit = topK ?? 5;
102
+ const documents = await mockRetrieve(query, collection, limit);
103
+
104
+ // Concatenate document texts for easy LLM context injection
105
+ const context = documents
106
+ .map((doc, i) => \`[Document \${i + 1} (score: \${doc.score.toFixed(2)})]\n\${doc.text}\`)
107
+ .join('\\n\\n');
108
+
109
+ return {
110
+ onSuccess: true,
111
+ onFailure: false,
112
+ documents,
113
+ context,
114
+ };
115
+ } catch (error) {
116
+ console.error('RAG retrieval failed:', error);
117
+ return {
118
+ onSuccess: false,
119
+ onFailure: true,
120
+ documents: [],
121
+ context: '',
122
+ };
123
+ }
124
+ }
125
+ `.trim();
126
+ },
127
+ };
128
+ //# sourceMappingURL=rag-retriever.js.map
@@ -0,0 +1,3 @@
1
+ import type { NodeTemplate } from '../index.js';
2
+ export declare const toolExecutorNodeTemplate: NodeTemplate;
3
+ //# sourceMappingURL=tool-executor.d.ts.map
@@ -0,0 +1,108 @@
1
+ export const toolExecutorNodeTemplate = {
2
+ id: 'tool-executor',
3
+ name: 'Tool Executor',
4
+ description: 'Executes tool calls from LLM response',
5
+ category: 'ai',
6
+ generate: (name) => {
7
+ const funcName = name || 'executeTool';
8
+ return `
9
+ // LLM Types
10
+ interface LLMToolCall { id: string; name: string; arguments: Record<string, unknown>; }
11
+ interface LLMMessage { role: 'system' | 'user' | 'assistant' | 'tool'; content: string; toolCallId?: string; }
12
+
13
+ // Register your tools here
14
+ type ToolFunction = (args: Record<string, unknown>) => Promise<unknown>;
15
+ const toolRegistry: Record<string, ToolFunction> = {
16
+ // Example tools:
17
+ // 'search': async (args) => {
18
+ // const query = String(args.query || '');
19
+ // return await searchDatabase(query);
20
+ // },
21
+ // 'get_weather': async (args) => {
22
+ // const city = String(args.city || '');
23
+ // const response = await fetch(\`https://api.weather.example/v1/\${encodeURIComponent(city)}\`);
24
+ // return response.json();
25
+ // },
26
+ };
27
+
28
+ /**
29
+ * Executes a single tool call and returns result as message
30
+ *
31
+ * @flowWeaver nodeType
32
+ * @label ${funcName}
33
+ * @color cyan
34
+ * @icon build
35
+ * @input toolCall [order:1] - Tool call to execute
36
+ * @input execute [order:0] - Execute
37
+ * @output result [order:2] - Tool execution result
38
+ * @output resultMessage [order:3] - Result formatted as LLM message
39
+ * @output toolName [order:4] - Name of executed tool
40
+ * @output onSuccess [order:0] - On Success
41
+ * @output onFailure [order:1] - On Failure
42
+ */
43
+ async function ${funcName}(
44
+ execute: boolean,
45
+ toolCall: LLMToolCall
46
+ ): Promise<{
47
+ onSuccess: boolean;
48
+ onFailure: boolean;
49
+ result: unknown;
50
+ resultMessage: LLMMessage;
51
+ toolName: string;
52
+ }> {
53
+ if (!execute) {
54
+ return {
55
+ onSuccess: false,
56
+ onFailure: false,
57
+ result: null,
58
+ resultMessage: { role: 'tool', content: '', toolCallId: '' },
59
+ toolName: ''
60
+ };
61
+ }
62
+
63
+ const tool = toolRegistry[toolCall.name];
64
+ if (!tool) {
65
+ return {
66
+ onSuccess: false,
67
+ onFailure: true,
68
+ result: null,
69
+ resultMessage: {
70
+ role: 'tool',
71
+ content: JSON.stringify({ error: \`Unknown tool: \${toolCall.name}\` }),
72
+ toolCallId: toolCall.id
73
+ },
74
+ toolName: toolCall.name
75
+ };
76
+ }
77
+
78
+ try {
79
+ const result = await tool(toolCall.arguments);
80
+ return {
81
+ onSuccess: true,
82
+ onFailure: false,
83
+ result,
84
+ resultMessage: {
85
+ role: 'tool',
86
+ content: JSON.stringify(result),
87
+ toolCallId: toolCall.id
88
+ },
89
+ toolName: toolCall.name
90
+ };
91
+ } catch (error) {
92
+ return {
93
+ onSuccess: false,
94
+ onFailure: true,
95
+ result: null,
96
+ resultMessage: {
97
+ role: 'tool',
98
+ content: JSON.stringify({ error: String(error) }),
99
+ toolCallId: toolCall.id
100
+ },
101
+ toolName: toolCall.name
102
+ };
103
+ }
104
+ }
105
+ `.trim();
106
+ },
107
+ };
108
+ //# sourceMappingURL=tool-executor.js.map
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Transformer Node Template
3
+ * Data transformation and mapping
4
+ */
5
+ import type { NodeTemplate } from "../index.js";
6
+ export declare const transformerNodeTemplate: NodeTemplate;
7
+ //# sourceMappingURL=transformer.d.ts.map
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Transformer Node Template
3
+ * Data transformation and mapping
4
+ */
5
+ import { toPascalCase } from "../index.js";
6
+ export const transformerNodeTemplate = {
7
+ id: "transformer",
8
+ name: "Transformer",
9
+ description: "Data transformation and mapping",
10
+ category: "data",
11
+ generate: (name) => {
12
+ const pascalName = toPascalCase(name);
13
+ return `
14
+ /**
15
+ * Transforms input data into a new shape
16
+ *
17
+ * @flowWeaver nodeType
18
+ * @label ${pascalName}
19
+ * @color pink
20
+ * @icon changeCircle
21
+ * @input data [order:1] - Input data to transform
22
+ * @input execute [order:0] - Execute
23
+ * @output result [order:2] - Transformed data
24
+ * @output onSuccess [order:0] - On Success
25
+ * @output onFailure [order:1] - On Failure
26
+ */
27
+ function ${name}(
28
+ execute: boolean,
29
+ data: any
30
+ ): { onSuccess: boolean; onFailure: boolean; result: any } {
31
+ if (!execute) {
32
+ return { onSuccess: false, onFailure: false, result: null };
33
+ }
34
+
35
+ try {
36
+ // TODO: Implement your transformation logic
37
+ // Examples:
38
+
39
+ // Map array items
40
+ // const result = data.map(item => ({ ...item, processed: true }));
41
+
42
+ // Reshape object
43
+ // const result = {
44
+ // id: data.userId,
45
+ // fullName: \`\${data.firstName} \${data.lastName}\`,
46
+ // email: data.contactEmail
47
+ // };
48
+
49
+ // Filter and transform
50
+ // const result = data
51
+ // .filter(item => item.active)
52
+ // .map(item => item.name);
53
+
54
+ const result = {
55
+ ...data,
56
+ transformedAt: new Date().toISOString()
57
+ };
58
+
59
+ return { onSuccess: true, onFailure: false, result };
60
+ } catch (err) {
61
+ console.error("[${pascalName}] Transform error:", err);
62
+ return { onSuccess: false, onFailure: true, result: null };
63
+ }
64
+ }
65
+ `.trim();
66
+ },
67
+ };
68
+ //# sourceMappingURL=transformer.js.map
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Validator Node Template
3
+ * Input validation with success/failure routing
4
+ */
5
+ import type { NodeTemplate } from "../index.js";
6
+ export declare const validatorNodeTemplate: NodeTemplate;
7
+ //# sourceMappingURL=validator.d.ts.map
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Validator Node Template
3
+ * Input validation with success/failure routing
4
+ */
5
+ import { toPascalCase } from "../index.js";
6
+ export const validatorNodeTemplate = {
7
+ id: "validator",
8
+ name: "Validator",
9
+ description: "Input validation with success/failure routing",
10
+ category: "validation",
11
+ generate: (name) => {
12
+ const pascalName = toPascalCase(name);
13
+ return `
14
+ /**
15
+ * Validates input data against rules
16
+ *
17
+ * @flowWeaver nodeType
18
+ * @label ${pascalName}
19
+ * @color green
20
+ * @icon rule
21
+ * @input data [order:1] - Data to validate
22
+ * @input execute [order:0] - Execute
23
+ * @output isValid [order:2] - Whether data is valid
24
+ * @output validData [order:3] - Validated data (if valid)
25
+ * @output errors [order:4] - Validation errors (if invalid)
26
+ * @output onSuccess [order:0] - Validation passed
27
+ * @output onFailure [order:1] - Validation failed
28
+ */
29
+ function ${name}(
30
+ execute: boolean,
31
+ data: any
32
+ ): { onSuccess: boolean; onFailure: boolean; isValid: boolean; validData: any; errors: string[] } {
33
+ if (!execute) {
34
+ return { onSuccess: false, onFailure: false, isValid: false, validData: null, errors: [] };
35
+ }
36
+
37
+ const errors: string[] = [];
38
+
39
+ // TODO: Add your validation rules
40
+ // Example validations:
41
+ if (data === null || data === undefined) {
42
+ errors.push("Data is required");
43
+ }
44
+
45
+ // if (typeof data.email === 'string' && !data.email.includes('@')) {
46
+ // errors.push("Invalid email format");
47
+ // }
48
+
49
+ // if (typeof data.age === 'number' && (data.age < 0 || data.age > 150)) {
50
+ // errors.push("Age must be between 0 and 150");
51
+ // }
52
+
53
+ if (errors.length > 0) {
54
+ return { onSuccess: false, onFailure: true, isValid: false, validData: null, errors };
55
+ }
56
+
57
+ return { onSuccess: true, onFailure: false, isValid: true, validData: data, errors: [] };
58
+ }
59
+ `.trim();
60
+ },
61
+ };
62
+ //# sourceMappingURL=validator.js.map
@@ -0,0 +1,14 @@
1
+ /**
2
+ * LLM Provider Code Generators
3
+ * Generate provider implementation code for different LLM services
4
+ */
5
+ export interface ProviderCodeOptions {
6
+ model: string;
7
+ apiKeyEnvVar?: string;
8
+ }
9
+ export declare function generateOpenAIProvider(opts: ProviderCodeOptions): string;
10
+ export declare function generateAnthropicProvider(opts: ProviderCodeOptions): string;
11
+ export declare function generateOllamaProvider(opts: ProviderCodeOptions): string;
12
+ export declare function generateMockProvider(): string;
13
+ export declare function getProviderCode(provider: string, model?: string): string;
14
+ //# sourceMappingURL=index.d.ts.map