@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,284 @@
1
+ import { RESERVED_NODE_NAMES, isStartNode, isExitNode, isSuccessPort, isFailurePort, } from '../constants.js';
2
+ export function buildControlFlowGraph(workflow, nodeTypes) {
3
+ const graph = new Map();
4
+ const inDegree = new Map();
5
+ graph.set(RESERVED_NODE_NAMES.START, []);
6
+ inDegree.set(RESERVED_NODE_NAMES.START, 0);
7
+ graph.set(RESERVED_NODE_NAMES.EXIT, []);
8
+ inDegree.set(RESERVED_NODE_NAMES.EXIT, 0);
9
+ // Initialize graph with instance IDs (exclude per-port scoped children)
10
+ workflow.instances.forEach((instance) => {
11
+ // Skip per-port scoped children - they execute in parent's scope function
12
+ if (isPerPortScopedChild(instance, workflow, nodeTypes)) {
13
+ return;
14
+ }
15
+ graph.set(instance.id, []);
16
+ inDegree.set(instance.id, 0);
17
+ });
18
+ workflow.connections.forEach((conn) => {
19
+ const fromNode = conn.from.node;
20
+ const toNode = conn.to.node;
21
+ // Skip scoped connections - they're internal to scope, not main control flow
22
+ // A scoped connection has scope set on either the from or to port reference
23
+ if (conn.from.scope || conn.to.scope) {
24
+ return; // Skip this connection
25
+ }
26
+ // Skip connections involving per-port scoped children
27
+ const fromInstance = workflow.instances.find((i) => i.id === fromNode);
28
+ const toInstance = workflow.instances.find((i) => i.id === toNode);
29
+ if ((fromInstance && isPerPortScopedChild(fromInstance, workflow, nodeTypes)) ||
30
+ (toInstance && isPerPortScopedChild(toInstance, workflow, nodeTypes))) {
31
+ return; // Skip this connection
32
+ }
33
+ // Include both control-flow AND data-flow edges so the topological sort
34
+ // respects data dependencies (e.g., node A produces data consumed by node B).
35
+ // Self-loops (fromNode === toNode) are intentionally included so Kahn's
36
+ // algorithm detects them as cycles.
37
+ if (graph.has(fromNode) && graph.has(toNode)) {
38
+ const successors = graph.get(fromNode) || [];
39
+ if (!successors.includes(toNode)) {
40
+ successors.push(toNode);
41
+ graph.set(fromNode, successors);
42
+ inDegree.set(toNode, (inDegree.get(toNode) || 0) + 1);
43
+ }
44
+ }
45
+ });
46
+ // Connect instances with no incoming edges to Start
47
+ workflow.instances.forEach((instance) => {
48
+ // Skip per-port scoped children
49
+ if (isPerPortScopedChild(instance, workflow, nodeTypes)) {
50
+ return;
51
+ }
52
+ if ((inDegree.get(instance.id) || 0) === 0) {
53
+ const startSuccessors = graph.get(RESERVED_NODE_NAMES.START) || [];
54
+ if (!startSuccessors.includes(instance.id)) {
55
+ startSuccessors.push(instance.id);
56
+ graph.set(RESERVED_NODE_NAMES.START, startSuccessors);
57
+ inDegree.set(instance.id, 1);
58
+ }
59
+ }
60
+ });
61
+ // Connect instances with no outgoing edges to Exit
62
+ workflow.instances.forEach((instance) => {
63
+ // Skip per-port scoped children
64
+ if (isPerPortScopedChild(instance, workflow, nodeTypes)) {
65
+ return;
66
+ }
67
+ const successors = graph.get(instance.id) || [];
68
+ if (successors.length === 0) {
69
+ successors.push(RESERVED_NODE_NAMES.EXIT);
70
+ graph.set(instance.id, successors);
71
+ inDegree.set(RESERVED_NODE_NAMES.EXIT, (inDegree.get(RESERVED_NODE_NAMES.EXIT) || 0) + 1);
72
+ }
73
+ });
74
+ return { graph, inDegree };
75
+ }
76
+ /**
77
+ * Perform Kahn's topological sort algorithm on control flow graph
78
+ *
79
+ * Determines the execution order of nodes in the workflow, ensuring all
80
+ * dependencies execute before dependent nodes.
81
+ *
82
+ * Algorithm:
83
+ * 1. Start with nodes that have no dependencies (in-degree = 0)
84
+ * 2. Process each node, decreasing in-degree of successors
85
+ * 3. Add nodes with in-degree 0 to queue
86
+ * 4. Repeat until all nodes processed
87
+ *
88
+ * @param controlFlowGraph - Control flow graph with nodes and edges
89
+ * @returns Ordered array of node IDs in execution order
90
+ * @throws {Error} If circular dependency detected (cycle in graph)
91
+ */
92
+ export function performKahnsTopologicalSort(controlFlowGraph) {
93
+ const executionOrder = [];
94
+ const inDegree = new Map(controlFlowGraph.inDegree);
95
+ const queue = [];
96
+ inDegree.forEach((degree, node) => {
97
+ if (degree === 0) {
98
+ queue.push(node);
99
+ }
100
+ });
101
+ while (queue.length > 0) {
102
+ const node = queue.shift();
103
+ executionOrder.push(node);
104
+ const successors = controlFlowGraph.graph.get(node) || [];
105
+ successors.forEach((successor) => {
106
+ const newDegree = (inDegree.get(successor) || 0) - 1;
107
+ inDegree.set(successor, newDegree);
108
+ if (newDegree === 0) {
109
+ queue.push(successor);
110
+ }
111
+ });
112
+ }
113
+ if (executionOrder.length !== controlFlowGraph.graph.size) {
114
+ // Circular dependency detected - collect nodes still in the cycle
115
+ const cycleNodes = [];
116
+ inDegree.forEach((degree, node) => {
117
+ if (degree > 0 && !executionOrder.includes(node)) {
118
+ cycleNodes.push(node);
119
+ }
120
+ });
121
+ throw new Error(`Circular dependency detected in workflow. Nodes in cycle: ${cycleNodes.join(', ')}`);
122
+ }
123
+ return executionOrder;
124
+ }
125
+ export function findAllBranchingNodes(workflow, nodeTypes) {
126
+ const branchingNodes = new Set();
127
+ workflow.connections.forEach((conn) => {
128
+ const nodeName = conn.from.node;
129
+ const portName = conn.from.port;
130
+ if (isSuccessPort(portName) || isFailurePort(portName)) {
131
+ // Skip per-port scoped children - their branches shouldn't affect main control flow
132
+ const instance = workflow.instances.find((i) => i.id === nodeName);
133
+ if (instance && isPerPortScopedChild(instance, workflow, nodeTypes)) {
134
+ return;
135
+ }
136
+ branchingNodes.add(nodeName);
137
+ }
138
+ });
139
+ return branchingNodes;
140
+ }
141
+ /**
142
+ * Check if an instance is a per-port scoped child.
143
+ *
144
+ * Per-port scoped children:
145
+ * - Have a parent reference (instance.parent)
146
+ * - Parent has ports with matching scope name (scope declared via @scope tag or callback param)
147
+ * - Execute inside parent's scope function, NOT in main control flow
148
+ *
149
+ * Node-level scoped children:
150
+ * - Have a parent reference (instance.parent)
151
+ * - Parent does NOT have ports with matching scope
152
+ * - Execute in parent's scope block within main control flow
153
+ */
154
+ export function isPerPortScopedChild(instance, workflow, nodeTypes) {
155
+ if (!instance.parent)
156
+ return false;
157
+ const parentInstance = workflow.instances.find((i) => i.id === instance.parent.id);
158
+ if (!parentInstance)
159
+ return false;
160
+ const parentNodeType = nodeTypes.find((nt) => nt.name === parentInstance.nodeType || nt.functionName === parentInstance.nodeType);
161
+ if (!parentNodeType)
162
+ return false;
163
+ // Check if parent has any port (input or output) with the matching scope name.
164
+ // A scope is valid if declared via @scope tag or inferred from callback parameter.
165
+ // If scoped ports exist, they indicate a valid scope function.
166
+ const scopeName = instance.parent.scope;
167
+ const hasOutputWithScope = Object.values(parentNodeType.outputs).some((port) => port.scope === scopeName);
168
+ const hasInputWithScope = Object.values(parentNodeType.inputs).some((port) => port.scope === scopeName);
169
+ return hasOutputWithScope || hasInputWithScope;
170
+ }
171
+ export function findNodesInBranch(branchNode, branchPort, workflow, allNodes, stopAtBranchingNodes, _allParsedNodeTypes) {
172
+ const reachable = new Set();
173
+ const visited = new Set();
174
+ const queue = [];
175
+ workflow.connections.forEach((conn) => {
176
+ const fromNode = conn.from.node;
177
+ const fromPort = conn.from.port;
178
+ const toNode = conn.to.node;
179
+ if (fromNode === branchNode && fromPort === branchPort) {
180
+ queue.push(toNode);
181
+ }
182
+ });
183
+ while (queue.length > 0) {
184
+ const current = queue.shift();
185
+ if (visited.has(current) || isExitNode(current) || isStartNode(current)) {
186
+ continue;
187
+ }
188
+ visited.add(current);
189
+ if (stopAtBranchingNodes.has(current) && current !== branchNode) {
190
+ reachable.add(current);
191
+ continue;
192
+ }
193
+ if (allNodes.has(current)) {
194
+ reachable.add(current);
195
+ workflow.connections.forEach((conn) => {
196
+ const fromNode = conn.from.node;
197
+ const fromPort = conn.from.port;
198
+ const toNode = conn.to.node;
199
+ if (fromNode === current && !isSuccessPort(fromPort) && !isFailurePort(fromPort)) {
200
+ if (!visited.has(toNode)) {
201
+ queue.push(toNode);
202
+ }
203
+ }
204
+ });
205
+ }
206
+ }
207
+ return reachable;
208
+ }
209
+ /**
210
+ * Detect sequential chains of branching nodes where flattening can reduce nesting.
211
+ *
212
+ * A chain link exists when a branching node has exactly one branching child in one
213
+ * direction (success or failure) and zero in the other. Chains must be >= 2 nodes.
214
+ *
215
+ * @returns Map from chain head ID to ordered array of chain node IDs
216
+ */
217
+ export function detectBranchingChains(branchingNodes, branchRegions) {
218
+ // Build chain successor links: nodeId -> next branching node in chain
219
+ const chainSuccessor = new Map();
220
+ for (const nodeId of branchingNodes) {
221
+ const region = branchRegions.get(nodeId);
222
+ if (!region)
223
+ continue;
224
+ const successBranching = [...region.successNodes].filter((n) => branchingNodes.has(n));
225
+ const failureBranching = [...region.failureNodes].filter((n) => branchingNodes.has(n));
226
+ // Chain link: exactly one direction has one branching child, other has zero
227
+ let nextNode = null;
228
+ if (successBranching.length === 1 && failureBranching.length === 0) {
229
+ nextNode = successBranching[0];
230
+ }
231
+ else if (failureBranching.length === 1 && successBranching.length === 0) {
232
+ nextNode = failureBranching[0];
233
+ }
234
+ if (nextNode) {
235
+ chainSuccessor.set(nodeId, nextNode);
236
+ }
237
+ }
238
+ // Find nodes that have a chain predecessor
239
+ const hasChainPredecessor = new Set(chainSuccessor.values());
240
+ // Build chains starting from head nodes (nodes with successor but no predecessor)
241
+ const chains = new Map();
242
+ for (const nodeId of branchingNodes) {
243
+ if (hasChainPredecessor.has(nodeId))
244
+ continue; // not a head
245
+ if (!chainSuccessor.has(nodeId))
246
+ continue; // no successor = no chain
247
+ const chain = [nodeId];
248
+ let current = nodeId;
249
+ while (chainSuccessor.has(current)) {
250
+ const next = chainSuccessor.get(current);
251
+ chain.push(next);
252
+ current = next;
253
+ }
254
+ if (chain.length >= 2) {
255
+ chains.set(nodeId, chain);
256
+ }
257
+ }
258
+ return chains;
259
+ }
260
+ export function determineExecutionOrder(workflow, nodes) {
261
+ const nodeMap = new Map();
262
+ nodes.forEach((node) => nodeMap.set(node.functionName, node));
263
+ const executionOrder = [];
264
+ const visited = new Set();
265
+ function visit(nodeName) {
266
+ if (visited.has(nodeName))
267
+ return;
268
+ visited.add(nodeName);
269
+ const outgoingConnections = workflow.connections.filter((conn) => conn.from.node === nodeName && !isExitNode(conn.to.node));
270
+ outgoingConnections.forEach((conn) => {
271
+ const targetNode = conn.to.node;
272
+ if (!isExitNode(targetNode)) {
273
+ visit(targetNode);
274
+ }
275
+ });
276
+ executionOrder.unshift(nodeName);
277
+ }
278
+ const startConnections = workflow.connections.filter((conn) => isStartNode(conn.from.node) && !isExitNode(conn.to.node));
279
+ startConnections.forEach((conn) => {
280
+ visit(conn.to.node);
281
+ });
282
+ return executionOrder;
283
+ }
284
+ //# sourceMappingURL=control-flow.js.map
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Inngest Deep Code Generator
3
+ *
4
+ * Generates Inngest function code with per-node `step.run()` wrapping,
5
+ * giving each node individual durability, retries, and checkpointing.
6
+ *
7
+ * This is a standalone generator alongside unified.ts — it shares the
8
+ * control-flow analysis layer but produces fundamentally different output:
9
+ * - Local `const` variables instead of `ctx.setVariable()/getVariable()`
10
+ * - `step.run()` per non-expression node for durability
11
+ * - `Promise.all()` for parallel independent nodes
12
+ * - Indexed `step.run()` for forEach/scoped iteration
13
+ * - Branching chain flattening for multi-way routing
14
+ *
15
+ * @module generator/inngest
16
+ */
17
+ import type { TNodeTypeAST, TWorkflowAST } from '../ast/types.js';
18
+ export interface InngestGenerationOptions {
19
+ /** Omit debug instrumentation for smaller output */
20
+ production?: boolean;
21
+ /** Inngest client ID (default: derived from workflow name) */
22
+ serviceName?: string;
23
+ /** Custom trigger event name (default: 'fw/<kebab-workflow>.execute') */
24
+ triggerEvent?: string;
25
+ /** Number of retries per function (default: 3) */
26
+ retries?: number;
27
+ /** Extra function config merged into createFunction() first arg */
28
+ functionConfig?: Record<string, unknown>;
29
+ /** When true, emit Zod schema from @param annotations */
30
+ typedEvents?: boolean;
31
+ /** Framework adapter for serve handler */
32
+ framework?: 'next' | 'express' | 'hono' | 'fastify' | 'remix';
33
+ /** When true, append serve() handler export */
34
+ serveHandler?: boolean;
35
+ }
36
+ /**
37
+ * Generate an Inngest function from a workflow AST.
38
+ *
39
+ * Produces a complete TypeScript module with:
40
+ * - Import statements (Inngest SDK + node type functions)
41
+ * - `inngest.createFunction()` with per-node `step.run()` calls
42
+ * - Parallel execution via `Promise.all` where safe
43
+ * - Branching via if/else for onSuccess/onFailure
44
+ * - Chain flattening for sequential branching (3-way routing)
45
+ * - Indexed `step.run()` for forEach iteration
46
+ *
47
+ * @param workflow - The workflow AST to generate from
48
+ * @param nodeTypes - All available node type definitions
49
+ * @param options - Generation options (service name, trigger, retries, etc.)
50
+ * @returns Complete TypeScript source code string
51
+ */
52
+ export declare function generateInngestFunction(workflow: TWorkflowAST, nodeTypes: TNodeTypeAST[], options?: InngestGenerationOptions): string;
53
+ //# sourceMappingURL=inngest.d.ts.map