@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,549 @@
1
+ /**
2
+ * Built-in Functions for Flow Weaver
3
+ *
4
+ * Registers common utility functions in the global function registry.
5
+ * These functions can be referenced by their string IDs in external HTTP calls.
6
+ */
7
+ import { functionRegistry } from './function-registry.js';
8
+ // ============================================================================
9
+ // String Transforms
10
+ // ============================================================================
11
+ functionRegistry.register({
12
+ id: 'string:uppercase',
13
+ name: 'Uppercase',
14
+ description: 'Convert string to uppercase',
15
+ category: 'transform',
16
+ fn: (input) => input.toUpperCase(),
17
+ inputType: 'string',
18
+ outputType: 'string',
19
+ examples: [{ input: 'hello', output: 'HELLO' }],
20
+ });
21
+ functionRegistry.register({
22
+ id: 'string:lowercase',
23
+ name: 'Lowercase',
24
+ description: 'Convert string to lowercase',
25
+ category: 'transform',
26
+ fn: (input) => input.toLowerCase(),
27
+ inputType: 'string',
28
+ outputType: 'string',
29
+ examples: [{ input: 'HELLO', output: 'hello' }],
30
+ });
31
+ functionRegistry.register({
32
+ id: 'string:trim',
33
+ name: 'Trim',
34
+ description: 'Remove whitespace from both ends of a string',
35
+ category: 'transform',
36
+ fn: (input) => input.trim(),
37
+ inputType: 'string',
38
+ outputType: 'string',
39
+ examples: [{ input: ' hello ', output: 'hello' }],
40
+ });
41
+ functionRegistry.register({
42
+ id: 'string:truncate',
43
+ name: 'Truncate',
44
+ description: 'Truncate string to specified length with ellipsis',
45
+ category: 'transform',
46
+ fn: (input) => {
47
+ const { text, maxLength, suffix = '...' } = input;
48
+ if (text.length <= maxLength)
49
+ return text;
50
+ return text.slice(0, maxLength - suffix.length) + suffix;
51
+ },
52
+ inputType: 'object',
53
+ outputType: 'string',
54
+ inputSchema: {
55
+ type: 'object',
56
+ properties: {
57
+ text: { type: 'string' },
58
+ maxLength: { type: 'number' },
59
+ suffix: { type: 'string', default: '...' },
60
+ },
61
+ required: ['text', 'maxLength'],
62
+ },
63
+ examples: [
64
+ { input: { text: 'Hello World', maxLength: 8 }, output: 'Hello...' },
65
+ ],
66
+ });
67
+ functionRegistry.register({
68
+ id: 'string:split',
69
+ name: 'Split',
70
+ description: 'Split string by delimiter',
71
+ category: 'transform',
72
+ fn: (input) => input.text.split(input.delimiter),
73
+ inputType: 'object',
74
+ outputType: 'array',
75
+ examples: [
76
+ { input: { text: 'a,b,c', delimiter: ',' }, output: ['a', 'b', 'c'] },
77
+ ],
78
+ });
79
+ functionRegistry.register({
80
+ id: 'string:join',
81
+ name: 'Join',
82
+ description: 'Join array elements with delimiter',
83
+ category: 'transform',
84
+ fn: (input) => input.items.join(input.delimiter),
85
+ inputType: 'object',
86
+ outputType: 'string',
87
+ examples: [
88
+ { input: { items: ['a', 'b', 'c'], delimiter: ',' }, output: 'a,b,c' },
89
+ ],
90
+ });
91
+ functionRegistry.register({
92
+ id: 'string:prefix',
93
+ name: 'Prefix',
94
+ description: 'Add prefix to string',
95
+ category: 'transform',
96
+ fn: (input) => input.prefix + input.text,
97
+ inputType: 'object',
98
+ outputType: 'string',
99
+ examples: [
100
+ { input: { text: 'world', prefix: 'hello ' }, output: 'hello world' },
101
+ ],
102
+ });
103
+ functionRegistry.register({
104
+ id: 'string:suffix',
105
+ name: 'Suffix',
106
+ description: 'Add suffix to string',
107
+ category: 'transform',
108
+ fn: (input) => input.text + input.suffix,
109
+ inputType: 'object',
110
+ outputType: 'string',
111
+ examples: [
112
+ { input: { text: 'hello', suffix: ' world' }, output: 'hello world' },
113
+ ],
114
+ });
115
+ // ============================================================================
116
+ // Number Transforms
117
+ // ============================================================================
118
+ functionRegistry.register({
119
+ id: 'number:double',
120
+ name: 'Double',
121
+ description: 'Double a number',
122
+ category: 'transform',
123
+ fn: (input) => input * 2,
124
+ inputType: 'number',
125
+ outputType: 'number',
126
+ examples: [{ input: 5, output: 10 }],
127
+ });
128
+ functionRegistry.register({
129
+ id: 'number:round',
130
+ name: 'Round',
131
+ description: 'Round a number to specified decimal places',
132
+ category: 'transform',
133
+ fn: (input) => {
134
+ const { value, decimals = 0 } = input;
135
+ const factor = Math.pow(10, decimals);
136
+ return Math.round(value * factor) / factor;
137
+ },
138
+ inputType: 'object',
139
+ outputType: 'number',
140
+ examples: [
141
+ { input: { value: 3.14159, decimals: 2 }, output: 3.14 },
142
+ ],
143
+ });
144
+ functionRegistry.register({
145
+ id: 'number:clamp',
146
+ name: 'Clamp',
147
+ description: 'Clamp a number between min and max values',
148
+ category: 'transform',
149
+ fn: (input) => {
150
+ const { value, min, max } = input;
151
+ return Math.min(Math.max(value, min), max);
152
+ },
153
+ inputType: 'object',
154
+ outputType: 'number',
155
+ inputSchema: {
156
+ type: 'object',
157
+ properties: {
158
+ value: { type: 'number' },
159
+ min: { type: 'number' },
160
+ max: { type: 'number' },
161
+ },
162
+ required: ['value', 'min', 'max'],
163
+ },
164
+ examples: [
165
+ { input: { value: 150, min: 0, max: 100 }, output: 100 },
166
+ { input: { value: -10, min: 0, max: 100 }, output: 0 },
167
+ { input: { value: 50, min: 0, max: 100 }, output: 50 },
168
+ ],
169
+ });
170
+ functionRegistry.register({
171
+ id: 'number:abs',
172
+ name: 'Absolute',
173
+ description: 'Get absolute value of a number',
174
+ category: 'transform',
175
+ fn: (input) => Math.abs(input),
176
+ inputType: 'number',
177
+ outputType: 'number',
178
+ examples: [{ input: -5, output: 5 }],
179
+ });
180
+ functionRegistry.register({
181
+ id: 'number:negate',
182
+ name: 'Negate',
183
+ description: 'Negate a number',
184
+ category: 'transform',
185
+ fn: (input) => -input,
186
+ inputType: 'number',
187
+ outputType: 'number',
188
+ examples: [{ input: 5, output: -5 }],
189
+ });
190
+ // ============================================================================
191
+ // Array Transforms
192
+ // ============================================================================
193
+ functionRegistry.register({
194
+ id: 'array:first',
195
+ name: 'First',
196
+ description: 'Get first element of array',
197
+ category: 'transform',
198
+ fn: (input) => input[0],
199
+ inputType: 'array',
200
+ outputType: 'any',
201
+ examples: [{ input: [1, 2, 3], output: 1 }],
202
+ });
203
+ functionRegistry.register({
204
+ id: 'array:last',
205
+ name: 'Last',
206
+ description: 'Get last element of array',
207
+ category: 'transform',
208
+ fn: (input) => input[input.length - 1],
209
+ inputType: 'array',
210
+ outputType: 'any',
211
+ examples: [{ input: [1, 2, 3], output: 3 }],
212
+ });
213
+ functionRegistry.register({
214
+ id: 'array:reverse',
215
+ name: 'Reverse',
216
+ description: 'Reverse array order',
217
+ category: 'transform',
218
+ fn: (input) => [...input].reverse(),
219
+ inputType: 'array',
220
+ outputType: 'array',
221
+ examples: [{ input: [1, 2, 3], output: [3, 2, 1] }],
222
+ });
223
+ functionRegistry.register({
224
+ id: 'array:unique',
225
+ name: 'Unique',
226
+ description: 'Remove duplicate elements from array',
227
+ category: 'transform',
228
+ fn: (input) => [...new Set(input)],
229
+ inputType: 'array',
230
+ outputType: 'array',
231
+ examples: [{ input: [1, 2, 2, 3, 3, 3], output: [1, 2, 3] }],
232
+ });
233
+ functionRegistry.register({
234
+ id: 'array:flatten',
235
+ name: 'Flatten',
236
+ description: 'Flatten nested arrays by one level',
237
+ category: 'transform',
238
+ fn: (input) => input.flat(),
239
+ inputType: 'array',
240
+ outputType: 'array',
241
+ examples: [{ input: [[1, 2], [3, 4]], output: [1, 2, 3, 4] }],
242
+ });
243
+ functionRegistry.register({
244
+ id: 'array:sort',
245
+ name: 'Sort',
246
+ description: 'Sort array elements',
247
+ category: 'transform',
248
+ fn: (input) => [...input].sort(),
249
+ inputType: 'array',
250
+ outputType: 'array',
251
+ examples: [{ input: [3, 1, 2], output: [1, 2, 3] }],
252
+ });
253
+ functionRegistry.register({
254
+ id: 'array:length',
255
+ name: 'Length',
256
+ description: 'Get array length',
257
+ category: 'transform',
258
+ fn: (input) => input.length,
259
+ inputType: 'array',
260
+ outputType: 'number',
261
+ examples: [{ input: [1, 2, 3], output: 3 }],
262
+ });
263
+ // ============================================================================
264
+ // Object Transforms
265
+ // ============================================================================
266
+ functionRegistry.register({
267
+ id: 'object:pick',
268
+ name: 'Pick',
269
+ description: 'Pick specified keys from object',
270
+ category: 'transform',
271
+ fn: (input) => {
272
+ const { obj, keys } = input;
273
+ const result = {};
274
+ for (const key of keys) {
275
+ if (key in obj) {
276
+ result[key] = obj[key];
277
+ }
278
+ }
279
+ return result;
280
+ },
281
+ inputType: 'object',
282
+ outputType: 'object',
283
+ examples: [
284
+ { input: { obj: { a: 1, b: 2, c: 3 }, keys: ['a', 'c'] }, output: { a: 1, c: 3 } },
285
+ ],
286
+ });
287
+ functionRegistry.register({
288
+ id: 'object:omit',
289
+ name: 'Omit',
290
+ description: 'Omit specified keys from object',
291
+ category: 'transform',
292
+ fn: (input) => {
293
+ const { obj, keys } = input;
294
+ const keySet = new Set(keys);
295
+ const result = {};
296
+ for (const key in obj) {
297
+ if (!keySet.has(key)) {
298
+ result[key] = obj[key];
299
+ }
300
+ }
301
+ return result;
302
+ },
303
+ inputType: 'object',
304
+ outputType: 'object',
305
+ examples: [
306
+ { input: { obj: { a: 1, b: 2, c: 3 }, keys: ['b'] }, output: { a: 1, c: 3 } },
307
+ ],
308
+ });
309
+ functionRegistry.register({
310
+ id: 'object:get',
311
+ name: 'Get',
312
+ description: 'Get value at path from object',
313
+ category: 'transform',
314
+ fn: (input) => {
315
+ const { obj, path } = input;
316
+ const keys = path.split('.');
317
+ let current = obj;
318
+ for (const key of keys) {
319
+ if (current === null || current === undefined)
320
+ return undefined;
321
+ current = current[key];
322
+ }
323
+ return current;
324
+ },
325
+ inputType: 'object',
326
+ outputType: 'any',
327
+ examples: [
328
+ { input: { obj: { a: { b: { c: 42 } } }, path: 'a.b.c' }, output: 42 },
329
+ ],
330
+ });
331
+ functionRegistry.register({
332
+ id: 'object:keys',
333
+ name: 'Keys',
334
+ description: 'Get object keys',
335
+ category: 'transform',
336
+ fn: (input) => Object.keys(input),
337
+ inputType: 'object',
338
+ outputType: 'array',
339
+ examples: [
340
+ { input: { a: 1, b: 2 }, output: ['a', 'b'] },
341
+ ],
342
+ });
343
+ functionRegistry.register({
344
+ id: 'object:values',
345
+ name: 'Values',
346
+ description: 'Get object values',
347
+ category: 'transform',
348
+ fn: (input) => Object.values(input),
349
+ inputType: 'object',
350
+ outputType: 'array',
351
+ examples: [
352
+ { input: { a: 1, b: 2 }, output: [1, 2] },
353
+ ],
354
+ });
355
+ // ============================================================================
356
+ // Filters
357
+ // ============================================================================
358
+ functionRegistry.register({
359
+ id: 'filter:truthy',
360
+ name: 'Truthy',
361
+ description: 'Filter to only truthy values',
362
+ category: 'filter',
363
+ fn: (input) => input.filter(Boolean),
364
+ inputType: 'array',
365
+ outputType: 'array',
366
+ examples: [{ input: [0, 1, '', 'hello', null, true], output: [1, 'hello', true] }],
367
+ });
368
+ functionRegistry.register({
369
+ id: 'filter:nonEmpty',
370
+ name: 'Non-Empty',
371
+ description: 'Filter out empty strings and arrays',
372
+ category: 'filter',
373
+ fn: (input) => input.filter((x) => {
374
+ if (typeof x === 'string')
375
+ return x.length > 0;
376
+ if (Array.isArray(x))
377
+ return x.length > 0;
378
+ return true;
379
+ }),
380
+ inputType: 'array',
381
+ outputType: 'array',
382
+ examples: [{ input: ['hello', '', 'world', []], output: ['hello', 'world'] }],
383
+ });
384
+ functionRegistry.register({
385
+ id: 'filter:greaterThan',
386
+ name: 'Greater Than',
387
+ description: 'Filter numbers greater than threshold',
388
+ category: 'filter',
389
+ fn: (input) => input.items.filter((n) => n > input.threshold),
390
+ inputType: 'object',
391
+ outputType: 'array',
392
+ examples: [
393
+ { input: { items: [1, 5, 10, 15], threshold: 7 }, output: [10, 15] },
394
+ ],
395
+ });
396
+ functionRegistry.register({
397
+ id: 'filter:lessThan',
398
+ name: 'Less Than',
399
+ description: 'Filter numbers less than threshold',
400
+ category: 'filter',
401
+ fn: (input) => input.items.filter((n) => n < input.threshold),
402
+ inputType: 'object',
403
+ outputType: 'array',
404
+ examples: [
405
+ { input: { items: [1, 5, 10, 15], threshold: 7 }, output: [1, 5] },
406
+ ],
407
+ });
408
+ // ============================================================================
409
+ // Validators
410
+ // ============================================================================
411
+ functionRegistry.register({
412
+ id: 'validate:email',
413
+ name: 'Email',
414
+ description: 'Validate email address format',
415
+ category: 'validate',
416
+ fn: (input) => {
417
+ const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
418
+ return emailRegex.test(input);
419
+ },
420
+ inputType: 'string',
421
+ outputType: 'boolean',
422
+ examples: [
423
+ { input: 'test@example.com', output: true },
424
+ { input: 'invalid', output: false },
425
+ ],
426
+ });
427
+ functionRegistry.register({
428
+ id: 'validate:url',
429
+ name: 'URL',
430
+ description: 'Validate URL format',
431
+ category: 'validate',
432
+ fn: (input) => {
433
+ try {
434
+ new URL(input);
435
+ return true;
436
+ }
437
+ catch {
438
+ return false;
439
+ }
440
+ },
441
+ inputType: 'string',
442
+ outputType: 'boolean',
443
+ examples: [
444
+ { input: 'https://example.com', output: true },
445
+ { input: 'not-a-url', output: false },
446
+ ],
447
+ });
448
+ functionRegistry.register({
449
+ id: 'validate:nonEmpty',
450
+ name: 'Non-Empty',
451
+ description: 'Validate string is not empty',
452
+ category: 'validate',
453
+ fn: (input) => input.trim().length > 0,
454
+ inputType: 'string',
455
+ outputType: 'boolean',
456
+ examples: [
457
+ { input: 'hello', output: true },
458
+ { input: '', output: false },
459
+ { input: ' ', output: false },
460
+ ],
461
+ });
462
+ functionRegistry.register({
463
+ id: 'validate:numeric',
464
+ name: 'Numeric',
465
+ description: 'Validate string is numeric',
466
+ category: 'validate',
467
+ fn: (input) => !isNaN(Number(input)) && input.trim() !== '',
468
+ inputType: 'string',
469
+ outputType: 'boolean',
470
+ examples: [
471
+ { input: '123', output: true },
472
+ { input: '12.34', output: true },
473
+ { input: 'abc', output: false },
474
+ ],
475
+ });
476
+ // ============================================================================
477
+ // Formatters
478
+ // ============================================================================
479
+ functionRegistry.register({
480
+ id: 'format:json',
481
+ name: 'JSON',
482
+ description: 'Format value as JSON string',
483
+ category: 'format',
484
+ fn: (input) => JSON.stringify(input, null, 2),
485
+ inputType: 'any',
486
+ outputType: 'string',
487
+ examples: [
488
+ { input: { a: 1 }, output: '{\n "a": 1\n}' },
489
+ ],
490
+ });
491
+ functionRegistry.register({
492
+ id: 'format:jsonCompact',
493
+ name: 'JSON Compact',
494
+ description: 'Format value as compact JSON string',
495
+ category: 'format',
496
+ fn: (input) => JSON.stringify(input),
497
+ inputType: 'any',
498
+ outputType: 'string',
499
+ examples: [
500
+ { input: { a: 1 }, output: '{"a":1}' },
501
+ ],
502
+ });
503
+ functionRegistry.register({
504
+ id: 'format:date',
505
+ name: 'Date',
506
+ description: 'Format date to ISO string or custom format',
507
+ category: 'format',
508
+ fn: (input) => {
509
+ const date = input instanceof Date ? input : new Date(input);
510
+ return date.toISOString();
511
+ },
512
+ inputType: 'any',
513
+ outputType: 'string',
514
+ examples: [
515
+ { input: '2024-01-15', output: '2024-01-15T00:00:00.000Z' },
516
+ ],
517
+ });
518
+ functionRegistry.register({
519
+ id: 'format:currency',
520
+ name: 'Currency',
521
+ description: 'Format number as currency',
522
+ category: 'format',
523
+ fn: (input) => {
524
+ const { value, currency = 'USD', locale = 'en-US' } = input;
525
+ return new Intl.NumberFormat(locale, { style: 'currency', currency }).format(value);
526
+ },
527
+ inputType: 'object',
528
+ outputType: 'string',
529
+ examples: [
530
+ { input: { value: 1234.56 }, output: '$1,234.56' },
531
+ ],
532
+ });
533
+ functionRegistry.register({
534
+ id: 'format:percentage',
535
+ name: 'Percentage',
536
+ description: 'Format number as percentage',
537
+ category: 'format',
538
+ fn: (input) => {
539
+ const { value, decimals = 0 } = input;
540
+ return `${(value * 100).toFixed(decimals)}%`;
541
+ },
542
+ inputType: 'object',
543
+ outputType: 'string',
544
+ examples: [
545
+ { input: { value: 0.75 }, output: '75%' },
546
+ { input: { value: 0.756, decimals: 1 }, output: '75.6%' },
547
+ ],
548
+ });
549
+ //# sourceMappingURL=builtin-functions.js.map
@@ -0,0 +1,50 @@
1
+ export type TStatusType = "RUNNING" | "SCHEDULED" | "SUCCEEDED" | "FAILED" | "CANCELLED" | "PENDING";
2
+ export type TVariableIdentification = {
3
+ nodeTypeName: string;
4
+ id: string;
5
+ scope?: string;
6
+ side?: "start" | "exit";
7
+ portName: string;
8
+ executionIndex: number;
9
+ key?: string;
10
+ };
11
+ export type TStatusChangedEvent = {
12
+ type: "STATUS_CHANGED";
13
+ nodeTypeName: string;
14
+ id: string;
15
+ scope?: string;
16
+ side?: "start" | "exit";
17
+ executionIndex: number;
18
+ status: TStatusType;
19
+ innerFlowInvocation?: boolean;
20
+ };
21
+ export type TVariableSetEvent = {
22
+ type: "VARIABLE_SET";
23
+ identifier: TVariableIdentification;
24
+ value?: unknown;
25
+ innerFlowInvocation?: boolean;
26
+ };
27
+ export type TErrorLogEvent = {
28
+ type: "LOG_ERROR";
29
+ nodeTypeName: string;
30
+ id: string;
31
+ scope?: string;
32
+ side?: "start" | "exit";
33
+ executionIndex: number;
34
+ error: string;
35
+ innerFlowInvocation?: boolean;
36
+ };
37
+ export type TWorkflowCompletedEvent = {
38
+ type: "WORKFLOW_COMPLETED";
39
+ executionIndex: number;
40
+ status: "SUCCEEDED" | "FAILED" | "CANCELLED";
41
+ result?: unknown;
42
+ innerFlowInvocation?: boolean;
43
+ };
44
+ export type TEvent = TStatusChangedEvent | TVariableSetEvent | TErrorLogEvent | TWorkflowCompletedEvent;
45
+ export type TDebugger = {
46
+ sendEvent: (event: TEvent) => void;
47
+ innerFlowInvocation: boolean;
48
+ sessionId?: string;
49
+ };
50
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Function Registry for Flow Weaver
3
+ *
4
+ * Provides a global registry of functions that can be referenced by string IDs
5
+ * in external HTTP calls while allowing direct function passing in internal calls.
6
+ */
7
+ export type FunctionCategory = 'transform' | 'filter' | 'validate' | 'format' | 'custom';
8
+ export interface RegisteredFunction<TIn = unknown, TOut = unknown> {
9
+ id: string;
10
+ name: string;
11
+ description: string;
12
+ category: FunctionCategory;
13
+ fn: (input: TIn) => TOut | Promise<TOut>;
14
+ inputType: string;
15
+ outputType: string;
16
+ inputSchema?: Record<string, unknown>;
17
+ outputSchema?: Record<string, unknown>;
18
+ examples?: Array<{
19
+ input: TIn;
20
+ output: TOut;
21
+ }>;
22
+ }
23
+ export type RegisteredFunctionMetadata = Omit<RegisteredFunction, 'fn'>;
24
+ export declare class FunctionRegistry {
25
+ private functions;
26
+ /**
27
+ * Register a function with the registry
28
+ */
29
+ register<TIn, TOut>(config: RegisteredFunction<TIn, TOut>): void;
30
+ /**
31
+ * Get a function by ID
32
+ */
33
+ get<TIn, TOut>(id: string): ((input: TIn) => TOut | Promise<TOut>) | undefined;
34
+ /**
35
+ * Get function metadata without the function itself
36
+ */
37
+ getMetadata(id: string): RegisteredFunctionMetadata | undefined;
38
+ /**
39
+ * List all registered functions, optionally filtered by category
40
+ */
41
+ list(category?: FunctionCategory): RegisteredFunctionMetadata[];
42
+ /**
43
+ * Check if a function is registered
44
+ */
45
+ has(id: string): boolean;
46
+ /**
47
+ * Clear all registered functions (useful for testing)
48
+ */
49
+ clear(): void;
50
+ /**
51
+ * Get the count of registered functions
52
+ */
53
+ get size(): number;
54
+ }
55
+ /**
56
+ * Global function registry singleton
57
+ */
58
+ export declare const functionRegistry: FunctionRegistry;
59
+ //# sourceMappingURL=function-registry.d.ts.map