@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,223 @@
1
+ /**
2
+ * Builder API for fluent workflow construction
3
+ * Provides chainable methods for creating workflows programmatically
4
+ */
5
+ import type { TWorkflowAST, TNodeTypeAST, TNodeInstanceAST, TPortDefinition, TPortReference } from "../ast/types.js";
6
+ /**
7
+ * Fluent builder for constructing workflows programmatically
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * const workflow = new WorkflowBuilder('myWorkflow')
12
+ * .addStartPort('input', { dataType: 'NUMBER' })
13
+ * .addExitPort('output', { dataType: 'NUMBER' })
14
+ * .addNodeType({
15
+ * type: 'NodeType',
16
+ * name: 'double',
17
+ * functionName: 'double',
18
+ * inputs: { x: { dataType: 'NUMBER' } },
19
+ * outputs: { result: { dataType: 'NUMBER' } },
20
+ * hasSuccessPort: true,
21
+ * hasFailurePort: true,
22
+ * executeWhen: 'CONJUNCTION'
23
+ * })
24
+ * .addNode('doubler', 'double')
25
+ * .connect('Start.input', 'doubler.x')
26
+ * .connect('doubler.result', 'Exit.output')
27
+ * .build();
28
+ * ```
29
+ */
30
+ export declare class WorkflowBuilder {
31
+ private ast;
32
+ /**
33
+ * Create a new workflow builder
34
+ *
35
+ * @param name - Workflow name (also used as functionName)
36
+ * @param sourceFile - Optional source file path
37
+ */
38
+ constructor(name: string, sourceFile?: string);
39
+ /**
40
+ * Add a Start port to the workflow
41
+ *
42
+ * @param name - Port name
43
+ * @param definition - Port definition
44
+ * @returns This builder for chaining
45
+ *
46
+ * @example
47
+ * ```typescript
48
+ * builder.addStartPort('userId', { dataType: 'STRING' });
49
+ * ```
50
+ */
51
+ addStartPort(name: string, definition: TPortDefinition): this;
52
+ /**
53
+ * Add an Exit port to the workflow
54
+ *
55
+ * @param name - Port name
56
+ * @param definition - Port definition
57
+ * @returns This builder for chaining
58
+ *
59
+ * @example
60
+ * ```typescript
61
+ * builder.addExitPort('result', { dataType: 'NUMBER' });
62
+ * ```
63
+ */
64
+ addExitPort(name: string, definition: TPortDefinition): this;
65
+ /**
66
+ * Add a node type definition
67
+ *
68
+ * @param nodeType - Complete node type definition
69
+ * @returns This builder for chaining
70
+ *
71
+ * @example
72
+ * ```typescript
73
+ * builder.addNodeType({
74
+ * type: 'NodeType',
75
+ * name: 'processor',
76
+ * functionName: 'process',
77
+ * inputs: { data: { dataType: 'ANY' } },
78
+ * outputs: { result: { dataType: 'ANY' } },
79
+ * hasSuccessPort: true,
80
+ * hasFailurePort: true,
81
+ * executeWhen: 'CONJUNCTION'
82
+ * });
83
+ * ```
84
+ */
85
+ addNodeType(nodeType: TNodeTypeAST): this;
86
+ /**
87
+ * Add a node instance
88
+ *
89
+ * @param id - Node instance ID
90
+ * @param nodeType - Node type (functionName)
91
+ * @param config - Optional node configuration
92
+ * @returns This builder for chaining
93
+ *
94
+ * @example
95
+ * ```typescript
96
+ * builder.addNode('processor1', 'process');
97
+ * builder.addNode('processor2', 'process', { x: 100, y: 200, label: 'Main' });
98
+ * ```
99
+ */
100
+ addNode(id: string, nodeType: string, config?: TNodeInstanceAST["config"]): this;
101
+ /**
102
+ * Connect two ports
103
+ *
104
+ * Supports multiple formats:
105
+ * - String format: "node1.port1", "node2.port2"
106
+ * - Object format: { node: "node1", port: "port1" }
107
+ *
108
+ * @param from - Source port reference
109
+ * @param to - Target port reference
110
+ * @returns This builder for chaining
111
+ *
112
+ * @example
113
+ * ```typescript
114
+ * builder.connect('Start.input', 'processor1.data');
115
+ * builder.connect({ node: 'processor1', port: 'result' }, 'Exit.output');
116
+ * ```
117
+ */
118
+ connect(from: string | TPortReference, to: string | TPortReference): this;
119
+ /**
120
+ * Create a scope and add nodes to it
121
+ *
122
+ * @param scopeName - Name of the scope
123
+ * @param nodeIds - Array of node IDs to include
124
+ * @returns This builder for chaining
125
+ *
126
+ * @example
127
+ * ```typescript
128
+ * builder.createScope('mainLoop', ['processor1', 'processor2']);
129
+ * ```
130
+ */
131
+ createScope(scopeName: string, nodeIds: string[]): this;
132
+ /**
133
+ * Set workflow description
134
+ *
135
+ * @param description - Workflow description
136
+ * @returns This builder for chaining
137
+ *
138
+ * @example
139
+ * ```typescript
140
+ * builder.setDescription('Processes user data and generates reports');
141
+ * ```
142
+ */
143
+ setDescription(description: string): this;
144
+ /**
145
+ * Validate the current workflow state
146
+ *
147
+ * @returns Validation result
148
+ *
149
+ * @example
150
+ * ```typescript
151
+ * const validation = builder.validate();
152
+ * if (!validation.valid) {
153
+ * console.error('Errors:', validation.errors);
154
+ * }
155
+ * ```
156
+ */
157
+ validate(): import("./validate.js").ValidationResult;
158
+ /**
159
+ * Build and return the final workflow
160
+ *
161
+ * Validates the workflow before returning. Throws if invalid.
162
+ *
163
+ * @returns Complete workflow AST
164
+ * @throws {Error} If workflow validation fails
165
+ *
166
+ * @example
167
+ * ```typescript
168
+ * const workflow = builder.build();
169
+ * ```
170
+ */
171
+ build(): TWorkflowAST;
172
+ /**
173
+ * Get the current workflow state without validation
174
+ *
175
+ * Use this to inspect the workflow during construction.
176
+ *
177
+ * @returns Current workflow AST
178
+ *
179
+ * @example
180
+ * ```typescript
181
+ * const current = builder.getWorkflow();
182
+ * console.log(`Nodes: ${current.instances.length}`);
183
+ * ```
184
+ */
185
+ getWorkflow(): TWorkflowAST;
186
+ }
187
+ /**
188
+ * Create a new workflow builder
189
+ *
190
+ * Convenience function for creating a builder instance.
191
+ *
192
+ * @param name - Workflow name
193
+ * @param sourceFile - Optional source file path
194
+ * @returns New WorkflowBuilder instance
195
+ *
196
+ * @example
197
+ * ```typescript
198
+ * const workflow = createWorkflow('myWorkflow')
199
+ * .addStartPort('input', { dataType: 'NUMBER' })
200
+ * .addExitPort('output', { dataType: 'NUMBER' })
201
+ * .build();
202
+ * ```
203
+ */
204
+ export declare function createWorkflow(name: string, sourceFile?: string): WorkflowBuilder;
205
+ /**
206
+ * Create a builder from an existing workflow AST
207
+ *
208
+ * Allows modifying existing workflows using the builder API.
209
+ *
210
+ * @param ast - Existing workflow AST
211
+ * @returns WorkflowBuilder initialized with the AST
212
+ *
213
+ * @example
214
+ * ```typescript
215
+ * const existingWorkflow = parseWorkflow(source);
216
+ * const modified = fromAST(existingWorkflow)
217
+ * .addNode('newNode', 'process')
218
+ * .connect('Start.input', 'newNode.data')
219
+ * .build();
220
+ * ```
221
+ */
222
+ export declare function fromAST(ast: TWorkflowAST): WorkflowBuilder;
223
+ //# sourceMappingURL=builder.d.ts.map
@@ -0,0 +1,345 @@
1
+ /**
2
+ * Builder API for fluent workflow construction
3
+ * Provides chainable methods for creating workflows programmatically
4
+ */
5
+ import { produce } from "immer";
6
+ import { validateWorkflow } from "./validate.js";
7
+ import { validatePortReference } from "./helpers.js";
8
+ /**
9
+ * Fluent builder for constructing workflows programmatically
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * const workflow = new WorkflowBuilder('myWorkflow')
14
+ * .addStartPort('input', { dataType: 'NUMBER' })
15
+ * .addExitPort('output', { dataType: 'NUMBER' })
16
+ * .addNodeType({
17
+ * type: 'NodeType',
18
+ * name: 'double',
19
+ * functionName: 'double',
20
+ * inputs: { x: { dataType: 'NUMBER' } },
21
+ * outputs: { result: { dataType: 'NUMBER' } },
22
+ * hasSuccessPort: true,
23
+ * hasFailurePort: true,
24
+ * executeWhen: 'CONJUNCTION'
25
+ * })
26
+ * .addNode('doubler', 'double')
27
+ * .connect('Start.input', 'doubler.x')
28
+ * .connect('doubler.result', 'Exit.output')
29
+ * .build();
30
+ * ```
31
+ */
32
+ export class WorkflowBuilder {
33
+ ast;
34
+ /**
35
+ * Create a new workflow builder
36
+ *
37
+ * @param name - Workflow name (also used as functionName)
38
+ * @param sourceFile - Optional source file path
39
+ */
40
+ constructor(name, sourceFile = `${name}.ts`) {
41
+ this.ast = {
42
+ type: "Workflow",
43
+ name,
44
+ functionName: name,
45
+ sourceFile,
46
+ nodeTypes: [],
47
+ instances: [],
48
+ connections: [],
49
+ scopes: {},
50
+ startPorts: {},
51
+ exitPorts: {},
52
+ imports: [],
53
+ };
54
+ }
55
+ /**
56
+ * Add a Start port to the workflow
57
+ *
58
+ * @param name - Port name
59
+ * @param definition - Port definition
60
+ * @returns This builder for chaining
61
+ *
62
+ * @example
63
+ * ```typescript
64
+ * builder.addStartPort('userId', { dataType: 'STRING' });
65
+ * ```
66
+ */
67
+ addStartPort(name, definition) {
68
+ // Use simplified type to avoid excessive type instantiation
69
+ this.ast = produce(this.ast, (draft) => {
70
+ draft.startPorts[name] = definition;
71
+ });
72
+ return this;
73
+ }
74
+ /**
75
+ * Add an Exit port to the workflow
76
+ *
77
+ * @param name - Port name
78
+ * @param definition - Port definition
79
+ * @returns This builder for chaining
80
+ *
81
+ * @example
82
+ * ```typescript
83
+ * builder.addExitPort('result', { dataType: 'NUMBER' });
84
+ * ```
85
+ */
86
+ addExitPort(name, definition) {
87
+ // Use simplified type to avoid excessive type instantiation
88
+ this.ast = produce(this.ast, (draft) => {
89
+ draft.exitPorts[name] = definition;
90
+ });
91
+ return this;
92
+ }
93
+ /**
94
+ * Add a node type definition
95
+ *
96
+ * @param nodeType - Complete node type definition
97
+ * @returns This builder for chaining
98
+ *
99
+ * @example
100
+ * ```typescript
101
+ * builder.addNodeType({
102
+ * type: 'NodeType',
103
+ * name: 'processor',
104
+ * functionName: 'process',
105
+ * inputs: { data: { dataType: 'ANY' } },
106
+ * outputs: { result: { dataType: 'ANY' } },
107
+ * hasSuccessPort: true,
108
+ * hasFailurePort: true,
109
+ * executeWhen: 'CONJUNCTION'
110
+ * });
111
+ * ```
112
+ */
113
+ addNodeType(nodeType) {
114
+ // Validate before produce to avoid type instantiation issues
115
+ if (this.ast.nodeTypes.some((nt) => nt.name === nodeType.name)) {
116
+ throw new Error(`Node type "${nodeType.name}" already exists`);
117
+ }
118
+ // Use simplified type to avoid excessive type instantiation
119
+ this.ast = produce(this.ast, (draft) => {
120
+ draft.nodeTypes.push(nodeType);
121
+ });
122
+ return this;
123
+ }
124
+ /**
125
+ * Add a node instance
126
+ *
127
+ * @param id - Node instance ID
128
+ * @param nodeType - Node type (functionName)
129
+ * @param config - Optional node configuration
130
+ * @returns This builder for chaining
131
+ *
132
+ * @example
133
+ * ```typescript
134
+ * builder.addNode('processor1', 'process');
135
+ * builder.addNode('processor2', 'process', { x: 100, y: 200, label: 'Main' });
136
+ * ```
137
+ */
138
+ addNode(id, nodeType, config) {
139
+ // Validate before produce to avoid type instantiation issues
140
+ if (this.ast.instances.some((n) => n.id === id)) {
141
+ throw new Error(`Node "${id}" already exists`);
142
+ }
143
+ if (!this.ast.nodeTypes.some((nt) => nt.name === nodeType || nt.functionName === nodeType)) {
144
+ throw new Error(`Node type "${nodeType}" not found. Available types: ${this.ast.nodeTypes.map((nt) => nt.name || nt.functionName).join(", ")}`);
145
+ }
146
+ const node = {
147
+ type: "NodeInstance",
148
+ id,
149
+ nodeType,
150
+ };
151
+ if (config) {
152
+ node.config = config;
153
+ }
154
+ // Use simplified type to avoid excessive type instantiation
155
+ this.ast = produce(this.ast, (draft) => {
156
+ draft.instances.push(node);
157
+ });
158
+ return this;
159
+ }
160
+ /**
161
+ * Connect two ports
162
+ *
163
+ * Supports multiple formats:
164
+ * - String format: "node1.port1", "node2.port2"
165
+ * - Object format: { node: "node1", port: "port1" }
166
+ *
167
+ * @param from - Source port reference
168
+ * @param to - Target port reference
169
+ * @returns This builder for chaining
170
+ *
171
+ * @example
172
+ * ```typescript
173
+ * builder.connect('Start.input', 'processor1.data');
174
+ * builder.connect({ node: 'processor1', port: 'result' }, 'Exit.output');
175
+ * ```
176
+ */
177
+ connect(from, to) {
178
+ const fromRef = validatePortReference(from);
179
+ const toRef = validatePortReference(to);
180
+ const connection = {
181
+ type: "Connection",
182
+ from: fromRef,
183
+ to: toRef,
184
+ };
185
+ // Use simplified type to avoid excessive type instantiation
186
+ this.ast = produce(this.ast, (draft) => {
187
+ draft.connections.push(connection);
188
+ });
189
+ return this;
190
+ }
191
+ /**
192
+ * Create a scope and add nodes to it
193
+ *
194
+ * @param scopeName - Name of the scope
195
+ * @param nodeIds - Array of node IDs to include
196
+ * @returns This builder for chaining
197
+ *
198
+ * @example
199
+ * ```typescript
200
+ * builder.createScope('mainLoop', ['processor1', 'processor2']);
201
+ * ```
202
+ */
203
+ createScope(scopeName, nodeIds) {
204
+ // Validate before produce
205
+ if (this.ast.scopes && this.ast.scopes[scopeName]) {
206
+ throw new Error(`Scope "${scopeName}" already exists`);
207
+ }
208
+ // scopeName format is "parentNodeId.scopeName"
209
+ const dotIndex = scopeName.indexOf('.');
210
+ const parentNodeName = dotIndex > 0 ? scopeName.substring(0, dotIndex) : scopeName;
211
+ const scope = dotIndex > 0 ? scopeName.substring(dotIndex + 1) : '';
212
+ // Use simplified type to avoid excessive type instantiation
213
+ this.ast = produce(this.ast, (draft) => {
214
+ if (!draft.scopes) {
215
+ draft.scopes = {};
216
+ }
217
+ draft.scopes[scopeName] = nodeIds;
218
+ nodeIds.forEach((nodeId) => {
219
+ const node = draft.instances.find((n) => n.id === nodeId);
220
+ if (node) {
221
+ node.parent = { id: parentNodeName, scope };
222
+ }
223
+ });
224
+ });
225
+ return this;
226
+ }
227
+ /**
228
+ * Set workflow description
229
+ *
230
+ * @param description - Workflow description
231
+ * @returns This builder for chaining
232
+ *
233
+ * @example
234
+ * ```typescript
235
+ * builder.setDescription('Processes user data and generates reports');
236
+ * ```
237
+ */
238
+ setDescription(description) {
239
+ // Use simplified type to avoid excessive type instantiation
240
+ this.ast = produce(this.ast, (draft) => {
241
+ draft.description = description;
242
+ });
243
+ return this;
244
+ }
245
+ /**
246
+ * Validate the current workflow state
247
+ *
248
+ * @returns Validation result
249
+ *
250
+ * @example
251
+ * ```typescript
252
+ * const validation = builder.validate();
253
+ * if (!validation.valid) {
254
+ * console.error('Errors:', validation.errors);
255
+ * }
256
+ * ```
257
+ */
258
+ validate() {
259
+ return validateWorkflow(this.ast);
260
+ }
261
+ /**
262
+ * Build and return the final workflow
263
+ *
264
+ * Validates the workflow before returning. Throws if invalid.
265
+ *
266
+ * @returns Complete workflow AST
267
+ * @throws {Error} If workflow validation fails
268
+ *
269
+ * @example
270
+ * ```typescript
271
+ * const workflow = builder.build();
272
+ * ```
273
+ */
274
+ build() {
275
+ const validation = this.validate();
276
+ if (!validation.valid) {
277
+ const errorDetails = validation.errors
278
+ .slice(0, 3)
279
+ .map((e) => ` - ${e.message}`)
280
+ .join("\n");
281
+ throw new Error(`Cannot build workflow: validation failed\n${errorDetails}${validation.errors.length > 3 ? `\n ... and ${validation.errors.length - 3} more errors` : ""}`);
282
+ }
283
+ return this.ast;
284
+ }
285
+ /**
286
+ * Get the current workflow state without validation
287
+ *
288
+ * Use this to inspect the workflow during construction.
289
+ *
290
+ * @returns Current workflow AST
291
+ *
292
+ * @example
293
+ * ```typescript
294
+ * const current = builder.getWorkflow();
295
+ * console.log(`Nodes: ${current.instances.length}`);
296
+ * ```
297
+ */
298
+ getWorkflow() {
299
+ return this.ast;
300
+ }
301
+ }
302
+ /**
303
+ * Create a new workflow builder
304
+ *
305
+ * Convenience function for creating a builder instance.
306
+ *
307
+ * @param name - Workflow name
308
+ * @param sourceFile - Optional source file path
309
+ * @returns New WorkflowBuilder instance
310
+ *
311
+ * @example
312
+ * ```typescript
313
+ * const workflow = createWorkflow('myWorkflow')
314
+ * .addStartPort('input', { dataType: 'NUMBER' })
315
+ * .addExitPort('output', { dataType: 'NUMBER' })
316
+ * .build();
317
+ * ```
318
+ */
319
+ export function createWorkflow(name, sourceFile) {
320
+ return new WorkflowBuilder(name, sourceFile);
321
+ }
322
+ /**
323
+ * Create a builder from an existing workflow AST
324
+ *
325
+ * Allows modifying existing workflows using the builder API.
326
+ *
327
+ * @param ast - Existing workflow AST
328
+ * @returns WorkflowBuilder initialized with the AST
329
+ *
330
+ * @example
331
+ * ```typescript
332
+ * const existingWorkflow = parseWorkflow(source);
333
+ * const modified = fromAST(existingWorkflow)
334
+ * .addNode('newNode', 'process')
335
+ * .connect('Start.input', 'newNode.data')
336
+ * .build();
337
+ * ```
338
+ */
339
+ export function fromAST(ast) {
340
+ const builder = new WorkflowBuilder(ast.name, ast.sourceFile);
341
+ // Access private field through bracket notation to avoid exposing internal state
342
+ builder.ast = ast;
343
+ return builder;
344
+ }
345
+ //# sourceMappingURL=builder.js.map
@@ -0,0 +1,92 @@
1
+ import type { TCompileResult as ASTCompileResult } from '../ast/types.js';
2
+ import { type GenerateOptions } from './generate.js';
3
+ import { type InPlaceGenerateOptions } from './generate-in-place.js';
4
+ import { type ParseOptions } from './parse.js';
5
+ /**
6
+ * Options for compiling a workflow file
7
+ */
8
+ export interface CompileOptions {
9
+ /** Options for parsing the source file */
10
+ parse?: ParseOptions;
11
+ /** Options for code generation */
12
+ generate?: GenerateOptions & InPlaceGenerateOptions;
13
+ /**
14
+ * Compile in-place (modifies source file, default: true)
15
+ * When false, generates to a separate file
16
+ */
17
+ inPlace?: boolean;
18
+ /** Custom output file path (only used when inPlace=false) */
19
+ outputFile?: string;
20
+ /** Whether to write the compiled code to disk (default: true) */
21
+ write?: boolean;
22
+ /** Whether to save AST alongside the generated file (default: false) */
23
+ saveAST?: boolean;
24
+ }
25
+ /**
26
+ * Result of workflow compilation
27
+ */
28
+ export type CompileResult = ASTCompileResult;
29
+ /**
30
+ * Compile a workflow file from TypeScript annotations to executable code.
31
+ *
32
+ * By default, compiles in-place (updates the source file with generated code).
33
+ * Set inPlace=false to generate to a separate file.
34
+ *
35
+ * @param filePath - Path to the workflow file
36
+ * @param options - Compilation options
37
+ * @returns CompileResult with code, AST, and metadata
38
+ *
39
+ * @example
40
+ * ```typescript
41
+ * // Compile in-place (default)
42
+ * const result = await compileWorkflow('./workflow.ts');
43
+ *
44
+ * // Generate to separate file for production
45
+ * const result = await compileWorkflow('./workflow.ts', {
46
+ * inPlace: false,
47
+ * outputFile: './dist/workflow.ts',
48
+ * generate: { production: true }
49
+ * });
50
+ * ```
51
+ *
52
+ * @throws {Error} If parsing fails or workflow contains errors
53
+ */
54
+ export declare function compileWorkflow(filePath: string, options?: CompileOptions): Promise<CompileResult>;
55
+ /**
56
+ * Compile multiple workflow files in parallel
57
+ *
58
+ * @param filePaths - Array of workflow file paths to compile
59
+ * @param options - Compilation options applied to all files
60
+ * @returns Array of CompileResults for each file
61
+ *
62
+ * @example
63
+ * ```typescript
64
+ * const results = await compileWorkflows([
65
+ * './workflow-1.ts',
66
+ * './workflow-2.ts'
67
+ * ]);
68
+ * ```
69
+ */
70
+ export declare function compileWorkflows(filePaths: string[], options?: CompileOptions): Promise<CompileResult[]>;
71
+ /**
72
+ * Compile all workflow files matching a glob pattern
73
+ *
74
+ * Uses the glob library to find matching files and compiles them in parallel.
75
+ *
76
+ * @param pattern - Glob pattern (e.g., "src/**\/*.ts")
77
+ * @param options - Compilation options applied to all files
78
+ * @returns Array of CompileResults for each matched file
79
+ *
80
+ * @example
81
+ * ```typescript
82
+ * // Compile all workflow files in src directory
83
+ * const results = await compilePattern('src/**\/*.ts');
84
+ *
85
+ * // Compile with custom options
86
+ * const results = await compilePattern('workflows/**\/*.ts', {
87
+ * generate: { production: true }
88
+ * });
89
+ * ```
90
+ */
91
+ export declare function compilePattern(pattern: string, options?: CompileOptions): Promise<CompileResult[]>;
92
+ //# sourceMappingURL=compile.d.ts.map