@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
package/LICENSE ADDED
@@ -0,0 +1,122 @@
1
+ Elastic License 2.0
2
+
3
+ URL: https://www.elastic.co/licensing/elastic-license
4
+
5
+ ## Acceptance
6
+
7
+ By using the software, you agree to all of the terms and conditions below.
8
+
9
+ ## Copyright License
10
+
11
+ The licensor grants you a non-exclusive, royalty-free, worldwide,
12
+ non-sublicensable, non-transferable license to use, copy, distribute, make
13
+ available, and prepare derivative works of the software, in each case subject to
14
+ the limitations and conditions below.
15
+
16
+ ## Limitations
17
+
18
+ You may not provide the software to third parties as a hosted or managed
19
+ service, where the service provides users with access to any substantial set of
20
+ the features or functionality of the software.
21
+
22
+ You may not move, change, disable, or circumvent the license key functionality
23
+ in the software, and you may not remove or obscure any functionality in the
24
+ software that is protected by the license key.
25
+
26
+ You may not alter, remove, or obscure any licensing, copyright, or other notices
27
+ of the licensor in the software. Any use of the licensor's trademarks is subject
28
+ to applicable law.
29
+
30
+ ## Patents
31
+
32
+ The licensor grants you a license, under any patent claims the licensor can
33
+ license, or becomes able to license, to make, have made, use, sell, offer for
34
+ sale, import and have imported the software, in each case subject to the
35
+ limitations and conditions in this license. This license does not cover any
36
+ patent claims that you cause to be infringed by modifications or additions to the
37
+ software. If you or your company make any written claim that the software
38
+ infringes or contributes to infringement of any patent, your patent license for
39
+ the software granted under these terms ends immediately. If your company makes
40
+ such a claim, your patent license ends immediately for work on behalf of your
41
+ company.
42
+
43
+ ## Notices
44
+
45
+ You must ensure that anyone who gets a copy of any part of the software from you
46
+ also gets a copy of these terms.
47
+
48
+ If you modify the software, you must include in any modified copies of the
49
+ software prominent notices stating that you have modified the software.
50
+
51
+ ## No Other Rights
52
+
53
+ These terms do not imply any licenses other than those expressly granted in
54
+ these terms.
55
+
56
+ ## Termination
57
+
58
+ If you use the software in violation of these terms, such use is not licensed,
59
+ and your licenses will automatically terminate. If the licensor provides you
60
+ with a notice of your violation, and you cease all violation of this license no
61
+ later than 30 days after you receive that notice, your licenses will be
62
+ reinstated retroactively. However, if you violate these terms after such
63
+ reinstatement, any additional violation of these terms will immediately and
64
+ permanently terminate your licenses.
65
+
66
+ ## No Liability
67
+
68
+ As far as the law allows, the software comes as is, without any warranty or
69
+ condition, and the licensor will not be liable to you for any damages arising
70
+ out of these terms or the use or nature of the software, under any kind of
71
+ legal claim.
72
+
73
+ ## Definitions
74
+
75
+ The "licensor" is Ricardo Jose Horta Morais (Synergenius), and the "software"
76
+ is the software the licensor makes available under these terms.
77
+
78
+ "You" refers to the individual or entity agreeing to these terms. "Your company"
79
+ is any legal entity, sole proprietorship, or other kind of organization that you
80
+ work for, plus all organizations that have control over, are under the control
81
+ of, or are under common control with that organization. "Control" means
82
+ ownership of substantially all the assets of an entity, or the power to direct
83
+ its management and policies by vote, contract, or otherwise. Control can be
84
+ direct or indirect.
85
+
86
+ "Your licenses" are all the licenses granted to you for the software under these
87
+ terms. "Use" means anything you do with the software requiring one of your
88
+ licenses.
89
+
90
+ ---
91
+
92
+ ADDITIONAL NOTICES
93
+
94
+ 1. Output of the Software
95
+
96
+ The output of the Software — including but not limited to compiled workflows,
97
+ generated code, deployment artifacts, and any other files produced by the
98
+ Software's compilation, code generation, or export features — is not considered
99
+ part of the Software and may be used, copied, modified, distributed, and
100
+ sublicensed for any purpose without restriction under this License.
101
+
102
+ 2. Internal Hosting Threshold
103
+
104
+ Organizations with 15 or fewer individuals — including employees, contractors,
105
+ and affiliates — may host the Software on internal infrastructure for use by
106
+ their members without restriction under this License.
107
+
108
+ Organizations with more than 15 individuals that wish to host the Software —
109
+ whether on internal infrastructure or as a service — require a commercial
110
+ license.
111
+
112
+ 3. Unrestricted Use
113
+
114
+ Using the Software locally — including installing, running, compiling
115
+ workflows, generating code, and producing deployment artifacts — is permitted
116
+ for any individual or organization regardless of size, subject to the
117
+ Limitations above.
118
+
119
+ 4. Commercial Licensing
120
+
121
+ For commercial licensing inquiries, partnership arrangements, or questions
122
+ about permitted use, contact support@synergenius.pt.
package/README.md ADDED
@@ -0,0 +1,315 @@
1
+ # @synergenius/flow-weaver
2
+
3
+ [![License: ELv2-based](https://img.shields.io/badge/License-ELv2--based-blue.svg)](./LICENSE)
4
+ [![Node.js](https://img.shields.io/badge/Node.js-%3E%3D18-green.svg)](https://nodejs.org)
5
+
6
+ TypeScript annotation-based workflow compiler for Flow Weaver.
7
+
8
+ Build visual workflows using JSDoc annotations and TypeScript function signatures. Full type safety, IDE autocomplete, and instant validation.
9
+
10
+ ## Table of Contents
11
+
12
+ - [Installation](#installation)
13
+ - [Quick Start](#quick-start)
14
+ - [API](#api)
15
+ - [Exports](#exports)
16
+ - [CLI Reference](#cli-reference)
17
+ - [STEP Port Architecture](#step-port-architecture)
18
+ - [Annotations](#annotations)
19
+ - [Deployment](#deployment)
20
+ - [MCP Integration](#mcp-integration)
21
+ - [API Documentation](#api-documentation)
22
+ - [Testing](#testing)
23
+ - [Development](#development)
24
+ - [License](#license)
25
+
26
+ ## Installation
27
+
28
+ ```bash
29
+ npm install @synergenius/flow-weaver
30
+ ```
31
+
32
+ ## Quick Start
33
+
34
+ Create a workflow file (any `.ts`, `.tsx`, `.js`, or `.jsx` file works):
35
+
36
+ ```typescript
37
+ // math-workflow.ts
38
+
39
+ /**
40
+ * @flowWeaver nodeType
41
+ * @input x
42
+ * @input y
43
+ * @output result
44
+ */
45
+ function multiply(execute: boolean, x: number, y: number) {
46
+ if (!execute) return { onSuccess: false, onFailure: false, result: 0 };
47
+ return { onSuccess: true, onFailure: false, result: x * y };
48
+ }
49
+
50
+ /**
51
+ * @flowWeaver workflow
52
+ * @node multiplier multiply
53
+ * @connect Start.x -> multiplier.x
54
+ * @connect Start.y -> multiplier.y
55
+ * @connect multiplier.result -> Exit.result
56
+ */
57
+ export async function multiplyWorkflow(
58
+ execute: boolean,
59
+ params: { x: number; y: number }
60
+ ): Promise<{ onSuccess: boolean; onFailure: boolean; result: number }> {
61
+ throw new Error('Not implemented');
62
+ }
63
+ ```
64
+
65
+ Compile:
66
+
67
+ ```bash
68
+ npx flow-weaver compile math-workflow.ts
69
+ ```
70
+
71
+ ## API
72
+
73
+ ```typescript
74
+ import {
75
+ parseWorkflow, // Parse workflow file to AST
76
+ compileWorkflow, // Parse + generate in one step
77
+ validateWorkflow, // Validate AST
78
+ generateCode, // Generate code from AST
79
+ } from '@synergenius/flow-weaver';
80
+
81
+ // Parse and compile
82
+ const { code } = await compileWorkflow('workflow.ts');
83
+
84
+ // Or step by step
85
+ const { ast } = await parseWorkflow('workflow.ts');
86
+ const code = generateCode(ast);
87
+ ```
88
+
89
+ Additional APIs: `compileWorkflows()`, `compilePattern()`, `generateInPlace()`. See [API documentation](#api-documentation) for details.
90
+
91
+ ## Exports
92
+
93
+ | Import Path | Purpose |
94
+ |-------------|---------|
95
+ | `@synergenius/flow-weaver` | Main — parse, validate, compile, generate, AST types, builders, diff, JSDoc sync |
96
+ | `@synergenius/flow-weaver/runtime` | Execution context & errors for generated code |
97
+ | `@synergenius/flow-weaver/built-in-nodes` | Built-in workflow nodes (delay, waitForEvent, invokeWorkflow) |
98
+ | `@synergenius/flow-weaver/diagram` | Workflow diagram layout and rendering |
99
+ | `@synergenius/flow-weaver/describe` | Programmatic workflow description (structure, nodes, paths) |
100
+
101
+ ## CLI Reference
102
+
103
+ ### Core Commands
104
+
105
+ ```bash
106
+ flow-weaver compile <file> # Compile workflow files
107
+ --production # Production mode (no debug events)
108
+ --watch # Recompile on changes
109
+ --dry-run # Preview without writing
110
+ --optimize # Optimize workflow compilation
111
+ --strict # Strict validation mode
112
+ --source-map # Generate source maps
113
+ --format esm|cjs|auto # Output module format
114
+
115
+ flow-weaver validate <file> # Validate without compiling
116
+ --verbose | --quiet | --json # Output format
117
+ --strict # Strict type checking
118
+
119
+ flow-weaver run <file> # Execute a workflow
120
+ --params '{"key":"val"}' # Input parameters (JSON)
121
+ --params-file params.json # Parameters from file
122
+ --production # Production mode
123
+ --trace # Include execution trace
124
+ --timeout 30000 # Execution timeout (ms)
125
+
126
+ flow-weaver dev <file> # Watch + compile + run
127
+ --params '{"key":"val"}' # Input parameters
128
+ --once # Run once then exit
129
+
130
+ flow-weaver watch <file> # Watch and recompile
131
+ flow-weaver describe <file> # Output structure
132
+ --format json|text|mermaid|paths # Output format
133
+ --node <id> # Focus on specific node
134
+ flow-weaver diagram <file> # Generate SVG diagram
135
+ --theme dark|light # Color theme (default: dark)
136
+ --width <pixels> # SVG width
137
+ --no-port-labels # Hide port data type labels
138
+ -o, --output <file> # Write to file (default: stdout)
139
+ flow-weaver diff <f1> <f2> # Semantic comparison
140
+ --format text|json|compact # Output format
141
+ ```
142
+
143
+ ### Project Setup
144
+
145
+ ```bash
146
+ flow-weaver init [directory] # Create new project
147
+ --template <name> # Project template
148
+ --yes # Accept defaults
149
+ flow-weaver create workflow <tmpl> <f> # Scaffold workflow from template
150
+ flow-weaver create node <name> <file> # Scaffold node type
151
+ flow-weaver templates # List available templates
152
+ flow-weaver doctor # Check project compatibility
153
+ flow-weaver grammar # Output annotation grammar (EBNF/railroad)
154
+ ```
155
+
156
+ ### Deployment
157
+
158
+ ```bash
159
+ flow-weaver serve [directory] # HTTP server for workflows
160
+ --port 3000 # Server port
161
+ --swagger # Enable Swagger UI at /docs
162
+ --production # Production mode
163
+ flow-weaver export <file> # Serverless export
164
+ --target lambda|vercel|cloudflare # Deployment target
165
+ --multi # Multi-workflow service
166
+ --docs # Include OpenAPI routes
167
+ flow-weaver openapi <directory> # Generate OpenAPI spec
168
+ --format json|yaml # Output format
169
+ ```
170
+
171
+ ### Patterns and Migration
172
+
173
+ ```bash
174
+ flow-weaver pattern list <path> # List patterns in file
175
+ flow-weaver pattern apply <pat> <tgt> # Apply pattern to workflow
176
+ flow-weaver pattern extract <source> # Extract pattern from nodes
177
+ flow-weaver migrate <glob> # Migrate to current syntax
178
+ --dry-run # Preview changes
179
+ --diff # Show changes
180
+ flow-weaver changelog # Generate changelog from git
181
+ ```
182
+
183
+ ### IDE Integration
184
+
185
+ ```bash
186
+ flow-weaver mcp-server # Start MCP server for Claude Code
187
+ flow-weaver listen # Stream editor events (JSON lines)
188
+ flow-weaver plugin init <name> # Scaffold external plugin
189
+ flow-weaver ui focus-node <id> # Focus node in editor
190
+ flow-weaver ui add-node <type> # Add node to editor
191
+ flow-weaver ui open-workflow <path> # Open workflow file
192
+ flow-weaver ui get-state # Get editor state
193
+ flow-weaver ui batch <json> # Batch editor commands
194
+ ```
195
+
196
+ ## STEP Port Architecture
197
+
198
+ All nodes follow this pattern:
199
+
200
+ ```typescript
201
+ function nodeName(
202
+ execute: boolean, // Control input
203
+ ...inputs // Data inputs
204
+ ): {
205
+ onSuccess: boolean; // Success control output
206
+ onFailure: boolean; // Failure control output
207
+ ...outputs // Data outputs
208
+ }
209
+ ```
210
+
211
+ Expression nodes (`@expression`) skip the control flow boilerplate — inputs and outputs are inferred from the TypeScript signature.
212
+
213
+ ## Annotations
214
+
215
+ ### @flowWeaver nodeType
216
+
217
+ ```typescript
218
+ /**
219
+ * @flowWeaver nodeType
220
+ * @input value
221
+ * @output result
222
+ * @label Double
223
+ * @pullExecution execute
224
+ */
225
+ ```
226
+
227
+ ### @flowWeaver workflow
228
+
229
+ ```typescript
230
+ /**
231
+ * @flowWeaver workflow
232
+ * @node instance1 nodeType
233
+ * @connect Start.input -> instance1.value
234
+ * @connect instance1.result -> Exit.output
235
+ * @path Start -> n1 -> n2 -> Exit
236
+ * @path n1:fail -> errorHandler -> Exit
237
+ */
238
+ ```
239
+
240
+ ## Deployment
241
+
242
+ ### HTTP Server
243
+
244
+ ```bash
245
+ flow-weaver serve ./workflows --swagger --port 3000
246
+ ```
247
+
248
+ Serves all workflows as HTTP endpoints with optional Swagger UI at `/docs`.
249
+
250
+ ### Serverless Export
251
+
252
+ ```bash
253
+ # AWS Lambda (generates SAM template + handler)
254
+ flow-weaver export workflow.ts --target lambda --output deploy/
255
+
256
+ # Vercel (generates api/ handler + vercel.json)
257
+ flow-weaver export workflow.ts --target vercel --output deploy/
258
+
259
+ # Cloudflare Workers (generates worker + wrangler.toml)
260
+ flow-weaver export workflow.ts --target cloudflare --output deploy/
261
+
262
+ # Multi-workflow service with OpenAPI docs
263
+ flow-weaver export workflow.ts --target vercel --multi --docs --output deploy/
264
+ ```
265
+
266
+ ## MCP Integration
267
+
268
+ Start the MCP server for use with Claude Code:
269
+
270
+ ```bash
271
+ npx flow-weaver mcp-server
272
+ ```
273
+
274
+ 30+ tools across five categories:
275
+ - **Editor** (13): check events, get state, focus/add/remove nodes, connect, batch, execute, undo/redo
276
+ - **Query** (6): describe, validate, compile, diff, query (10 query types), doctor
277
+ - **Template** (2): list templates, scaffold
278
+ - **Pattern** (7): list/apply/extract patterns, find workflows, modify, modify batch, migrate
279
+ - **Export** (1): export to serverless targets
280
+
281
+ ## API Documentation
282
+
283
+ Generate TypeDoc API reference:
284
+
285
+ ```bash
286
+ npm run docs
287
+ ```
288
+
289
+ Output is in `docs/api/`. Covers all public APIs with parameters, return types, and examples.
290
+
291
+ ## Testing
292
+
293
+ ```bash
294
+ npm test # Run all tests
295
+ npm run test:watch # Watch mode
296
+ ```
297
+
298
+ ## Development
299
+
300
+ ```bash
301
+ npm run build # Build
302
+ npm run dev # Watch mode
303
+ npm run typecheck # Type check
304
+ npm run docs # Generate API docs
305
+ ```
306
+
307
+ ## License
308
+
309
+ Custom license based on the Elastic License 2.0. See [LICENSE](./LICENSE) for full terms.
310
+
311
+ - **Free to use** — any individual or organization can install, run, and compile workflows
312
+ - **Free to host internally** for organizations with 15 or fewer people
313
+ - **Commercial license required** to host internally for organizations with more than 15 people — contact support@synergenius.pt
314
+ - **External hosting prohibited** — cannot be provided as a hosted/managed service to third parties without a commercial license
315
+ - **Output is unrestricted** — compiled workflows, generated code, and deployment artifacts are yours
@@ -0,0 +1,45 @@
1
+ import type { TNodeInstanceAST, TPortDefinition, TWorkflowAST } from "./ast/index.js";
2
+ export interface GenerateAnnotationsOptions {
3
+ includeComments?: boolean;
4
+ includeMetadata?: boolean;
5
+ indentSize?: number;
6
+ skipParamReturns?: boolean;
7
+ }
8
+ export declare class AnnotationGenerator {
9
+ generate(workflow: TWorkflowAST, options?: GenerateAnnotationsOptions): string;
10
+ private generateNodeTypeAnnotation;
11
+ private generateJSDocPortTag;
12
+ private generateTPortDefinition;
13
+ private generateFunctionSignature;
14
+ private generateWorkflowAnnotation;
15
+ private generateWorkflowFunctionSignature;
16
+ private assignPortOrders;
17
+ private mapDataTypeToTS;
18
+ }
19
+ /**
20
+ * Generate JSDoc port tag (e.g., @input name - Description)
21
+ * Exported for reuse in generate-in-place.ts to maintain DRY principle
22
+ *
23
+ * New format (types derived from signature):
24
+ * - @input name - Description
25
+ * - @output name - Description
26
+ * - @step name - Description (for explicit STEP/control-flow ports)
27
+ *
28
+ * Reserved STEP ports (execute, onSuccess, onFailure) use @input/@output.
29
+ * Custom STEP ports use @step.
30
+ */
31
+ export declare function generateJSDocPortTag(name: string, port: TPortDefinition, direction: 'input' | 'output', _implicitOrder?: number): string;
32
+ /**
33
+ * Simply return ports as-is to preserve exact order from the AST
34
+ * Don't compute or add any new metadata - only preserve what's already there
35
+ * This ensures perfect round-trip fidelity
36
+ * Exported for reuse in generate-in-place.ts to maintain DRY principle
37
+ */
38
+ export declare function assignPortOrders(ports: [string, TPortDefinition][], _direction: 'input' | 'output'): [string, TPortDefinition][];
39
+ /**
40
+ * Generate @node tag for a single instance
41
+ * Exported for reuse in generate-in-place.ts to maintain DRY principle
42
+ */
43
+ export declare function generateNodeInstanceTag(instance: TNodeInstanceAST): string;
44
+ export declare const annotationGenerator: AnnotationGenerator;
45
+ //# sourceMappingURL=annotation-generator.d.ts.map