@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,278 @@
1
+ /**
2
+ * Compile command - compiles workflow files to TypeScript
3
+ */
4
+ import * as fs from 'fs';
5
+ import * as path from 'path';
6
+ import { glob } from 'glob';
7
+ import { parseWorkflow } from '../../api/index.js';
8
+ import { generateInPlace } from '../../api/generate-in-place.js';
9
+ import { generateCode } from '../../api/generate.js';
10
+ import { validator } from '../../validator.js';
11
+ import { logger } from '../utils/logger.js';
12
+ import { getErrorMessage } from '../../utils/error-utils.js';
13
+ import { getFriendlyError } from '../../friendly-errors.js';
14
+ import { detectProjectModuleFormat } from './doctor.js';
15
+ import { generateInngestFunction } from '../../generator/inngest.js';
16
+ import { AnnotationParser } from '../../parser.js';
17
+ /**
18
+ * Resolve the module format to use for compilation.
19
+ * If 'auto' or not specified, detect from the project's package.json.
20
+ */
21
+ function resolveModuleFormat(format, cwd) {
22
+ if (format === 'esm' || format === 'cjs') {
23
+ return format;
24
+ }
25
+ // Auto-detect from project
26
+ const detection = detectProjectModuleFormat(cwd);
27
+ return detection.format;
28
+ }
29
+ export async function compileCommand(input, options = {}) {
30
+ const { production = false, sourceMap = false, strict = false, verbose = false, workflowName, dryRun = false, format, inlineRuntime = false, clean = false, target } = options;
31
+ // Handle Inngest target compilation
32
+ if (target === 'inngest') {
33
+ return compileInngestTarget(input, { production, verbose, workflowName, dryRun });
34
+ }
35
+ // Resolve module format (auto-detect if not specified)
36
+ const cwd = process.cwd();
37
+ const moduleFormat = resolveModuleFormat(format, cwd);
38
+ try {
39
+ // If input is a directory, expand to all .ts files recursively
40
+ let pattern = input;
41
+ try {
42
+ if (fs.existsSync(input) && fs.statSync(input).isDirectory()) {
43
+ pattern = path.join(input, '**/*.ts');
44
+ }
45
+ }
46
+ catch {
47
+ // Not a valid path, use as glob pattern
48
+ }
49
+ // Find files matching the pattern, filter to actual files only
50
+ const allFiles = await glob(pattern, { absolute: true });
51
+ const files = allFiles.filter((f) => {
52
+ try {
53
+ return fs.statSync(f).isFile();
54
+ }
55
+ catch {
56
+ return false;
57
+ }
58
+ });
59
+ if (files.length === 0) {
60
+ throw new Error(`No files found matching pattern: ${input}`);
61
+ }
62
+ logger.section('Compiling Workflows');
63
+ logger.info(`Found ${files.length} file(s)`);
64
+ logger.info(`Module format: ${moduleFormat.toUpperCase()}`);
65
+ if (sourceMap) {
66
+ logger.info('Source maps: enabled');
67
+ }
68
+ if (verbose) {
69
+ files.forEach((file) => logger.info(` - ${file}`));
70
+ }
71
+ logger.newline();
72
+ let successCount = 0;
73
+ let errorCount = 0;
74
+ for (let i = 0; i < files.length; i++) {
75
+ const file = files[i];
76
+ const fileName = path.basename(file);
77
+ logger.progress(i + 1, files.length, fileName);
78
+ try {
79
+ // Skip files without @flowWeaver annotations before parsing
80
+ const rawSource = fs.readFileSync(file, 'utf8');
81
+ if (!rawSource.includes('@flowWeaver')) {
82
+ if (verbose) {
83
+ logger.info(` Skipped ${fileName} (no @flowWeaver annotations)`);
84
+ }
85
+ continue;
86
+ }
87
+ // Parse the workflow
88
+ const parseResult = await parseWorkflow(file, { workflowName });
89
+ if (parseResult.warnings.length > 0) {
90
+ parseResult.warnings.forEach((w) => logger.warn(` ${w}`));
91
+ }
92
+ if (parseResult.errors.length > 0) {
93
+ // Skip non-workflow files silently (only error is "No workflows found")
94
+ const isNonWorkflowFile = parseResult.errors.length === 1 &&
95
+ typeof parseResult.errors[0] === 'string' &&
96
+ parseResult.errors[0].startsWith('No workflows found');
97
+ if (isNonWorkflowFile) {
98
+ if (verbose) {
99
+ logger.info(` Skipped ${fileName} (no workflow)`);
100
+ }
101
+ continue;
102
+ }
103
+ logger.error(`Failed to parse ${fileName}:`);
104
+ parseResult.errors.forEach((err) => logger.error(` ${err}`));
105
+ errorCount++;
106
+ continue;
107
+ }
108
+ // Validate the AST (especially for --strict mode)
109
+ if (strict) {
110
+ const validation = validator.validate(parseResult.ast, { strictMode: true });
111
+ if (validation.errors.length > 0) {
112
+ logger.error(`Validation errors in ${fileName}:`);
113
+ validation.errors.forEach((err) => {
114
+ const friendly = getFriendlyError(err);
115
+ if (friendly) {
116
+ const loc = err.location ? `[line ${err.location.line}] ` : '';
117
+ logger.error(` ${loc}${friendly.title}: ${friendly.explanation}`);
118
+ logger.info(` How to fix: ${friendly.fix}`);
119
+ }
120
+ else {
121
+ let msg = ` - ${err.message}`;
122
+ if (err.node) {
123
+ msg += ` (node: ${err.node})`;
124
+ }
125
+ logger.error(msg);
126
+ }
127
+ });
128
+ errorCount++;
129
+ continue;
130
+ }
131
+ if (validation.warnings.length > 0 && verbose) {
132
+ validation.warnings.forEach((warn) => {
133
+ const friendly = getFriendlyError(warn);
134
+ if (friendly) {
135
+ const loc = warn.location ? `[line ${warn.location.line}] ` : '';
136
+ logger.warn(` ${loc}${friendly.title}: ${friendly.explanation}`);
137
+ logger.info(` How to fix: ${friendly.fix}`);
138
+ }
139
+ else {
140
+ logger.warn(` ${warn.message}`);
141
+ }
142
+ });
143
+ }
144
+ }
145
+ // Read original source
146
+ const sourceCode = fs.readFileSync(file, 'utf8');
147
+ // Generate code in-place (preserves types, interfaces, etc.)
148
+ const result = generateInPlace(sourceCode, parseResult.ast, { production, moduleFormat, inlineRuntime, sourceFile: file, skipParamReturns: clean });
149
+ // Write back to original file (skip in dry-run mode)
150
+ if (!dryRun) {
151
+ fs.writeFileSync(file, result.code, 'utf8');
152
+ // Generate source map if requested
153
+ if (sourceMap) {
154
+ const mapResult = generateCode(parseResult.ast, {
155
+ production,
156
+ sourceMap: true,
157
+ moduleFormat,
158
+ });
159
+ if (mapResult.sourceMap) {
160
+ const mapPath = file + '.map';
161
+ fs.writeFileSync(mapPath, mapResult.sourceMap, 'utf8');
162
+ // Append sourceMappingURL comment to the compiled file
163
+ const sourceMappingComment = `\n//# sourceMappingURL=${path.basename(mapPath)}\n`;
164
+ if (!result.code.includes('//# sourceMappingURL=')) {
165
+ fs.appendFileSync(file, sourceMappingComment, 'utf8');
166
+ }
167
+ if (verbose) {
168
+ logger.info(` Source map: ${mapPath}`);
169
+ }
170
+ }
171
+ }
172
+ }
173
+ if (dryRun) {
174
+ if (result.hasChanges) {
175
+ logger.success(` Would compile: ${file}`);
176
+ }
177
+ else if (verbose) {
178
+ logger.info(` No changes: ${file}`);
179
+ }
180
+ }
181
+ else if (result.hasChanges) {
182
+ logger.success(` Compiled: ${file}`);
183
+ }
184
+ else if (verbose) {
185
+ logger.info(` No changes: ${file}`);
186
+ }
187
+ successCount++;
188
+ }
189
+ catch (error) {
190
+ logger.error(`Failed to compile ${fileName}: ${getErrorMessage(error)}`);
191
+ errorCount++;
192
+ }
193
+ }
194
+ // Summary
195
+ logger.newline();
196
+ logger.section('Summary');
197
+ logger.success(`${successCount} file(s) compiled successfully`);
198
+ if (errorCount > 0) {
199
+ throw new Error(`${errorCount} file(s) failed to compile`);
200
+ }
201
+ }
202
+ catch (error) {
203
+ if (error instanceof Error && error.message.includes('file(s) failed')) {
204
+ throw error;
205
+ }
206
+ throw new Error(`Compilation failed: ${getErrorMessage(error)}`);
207
+ }
208
+ }
209
+ /**
210
+ * Compile a workflow file to Inngest function code with per-node step.run().
211
+ */
212
+ export async function compileInngestTarget(input, options) {
213
+ const filePath = path.resolve(input);
214
+ if (!fs.existsSync(filePath)) {
215
+ throw new Error(`File not found: ${filePath}`);
216
+ }
217
+ logger.section('Compiling to Inngest');
218
+ logger.info(`Input: ${filePath}`);
219
+ logger.info(`Target: Inngest (per-node step.run)`);
220
+ logger.newline();
221
+ const parser = new AnnotationParser();
222
+ const parseResult = parser.parse(filePath);
223
+ if (parseResult.errors.length > 0) {
224
+ const msgs = parseResult.errors.map((e) => ` ${e}`).join('\n');
225
+ throw new Error(`Parse errors:\n${msgs}`);
226
+ }
227
+ if (parseResult.workflows.length === 0) {
228
+ throw new Error('No workflows found in file');
229
+ }
230
+ const workflow = options.workflowName
231
+ ? parseResult.workflows.find((w) => w.name === options.workflowName || w.functionName === options.workflowName)
232
+ : parseResult.workflows[0];
233
+ if (!workflow) {
234
+ const available = parseResult.workflows.map((w) => w.name).join(', ');
235
+ throw new Error(`Workflow "${options.workflowName}" not found. Available: ${available}`);
236
+ }
237
+ const allNodeTypes = [...(workflow.nodeTypes || [])];
238
+ // CLI overrides for workflow options
239
+ if (options.cron) {
240
+ workflow.options = workflow.options || {};
241
+ workflow.options.trigger = { ...workflow.options.trigger, cron: options.cron };
242
+ }
243
+ if (options.retries !== undefined) {
244
+ workflow.options = workflow.options || {};
245
+ workflow.options.retries = options.retries;
246
+ }
247
+ if (options.timeout) {
248
+ workflow.options = workflow.options || {};
249
+ workflow.options.timeout = options.timeout;
250
+ }
251
+ const code = generateInngestFunction(workflow, allNodeTypes, {
252
+ production: options.production,
253
+ typedEvents: options.typedEvents,
254
+ serveHandler: options.serve,
255
+ framework: options.framework,
256
+ });
257
+ const outputPath = filePath.replace(/\.ts$/, '.inngest.ts');
258
+ if (options.dryRun) {
259
+ logger.success(`Would generate: ${outputPath}`);
260
+ logger.newline();
261
+ logger.section('Preview');
262
+ const lines = code.split('\n');
263
+ const preview = lines.slice(0, 50).join('\n');
264
+ logger.log(preview);
265
+ if (lines.length > 50) {
266
+ logger.info(`... (${lines.length - 50} more lines)`);
267
+ }
268
+ }
269
+ else {
270
+ fs.writeFileSync(outputPath, code, 'utf8');
271
+ logger.success(`Compiled: ${outputPath}`);
272
+ }
273
+ logger.newline();
274
+ logger.section('Summary');
275
+ logger.success(`Workflow "${workflow.name}" compiled to Inngest function`);
276
+ logger.info('Each node is wrapped in step.run() for per-node durability');
277
+ }
278
+ //# sourceMappingURL=compile.js.map
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Create command - scaffolds workflows and nodes from templates
3
+ */
4
+ export interface CreateWorkflowOptions {
5
+ line?: number;
6
+ async?: boolean;
7
+ preview?: boolean;
8
+ provider?: string;
9
+ model?: string;
10
+ config?: string;
11
+ name?: string;
12
+ nodes?: string;
13
+ input?: string;
14
+ output?: string;
15
+ }
16
+ export interface CreateNodeOptions {
17
+ line?: number;
18
+ preview?: boolean;
19
+ config?: string;
20
+ strategy?: string;
21
+ }
22
+ /**
23
+ * Create a workflow from a template
24
+ */
25
+ export declare function createWorkflowCommand(template: string, file: string, options?: CreateWorkflowOptions): Promise<void>;
26
+ /**
27
+ * Create a node type from a template
28
+ * Uses processor template by default
29
+ */
30
+ export declare function createNodeCommand(name: string, file: string, options?: CreateNodeOptions & {
31
+ template?: string;
32
+ }): Promise<void>;
33
+ //# sourceMappingURL=create.d.ts.map
@@ -0,0 +1,147 @@
1
+ /* eslint-disable no-console */
2
+ /**
3
+ * Create command - scaffolds workflows and nodes from templates
4
+ */
5
+ import * as fs from 'fs';
6
+ import * as path from 'path';
7
+ import { getWorkflowTemplate, getNodeTemplate, toCamelCase } from '../templates/index.js';
8
+ import { logger } from '../utils/logger.js';
9
+ import { getErrorMessage } from '../../utils/error-utils.js';
10
+ /**
11
+ * Insert content at a specific line or append to end of file
12
+ */
13
+ function insertIntoFile(filePath, content, line) {
14
+ // Create file if it doesn't exist
15
+ if (!fs.existsSync(filePath)) {
16
+ const dir = path.dirname(filePath);
17
+ if (!fs.existsSync(dir)) {
18
+ fs.mkdirSync(dir, { recursive: true });
19
+ }
20
+ fs.writeFileSync(filePath, content + '\n');
21
+ return;
22
+ }
23
+ const existingContent = fs.readFileSync(filePath, 'utf8');
24
+ const lines = existingContent.split('\n');
25
+ if (line !== undefined && line > 0) {
26
+ // Insert AFTER specific line (1-indexed)
27
+ // Line 3 means insert after line 3, so at index 3
28
+ const insertIndex = Math.min(line, lines.length);
29
+ lines.splice(insertIndex, 0, content);
30
+ }
31
+ else {
32
+ // Append to end
33
+ lines.push('', content);
34
+ }
35
+ fs.writeFileSync(filePath, lines.join('\n'));
36
+ }
37
+ /**
38
+ * Create a workflow from a template
39
+ */
40
+ export async function createWorkflowCommand(template, file, options = {}) {
41
+ const { line, async: isAsync = false, preview = false, provider, model, config: configJson, } = options;
42
+ const templateDef = getWorkflowTemplate(template);
43
+ if (!templateDef) {
44
+ logger.error(`Unknown workflow template: ${template}`);
45
+ logger.info("Run 'flow-weaver templates' to see available templates");
46
+ process.exit(1);
47
+ }
48
+ // Resolve to absolute path
49
+ const filePath = path.resolve(file);
50
+ // Derive workflow name from filename (or use --name override)
51
+ const baseName = path.basename(filePath, path.extname(filePath));
52
+ const workflowName = options.name || toCamelCase(baseName);
53
+ // Build config object from options
54
+ const config = {};
55
+ if (provider)
56
+ config.provider = provider;
57
+ if (model)
58
+ config.model = model;
59
+ if (options.nodes)
60
+ config.nodes = options.nodes.split(',').map((n) => n.trim());
61
+ if (options.input)
62
+ config.input = options.input;
63
+ if (options.output)
64
+ config.output = options.output;
65
+ if (configJson) {
66
+ try {
67
+ Object.assign(config, JSON.parse(configJson));
68
+ }
69
+ catch {
70
+ logger.error('Invalid --config JSON');
71
+ process.exit(1);
72
+ }
73
+ }
74
+ // Generate the template code
75
+ const code = templateDef.generate({
76
+ workflowName,
77
+ async: isAsync,
78
+ config: Object.keys(config).length > 0 ? config : undefined,
79
+ });
80
+ // Preview mode: just output the code
81
+ if (preview) {
82
+ console.log(code);
83
+ return;
84
+ }
85
+ try {
86
+ insertIntoFile(filePath, code, line);
87
+ logger.success(`Created ${templateDef.name} workflow in ${file}`);
88
+ if (line) {
89
+ logger.info(` Inserted at line ${line}`);
90
+ }
91
+ logger.info(` Workflow function: ${workflowName}`);
92
+ }
93
+ catch (error) {
94
+ logger.error(`Failed to create workflow: ${getErrorMessage(error)}`);
95
+ process.exit(1);
96
+ }
97
+ }
98
+ /**
99
+ * Create a node type from a template
100
+ * Uses processor template by default
101
+ */
102
+ export async function createNodeCommand(name, file, options = {}) {
103
+ const { line, template = 'processor', preview = false, strategy, config: configJson } = options;
104
+ const templateDef = getNodeTemplate(template);
105
+ if (!templateDef) {
106
+ logger.error(`Unknown node template: ${template}`);
107
+ logger.info("Run 'flow-weaver templates' to see available templates");
108
+ process.exit(1);
109
+ }
110
+ // Resolve to absolute path
111
+ const filePath = path.resolve(file);
112
+ // Build config object from options
113
+ const config = {};
114
+ if (strategy)
115
+ config.strategy = strategy;
116
+ if (configJson) {
117
+ try {
118
+ Object.assign(config, JSON.parse(configJson));
119
+ }
120
+ catch {
121
+ logger.error('Invalid --config JSON');
122
+ process.exit(1);
123
+ }
124
+ }
125
+ // Generate the template code with provided name and optional config
126
+ const nodeName = toCamelCase(name);
127
+ const nodeConfig = Object.keys(config).length > 0 ? config : undefined;
128
+ const code = templateDef.generate(nodeName, nodeConfig);
129
+ // Preview mode: just output the code
130
+ if (preview) {
131
+ console.log(code);
132
+ return;
133
+ }
134
+ try {
135
+ insertIntoFile(filePath, code, line);
136
+ logger.success(`Created ${templateDef.name} node in ${file}`);
137
+ if (line) {
138
+ logger.info(` Inserted at line ${line}`);
139
+ }
140
+ logger.info(` Node function: ${nodeName}`);
141
+ }
142
+ catch (error) {
143
+ logger.error(`Failed to create node: ${getErrorMessage(error)}`);
144
+ process.exit(1);
145
+ }
146
+ }
147
+ //# sourceMappingURL=create.js.map
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Describe command - outputs workflow structure in LLM-friendly formats
3
+ */
4
+ import type { TWorkflowAST, TNodeInstanceAST, TNodeTypeAST } from '../../ast/types.js';
5
+ export interface DescribeOptions {
6
+ format?: 'json' | 'text' | 'mermaid' | 'paths';
7
+ node?: string;
8
+ workflowName?: string;
9
+ compile?: boolean;
10
+ }
11
+ export interface NodeInfo {
12
+ id: string;
13
+ type: string;
14
+ inputs: string[];
15
+ outputs: string[];
16
+ }
17
+ export interface ConnectionInfo {
18
+ from: string;
19
+ to: string;
20
+ }
21
+ export interface DescribeOutput {
22
+ name: string;
23
+ description: string | null;
24
+ nodes: NodeInfo[];
25
+ connections: ConnectionInfo[];
26
+ graph: string;
27
+ validation: {
28
+ valid: boolean;
29
+ errors: string[];
30
+ warnings: string[];
31
+ };
32
+ }
33
+ export interface FocusedNodeOutput {
34
+ focusNode: string;
35
+ node: NodeInfo;
36
+ incoming: ConnectionInfo[];
37
+ outgoing: ConnectionInfo[];
38
+ validation: {
39
+ valid: boolean;
40
+ errors: string[];
41
+ warnings: string[];
42
+ };
43
+ }
44
+ export declare function buildNodeInfo(instance: TNodeInstanceAST, nodeType: TNodeTypeAST | undefined): NodeInfo;
45
+ /**
46
+ * Enumerate all Start-to-Exit paths via DFS.
47
+ * Returns an array of path arrays (each path is string[] including Start and Exit).
48
+ */
49
+ export declare function enumeratePaths(ast: TWorkflowAST): string[][];
50
+ export declare function buildGraph(ast: TWorkflowAST): string;
51
+ export declare function formatPaths(ast: TWorkflowAST): string;
52
+ export declare function generateMermaid(ast: TWorkflowAST): string;
53
+ /**
54
+ * Pure function to describe a workflow - no I/O, returns data
55
+ */
56
+ export declare function describeWorkflow(ast: TWorkflowAST, options?: {
57
+ node?: string;
58
+ }): DescribeOutput | FocusedNodeOutput;
59
+ /**
60
+ * Generate structured human-readable text output
61
+ */
62
+ export declare function formatTextOutput(ast: TWorkflowAST, output: DescribeOutput | FocusedNodeOutput): string;
63
+ /**
64
+ * Format the describe output based on format option
65
+ */
66
+ export declare function formatDescribeOutput(ast: TWorkflowAST, output: DescribeOutput | FocusedNodeOutput, format: 'json' | 'text' | 'mermaid' | 'paths'): string;
67
+ export declare function describeCommand(input: string, options?: DescribeOptions): Promise<void>;
68
+ //# sourceMappingURL=describe.d.ts.map