@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.
- package/LICENSE +122 -0
- package/README.md +315 -0
- package/dist/annotation-generator.d.ts +45 -0
- package/dist/annotation-generator.js +557 -0
- package/dist/api/builder.d.ts +223 -0
- package/dist/api/builder.js +345 -0
- package/dist/api/compile.d.ts +92 -0
- package/dist/api/compile.js +149 -0
- package/dist/api/extract-types.d.ts +29 -0
- package/dist/api/extract-types.js +57 -0
- package/dist/api/generate-in-place.d.ts +73 -0
- package/dist/api/generate-in-place.js +1353 -0
- package/dist/api/generate.d.ts +83 -0
- package/dist/api/generate.js +510 -0
- package/dist/api/helpers.d.ts +248 -0
- package/dist/api/helpers.js +285 -0
- package/dist/api/index.d.ts +46 -0
- package/dist/api/index.js +45 -0
- package/dist/api/inline-runtime.d.ts +27 -0
- package/dist/api/inline-runtime.js +551 -0
- package/dist/api/manipulation/connections.d.ts +79 -0
- package/dist/api/manipulation/connections.js +151 -0
- package/dist/api/manipulation/index.d.ts +34 -0
- package/dist/api/manipulation/index.js +41 -0
- package/dist/api/manipulation/node-types.d.ts +123 -0
- package/dist/api/manipulation/node-types.js +200 -0
- package/dist/api/manipulation/nodes.d.ts +144 -0
- package/dist/api/manipulation/nodes.js +333 -0
- package/dist/api/manipulation/ports.d.ts +59 -0
- package/dist/api/manipulation/ports.js +228 -0
- package/dist/api/manipulation/scopes.d.ts +52 -0
- package/dist/api/manipulation/scopes.js +156 -0
- package/dist/api/manipulation/validation.d.ts +6 -0
- package/dist/api/manipulation/validation.js +6 -0
- package/dist/api/manipulation/workflow.d.ts +81 -0
- package/dist/api/manipulation/workflow.js +116 -0
- package/dist/api/manipulation.d.ts +8 -0
- package/dist/api/manipulation.js +8 -0
- package/dist/api/parse.d.ts +48 -0
- package/dist/api/parse.js +110 -0
- package/dist/api/patterns.d.ts +112 -0
- package/dist/api/patterns.js +306 -0
- package/dist/api/query.d.ts +429 -0
- package/dist/api/query.js +816 -0
- package/dist/api/templates.d.ts +98 -0
- package/dist/api/templates.js +117 -0
- package/dist/api/transform.d.ts +31 -0
- package/dist/api/transform.js +40 -0
- package/dist/api/validate.d.ts +25 -0
- package/dist/api/validate.js +39 -0
- package/dist/api/workflow-file-operations.d.ts +29 -0
- package/dist/api/workflow-file-operations.js +180 -0
- package/dist/ast/builder.d.ts +210 -0
- package/dist/ast/builder.js +395 -0
- package/dist/ast/index.d.ts +5 -0
- package/dist/ast/index.js +5 -0
- package/dist/ast/serialization-node.d.ts +6 -0
- package/dist/ast/serialization-node.js +30 -0
- package/dist/ast/serialization.d.ts +43 -0
- package/dist/ast/serialization.js +134 -0
- package/dist/ast/types.d.ts +852 -0
- package/dist/ast/types.js +2 -0
- package/dist/ast/workflow-utils.d.ts +54 -0
- package/dist/ast/workflow-utils.js +114 -0
- package/dist/body-generator.d.ts +31 -0
- package/dist/body-generator.js +35 -0
- package/dist/built-in-nodes/delay.d.ts +11 -0
- package/dist/built-in-nodes/delay.js +29 -0
- package/dist/built-in-nodes/index.d.ts +5 -0
- package/dist/built-in-nodes/index.js +4 -0
- package/dist/built-in-nodes/invoke-workflow.d.ts +13 -0
- package/dist/built-in-nodes/invoke-workflow.js +25 -0
- package/dist/built-in-nodes/mock-types.d.ts +18 -0
- package/dist/built-in-nodes/mock-types.js +12 -0
- package/dist/built-in-nodes/wait-for-event.d.ts +13 -0
- package/dist/built-in-nodes/wait-for-event.js +25 -0
- package/dist/chevrotain-parser/connect-parser.d.ts +24 -0
- package/dist/chevrotain-parser/connect-parser.js +98 -0
- package/dist/chevrotain-parser/grammar-diagrams.d.ts +29 -0
- package/dist/chevrotain-parser/grammar-diagrams.js +264 -0
- package/dist/chevrotain-parser/index.d.ts +25 -0
- package/dist/chevrotain-parser/index.js +27 -0
- package/dist/chevrotain-parser/map-parser.d.ts +33 -0
- package/dist/chevrotain-parser/map-parser.js +130 -0
- package/dist/chevrotain-parser/node-parser.d.ts +36 -0
- package/dist/chevrotain-parser/node-parser.js +466 -0
- package/dist/chevrotain-parser/path-parser.d.ts +28 -0
- package/dist/chevrotain-parser/path-parser.js +118 -0
- package/dist/chevrotain-parser/port-parser.d.ts +36 -0
- package/dist/chevrotain-parser/port-parser.js +442 -0
- package/dist/chevrotain-parser/position-parser.d.ts +20 -0
- package/dist/chevrotain-parser/position-parser.js +83 -0
- package/dist/chevrotain-parser/scope-parser.d.ts +19 -0
- package/dist/chevrotain-parser/scope-parser.js +104 -0
- package/dist/chevrotain-parser/tokens.d.ts +78 -0
- package/dist/chevrotain-parser/tokens.js +384 -0
- package/dist/chevrotain-parser/trigger-cancel-parser.d.ts +50 -0
- package/dist/chevrotain-parser/trigger-cancel-parser.js +282 -0
- package/dist/cli/commands/changelog.d.ts +13 -0
- package/dist/cli/commands/changelog.js +135 -0
- package/dist/cli/commands/compile.d.ts +64 -0
- package/dist/cli/commands/compile.js +278 -0
- package/dist/cli/commands/create.d.ts +33 -0
- package/dist/cli/commands/create.js +147 -0
- package/dist/cli/commands/describe.d.ts +68 -0
- package/dist/cli/commands/describe.js +377 -0
- package/dist/cli/commands/dev.d.ts +32 -0
- package/dist/cli/commands/dev.js +384 -0
- package/dist/cli/commands/diagram.d.ts +13 -0
- package/dist/cli/commands/diagram.js +33 -0
- package/dist/cli/commands/diff.d.ts +11 -0
- package/dist/cli/commands/diff.js +59 -0
- package/dist/cli/commands/doctor.d.ts +57 -0
- package/dist/cli/commands/doctor.js +719 -0
- package/dist/cli/commands/export.d.ts +57 -0
- package/dist/cli/commands/export.js +163 -0
- package/dist/cli/commands/grammar.d.ts +9 -0
- package/dist/cli/commands/grammar.js +39 -0
- package/dist/cli/commands/init.d.ts +59 -0
- package/dist/cli/commands/init.js +435 -0
- package/dist/cli/commands/listen.d.ts +16 -0
- package/dist/cli/commands/listen.js +39 -0
- package/dist/cli/commands/market.d.ts +52 -0
- package/dist/cli/commands/market.js +436 -0
- package/dist/cli/commands/migrate.d.ts +13 -0
- package/dist/cli/commands/migrate.js +89 -0
- package/dist/cli/commands/openapi.d.ts +37 -0
- package/dist/cli/commands/openapi.js +67 -0
- package/dist/cli/commands/pattern.d.ts +34 -0
- package/dist/cli/commands/pattern.js +185 -0
- package/dist/cli/commands/plugin.d.ts +16 -0
- package/dist/cli/commands/plugin.js +176 -0
- package/dist/cli/commands/run.d.ts +49 -0
- package/dist/cli/commands/run.js +191 -0
- package/dist/cli/commands/serve.d.ts +45 -0
- package/dist/cli/commands/serve.js +81 -0
- package/dist/cli/commands/templates.d.ts +8 -0
- package/dist/cli/commands/templates.js +54 -0
- package/dist/cli/commands/ui.d.ts +16 -0
- package/dist/cli/commands/ui.js +130 -0
- package/dist/cli/commands/validate.d.ts +12 -0
- package/dist/cli/commands/validate.js +247 -0
- package/dist/cli/commands/watch.d.ts +9 -0
- package/dist/cli/commands/watch.js +70 -0
- package/dist/cli/flow-weaver.mjs +92924 -0
- package/dist/cli/index.d.ts +9 -0
- package/dist/cli/index.js +742 -0
- package/dist/cli/templates/ai/mock-provider.d.ts +7 -0
- package/dist/cli/templates/ai/mock-provider.js +64 -0
- package/dist/cli/templates/ai/types.d.ts +47 -0
- package/dist/cli/templates/ai/types.js +5 -0
- package/dist/cli/templates/approvals/index.d.ts +15 -0
- package/dist/cli/templates/approvals/index.js +241 -0
- package/dist/cli/templates/index.d.ts +102 -0
- package/dist/cli/templates/index.js +101 -0
- package/dist/cli/templates/nodes/agent-router.d.ts +3 -0
- package/dist/cli/templates/nodes/agent-router.js +114 -0
- package/dist/cli/templates/nodes/aggregator.d.ts +7 -0
- package/dist/cli/templates/nodes/aggregator.js +63 -0
- package/dist/cli/templates/nodes/conversation-memory.d.ts +3 -0
- package/dist/cli/templates/nodes/conversation-memory.js +85 -0
- package/dist/cli/templates/nodes/http.d.ts +7 -0
- package/dist/cli/templates/nodes/http.js +80 -0
- package/dist/cli/templates/nodes/human-approval.d.ts +3 -0
- package/dist/cli/templates/nodes/human-approval.js +110 -0
- package/dist/cli/templates/nodes/json-extractor.d.ts +3 -0
- package/dist/cli/templates/nodes/json-extractor.js +119 -0
- package/dist/cli/templates/nodes/llm-call.d.ts +3 -0
- package/dist/cli/templates/nodes/llm-call.js +106 -0
- package/dist/cli/templates/nodes/prompt-template.d.ts +3 -0
- package/dist/cli/templates/nodes/prompt-template.js +52 -0
- package/dist/cli/templates/nodes/rag-retriever.d.ts +3 -0
- package/dist/cli/templates/nodes/rag-retriever.js +128 -0
- package/dist/cli/templates/nodes/tool-executor.d.ts +3 -0
- package/dist/cli/templates/nodes/tool-executor.js +108 -0
- package/dist/cli/templates/nodes/transformer.d.ts +7 -0
- package/dist/cli/templates/nodes/transformer.js +68 -0
- package/dist/cli/templates/nodes/validator.d.ts +7 -0
- package/dist/cli/templates/nodes/validator.js +62 -0
- package/dist/cli/templates/providers/index.d.ts +14 -0
- package/dist/cli/templates/providers/index.js +239 -0
- package/dist/cli/templates/shared/approval-types.d.ts +9 -0
- package/dist/cli/templates/shared/approval-types.js +31 -0
- package/dist/cli/templates/shared/llm-types.d.ts +15 -0
- package/dist/cli/templates/shared/llm-types.js +104 -0
- package/dist/cli/templates/workflows/aggregator.d.ts +7 -0
- package/dist/cli/templates/workflows/aggregator.js +104 -0
- package/dist/cli/templates/workflows/ai-agent-durable.d.ts +8 -0
- package/dist/cli/templates/workflows/ai-agent-durable.js +338 -0
- package/dist/cli/templates/workflows/ai-agent.d.ts +31 -0
- package/dist/cli/templates/workflows/ai-agent.js +326 -0
- package/dist/cli/templates/workflows/ai-chat.d.ts +7 -0
- package/dist/cli/templates/workflows/ai-chat.js +169 -0
- package/dist/cli/templates/workflows/ai-pipeline-durable.d.ts +8 -0
- package/dist/cli/templates/workflows/ai-pipeline-durable.js +330 -0
- package/dist/cli/templates/workflows/ai-rag.d.ts +7 -0
- package/dist/cli/templates/workflows/ai-rag.js +186 -0
- package/dist/cli/templates/workflows/ai-react.d.ts +7 -0
- package/dist/cli/templates/workflows/ai-react.js +294 -0
- package/dist/cli/templates/workflows/conditional.d.ts +12 -0
- package/dist/cli/templates/workflows/conditional.js +142 -0
- package/dist/cli/templates/workflows/error-handler.d.ts +7 -0
- package/dist/cli/templates/workflows/error-handler.js +147 -0
- package/dist/cli/templates/workflows/foreach.d.ts +7 -0
- package/dist/cli/templates/workflows/foreach.js +143 -0
- package/dist/cli/templates/workflows/sequential.d.ts +7 -0
- package/dist/cli/templates/workflows/sequential.js +198 -0
- package/dist/cli/templates/workflows/webhook.d.ts +7 -0
- package/dist/cli/templates/workflows/webhook.js +161 -0
- package/dist/cli/utils/logger.d.ts +15 -0
- package/dist/cli/utils/logger.js +46 -0
- package/dist/constants.d.ts +100 -0
- package/dist/constants.js +125 -0
- package/dist/defaults.d.ts +3 -0
- package/dist/defaults.js +3 -0
- package/dist/deployment/config/defaults.d.ts +29 -0
- package/dist/deployment/config/defaults.js +98 -0
- package/dist/deployment/config/loader.d.ts +24 -0
- package/dist/deployment/config/loader.js +236 -0
- package/dist/deployment/config/types.d.ts +117 -0
- package/dist/deployment/config/types.js +5 -0
- package/dist/deployment/core/adapters.d.ts +90 -0
- package/dist/deployment/core/adapters.js +251 -0
- package/dist/deployment/core/executor.d.ts +62 -0
- package/dist/deployment/core/executor.js +197 -0
- package/dist/deployment/core/formatters.d.ts +57 -0
- package/dist/deployment/core/formatters.js +170 -0
- package/dist/deployment/index.d.ts +31 -0
- package/dist/deployment/index.js +48 -0
- package/dist/deployment/openapi/generator.d.ts +146 -0
- package/dist/deployment/openapi/generator.js +347 -0
- package/dist/deployment/openapi/schema-converter.d.ts +49 -0
- package/dist/deployment/openapi/schema-converter.js +192 -0
- package/dist/deployment/targets/base.d.ts +316 -0
- package/dist/deployment/targets/base.js +823 -0
- package/dist/deployment/targets/cloudflare.d.ts +23 -0
- package/dist/deployment/targets/cloudflare.js +1125 -0
- package/dist/deployment/targets/inngest.d.ts +38 -0
- package/dist/deployment/targets/inngest.js +926 -0
- package/dist/deployment/targets/lambda.d.ts +23 -0
- package/dist/deployment/targets/lambda.js +1289 -0
- package/dist/deployment/targets/vercel.d.ts +23 -0
- package/dist/deployment/targets/vercel.js +886 -0
- package/dist/deployment/types.d.ts +183 -0
- package/dist/deployment/types.js +8 -0
- package/dist/diagram/geometry.d.ts +26 -0
- package/dist/diagram/geometry.js +850 -0
- package/dist/diagram/index.d.ts +16 -0
- package/dist/diagram/index.js +42 -0
- package/dist/diagram/layout.d.ts +11 -0
- package/dist/diagram/layout.js +143 -0
- package/dist/diagram/orthogonal-router.d.ts +79 -0
- package/dist/diagram/orthogonal-router.js +568 -0
- package/dist/diagram/renderer.d.ts +3 -0
- package/dist/diagram/renderer.js +207 -0
- package/dist/diagram/theme.d.ts +20 -0
- package/dist/diagram/theme.js +189 -0
- package/dist/diagram/types.d.ts +70 -0
- package/dist/diagram/types.js +2 -0
- package/dist/diff/WorkflowDiffer.d.ts +13 -0
- package/dist/diff/WorkflowDiffer.js +429 -0
- package/dist/diff/formatDiff.d.ts +10 -0
- package/dist/diff/formatDiff.js +220 -0
- package/dist/diff/impact.d.ts +29 -0
- package/dist/diff/impact.js +119 -0
- package/dist/diff/index.d.ts +10 -0
- package/dist/diff/index.js +9 -0
- package/dist/diff/types.d.ts +138 -0
- package/dist/diff/types.js +35 -0
- package/dist/doc-metadata/extractors/annotations.d.ts +56 -0
- package/dist/doc-metadata/extractors/annotations.js +337 -0
- package/dist/doc-metadata/extractors/cli-commands.d.ts +17 -0
- package/dist/doc-metadata/extractors/cli-commands.js +355 -0
- package/dist/doc-metadata/extractors/mcp-tools.d.ts +16 -0
- package/dist/doc-metadata/extractors/mcp-tools.js +689 -0
- package/dist/doc-metadata/extractors/plugin-api.d.ts +19 -0
- package/dist/doc-metadata/extractors/plugin-api.js +279 -0
- package/dist/doc-metadata/index.d.ts +5 -0
- package/dist/doc-metadata/index.js +4 -0
- package/dist/doc-metadata/types.d.ts +120 -0
- package/dist/doc-metadata/types.js +5 -0
- package/dist/editor-completions/annotationValues.d.ts +12 -0
- package/dist/editor-completions/annotationValues.js +138 -0
- package/dist/editor-completions/contextParser.d.ts +40 -0
- package/dist/editor-completions/contextParser.js +410 -0
- package/dist/editor-completions/dataTypes.d.ts +16 -0
- package/dist/editor-completions/dataTypes.js +95 -0
- package/dist/editor-completions/goToDefinition.d.ts +27 -0
- package/dist/editor-completions/goToDefinition.js +112 -0
- package/dist/editor-completions/index.d.ts +39 -0
- package/dist/editor-completions/index.js +181 -0
- package/dist/editor-completions/jsDocAnnotations.d.ts +29 -0
- package/dist/editor-completions/jsDocAnnotations.js +357 -0
- package/dist/editor-completions/modifierCompletions.d.ts +17 -0
- package/dist/editor-completions/modifierCompletions.js +197 -0
- package/dist/editor-completions/types.d.ts +119 -0
- package/dist/editor-completions/types.js +8 -0
- package/dist/export/index.d.ts +68 -0
- package/dist/export/index.js +1074 -0
- package/dist/export/templates.d.ts +24 -0
- package/dist/export/templates.js +186 -0
- package/dist/friendly-errors.d.ts +35 -0
- package/dist/friendly-errors.js +375 -0
- package/dist/function-like.d.ts +38 -0
- package/dist/function-like.js +83 -0
- package/dist/generated-branding.d.ts +16 -0
- package/dist/generated-branding.js +22 -0
- package/dist/generator/async-detection.d.ts +27 -0
- package/dist/generator/async-detection.js +56 -0
- package/dist/generator/code-utils.d.ts +76 -0
- package/dist/generator/code-utils.js +410 -0
- package/dist/generator/control-flow.d.ts +54 -0
- package/dist/generator/control-flow.js +284 -0
- package/dist/generator/inngest.d.ts +53 -0
- package/dist/generator/inngest.js +1126 -0
- package/dist/generator/scope-function-generator.d.ts +78 -0
- package/dist/generator/scope-function-generator.js +360 -0
- package/dist/generator/unified.d.ts +42 -0
- package/dist/generator/unified.js +1504 -0
- package/dist/generator.d.ts +54 -0
- package/dist/generator.js +100 -0
- package/dist/index.d.ts +85 -0
- package/dist/index.js +89 -0
- package/dist/jsdoc-parser.d.ts +308 -0
- package/dist/jsdoc-parser.js +923 -0
- package/dist/jsdoc-port-sync/constants.d.ts +41 -0
- package/dist/jsdoc-port-sync/constants.js +103 -0
- package/dist/jsdoc-port-sync/diff.d.ts +76 -0
- package/dist/jsdoc-port-sync/diff.js +319 -0
- package/dist/jsdoc-port-sync/index.d.ts +42 -0
- package/dist/jsdoc-port-sync/index.js +45 -0
- package/dist/jsdoc-port-sync/port-parser.d.ts +68 -0
- package/dist/jsdoc-port-sync/port-parser.js +579 -0
- package/dist/jsdoc-port-sync/rename.d.ts +21 -0
- package/dist/jsdoc-port-sync/rename.js +256 -0
- package/dist/jsdoc-port-sync/signature-parser.d.ts +104 -0
- package/dist/jsdoc-port-sync/signature-parser.js +559 -0
- package/dist/jsdoc-port-sync/sync.d.ts +36 -0
- package/dist/jsdoc-port-sync/sync.js +644 -0
- package/dist/jsdoc-port-sync.d.ts +10 -0
- package/dist/jsdoc-port-sync.js +10 -0
- package/dist/marketplace/index.d.ts +11 -0
- package/dist/marketplace/index.js +10 -0
- package/dist/marketplace/manifest.d.ts +32 -0
- package/dist/marketplace/manifest.js +176 -0
- package/dist/marketplace/registry.d.ts +30 -0
- package/dist/marketplace/registry.js +100 -0
- package/dist/marketplace/types.d.ts +154 -0
- package/dist/marketplace/types.js +9 -0
- package/dist/marketplace/validator.d.ts +13 -0
- package/dist/marketplace/validator.js +131 -0
- package/dist/mcp/auto-registration.d.ts +3 -0
- package/dist/mcp/auto-registration.js +62 -0
- package/dist/mcp/editor-connection.d.ts +50 -0
- package/dist/mcp/editor-connection.js +125 -0
- package/dist/mcp/event-buffer.d.ts +62 -0
- package/dist/mcp/event-buffer.js +150 -0
- package/dist/mcp/index.d.ts +12 -0
- package/dist/mcp/index.js +11 -0
- package/dist/mcp/resources.d.ts +14 -0
- package/dist/mcp/resources.js +55 -0
- package/dist/mcp/response-utils.d.ts +63 -0
- package/dist/mcp/response-utils.js +89 -0
- package/dist/mcp/server.d.ts +4 -0
- package/dist/mcp/server.js +99 -0
- package/dist/mcp/tools-diagram.d.ts +8 -0
- package/dist/mcp/tools-diagram.js +53 -0
- package/dist/mcp/tools-editor.d.ts +5 -0
- package/dist/mcp/tools-editor.js +190 -0
- package/dist/mcp/tools-export.d.ts +9 -0
- package/dist/mcp/tools-export.js +180 -0
- package/dist/mcp/tools-marketplace.d.ts +9 -0
- package/dist/mcp/tools-marketplace.js +132 -0
- package/dist/mcp/tools-pattern.d.ts +3 -0
- package/dist/mcp/tools-pattern.js +783 -0
- package/dist/mcp/tools-query.d.ts +3 -0
- package/dist/mcp/tools-query.js +364 -0
- package/dist/mcp/tools-template.d.ts +10 -0
- package/dist/mcp/tools-template.js +119 -0
- package/dist/mcp/types.d.ts +70 -0
- package/dist/mcp/types.js +8 -0
- package/dist/mcp/workflow-executor.d.ts +47 -0
- package/dist/mcp/workflow-executor.js +133 -0
- package/dist/migration/registry.d.ts +30 -0
- package/dist/migration/registry.js +29 -0
- package/dist/node-types-generator.d.ts +49 -0
- package/dist/node-types-generator.js +139 -0
- package/dist/npm-packages.d.ts +56 -0
- package/dist/npm-packages.js +255 -0
- package/dist/parser.d.ts +204 -0
- package/dist/parser.js +2100 -0
- package/dist/plugin/PluginPanel.d.ts +12 -0
- package/dist/plugin/PluginPanel.js +5 -0
- package/dist/plugin/index.d.ts +13 -0
- package/dist/plugin/index.js +14 -0
- package/dist/plugin/types.d.ts +75 -0
- package/dist/plugin/types.js +8 -0
- package/dist/resolve-package-types.d.ts +17 -0
- package/dist/resolve-package-types.js +123 -0
- package/dist/runtime/CancellationError.d.ts +11 -0
- package/dist/runtime/CancellationError.js +20 -0
- package/dist/runtime/ExecutionContext.d.ts +146 -0
- package/dist/runtime/ExecutionContext.js +235 -0
- package/dist/runtime/builtin-functions.d.ts +8 -0
- package/dist/runtime/builtin-functions.js +549 -0
- package/dist/runtime/events.d.ts +50 -0
- package/dist/runtime/events.js +2 -0
- package/dist/runtime/function-registry.d.ts +59 -0
- package/dist/runtime/function-registry.js +66 -0
- package/dist/runtime/index.d.ts +7 -0
- package/dist/runtime/index.js +7 -0
- package/dist/runtime/parameter-resolver.d.ts +62 -0
- package/dist/runtime/parameter-resolver.js +113 -0
- package/dist/server/index.d.ts +7 -0
- package/dist/server/index.js +6 -0
- package/dist/server/types.d.ts +93 -0
- package/dist/server/types.js +5 -0
- package/dist/server/webhook-server.d.ts +50 -0
- package/dist/server/webhook-server.js +269 -0
- package/dist/server/workflow-registry.d.ts +61 -0
- package/dist/server/workflow-registry.js +202 -0
- package/dist/shared-project.d.ts +9 -0
- package/dist/shared-project.js +28 -0
- package/dist/sugar-optimizer.d.ts +40 -0
- package/dist/sugar-optimizer.js +387 -0
- package/dist/testing/assertions.d.ts +51 -0
- package/dist/testing/assertions.js +127 -0
- package/dist/testing/index.d.ts +30 -0
- package/dist/testing/index.js +24 -0
- package/dist/testing/mock-approval.d.ts +81 -0
- package/dist/testing/mock-approval.js +98 -0
- package/dist/testing/mock-llm.d.ts +124 -0
- package/dist/testing/mock-llm.js +119 -0
- package/dist/testing/recorder.d.ts +72 -0
- package/dist/testing/recorder.js +70 -0
- package/dist/testing/replayer.d.ts +56 -0
- package/dist/testing/replayer.js +143 -0
- package/dist/testing/token-tracker.d.ts +71 -0
- package/dist/testing/token-tracker.js +94 -0
- package/dist/type-checker.d.ts +42 -0
- package/dist/type-checker.js +190 -0
- package/dist/type-mappings.d.ts +29 -0
- package/dist/type-mappings.js +125 -0
- package/dist/types/branded-ports.d.ts +151 -0
- package/dist/types/branded-ports.js +121 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.js +5 -0
- package/dist/types.d.ts +139 -0
- package/dist/types.js +15 -0
- package/dist/utils/error-utils.d.ts +15 -0
- package/dist/utils/error-utils.js +27 -0
- package/dist/utils/lru-cache.d.ts +15 -0
- package/dist/utils/lru-cache.js +40 -0
- package/dist/utils/port-ordering.d.ts +26 -0
- package/dist/utils/port-ordering.js +88 -0
- package/dist/utils/port-tag-utils.d.ts +23 -0
- package/dist/utils/port-tag-utils.js +41 -0
- package/dist/utils/string-distance.d.ts +14 -0
- package/dist/utils/string-distance.js +56 -0
- package/dist/validation/agent-detection.d.ts +33 -0
- package/dist/validation/agent-detection.js +115 -0
- package/dist/validation/agent-rules.d.ts +48 -0
- package/dist/validation/agent-rules.js +262 -0
- package/dist/validator.d.ts +92 -0
- package/dist/validator.js +970 -0
- package/package.json +109 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mock LLM provider for testing/development
|
|
3
|
+
* Replace with real provider (OpenAI, Anthropic, etc.)
|
|
4
|
+
*/
|
|
5
|
+
import type { LLMProvider } from './types.js';
|
|
6
|
+
export declare const createMockProvider: () => LLMProvider;
|
|
7
|
+
//# sourceMappingURL=mock-provider.d.ts.map
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
export const createMockProvider = () => ({
|
|
2
|
+
async chat(messages, options) {
|
|
3
|
+
const lastMessage = messages[messages.length - 1];
|
|
4
|
+
// Simulate tool calling if tools provided
|
|
5
|
+
if (options?.tools && options.tools.length > 0) {
|
|
6
|
+
const shouldCallTool = lastMessage.content.toLowerCase().includes('search') ||
|
|
7
|
+
lastMessage.content.toLowerCase().includes('calculate');
|
|
8
|
+
if (shouldCallTool) {
|
|
9
|
+
return {
|
|
10
|
+
content: null,
|
|
11
|
+
toolCalls: [
|
|
12
|
+
{
|
|
13
|
+
id: `call_${Date.now()}`,
|
|
14
|
+
name: options.tools[0].name,
|
|
15
|
+
arguments: { query: lastMessage.content },
|
|
16
|
+
},
|
|
17
|
+
],
|
|
18
|
+
finishReason: 'tool_calls',
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return {
|
|
23
|
+
content: `[Mock Response to: ${lastMessage.content.slice(0, 50)}...]`,
|
|
24
|
+
toolCalls: [],
|
|
25
|
+
finishReason: 'stop',
|
|
26
|
+
};
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
// Example real provider adapter (in comments for user reference)
|
|
30
|
+
/*
|
|
31
|
+
import OpenAI from 'openai';
|
|
32
|
+
|
|
33
|
+
export const createOpenAIProvider = (apiKey: string): LLMProvider => {
|
|
34
|
+
const client = new OpenAI({ apiKey });
|
|
35
|
+
|
|
36
|
+
return {
|
|
37
|
+
async chat(messages, options) {
|
|
38
|
+
const response = await client.chat.completions.create({
|
|
39
|
+
model: options?.model ?? 'gpt-4',
|
|
40
|
+
messages: messages.map(m => ({ role: m.role, content: m.content })),
|
|
41
|
+
tools: options?.tools?.map(t => ({ type: 'function', function: t })),
|
|
42
|
+
temperature: options?.temperature,
|
|
43
|
+
max_tokens: options?.maxTokens,
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
const choice = response.choices[0];
|
|
47
|
+
return {
|
|
48
|
+
content: choice.message.content,
|
|
49
|
+
toolCalls: choice.message.tool_calls?.map(tc => ({
|
|
50
|
+
id: tc.id,
|
|
51
|
+
name: tc.function.name,
|
|
52
|
+
arguments: JSON.parse(tc.function.arguments)
|
|
53
|
+
})) ?? [],
|
|
54
|
+
finishReason: choice.finish_reason as any,
|
|
55
|
+
usage: response.usage ? {
|
|
56
|
+
promptTokens: response.usage.prompt_tokens,
|
|
57
|
+
completionTokens: response.usage.completion_tokens
|
|
58
|
+
} : undefined
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
*/
|
|
64
|
+
//# sourceMappingURL=mock-provider.js.map
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provider-agnostic LLM types for Flow Weaver AI templates
|
|
3
|
+
*/
|
|
4
|
+
export interface LLMMessage {
|
|
5
|
+
role: 'system' | 'user' | 'assistant' | 'tool';
|
|
6
|
+
content: string;
|
|
7
|
+
toolCallId?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface LLMTool {
|
|
10
|
+
name: string;
|
|
11
|
+
description: string;
|
|
12
|
+
parameters: {
|
|
13
|
+
type: 'object';
|
|
14
|
+
properties: Record<string, {
|
|
15
|
+
type: string;
|
|
16
|
+
description?: string;
|
|
17
|
+
enum?: string[];
|
|
18
|
+
}>;
|
|
19
|
+
required?: string[];
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export interface LLMToolCall {
|
|
23
|
+
id: string;
|
|
24
|
+
name: string;
|
|
25
|
+
arguments: Record<string, unknown>;
|
|
26
|
+
}
|
|
27
|
+
export interface LLMResponse {
|
|
28
|
+
content: string | null;
|
|
29
|
+
toolCalls: LLMToolCall[];
|
|
30
|
+
finishReason: 'stop' | 'tool_calls' | 'length' | 'error';
|
|
31
|
+
usage?: {
|
|
32
|
+
promptTokens: number;
|
|
33
|
+
completionTokens: number;
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
export interface LLMOptions {
|
|
37
|
+
model?: string;
|
|
38
|
+
temperature?: number;
|
|
39
|
+
maxTokens?: number;
|
|
40
|
+
tools?: LLMTool[];
|
|
41
|
+
systemPrompt?: string;
|
|
42
|
+
}
|
|
43
|
+
export interface LLMProvider {
|
|
44
|
+
chat(messages: LLMMessage[], options?: LLMOptions): Promise<LLMResponse>;
|
|
45
|
+
}
|
|
46
|
+
export type LLMProviderFactory = () => LLMProvider;
|
|
47
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Approval Strategy Code Generators
|
|
3
|
+
* Generate approval provider implementation code for different strategies.
|
|
4
|
+
*
|
|
5
|
+
* Mirrors the LLM provider pattern in providers/index.ts.
|
|
6
|
+
*/
|
|
7
|
+
export declare function generateMockApproval(): string;
|
|
8
|
+
export declare function generateCallbackApproval(): string;
|
|
9
|
+
export declare function generateWebhookApproval(): string;
|
|
10
|
+
/**
|
|
11
|
+
* Get approval provider code for a given strategy.
|
|
12
|
+
* Mirrors getProviderCode() from providers/index.ts.
|
|
13
|
+
*/
|
|
14
|
+
export declare function getApprovalCode(strategy: string): string;
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Approval Strategy Code Generators
|
|
3
|
+
* Generate approval provider implementation code for different strategies.
|
|
4
|
+
*
|
|
5
|
+
* Mirrors the LLM provider pattern in providers/index.ts.
|
|
6
|
+
*/
|
|
7
|
+
export function generateMockApproval() {
|
|
8
|
+
return `/* ============================================================
|
|
9
|
+
* MOCK APPROVAL PROVIDER (For Testing)
|
|
10
|
+
* Auto-approves all requests. Replace with a real strategy for production.
|
|
11
|
+
* ============================================================ */
|
|
12
|
+
|
|
13
|
+
const _defaultApprovalProvider: ApprovalProvider = {
|
|
14
|
+
async requestApproval(request) {
|
|
15
|
+
console.log('[Mock Approval] Auto-approving:', request.prompt);
|
|
16
|
+
return {
|
|
17
|
+
approved: true,
|
|
18
|
+
response: 'Auto-approved (mock)',
|
|
19
|
+
reviewer: 'system',
|
|
20
|
+
};
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
const approvalProvider: ApprovalProvider = (globalThis as unknown as { __fw_approval_provider__?: ApprovalProvider }).__fw_approval_provider__ ?? _defaultApprovalProvider;`;
|
|
25
|
+
}
|
|
26
|
+
export function generateCallbackApproval() {
|
|
27
|
+
return `/* ============================================================
|
|
28
|
+
* CALLBACK APPROVAL PROVIDER
|
|
29
|
+
*
|
|
30
|
+
* Pauses the workflow on a Promise. Call resolveApproval() from
|
|
31
|
+
* your HTTP handler, webhook, or external system to resume.
|
|
32
|
+
*
|
|
33
|
+
* Example integration:
|
|
34
|
+
* app.post('/approve/:id', (req, res) => {
|
|
35
|
+
* resolveApproval(req.params.id, true, req.body.response, req.body.reviewer);
|
|
36
|
+
* res.json({ ok: true });
|
|
37
|
+
* });
|
|
38
|
+
* ============================================================ */
|
|
39
|
+
|
|
40
|
+
const _pendingApprovals = new Map<string, {
|
|
41
|
+
resolve: (result: ApprovalResult) => void;
|
|
42
|
+
request: ApprovalRequest;
|
|
43
|
+
createdAt: number;
|
|
44
|
+
}>();
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Resolve a pending approval. Call this from your HTTP handler or external system.
|
|
48
|
+
* Returns true if the approval was found and resolved, false if not found.
|
|
49
|
+
*/
|
|
50
|
+
function resolveApproval(
|
|
51
|
+
id: string,
|
|
52
|
+
approved: boolean,
|
|
53
|
+
response?: string,
|
|
54
|
+
reviewer?: string,
|
|
55
|
+
): boolean {
|
|
56
|
+
const pending = _pendingApprovals.get(id);
|
|
57
|
+
if (!pending) return false;
|
|
58
|
+
pending.resolve({ approved, response, reviewer });
|
|
59
|
+
_pendingApprovals.delete(id);
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/** Get all currently pending approval requests */
|
|
64
|
+
function getPendingApprovals(): Array<{ id: string; request: ApprovalRequest; createdAt: number }> {
|
|
65
|
+
return [..._pendingApprovals.entries()].map(([id, entry]) => ({
|
|
66
|
+
id,
|
|
67
|
+
request: entry.request,
|
|
68
|
+
createdAt: entry.createdAt,
|
|
69
|
+
}));
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
const _defaultApprovalProvider: ApprovalProvider = {
|
|
73
|
+
async requestApproval(request) {
|
|
74
|
+
const id = request.id || crypto.randomUUID();
|
|
75
|
+
console.log(\`[Approval] Waiting for approval: \${id} — "\${request.prompt}"\`);
|
|
76
|
+
|
|
77
|
+
return new Promise<ApprovalResult>((resolve) => {
|
|
78
|
+
_pendingApprovals.set(id, { resolve, request, createdAt: Date.now() });
|
|
79
|
+
|
|
80
|
+
// Set up timeout if specified
|
|
81
|
+
if (request.timeout) {
|
|
82
|
+
const ms = parseTimeout(request.timeout);
|
|
83
|
+
if (ms > 0) {
|
|
84
|
+
setTimeout(() => {
|
|
85
|
+
if (_pendingApprovals.has(id)) {
|
|
86
|
+
_pendingApprovals.delete(id);
|
|
87
|
+
resolve({ approved: false, response: 'Timed out' });
|
|
88
|
+
}
|
|
89
|
+
}, ms);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
},
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
/** Parse timeout string like "7d", "24h", "30m" to milliseconds */
|
|
97
|
+
function parseTimeout(timeout: string): number {
|
|
98
|
+
const match = timeout.match(/^(\\d+)\\s*(ms|s|m|h|d)$/);
|
|
99
|
+
if (!match) return 0;
|
|
100
|
+
const value = parseInt(match[1], 10);
|
|
101
|
+
const unit = match[2];
|
|
102
|
+
const multipliers: Record<string, number> = { ms: 1, s: 1000, m: 60000, h: 3600000, d: 86400000 };
|
|
103
|
+
return value * (multipliers[unit] ?? 0);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
const approvalProvider: ApprovalProvider = (globalThis as unknown as { __fw_approval_provider__?: ApprovalProvider }).__fw_approval_provider__ ?? _defaultApprovalProvider;`;
|
|
107
|
+
}
|
|
108
|
+
export function generateWebhookApproval() {
|
|
109
|
+
return `/* ============================================================
|
|
110
|
+
* WEBHOOK APPROVAL PROVIDER
|
|
111
|
+
*
|
|
112
|
+
* Extends the callback pattern with a ready-made request handler.
|
|
113
|
+
* Mount createApprovalHandler() in your HTTP framework:
|
|
114
|
+
*
|
|
115
|
+
* Express: app.use('/approvals', createApprovalHandler());
|
|
116
|
+
* Hono: app.route('/approvals', createApprovalHandler());
|
|
117
|
+
* Node.js: http.createServer(createApprovalHandler());
|
|
118
|
+
*
|
|
119
|
+
* Endpoints:
|
|
120
|
+
* POST /approve/:id — Approve a request (body: { response?, reviewer? })
|
|
121
|
+
* POST /reject/:id — Reject a request (body: { response?, reviewer? })
|
|
122
|
+
* GET /pending — List pending approvals
|
|
123
|
+
* ============================================================ */
|
|
124
|
+
|
|
125
|
+
const _pendingApprovals = new Map<string, {
|
|
126
|
+
resolve: (result: ApprovalResult) => void;
|
|
127
|
+
request: ApprovalRequest;
|
|
128
|
+
createdAt: number;
|
|
129
|
+
}>();
|
|
130
|
+
|
|
131
|
+
function resolveApproval(
|
|
132
|
+
id: string,
|
|
133
|
+
approved: boolean,
|
|
134
|
+
response?: string,
|
|
135
|
+
reviewer?: string,
|
|
136
|
+
): boolean {
|
|
137
|
+
const pending = _pendingApprovals.get(id);
|
|
138
|
+
if (!pending) return false;
|
|
139
|
+
pending.resolve({ approved, response, reviewer });
|
|
140
|
+
_pendingApprovals.delete(id);
|
|
141
|
+
return true;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
function getPendingApprovals(): Array<{ id: string; request: ApprovalRequest; createdAt: number }> {
|
|
145
|
+
return [..._pendingApprovals.entries()].map(([id, entry]) => ({
|
|
146
|
+
id,
|
|
147
|
+
request: entry.request,
|
|
148
|
+
createdAt: entry.createdAt,
|
|
149
|
+
}));
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/** Parse timeout string like "7d", "24h", "30m" to milliseconds */
|
|
153
|
+
function parseTimeout(timeout: string): number {
|
|
154
|
+
const match = timeout.match(/^(\\d+)\\s*(ms|s|m|h|d)$/);
|
|
155
|
+
if (!match) return 0;
|
|
156
|
+
const value = parseInt(match[1], 10);
|
|
157
|
+
const unit = match[2];
|
|
158
|
+
const multipliers: Record<string, number> = { ms: 1, s: 1000, m: 60000, h: 3600000, d: 86400000 };
|
|
159
|
+
return value * (multipliers[unit] ?? 0);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Creates an HTTP request handler for approval webhooks.
|
|
164
|
+
* Returns a function compatible with Node.js http.createServer(),
|
|
165
|
+
* or mount it as middleware in Express/Hono/Fastify.
|
|
166
|
+
*/
|
|
167
|
+
function createApprovalHandler(): (req: { method?: string; url?: string; }, res: { writeHead: (status: number, headers?: Record<string, string>) => void; end: (body?: string) => void; }) => Promise<void> {
|
|
168
|
+
return async (req, res) => {
|
|
169
|
+
const url = req.url ?? '';
|
|
170
|
+
const method = req.method ?? 'GET';
|
|
171
|
+
|
|
172
|
+
// GET /pending
|
|
173
|
+
if (method === 'GET' && url.match(/\\/pending\\/?$/)) {
|
|
174
|
+
res.writeHead(200, { 'Content-Type': 'application/json' });
|
|
175
|
+
res.end(JSON.stringify({ pending: getPendingApprovals() }));
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
// POST /approve/:id or POST /reject/:id
|
|
180
|
+
const match = url.match(/\\/(approve|reject)\\/([^/?]+)/);
|
|
181
|
+
if (method === 'POST' && match) {
|
|
182
|
+
const [, action, id] = match;
|
|
183
|
+
const resolved = resolveApproval(
|
|
184
|
+
id,
|
|
185
|
+
action === 'approve',
|
|
186
|
+
undefined,
|
|
187
|
+
undefined,
|
|
188
|
+
);
|
|
189
|
+
res.writeHead(resolved ? 200 : 404, { 'Content-Type': 'application/json' });
|
|
190
|
+
res.end(JSON.stringify({ resolved, id, action }));
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
res.writeHead(404);
|
|
195
|
+
res.end('Not found');
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
const _defaultApprovalProvider: ApprovalProvider = {
|
|
200
|
+
async requestApproval(request) {
|
|
201
|
+
const id = request.id || crypto.randomUUID();
|
|
202
|
+
console.log(\`[Approval Webhook] Waiting for approval: \${id} — "\${request.prompt}"\`);
|
|
203
|
+
console.log(\` POST /approve/\${id} to approve\`);
|
|
204
|
+
console.log(\` POST /reject/\${id} to reject\`);
|
|
205
|
+
|
|
206
|
+
return new Promise<ApprovalResult>((resolve) => {
|
|
207
|
+
_pendingApprovals.set(id, { resolve, request, createdAt: Date.now() });
|
|
208
|
+
|
|
209
|
+
if (request.timeout) {
|
|
210
|
+
const ms = parseTimeout(request.timeout);
|
|
211
|
+
if (ms > 0) {
|
|
212
|
+
setTimeout(() => {
|
|
213
|
+
if (_pendingApprovals.has(id)) {
|
|
214
|
+
_pendingApprovals.delete(id);
|
|
215
|
+
resolve({ approved: false, response: 'Timed out' });
|
|
216
|
+
}
|
|
217
|
+
}, ms);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
});
|
|
221
|
+
},
|
|
222
|
+
};
|
|
223
|
+
|
|
224
|
+
const approvalProvider: ApprovalProvider = (globalThis as unknown as { __fw_approval_provider__?: ApprovalProvider }).__fw_approval_provider__ ?? _defaultApprovalProvider;`;
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Get approval provider code for a given strategy.
|
|
228
|
+
* Mirrors getProviderCode() from providers/index.ts.
|
|
229
|
+
*/
|
|
230
|
+
export function getApprovalCode(strategy) {
|
|
231
|
+
switch (strategy) {
|
|
232
|
+
case 'callback':
|
|
233
|
+
return generateCallbackApproval();
|
|
234
|
+
case 'webhook':
|
|
235
|
+
return generateWebhookApproval();
|
|
236
|
+
case 'mock':
|
|
237
|
+
default:
|
|
238
|
+
return generateMockApproval();
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Flow Weaver Template Registry
|
|
3
|
+
* Central registry for workflow and node templates
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Configuration field types
|
|
7
|
+
*/
|
|
8
|
+
export type ConfigFieldType = 'select' | 'string' | 'boolean' | 'number';
|
|
9
|
+
/**
|
|
10
|
+
* A configuration field definition
|
|
11
|
+
*/
|
|
12
|
+
export interface ConfigField {
|
|
13
|
+
type: ConfigFieldType;
|
|
14
|
+
label: string;
|
|
15
|
+
description?: string;
|
|
16
|
+
default?: unknown;
|
|
17
|
+
options?: Array<{
|
|
18
|
+
value: string;
|
|
19
|
+
label: string;
|
|
20
|
+
}>;
|
|
21
|
+
placeholder?: string;
|
|
22
|
+
dependsOn?: {
|
|
23
|
+
field: string;
|
|
24
|
+
values: string[];
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Configuration schema for a template
|
|
29
|
+
*/
|
|
30
|
+
export interface ConfigSchema {
|
|
31
|
+
[fieldName: string]: ConfigField;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Options for generating a workflow template
|
|
35
|
+
*/
|
|
36
|
+
export interface WorkflowTemplateOptions {
|
|
37
|
+
/** Name for the workflow function */
|
|
38
|
+
workflowName: string;
|
|
39
|
+
/** Whether to generate an async workflow */
|
|
40
|
+
async?: boolean;
|
|
41
|
+
/** Configuration values for the template */
|
|
42
|
+
config?: Record<string, unknown>;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* A workflow template definition
|
|
46
|
+
*/
|
|
47
|
+
export interface WorkflowTemplate {
|
|
48
|
+
/** Unique template ID (used in CLI) */
|
|
49
|
+
id: string;
|
|
50
|
+
/** Display name */
|
|
51
|
+
name: string;
|
|
52
|
+
/** Brief description of the template */
|
|
53
|
+
description: string;
|
|
54
|
+
/** Category for grouping */
|
|
55
|
+
category: 'data-processing' | 'automation' | 'ai' | 'integration' | 'utility';
|
|
56
|
+
/** Configuration schema for the template */
|
|
57
|
+
configSchema?: ConfigSchema;
|
|
58
|
+
/** Generate the template code */
|
|
59
|
+
generate: (options: WorkflowTemplateOptions) => string;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* A node type template definition
|
|
63
|
+
*/
|
|
64
|
+
export interface NodeTemplate {
|
|
65
|
+
/** Unique template ID */
|
|
66
|
+
id: string;
|
|
67
|
+
/** Display name */
|
|
68
|
+
name: string;
|
|
69
|
+
/** Brief description */
|
|
70
|
+
description: string;
|
|
71
|
+
/** Category for grouping */
|
|
72
|
+
category: 'ai' | 'validation' | 'data' | 'integration' | 'workflow';
|
|
73
|
+
/** Configuration schema for the template (optional) */
|
|
74
|
+
configSchema?: ConfigSchema;
|
|
75
|
+
/** Generate the template code */
|
|
76
|
+
generate: (name: string, config?: Record<string, unknown>) => string;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* All available workflow templates
|
|
80
|
+
*/
|
|
81
|
+
export declare const workflowTemplates: WorkflowTemplate[];
|
|
82
|
+
/**
|
|
83
|
+
* All available node templates
|
|
84
|
+
*/
|
|
85
|
+
export declare const nodeTemplates: NodeTemplate[];
|
|
86
|
+
/**
|
|
87
|
+
* Get a workflow template by ID
|
|
88
|
+
*/
|
|
89
|
+
export declare function getWorkflowTemplate(id: string): WorkflowTemplate | undefined;
|
|
90
|
+
/**
|
|
91
|
+
* Get a node template by ID
|
|
92
|
+
*/
|
|
93
|
+
export declare function getNodeTemplate(id: string): NodeTemplate | undefined;
|
|
94
|
+
/**
|
|
95
|
+
* Convert a string to camelCase
|
|
96
|
+
*/
|
|
97
|
+
export declare function toCamelCase(str: string): string;
|
|
98
|
+
/**
|
|
99
|
+
* Convert a string to PascalCase (for labels)
|
|
100
|
+
*/
|
|
101
|
+
export declare function toPascalCase(str: string): string;
|
|
102
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Flow Weaver Template Registry
|
|
3
|
+
* Central registry for workflow and node templates
|
|
4
|
+
*/
|
|
5
|
+
// Import workflow templates
|
|
6
|
+
import { sequentialTemplate } from './workflows/sequential.js';
|
|
7
|
+
import { foreachTemplate } from './workflows/foreach.js';
|
|
8
|
+
import { conditionalTemplate } from './workflows/conditional.js';
|
|
9
|
+
import { aiAgentTemplate } from './workflows/ai-agent.js';
|
|
10
|
+
import { aiReactTemplate } from './workflows/ai-react.js';
|
|
11
|
+
import { aiRagTemplate } from './workflows/ai-rag.js';
|
|
12
|
+
import { aiChatTemplate } from './workflows/ai-chat.js';
|
|
13
|
+
import { aggregatorTemplate } from './workflows/aggregator.js';
|
|
14
|
+
import { webhookTemplate } from './workflows/webhook.js';
|
|
15
|
+
import { errorHandlerTemplate } from './workflows/error-handler.js';
|
|
16
|
+
import { aiAgentDurableTemplate } from './workflows/ai-agent-durable.js';
|
|
17
|
+
import { aiPipelineDurableTemplate } from './workflows/ai-pipeline-durable.js';
|
|
18
|
+
// Import node templates
|
|
19
|
+
import { validatorNodeTemplate } from './nodes/validator.js';
|
|
20
|
+
import { transformerNodeTemplate } from './nodes/transformer.js';
|
|
21
|
+
import { httpNodeTemplate } from './nodes/http.js';
|
|
22
|
+
import { aggregatorNodeTemplate } from './nodes/aggregator.js';
|
|
23
|
+
// Import AI node templates
|
|
24
|
+
import { llmCallNodeTemplate } from './nodes/llm-call.js';
|
|
25
|
+
import { toolExecutorNodeTemplate } from './nodes/tool-executor.js';
|
|
26
|
+
import { conversationMemoryNodeTemplate } from './nodes/conversation-memory.js';
|
|
27
|
+
// Import agent node templates
|
|
28
|
+
import { promptTemplateNodeTemplate } from './nodes/prompt-template.js';
|
|
29
|
+
import { jsonExtractorNodeTemplate } from './nodes/json-extractor.js';
|
|
30
|
+
import { humanApprovalNodeTemplate } from './nodes/human-approval.js';
|
|
31
|
+
import { agentRouterNodeTemplate } from './nodes/agent-router.js';
|
|
32
|
+
import { ragRetrieverNodeTemplate } from './nodes/rag-retriever.js';
|
|
33
|
+
/**
|
|
34
|
+
* All available workflow templates
|
|
35
|
+
*/
|
|
36
|
+
export const workflowTemplates = [
|
|
37
|
+
sequentialTemplate,
|
|
38
|
+
foreachTemplate,
|
|
39
|
+
conditionalTemplate,
|
|
40
|
+
aiAgentTemplate,
|
|
41
|
+
aiReactTemplate,
|
|
42
|
+
aiRagTemplate,
|
|
43
|
+
aiChatTemplate,
|
|
44
|
+
aggregatorTemplate,
|
|
45
|
+
webhookTemplate,
|
|
46
|
+
errorHandlerTemplate,
|
|
47
|
+
aiAgentDurableTemplate,
|
|
48
|
+
aiPipelineDurableTemplate,
|
|
49
|
+
];
|
|
50
|
+
/**
|
|
51
|
+
* All available node templates
|
|
52
|
+
*/
|
|
53
|
+
export const nodeTemplates = [
|
|
54
|
+
validatorNodeTemplate,
|
|
55
|
+
transformerNodeTemplate,
|
|
56
|
+
httpNodeTemplate,
|
|
57
|
+
aggregatorNodeTemplate,
|
|
58
|
+
llmCallNodeTemplate,
|
|
59
|
+
toolExecutorNodeTemplate,
|
|
60
|
+
conversationMemoryNodeTemplate,
|
|
61
|
+
promptTemplateNodeTemplate,
|
|
62
|
+
jsonExtractorNodeTemplate,
|
|
63
|
+
humanApprovalNodeTemplate,
|
|
64
|
+
agentRouterNodeTemplate,
|
|
65
|
+
ragRetrieverNodeTemplate,
|
|
66
|
+
];
|
|
67
|
+
/**
|
|
68
|
+
* Get a workflow template by ID
|
|
69
|
+
*/
|
|
70
|
+
export function getWorkflowTemplate(id) {
|
|
71
|
+
return workflowTemplates.find((t) => t.id === id);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Get a node template by ID
|
|
75
|
+
*/
|
|
76
|
+
export function getNodeTemplate(id) {
|
|
77
|
+
return nodeTemplates.find((t) => t.id === id);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Convert a string to camelCase
|
|
81
|
+
*/
|
|
82
|
+
export function toCamelCase(str) {
|
|
83
|
+
// Preserve leading underscores/dollar signs
|
|
84
|
+
const leadingMatch = str.match(/^[_$]+/);
|
|
85
|
+
const leading = leadingMatch ? leadingMatch[0] : '';
|
|
86
|
+
const rest = leading ? str.slice(leading.length) : str;
|
|
87
|
+
const result = rest
|
|
88
|
+
.replace(/[-_\s]+(.)?/g, (_, c) => (c ? c.toUpperCase() : ''))
|
|
89
|
+
.replace(/^[^a-zA-Z_$]+/, '') // Strip leading non-identifier chars
|
|
90
|
+
.replace(/^./, (c) => c.toLowerCase());
|
|
91
|
+
const final = leading + result;
|
|
92
|
+
return final || '_' + str.replace(/[^a-zA-Z0-9_$]/g, '');
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Convert a string to PascalCase (for labels)
|
|
96
|
+
*/
|
|
97
|
+
export function toPascalCase(str) {
|
|
98
|
+
const camel = toCamelCase(str);
|
|
99
|
+
return camel.charAt(0).toUpperCase() + camel.slice(1);
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=index.js.map
|