@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,377 @@
1
+ /* eslint-disable no-console */
2
+ /**
3
+ * Describe command - outputs workflow structure in LLM-friendly formats
4
+ */
5
+ import * as fs from 'fs';
6
+ import * as path from 'path';
7
+ import { parseWorkflow, generateInPlace } from '../../api/index.js';
8
+ import { validator } from '../../validator.js';
9
+ import { getNode, getIncomingConnections, getOutgoingConnections } from '../../api/query.js';
10
+ import { logger } from '../utils/logger.js';
11
+ import { getErrorMessage } from '../../utils/error-utils.js';
12
+ export function buildNodeInfo(instance, nodeType) {
13
+ return {
14
+ id: instance.id,
15
+ type: instance.nodeType,
16
+ inputs: nodeType ? Object.keys(nodeType.inputs) : [],
17
+ outputs: nodeType ? Object.keys(nodeType.outputs) : [],
18
+ };
19
+ }
20
+ /**
21
+ * Build adjacency structures from workflow connections.
22
+ * Shared by buildGraph and enumeratePaths.
23
+ */
24
+ function buildAdjacency(ast) {
25
+ const fromStart = [];
26
+ const toExit = new Set();
27
+ const edges = new Map();
28
+ ast.connections.forEach((conn) => {
29
+ if (conn.from.node === 'Start') {
30
+ if (!fromStart.includes(conn.to.node)) {
31
+ fromStart.push(conn.to.node);
32
+ }
33
+ }
34
+ else if (conn.to.node === 'Exit') {
35
+ toExit.add(conn.from.node);
36
+ }
37
+ else {
38
+ const targets = edges.get(conn.from.node) || [];
39
+ if (!targets.includes(conn.to.node)) {
40
+ targets.push(conn.to.node);
41
+ }
42
+ edges.set(conn.from.node, targets);
43
+ }
44
+ });
45
+ return { fromStart, toExit, edges };
46
+ }
47
+ /**
48
+ * Enumerate all Start-to-Exit paths via DFS.
49
+ * Returns an array of path arrays (each path is string[] including Start and Exit).
50
+ */
51
+ export function enumeratePaths(ast) {
52
+ const { fromStart, toExit, edges } = buildAdjacency(ast);
53
+ const paths = [];
54
+ function dfs(current, path, visited) {
55
+ if (toExit.has(current)) {
56
+ paths.push([...path, 'Exit']);
57
+ }
58
+ const targets = edges.get(current) || [];
59
+ for (const next of targets) {
60
+ if (!visited.has(next)) {
61
+ visited.add(next);
62
+ path.push(next);
63
+ dfs(next, path, visited);
64
+ path.pop();
65
+ visited.delete(next);
66
+ }
67
+ }
68
+ }
69
+ fromStart.forEach((startNode) => {
70
+ const visited = new Set([startNode]);
71
+ dfs(startNode, ['Start', startNode], visited);
72
+ });
73
+ return paths;
74
+ }
75
+ export function buildGraph(ast) {
76
+ const { fromStart, toExit, edges } = buildAdjacency(ast);
77
+ const lines = [];
78
+ function dfs(current, path, visited) {
79
+ if (toExit.has(current)) {
80
+ lines.push([...path, 'Exit'].join(' -> '));
81
+ }
82
+ const targets = edges.get(current) || [];
83
+ for (const next of targets) {
84
+ if (!visited.has(next)) {
85
+ visited.add(next);
86
+ path.push(next);
87
+ dfs(next, path, visited);
88
+ path.pop();
89
+ visited.delete(next);
90
+ }
91
+ }
92
+ // Dead-end node (no outgoing edges, doesn't reach Exit)
93
+ if (targets.length === 0 && !toExit.has(current)) {
94
+ lines.push(path.join(' -> '));
95
+ }
96
+ }
97
+ fromStart.forEach((startNode) => {
98
+ const visited = new Set([startNode]);
99
+ dfs(startNode, ['Start', startNode], visited);
100
+ });
101
+ return lines.join('\n');
102
+ }
103
+ export function formatPaths(ast) {
104
+ const paths = enumeratePaths(ast);
105
+ if (paths.length === 0)
106
+ return '(no complete Start-to-Exit paths found)';
107
+ return paths.map((p) => p.join(' -> ')).join('\n');
108
+ }
109
+ export function generateMermaid(ast) {
110
+ const lines = ['graph LR'];
111
+ // Add nodes
112
+ ast.instances.forEach((instance) => {
113
+ lines.push(` ${instance.id}[${instance.id}: ${instance.nodeType}]`);
114
+ });
115
+ // Add connections (deduplicate edges between same node pairs)
116
+ const seenEdges = new Set();
117
+ ast.connections.forEach((conn) => {
118
+ const edgeKey = `${conn.from.node}->${conn.to.node}`;
119
+ if (!seenEdges.has(edgeKey)) {
120
+ seenEdges.add(edgeKey);
121
+ const from = conn.from.node === 'Start' ? 'Start((Start))' : conn.from.node;
122
+ const to = conn.to.node === 'Exit' ? 'Exit((Exit))' : conn.to.node;
123
+ lines.push(` ${from} --> ${to}`);
124
+ }
125
+ });
126
+ return lines.join('\n');
127
+ }
128
+ /**
129
+ * Pure function to describe a workflow - no I/O, returns data
130
+ */
131
+ export function describeWorkflow(ast, options = {}) {
132
+ const { node: focusNodeId } = options;
133
+ // Validate
134
+ const validation = validator.validate(ast);
135
+ const validationOutput = {
136
+ valid: validation.valid,
137
+ errors: validation.errors.map((e) => e.message),
138
+ warnings: validation.warnings.map((w) => w.message),
139
+ };
140
+ // Build node type lookup
141
+ const nodeTypeMap = new Map();
142
+ ast.nodeTypes.forEach((nt) => nodeTypeMap.set(nt.functionName, nt));
143
+ // Focus on specific node?
144
+ if (focusNodeId) {
145
+ const nodeInstance = getNode(ast, focusNodeId);
146
+ if (!nodeInstance) {
147
+ throw new Error(`Node not found: ${focusNodeId}`);
148
+ }
149
+ const nodeType = nodeTypeMap.get(nodeInstance.nodeType);
150
+ const incoming = getIncomingConnections(ast, focusNodeId).map((c) => ({
151
+ from: `${c.from.node}.${c.from.port}`,
152
+ to: `${c.to.node}.${c.to.port}`,
153
+ }));
154
+ const outgoing = getOutgoingConnections(ast, focusNodeId).map((c) => ({
155
+ from: `${c.from.node}.${c.from.port}`,
156
+ to: `${c.to.node}.${c.to.port}`,
157
+ }));
158
+ return {
159
+ focusNode: focusNodeId,
160
+ node: buildNodeInfo(nodeInstance, nodeType),
161
+ incoming,
162
+ outgoing,
163
+ validation: validationOutput,
164
+ };
165
+ }
166
+ // Build full output
167
+ const nodes = ast.instances.map((instance) => {
168
+ const nodeType = nodeTypeMap.get(instance.nodeType);
169
+ return buildNodeInfo(instance, nodeType);
170
+ });
171
+ const connections = ast.connections.map((c) => ({
172
+ from: `${c.from.node}.${c.from.port}`,
173
+ to: `${c.to.node}.${c.to.port}`,
174
+ }));
175
+ return {
176
+ name: ast.functionName,
177
+ description: ast.description || null,
178
+ nodes,
179
+ connections,
180
+ graph: buildGraph(ast),
181
+ validation: validationOutput,
182
+ };
183
+ }
184
+ /**
185
+ * Generate structured human-readable text output
186
+ */
187
+ export function formatTextOutput(ast, output) {
188
+ if ('focusNode' in output) {
189
+ const focused = output;
190
+ const lines = [];
191
+ lines.push(`Node: ${focused.node.id} [${focused.node.type}]`);
192
+ lines.push(` Inputs: ${focused.node.inputs.join(', ') || '(none)'}`);
193
+ lines.push(` Outputs: ${focused.node.outputs.join(', ') || '(none)'}`);
194
+ if (focused.incoming.length > 0) {
195
+ lines.push('');
196
+ lines.push('Incoming:');
197
+ focused.incoming.forEach((c) => lines.push(` ${c.from} -> ${c.to}`));
198
+ }
199
+ if (focused.outgoing.length > 0) {
200
+ lines.push('');
201
+ lines.push('Outgoing:');
202
+ focused.outgoing.forEach((c) => lines.push(` ${c.from} -> ${c.to}`));
203
+ }
204
+ return lines.join('\n');
205
+ }
206
+ const desc = output;
207
+ const lines = [];
208
+ lines.push(`Workflow: ${desc.name}`);
209
+ if (desc.description) {
210
+ lines.push(` ${desc.description}`);
211
+ }
212
+ // Build node type lookup for port info
213
+ const nodeTypeMap = new Map();
214
+ ast.nodeTypes.forEach((nt) => nodeTypeMap.set(nt.functionName, nt));
215
+ lines.push('');
216
+ lines.push(`Nodes (${desc.nodes.length}):`);
217
+ // Calculate column widths for alignment
218
+ const maxIdLen = Math.max(...desc.nodes.map((n) => n.id.length), 2);
219
+ const maxTypeLen = Math.max(...desc.nodes.map((n) => n.type.length), 2);
220
+ desc.nodes.forEach((node) => {
221
+ const id = node.id.padEnd(maxIdLen);
222
+ const type = `[${node.type}]`.padEnd(maxTypeLen + 2);
223
+ // Check if node type has scoped ports
224
+ const nodeType = nodeTypeMap.get(node.type);
225
+ const isExpression = nodeType?.expression === true;
226
+ const scopeNames = nodeType?.scopes ?? (nodeType?.scope ? [nodeType.scope] : []);
227
+ // Filter ports for expression nodes: suppress STEP/control flow ports
228
+ const filterPorts = (ports, direction) => {
229
+ if (!isExpression || !nodeType)
230
+ return ports;
231
+ return ports.filter((portName) => {
232
+ if (portName === 'execute' || portName === 'onSuccess' || portName === 'onFailure') {
233
+ return false;
234
+ }
235
+ const portDef = direction === 'input' ? nodeType.inputs[portName] : nodeType.outputs[portName];
236
+ return !(portDef?.isControlFlow || portDef?.dataType === 'STEP');
237
+ });
238
+ };
239
+ if (scopeNames.length > 0 && nodeType) {
240
+ // Separate regular ports from scoped ports
241
+ const regularInputs = [];
242
+ const regularOutputs = [];
243
+ const scopedPorts = {};
244
+ scopeNames.forEach((s) => {
245
+ scopedPorts[s] = { sends: [], receives: [], children: [] };
246
+ });
247
+ Object.entries(nodeType.inputs).forEach(([name, port]) => {
248
+ if (port.scope && scopedPorts[port.scope]) {
249
+ scopedPorts[port.scope].receives.push(name + (port.isControlFlow ? ' (STEP)' : ''));
250
+ }
251
+ else {
252
+ regularInputs.push(name);
253
+ }
254
+ });
255
+ Object.entries(nodeType.outputs).forEach(([name, port]) => {
256
+ if (port.scope && scopedPorts[port.scope]) {
257
+ scopedPorts[port.scope].sends.push(name + (port.isControlFlow ? ' (STEP)' : ''));
258
+ }
259
+ else {
260
+ regularOutputs.push(name);
261
+ }
262
+ });
263
+ // Find children for each scope
264
+ if (ast.scopes) {
265
+ for (const [scopeKey, childIds] of Object.entries(ast.scopes)) {
266
+ // scopeKey format is typically "nodeId.scopeName"
267
+ const dotIdx = scopeKey.indexOf('.');
268
+ const scopeName = dotIdx >= 0 ? scopeKey.substring(dotIdx + 1) : scopeKey;
269
+ if (scopedPorts[scopeName]) {
270
+ scopedPorts[scopeName].children.push(...childIds);
271
+ }
272
+ }
273
+ }
274
+ const ins = regularInputs.length > 0 ? `IN: ${regularInputs.join(', ')}` : '';
275
+ const outs = regularOutputs.length > 0 ? `OUT: ${regularOutputs.join(', ')}` : '';
276
+ const ports = [ins, outs].filter(Boolean).join(' ');
277
+ lines.push(` ${id} ${type} ${ports}`);
278
+ for (const [scopeName, info] of Object.entries(scopedPorts)) {
279
+ lines.push(` Scope "${scopeName}":`);
280
+ if (info.sends.length > 0) {
281
+ lines.push(` Sends to children: ${info.sends.join(', ')}`);
282
+ }
283
+ if (info.receives.length > 0) {
284
+ lines.push(` Receives from children: ${info.receives.join(', ')}`);
285
+ }
286
+ if (info.children.length > 0) {
287
+ lines.push(` Children: ${info.children.join(', ')}`);
288
+ }
289
+ }
290
+ }
291
+ else {
292
+ const filteredInputs = filterPorts(node.inputs, 'input');
293
+ const filteredOutputs = filterPorts(node.outputs, 'output');
294
+ const ins = filteredInputs.length > 0 ? `IN: ${filteredInputs.join(', ')}` : '';
295
+ const outs = filteredOutputs.length > 0 ? `OUT: ${filteredOutputs.join(', ')}` : '';
296
+ const ports = [ins, outs].filter(Boolean).join(' ');
297
+ lines.push(` ${id} ${type} ${ports}`);
298
+ }
299
+ });
300
+ if (desc.graph) {
301
+ lines.push('');
302
+ const paths = enumeratePaths(ast);
303
+ if (paths.length > 1) {
304
+ // Multiple paths: label each one
305
+ lines.push(`Paths (${paths.length}):`);
306
+ paths.forEach((p, i) => {
307
+ lines.push(` Path ${i + 1}: ${p.join(' -> ')}`);
308
+ });
309
+ }
310
+ else {
311
+ lines.push('Flow:');
312
+ desc.graph.split('\n').forEach((flowLine) => {
313
+ lines.push(` ${flowLine}`);
314
+ });
315
+ }
316
+ }
317
+ lines.push('');
318
+ lines.push(`Validation: ${desc.validation.errors.length} errors, ${desc.validation.warnings.length} warnings`);
319
+ return lines.join('\n');
320
+ }
321
+ /**
322
+ * Format the describe output based on format option
323
+ */
324
+ export function formatDescribeOutput(ast, output, format) {
325
+ switch (format) {
326
+ case 'text':
327
+ return formatTextOutput(ast, output);
328
+ case 'mermaid':
329
+ return generateMermaid(ast);
330
+ case 'paths':
331
+ return formatPaths(ast);
332
+ case 'json':
333
+ default:
334
+ return JSON.stringify(output, null, 2);
335
+ }
336
+ }
337
+ export async function describeCommand(input, options = {}) {
338
+ const { format = 'json', node: focusNodeId, workflowName, compile = false } = options;
339
+ const filePath = path.resolve(input);
340
+ if (!fs.existsSync(filePath)) {
341
+ logger.error(`File not found: ${filePath}`);
342
+ process.exit(1);
343
+ }
344
+ try {
345
+ // Parse the workflow
346
+ const parseResult = await parseWorkflow(filePath, { workflowName });
347
+ if (parseResult.errors.length > 0) {
348
+ logger.error(`Parse errors:`);
349
+ parseResult.errors.forEach((err) => logger.error(` ${err}`));
350
+ process.exit(1);
351
+ }
352
+ const ast = parseResult.ast;
353
+ // Only update runtime markers when explicitly requested via --compile
354
+ // (describe is a read-only inspection command by default)
355
+ if (compile) {
356
+ const sourceCode = fs.readFileSync(filePath, 'utf8');
357
+ const generated = generateInPlace(sourceCode, ast, { production: false });
358
+ if (generated.hasChanges) {
359
+ fs.writeFileSync(filePath, generated.code, 'utf8');
360
+ logger.info(`Updated runtime markers in ${path.basename(filePath)}`);
361
+ }
362
+ }
363
+ // Use pure function to build output
364
+ const output = describeWorkflow(ast, { node: focusNodeId });
365
+ // Format and print
366
+ console.log(formatDescribeOutput(ast, output, format));
367
+ }
368
+ catch (error) {
369
+ if (error instanceof Error && error.message.startsWith('Node not found:')) {
370
+ logger.error(error.message);
371
+ process.exit(1);
372
+ }
373
+ logger.error(`Failed to describe workflow: ${getErrorMessage(error)}`);
374
+ process.exit(1);
375
+ }
376
+ }
377
+ //# sourceMappingURL=describe.js.map
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Dev command - watch, compile, and run workflow on changes
3
+ */
4
+ export interface DevOptions {
5
+ /** Input parameters as JSON string */
6
+ params?: string;
7
+ /** Path to JSON file containing input parameters */
8
+ paramsFile?: string;
9
+ /** Specific workflow name to run (if file contains multiple workflows) */
10
+ workflow?: string;
11
+ /** Run in production mode (no trace events) */
12
+ production?: boolean;
13
+ /** Module format for generated code */
14
+ format?: 'esm' | 'cjs' | 'auto';
15
+ /** Omit redundant @param/@returns annotations */
16
+ clean?: boolean;
17
+ /** Run once then exit (for testing) */
18
+ once?: boolean;
19
+ /** Output result as JSON (for scripting) */
20
+ json?: boolean;
21
+ /** Compilation target (default: typescript in-place) */
22
+ target?: string;
23
+ /** Framework for serve handler (inngest target only) */
24
+ framework?: 'next' | 'express' | 'hono' | 'fastify' | 'remix';
25
+ /** Port for the dev server (inngest target only) */
26
+ port?: number;
27
+ }
28
+ /**
29
+ * Dev command: watch + compile + run in a single loop.
30
+ */
31
+ export declare function devCommand(input: string, options?: DevOptions): Promise<void>;
32
+ //# sourceMappingURL=dev.d.ts.map