@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,83 @@
1
+ /**
2
+ * FunctionLike interface
3
+ *
4
+ * Abstracts over FunctionDeclaration and arrow/function-expression variable
5
+ * declarations so the JSDoc parser and annotation parser can handle both
6
+ * syntactic forms uniformly.
7
+ */
8
+ import { Node, SyntaxKind, VariableDeclarationKind, } from 'ts-morph';
9
+ function wrapFunctionDeclaration(fn) {
10
+ return {
11
+ getJsDocs: () => fn.getJsDocs(),
12
+ getName: () => fn.getName(),
13
+ isAsync: () => fn.isAsync(),
14
+ getParameters: () => fn.getParameters(),
15
+ getReturnType: () => fn.getReturnType(),
16
+ getStartLineNumber: (inc) => fn.getStartLineNumber(inc),
17
+ getText: (inc) => fn.getText(inc),
18
+ getSourceFile: () => fn.getSourceFile(),
19
+ getTypeResolutionNode: () => fn,
20
+ };
21
+ }
22
+ /**
23
+ * Scan a source file and return every function-like declaration that could
24
+ * carry @flowWeaver annotations:
25
+ *
26
+ * 1. Classic `function foo() {}` — FunctionDeclaration (existing)
27
+ * 2. `const foo = () => {}` — ArrowFunction assigned to variable
28
+ * 3. `const foo = function() {}` — FunctionExpression assigned to variable
29
+ *
30
+ * The returned list preserves source order.
31
+ */
32
+ export function extractFunctionLikes(sourceFile) {
33
+ const results = [];
34
+ // 1. Regular function declarations — wrapped to satisfy getTypeResolutionNode()
35
+ for (const fn of sourceFile.getFunctions()) {
36
+ results.push(wrapFunctionDeclaration(fn));
37
+ }
38
+ // 2. Variable declarations with arrow/function expression initializers
39
+ for (const varDecl of sourceFile.getVariableDeclarations()) {
40
+ const initializer = varDecl.getInitializer();
41
+ if (!initializer)
42
+ continue;
43
+ const kind = initializer.getKind();
44
+ if (kind !== SyntaxKind.ArrowFunction && kind !== SyntaxKind.FunctionExpression)
45
+ continue;
46
+ const fnExpr = initializer;
47
+ // Walk up: VariableDeclaration -> VariableDeclarationList -> VariableStatement
48
+ const varDeclList = varDecl.getParent();
49
+ if (!Node.isVariableDeclarationList(varDeclList))
50
+ continue;
51
+ const varStatement = varDeclList.getParent();
52
+ if (!Node.isVariableStatement(varStatement))
53
+ continue;
54
+ // Determine declaration kind (const/let/var)
55
+ const declKindEnum = varDeclList.getDeclarationKind();
56
+ const declKind = declKindEnum === VariableDeclarationKind.Let
57
+ ? 'let'
58
+ : declKindEnum === VariableDeclarationKind.Var
59
+ ? 'var'
60
+ : 'const';
61
+ const adapter = {
62
+ getName: () => varDecl.getName(),
63
+ getJsDocs: () => varStatement.getJsDocs(),
64
+ isAsync: () => fnExpr.isAsync(),
65
+ getParameters: () => fnExpr.getParameters(),
66
+ getReturnType: () => fnExpr.getReturnType(),
67
+ getStartLineNumber: () => varStatement.getStartLineNumber(false),
68
+ getText: () => {
69
+ // Return the variable statement text without JSDoc (consistent with FunctionDeclaration.getText()).
70
+ // The parser code manually prepends JSDoc via getJsDocs().
71
+ return varStatement.getText(false);
72
+ },
73
+ getSourceFile: () => sourceFile,
74
+ getDeclarationKind: () => declKind,
75
+ getTypeResolutionNode: () => varDecl,
76
+ };
77
+ results.push(adapter);
78
+ }
79
+ // Sort by source position to preserve declaration order
80
+ results.sort((a, b) => a.getStartLineNumber(false) - b.getStartLineNumber(false));
81
+ return results;
82
+ }
83
+ //# sourceMappingURL=function-like.js.map
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Configurable branding for generated output.
3
+ *
4
+ * The library ships with generic defaults. The root project (app/CLI)
5
+ * calls {@link configureGeneratedBranding} at startup to inject
6
+ * organisation-specific values (URLs, attribution text, etc.).
7
+ */
8
+ export interface GeneratedBranding {
9
+ /** Single-line comment placed at the top of generated code files */
10
+ header: (command?: string) => string;
11
+ /** Markdown attribution line for generated documentation */
12
+ markdown: string;
13
+ }
14
+ export declare function configureGeneratedBranding(branding: GeneratedBranding): void;
15
+ export declare function getGeneratedBranding(): GeneratedBranding;
16
+ //# sourceMappingURL=generated-branding.d.ts.map
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Configurable branding for generated output.
3
+ *
4
+ * The library ships with generic defaults. The root project (app/CLI)
5
+ * calls {@link configureGeneratedBranding} at startup to inject
6
+ * organisation-specific values (URLs, attribution text, etc.).
7
+ */
8
+ const WEBSITE_URL = 'https://flowweaver.ai';
9
+ const DEFAULT = {
10
+ header: (cmd) => cmd
11
+ ? `// Generated by Flow Weaver (${WEBSITE_URL}) — ${cmd}`
12
+ : `// Generated by Flow Weaver (${WEBSITE_URL})`,
13
+ markdown: `*Generated by [Flow Weaver](${WEBSITE_URL})*`,
14
+ };
15
+ let _branding = DEFAULT;
16
+ export function configureGeneratedBranding(branding) {
17
+ _branding = branding;
18
+ }
19
+ export function getGeneratedBranding() {
20
+ return _branding;
21
+ }
22
+ //# sourceMappingURL=generated-branding.js.map
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Async Detection Logic
3
+ * Determines whether a workflow should be generated as async based on node composition
4
+ */
5
+ import { TWorkflowAST, TNodeTypeAST } from "../ast/types.js";
6
+ /**
7
+ * Determines if a workflow should be async based on its node composition
8
+ * Rule: Workflow is async if ANY node in its execution graph is async
9
+ *
10
+ * @param workflow - The workflow AST
11
+ * @param nodeTypes - Available node types
12
+ * @returns true if any node in the workflow is async, false otherwise
13
+ */
14
+ export declare function shouldWorkflowBeAsync(workflow: TWorkflowAST, nodeTypes: TNodeTypeAST[]): boolean;
15
+ /**
16
+ * Validates workflow async mode and returns final decision with optional warning
17
+ * Respects user's intent but ensures correctness
18
+ *
19
+ * @param workflow - The workflow AST
20
+ * @param nodeTypes - Available node types
21
+ * @returns Object with shouldBeAsync decision and optional warning
22
+ */
23
+ export declare function validateWorkflowAsync(workflow: TWorkflowAST, nodeTypes: TNodeTypeAST[]): {
24
+ shouldBeAsync: boolean;
25
+ warning?: string;
26
+ };
27
+ //# sourceMappingURL=async-detection.d.ts.map
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Async Detection Logic
3
+ * Determines whether a workflow should be generated as async based on node composition
4
+ */
5
+ /**
6
+ * Determines if a workflow should be async based on its node composition
7
+ * Rule: Workflow is async if ANY node in its execution graph is async
8
+ *
9
+ * @param workflow - The workflow AST
10
+ * @param nodeTypes - Available node types
11
+ * @returns true if any node in the workflow is async, false otherwise
12
+ */
13
+ export function shouldWorkflowBeAsync(workflow, nodeTypes) {
14
+ // Build map of node type name -> isAsync
15
+ // Map both nt.name and nt.functionName to support npm nodes where instance.nodeType uses nt.name
16
+ const nodeTypeMap = new Map();
17
+ for (const nt of nodeTypes) {
18
+ nodeTypeMap.set(nt.name, nt.isAsync);
19
+ if (nt.functionName && nt.functionName !== nt.name) {
20
+ nodeTypeMap.set(nt.functionName, nt.isAsync);
21
+ }
22
+ }
23
+ // Check if ANY instance uses an async node type
24
+ for (const instance of workflow.instances) {
25
+ const isAsync = nodeTypeMap.get(instance.nodeType);
26
+ if (isAsync === true) {
27
+ return true; // Found an async node
28
+ }
29
+ }
30
+ return false; // All nodes are sync (or no nodes)
31
+ }
32
+ /**
33
+ * Validates workflow async mode and returns final decision with optional warning
34
+ * Respects user's intent but ensures correctness
35
+ *
36
+ * @param workflow - The workflow AST
37
+ * @param nodeTypes - Available node types
38
+ * @returns Object with shouldBeAsync decision and optional warning
39
+ */
40
+ export function validateWorkflowAsync(workflow, nodeTypes) {
41
+ const computedAsync = shouldWorkflowBeAsync(workflow, nodeTypes);
42
+ const userAsync = workflow.userSpecifiedAsync ?? true; // Default to async for backwards compat
43
+ if (!userAsync && computedAsync) {
44
+ // User wrote sync function, but workflow contains async nodes
45
+ return {
46
+ shouldBeAsync: true, // Force async for correctness
47
+ warning: `Workflow function '${workflow.functionName}' was declared as sync, but contains async nodes. Generating as async function.`
48
+ };
49
+ }
50
+ // Either:
51
+ // - User wrote async and nodes are async (correct)
52
+ // - User wrote async and nodes are sync (honor user's choice, slight overhead but safe)
53
+ // - User wrote sync and nodes are sync (correct)
54
+ return { shouldBeAsync: computedAsync || userAsync };
55
+ }
56
+ //# sourceMappingURL=async-detection.js.map
@@ -0,0 +1,76 @@
1
+ import type { TNodeTypeAST, TWorkflowAST, TMergeStrategy } from '../ast/index.js';
2
+ /**
3
+ * Sanitize a node ID to be a valid JavaScript identifier.
4
+ * Replaces non-alphanumeric characters (except _ and $) with underscores.
5
+ *
6
+ * @param nodeId - The node ID (may contain slashes, etc.)
7
+ * @returns A valid JavaScript identifier
8
+ */
9
+ export declare function toValidIdentifier(nodeId: string): string;
10
+ /**
11
+ * Build a JavaScript expression that merges multiple source values based on strategy.
12
+ *
13
+ * @param sources - Array of source variable names
14
+ * @param strategy - Merge strategy to apply
15
+ * @returns JavaScript expression string
16
+ */
17
+ export declare function buildMergeExpression(sources: string[], strategy: TMergeStrategy): string;
18
+ export type TBuildNodeArgsOptions = {
19
+ node: TNodeTypeAST;
20
+ workflow: TWorkflowAST;
21
+ id: string;
22
+ lines: string[];
23
+ indent?: string;
24
+ getCall?: string;
25
+ isAsync?: boolean;
26
+ instanceParent?: string;
27
+ skipPorts?: Set<string>;
28
+ emitInputEvents?: boolean;
29
+ setCall?: string;
30
+ nodeTypeName?: string;
31
+ bundleMode?: boolean;
32
+ };
33
+ /**
34
+ * Builds the argument list for a node function call by resolving input port values.
35
+ *
36
+ * This function is central to code generation - it determines where each input port
37
+ * gets its value from: connections, expressions, defaults, or execution strategies.
38
+ *
39
+ * ## Resolution Priority (per port):
40
+ * 1. **Skip Ports**: If port is in skipPorts set, use pre-declared variable
41
+ * 2. **Instance Expression**: Check instance.config.portConfigs for evaluateConstantAs
42
+ * 3. **Connection**: Get value from connected output port via ctx.getVariable()
43
+ * 4. **Node Type Expression**: Check nodeType.inputs[port].expression
44
+ * 5. **Default Value**: Use nodeType.inputs[port].default if available
45
+ * 6. **Undefined**: No value source found (may cause runtime error)
46
+ *
47
+ * ## Special Handling:
48
+ * - **execute port**: Always first, handles CONJUNCTION/DISJUNCTION strategies
49
+ * - **Scoped INPUT ports**: Skipped (they're return values from scope functions)
50
+ * - **STEP ports (onSuccess/onFailure)**: Use executionSignal config if present
51
+ * - **Scope functions**: Generated via generateScopeFunctionClosure() for FUNCTION ports
52
+ *
53
+ * ## STEP Port Execution Strategies:
54
+ * - **CONJUNCTION (AND)**: `execute = stepA && stepB && stepC`
55
+ * - **DISJUNCTION (OR)**: `execute = stepA || stepB || stepC`
56
+ * - **CUSTOM**: Uses evaluateExecutionSignalAs expression
57
+ *
58
+ * @param opts - Configuration object with node, workflow, and generation settings
59
+ * @param opts.node - The node type definition with input/output port specs
60
+ * @param opts.workflow - The workflow AST containing connections and instances
61
+ * @param opts.id - The node instance ID being generated
62
+ * @param opts.lines - Array to push generated code lines into
63
+ * @param opts.indent - Indentation prefix for generated lines (default: " ")
64
+ * @param opts.getCall - Method to get variables (default: "await ctx.getVariable")
65
+ * @param opts.isAsync - Whether generating async code
66
+ * @param opts.instanceParent - Parent node ID if this node is in a scope
67
+ * @param opts.skipPorts - Ports to skip (already pre-handled)
68
+ * @param opts.emitInputEvents - Whether to emit VARIABLE_SET events for inputs
69
+ * @param opts.setCall - Method to set variables (default: "await ctx.setVariable")
70
+ * @param opts.nodeTypeName - Override for node type name in events
71
+ * @returns Array of argument expressions to pass to the node function
72
+ */
73
+ export declare function buildNodeArgumentsWithContext(opts: TBuildNodeArgsOptions): string[];
74
+ export declare function generateNodeWithExecutionContext(node: TNodeTypeAST, workflow: TWorkflowAST, lines: string[], isAsync: boolean, indent?: string): void;
75
+ export declare function buildExecutionContextReturnForBranch(workflow: TWorkflowAST, lines: string[], isAsync: boolean, branchName: string, indent: string, executedNodes: string[]): string;
76
+ //# sourceMappingURL=code-utils.d.ts.map