@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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,54 @@
1
+ import type { TPortDefinition, TWorkflowAST } from "./types.js";
2
+ /**
3
+ * Extracts the input port definitions from the workflow's Start virtual node.
4
+ * Returns the workflow's explicit `startPorts` if defined, otherwise infers them
5
+ * from connections originating at the Start node by matching target node input types.
6
+ * Always includes the reserved EXECUTE control-flow port.
7
+ *
8
+ * @param workflow - The workflow AST to extract start ports from.
9
+ * @returns A record mapping port names to their port definitions.
10
+ */
11
+ export declare function extractStartPorts(workflow: TWorkflowAST): Record<string, TPortDefinition>;
12
+ /**
13
+ * Extracts the output port definitions from the workflow's Exit virtual node.
14
+ * Returns the workflow's explicit `exitPorts` if defined, otherwise infers them
15
+ * from connections targeting the Exit node by matching source node output types.
16
+ *
17
+ * @param workflow - The workflow AST to extract exit ports from.
18
+ * @returns A record mapping port names to their port definitions.
19
+ */
20
+ export declare function extractExitPorts(workflow: TWorkflowAST): Record<string, TPortDefinition>;
21
+ /**
22
+ * Finds a node type definition by name within a workflow.
23
+ *
24
+ * @param workflow - The workflow AST to search.
25
+ * @param nodeName - The name of the node type to find.
26
+ * @returns The matching node type, or undefined if not found.
27
+ */
28
+ export declare function getNodeType(workflow: TWorkflowAST, nodeName: string): import("./types.js").TNodeTypeAST | undefined;
29
+ /**
30
+ * Returns all connections originating from the specified node.
31
+ *
32
+ * @param workflow - The workflow AST to search.
33
+ * @param nodeName - The source node name to filter by.
34
+ * @returns An array of connections where `from.node` matches the given name.
35
+ */
36
+ export declare function getConnectionsFrom(workflow: TWorkflowAST, nodeName: string): import("./types.js").TConnectionAST[];
37
+ /**
38
+ * Returns all connections targeting the specified node.
39
+ *
40
+ * @param workflow - The workflow AST to search.
41
+ * @param nodeName - The target node name to filter by.
42
+ * @returns An array of connections where `to.node` matches the given name.
43
+ */
44
+ export declare function getConnectionsTo(workflow: TWorkflowAST, nodeName: string): import("./types.js").TConnectionAST[];
45
+ /**
46
+ * Determines whether a workflow contains branching control flow.
47
+ * A workflow has branching if any node type has multiple outgoing success connections
48
+ * or any outgoing failure connections.
49
+ *
50
+ * @param workflow - The workflow AST to inspect.
51
+ * @returns True if the workflow contains branching logic.
52
+ */
53
+ export declare function hasBranching(workflow: TWorkflowAST): boolean;
54
+ //# sourceMappingURL=workflow-utils.d.ts.map
@@ -0,0 +1,114 @@
1
+ import { RESERVED_PORT_NAMES, isStartNode, isExitNode, isSuccessPort, isFailurePort, } from "../constants.js";
2
+ /**
3
+ * Extracts the input port definitions from the workflow's Start virtual node.
4
+ * Returns the workflow's explicit `startPorts` if defined, otherwise infers them
5
+ * from connections originating at the Start node by matching target node input types.
6
+ * Always includes the reserved EXECUTE control-flow port.
7
+ *
8
+ * @param workflow - The workflow AST to extract start ports from.
9
+ * @returns A record mapping port names to their port definitions.
10
+ */
11
+ export function extractStartPorts(workflow) {
12
+ if (workflow.startPorts) {
13
+ return workflow.startPorts;
14
+ }
15
+ const startPorts = {};
16
+ startPorts[RESERVED_PORT_NAMES.EXECUTE] = {
17
+ dataType: "STEP",
18
+ isControlFlow: true,
19
+ };
20
+ workflow.connections
21
+ .filter((conn) => isStartNode(conn.from.node))
22
+ .forEach((conn) => {
23
+ const portName = conn.from.port;
24
+ const targetNodeType = workflow.nodeTypes.find((n) => n.name === conn.to.node);
25
+ if (targetNodeType?.inputs[conn.to.port]) {
26
+ startPorts[portName] = {
27
+ ...targetNodeType.inputs[conn.to.port],
28
+ };
29
+ }
30
+ else {
31
+ startPorts[portName] = {
32
+ dataType: "ANY",
33
+ };
34
+ }
35
+ });
36
+ return startPorts;
37
+ }
38
+ /**
39
+ * Extracts the output port definitions from the workflow's Exit virtual node.
40
+ * Returns the workflow's explicit `exitPorts` if defined, otherwise infers them
41
+ * from connections targeting the Exit node by matching source node output types.
42
+ *
43
+ * @param workflow - The workflow AST to extract exit ports from.
44
+ * @returns A record mapping port names to their port definitions.
45
+ */
46
+ export function extractExitPorts(workflow) {
47
+ if (workflow.exitPorts) {
48
+ return workflow.exitPorts;
49
+ }
50
+ const exitPorts = {};
51
+ workflow.connections
52
+ .filter((conn) => isExitNode(conn.to.node))
53
+ .forEach((conn) => {
54
+ const portName = conn.to.port;
55
+ const sourceNodeType = workflow.nodeTypes.find((n) => n.name === conn.from.node);
56
+ if (sourceNodeType?.outputs[conn.from.port]) {
57
+ exitPorts[portName] = {
58
+ ...sourceNodeType.outputs[conn.from.port],
59
+ };
60
+ }
61
+ else {
62
+ exitPorts[portName] = {
63
+ dataType: "ANY",
64
+ };
65
+ }
66
+ });
67
+ return exitPorts;
68
+ }
69
+ /**
70
+ * Finds a node type definition by name within a workflow.
71
+ *
72
+ * @param workflow - The workflow AST to search.
73
+ * @param nodeName - The name of the node type to find.
74
+ * @returns The matching node type, or undefined if not found.
75
+ */
76
+ export function getNodeType(workflow, nodeName) {
77
+ return workflow.nodeTypes.find((n) => n.name === nodeName);
78
+ }
79
+ /**
80
+ * Returns all connections originating from the specified node.
81
+ *
82
+ * @param workflow - The workflow AST to search.
83
+ * @param nodeName - The source node name to filter by.
84
+ * @returns An array of connections where `from.node` matches the given name.
85
+ */
86
+ export function getConnectionsFrom(workflow, nodeName) {
87
+ return workflow.connections.filter((c) => c.from.node === nodeName);
88
+ }
89
+ /**
90
+ * Returns all connections targeting the specified node.
91
+ *
92
+ * @param workflow - The workflow AST to search.
93
+ * @param nodeName - The target node name to filter by.
94
+ * @returns An array of connections where `to.node` matches the given name.
95
+ */
96
+ export function getConnectionsTo(workflow, nodeName) {
97
+ return workflow.connections.filter((c) => c.to.node === nodeName);
98
+ }
99
+ /**
100
+ * Determines whether a workflow contains branching control flow.
101
+ * A workflow has branching if any node type has multiple outgoing success connections
102
+ * or any outgoing failure connections.
103
+ *
104
+ * @param workflow - The workflow AST to inspect.
105
+ * @returns True if the workflow contains branching logic.
106
+ */
107
+ export function hasBranching(workflow) {
108
+ return workflow.nodeTypes.some((nodeType) => {
109
+ const successConns = workflow.connections.filter((c) => c.from.node === nodeType.name && isSuccessPort(c.from.port));
110
+ const failureConns = workflow.connections.filter((c) => c.from.node === nodeType.name && isFailurePort(c.from.port));
111
+ return successConns.length > 1 || failureConns.length > 0;
112
+ });
113
+ }
114
+ //# sourceMappingURL=workflow-utils.js.map
@@ -0,0 +1,31 @@
1
+ import type { TNodeTypeAST, TWorkflowAST } from "./ast/index.js";
2
+ /**
3
+ * Generates executable function body code from workflow ASTs.
4
+ * Delegates to the unified control-flow generator for code emission.
5
+ */
6
+ export declare class BodyGenerator {
7
+ /**
8
+ * Generates a workflow function body that uses an execution context for
9
+ * tracing, error handling, and runtime state management.
10
+ *
11
+ * @param workflow - The workflow AST defining the graph structure.
12
+ * @param nodeTypes - The node type definitions referenced by the workflow.
13
+ * @param isAsync - Whether to generate async code. Defaults to true.
14
+ * @param production - If true, omits debug event emissions. Defaults to false.
15
+ * @param bundleMode - If true, generates code suitable for bundled deployment. Defaults to false.
16
+ * @returns The generated function body as a string.
17
+ */
18
+ generateWithExecutionContext(workflow: TWorkflowAST, nodeTypes: TNodeTypeAST[], isAsync?: boolean, production?: boolean, bundleMode?: boolean): string;
19
+ /**
20
+ * Generates a workflow function body using default settings (async, non-production, non-bundled).
21
+ * Convenience method that wraps {@link generateWithExecutionContext}.
22
+ *
23
+ * @param workflow - The workflow AST defining the graph structure.
24
+ * @param nodeTypes - The node type definitions referenced by the workflow.
25
+ * @returns The generated function body as a string.
26
+ */
27
+ generateDirectCode(workflow: TWorkflowAST, nodeTypes: TNodeTypeAST[]): string;
28
+ }
29
+ /** Pre-instantiated singleton of {@link BodyGenerator} for convenient use. */
30
+ export declare const bodyGenerator: BodyGenerator;
31
+ //# sourceMappingURL=body-generator.d.ts.map
@@ -0,0 +1,35 @@
1
+ import { generateControlFlowWithExecutionContext } from "./generator/unified.js";
2
+ /**
3
+ * Generates executable function body code from workflow ASTs.
4
+ * Delegates to the unified control-flow generator for code emission.
5
+ */
6
+ export class BodyGenerator {
7
+ /**
8
+ * Generates a workflow function body that uses an execution context for
9
+ * tracing, error handling, and runtime state management.
10
+ *
11
+ * @param workflow - The workflow AST defining the graph structure.
12
+ * @param nodeTypes - The node type definitions referenced by the workflow.
13
+ * @param isAsync - Whether to generate async code. Defaults to true.
14
+ * @param production - If true, omits debug event emissions. Defaults to false.
15
+ * @param bundleMode - If true, generates code suitable for bundled deployment. Defaults to false.
16
+ * @returns The generated function body as a string.
17
+ */
18
+ generateWithExecutionContext(workflow, nodeTypes, isAsync = true, production = false, bundleMode = false) {
19
+ return generateControlFlowWithExecutionContext(workflow, nodeTypes, isAsync, production, bundleMode);
20
+ }
21
+ /**
22
+ * Generates a workflow function body using default settings (async, non-production, non-bundled).
23
+ * Convenience method that wraps {@link generateWithExecutionContext}.
24
+ *
25
+ * @param workflow - The workflow AST defining the graph structure.
26
+ * @param nodeTypes - The node type definitions referenced by the workflow.
27
+ * @returns The generated function body as a string.
28
+ */
29
+ generateDirectCode(workflow, nodeTypes) {
30
+ return generateControlFlowWithExecutionContext(workflow, nodeTypes, true, false, false);
31
+ }
32
+ }
33
+ /** Pre-instantiated singleton of {@link BodyGenerator} for convenient use. */
34
+ export const bodyGenerator = new BodyGenerator();
35
+ //# sourceMappingURL=body-generator.js.map
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @flowWeaver nodeType
3
+ * @input duration - Duration to sleep (e.g. "30s", "5m", "1h", "2d")
4
+ * @output elapsed - Always true after sleep completes
5
+ */
6
+ export declare function delay(execute: boolean, duration: string): Promise<{
7
+ onSuccess: boolean;
8
+ onFailure: boolean;
9
+ elapsed: boolean;
10
+ }>;
11
+ //# sourceMappingURL=delay.d.ts.map
@@ -0,0 +1,29 @@
1
+ import { getMockConfig } from './mock-types.js';
2
+ /**
3
+ * @flowWeaver nodeType
4
+ * @input duration - Duration to sleep (e.g. "30s", "5m", "1h", "2d")
5
+ * @output elapsed - Always true after sleep completes
6
+ */
7
+ export async function delay(execute, duration) {
8
+ if (!execute)
9
+ return { onSuccess: false, onFailure: false, elapsed: false };
10
+ const mocks = getMockConfig();
11
+ if (mocks?.fast) {
12
+ // Fast mode: skip real sleep, keep async behavior with 1ms
13
+ await new Promise((resolve) => setTimeout(resolve, 1));
14
+ }
15
+ else {
16
+ const ms = parseDuration(duration);
17
+ await new Promise((resolve) => setTimeout(resolve, ms));
18
+ }
19
+ return { onSuccess: true, onFailure: false, elapsed: true };
20
+ }
21
+ function parseDuration(duration) {
22
+ const match = duration.match(/^(\d+)(ms|s|m|h|d)$/);
23
+ if (!match)
24
+ return 0;
25
+ const [, value, unit] = match;
26
+ const multipliers = { ms: 1, s: 1000, m: 60000, h: 3600000, d: 86400000 };
27
+ return parseInt(value) * (multipliers[unit] || 0);
28
+ }
29
+ //# sourceMappingURL=delay.js.map
@@ -0,0 +1,5 @@
1
+ export { delay } from './delay.js';
2
+ export { waitForEvent } from './wait-for-event.js';
3
+ export { invokeWorkflow } from './invoke-workflow.js';
4
+ export type { FwMockConfig } from './mock-types.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,4 @@
1
+ export { delay } from './delay.js';
2
+ export { waitForEvent } from './wait-for-event.js';
3
+ export { invokeWorkflow } from './invoke-workflow.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @flowWeaver nodeType
3
+ * @input functionId - Inngest function ID (e.g. "my-service/sub-workflow")
4
+ * @input payload - Data to pass as event.data to the invoked function
5
+ * @input [timeout] - Max wait time (e.g. "1h")
6
+ * @output result - Return value from the invoked function
7
+ */
8
+ export declare function invokeWorkflow(execute: boolean, functionId: string, payload: object, timeout?: string): Promise<{
9
+ onSuccess: boolean;
10
+ onFailure: boolean;
11
+ result: object;
12
+ }>;
13
+ //# sourceMappingURL=invoke-workflow.d.ts.map
@@ -0,0 +1,25 @@
1
+ import { getMockConfig } from './mock-types.js';
2
+ /**
3
+ * @flowWeaver nodeType
4
+ * @input functionId - Inngest function ID (e.g. "my-service/sub-workflow")
5
+ * @input payload - Data to pass as event.data to the invoked function
6
+ * @input [timeout] - Max wait time (e.g. "1h")
7
+ * @output result - Return value from the invoked function
8
+ */
9
+ export async function invokeWorkflow(execute, functionId, payload, timeout) {
10
+ if (!execute)
11
+ return { onSuccess: false, onFailure: false, result: {} };
12
+ const mocks = getMockConfig();
13
+ if (mocks) {
14
+ // Mock mode active — look up result by functionId
15
+ const mockResult = mocks.invocations?.[functionId];
16
+ if (mockResult !== undefined) {
17
+ return { onSuccess: true, onFailure: false, result: mockResult };
18
+ }
19
+ // No mock data for this functionId — simulate failure
20
+ return { onSuccess: false, onFailure: true, result: {} };
21
+ }
22
+ // No mocks: original no-op behavior (always succeeds)
23
+ return { onSuccess: true, onFailure: false, result: {} };
24
+ }
25
+ //# sourceMappingURL=invoke-workflow.js.map
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Type definitions for the mock configuration used during local testing.
3
+ * When present on globalThis.__fw_mocks__, built-in nodes use mock data
4
+ * instead of their default no-op/sleep behavior.
5
+ */
6
+ export interface FwMockConfig {
7
+ /** Mock event data keyed by event name. Used by waitForEvent. */
8
+ events?: Record<string, object>;
9
+ /** Mock invocation results keyed by functionId. Used by invokeWorkflow. */
10
+ invocations?: Record<string, object>;
11
+ /** When true, delay nodes skip the real sleep (1ms instead of full duration). */
12
+ fast?: boolean;
13
+ }
14
+ /**
15
+ * Read the mock config from globalThis, returning undefined if not set.
16
+ */
17
+ export declare function getMockConfig(): FwMockConfig | undefined;
18
+ //# sourceMappingURL=mock-types.d.ts.map
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Type definitions for the mock configuration used during local testing.
3
+ * When present on globalThis.__fw_mocks__, built-in nodes use mock data
4
+ * instead of their default no-op/sleep behavior.
5
+ */
6
+ /**
7
+ * Read the mock config from globalThis, returning undefined if not set.
8
+ */
9
+ export function getMockConfig() {
10
+ return globalThis.__fw_mocks__;
11
+ }
12
+ //# sourceMappingURL=mock-types.js.map
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @flowWeaver nodeType
3
+ * @input eventName - Event name to wait for (e.g. "app/approval.received")
4
+ * @input [match] - Field to match between trigger and waited event (e.g. "data.requestId")
5
+ * @input [timeout] - Max wait time (e.g. "24h", "7d"). Empty = no timeout
6
+ * @output eventData - The received event's data payload
7
+ */
8
+ export declare function waitForEvent(execute: boolean, eventName: string, match?: string, timeout?: string): Promise<{
9
+ onSuccess: boolean;
10
+ onFailure: boolean;
11
+ eventData: object;
12
+ }>;
13
+ //# sourceMappingURL=wait-for-event.d.ts.map
@@ -0,0 +1,25 @@
1
+ import { getMockConfig } from './mock-types.js';
2
+ /**
3
+ * @flowWeaver nodeType
4
+ * @input eventName - Event name to wait for (e.g. "app/approval.received")
5
+ * @input [match] - Field to match between trigger and waited event (e.g. "data.requestId")
6
+ * @input [timeout] - Max wait time (e.g. "24h", "7d"). Empty = no timeout
7
+ * @output eventData - The received event's data payload
8
+ */
9
+ export async function waitForEvent(execute, eventName, match, timeout) {
10
+ if (!execute)
11
+ return { onSuccess: false, onFailure: false, eventData: {} };
12
+ const mocks = getMockConfig();
13
+ if (mocks) {
14
+ // Mock mode active — look up event data by name
15
+ const mockData = mocks.events?.[eventName];
16
+ if (mockData !== undefined) {
17
+ return { onSuccess: true, onFailure: false, eventData: mockData };
18
+ }
19
+ // No mock data for this event — simulate timeout
20
+ return { onSuccess: false, onFailure: true, eventData: {} };
21
+ }
22
+ // No mocks: original no-op behavior (always succeeds)
23
+ return { onSuccess: true, onFailure: false, eventData: {} };
24
+ }
25
+ //# sourceMappingURL=wait-for-event.js.map
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @module chevrotain-parser/connect-parser
3
+ *
4
+ * Parser for @connect declarations using Chevrotain.
5
+ */
6
+ export interface PortReference {
7
+ nodeId: string;
8
+ portName: string;
9
+ scope?: string;
10
+ }
11
+ export interface ConnectParseResult {
12
+ source: PortReference;
13
+ target: PortReference;
14
+ }
15
+ /**
16
+ * Parse a @connect line and return structured result.
17
+ * Returns null if the line is not a connect declaration.
18
+ */
19
+ export declare function parseConnectLine(input: string, warnings: string[]): ConnectParseResult | null;
20
+ /**
21
+ * Get serialized grammar for documentation/diagram generation.
22
+ */
23
+ export declare function getConnectGrammar(): import("chevrotain").ISerializedGast[];
24
+ //# sourceMappingURL=connect-parser.d.ts.map
@@ -0,0 +1,98 @@
1
+ /**
2
+ * @module chevrotain-parser/connect-parser
3
+ *
4
+ * Parser for @connect declarations using Chevrotain.
5
+ */
6
+ import { CstParser } from 'chevrotain';
7
+ import { JSDocLexer, ConnectTag, Identifier, Arrow, Dot, Colon, allTokens } from './tokens.js';
8
+ // =============================================================================
9
+ // Parser Definition
10
+ // =============================================================================
11
+ class ConnectParser extends CstParser {
12
+ constructor() {
13
+ super(allTokens);
14
+ this.performSelfAnalysis();
15
+ }
16
+ // Entry rule for connect line
17
+ connectLine = this.RULE('connectLine', () => {
18
+ this.CONSUME(ConnectTag);
19
+ this.SUBRULE(this.portRef, { LABEL: 'sourceRef' });
20
+ this.CONSUME(Arrow);
21
+ this.SUBRULE2(this.portRef, { LABEL: 'targetRef' });
22
+ });
23
+ // node.port or node.port:scope
24
+ portRef = this.RULE('portRef', () => {
25
+ this.CONSUME(Identifier, { LABEL: 'nodeId' });
26
+ this.CONSUME(Dot);
27
+ this.CONSUME2(Identifier, { LABEL: 'portName' });
28
+ this.OPTION(() => {
29
+ this.CONSUME(Colon);
30
+ this.CONSUME3(Identifier, { LABEL: 'scopeName' });
31
+ });
32
+ });
33
+ }
34
+ // =============================================================================
35
+ // Parser Instance (singleton)
36
+ // =============================================================================
37
+ const parserInstance = new ConnectParser();
38
+ // =============================================================================
39
+ // CST Visitor
40
+ // =============================================================================
41
+ const BaseVisitor = parserInstance.getBaseCstVisitorConstructor();
42
+ class ConnectVisitor extends BaseVisitor {
43
+ constructor() {
44
+ super();
45
+ this.validateVisitor();
46
+ }
47
+ connectLine(ctx) {
48
+ const source = this.visit(ctx.sourceRef);
49
+ const target = this.visit(ctx.targetRef);
50
+ return { source, target };
51
+ }
52
+ portRef(ctx) {
53
+ const nodeId = ctx.nodeId[0].image;
54
+ const portName = ctx.portName[0].image;
55
+ const scope = ctx.scopeName?.[0]?.image;
56
+ return { nodeId, portName, scope };
57
+ }
58
+ }
59
+ const visitorInstance = new ConnectVisitor();
60
+ // =============================================================================
61
+ // Public API
62
+ // =============================================================================
63
+ /**
64
+ * Parse a @connect line and return structured result.
65
+ * Returns null if the line is not a connect declaration.
66
+ */
67
+ export function parseConnectLine(input, warnings) {
68
+ const lexResult = JSDocLexer.tokenize(input);
69
+ if (lexResult.errors.length > 0) {
70
+ return null;
71
+ }
72
+ // Check if starts with @connect
73
+ if (lexResult.tokens.length === 0) {
74
+ return null;
75
+ }
76
+ const firstToken = lexResult.tokens[0];
77
+ if (firstToken.tokenType !== ConnectTag) {
78
+ return null;
79
+ }
80
+ parserInstance.input = lexResult.tokens;
81
+ const cst = parserInstance.connectLine();
82
+ if (parserInstance.errors.length > 0) {
83
+ const firstError = parserInstance.errors[0];
84
+ const truncatedInput = input.length > 60 ? input.substring(0, 60) + '...' : input;
85
+ warnings.push(`Failed to parse connect line: "${truncatedInput}"\n` +
86
+ ` Error: ${firstError.message}\n` +
87
+ ` Expected format: @connect sourceNode.port -> targetNode.port`);
88
+ return null;
89
+ }
90
+ return visitorInstance.visit(cst);
91
+ }
92
+ /**
93
+ * Get serialized grammar for documentation/diagram generation.
94
+ */
95
+ export function getConnectGrammar() {
96
+ return parserInstance.getSerializedGastProductions();
97
+ }
98
+ //# sourceMappingURL=connect-parser.js.map
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @module chevrotain-parser/grammar-diagrams
3
+ *
4
+ * Generates railroad diagrams for all JSDoc grammars using Chevrotain.
5
+ */
6
+ import { ISerializedGast } from 'chevrotain';
7
+ export declare function serializedToEBNF(productions: ISerializedGast[]): string;
8
+ export interface GrammarCollection {
9
+ port: ISerializedGast[];
10
+ node: ISerializedGast[];
11
+ connect: ISerializedGast[];
12
+ position: ISerializedGast[];
13
+ scope: ISerializedGast[];
14
+ path: ISerializedGast[];
15
+ }
16
+ /**
17
+ * Get all grammar productions as serialized GAST (Grammar AST).
18
+ */
19
+ export declare function getAllGrammars(): GrammarCollection;
20
+ /**
21
+ * Generate standalone HTML with railroad diagrams for all grammars.
22
+ * Uses Chevrotain's createSyntaxDiagramsCode which returns a complete HTML page.
23
+ */
24
+ export declare function generateGrammarDiagrams(): string;
25
+ /**
26
+ * Generate diagram HTML for a specific grammar.
27
+ */
28
+ export declare function generateGrammarDiagramFor(grammarName: keyof GrammarCollection): string;
29
+ //# sourceMappingURL=grammar-diagrams.d.ts.map