@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,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* # Flow Weaver Constants
|
|
3
|
+
*
|
|
4
|
+
* This module defines reserved names and constants used throughout the Flow Weaver system.
|
|
5
|
+
*
|
|
6
|
+
* ## Scoped Port Architecture
|
|
7
|
+
*
|
|
8
|
+
* Scoped ports enable iteration patterns (forEach, map) WITHOUT graph cycles.
|
|
9
|
+
* The key insight is that port directions are INVERTED for scoped ports:
|
|
10
|
+
*
|
|
11
|
+
* ```
|
|
12
|
+
* ┌─────────────────────────────────────────────────────────────────────┐
|
|
13
|
+
* │ SCOPED PORT DIRECTION MAPPING │
|
|
14
|
+
* ├─────────────────┬──────────┬────────────────────────────────────────┤
|
|
15
|
+
* │ Scoped OUTPUT │ Parent→ │ Parameters TO children (start, item) │
|
|
16
|
+
* │ Scoped INPUT │ →Parent │ Returns FROM children (success, result)│
|
|
17
|
+
* └─────────────────┴──────────┴────────────────────────────────────────┘
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* **Why this inversion?**
|
|
21
|
+
* - Scoped OUTPUT ports (like `start`, `item`) are data the parent SENDS to nested nodes
|
|
22
|
+
* - Scoped INPUT ports (like `success`, `result`) are data the parent RECEIVES from nested nodes
|
|
23
|
+
* - The loop iteration happens in the parent's imperative code, not as graph cycles
|
|
24
|
+
*
|
|
25
|
+
* ## Mandatory Scoped Ports
|
|
26
|
+
*
|
|
27
|
+
* Every scoped node must have these ports for each scope it declares:
|
|
28
|
+
* - `start` (OUTPUT) - Triggers scope execution, passed as first param
|
|
29
|
+
* - `success` (INPUT) - Signals successful completion from child
|
|
30
|
+
* - `failure` (INPUT) - Signals failure from child
|
|
31
|
+
*
|
|
32
|
+
* ## Example: forEach Node
|
|
33
|
+
*
|
|
34
|
+
* ```typescript
|
|
35
|
+
* @scope processItem
|
|
36
|
+
* @output start scope:processItem // OUTPUT → function param (triggers iteration)
|
|
37
|
+
* @output item scope:processItem // OUTPUT → function param (current item)
|
|
38
|
+
* @input success scope:processItem // INPUT → return value (completion signal)
|
|
39
|
+
* @input processed scope:processItem // INPUT → return value (processed data)
|
|
40
|
+
*
|
|
41
|
+
* function forEach(execute, items, processItem) {
|
|
42
|
+
* const results = [];
|
|
43
|
+
* for (const item of items) {
|
|
44
|
+
* const r = processItem(true, item); // Calls generated closure
|
|
45
|
+
* if (r.success) results.push(r.processed);
|
|
46
|
+
* }
|
|
47
|
+
* return { onSuccess: true, results };
|
|
48
|
+
* }
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export const RESERVED_NODE_NAMES = {
|
|
52
|
+
START: "Start",
|
|
53
|
+
EXIT: "Exit",
|
|
54
|
+
};
|
|
55
|
+
export const RESERVED_PORT_NAMES = {
|
|
56
|
+
EXECUTE: "execute",
|
|
57
|
+
ON_SUCCESS: "onSuccess",
|
|
58
|
+
ON_FAILURE: "onFailure",
|
|
59
|
+
};
|
|
60
|
+
// Scoped mandatory ports (different from external)
|
|
61
|
+
export const SCOPED_PORT_NAMES = {
|
|
62
|
+
START: "start", // OUTPUT - starts scope iteration
|
|
63
|
+
SUCCESS: "success", // INPUT - success signal from scope
|
|
64
|
+
FAILURE: "failure", // INPUT - failure signal from scope
|
|
65
|
+
};
|
|
66
|
+
export const EXECUTION_STRATEGIES = {
|
|
67
|
+
CONJUNCTION: "CONJUNCTION",
|
|
68
|
+
DISJUNCTION: "DISJUNCTION",
|
|
69
|
+
CUSTOM: "CUSTOM",
|
|
70
|
+
};
|
|
71
|
+
export const BRANCHING_STRATEGIES = {
|
|
72
|
+
VALUE_BASED: "value-based",
|
|
73
|
+
EXCEPTION_BASED: "exception-based",
|
|
74
|
+
NONE: "none",
|
|
75
|
+
};
|
|
76
|
+
export function isReservedNodeName(name) {
|
|
77
|
+
return Object.values(RESERVED_NODE_NAMES).includes(name);
|
|
78
|
+
}
|
|
79
|
+
export function isReservedPortName(name) {
|
|
80
|
+
return Object.values(RESERVED_PORT_NAMES).includes(name);
|
|
81
|
+
}
|
|
82
|
+
export function isStartNode(nodeName) {
|
|
83
|
+
return nodeName === RESERVED_NODE_NAMES.START;
|
|
84
|
+
}
|
|
85
|
+
export function isExitNode(nodeName) {
|
|
86
|
+
return nodeName === RESERVED_NODE_NAMES.EXIT;
|
|
87
|
+
}
|
|
88
|
+
export function isSpecialNode(nodeName) {
|
|
89
|
+
return isStartNode(nodeName) || isExitNode(nodeName);
|
|
90
|
+
}
|
|
91
|
+
export function isExecutePort(portName) {
|
|
92
|
+
return portName === RESERVED_PORT_NAMES.EXECUTE;
|
|
93
|
+
}
|
|
94
|
+
export function isSuccessPort(portName) {
|
|
95
|
+
return portName === RESERVED_PORT_NAMES.ON_SUCCESS;
|
|
96
|
+
}
|
|
97
|
+
export function isFailurePort(portName) {
|
|
98
|
+
return portName === RESERVED_PORT_NAMES.ON_FAILURE;
|
|
99
|
+
}
|
|
100
|
+
// Scoped port checks
|
|
101
|
+
export function isScopedStartPort(portName) {
|
|
102
|
+
return portName === SCOPED_PORT_NAMES.START;
|
|
103
|
+
}
|
|
104
|
+
export function isScopedSuccessPort(portName) {
|
|
105
|
+
return portName === SCOPED_PORT_NAMES.SUCCESS;
|
|
106
|
+
}
|
|
107
|
+
export function isScopedFailurePort(portName) {
|
|
108
|
+
return portName === SCOPED_PORT_NAMES.FAILURE;
|
|
109
|
+
}
|
|
110
|
+
export function isScopedMandatoryPort(portName) {
|
|
111
|
+
return isScopedStartPort(portName) || isScopedSuccessPort(portName) || isScopedFailurePort(portName);
|
|
112
|
+
}
|
|
113
|
+
export function isControlFlowPort(portName) {
|
|
114
|
+
return (isExecutePort(portName) ||
|
|
115
|
+
isSuccessPort(portName) ||
|
|
116
|
+
isFailurePort(portName));
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Check if a port definition represents a scoped port
|
|
120
|
+
* Scoped ports are FUNCTION type with a scope attribute
|
|
121
|
+
*/
|
|
122
|
+
export function isScopedPort(portDef) {
|
|
123
|
+
return portDef.dataType === "FUNCTION" && portDef.scope !== undefined;
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=constants.js.map
|
package/dist/defaults.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default configuration values for the deployment system
|
|
3
|
+
*/
|
|
4
|
+
import type { DeploymentConfig, ServerConfig, ExecutionConfig, SecretsConfig } from './types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Default server configuration
|
|
7
|
+
*/
|
|
8
|
+
export declare const DEFAULT_SERVER_CONFIG: ServerConfig;
|
|
9
|
+
/**
|
|
10
|
+
* Default execution configuration
|
|
11
|
+
*/
|
|
12
|
+
export declare const DEFAULT_EXECUTION_CONFIG: ExecutionConfig;
|
|
13
|
+
/**
|
|
14
|
+
* Default secrets configuration
|
|
15
|
+
*/
|
|
16
|
+
export declare const DEFAULT_SECRETS_CONFIG: SecretsConfig;
|
|
17
|
+
/**
|
|
18
|
+
* Default deployment configuration
|
|
19
|
+
*/
|
|
20
|
+
export declare const DEFAULT_CONFIG: DeploymentConfig;
|
|
21
|
+
/**
|
|
22
|
+
* Production configuration overrides
|
|
23
|
+
*/
|
|
24
|
+
export declare const PRODUCTION_OVERRIDES: Partial<DeploymentConfig>;
|
|
25
|
+
/**
|
|
26
|
+
* Get default configuration for a given environment
|
|
27
|
+
*/
|
|
28
|
+
export declare function getDefaultConfig(environment: 'development' | 'staging' | 'production'): DeploymentConfig;
|
|
29
|
+
//# sourceMappingURL=defaults.d.ts.map
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default configuration values for the deployment system
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Default server configuration
|
|
6
|
+
*/
|
|
7
|
+
export const DEFAULT_SERVER_CONFIG = {
|
|
8
|
+
port: 3000,
|
|
9
|
+
host: '0.0.0.0',
|
|
10
|
+
cors: {
|
|
11
|
+
origin: '*',
|
|
12
|
+
methods: ['GET', 'POST', 'OPTIONS'],
|
|
13
|
+
headers: ['Content-Type', 'Authorization', 'X-Request-Id'],
|
|
14
|
+
credentials: false,
|
|
15
|
+
},
|
|
16
|
+
swagger: false,
|
|
17
|
+
watch: true,
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Default execution configuration
|
|
21
|
+
*/
|
|
22
|
+
export const DEFAULT_EXECUTION_CONFIG = {
|
|
23
|
+
timeout: 30000,
|
|
24
|
+
includeTrace: true,
|
|
25
|
+
maxConcurrent: 10,
|
|
26
|
+
retry: {
|
|
27
|
+
maxRetries: 0,
|
|
28
|
+
initialDelay: 100,
|
|
29
|
+
maxDelay: 5000,
|
|
30
|
+
backoffMultiplier: 2,
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Default secrets configuration
|
|
35
|
+
*/
|
|
36
|
+
export const DEFAULT_SECRETS_CONFIG = {
|
|
37
|
+
fromEnv: [],
|
|
38
|
+
files: ['.env', '.env.local'],
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Default deployment configuration
|
|
42
|
+
*/
|
|
43
|
+
export const DEFAULT_CONFIG = {
|
|
44
|
+
environment: 'development',
|
|
45
|
+
server: DEFAULT_SERVER_CONFIG,
|
|
46
|
+
execution: DEFAULT_EXECUTION_CONFIG,
|
|
47
|
+
secrets: DEFAULT_SECRETS_CONFIG,
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Production configuration overrides
|
|
51
|
+
*/
|
|
52
|
+
export const PRODUCTION_OVERRIDES = {
|
|
53
|
+
environment: 'production',
|
|
54
|
+
server: {
|
|
55
|
+
...DEFAULT_SERVER_CONFIG,
|
|
56
|
+
watch: false,
|
|
57
|
+
cors: {
|
|
58
|
+
...DEFAULT_SERVER_CONFIG.cors,
|
|
59
|
+
origin: [], // Must be explicitly configured in production
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
execution: {
|
|
63
|
+
...DEFAULT_EXECUTION_CONFIG,
|
|
64
|
+
includeTrace: false,
|
|
65
|
+
timeout: 60000,
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* Get default configuration for a given environment
|
|
70
|
+
*/
|
|
71
|
+
export function getDefaultConfig(environment) {
|
|
72
|
+
if (environment === 'production') {
|
|
73
|
+
return {
|
|
74
|
+
...DEFAULT_CONFIG,
|
|
75
|
+
...PRODUCTION_OVERRIDES,
|
|
76
|
+
server: {
|
|
77
|
+
...DEFAULT_CONFIG.server,
|
|
78
|
+
...PRODUCTION_OVERRIDES.server,
|
|
79
|
+
},
|
|
80
|
+
execution: {
|
|
81
|
+
...DEFAULT_CONFIG.execution,
|
|
82
|
+
...PRODUCTION_OVERRIDES.execution,
|
|
83
|
+
},
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
if (environment === 'staging') {
|
|
87
|
+
return {
|
|
88
|
+
...DEFAULT_CONFIG,
|
|
89
|
+
environment: 'staging',
|
|
90
|
+
execution: {
|
|
91
|
+
...DEFAULT_CONFIG.execution,
|
|
92
|
+
includeTrace: true, // Keep traces in staging for debugging
|
|
93
|
+
},
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
return DEFAULT_CONFIG;
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=defaults.js.map
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration loader
|
|
3
|
+
*
|
|
4
|
+
* Loads configuration from files, environment variables, and CLI arguments,
|
|
5
|
+
* merging them in order of precedence.
|
|
6
|
+
*/
|
|
7
|
+
import type { DeploymentConfig, CliConfigOverrides } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Load configuration with the following precedence (highest to lowest):
|
|
10
|
+
* 1. CLI arguments
|
|
11
|
+
* 2. Environment variables
|
|
12
|
+
* 3. Config file
|
|
13
|
+
* 4. Default values
|
|
14
|
+
*/
|
|
15
|
+
export declare function loadConfig(cliOverrides?: CliConfigOverrides, configPath?: string): Promise<DeploymentConfig>;
|
|
16
|
+
/**
|
|
17
|
+
* Synchronous config loading (for simpler use cases)
|
|
18
|
+
*/
|
|
19
|
+
export declare function loadConfigSync(cliOverrides?: CliConfigOverrides): DeploymentConfig;
|
|
20
|
+
/**
|
|
21
|
+
* Get a specific config value with fallback to default
|
|
22
|
+
*/
|
|
23
|
+
export declare function getConfigValue<K extends keyof DeploymentConfig>(key: K, config?: Partial<DeploymentConfig>): DeploymentConfig[K];
|
|
24
|
+
//# sourceMappingURL=loader.d.ts.map
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration loader
|
|
3
|
+
*
|
|
4
|
+
* Loads configuration from files, environment variables, and CLI arguments,
|
|
5
|
+
* merging them in order of precedence.
|
|
6
|
+
*/
|
|
7
|
+
import * as fs from 'fs';
|
|
8
|
+
import * as path from 'path';
|
|
9
|
+
import * as YAML from 'js-yaml';
|
|
10
|
+
import { DEFAULT_CONFIG, getDefaultConfig } from './defaults.js';
|
|
11
|
+
/**
|
|
12
|
+
* Configuration file names to search for
|
|
13
|
+
*/
|
|
14
|
+
const CONFIG_FILE_NAMES = ['flow-weaver.config.ts', 'flow-weaver.config.yaml'];
|
|
15
|
+
/**
|
|
16
|
+
* Environment variable prefix
|
|
17
|
+
*/
|
|
18
|
+
const ENV_PREFIX = 'FW_';
|
|
19
|
+
/**
|
|
20
|
+
* Load configuration with the following precedence (highest to lowest):
|
|
21
|
+
* 1. CLI arguments
|
|
22
|
+
* 2. Environment variables
|
|
23
|
+
* 3. Config file
|
|
24
|
+
* 4. Default values
|
|
25
|
+
*/
|
|
26
|
+
export async function loadConfig(cliOverrides, configPath) {
|
|
27
|
+
// Start with environment-specific defaults
|
|
28
|
+
const environment = detectEnvironment(cliOverrides);
|
|
29
|
+
let config = getDefaultConfig(environment);
|
|
30
|
+
// Load config file if it exists
|
|
31
|
+
const fileConfig = await loadConfigFile(configPath);
|
|
32
|
+
if (fileConfig) {
|
|
33
|
+
config = mergeConfig(config, fileConfig);
|
|
34
|
+
}
|
|
35
|
+
// Apply environment variable overrides
|
|
36
|
+
const envConfig = loadEnvConfig();
|
|
37
|
+
config = mergeConfig(config, envConfig);
|
|
38
|
+
// Apply CLI overrides (highest precedence)
|
|
39
|
+
if (cliOverrides) {
|
|
40
|
+
const cliConfig = convertCliOverrides(cliOverrides);
|
|
41
|
+
config = mergeConfig(config, cliConfig);
|
|
42
|
+
}
|
|
43
|
+
return config;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Detect environment from CLI, env vars, or defaults
|
|
47
|
+
*/
|
|
48
|
+
function detectEnvironment(cliOverrides) {
|
|
49
|
+
// CLI override takes precedence
|
|
50
|
+
if (cliOverrides?.env) {
|
|
51
|
+
return cliOverrides.env;
|
|
52
|
+
}
|
|
53
|
+
// Check environment variables
|
|
54
|
+
const envValue = process.env[`${ENV_PREFIX}ENV`] || process.env.NODE_ENV;
|
|
55
|
+
if (envValue) {
|
|
56
|
+
if (envValue === 'production' || envValue === 'prod') {
|
|
57
|
+
return 'production';
|
|
58
|
+
}
|
|
59
|
+
if (envValue === 'staging' || envValue === 'stage') {
|
|
60
|
+
return 'staging';
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return 'development';
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Load configuration from file
|
|
67
|
+
*/
|
|
68
|
+
async function loadConfigFile(configPath) {
|
|
69
|
+
// If a specific path is provided, try to load it
|
|
70
|
+
if (configPath) {
|
|
71
|
+
return loadConfigFromPath(configPath);
|
|
72
|
+
}
|
|
73
|
+
// Search for config file in current directory
|
|
74
|
+
const cwd = process.cwd();
|
|
75
|
+
for (const fileName of CONFIG_FILE_NAMES) {
|
|
76
|
+
const configFilePath = path.join(cwd, fileName);
|
|
77
|
+
if (fs.existsSync(configFilePath)) {
|
|
78
|
+
return loadConfigFromPath(configFilePath);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Load configuration from a specific file path
|
|
85
|
+
*/
|
|
86
|
+
async function loadConfigFromPath(filePath) {
|
|
87
|
+
const absolutePath = path.resolve(filePath);
|
|
88
|
+
if (!fs.existsSync(absolutePath)) {
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
91
|
+
const ext = path.extname(absolutePath);
|
|
92
|
+
// YAML files
|
|
93
|
+
if (ext === '.yaml' || ext === '.yml') {
|
|
94
|
+
try {
|
|
95
|
+
const content = fs.readFileSync(absolutePath, 'utf8');
|
|
96
|
+
return YAML.load(content);
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
return null;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
// TypeScript files - dynamic import
|
|
103
|
+
if (ext === '.ts') {
|
|
104
|
+
try {
|
|
105
|
+
const module = await import(absolutePath);
|
|
106
|
+
return (module.default || module);
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
// Config file loading failed, skip it
|
|
110
|
+
return null;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return null;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Load configuration from environment variables
|
|
117
|
+
*/
|
|
118
|
+
function loadEnvConfig() {
|
|
119
|
+
const config = {};
|
|
120
|
+
// Server config
|
|
121
|
+
const port = process.env[`${ENV_PREFIX}PORT`];
|
|
122
|
+
const host = process.env[`${ENV_PREFIX}HOST`];
|
|
123
|
+
const cors = process.env[`${ENV_PREFIX}CORS_ORIGIN`];
|
|
124
|
+
if (port || host || cors) {
|
|
125
|
+
config.server = {};
|
|
126
|
+
if (port)
|
|
127
|
+
config.server.port = parseInt(port, 10);
|
|
128
|
+
if (host)
|
|
129
|
+
config.server.host = host;
|
|
130
|
+
if (cors)
|
|
131
|
+
config.server.cors = { origin: cors };
|
|
132
|
+
}
|
|
133
|
+
// Execution config
|
|
134
|
+
const timeout = process.env[`${ENV_PREFIX}TIMEOUT`];
|
|
135
|
+
const trace = process.env[`${ENV_PREFIX}TRACE`];
|
|
136
|
+
if (timeout || trace) {
|
|
137
|
+
config.execution = {};
|
|
138
|
+
if (timeout)
|
|
139
|
+
config.execution.timeout = parseInt(timeout, 10);
|
|
140
|
+
if (trace)
|
|
141
|
+
config.execution.includeTrace = trace === 'true' || trace === '1';
|
|
142
|
+
}
|
|
143
|
+
return config;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Convert CLI overrides to partial config
|
|
147
|
+
*/
|
|
148
|
+
function convertCliOverrides(overrides) {
|
|
149
|
+
const config = {};
|
|
150
|
+
if (overrides.env) {
|
|
151
|
+
config.environment = overrides.env;
|
|
152
|
+
}
|
|
153
|
+
// Server overrides
|
|
154
|
+
if (overrides.port ||
|
|
155
|
+
overrides.host ||
|
|
156
|
+
overrides.cors ||
|
|
157
|
+
overrides.watch !== undefined ||
|
|
158
|
+
overrides.swagger !== undefined) {
|
|
159
|
+
config.server = {};
|
|
160
|
+
if (overrides.port)
|
|
161
|
+
config.server.port = overrides.port;
|
|
162
|
+
if (overrides.host)
|
|
163
|
+
config.server.host = overrides.host;
|
|
164
|
+
if (overrides.cors)
|
|
165
|
+
config.server.cors = { origin: overrides.cors };
|
|
166
|
+
if (overrides.watch !== undefined)
|
|
167
|
+
config.server.watch = overrides.watch;
|
|
168
|
+
if (overrides.swagger !== undefined)
|
|
169
|
+
config.server.swagger = overrides.swagger;
|
|
170
|
+
}
|
|
171
|
+
// Execution overrides
|
|
172
|
+
if (overrides.timeout || overrides.trace !== undefined || overrides.production !== undefined) {
|
|
173
|
+
config.execution = {};
|
|
174
|
+
if (overrides.timeout)
|
|
175
|
+
config.execution.timeout = overrides.timeout;
|
|
176
|
+
if (overrides.trace !== undefined)
|
|
177
|
+
config.execution.includeTrace = overrides.trace;
|
|
178
|
+
if (overrides.production)
|
|
179
|
+
config.execution.includeTrace = false;
|
|
180
|
+
}
|
|
181
|
+
return config;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Deep merge two configuration objects
|
|
185
|
+
*/
|
|
186
|
+
function mergeConfig(base, override) {
|
|
187
|
+
return {
|
|
188
|
+
environment: override.environment ?? base.environment,
|
|
189
|
+
server: {
|
|
190
|
+
...base.server,
|
|
191
|
+
...override.server,
|
|
192
|
+
cors: {
|
|
193
|
+
...base.server.cors,
|
|
194
|
+
...(override.server?.cors || {}),
|
|
195
|
+
},
|
|
196
|
+
},
|
|
197
|
+
execution: {
|
|
198
|
+
...base.execution,
|
|
199
|
+
...override.execution,
|
|
200
|
+
retry: {
|
|
201
|
+
...(base.execution.retry || {}),
|
|
202
|
+
...(override.execution?.retry || {}),
|
|
203
|
+
},
|
|
204
|
+
},
|
|
205
|
+
secrets: {
|
|
206
|
+
...base.secrets,
|
|
207
|
+
...override.secrets,
|
|
208
|
+
},
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Synchronous config loading (for simpler use cases)
|
|
213
|
+
*/
|
|
214
|
+
export function loadConfigSync(cliOverrides) {
|
|
215
|
+
const environment = detectEnvironment(cliOverrides);
|
|
216
|
+
let config = getDefaultConfig(environment);
|
|
217
|
+
// Apply environment variable overrides
|
|
218
|
+
const envConfig = loadEnvConfig();
|
|
219
|
+
config = mergeConfig(config, envConfig);
|
|
220
|
+
// Apply CLI overrides
|
|
221
|
+
if (cliOverrides) {
|
|
222
|
+
const cliConfig = convertCliOverrides(cliOverrides);
|
|
223
|
+
config = mergeConfig(config, cliConfig);
|
|
224
|
+
}
|
|
225
|
+
return config;
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Get a specific config value with fallback to default
|
|
229
|
+
*/
|
|
230
|
+
export function getConfigValue(key, config) {
|
|
231
|
+
if (config && config[key] !== undefined) {
|
|
232
|
+
return config[key];
|
|
233
|
+
}
|
|
234
|
+
return DEFAULT_CONFIG[key];
|
|
235
|
+
}
|
|
236
|
+
//# sourceMappingURL=loader.js.map
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration types for the deployment system
|
|
3
|
+
*/
|
|
4
|
+
import type { Environment } from '../types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Complete deployment configuration
|
|
7
|
+
*/
|
|
8
|
+
export interface DeploymentConfig {
|
|
9
|
+
/** Runtime environment */
|
|
10
|
+
environment: Environment;
|
|
11
|
+
/** Server configuration */
|
|
12
|
+
server: ServerConfig;
|
|
13
|
+
/** Execution configuration */
|
|
14
|
+
execution: ExecutionConfig;
|
|
15
|
+
/** Secrets and environment variable configuration */
|
|
16
|
+
secrets: SecretsConfig;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Server configuration options
|
|
20
|
+
*/
|
|
21
|
+
export interface ServerConfig {
|
|
22
|
+
/** Port to listen on */
|
|
23
|
+
port: number;
|
|
24
|
+
/** Host to bind to */
|
|
25
|
+
host: string;
|
|
26
|
+
/** CORS configuration */
|
|
27
|
+
cors: CorsConfig;
|
|
28
|
+
/** Enable Swagger UI */
|
|
29
|
+
swagger: boolean;
|
|
30
|
+
/** Enable file watching for hot reload */
|
|
31
|
+
watch: boolean;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* CORS configuration
|
|
35
|
+
*/
|
|
36
|
+
export interface CorsConfig {
|
|
37
|
+
/** Allowed origins (string or array of strings) */
|
|
38
|
+
origin: string | string[];
|
|
39
|
+
/** Allowed methods */
|
|
40
|
+
methods?: string[];
|
|
41
|
+
/** Allowed headers */
|
|
42
|
+
headers?: string[];
|
|
43
|
+
/** Expose headers */
|
|
44
|
+
exposeHeaders?: string[];
|
|
45
|
+
/** Allow credentials */
|
|
46
|
+
credentials?: boolean;
|
|
47
|
+
/** Max age for preflight cache */
|
|
48
|
+
maxAge?: number;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Execution configuration
|
|
52
|
+
*/
|
|
53
|
+
export interface ExecutionConfig {
|
|
54
|
+
/** Default timeout in milliseconds */
|
|
55
|
+
timeout: number;
|
|
56
|
+
/** Include execution trace by default */
|
|
57
|
+
includeTrace: boolean;
|
|
58
|
+
/** Maximum concurrent executions */
|
|
59
|
+
maxConcurrent?: number;
|
|
60
|
+
/** Retry configuration */
|
|
61
|
+
retry?: RetryConfig;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Retry configuration
|
|
65
|
+
*/
|
|
66
|
+
export interface RetryConfig {
|
|
67
|
+
/** Maximum number of retries */
|
|
68
|
+
maxRetries: number;
|
|
69
|
+
/** Initial delay in milliseconds */
|
|
70
|
+
initialDelay: number;
|
|
71
|
+
/** Maximum delay in milliseconds */
|
|
72
|
+
maxDelay: number;
|
|
73
|
+
/** Backoff multiplier */
|
|
74
|
+
backoffMultiplier: number;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Secrets and environment variable configuration
|
|
78
|
+
*/
|
|
79
|
+
export interface SecretsConfig {
|
|
80
|
+
/** Environment variables to inject into execution context */
|
|
81
|
+
fromEnv: string[];
|
|
82
|
+
/** .env files to load */
|
|
83
|
+
files: string[];
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Partial configuration for merging
|
|
87
|
+
*/
|
|
88
|
+
export type PartialDeploymentConfig = {
|
|
89
|
+
environment?: Environment;
|
|
90
|
+
server?: Partial<ServerConfig>;
|
|
91
|
+
execution?: Partial<ExecutionConfig>;
|
|
92
|
+
secrets?: Partial<SecretsConfig>;
|
|
93
|
+
};
|
|
94
|
+
/**
|
|
95
|
+
* CLI argument overrides
|
|
96
|
+
*/
|
|
97
|
+
export interface CliConfigOverrides {
|
|
98
|
+
/** Override port */
|
|
99
|
+
port?: number;
|
|
100
|
+
/** Override host */
|
|
101
|
+
host?: string;
|
|
102
|
+
/** Override environment */
|
|
103
|
+
env?: Environment;
|
|
104
|
+
/** Override CORS origin */
|
|
105
|
+
cors?: string;
|
|
106
|
+
/** Override timeout */
|
|
107
|
+
timeout?: number;
|
|
108
|
+
/** Override trace inclusion */
|
|
109
|
+
trace?: boolean;
|
|
110
|
+
/** Override file watching */
|
|
111
|
+
watch?: boolean;
|
|
112
|
+
/** Enable swagger */
|
|
113
|
+
swagger?: boolean;
|
|
114
|
+
/** Production mode */
|
|
115
|
+
production?: boolean;
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=types.d.ts.map
|