@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,306 @@
1
+ /**
2
+ * Pure pattern API — no I/O, no console, no filesystem writes.
3
+ *
4
+ * Provides business logic for listing patterns, applying patterns to workflows,
5
+ * and generating node type code. CLI and MCP layers call these functions
6
+ * and handle their own I/O.
7
+ */
8
+ import { glob } from 'glob';
9
+ import { AnnotationParser } from '../parser.js';
10
+ // ─── List Patterns ───────────────────────────────────────────────────────────
11
+ /**
12
+ * Parse a file and return metadata for all patterns found.
13
+ *
14
+ * Pure: reads file via AnnotationParser, returns structured data.
15
+ */
16
+ export function listPatterns(filePath) {
17
+ const parser = new AnnotationParser();
18
+ const result = parser.parse(filePath);
19
+ return result.patterns.map((p) => ({
20
+ name: p.name,
21
+ description: p.description,
22
+ inputPorts: Object.keys(p.inputPorts).map((name) => ({
23
+ name: `IN.${name}`,
24
+ description: p.inputPorts[name].description,
25
+ })),
26
+ outputPorts: Object.keys(p.outputPorts).map((name) => ({
27
+ name: `OUT.${name}`,
28
+ description: p.outputPorts[name].description,
29
+ })),
30
+ nodes: p.instances.map((i) => i.id),
31
+ }));
32
+ }
33
+ // ─── Apply Pattern ───────────────────────────────────────────────────────────
34
+ /**
35
+ * Compute the result of applying a pattern to a workflow.
36
+ *
37
+ * Pure: takes AST + content + options, returns the modified content
38
+ * and structured metadata (conflicts, wiring instructions, etc.).
39
+ * Does **not** write to disk.
40
+ */
41
+ export function applyPattern(options) {
42
+ const { patternAST: pattern, targetContent, targetNodeTypes, prefix } = options;
43
+ const nodePrefix = prefix ? `${prefix}_` : '';
44
+ // ── Conflict detection ──────────────────────────────────────────────
45
+ const conflicts = [];
46
+ for (const nodeType of pattern.nodeTypes) {
47
+ if (targetNodeTypes.has(nodeType.name)) {
48
+ conflicts.push(nodeType.name);
49
+ }
50
+ }
51
+ // ── Build @node declarations ────────────────────────────────────────
52
+ const nodeDeclarations = pattern.instances.map((inst) => ` * @node ${nodePrefix}${inst.id} ${inst.nodeType}`);
53
+ // ── Build @connect declarations + wiring instructions ───────────────
54
+ const connectDeclarations = [];
55
+ const wiringInstructions = [];
56
+ const wiringOperations = [];
57
+ for (const conn of pattern.connections) {
58
+ const fromNode = conn.from.node === 'IN' || conn.from.node === 'OUT'
59
+ ? conn.from.node
60
+ : `${nodePrefix}${conn.from.node}`;
61
+ const toNode = conn.to.node === 'IN' || conn.to.node === 'OUT'
62
+ ? conn.to.node
63
+ : `${nodePrefix}${conn.to.node}`;
64
+ if (conn.from.node === 'IN') {
65
+ wiringInstructions.push(`Connect to ${nodePrefix}${conn.to.node}.${conn.to.port} from IN.${conn.from.port}`);
66
+ wiringOperations.push({
67
+ operation: 'addConnection',
68
+ params: {
69
+ from: `<WIRE_FROM>.${conn.from.port}`,
70
+ to: `${nodePrefix}${conn.to.node}.${conn.to.port}`,
71
+ },
72
+ });
73
+ }
74
+ else if (conn.to.node === 'OUT') {
75
+ wiringInstructions.push(`Connect from ${nodePrefix}${conn.from.node}.${conn.from.port} to OUT.${conn.to.port}`);
76
+ wiringOperations.push({
77
+ operation: 'addConnection',
78
+ params: {
79
+ from: `${nodePrefix}${conn.from.node}.${conn.from.port}`,
80
+ to: `<WIRE_TO>.${conn.to.port}`,
81
+ },
82
+ });
83
+ }
84
+ else {
85
+ connectDeclarations.push(` * @connect ${fromNode}.${conn.from.port} -> ${toNode}.${conn.to.port}`);
86
+ }
87
+ }
88
+ // ── Build @position declarations ────────────────────────────────────
89
+ const positionDeclarations = pattern.instances
90
+ .filter((inst) => inst.config?.x !== undefined && inst.config?.y !== undefined)
91
+ .map((inst) => ` * @position ${nodePrefix}${inst.id} ${inst.config.x} ${inst.config.y}`);
92
+ // ── Generate node type functions (only non-conflicting) ─────────────
93
+ const nodeTypesAdded = [];
94
+ const nodeTypeFunctions = [];
95
+ for (const nodeType of pattern.nodeTypes) {
96
+ if (!targetNodeTypes.has(nodeType.name)) {
97
+ nodeTypesAdded.push(nodeType.name);
98
+ nodeTypeFunctions.push(generateNodeTypeCode(nodeType));
99
+ }
100
+ }
101
+ // ── Build annotation block ──────────────────────────────────────────
102
+ const annotationLines = [
103
+ `// --- Pattern: ${pattern.name} ${prefix ? `(prefix: ${prefix})` : ''} ---`,
104
+ ...nodeDeclarations,
105
+ ...connectDeclarations,
106
+ ...positionDeclarations,
107
+ ];
108
+ // ── Insert into target content ──────────────────────────────────────
109
+ const workflowMatch = targetContent.match(/\/\*\*[\s\S]*?@flowWeaver\s+workflow[\s\S]*?\*\//);
110
+ if (!workflowMatch) {
111
+ throw new Error('No @flowWeaver workflow found in target file');
112
+ }
113
+ const insertPosition = workflowMatch.index + workflowMatch[0].lastIndexOf('*/');
114
+ const newAnnotations = annotationLines.join('\n') + '\n ';
115
+ let modifiedContent = targetContent.slice(0, insertPosition) + newAnnotations + targetContent.slice(insertPosition);
116
+ // Strip @autoConnect when pattern adds explicit connections — the explicit @connect
117
+ // annotations would conflict with autoConnect (parser skips auto-wiring when connections exist)
118
+ if (connectDeclarations.length > 0 && modifiedContent.match(/@autoConnect\b/)) {
119
+ modifiedContent = modifiedContent.replace(/^\s*\*\s*@autoConnect\s*\n/m, '');
120
+ wiringInstructions.push('Note: @autoConnect was removed because the pattern adds explicit connections');
121
+ }
122
+ // Append node type functions at end (if not conflicting)
123
+ if (nodeTypeFunctions.length > 0) {
124
+ modifiedContent += '\n\n' + nodeTypeFunctions.join('\n\n');
125
+ }
126
+ return {
127
+ modifiedContent,
128
+ nodesAdded: pattern.instances.length,
129
+ connectionsAdded: connectDeclarations.length,
130
+ nodeTypesAdded,
131
+ conflicts,
132
+ wiringInstructions,
133
+ wiringOperations,
134
+ };
135
+ }
136
+ // ─── Generate Node Type Code ─────────────────────────────────────────────────
137
+ /**
138
+ * Generate a TypeScript stub for a node type.
139
+ *
140
+ * Produces a JSDoc-annotated function with the correct ports.
141
+ */
142
+ export function generateNodeTypeCode(nodeType) {
143
+ // If original source text is available, use it directly
144
+ if (nodeType.functionText) {
145
+ return nodeType.functionText;
146
+ }
147
+ const lines = [];
148
+ lines.push('/**');
149
+ lines.push(' * @flowWeaver nodeType');
150
+ if (nodeType.label) {
151
+ lines.push(` * @label ${nodeType.label}`);
152
+ }
153
+ for (const [name, port] of Object.entries(nodeType.inputs)) {
154
+ if (name === 'execute')
155
+ continue;
156
+ lines.push(` * @input ${name}${port.label ? ` - ${port.label}` : ''}`);
157
+ }
158
+ for (const [name, port] of Object.entries(nodeType.outputs)) {
159
+ if (name === 'onSuccess' || name === 'onFailure')
160
+ continue;
161
+ lines.push(` * @output ${name}${port.label ? ` - ${port.label}` : ''}`);
162
+ }
163
+ lines.push(' */');
164
+ const inputParams = Object.entries(nodeType.inputs)
165
+ .filter(([name]) => name !== 'execute')
166
+ .map(([name, port]) => `${name}: ${port.tsType || 'any'}`);
167
+ const outputFields = Object.entries(nodeType.outputs)
168
+ .filter(([name]) => name !== 'onSuccess' && name !== 'onFailure')
169
+ .map(([name, port]) => `${name}: ${port.tsType || 'any'}`);
170
+ lines.push(`function ${nodeType.name}(execute: boolean${inputParams.length > 0 ? ', ' + inputParams.join(', ') : ''}) {`);
171
+ lines.push(` if (!execute) return { onSuccess: false, onFailure: false${outputFields.map((f) => `, ${f.split(':')[0]}: null`).join('')} };`);
172
+ lines.push(` return { onSuccess: true, onFailure: false${outputFields.map((f) => `, ${f.split(':')[0]}: null`).join('')} };`);
173
+ lines.push('}');
174
+ return lines.join('\n');
175
+ }
176
+ // ─── Find Workflows ──────────────────────────────────────────────────────────
177
+ /**
178
+ * Scan a directory for files containing @flowWeaver workflow annotations
179
+ * and return structured metadata for each.
180
+ *
181
+ * Pure: reads files via AnnotationParser, returns structured data.
182
+ * Skips files that fail to parse.
183
+ */
184
+ export async function findWorkflows(directory, pattern) {
185
+ const files = await glob(pattern ?? '**/*.ts', { cwd: directory, absolute: true });
186
+ const parser = new AnnotationParser();
187
+ const results = [];
188
+ for (const file of files) {
189
+ try {
190
+ const parseResult = parser.parse(file);
191
+ if (parseResult.workflows.length > 0) {
192
+ results.push({
193
+ filePath: file,
194
+ workflows: parseResult.workflows.map((w) => ({
195
+ name: w.name,
196
+ functionName: w.functionName,
197
+ nodeCount: w.instances.length,
198
+ connectionCount: w.connections.length,
199
+ })),
200
+ });
201
+ }
202
+ }
203
+ catch {
204
+ // Skip files that fail to parse
205
+ }
206
+ }
207
+ return results;
208
+ }
209
+ // ─── Extract Pattern ─────────────────────────────────────────────────────────
210
+ /**
211
+ * Extract a reusable pattern from selected nodes in a workflow.
212
+ *
213
+ * Pure: takes AST + node IDs, returns pattern code and metadata.
214
+ * Does **not** write to disk.
215
+ */
216
+ export function extractPattern(options) {
217
+ const { workflowAST: workflow, nodeTypes, nodeIds, name } = options;
218
+ // Validate nodes exist
219
+ const instanceMap = new Map(workflow.instances.map((i) => [i.id, i]));
220
+ const missingNodes = nodeIds.filter((id) => !instanceMap.has(id));
221
+ if (missingNodes.length > 0) {
222
+ throw new Error(`Nodes not found: ${missingNodes.join(', ')}`);
223
+ }
224
+ // Get instances to extract
225
+ const extractedInstances = nodeIds.map((id) => instanceMap.get(id));
226
+ // Classify connections: internal, input boundary (IN), output boundary (OUT)
227
+ const nodeIdSet = new Set(nodeIds);
228
+ const internalConnections = [];
229
+ const boundaryConnections = [];
230
+ for (const conn of workflow.connections) {
231
+ const fromInSet = nodeIdSet.has(conn.from.node);
232
+ const toInSet = nodeIdSet.has(conn.to.node);
233
+ if (fromInSet && toInSet) {
234
+ internalConnections.push(conn);
235
+ }
236
+ else if (fromInSet && !toInSet) {
237
+ boundaryConnections.push({ type: 'OUT', conn });
238
+ }
239
+ else if (!fromInSet && toInSet) {
240
+ boundaryConnections.push({ type: 'IN', conn });
241
+ }
242
+ }
243
+ // Generate pattern name
244
+ const patternName = name || `extracted_${nodeIds.join('_')}`;
245
+ // Collect node types used by extracted instances
246
+ const usedNodeTypeNames = new Set(extractedInstances.map((i) => i.nodeType));
247
+ const usedNodeTypes = nodeTypes.filter((nt) => usedNodeTypeNames.has(nt.name));
248
+ // Generate pattern code
249
+ const lines = [];
250
+ lines.push('/**');
251
+ lines.push(` * @flowWeaver pattern`);
252
+ lines.push(` * @name ${patternName}`);
253
+ // Node declarations
254
+ for (const inst of extractedInstances) {
255
+ lines.push(` * @node ${inst.id} ${inst.nodeType}`);
256
+ }
257
+ // Internal connections
258
+ for (const conn of internalConnections) {
259
+ lines.push(` * @connect ${conn.from.node}.${conn.from.port} -> ${conn.to.node}.${conn.to.port}`);
260
+ }
261
+ // Boundary connections as IN/OUT
262
+ const inputPorts = [];
263
+ const outputPorts = [];
264
+ for (const { type, conn } of boundaryConnections) {
265
+ if (type === 'IN') {
266
+ const portName = conn.from.port;
267
+ inputPorts.push(portName);
268
+ lines.push(` * @connect IN.${portName} -> ${conn.to.node}.${conn.to.port}`);
269
+ }
270
+ else {
271
+ const portName = conn.to.port;
272
+ outputPorts.push(portName);
273
+ lines.push(` * @connect ${conn.from.node}.${conn.from.port} -> OUT.${portName}`);
274
+ }
275
+ }
276
+ // Port declarations
277
+ for (const port of [...new Set(inputPorts)]) {
278
+ lines.push(` * @port IN.${port}`);
279
+ }
280
+ for (const port of [...new Set(outputPorts)]) {
281
+ lines.push(` * @port OUT.${port}`);
282
+ }
283
+ // Positions
284
+ for (const inst of extractedInstances) {
285
+ if (inst.config?.x !== undefined && inst.config?.y !== undefined) {
286
+ lines.push(` * @position ${inst.id} ${inst.config.x} ${inst.config.y}`);
287
+ }
288
+ }
289
+ lines.push(' */');
290
+ lines.push('function patternPlaceholder() {}');
291
+ // Add node type functions
292
+ for (const nodeType of usedNodeTypes) {
293
+ lines.push('');
294
+ lines.push(generateNodeTypeCode(nodeType));
295
+ }
296
+ const patternCode = lines.join('\n');
297
+ return {
298
+ patternCode,
299
+ patternName,
300
+ nodes: nodeIds,
301
+ inputPorts: [...new Set(inputPorts)],
302
+ outputPorts: [...new Set(outputPorts)],
303
+ internalConnectionCount: internalConnections.length,
304
+ };
305
+ }
306
+ //# sourceMappingURL=patterns.js.map