@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,210 @@
1
+ import type { TBranchingStrategy, TConnectionAST, TDataType, TExecuteWhen, TImportDeclaration, TImportSpecifier, TNodeTypeAST, TNodeInstanceAST, TPortDefinition, TPortReference, TSerializableValue, TWorkflowAST } from "./types.js";
2
+ /**
3
+ * Fluent builder for constructing TWorkflowAST programmatically
4
+ *
5
+ * @example
6
+ * ```typescript
7
+ * const workflow = new WorkflowBuilder('myWorkflow', 'myWorkflow', './workflow.ts')
8
+ * .description('My workflow description')
9
+ * .addNodeType(nodeType)
10
+ * .addNodeInstance(instance)
11
+ * .addConnection(connection)
12
+ * .build();
13
+ * ```
14
+ */
15
+ export declare class WorkflowBuilder {
16
+ private ast;
17
+ /**
18
+ * Create a new workflow builder
19
+ * @param name - Internal workflow name
20
+ * @param functionName - Exported function name
21
+ * @param sourceFile - Source file path
22
+ */
23
+ constructor(name: string, functionName: string, sourceFile: string);
24
+ description(desc: string): this;
25
+ generatedFile(path: string): this;
26
+ addNodeType(nodeType: TNodeTypeAST): this;
27
+ addNodeInstance(instance: TNodeInstanceAST): this;
28
+ addConnection(connection: TConnectionAST): this;
29
+ addScope(scopeName: string, instanceIds: string[]): this;
30
+ addImport(importDecl: TImportDeclaration): this;
31
+ metadata(key: string, value: unknown): this;
32
+ /** Build and return the final TWorkflowAST */
33
+ build(): TWorkflowAST;
34
+ }
35
+ /**
36
+ * Fluent builder for constructing TNodeTypeAST programmatically
37
+ *
38
+ * NodeTypes are templates that can be instantiated multiple times in a workflow.
39
+ *
40
+ * @example
41
+ * ```typescript
42
+ * const addNode = new NodeTypeBuilder('Add', 'add')
43
+ * .label('Add Numbers')
44
+ * .input('a', { dataType: 'NUMBER' })
45
+ * .input('b', { dataType: 'NUMBER' })
46
+ * .output('sum', { dataType: 'NUMBER' })
47
+ * .successPort(true)
48
+ * .build();
49
+ * ```
50
+ */
51
+ export declare class NodeTypeBuilder {
52
+ private nodeType;
53
+ /**
54
+ * Create a new node type builder
55
+ * @param name - Unique node type name
56
+ * @param functionName - Name of the implementing function
57
+ */
58
+ constructor(name: string, functionName: string);
59
+ label(label: string): this;
60
+ description(desc: string): this;
61
+ scope(scopeName: string): this;
62
+ input(name: string, definition: TPortDefinition): this;
63
+ output(name: string, definition: TPortDefinition): this;
64
+ successPort(enabled?: boolean): this;
65
+ failurePort(enabled?: boolean): this;
66
+ executeWhen(when: TExecuteWhen): this;
67
+ branchingStrategy(strategy: TBranchingStrategy, field?: string): this;
68
+ defaultConfig(config: import("./types.js").TNodeTypeDefaultConfig): this;
69
+ metadata(key: string, value: unknown): this;
70
+ /** Build and return the final TNodeTypeAST */
71
+ build(): TNodeTypeAST;
72
+ }
73
+ /**
74
+ * Fluent builder for constructing TNodeInstanceAST programmatically
75
+ *
76
+ * NodeInstances are the actual nodes placed in a workflow, referencing a NodeType template.
77
+ *
78
+ * @example
79
+ * ```typescript
80
+ * const adder1 = new NodeInstanceBuilder('adder1', 'Add')
81
+ * .config({ pullExecution: true })
82
+ * .build();
83
+ * ```
84
+ */
85
+ export declare class NodeInstanceBuilder {
86
+ private instance;
87
+ /**
88
+ * Create a new node instance builder
89
+ * @param id - Unique instance ID within the workflow
90
+ * @param nodeType - Name of the NodeType this instance references
91
+ */
92
+ constructor(id: string, nodeType: string);
93
+ config(configData: import("./types.js").TNodeInstanceConfig): this;
94
+ parentScope(scope: string): this;
95
+ metadata(key: string, value: unknown): this;
96
+ /** Build and return the final TNodeInstanceAST */
97
+ build(): TNodeInstanceAST;
98
+ }
99
+ /**
100
+ * Fluent builder for constructing TConnectionAST programmatically
101
+ *
102
+ * @example
103
+ * ```typescript
104
+ * const conn = new ConnectionBuilder(
105
+ * { node: 'Start', port: 'x' },
106
+ * { node: 'adder1', port: 'a' }
107
+ * )
108
+ * .dataFlow(true)
109
+ * .build();
110
+ * ```
111
+ */
112
+ export declare class ConnectionBuilder {
113
+ private connection;
114
+ /**
115
+ * Create a new connection builder
116
+ * @param from - Source port reference
117
+ * @param to - Target port reference
118
+ */
119
+ constructor(from: TPortReference, to: TPortReference);
120
+ controlFlow(isControlFlow?: boolean): this;
121
+ dataFlow(isDataFlow?: boolean): this;
122
+ metadata(key: string, value: unknown): this;
123
+ /** Build and return the final TConnectionAST */
124
+ build(): TConnectionAST;
125
+ }
126
+ /**
127
+ * Helper function to create a PortReference
128
+ * @param node - Node ID
129
+ * @param port - Port name
130
+ * @returns TPortReference object
131
+ */
132
+ export declare function portRef(node: string, port: string): TPortReference;
133
+ /**
134
+ * Helper function to create a PortDefinition
135
+ * @param dataType - The data type of the port
136
+ * @param options - Optional port configuration
137
+ * @returns TPortDefinition object
138
+ */
139
+ export declare function port(dataType: TDataType, options?: {
140
+ optional?: boolean;
141
+ default?: TSerializableValue;
142
+ label?: string;
143
+ description?: string;
144
+ }): TPortDefinition;
145
+ /**
146
+ * Helper function to create an ImportDeclaration
147
+ * @param specifiers - Import specifiers (named, default, or namespace)
148
+ * @param source - Module path to import from
149
+ * @param importKind - Whether this is a value or type import
150
+ * @returns TImportDeclaration object
151
+ */
152
+ export declare function importDecl(specifiers: TImportSpecifier[], source: string, importKind?: "value" | "type"): TImportDeclaration;
153
+ /**
154
+ * Helper function to create a named import specifier
155
+ * @param name - Name of the imported symbol
156
+ * @param alias - Optional local alias
157
+ * @returns TImportSpecifier for named import
158
+ */
159
+ export declare function namedImport(name: string, alias?: string): TImportSpecifier;
160
+ /**
161
+ * Helper function to create a default import specifier
162
+ * @param name - Local name for the default import
163
+ * @returns TImportSpecifier for default import
164
+ */
165
+ export declare function defaultImport(name: string): TImportSpecifier;
166
+ /**
167
+ * Helper function to create a namespace import specifier
168
+ * @param name - Local name for the namespace
169
+ * @returns TImportSpecifier for namespace import
170
+ */
171
+ export declare function namespaceImport(name: string): TImportSpecifier;
172
+ /**
173
+ * Helper function to create a WorkflowBuilder
174
+ * @param name - Internal workflow name
175
+ * @param functionName - Exported function name
176
+ * @param sourceFile - Source file path
177
+ * @returns New WorkflowBuilder instance
178
+ */
179
+ export declare function workflow(name: string, functionName: string, sourceFile: string): WorkflowBuilder;
180
+ /**
181
+ * Helper function to create a NodeTypeBuilder
182
+ * @param name - Node type name
183
+ * @param functionName - Implementing function name
184
+ * @returns New NodeTypeBuilder instance
185
+ */
186
+ export declare function nodeType(name: string, functionName: string): NodeTypeBuilder;
187
+ /**
188
+ * Helper function to create a NodeInstanceBuilder
189
+ * @param id - Unique instance ID
190
+ * @param nodeTypeName - Name of the NodeType to instantiate
191
+ * @returns New NodeInstanceBuilder instance
192
+ */
193
+ export declare function nodeInstance(id: string, nodeTypeName: string): NodeInstanceBuilder;
194
+ /**
195
+ * Helper function to create a ConnectionBuilder
196
+ * @param from - Source port reference
197
+ * @param to - Target port reference
198
+ * @returns New ConnectionBuilder instance
199
+ */
200
+ export declare function connection(from: TPortReference, to: TPortReference): ConnectionBuilder;
201
+ /**
202
+ * Convenience function to create a TConnectionAST directly
203
+ * @param fromNode - Source node ID
204
+ * @param fromPort - Source port name
205
+ * @param toNode - Target node ID
206
+ * @param toPort - Target port name
207
+ * @returns Built ConnectionAST
208
+ */
209
+ export declare function connect(fromNode: string, fromPort: string, toNode: string, toPort: string): TConnectionAST;
210
+ //# sourceMappingURL=builder.d.ts.map
@@ -0,0 +1,395 @@
1
+ import { EXECUTION_STRATEGIES } from "../constants.js";
2
+ /**
3
+ * Fluent builder for constructing TWorkflowAST programmatically
4
+ *
5
+ * @example
6
+ * ```typescript
7
+ * const workflow = new WorkflowBuilder('myWorkflow', 'myWorkflow', './workflow.ts')
8
+ * .description('My workflow description')
9
+ * .addNodeType(nodeType)
10
+ * .addNodeInstance(instance)
11
+ * .addConnection(connection)
12
+ * .build();
13
+ * ```
14
+ */
15
+ export class WorkflowBuilder {
16
+ ast;
17
+ /**
18
+ * Create a new workflow builder
19
+ * @param name - Internal workflow name
20
+ * @param functionName - Exported function name
21
+ * @param sourceFile - Source file path
22
+ */
23
+ constructor(name, functionName, sourceFile) {
24
+ this.ast = {
25
+ type: "Workflow",
26
+ sourceFile,
27
+ name,
28
+ functionName,
29
+ nodeTypes: [],
30
+ instances: [],
31
+ connections: [],
32
+ startPorts: {},
33
+ exitPorts: {},
34
+ imports: [],
35
+ };
36
+ }
37
+ description(desc) {
38
+ this.ast.description = desc;
39
+ return this;
40
+ }
41
+ generatedFile(path) {
42
+ this.ast.generatedFile = path;
43
+ return this;
44
+ }
45
+ addNodeType(nodeType) {
46
+ this.ast.nodeTypes.push(nodeType);
47
+ return this;
48
+ }
49
+ addNodeInstance(instance) {
50
+ this.ast.instances.push(instance);
51
+ return this;
52
+ }
53
+ addConnection(connection) {
54
+ this.ast.connections.push(connection);
55
+ return this;
56
+ }
57
+ addScope(scopeName, instanceIds) {
58
+ if (!this.ast.scopes) {
59
+ this.ast.scopes = {};
60
+ }
61
+ this.ast.scopes[scopeName] = instanceIds;
62
+ return this;
63
+ }
64
+ addImport(importDecl) {
65
+ this.ast.imports.push(importDecl);
66
+ return this;
67
+ }
68
+ metadata(key, value) {
69
+ if (!this.ast.metadata) {
70
+ this.ast.metadata = {};
71
+ }
72
+ this.ast.metadata[key] = value;
73
+ return this;
74
+ }
75
+ /** Build and return the final TWorkflowAST */
76
+ build() {
77
+ return this.ast;
78
+ }
79
+ }
80
+ /**
81
+ * Fluent builder for constructing TNodeTypeAST programmatically
82
+ *
83
+ * NodeTypes are templates that can be instantiated multiple times in a workflow.
84
+ *
85
+ * @example
86
+ * ```typescript
87
+ * const addNode = new NodeTypeBuilder('Add', 'add')
88
+ * .label('Add Numbers')
89
+ * .input('a', { dataType: 'NUMBER' })
90
+ * .input('b', { dataType: 'NUMBER' })
91
+ * .output('sum', { dataType: 'NUMBER' })
92
+ * .successPort(true)
93
+ * .build();
94
+ * ```
95
+ */
96
+ export class NodeTypeBuilder {
97
+ nodeType;
98
+ /**
99
+ * Create a new node type builder
100
+ * @param name - Unique node type name
101
+ * @param functionName - Name of the implementing function
102
+ */
103
+ constructor(name, functionName) {
104
+ this.nodeType = {
105
+ type: "NodeType",
106
+ name,
107
+ functionName,
108
+ inputs: {},
109
+ outputs: {},
110
+ hasSuccessPort: false,
111
+ hasFailurePort: false,
112
+ executeWhen: EXECUTION_STRATEGIES.CONJUNCTION,
113
+ isAsync: false,
114
+ };
115
+ }
116
+ label(label) {
117
+ this.nodeType.label = label;
118
+ return this;
119
+ }
120
+ description(desc) {
121
+ this.nodeType.description = desc;
122
+ return this;
123
+ }
124
+ scope(scopeName) {
125
+ this.nodeType.scope = scopeName;
126
+ return this;
127
+ }
128
+ input(name, definition) {
129
+ this.nodeType.inputs[name] = definition;
130
+ return this;
131
+ }
132
+ output(name, definition) {
133
+ this.nodeType.outputs[name] = definition;
134
+ return this;
135
+ }
136
+ successPort(enabled = true) {
137
+ this.nodeType.hasSuccessPort = enabled;
138
+ return this;
139
+ }
140
+ failurePort(enabled = true) {
141
+ this.nodeType.hasFailurePort = enabled;
142
+ return this;
143
+ }
144
+ executeWhen(when) {
145
+ this.nodeType.executeWhen = when;
146
+ return this;
147
+ }
148
+ branchingStrategy(strategy, field) {
149
+ this.nodeType.branchingStrategy = strategy;
150
+ if (field) {
151
+ this.nodeType.branchField = field;
152
+ }
153
+ return this;
154
+ }
155
+ defaultConfig(config) {
156
+ this.nodeType.defaultConfig = config;
157
+ return this;
158
+ }
159
+ metadata(key, value) {
160
+ if (!this.nodeType.metadata) {
161
+ this.nodeType.metadata = {};
162
+ }
163
+ this.nodeType.metadata[key] = value;
164
+ return this;
165
+ }
166
+ /** Build and return the final TNodeTypeAST */
167
+ build() {
168
+ return this.nodeType;
169
+ }
170
+ }
171
+ /**
172
+ * Fluent builder for constructing TNodeInstanceAST programmatically
173
+ *
174
+ * NodeInstances are the actual nodes placed in a workflow, referencing a NodeType template.
175
+ *
176
+ * @example
177
+ * ```typescript
178
+ * const adder1 = new NodeInstanceBuilder('adder1', 'Add')
179
+ * .config({ pullExecution: true })
180
+ * .build();
181
+ * ```
182
+ */
183
+ export class NodeInstanceBuilder {
184
+ instance;
185
+ /**
186
+ * Create a new node instance builder
187
+ * @param id - Unique instance ID within the workflow
188
+ * @param nodeType - Name of the NodeType this instance references
189
+ */
190
+ constructor(id, nodeType) {
191
+ this.instance = {
192
+ type: "NodeInstance",
193
+ id,
194
+ nodeType,
195
+ };
196
+ }
197
+ config(configData) {
198
+ this.instance.config = configData;
199
+ return this;
200
+ }
201
+ parentScope(scope) {
202
+ // scope format is "parentNodeId.scopeName"
203
+ const dotIndex = scope.indexOf('.');
204
+ const parentNodeName = dotIndex > 0 ? scope.substring(0, dotIndex) : scope;
205
+ const scopeName = dotIndex > 0 ? scope.substring(dotIndex + 1) : '';
206
+ this.instance.parent = { id: parentNodeName, scope: scopeName };
207
+ return this;
208
+ }
209
+ metadata(key, value) {
210
+ if (!this.instance.metadata) {
211
+ this.instance.metadata = {};
212
+ }
213
+ this.instance.metadata[key] = value;
214
+ return this;
215
+ }
216
+ /** Build and return the final TNodeInstanceAST */
217
+ build() {
218
+ return this.instance;
219
+ }
220
+ }
221
+ /**
222
+ * Fluent builder for constructing TConnectionAST programmatically
223
+ *
224
+ * @example
225
+ * ```typescript
226
+ * const conn = new ConnectionBuilder(
227
+ * { node: 'Start', port: 'x' },
228
+ * { node: 'adder1', port: 'a' }
229
+ * )
230
+ * .dataFlow(true)
231
+ * .build();
232
+ * ```
233
+ */
234
+ export class ConnectionBuilder {
235
+ connection;
236
+ /**
237
+ * Create a new connection builder
238
+ * @param from - Source port reference
239
+ * @param to - Target port reference
240
+ */
241
+ constructor(from, to) {
242
+ this.connection = {
243
+ type: "Connection",
244
+ from,
245
+ to,
246
+ };
247
+ }
248
+ controlFlow(isControlFlow = true) {
249
+ if (!this.connection.metadata) {
250
+ this.connection.metadata = {};
251
+ }
252
+ this.connection.metadata.isControlFlow = isControlFlow;
253
+ return this;
254
+ }
255
+ dataFlow(isDataFlow = true) {
256
+ if (!this.connection.metadata) {
257
+ this.connection.metadata = {};
258
+ }
259
+ this.connection.metadata.isDataFlow = isDataFlow;
260
+ return this;
261
+ }
262
+ metadata(key, value) {
263
+ if (!this.connection.metadata) {
264
+ this.connection.metadata = {};
265
+ }
266
+ this.connection.metadata[key] = value;
267
+ return this;
268
+ }
269
+ /** Build and return the final TConnectionAST */
270
+ build() {
271
+ return this.connection;
272
+ }
273
+ }
274
+ /**
275
+ * Helper function to create a PortReference
276
+ * @param node - Node ID
277
+ * @param port - Port name
278
+ * @returns TPortReference object
279
+ */
280
+ export function portRef(node, port) {
281
+ return { node, port };
282
+ }
283
+ /**
284
+ * Helper function to create a PortDefinition
285
+ * @param dataType - The data type of the port
286
+ * @param options - Optional port configuration
287
+ * @returns TPortDefinition object
288
+ */
289
+ export function port(dataType, options) {
290
+ return {
291
+ dataType,
292
+ ...options,
293
+ };
294
+ }
295
+ /**
296
+ * Helper function to create an ImportDeclaration
297
+ * @param specifiers - Import specifiers (named, default, or namespace)
298
+ * @param source - Module path to import from
299
+ * @param importKind - Whether this is a value or type import
300
+ * @returns TImportDeclaration object
301
+ */
302
+ export function importDecl(specifiers, source, importKind = "value") {
303
+ return {
304
+ type: "Import",
305
+ specifiers,
306
+ source,
307
+ importKind,
308
+ };
309
+ }
310
+ /**
311
+ * Helper function to create a named import specifier
312
+ * @param name - Name of the imported symbol
313
+ * @param alias - Optional local alias
314
+ * @returns TImportSpecifier for named import
315
+ */
316
+ export function namedImport(name, alias) {
317
+ return {
318
+ imported: name,
319
+ local: alias || name,
320
+ kind: "named",
321
+ };
322
+ }
323
+ /**
324
+ * Helper function to create a default import specifier
325
+ * @param name - Local name for the default import
326
+ * @returns TImportSpecifier for default import
327
+ */
328
+ export function defaultImport(name) {
329
+ return {
330
+ imported: "default",
331
+ local: name,
332
+ kind: "default",
333
+ };
334
+ }
335
+ /**
336
+ * Helper function to create a namespace import specifier
337
+ * @param name - Local name for the namespace
338
+ * @returns TImportSpecifier for namespace import
339
+ */
340
+ export function namespaceImport(name) {
341
+ return {
342
+ imported: "*",
343
+ local: name,
344
+ kind: "namespace",
345
+ };
346
+ }
347
+ /**
348
+ * Helper function to create a WorkflowBuilder
349
+ * @param name - Internal workflow name
350
+ * @param functionName - Exported function name
351
+ * @param sourceFile - Source file path
352
+ * @returns New WorkflowBuilder instance
353
+ */
354
+ export function workflow(name, functionName, sourceFile) {
355
+ return new WorkflowBuilder(name, functionName, sourceFile);
356
+ }
357
+ /**
358
+ * Helper function to create a NodeTypeBuilder
359
+ * @param name - Node type name
360
+ * @param functionName - Implementing function name
361
+ * @returns New NodeTypeBuilder instance
362
+ */
363
+ export function nodeType(name, functionName) {
364
+ return new NodeTypeBuilder(name, functionName);
365
+ }
366
+ /**
367
+ * Helper function to create a NodeInstanceBuilder
368
+ * @param id - Unique instance ID
369
+ * @param nodeTypeName - Name of the NodeType to instantiate
370
+ * @returns New NodeInstanceBuilder instance
371
+ */
372
+ export function nodeInstance(id, nodeTypeName) {
373
+ return new NodeInstanceBuilder(id, nodeTypeName);
374
+ }
375
+ /**
376
+ * Helper function to create a ConnectionBuilder
377
+ * @param from - Source port reference
378
+ * @param to - Target port reference
379
+ * @returns New ConnectionBuilder instance
380
+ */
381
+ export function connection(from, to) {
382
+ return new ConnectionBuilder(from, to);
383
+ }
384
+ /**
385
+ * Convenience function to create a TConnectionAST directly
386
+ * @param fromNode - Source node ID
387
+ * @param fromPort - Source port name
388
+ * @param toNode - Target node ID
389
+ * @param toPort - Target port name
390
+ * @returns Built ConnectionAST
391
+ */
392
+ export function connect(fromNode, fromPort, toNode, toPort) {
393
+ return connection(portRef(fromNode, fromPort), portRef(toNode, toPort)).build();
394
+ }
395
+ //# sourceMappingURL=builder.js.map
@@ -0,0 +1,5 @@
1
+ export * from "./builder.js";
2
+ export * from "./types.js";
3
+ export * from "./workflow-utils.js";
4
+ export * from "./serialization.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,5 @@
1
+ export * from "./builder.js";
2
+ export * from "./types.js";
3
+ export * from "./workflow-utils.js";
4
+ export * from "./serialization.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,6 @@
1
+ import type { TWorkflowAST } from "./types.js";
2
+ export declare function saveAST(ast: TWorkflowAST, filePath: string): Promise<void>;
3
+ export declare function loadAST(filePath: string): Promise<TWorkflowAST>;
4
+ export declare function saveASTAlongside(ast: TWorkflowAST): Promise<string>;
5
+ export declare function loadASTAlongside(sourceFile: string): Promise<TWorkflowAST>;
6
+ //# sourceMappingURL=serialization-node.d.ts.map
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Node.js-only AST file I/O functions.
3
+ * NOT exported from /ast - use direct import if needed.
4
+ */
5
+ import * as fs from "node:fs/promises";
6
+ import * as path from "node:path";
7
+ import { serializeAST, deserializeAST } from "./serialization.js";
8
+ export async function saveAST(ast, filePath) {
9
+ const json = serializeAST(ast, true);
10
+ await fs.writeFile(filePath, json, "utf-8");
11
+ }
12
+ export async function loadAST(filePath) {
13
+ const json = await fs.readFile(filePath, "utf-8");
14
+ return deserializeAST(json);
15
+ }
16
+ export async function saveASTAlongside(ast) {
17
+ const sourceFile = ast.sourceFile;
18
+ const dir = path.dirname(sourceFile);
19
+ const basename = path.basename(sourceFile, path.extname(sourceFile));
20
+ const astFile = path.join(dir, `${basename}.ast.json`);
21
+ await saveAST(ast, astFile);
22
+ return astFile;
23
+ }
24
+ export async function loadASTAlongside(sourceFile) {
25
+ const dir = path.dirname(sourceFile);
26
+ const basename = path.basename(sourceFile, path.extname(sourceFile));
27
+ const astFile = path.join(dir, `${basename}.ast.json`);
28
+ return loadAST(astFile);
29
+ }
30
+ //# sourceMappingURL=serialization-node.js.map
@@ -0,0 +1,43 @@
1
+ import type { TWorkflowAST } from "./types.js";
2
+ /**
3
+ * Serializes a workflow AST to a JSON string.
4
+ *
5
+ * @param ast - The workflow AST to serialize.
6
+ * @param pretty - If true, formats the JSON with 2-space indentation. Defaults to true.
7
+ * @returns The JSON string representation of the AST.
8
+ */
9
+ export declare function serializeAST(ast: TWorkflowAST, pretty?: boolean): string;
10
+ /**
11
+ * Deserializes a JSON string into a workflow AST.
12
+ * Validates that the root node type is "Workflow" before returning.
13
+ *
14
+ * @param json - The JSON string to parse.
15
+ * @returns The parsed workflow AST.
16
+ * @throws {Error} If the parsed object's type is not "Workflow".
17
+ */
18
+ export declare function deserializeAST(json: string): TWorkflowAST;
19
+ /**
20
+ * Converts a workflow AST into a human-readable text summary.
21
+ * Includes workflow metadata, imports, node types with their port counts
22
+ * and control flow ports, and all connections.
23
+ *
24
+ * @param ast - The workflow AST to convert.
25
+ * @returns A multi-line string describing the workflow structure.
26
+ */
27
+ export declare function astToString(ast: TWorkflowAST): string;
28
+ interface ASTValidationResult {
29
+ valid: boolean;
30
+ errors: string[];
31
+ }
32
+ /**
33
+ * Validates the structural integrity of a workflow AST object.
34
+ * Checks that the root is a "Workflow" type with required fields (name, functionName,
35
+ * sourceFile, instances, connections, imports), and validates each node and connection
36
+ * within the AST.
37
+ *
38
+ * @param ast - The unknown value to validate as a workflow AST.
39
+ * @returns A validation result containing a `valid` boolean and an array of error messages.
40
+ */
41
+ export declare function validateASTStructure(ast: unknown): ASTValidationResult;
42
+ export {};
43
+ //# sourceMappingURL=serialization.d.ts.map