@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,98 @@
1
+ /**
2
+ * Public Template API
3
+ *
4
+ * Provides access to workflow and node templates for creating new flows.
5
+ * Templates are starters that can be customized for specific use cases.
6
+ *
7
+ * @module
8
+ */
9
+ import { type WorkflowTemplate, type NodeTemplate, type WorkflowTemplateOptions } from "../cli/templates/index.js";
10
+ export type { WorkflowTemplate, NodeTemplate, WorkflowTemplateOptions };
11
+ /**
12
+ * List all available workflow templates
13
+ *
14
+ * @returns Array of workflow template definitions
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * const templates = listWorkflowTemplates();
19
+ * templates.forEach(t => console.log(`${t.id}: ${t.description}`));
20
+ * ```
21
+ */
22
+ export declare function listWorkflowTemplates(): WorkflowTemplate[];
23
+ /**
24
+ * List all available node templates
25
+ *
26
+ * @returns Array of node template definitions
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * const templates = listNodeTemplates();
31
+ * templates.forEach(t => console.log(`${t.id}: ${t.description}`));
32
+ * ```
33
+ */
34
+ export declare function listNodeTemplates(): NodeTemplate[];
35
+ /**
36
+ * Get a workflow template by ID
37
+ *
38
+ * @param id - Template identifier (e.g., "sequential", "foreach", "ai-agent")
39
+ * @returns Template definition or undefined if not found
40
+ *
41
+ * @example
42
+ * ```typescript
43
+ * const template = getWorkflowTemplate("sequential");
44
+ * if (template) {
45
+ * console.log(template.description);
46
+ * }
47
+ * ```
48
+ */
49
+ export declare function getWorkflowTemplate(id: string): WorkflowTemplate | undefined;
50
+ /**
51
+ * Get a node template by ID
52
+ *
53
+ * @param id - Template identifier (e.g., "validator", "transformer", "llm-call")
54
+ * @returns Template definition or undefined if not found
55
+ *
56
+ * @example
57
+ * ```typescript
58
+ * const template = getNodeTemplate("validator");
59
+ * if (template) {
60
+ * console.log(template.description);
61
+ * }
62
+ * ```
63
+ */
64
+ export declare function getNodeTemplate(id: string): NodeTemplate | undefined;
65
+ /**
66
+ * Generate workflow code from a template
67
+ *
68
+ * @param templateId - Template identifier
69
+ * @param options - Generation options including workflow name
70
+ * @returns Generated TypeScript code
71
+ * @throws Error if template not found
72
+ *
73
+ * @example
74
+ * ```typescript
75
+ * const code = generateWorkflowFromTemplate("sequential", {
76
+ * workflowName: "processOrder",
77
+ * async: true,
78
+ * });
79
+ * fs.writeFileSync("processOrder.ts", code);
80
+ * ```
81
+ */
82
+ export declare function generateWorkflowFromTemplate(templateId: string, options: WorkflowTemplateOptions): string;
83
+ /**
84
+ * Generate node type code from a template
85
+ *
86
+ * @param templateId - Template identifier
87
+ * @param name - Name for the generated node function
88
+ * @returns Generated TypeScript code
89
+ * @throws Error if template not found
90
+ *
91
+ * @example
92
+ * ```typescript
93
+ * const code = generateNodeFromTemplate("validator", "validateInput");
94
+ * // Insert into existing file or create new one
95
+ * ```
96
+ */
97
+ export declare function generateNodeFromTemplate(templateId: string, name: string, config?: Record<string, unknown>): string;
98
+ //# sourceMappingURL=templates.d.ts.map
@@ -0,0 +1,117 @@
1
+ /**
2
+ * Public Template API
3
+ *
4
+ * Provides access to workflow and node templates for creating new flows.
5
+ * Templates are starters that can be customized for specific use cases.
6
+ *
7
+ * @module
8
+ */
9
+ import { workflowTemplates, nodeTemplates, getWorkflowTemplate as getWorkflowTemplateById, getNodeTemplate as getNodeTemplateById, } from "../cli/templates/index.js";
10
+ /**
11
+ * List all available workflow templates
12
+ *
13
+ * @returns Array of workflow template definitions
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * const templates = listWorkflowTemplates();
18
+ * templates.forEach(t => console.log(`${t.id}: ${t.description}`));
19
+ * ```
20
+ */
21
+ export function listWorkflowTemplates() {
22
+ return workflowTemplates;
23
+ }
24
+ /**
25
+ * List all available node templates
26
+ *
27
+ * @returns Array of node template definitions
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * const templates = listNodeTemplates();
32
+ * templates.forEach(t => console.log(`${t.id}: ${t.description}`));
33
+ * ```
34
+ */
35
+ export function listNodeTemplates() {
36
+ return nodeTemplates;
37
+ }
38
+ /**
39
+ * Get a workflow template by ID
40
+ *
41
+ * @param id - Template identifier (e.g., "sequential", "foreach", "ai-agent")
42
+ * @returns Template definition or undefined if not found
43
+ *
44
+ * @example
45
+ * ```typescript
46
+ * const template = getWorkflowTemplate("sequential");
47
+ * if (template) {
48
+ * console.log(template.description);
49
+ * }
50
+ * ```
51
+ */
52
+ export function getWorkflowTemplate(id) {
53
+ return getWorkflowTemplateById(id);
54
+ }
55
+ /**
56
+ * Get a node template by ID
57
+ *
58
+ * @param id - Template identifier (e.g., "validator", "transformer", "llm-call")
59
+ * @returns Template definition or undefined if not found
60
+ *
61
+ * @example
62
+ * ```typescript
63
+ * const template = getNodeTemplate("validator");
64
+ * if (template) {
65
+ * console.log(template.description);
66
+ * }
67
+ * ```
68
+ */
69
+ export function getNodeTemplate(id) {
70
+ return getNodeTemplateById(id);
71
+ }
72
+ /**
73
+ * Generate workflow code from a template
74
+ *
75
+ * @param templateId - Template identifier
76
+ * @param options - Generation options including workflow name
77
+ * @returns Generated TypeScript code
78
+ * @throws Error if template not found
79
+ *
80
+ * @example
81
+ * ```typescript
82
+ * const code = generateWorkflowFromTemplate("sequential", {
83
+ * workflowName: "processOrder",
84
+ * async: true,
85
+ * });
86
+ * fs.writeFileSync("processOrder.ts", code);
87
+ * ```
88
+ */
89
+ export function generateWorkflowFromTemplate(templateId, options) {
90
+ const template = getWorkflowTemplateById(templateId);
91
+ if (!template) {
92
+ throw new Error(`Workflow template "${templateId}" not found`);
93
+ }
94
+ return template.generate(options);
95
+ }
96
+ /**
97
+ * Generate node type code from a template
98
+ *
99
+ * @param templateId - Template identifier
100
+ * @param name - Name for the generated node function
101
+ * @returns Generated TypeScript code
102
+ * @throws Error if template not found
103
+ *
104
+ * @example
105
+ * ```typescript
106
+ * const code = generateNodeFromTemplate("validator", "validateInput");
107
+ * // Insert into existing file or create new one
108
+ * ```
109
+ */
110
+ export function generateNodeFromTemplate(templateId, name, config) {
111
+ const template = getNodeTemplateById(templateId);
112
+ if (!template) {
113
+ throw new Error(`Node template "${templateId}" not found`);
114
+ }
115
+ return template.generate(name, config);
116
+ }
117
+ //# sourceMappingURL=templates.js.map
@@ -0,0 +1,31 @@
1
+ import type { TASTTransformer, TWorkflowAST } from "../ast/types.js";
2
+ /**
3
+ * Applies a single transformer to a workflow AST.
4
+ * The AST is deep-cloned before transformation to avoid mutating the original.
5
+ *
6
+ * @param ast - The workflow AST to transform.
7
+ * @param transformer - The transformer to apply.
8
+ * @returns A new, transformed workflow AST.
9
+ */
10
+ export declare function transformWorkflow(ast: TWorkflowAST, transformer: TASTTransformer): TWorkflowAST;
11
+ /**
12
+ * Applies an ordered sequence of transformers to a workflow AST.
13
+ * Each transformer receives the output of the previous one, and each step
14
+ * deep-clones its input via {@link transformWorkflow}.
15
+ *
16
+ * @param ast - The initial workflow AST.
17
+ * @param transformers - An ordered array of transformers to apply sequentially.
18
+ * @returns The final transformed workflow AST.
19
+ */
20
+ export declare function applyTransformations(ast: TWorkflowAST, transformers: TASTTransformer[]): TWorkflowAST;
21
+ /**
22
+ * Composes multiple transformers into a single transformer.
23
+ * The resulting transformer's name is a comma-separated list of the constituent names
24
+ * wrapped in "composed(...)". When invoked, it applies all transformers in order
25
+ * via {@link applyTransformations}.
26
+ *
27
+ * @param transformers - The transformers to compose.
28
+ * @returns A single composite transformer.
29
+ */
30
+ export declare function composeTransformers(transformers: TASTTransformer[]): TASTTransformer;
31
+ //# sourceMappingURL=transform.d.ts.map
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Applies a single transformer to a workflow AST.
3
+ * The AST is deep-cloned before transformation to avoid mutating the original.
4
+ *
5
+ * @param ast - The workflow AST to transform.
6
+ * @param transformer - The transformer to apply.
7
+ * @returns A new, transformed workflow AST.
8
+ */
9
+ export function transformWorkflow(ast, transformer) {
10
+ const cloned = JSON.parse(JSON.stringify(ast));
11
+ return transformer.transform(cloned);
12
+ }
13
+ /**
14
+ * Applies an ordered sequence of transformers to a workflow AST.
15
+ * Each transformer receives the output of the previous one, and each step
16
+ * deep-clones its input via {@link transformWorkflow}.
17
+ *
18
+ * @param ast - The initial workflow AST.
19
+ * @param transformers - An ordered array of transformers to apply sequentially.
20
+ * @returns The final transformed workflow AST.
21
+ */
22
+ export function applyTransformations(ast, transformers) {
23
+ return transformers.reduce((currentAST, transformer) => transformWorkflow(currentAST, transformer), ast);
24
+ }
25
+ /**
26
+ * Composes multiple transformers into a single transformer.
27
+ * The resulting transformer's name is a comma-separated list of the constituent names
28
+ * wrapped in "composed(...)". When invoked, it applies all transformers in order
29
+ * via {@link applyTransformations}.
30
+ *
31
+ * @param transformers - The transformers to compose.
32
+ * @returns A single composite transformer.
33
+ */
34
+ export function composeTransformers(transformers) {
35
+ return {
36
+ name: `composed(${transformers.map((t) => t.name).join(", ")})`,
37
+ transform: (ast) => applyTransformations(ast, transformers),
38
+ };
39
+ }
40
+ //# sourceMappingURL=transform.js.map
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Public API wrapper for workflow validation
3
+ *
4
+ * This module provides a simplified validation interface that uses
5
+ * the consolidated WorkflowValidator internally.
6
+ */
7
+ import type { TValidationRule, TWorkflowAST } from "../ast/index.js";
8
+ import { type TValidationError } from "../validator.js";
9
+ export interface ValidationResult {
10
+ valid: boolean;
11
+ errors: TValidationError[];
12
+ warnings: TValidationError[];
13
+ }
14
+ /**
15
+ * Validates a workflow AST
16
+ *
17
+ * Runs the built-in validator, then agent-specific rules, then any custom rules.
18
+ * Agent rules are always applied automatically.
19
+ *
20
+ * @param ast - The workflow AST to validate
21
+ * @param customRules - Optional array of additional custom validation rules
22
+ * @returns ValidationResult with errors and warnings
23
+ */
24
+ export declare function validateWorkflow(ast: TWorkflowAST, customRules?: TValidationRule[]): ValidationResult;
25
+ //# sourceMappingURL=validate.d.ts.map
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Public API wrapper for workflow validation
3
+ *
4
+ * This module provides a simplified validation interface that uses
5
+ * the consolidated WorkflowValidator internally.
6
+ */
7
+ import { validator } from "../validator.js";
8
+ import { getAgentValidationRules } from "../validation/agent-rules.js";
9
+ /**
10
+ * Validates a workflow AST
11
+ *
12
+ * Runs the built-in validator, then agent-specific rules, then any custom rules.
13
+ * Agent rules are always applied automatically.
14
+ *
15
+ * @param ast - The workflow AST to validate
16
+ * @param customRules - Optional array of additional custom validation rules
17
+ * @returns ValidationResult with errors and warnings
18
+ */
19
+ export function validateWorkflow(ast, customRules) {
20
+ // Use the consolidated validator
21
+ const result = validator.validate(ast);
22
+ // Apply agent-specific rules + any custom rules
23
+ const allRules = [...getAgentValidationRules(), ...(customRules || [])];
24
+ for (const rule of allRules) {
25
+ const ruleResults = rule.validate(ast);
26
+ for (const err of ruleResults) {
27
+ if (err.type === 'warning') {
28
+ result.warnings.push(err);
29
+ }
30
+ else {
31
+ result.errors.push(err);
32
+ }
33
+ }
34
+ }
35
+ // Re-evaluate validity
36
+ result.valid = result.errors.length === 0;
37
+ return result;
38
+ }
39
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Workflow File Operations
3
+ * Functions for adding, removing, and managing workflows in source files
4
+ */
5
+ export interface WorkflowInfo {
6
+ name: string;
7
+ functionName: string;
8
+ isExported: boolean;
9
+ }
10
+ export interface AddWorkflowOptions {
11
+ exported?: boolean;
12
+ }
13
+ /**
14
+ * Add a new workflow function to the source code
15
+ */
16
+ export declare function addWorkflowToSource(source: string, workflowName: string, options?: AddWorkflowOptions): string;
17
+ /**
18
+ * Remove a workflow function from the source code
19
+ */
20
+ export declare function removeWorkflowFromSource(source: string, workflowName: string): string;
21
+ /**
22
+ * Toggle the export status of a workflow
23
+ */
24
+ export declare function toggleWorkflowExport(source: string, workflowName: string): string;
25
+ /**
26
+ * Get all available workflows from source code
27
+ */
28
+ export declare function getAvailableWorkflows(source: string): WorkflowInfo[];
29
+ //# sourceMappingURL=workflow-file-operations.d.ts.map
@@ -0,0 +1,180 @@
1
+ /**
2
+ * Workflow File Operations
3
+ * Functions for adding, removing, and managing workflows in source files
4
+ */
5
+ import * as ts from "typescript";
6
+ // Marker for runtime section
7
+ const RUNTIME_END_MARKER = "// @flow-weaver-runtime-end";
8
+ /**
9
+ * Parse source and find all workflow functions
10
+ */
11
+ function findWorkflowFunctions(source) {
12
+ const sourceFile = ts.createSourceFile("temp.ts", source, ts.ScriptTarget.Latest, true);
13
+ const workflows = [];
14
+ ts.forEachChild(sourceFile, (node) => {
15
+ if (ts.isFunctionDeclaration(node) && node.name) {
16
+ const functionName = node.name.text;
17
+ const functionStart = node.getFullStart();
18
+ const leadingComments = ts.getLeadingCommentRanges(source, functionStart);
19
+ if (!leadingComments)
20
+ return;
21
+ // Check for @flowWeaver workflow JSDoc
22
+ for (const comment of leadingComments) {
23
+ if (comment.kind === ts.SyntaxKind.MultiLineCommentTrivia) {
24
+ const commentText = source.slice(comment.pos, comment.end);
25
+ if (commentText.includes("@flowWeaver workflow")) {
26
+ // Check for @name tag
27
+ const nameMatch = commentText.match(/@name\s+(\S+)/);
28
+ const name = nameMatch ? nameMatch[1] : functionName;
29
+ const isExported = node.modifiers?.some((m) => m.kind === ts.SyntaxKind.ExportKeyword) ?? false;
30
+ workflows.push({
31
+ node,
32
+ name,
33
+ functionName,
34
+ isExported,
35
+ jsdocStart: comment.pos,
36
+ jsdocEnd: comment.end,
37
+ });
38
+ break;
39
+ }
40
+ }
41
+ }
42
+ }
43
+ });
44
+ return workflows;
45
+ }
46
+ /**
47
+ * Generate a new workflow function scaffold
48
+ */
49
+ function generateWorkflowScaffold(workflowName, exported) {
50
+ const exportKeyword = exported ? "export " : "";
51
+ return `/**
52
+ * @flowWeaver workflow
53
+ */
54
+ ${exportKeyword}function ${workflowName}(execute: boolean, data: {}): { onSuccess: boolean; onFailure: boolean } {
55
+ throw new Error("Not implemented");
56
+ }`;
57
+ }
58
+ /**
59
+ * Add a new workflow function to the source code
60
+ */
61
+ export function addWorkflowToSource(source, workflowName, options = {}) {
62
+ const { exported = true } = options;
63
+ // Check if workflow already exists
64
+ const existingWorkflows = findWorkflowFunctions(source);
65
+ const exists = existingWorkflows.some((w) => w.name === workflowName || w.functionName === workflowName);
66
+ if (exists) {
67
+ throw new Error(`Workflow "${workflowName}" already exists`);
68
+ }
69
+ // Generate the new workflow
70
+ const newWorkflow = generateWorkflowScaffold(workflowName, exported);
71
+ // Find insertion point
72
+ let insertPosition;
73
+ // Try to insert after runtime section
74
+ const runtimeEndPos = source.indexOf(RUNTIME_END_MARKER);
75
+ if (runtimeEndPos !== -1) {
76
+ const afterMarker = source.indexOf("\n", runtimeEndPos);
77
+ insertPosition = afterMarker !== -1 ? afterMarker + 1 : runtimeEndPos + RUNTIME_END_MARKER.length;
78
+ }
79
+ else if (existingWorkflows.length > 0) {
80
+ // Insert before the first existing workflow
81
+ insertPosition = existingWorkflows[0].jsdocStart;
82
+ }
83
+ else {
84
+ // Insert at the end
85
+ insertPosition = source.length;
86
+ }
87
+ // Insert the new workflow
88
+ const before = source.slice(0, insertPosition);
89
+ const after = source.slice(insertPosition);
90
+ // Add proper spacing
91
+ const needsLeadingNewline = before.length > 0 && !before.endsWith("\n\n");
92
+ const needsTrailingNewline = after.length > 0 && !after.startsWith("\n");
93
+ return (before +
94
+ (needsLeadingNewline ? "\n\n" : "") +
95
+ newWorkflow +
96
+ (needsTrailingNewline ? "\n\n" : "") +
97
+ after);
98
+ }
99
+ /**
100
+ * Remove a workflow function from the source code
101
+ */
102
+ export function removeWorkflowFromSource(source, workflowName) {
103
+ const workflows = findWorkflowFunctions(source);
104
+ // Find the workflow to remove
105
+ const workflowToRemove = workflows.find((w) => w.name === workflowName || w.functionName === workflowName);
106
+ if (!workflowToRemove) {
107
+ throw new Error(`Workflow "${workflowName}" not found`);
108
+ }
109
+ // Check if it's the last workflow
110
+ if (workflows.length === 1) {
111
+ throw new Error(`Cannot remove the last workflow from file`);
112
+ }
113
+ // Calculate the range to remove (including JSDoc and trailing newlines)
114
+ const startPos = workflowToRemove.jsdocStart;
115
+ let endPos = workflowToRemove.node.end;
116
+ // Include trailing newlines
117
+ while (endPos < source.length && (source[endPos] === '\n' || source[endPos] === '\r')) {
118
+ endPos++;
119
+ }
120
+ // Remove the workflow
121
+ const before = source.slice(0, startPos);
122
+ const after = source.slice(endPos);
123
+ return before + after;
124
+ }
125
+ /**
126
+ * Toggle the export status of a workflow
127
+ */
128
+ export function toggleWorkflowExport(source, workflowName) {
129
+ const workflows = findWorkflowFunctions(source);
130
+ // Find the workflow to toggle
131
+ const workflow = workflows.find((w) => w.name === workflowName || w.functionName === workflowName);
132
+ if (!workflow) {
133
+ throw new Error(`Workflow "${workflowName}" not found`);
134
+ }
135
+ // Find the function keyword position
136
+ let functionKeywordPos = -1;
137
+ // Find the 'function' keyword
138
+ for (let i = workflow.jsdocEnd; i < source.length - 7; i++) {
139
+ if (source.slice(i, i + 8) === "function") {
140
+ functionKeywordPos = i;
141
+ break;
142
+ }
143
+ if (source.slice(i, i + 15) === "export function") {
144
+ functionKeywordPos = i;
145
+ break;
146
+ }
147
+ }
148
+ if (functionKeywordPos === -1) {
149
+ throw new Error(`Could not find function declaration for "${workflowName}"`);
150
+ }
151
+ if (workflow.isExported) {
152
+ // Remove 'export ' keyword
153
+ const exportPos = source.lastIndexOf("export", functionKeywordPos);
154
+ if (exportPos !== -1 && exportPos >= workflow.jsdocEnd) {
155
+ // Find the space after export
156
+ let spaceEnd = exportPos + 6;
157
+ while (spaceEnd < source.length && (source[spaceEnd] === ' ' || source[spaceEnd] === '\t')) {
158
+ spaceEnd++;
159
+ }
160
+ return source.slice(0, exportPos) + source.slice(spaceEnd);
161
+ }
162
+ }
163
+ else {
164
+ // Add 'export ' keyword before 'function'
165
+ return source.slice(0, functionKeywordPos) + "export " + source.slice(functionKeywordPos);
166
+ }
167
+ return source;
168
+ }
169
+ /**
170
+ * Get all available workflows from source code
171
+ */
172
+ export function getAvailableWorkflows(source) {
173
+ const workflows = findWorkflowFunctions(source);
174
+ return workflows.map((w) => ({
175
+ name: w.name,
176
+ functionName: w.functionName,
177
+ isExported: w.isExported,
178
+ }));
179
+ }
180
+ //# sourceMappingURL=workflow-file-operations.js.map