@synergenius/flow-weaver 0.33.2 → 0.44.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 +201 -226
- package/NOTICE +13 -0
- package/README.md +152 -245
- package/dist/agent/agent-loop.d.ts +4 -2
- package/dist/agent/cli-session.d.ts +3 -3
- package/dist/agent/cli-session.js +511 -438
- package/dist/agent/cli-spawn-config.d.ts +4 -4
- package/dist/agent/gate.d.ts +164 -0
- package/dist/agent/index.d.ts +4 -4
- package/dist/agent/index.js +174 -28
- package/dist/agent/mcp-bridge.d.ts +1 -1
- package/dist/agent/mcp-bridge.js +114 -128
- package/dist/agent/mcp-tool-server.d.ts +2 -2
- package/dist/agent/mcp-tool-server.js +147 -189
- package/dist/agent/profiles.d.ts +69 -0
- package/dist/agent/providers/anthropic.d.ts +2 -4
- package/dist/agent/providers/claude-cli.d.ts +4 -5
- package/dist/agent/providers/openai-compat.d.ts +8 -1
- package/dist/agent/streaming.d.ts +2 -2
- package/dist/agent/types.d.ts +16 -10
- package/dist/api/builder.d.ts +3 -3
- package/dist/api/compile.d.ts +9 -4
- package/dist/api/durable-validation.d.ts +15 -0
- package/dist/api/generate-in-place.d.ts +21 -19
- package/dist/api/generate.d.ts +21 -16
- package/dist/api/generated-module/local-node-functions.d.ts +24 -0
- package/dist/api/generated-module/module-format.d.ts +23 -0
- package/dist/api/generated-module/module-writer.d.ts +34 -0
- package/dist/api/generated-module/node-type-imports.d.ts +39 -0
- package/dist/api/generated-module/preamble.d.ts +16 -0
- package/dist/api/generated-module/workflow-functions.d.ts +29 -0
- package/dist/api/graph-identity.d.ts +39 -0
- package/dist/api/helpers.d.ts +4 -60
- package/dist/api/in-place/built-in-nodes.d.ts +18 -0
- package/dist/api/in-place/function-body.d.ts +21 -0
- package/dist/api/in-place/fw-imports.d.ts +30 -0
- package/dist/api/in-place/macro-coverage.d.ts +14 -0
- package/dist/api/in-place/node-type-functions.d.ts +18 -0
- package/dist/api/in-place/node-type-jsdoc.d.ts +20 -0
- package/dist/api/in-place/orphaned-node-types.d.ts +16 -0
- package/dist/api/in-place/runtime-section.d.ts +16 -0
- package/dist/api/in-place/signature.d.ts +47 -0
- package/dist/api/in-place/source-file.d.ts +19 -0
- package/dist/api/in-place/workflow-jsdoc.d.ts +19 -0
- package/dist/api/index.d.ts +18 -21
- package/dist/api/index.js +259 -53
- package/dist/api/inline-engine.generated.d.ts +3 -0
- package/dist/api/inline-runtime.d.ts +10 -2
- package/dist/api/manipulation/connections.d.ts +1 -1
- package/dist/api/manipulation/index.d.ts +8 -8
- package/dist/api/manipulation/node-types.d.ts +1 -1
- package/dist/api/manipulation/nodes.d.ts +3 -13
- package/dist/api/manipulation/ports.d.ts +1 -1
- package/dist/api/manipulation/scopes.d.ts +1 -1
- package/dist/api/manipulation/workflow.d.ts +1 -1
- package/dist/api/modify-operation.d.ts +0 -2
- package/dist/api/parse.d.ts +22 -1
- package/dist/api/port-references.d.ts +66 -0
- package/dist/api/query.d.ts +18 -2
- package/dist/api/templates.d.ts +1 -1
- package/dist/api/transform.d.ts +1 -1
- package/dist/api/validate.d.ts +1 -1
- package/dist/api/validation-registry.d.ts +2 -2
- package/dist/artifacts/brief.d.ts +43 -0
- package/dist/artifacts/index.d.ts +31 -0
- package/dist/artifacts/pdf.d.ts +19 -0
- package/dist/ast/builder.d.ts +3 -3
- package/dist/ast/index.d.ts +4 -4
- package/dist/ast/index.js +60 -5
- package/dist/ast/serialization-node.d.ts +1 -1
- package/dist/ast/serialization.d.ts +1 -1
- package/dist/ast/types.d.ts +82 -291
- package/dist/ast/workflow-utils.d.ts +4 -4
- package/dist/built-in-nodes/coercion-types.d.ts +1 -1
- package/dist/built-in-nodes/delay.d.ts +3 -1
- package/dist/built-in-nodes/generated-registry.d.ts +1 -1
- package/dist/built-in-nodes/index.d.ts +6 -5
- package/dist/built-in-nodes/index.js +79 -5
- package/dist/built-in-nodes/invoke-workflow.d.ts +2 -1
- package/dist/built-in-nodes/mock-types.d.ts +45 -14
- package/dist/built-in-nodes/sleep.d.ts +12 -0
- package/dist/built-in-nodes/wait-for-agent.d.ts +2 -1
- package/dist/built-in-nodes/wait-for-event.d.ts +2 -1
- package/dist/chevrotain-parser/coerce-parser.d.ts +1 -1
- package/dist/chevrotain-parser/connect-parser.d.ts +1 -1
- package/dist/chevrotain-parser/grammar-diagrams.d.ts +1 -1
- package/dist/chevrotain-parser/index.d.ts +20 -23
- package/dist/chevrotain-parser/node-parser.d.ts +7 -8
- package/dist/chevrotain-parser/parse-line.d.ts +54 -0
- package/dist/chevrotain-parser/tokens.d.ts +0 -17
- package/dist/chevrotain-parser/trigger-cancel-parser.d.ts +6 -1
- package/dist/chunks/chunk-4EUSHAY6.js +298 -0
- package/dist/chunks/chunk-4KDUEOFD.js +197 -0
- package/dist/chunks/chunk-5Y3AIUWY.js +911 -0
- package/dist/chunks/chunk-6KMVP6AU.js +20 -0
- package/dist/chunks/chunk-6PNJORFL.js +128 -0
- package/dist/chunks/chunk-7AAQNGRH.js +2001 -0
- package/dist/chunks/chunk-7YYKTPJ5.js +22705 -0
- package/dist/chunks/chunk-A5MBOFVY.js +33 -0
- package/dist/chunks/chunk-AXNQRVJB.js +18 -0
- package/dist/chunks/chunk-B6HQ6YS5.js +572 -0
- package/dist/chunks/chunk-CY3RNVML.js +296 -0
- package/dist/chunks/chunk-CYHYDLV4.js +653 -0
- package/dist/chunks/chunk-CZBCCK4Y.js +82 -0
- package/dist/chunks/chunk-DCMGQP5V.js +505 -0
- package/dist/chunks/chunk-DIAA66GL.js +72 -0
- package/dist/chunks/chunk-DUO6H5PR.js +20 -0
- package/dist/chunks/chunk-E5WN7IGO.js +125 -0
- package/dist/chunks/chunk-EFGFXXQF.js +184 -0
- package/dist/chunks/chunk-F3RTZV2A.js +2811 -0
- package/dist/chunks/chunk-FMTLP5ZX.js +1397 -0
- package/dist/chunks/chunk-HKZLQJDV.js +79 -0
- package/dist/chunks/chunk-INDEVYEC.js +146 -0
- package/dist/chunks/chunk-JQTF4R5L.js +390 -0
- package/dist/chunks/chunk-KMCAYNUM.js +331 -0
- package/dist/chunks/chunk-KMWCCOUJ.js +1444 -0
- package/dist/chunks/chunk-KU3CLJI2.js +338 -0
- package/dist/chunks/chunk-NDSTGMKR.js +3300 -0
- package/dist/chunks/chunk-NQNLUAPO.js +505 -0
- package/dist/chunks/chunk-O2U2LO57.js +466 -0
- package/dist/chunks/chunk-OOQG7UPP.js +457 -0
- package/dist/chunks/chunk-OZQAW5ZG.js +112 -0
- package/dist/chunks/chunk-P2CVDGHR.js +487 -0
- package/dist/chunks/chunk-P44RIZ7C.js +592 -0
- package/dist/chunks/chunk-PEZCT37T.js +1475 -0
- package/dist/chunks/chunk-PKWSAW6O.js +152 -0
- package/dist/chunks/chunk-Q6MDDZMT.js +4373 -0
- package/dist/chunks/chunk-QDE4Z7KW.js +6 -0
- package/dist/chunks/chunk-QJDAVSNY.js +8 -0
- package/dist/chunks/chunk-QYPORSLO.js +7552 -0
- package/dist/chunks/chunk-R4QGNK34.js +183 -0
- package/dist/chunks/chunk-REEYC73I.js +3002 -0
- package/dist/chunks/chunk-SEWDMQ6Q.js +46 -0
- package/dist/chunks/chunk-TAIUWKZB.js +3057 -0
- package/dist/chunks/chunk-TN4YZ3O7.js +196 -0
- package/dist/chunks/chunk-TRMFB43C.js +143 -0
- package/dist/chunks/chunk-VO4QXG2X.js +1016 -0
- package/dist/chunks/chunk-VP2P3BPA.js +1002 -0
- package/dist/chunks/chunk-VQ7H33J4.js +2176 -0
- package/dist/chunks/chunk-VWA7MCV2.js +105 -0
- package/dist/chunks/chunk-XAV22WD7.js +253 -0
- package/dist/chunks/chunk-YSPBPZDV.js +148 -0
- package/dist/chunks/chunk-ZKEGXO73.js +282 -0
- package/dist/chunks/chunk-ZMGN6F3S.js +4256 -0
- package/dist/chunks/grammar-diagrams-AI7VDXOM.js +14 -0
- package/dist/chunks/index.min-ECJD6GZC.js +37 -0
- package/dist/chunks/manifest-EPTR5MYH.js +21 -0
- package/dist/chunks/openapi-document-6TCGVDUW.js +69 -0
- package/dist/chunks/registry-K2U5KUTY.js +23 -0
- package/dist/chunks/serialization-node-UGY6CFH6.js +38 -0
- package/dist/chunks/validate-GEKSZPIN.js +24 -0
- package/dist/chunks/validation-registry-IQZX3UE3.js +7 -0
- package/dist/chunks/validator-VXFHLPDW.js +26 -0
- package/dist/chunks/workflow-executor-KBGFKHNR.js +36 -0
- package/dist/cli/commands/agents.d.ts +16 -0
- package/dist/cli/commands/artifact.d.ts +10 -0
- package/dist/cli/commands/compile.d.ts +0 -30
- package/dist/cli/commands/console.d.ts +32 -0
- package/dist/cli/commands/context.d.ts +0 -3
- package/dist/cli/commands/describe.js +386 -352
- package/dist/cli/commands/dev.d.ts +9 -4
- package/dist/cli/commands/diagram.d.ts +3 -5
- package/dist/cli/commands/doctor.d.ts +27 -4
- package/dist/cli/commands/doctor.js +3307 -633
- package/dist/cli/commands/export.d.ts +6 -4
- package/dist/cli/commands/grammar.d.ts +0 -3
- package/dist/cli/commands/implement.d.ts +1 -1
- package/dist/cli/commands/init/agent-handoff.d.ts +28 -0
- package/dist/cli/commands/init/config.d.ts +3 -0
- package/dist/cli/commands/init/files.d.ts +12 -0
- package/dist/cli/commands/init/naming.d.ts +13 -0
- package/dist/cli/commands/init/output.d.ts +12 -0
- package/dist/cli/commands/init/setup.d.ts +21 -0
- package/dist/cli/commands/init/types.d.ts +53 -0
- package/dist/cli/commands/init-personas.d.ts +9 -1
- package/dist/cli/commands/init.d.ts +24 -88
- package/dist/cli/commands/market.d.ts +1 -1
- package/dist/cli/commands/mcp-setup.d.ts +1 -4
- package/dist/cli/commands/modify.d.ts +0 -5
- package/dist/cli/commands/openapi.d.ts +9 -11
- package/dist/cli/commands/run.d.ts +0 -4
- package/dist/cli/commands/serve.d.ts +24 -26
- package/dist/cli/commands/status.d.ts +1 -1
- package/dist/cli/exports.d.ts +3 -4
- package/dist/cli/exports.js +124 -23
- package/dist/cli/flow-weaver-agents-H653446S.mjs +81 -0
- package/dist/cli/flow-weaver-artifact-WBFYTW76.mjs +58 -0
- package/dist/cli/flow-weaver-chunk-265CEK74.mjs +2 -0
- package/dist/cli/flow-weaver-chunk-2C7PZCV5.mjs +186 -0
- package/dist/cli/flow-weaver-chunk-3BSYCWPL.mjs +3109 -0
- package/dist/cli/flow-weaver-chunk-3MKUQP3D.mjs +547 -0
- package/dist/cli/flow-weaver-chunk-3ZLMPQTH.mjs +27 -0
- package/dist/cli/flow-weaver-chunk-4DVY73ML.mjs +280 -0
- package/dist/cli/flow-weaver-chunk-54M4KNEL.mjs +200 -0
- package/dist/cli/flow-weaver-chunk-55QMUZIA.mjs +256 -0
- package/dist/cli/flow-weaver-chunk-6ZUJ7LMX.mjs +2003 -0
- package/dist/cli/flow-weaver-chunk-7ET6N32V.mjs +419 -0
- package/dist/cli/flow-weaver-chunk-7G63RR4K.mjs +8880 -0
- package/dist/cli/flow-weaver-chunk-A6M5K3W7.mjs +4418 -0
- package/dist/cli/flow-weaver-chunk-AA3NATMX.mjs +154 -0
- package/dist/cli/flow-weaver-chunk-APX6MQ5A.mjs +5652 -0
- package/dist/cli/flow-weaver-chunk-BHCC5FE5.mjs +17 -0
- package/dist/cli/flow-weaver-chunk-DM4BBRRU.mjs +35 -0
- package/dist/cli/flow-weaver-chunk-DRN7KPWY.mjs +168 -0
- package/dist/cli/flow-weaver-chunk-EKWF27G6.mjs +23 -0
- package/dist/cli/flow-weaver-chunk-EM5HWQ4R.mjs +338 -0
- package/dist/cli/flow-weaver-chunk-FPPPU2DG.mjs +226 -0
- package/dist/cli/flow-weaver-chunk-GAQXZHNO.mjs +3005 -0
- package/dist/cli/flow-weaver-chunk-GBUNNP33.mjs +1329 -0
- package/dist/cli/flow-weaver-chunk-HMAKDE55.mjs +636 -0
- package/dist/cli/flow-weaver-chunk-HQ3ZAN44.mjs +367 -0
- package/dist/cli/flow-weaver-chunk-I4APCXYN.mjs +21442 -0
- package/dist/cli/flow-weaver-chunk-IJJ4JXTL.mjs +2297 -0
- package/dist/cli/flow-weaver-chunk-J7EPZW2I.mjs +33 -0
- package/dist/cli/flow-weaver-chunk-KOEMJHLG.mjs +83 -0
- package/dist/cli/flow-weaver-chunk-M6CBWQKJ.mjs +271 -0
- package/dist/cli/flow-weaver-chunk-MHJ4N652.mjs +1580 -0
- package/dist/cli/flow-weaver-chunk-MKAFQWLP.mjs +202 -0
- package/dist/cli/flow-weaver-chunk-MMV2XGD3.mjs +3291 -0
- package/dist/cli/flow-weaver-chunk-MSI2UJES.mjs +125 -0
- package/dist/cli/flow-weaver-chunk-N767YRAI.mjs +48 -0
- package/dist/cli/flow-weaver-chunk-NQKKWDGF.mjs +56 -0
- package/dist/cli/flow-weaver-chunk-NYZDQYFU.mjs +45 -0
- package/dist/cli/flow-weaver-chunk-OMVWSNHJ.mjs +14 -0
- package/dist/cli/flow-weaver-chunk-PUWZ47H5.mjs +2188 -0
- package/dist/cli/flow-weaver-chunk-QOPRVDES.mjs +46 -0
- package/dist/cli/flow-weaver-chunk-RIWE7YTR.mjs +216 -0
- package/dist/cli/flow-weaver-chunk-S63Q3JIU.mjs +789 -0
- package/dist/cli/flow-weaver-chunk-T7X5A23H.mjs +558 -0
- package/dist/cli/flow-weaver-chunk-TLV3VZUN.mjs +2 -0
- package/dist/cli/flow-weaver-chunk-TS5P3PIN.mjs +194 -0
- package/dist/cli/flow-weaver-chunk-U3EO3X4B.mjs +649 -0
- package/dist/cli/flow-weaver-chunk-UNFS3NQP.mjs +34 -0
- package/dist/cli/flow-weaver-chunk-V6DHWFQG.mjs +2811 -0
- package/dist/cli/flow-weaver-chunk-VXWNLYQU.mjs +9 -0
- package/dist/cli/flow-weaver-chunk-W3YNK26P.mjs +149 -0
- package/dist/cli/flow-weaver-chunk-XG2WKXYZ.mjs +324 -0
- package/dist/cli/flow-weaver-chunk-YLSRZWFK.mjs +2219 -0
- package/dist/cli/flow-weaver-chunk-YVPURWS6.mjs +40 -0
- package/dist/cli/flow-weaver-chunk-Z44JK332.mjs +582 -0
- package/dist/cli/flow-weaver-chunk-Z5ZJPNSY.mjs +517 -0
- package/dist/cli/flow-weaver-chunk-ZQALO25T.mjs +594 -0
- package/dist/cli/flow-weaver-compile-A2CABDSB.mjs +37 -0
- package/dist/cli/flow-weaver-console-6EBHDBTN.mjs +71 -0
- package/dist/cli/flow-weaver-context-ECLYANFF.mjs +17 -0
- package/dist/cli/flow-weaver-context-ZRUMW2KE.mjs +69 -0
- package/dist/cli/flow-weaver-create-WIP4EFNP.mjs +124 -0
- package/dist/cli/flow-weaver-deployment-WJJRK7NO.mjs +14 -0
- package/dist/cli/flow-weaver-describe-XDIFF5LI.mjs +41 -0
- package/dist/cli/flow-weaver-dev-LG2NSQAU.mjs +196 -0
- package/dist/cli/flow-weaver-diagram-3EVQARQE.mjs +52 -0
- package/dist/cli/flow-weaver-diagram-7LR7O4M2.mjs +44 -0
- package/dist/cli/flow-weaver-diff-USF7DJLU.mjs +85 -0
- package/dist/cli/flow-weaver-docs-QU2ZOXKH.mjs +96 -0
- package/dist/cli/flow-weaver-doctor-K447YWHR.mjs +43 -0
- package/dist/cli/flow-weaver-export-LAS6N56Y.mjs +140 -0
- package/dist/cli/flow-weaver-grammar-RIRUS3Q6.mjs +49 -0
- package/dist/cli/flow-weaver-grammar-diagrams-WXRTW5SK.mjs +15 -0
- package/dist/cli/flow-weaver-implement-5JG6BCFZ.mjs +114 -0
- package/dist/cli/flow-weaver-index.min-OR5SIHXD.mjs +39 -0
- package/dist/cli/flow-weaver-init-34YZNPQX.mjs +972 -0
- package/dist/cli/flow-weaver-init-personas-NOGZTQQ2.mjs +48 -0
- package/dist/cli/flow-weaver-manifest-4JNUSEB3.mjs +18 -0
- package/dist/cli/flow-weaver-market-WA4CKHKV.mjs +444 -0
- package/dist/cli/flow-weaver-mcp-setup-O26MGXSD.mjs +22 -0
- package/dist/cli/flow-weaver-migrate-VFVEUTPH.mjs +119 -0
- package/dist/cli/flow-weaver-modify-VM3JP5K6.mjs +97 -0
- package/dist/cli/flow-weaver-openapi-IRBWI3HM.mjs +71 -0
- package/dist/cli/flow-weaver-openapi-document-7N6YMPG3.mjs +30 -0
- package/dist/cli/flow-weaver-pack-commands-OS2QRXAK.mjs +146 -0
- package/dist/cli/flow-weaver-registry-5MLFRPPT.mjs +25 -0
- package/dist/cli/flow-weaver-run-DSTLSTHR.mjs +555 -0
- package/dist/cli/flow-weaver-serialization-node-LE6PCG4M.mjs +50 -0
- package/dist/cli/flow-weaver-serve-NVLCLSOW.mjs +192 -0
- package/dist/cli/flow-weaver-server-7IERLVXE.mjs +2925 -0
- package/dist/cli/flow-weaver-server-KWF4PXYC.mjs +19112 -0
- package/dist/cli/flow-weaver-status-75W2S3YB.mjs +138 -0
- package/dist/cli/flow-weaver-strip-AZPXUYVA.mjs +79 -0
- package/dist/cli/flow-weaver-templates-DSNMB6K7.mjs +72 -0
- package/dist/cli/flow-weaver-validate-A4UWDQN6.mjs +19 -0
- package/dist/cli/flow-weaver-validate-GRBZ5W4C.mjs +296 -0
- package/dist/cli/flow-weaver-validation-registry-BINGUNXX.mjs +9 -0
- package/dist/cli/flow-weaver-validator-TY56CI42.mjs +21 -0
- package/dist/cli/flow-weaver-watch-OPPERXL6.mjs +114 -0
- package/dist/cli/flow-weaver-workflow-executor-6AHYPXAN.mjs +26 -0
- package/dist/cli/flow-weaver.mjs +3557 -89384
- package/dist/cli/index.d.ts +5 -2
- package/dist/cli/pack-commands-needed.d.ts +12 -0
- package/dist/cli/program.d.ts +14 -0
- package/dist/cli/templates/ai/mock-provider.d.ts +1 -1
- package/dist/cli/templates/index.d.ts +1 -8
- package/dist/cli/templates/nodes/agent-router.d.ts +1 -1
- package/dist/cli/templates/nodes/aggregator.d.ts +1 -1
- package/dist/cli/templates/nodes/conversation-memory.d.ts +1 -1
- package/dist/cli/templates/nodes/http.d.ts +1 -1
- package/dist/cli/templates/nodes/human-approval.d.ts +1 -1
- package/dist/cli/templates/nodes/json-extractor.d.ts +1 -1
- package/dist/cli/templates/nodes/llm-call.d.ts +1 -1
- package/dist/cli/templates/nodes/prompt-template.d.ts +1 -1
- package/dist/cli/templates/nodes/rag-retriever.d.ts +1 -1
- package/dist/cli/templates/nodes/tool-executor.d.ts +1 -1
- package/dist/cli/templates/nodes/transformer.d.ts +1 -1
- package/dist/cli/templates/nodes/validator.d.ts +1 -1
- package/dist/cli/templates/shared/approval-types.d.ts +1 -1
- package/dist/cli/templates/shared/case.d.ts +14 -0
- package/dist/cli/templates/shared/llm-types.d.ts +4 -4
- package/dist/cli/templates/workflows/aggregator.d.ts +1 -1
- package/dist/cli/templates/workflows/ai-agent.d.ts +1 -1
- package/dist/cli/templates/workflows/ai-chat.d.ts +1 -1
- package/dist/cli/templates/workflows/ai-rag.d.ts +1 -1
- package/dist/cli/templates/workflows/ai-react.d.ts +1 -1
- package/dist/cli/templates/workflows/approval.d.ts +10 -0
- package/dist/cli/templates/workflows/conditional.d.ts +2 -2
- package/dist/cli/templates/workflows/error-handler.d.ts +2 -2
- package/dist/cli/templates/workflows/foreach.d.ts +1 -1
- package/dist/cli/templates/workflows/sequential.d.ts +1 -1
- package/dist/cli/templates/workflows/webhook.d.ts +1 -1
- package/dist/cli/utils/interactive.d.ts +6 -0
- package/dist/cli/utils/json-option.d.ts +8 -0
- package/dist/cli/utils/logger.d.ts +2 -0
- package/dist/compiler/durable-source-proof.d.ts +23 -0
- package/dist/compiler/executable-artifact.d.ts +29 -0
- package/dist/compiler/index.d.ts +4 -0
- package/dist/compiler/index.js +36 -0
- package/dist/console/app.js +106 -0
- package/dist/console/assets/synergenius.svg +18 -0
- package/dist/console/author.d.ts +32 -0
- package/dist/console/cli-catalog.d.ts +21 -0
- package/dist/console/cli-run.d.ts +35 -0
- package/dist/console/cli-run.js +46 -0
- package/dist/console/debug.d.ts +67 -0
- package/dist/console/diff-view.d.ts +96 -0
- package/dist/console/export.d.ts +36 -0
- package/dist/console/git.d.ts +27 -0
- package/dist/console/index.d.ts +4 -0
- package/dist/console/index.html +16 -0
- package/dist/console/index.js +203 -0
- package/dist/console/packs.d.ts +100 -0
- package/dist/console/request-guard.d.ts +10 -0
- package/dist/console/respond.d.ts +16 -0
- package/dist/console/router.d.ts +64 -0
- package/dist/console/routes-agents.d.ts +14 -0
- package/dist/console/routes-project.d.ts +3 -0
- package/dist/console/routes-runs.d.ts +3 -0
- package/dist/console/routes-services.d.ts +7 -0
- package/dist/console/routes-tools.d.ts +3 -0
- package/dist/console/runs.d.ts +69 -0
- package/dist/console/scan.d.ts +49 -0
- package/dist/console/schema.d.ts +74 -0
- package/dist/console/server.d.ts +34 -0
- package/dist/console/server.js +43264 -0
- package/dist/console/services.d.ts +119 -0
- package/dist/console/source.d.ts +23 -0
- package/dist/console/status.d.ts +68 -0
- package/dist/console/styles.css +1023 -0
- package/dist/console/terminals.d.ts +22 -0
- package/dist/console/workflow-view.d.ts +153 -0
- package/dist/constants.d.ts +5 -1
- package/dist/constants.js +56 -167
- package/dist/context/index.d.ts +10 -0
- package/dist/context/index.js +14 -191
- package/dist/coordinator/agent-gate.d.ts +107 -0
- package/dist/coordinator/bundle-digest.d.ts +20 -0
- package/dist/coordinator/clock-tick.d.ts +4 -0
- package/dist/coordinator/effect-receipts.d.ts +10 -0
- package/dist/coordinator/errors.d.ts +31 -0
- package/dist/coordinator/file-store.d.ts +3 -0
- package/dist/coordinator/gate-labeling.d.ts +33 -0
- package/dist/coordinator/gate-resolution.d.ts +28 -0
- package/dist/coordinator/index.d.ts +12 -0
- package/dist/coordinator/index.js +107 -0
- package/dist/coordinator/memory-store.d.ts +3 -0
- package/dist/coordinator/params.d.ts +18 -0
- package/dist/coordinator/run-annotations.d.ts +6 -0
- package/dist/coordinator/run-context.d.ts +11 -0
- package/dist/coordinator/run-ending.d.ts +5 -0
- package/dist/coordinator/run-outcome.d.ts +31 -0
- package/dist/coordinator/run-resume.d.ts +6 -0
- package/dist/coordinator/run-start.d.ts +4 -0
- package/dist/coordinator/run-store.d.ts +275 -0
- package/dist/coordinator/run-trace.d.ts +41 -0
- package/dist/coordinator/run-views.d.ts +12 -0
- package/dist/coordinator/runs-dir.d.ts +26 -0
- package/dist/coordinator/store.d.ts +67 -0
- package/dist/coordinator/time.d.ts +39 -0
- package/dist/coordinator/workflow-selection.d.ts +6 -0
- package/dist/deployment/index.d.ts +11 -16
- package/dist/deployment/index.js +541 -50
- package/dist/deployment/targets/base.d.ts +11 -13
- package/dist/deployment/targets/openapi-parts.d.ts +92 -0
- package/dist/diagram/arms.d.ts +70 -0
- package/dist/diagram/ascii-renderer.d.ts +1 -1
- package/dist/diagram/geometry.d.ts +20 -32
- package/dist/diagram/graph/bounds.d.ts +30 -0
- package/dist/diagram/graph/metrics.d.ts +21 -0
- package/dist/diagram/graph/nodes.d.ts +33 -0
- package/dist/diagram/graph/placement.d.ts +22 -0
- package/dist/diagram/graph/ports.d.ts +23 -0
- package/dist/diagram/graph/routing.d.ts +40 -0
- package/dist/diagram/graph/scopes.d.ts +30 -0
- package/dist/diagram/index.d.ts +15 -23
- package/dist/diagram/index.js +632 -111
- package/dist/diagram/labels.d.ts +12 -0
- package/dist/diagram/lanes.d.ts +93 -0
- package/dist/diagram/layout.d.ts +1 -1
- package/dist/diagram/material-symbols.d.ts +7 -0
- package/dist/diagram/orthogonal-router.d.ts +2 -3
- package/dist/diagram/process-view.d.ts +79 -0
- package/dist/diagram/spine.d.ts +25 -0
- package/dist/diagram/theme.d.ts +1 -5
- package/dist/diagram/types.d.ts +6 -20
- package/dist/diff/index.js +53 -9
- package/dist/diff/types.d.ts +1 -5
- package/dist/doc-metadata/extractors/annotations.d.ts +0 -4
- package/dist/doc-metadata/extractors/cli-commands.d.ts +2 -1
- package/dist/doc-metadata/extractors/core-metadata.d.ts +19 -4
- package/dist/doc-metadata/extractors/error-codes.d.ts +1 -1
- package/dist/doc-metadata/extractors/mcp-tools.d.ts +7 -3
- package/dist/doc-metadata/index.d.ts +1 -2
- package/dist/doc-metadata/index.js +2368 -9
- package/dist/doc-metadata/types.d.ts +7 -24
- package/dist/docs/guide.d.ts +33 -0
- package/dist/docs/index.d.ts +7 -4
- package/dist/docs/index.js +298 -298
- package/dist/docs/pack-topics.d.ts +18 -0
- package/dist/editor-completions/annotationValues.d.ts +1 -1
- package/dist/editor-completions/contextParser.d.ts +3 -2
- package/dist/editor-completions/dataTypes.d.ts +1 -1
- package/dist/editor-completions/goToDefinition.d.ts +1 -1
- package/dist/editor-completions/index.d.ts +8 -8
- package/dist/editor-completions/index.js +1244 -175
- package/dist/editor-completions/jsDocAnnotations.d.ts +1 -1
- package/dist/editor-completions/modifierCompletions.d.ts +1 -1
- package/dist/export/index.d.ts +7 -1
- package/dist/generated-branding.js +8 -21
- package/dist/generated-version.d.ts +1 -1
- package/dist/generated-version.js +7 -3
- package/dist/generator/annotation-generator.d.ts +84 -0
- package/dist/generator/async-detection.d.ts +1 -1
- package/dist/{body-generator.d.ts → generator/body-generator.d.ts} +7 -3
- package/dist/generator/code-utils.d.ts +15 -60
- package/dist/generator/connection-reads.d.ts +94 -0
- package/dist/generator/control-flow-plan.d.ts +74 -0
- package/dist/generator/control-flow.d.ts +1 -1
- package/dist/generator/exit-assembly.d.ts +11 -0
- package/dist/generator/index.d.ts +4 -5
- package/dist/generator/index.js +34 -11
- package/dist/generator/input-port-values.d.ts +22 -0
- package/dist/generator/{scope-function-generator.d.ts → node-arguments.d.ts} +76 -1
- package/dist/generator/node-invocation.d.ts +74 -0
- package/dist/{node-types-generator.d.ts → generator/node-types-generator.d.ts} +3 -2
- package/dist/generator/scope-closure.d.ts +23 -0
- package/dist/generator/scoped-child.d.ts +49 -0
- package/dist/{sugar-optimizer.d.ts → generator/sugar-optimizer.d.ts} +1 -1
- package/dist/generator/unified.d.ts +14 -2
- package/dist/generator/workflow-generator.d.ts +37 -0
- package/dist/index.d.ts +29 -26
- package/dist/index.js +1322 -92
- package/dist/jsdoc-port-sync/apply-diff.d.ts +15 -0
- package/dist/jsdoc-port-sync/callback-signature.d.ts +17 -0
- package/dist/jsdoc-port-sync/diff.d.ts +5 -7
- package/dist/jsdoc-port-sync/incomplete-lines.d.ts +41 -0
- package/dist/jsdoc-port-sync/index.d.ts +11 -11
- package/dist/jsdoc-port-sync/index.js +88 -45
- package/dist/jsdoc-port-sync/jsdoc-to-signature.d.ts +66 -0
- package/dist/jsdoc-port-sync/port-parser.d.ts +6 -24
- package/dist/jsdoc-port-sync/port-tag-placement.d.ts +55 -0
- package/dist/jsdoc-port-sync/scoped-ports.d.ts +21 -0
- package/dist/jsdoc-port-sync/signature-parser.d.ts +8 -1
- package/dist/jsdoc-port-sync/signature-to-jsdoc.d.ts +77 -0
- package/dist/jsdoc-port-sync/sync.d.ts +4 -1
- package/dist/marketplace/index.d.ts +5 -3
- package/dist/marketplace/index.js +62 -10
- package/dist/marketplace/install.d.ts +24 -0
- package/dist/marketplace/manifest.d.ts +1 -1
- package/dist/marketplace/npmrc.d.ts +24 -0
- package/dist/marketplace/registry.d.ts +46 -11
- package/dist/marketplace/types.d.ts +41 -24
- package/dist/marketplace/validator.d.ts +1 -1
- package/dist/mcp/debug-session.d.ts +2 -4
- package/dist/mcp/dist-imports.d.ts +12 -0
- package/dist/mcp/response-utils.d.ts +11 -9
- package/dist/mcp/server.d.ts +0 -1
- package/dist/mcp/tools-context.d.ts +11 -0
- package/dist/mcp/tools-diagram.d.ts +1 -2
- package/dist/mcp/tools-export.d.ts +2 -2
- package/dist/mcp/tools-marketplace.d.ts +1 -1
- package/dist/mcp/tools-run.d.ts +17 -0
- package/dist/mcp/tools-workflow.d.ts +3 -0
- package/dist/mcp/types.d.ts +4 -14
- package/dist/mcp/workflow-executor.d.ts +57 -19
- package/dist/npm-packages.d.ts +1 -1
- package/dist/npm-packages.js +10 -473
- package/dist/parser/annotation-parser.d.ts +88 -0
- package/dist/parser/annotation-suggestion.d.ts +23 -0
- package/dist/parser/durable-effect-contract.d.ts +10 -0
- package/dist/parser/expression-references.d.ts +101 -0
- package/dist/parser/external-node-types.d.ts +69 -0
- package/dist/{function-like.d.ts → parser/function-like.d.ts} +10 -3
- package/dist/parser/generated-sections.d.ts +25 -0
- package/dist/parser/import-resolution.d.ts +67 -0
- package/dist/parser/import-stub.d.ts +29 -0
- package/dist/parser/jsdoc/config-types.d.ts +209 -0
- package/dist/parser/jsdoc/graph-tags.d.ts +54 -0
- package/dist/parser/jsdoc/node-type-block.d.ts +23 -0
- package/dist/parser/jsdoc/parse-line-once.d.ts +11 -0
- package/dist/parser/jsdoc/port-tags.d.ts +42 -0
- package/dist/parser/jsdoc/runtime-tags.d.ts +65 -0
- package/dist/parser/jsdoc/signature-types.d.ts +52 -0
- package/dist/parser/jsdoc/workflow-block.d.ts +22 -0
- package/dist/parser/jsdoc-parser.d.ts +23 -0
- package/dist/parser/macro-expansion.d.ts +80 -0
- package/dist/parser/module-resolution.d.ts +38 -0
- package/dist/parser/node-inference.d.ts +39 -0
- package/dist/parser/npm-node-types.d.ts +24 -0
- package/dist/parser/pack-handlers.d.ts +12 -0
- package/dist/parser/path-data-resolution.d.ts +75 -0
- package/dist/parser/port-inference.d.ts +15 -0
- package/dist/{resolve-package-types.d.ts → parser/resolve-package-types.d.ts} +4 -0
- package/dist/parser/serialize-deploy-annotations.d.ts +19 -0
- package/dist/parser/tag-registry.d.ts +22 -0
- package/dist/parser/workflow-extraction.d.ts +39 -0
- package/dist/runtime/ExecutionContext.d.ts +87 -99
- package/dist/runtime/continuation-core.d.ts +147 -0
- package/dist/runtime/continuation.d.ts +48 -0
- package/dist/runtime/debug-controller.d.ts +7 -22
- package/dist/runtime/durable-execution.d.ts +176 -0
- package/dist/runtime/events.d.ts +16 -1
- package/dist/runtime/executable-module-contract.d.ts +16 -0
- package/dist/runtime/index.d.ts +13 -10
- package/dist/runtime/index.js +947 -9
- package/dist/runtime/strict-json.d.ts +15 -0
- package/dist/server/access.d.ts +12 -0
- package/dist/server/api.d.ts +126 -0
- package/dist/server/callback-delivery.d.ts +62 -0
- package/dist/server/callback-url.d.ts +44 -0
- package/dist/server/context.d.ts +35 -0
- package/dist/server/http-error.d.ts +10 -0
- package/dist/server/index.d.ts +7 -1
- package/dist/server/index.js +125 -6
- package/dist/server/openapi-document.d.ts +33 -0
- package/dist/server/openapi.d.ts +32 -0
- package/dist/server/respond.d.ts +35 -0
- package/dist/server/route-params.d.ts +17 -0
- package/dist/server/route-plan.d.ts +41 -0
- package/dist/server/routes-catalog.d.ts +5 -0
- package/dist/server/routes-declared.d.ts +12 -0
- package/dist/server/routes-runs.d.ts +8 -0
- package/dist/server/run-driver.d.ts +58 -0
- package/dist/server/run-view.d.ts +26 -0
- package/dist/server/transport.d.ts +35 -0
- package/dist/server/types.d.ts +143 -52
- package/dist/server/webhook-server.d.ts +12 -38
- package/dist/server/workflow-registry.d.ts +7 -4
- package/dist/service-registry.d.ts +49 -0
- package/dist/service-registry.js +123 -0
- package/dist/testing/assertions.d.ts +2 -2
- package/dist/testing/index.d.ts +14 -13
- package/dist/testing/index.js +582 -24
- package/dist/testing/mock-approval.d.ts +3 -5
- package/dist/testing/mock-llm.d.ts +2 -3
- package/dist/testing/recorder.d.ts +5 -6
- package/dist/testing/replayer.d.ts +6 -7
- package/dist/testing/run-store-check.d.ts +3 -0
- package/dist/testing/token-tracker.d.ts +2 -2
- package/dist/{type-mappings.d.ts → types/type-mappings.d.ts} +13 -1
- package/dist/utils/error-utils.d.ts +4 -2
- package/dist/utils/port-ordering.d.ts +2 -2
- package/dist/utils/port-tag-utils.d.ts +1 -1
- package/dist/validation/agent-detection.d.ts +17 -5
- package/dist/validation/agent-rules.d.ts +6 -7
- package/dist/validation/core-rules.d.ts +49 -0
- package/dist/validation/design-rules.d.ts +9 -3
- package/dist/validation/rule-registry.d.ts +3 -3
- package/dist/validation/rules/connections.d.ts +27 -0
- package/dist/validation/rules/context.d.ts +11 -0
- package/dist/validation/rules/cycles.d.ts +17 -0
- package/dist/validation/rules/data-flow.d.ts +19 -0
- package/dist/validation/rules/scope-topology.d.ts +35 -0
- package/dist/validation/rules/type-compatibility.d.ts +30 -0
- package/dist/validation/type-checker.d.ts +39 -0
- package/dist/validation/validator-helpers.d.ts +31 -0
- package/dist/validation/validator.d.ts +30 -0
- package/docs/reference/advanced-annotations.md +277 -60
- package/docs/reference/built-in-nodes.md +164 -94
- package/docs/reference/cancellation.md +44 -0
- package/docs/reference/cli-reference.md +252 -234
- package/docs/reference/compilation.md +36 -109
- package/docs/reference/concepts.md +80 -63
- package/docs/reference/console.md +169 -0
- package/docs/reference/debugging.md +26 -57
- package/docs/reference/deployment.md +217 -143
- package/docs/reference/durable-gates.md +445 -0
- package/docs/reference/error-codes.md +90 -43
- package/docs/reference/export-interface.md +91 -26
- package/docs/reference/iterative-development.md +50 -28
- package/docs/reference/jsdoc-grammar.md +66 -311
- package/docs/reference/library.md +250 -0
- package/docs/reference/marketplace.md +301 -152
- package/docs/reference/mcp-tools.md +102 -0
- package/docs/reference/node-conversion.md +84 -59
- package/docs/reference/orientation.md +68 -0
- package/docs/reference/scaffold.md +5 -4
- package/docs/reference/tutorial.md +106 -166
- package/docs/reference/visual-reference.md +1 -1
- package/package.json +85 -50
- package/dist/agent/agent-loop.js +0 -156
- package/dist/agent/cli-spawn-config.js +0 -65
- package/dist/agent/device-connection.d.ts +0 -79
- package/dist/agent/device-connection.js +0 -184
- package/dist/agent/env-allowlist.js +0 -60
- package/dist/agent/providers/anthropic.js +0 -198
- package/dist/agent/providers/claude-cli.js +0 -161
- package/dist/agent/providers/openai-compat.js +0 -205
- package/dist/agent/providers/platform.d.ts +0 -23
- package/dist/agent/providers/platform.js +0 -132
- package/dist/agent/streaming.js +0 -186
- package/dist/agent/types.js +0 -20
- package/dist/annotation-generator.d.ts +0 -50
- package/dist/annotation-generator.js +0 -743
- package/dist/api/builder.js +0 -345
- package/dist/api/command-runner.js +0 -787
- package/dist/api/compile.js +0 -148
- package/dist/api/extract-types.js +0 -57
- package/dist/api/generate-in-place.js +0 -1477
- package/dist/api/generate.js +0 -514
- package/dist/api/helpers.js +0 -285
- package/dist/api/inline-runtime.js +0 -526
- package/dist/api/manipulation/connections.js +0 -151
- package/dist/api/manipulation/index.js +0 -41
- package/dist/api/manipulation/node-types.js +0 -200
- package/dist/api/manipulation/nodes.js +0 -355
- package/dist/api/manipulation/ports.js +0 -228
- package/dist/api/manipulation/scopes.js +0 -156
- package/dist/api/manipulation/workflow.js +0 -116
- package/dist/api/modify-operation.js +0 -177
- package/dist/api/parse.js +0 -115
- package/dist/api/patterns.d.ts +0 -112
- package/dist/api/patterns.js +0 -303
- package/dist/api/query.js +0 -840
- package/dist/api/templates.js +0 -117
- package/dist/api/transform.js +0 -40
- package/dist/api/validate.js +0 -64
- package/dist/api/validation-registry.js +0 -10
- package/dist/api/workflow-file-operations.js +0 -180
- package/dist/ast/builder.js +0 -395
- package/dist/ast/serialization-node.js +0 -30
- package/dist/ast/serialization.js +0 -134
- package/dist/ast/types.js +0 -2
- package/dist/ast/workflow-utils.js +0 -114
- package/dist/body-generator.js +0 -35
- package/dist/built-in-nodes/coercion-types.js +0 -61
- package/dist/built-in-nodes/delay.js +0 -29
- package/dist/built-in-nodes/generated-registry.js +0 -299
- package/dist/built-in-nodes/invoke-workflow.js +0 -36
- package/dist/built-in-nodes/mock-types.js +0 -42
- package/dist/built-in-nodes/wait-for-agent.js +0 -31
- package/dist/built-in-nodes/wait-for-event.js +0 -25
- package/dist/chevrotain-parser/coerce-parser.js +0 -103
- package/dist/chevrotain-parser/connect-parser.js +0 -136
- package/dist/chevrotain-parser/fan-parser.js +0 -149
- package/dist/chevrotain-parser/grammar-diagrams.js +0 -273
- package/dist/chevrotain-parser/index.js +0 -31
- package/dist/chevrotain-parser/map-parser.js +0 -130
- package/dist/chevrotain-parser/node-parser.js +0 -558
- package/dist/chevrotain-parser/path-parser.js +0 -140
- package/dist/chevrotain-parser/port-parser.js +0 -519
- package/dist/chevrotain-parser/position-parser.d.ts +0 -20
- package/dist/chevrotain-parser/position-parser.js +0 -83
- package/dist/chevrotain-parser/scope-parser.js +0 -104
- package/dist/chevrotain-parser/tokens.js +0 -429
- package/dist/chevrotain-parser/trigger-cancel-parser.js +0 -291
- package/dist/cli/commands/account.d.ts +0 -4
- package/dist/cli/commands/account.js +0 -50
- package/dist/cli/commands/ai-credentials.d.ts +0 -12
- package/dist/cli/commands/ai-credentials.js +0 -95
- package/dist/cli/commands/apikey.d.ts +0 -4
- package/dist/cli/commands/apikey.js +0 -64
- package/dist/cli/commands/auth.d.ts +0 -9
- package/dist/cli/commands/auth.js +0 -255
- package/dist/cli/commands/compile.js +0 -331
- package/dist/cli/commands/connect.d.ts +0 -4
- package/dist/cli/commands/connect.js +0 -163
- package/dist/cli/commands/context.js +0 -51
- package/dist/cli/commands/create.js +0 -139
- package/dist/cli/commands/deploy.d.ts +0 -6
- package/dist/cli/commands/deploy.js +0 -74
- package/dist/cli/commands/dev.js +0 -227
- package/dist/cli/commands/diagram.js +0 -39
- package/dist/cli/commands/diff.js +0 -57
- package/dist/cli/commands/docs.js +0 -74
- package/dist/cli/commands/export.js +0 -153
- package/dist/cli/commands/grammar.js +0 -40
- package/dist/cli/commands/implement.js +0 -91
- package/dist/cli/commands/init-personas.js +0 -541
- package/dist/cli/commands/init.js +0 -797
- package/dist/cli/commands/market.js +0 -440
- package/dist/cli/commands/mcp-setup.js +0 -433
- package/dist/cli/commands/migrate.js +0 -91
- package/dist/cli/commands/modify.js +0 -58
- package/dist/cli/commands/openapi.js +0 -71
- package/dist/cli/commands/org.d.ts +0 -8
- package/dist/cli/commands/org.js +0 -136
- package/dist/cli/commands/pattern.d.ts +0 -34
- package/dist/cli/commands/pattern.js +0 -186
- package/dist/cli/commands/plugin.d.ts +0 -16
- package/dist/cli/commands/plugin.js +0 -176
- package/dist/cli/commands/run.js +0 -742
- package/dist/cli/commands/serve.js +0 -93
- package/dist/cli/commands/status.js +0 -123
- package/dist/cli/commands/strip.js +0 -61
- package/dist/cli/commands/templates.js +0 -58
- package/dist/cli/commands/validate.js +0 -267
- package/dist/cli/commands/watch.js +0 -71
- package/dist/cli/config/credentials.d.ts +0 -15
- package/dist/cli/config/credentials.js +0 -43
- package/dist/cli/config/platform-client.d.ts +0 -123
- package/dist/cli/config/platform-client.js +0 -248
- package/dist/cli/env-setup.js +0 -12
- package/dist/cli/index.js +0 -850
- package/dist/cli/pack-commands.js +0 -122
- package/dist/cli/postinstall.d.ts +0 -16
- package/dist/cli/postinstall.js +0 -119
- package/dist/cli/templates/ai/mock-provider.js +0 -64
- package/dist/cli/templates/ai/types.js +0 -5
- package/dist/cli/templates/approvals/index.d.ts +0 -15
- package/dist/cli/templates/approvals/index.js +0 -241
- package/dist/cli/templates/index.js +0 -123
- package/dist/cli/templates/nodes/agent-router.js +0 -114
- package/dist/cli/templates/nodes/aggregator.js +0 -63
- package/dist/cli/templates/nodes/conversation-memory.js +0 -85
- package/dist/cli/templates/nodes/http.js +0 -80
- package/dist/cli/templates/nodes/human-approval.js +0 -109
- package/dist/cli/templates/nodes/json-extractor.js +0 -119
- package/dist/cli/templates/nodes/llm-call.js +0 -106
- package/dist/cli/templates/nodes/prompt-template.js +0 -52
- package/dist/cli/templates/nodes/rag-retriever.js +0 -128
- package/dist/cli/templates/nodes/tool-executor.js +0 -108
- package/dist/cli/templates/nodes/transformer.js +0 -68
- package/dist/cli/templates/nodes/validator.js +0 -62
- package/dist/cli/templates/pack-loader.js +0 -58
- package/dist/cli/templates/providers/index.js +0 -239
- package/dist/cli/templates/shared/approval-types.js +0 -31
- package/dist/cli/templates/shared/llm-types.js +0 -109
- package/dist/cli/templates/workflows/aggregator.js +0 -101
- package/dist/cli/templates/workflows/ai-agent.js +0 -326
- package/dist/cli/templates/workflows/ai-chat.js +0 -167
- package/dist/cli/templates/workflows/ai-rag.js +0 -184
- package/dist/cli/templates/workflows/ai-react.js +0 -293
- package/dist/cli/templates/workflows/conditional.js +0 -139
- package/dist/cli/templates/workflows/error-handler.js +0 -145
- package/dist/cli/templates/workflows/foreach.js +0 -140
- package/dist/cli/templates/workflows/sequential.js +0 -200
- package/dist/cli/templates/workflows/webhook.js +0 -158
- package/dist/cli/utils/cli-helpers.d.ts +0 -44
- package/dist/cli/utils/cli-helpers.js +0 -99
- package/dist/cli/utils/logger.js +0 -126
- package/dist/cli/utils/parse-int-strict.js +0 -17
- package/dist/cli/utils/safe-write.js +0 -54
- package/dist/deployment/config/defaults.d.ts +0 -29
- package/dist/deployment/config/defaults.js +0 -98
- package/dist/deployment/config/loader.d.ts +0 -24
- package/dist/deployment/config/loader.js +0 -237
- package/dist/deployment/config/types.d.ts +0 -117
- package/dist/deployment/config/types.js +0 -5
- package/dist/deployment/core/adapters.d.ts +0 -66
- package/dist/deployment/core/adapters.js +0 -156
- package/dist/deployment/core/executor.d.ts +0 -62
- package/dist/deployment/core/executor.js +0 -197
- package/dist/deployment/core/formatters.d.ts +0 -42
- package/dist/deployment/core/formatters.js +0 -146
- package/dist/deployment/openapi/generator.d.ts +0 -146
- package/dist/deployment/openapi/generator.js +0 -347
- package/dist/deployment/openapi/schema-converter.d.ts +0 -49
- package/dist/deployment/openapi/schema-converter.js +0 -192
- package/dist/deployment/targets/base.js +0 -855
- package/dist/deployment/types.d.ts +0 -140
- package/dist/deployment/types.js +0 -8
- package/dist/diagram/ascii-renderer.js +0 -528
- package/dist/diagram/geometry.js +0 -1226
- package/dist/diagram/html-viewer.d.ts +0 -21
- package/dist/diagram/html-viewer.js +0 -1745
- package/dist/diagram/layout.js +0 -143
- package/dist/diagram/orthogonal-router.js +0 -458
- package/dist/diagram/renderer.d.ts +0 -3
- package/dist/diagram/renderer.js +0 -280
- package/dist/diagram/theme.js +0 -282
- package/dist/diagram/types.js +0 -2
- package/dist/diff/WorkflowDiffer.js +0 -429
- package/dist/diff/formatDiff.js +0 -239
- package/dist/diff/impact.js +0 -119
- package/dist/diff/types.js +0 -35
- package/dist/doc-metadata/extractors/annotations.js +0 -638
- package/dist/doc-metadata/extractors/cli-commands.js +0 -326
- package/dist/doc-metadata/extractors/core-metadata.js +0 -61
- package/dist/doc-metadata/extractors/error-codes.js +0 -372
- package/dist/doc-metadata/extractors/grammar-rules.js +0 -51
- package/dist/doc-metadata/extractors/mcp-tools.js +0 -705
- package/dist/doc-metadata/extractors/plugin-api.d.ts +0 -19
- package/dist/doc-metadata/extractors/plugin-api.js +0 -279
- package/dist/doc-metadata/types.js +0 -5
- package/dist/editor-completions/annotationValues.js +0 -146
- package/dist/editor-completions/contextParser.js +0 -410
- package/dist/editor-completions/dataTypes.js +0 -95
- package/dist/editor-completions/goToDefinition.js +0 -112
- package/dist/editor-completions/jsDocAnnotations.js +0 -359
- package/dist/editor-completions/modifierCompletions.js +0 -197
- package/dist/editor-completions/types.js +0 -8
- package/dist/export/index.js +0 -212
- package/dist/extensions/index.d.ts +0 -16
- package/dist/extensions/index.js +0 -17
- package/dist/friendly-errors.js +0 -761
- package/dist/function-like.js +0 -84
- package/dist/generator/async-detection.js +0 -56
- package/dist/generator/code-utils.js +0 -551
- package/dist/generator/compile-target-registry.d.ts +0 -20
- package/dist/generator/compile-target-registry.js +0 -20
- package/dist/generator/control-flow.js +0 -358
- package/dist/generator/dev-mode-registry.d.ts +0 -27
- package/dist/generator/dev-mode-registry.js +0 -20
- package/dist/generator/scope-function-generator.js +0 -397
- package/dist/generator/unified.js +0 -1831
- package/dist/generator.d.ts +0 -54
- package/dist/generator.js +0 -101
- package/dist/jsdoc-parser.d.ts +0 -377
- package/dist/jsdoc-parser.js +0 -1189
- package/dist/jsdoc-port-sync/constants.js +0 -103
- package/dist/jsdoc-port-sync/diff.js +0 -319
- package/dist/jsdoc-port-sync/port-parser.js +0 -579
- package/dist/jsdoc-port-sync/rename.js +0 -256
- package/dist/jsdoc-port-sync/signature-parser.js +0 -559
- package/dist/jsdoc-port-sync/sync.js +0 -653
- package/dist/marketplace/manifest.js +0 -194
- package/dist/marketplace/registry.js +0 -198
- package/dist/marketplace/types.js +0 -9
- package/dist/marketplace/validator.js +0 -150
- package/dist/mcp/agent-channel.d.ts +0 -35
- package/dist/mcp/agent-channel.js +0 -61
- package/dist/mcp/auto-registration.d.ts +0 -3
- package/dist/mcp/auto-registration.js +0 -62
- package/dist/mcp/debug-session.js +0 -25
- package/dist/mcp/index.d.ts +0 -11
- package/dist/mcp/index.js +0 -10
- package/dist/mcp/pack-tools.js +0 -59
- package/dist/mcp/prompts.js +0 -68
- package/dist/mcp/response-utils.js +0 -97
- package/dist/mcp/run-registry.d.ts +0 -29
- package/dist/mcp/run-registry.js +0 -24
- package/dist/mcp/server.js +0 -63
- package/dist/mcp/tools-context.js +0 -51
- package/dist/mcp/tools-debug.js +0 -451
- package/dist/mcp/tools-diagram.js +0 -97
- package/dist/mcp/tools-docs.js +0 -62
- package/dist/mcp/tools-export.js +0 -222
- package/dist/mcp/tools-marketplace.js +0 -132
- package/dist/mcp/tools-model.d.ts +0 -3
- package/dist/mcp/tools-model.js +0 -279
- package/dist/mcp/tools-pattern.d.ts +0 -3
- package/dist/mcp/tools-pattern.js +0 -604
- package/dist/mcp/tools-query.js +0 -377
- package/dist/mcp/tools-resources.js +0 -41
- package/dist/mcp/tools-template.js +0 -119
- package/dist/mcp/tools-workflow-run.d.ts +0 -40
- package/dist/mcp/tools-workflow-run.js +0 -150
- package/dist/mcp/types.js +0 -2
- package/dist/mcp/workflow-executor.js +0 -242
- package/dist/migration/registry.js +0 -29
- package/dist/node-types-generator.js +0 -139
- package/dist/parser/tag-registry.js +0 -57
- package/dist/parser.d.ts +0 -232
- package/dist/parser.js +0 -2500
- package/dist/plugin/PluginPanel.d.ts +0 -12
- package/dist/plugin/PluginPanel.js +0 -5
- package/dist/plugin/index.d.ts +0 -13
- package/dist/plugin/index.js +0 -14
- package/dist/plugin/types.d.ts +0 -75
- package/dist/plugin/types.js +0 -8
- package/dist/resolve-package-types.js +0 -123
- package/dist/runtime/CancellationError.js +0 -20
- package/dist/runtime/ExecutionContext.js +0 -280
- package/dist/runtime/builtin-functions.js +0 -549
- package/dist/runtime/checkpoint.d.ts +0 -84
- package/dist/runtime/checkpoint.js +0 -225
- package/dist/runtime/debug-controller.js +0 -247
- package/dist/runtime/events.js +0 -2
- package/dist/runtime/function-registry.js +0 -66
- package/dist/runtime/parameter-resolver.js +0 -113
- package/dist/server/types.js +0 -5
- package/dist/server/webhook-server.js +0 -269
- package/dist/server/workflow-registry.js +0 -202
- package/dist/shared-project.js +0 -28
- package/dist/sugar-optimizer.js +0 -498
- package/dist/testing/assertions.js +0 -127
- package/dist/testing/mock-approval.js +0 -98
- package/dist/testing/mock-llm.js +0 -119
- package/dist/testing/recorder.js +0 -70
- package/dist/testing/replayer.js +0 -143
- package/dist/testing/token-tracker.js +0 -94
- package/dist/type-checker.d.ts +0 -42
- package/dist/type-checker.js +0 -190
- package/dist/type-mappings.js +0 -131
- package/dist/types/branded-ports.d.ts +0 -151
- package/dist/types/branded-ports.js +0 -121
- package/dist/types/index.d.ts +0 -5
- package/dist/types/index.js +0 -5
- package/dist/types.d.ts +0 -139
- package/dist/types.js +0 -15
- package/dist/utils/error-utils.js +0 -27
- package/dist/utils/lru-cache.js +0 -40
- package/dist/utils/port-ordering.js +0 -81
- package/dist/utils/port-tag-utils.js +0 -41
- package/dist/utils/string-distance.js +0 -56
- package/dist/validation/agent-detection.js +0 -115
- package/dist/validation/agent-rules.js +0 -262
- package/dist/validation/design-rules.js +0 -377
- package/dist/validation/rule-registry.js +0 -37
- package/dist/validator.d.ts +0 -113
- package/dist/validator.js +0 -1631
- package/docs/reference/patterns.md +0 -159
- package/scripts/postinstall.cjs +0 -86
- /package/dist/{shared-project.d.ts → parser/shared-project.d.ts} +0 -0
- /package/dist/{friendly-errors.d.ts → validation/friendly-errors.d.ts} +0 -0
|
@@ -1,551 +0,0 @@
|
|
|
1
|
-
import { RESERVED_PORT_NAMES, isStartNode, isExitNode, isExecutePort, isSuccessPort, isFailurePort, } from '../constants.js';
|
|
2
|
-
import { generateScopeFunctionClosure } from './scope-function-generator.js';
|
|
3
|
-
import { mapToTypeScript } from '../type-mappings.js';
|
|
4
|
-
/** Map coercion target type to inline JS expression */
|
|
5
|
-
const COERCION_EXPRESSIONS = {
|
|
6
|
-
string: 'String',
|
|
7
|
-
number: 'Number',
|
|
8
|
-
boolean: 'Boolean',
|
|
9
|
-
json: 'JSON.stringify',
|
|
10
|
-
object: 'JSON.parse',
|
|
11
|
-
};
|
|
12
|
-
/** Map TDataType to TCoerceTargetType for auto-coercion */
|
|
13
|
-
const DATATYPE_TO_COERCE = {
|
|
14
|
-
STRING: 'string',
|
|
15
|
-
NUMBER: 'number',
|
|
16
|
-
BOOLEAN: 'boolean',
|
|
17
|
-
OBJECT: 'object',
|
|
18
|
-
};
|
|
19
|
-
/**
|
|
20
|
-
* Resolve the dataType of a source port by looking up the node instance -> node type -> outputs.
|
|
21
|
-
*/
|
|
22
|
-
function resolveSourcePortDataType(workflow, sourceNodeId, sourcePort) {
|
|
23
|
-
if (isStartNode(sourceNodeId)) {
|
|
24
|
-
return workflow.startPorts?.[sourcePort]?.dataType;
|
|
25
|
-
}
|
|
26
|
-
if (isExitNode(sourceNodeId)) {
|
|
27
|
-
return workflow.exitPorts?.[sourcePort]?.dataType;
|
|
28
|
-
}
|
|
29
|
-
const instance = workflow.instances.find((i) => i.id === sourceNodeId);
|
|
30
|
-
if (!instance)
|
|
31
|
-
return undefined;
|
|
32
|
-
const nodeType = workflow.nodeTypes.find((nt) => nt.name === instance.nodeType || nt.functionName === instance.nodeType);
|
|
33
|
-
if (!nodeType)
|
|
34
|
-
return undefined;
|
|
35
|
-
return nodeType.outputs?.[sourcePort]?.dataType;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Get the coercion expression to wrap a value, if coercion is needed.
|
|
39
|
-
* Returns null if no coercion needed.
|
|
40
|
-
*
|
|
41
|
-
* Priority:
|
|
42
|
-
* 1. Explicit coerce on the connection (from `as <type>` annotation)
|
|
43
|
-
* 2. Auto-coercion for safe pairs:
|
|
44
|
-
* - anything -> STRING (String() never fails)
|
|
45
|
-
* - BOOLEAN -> NUMBER (well-defined: false->0, true->1)
|
|
46
|
-
*/
|
|
47
|
-
export function getCoercionWrapper(connection, sourceDataType, targetDataType) {
|
|
48
|
-
// Explicit coerce on connection
|
|
49
|
-
if (connection.coerce) {
|
|
50
|
-
return COERCION_EXPRESSIONS[connection.coerce];
|
|
51
|
-
}
|
|
52
|
-
// No auto-coercion if types are unknown or same
|
|
53
|
-
if (!sourceDataType || !targetDataType || sourceDataType === targetDataType)
|
|
54
|
-
return null;
|
|
55
|
-
// Skip STEP and ANY ports — no coercion needed
|
|
56
|
-
if (sourceDataType === 'STEP' || targetDataType === 'STEP')
|
|
57
|
-
return null;
|
|
58
|
-
if (sourceDataType === 'ANY' || targetDataType === 'ANY')
|
|
59
|
-
return null;
|
|
60
|
-
// Auto-coerce: anything -> STRING
|
|
61
|
-
if (targetDataType === 'STRING' && sourceDataType !== 'STRING') {
|
|
62
|
-
return 'String';
|
|
63
|
-
}
|
|
64
|
-
// Auto-coerce: BOOLEAN -> NUMBER
|
|
65
|
-
if (sourceDataType === 'BOOLEAN' && targetDataType === 'NUMBER') {
|
|
66
|
-
return 'Number';
|
|
67
|
-
}
|
|
68
|
-
return null;
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Sanitize a node ID to be a valid JavaScript identifier.
|
|
72
|
-
* Replaces non-alphanumeric characters (except _ and $) with underscores.
|
|
73
|
-
*
|
|
74
|
-
* @param nodeId - The node ID (may contain slashes, etc.)
|
|
75
|
-
* @returns A valid JavaScript identifier
|
|
76
|
-
*/
|
|
77
|
-
export function toValidIdentifier(nodeId) {
|
|
78
|
-
// Replace any character that's not alphanumeric, underscore, or dollar sign
|
|
79
|
-
let sanitized = nodeId.replace(/[^a-zA-Z0-9_$]/g, '_');
|
|
80
|
-
// Ensure it doesn't start with a digit
|
|
81
|
-
if (/^[0-9]/.test(sanitized)) {
|
|
82
|
-
sanitized = '_' + sanitized;
|
|
83
|
-
}
|
|
84
|
-
return sanitized;
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Build a JavaScript expression that merges multiple source values based on strategy.
|
|
88
|
-
*
|
|
89
|
-
* @param sources - Array of source variable names
|
|
90
|
-
* @param strategy - Merge strategy to apply
|
|
91
|
-
* @returns JavaScript expression string
|
|
92
|
-
*/
|
|
93
|
-
export function buildMergeExpression(sources, strategy) {
|
|
94
|
-
switch (strategy) {
|
|
95
|
-
case 'FIRST':
|
|
96
|
-
return `(() => { const __s__ = [${sources.join(', ')}]; return __s__.find(v => v !== undefined); })()`;
|
|
97
|
-
case 'LAST':
|
|
98
|
-
return `(() => { const __s__ = [${sources.join(', ')}]; return __s__.filter(v => v !== undefined).pop(); })()`;
|
|
99
|
-
case 'COLLECT':
|
|
100
|
-
return `[${sources.join(', ')}]`;
|
|
101
|
-
case 'MERGE':
|
|
102
|
-
return `Object.assign({}, ${sources.join(', ')})`;
|
|
103
|
-
case 'CONCAT':
|
|
104
|
-
return `[${sources.join(', ')}].flat()`;
|
|
105
|
-
default:
|
|
106
|
-
return sources[0] ?? 'undefined';
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Builds the argument list for a node function call by resolving input port values.
|
|
111
|
-
*
|
|
112
|
-
* This function is central to code generation - it determines where each input port
|
|
113
|
-
* gets its value from: connections, expressions, defaults, or execution strategies.
|
|
114
|
-
*
|
|
115
|
-
* ## Resolution Priority (per port):
|
|
116
|
-
* 1. **Skip Ports**: If port is in skipPorts set, use pre-declared variable
|
|
117
|
-
* 2. **Instance Expression**: Check instance.config.portConfigs for constant expressions
|
|
118
|
-
* 3. **Connection**: Get value from connected output port via ctx.getVariable()
|
|
119
|
-
* 4. **Node Type Expression**: Check nodeType.inputs[port].expression
|
|
120
|
-
* 5. **Default Value**: Use nodeType.inputs[port].default if available
|
|
121
|
-
* 6. **Undefined**: No value source found (may cause runtime error)
|
|
122
|
-
*
|
|
123
|
-
* ## Special Handling:
|
|
124
|
-
* - **execute port**: Always first, handles CONJUNCTION/DISJUNCTION strategies
|
|
125
|
-
* - **Scoped INPUT ports**: Skipped (they're return values from scope functions)
|
|
126
|
-
* - **STEP ports (onSuccess/onFailure)**: Use executionSignal config if present
|
|
127
|
-
* - **Scope functions**: Generated via generateScopeFunctionClosure() for FUNCTION ports
|
|
128
|
-
*
|
|
129
|
-
* ## STEP Port Execution Strategies:
|
|
130
|
-
* - **CONJUNCTION (AND)**: `execute = stepA && stepB && stepC`
|
|
131
|
-
* - **DISJUNCTION (OR)**: `execute = stepA || stepB || stepC`
|
|
132
|
-
* - **CUSTOM**: Uses executionSignal expression
|
|
133
|
-
*
|
|
134
|
-
* @param opts - Configuration object with node, workflow, and generation settings
|
|
135
|
-
* @param opts.node - The node type definition with input/output port specs
|
|
136
|
-
* @param opts.workflow - The workflow AST containing connections and instances
|
|
137
|
-
* @param opts.id - The node instance ID being generated
|
|
138
|
-
* @param opts.lines - Array to push generated code lines into
|
|
139
|
-
* @param opts.indent - Indentation prefix for generated lines (default: " ")
|
|
140
|
-
* @param opts.getCall - Method to get variables (default: "await ctx.getVariable")
|
|
141
|
-
* @param opts.isAsync - Whether generating async code
|
|
142
|
-
* @param opts.instanceParent - Parent node ID if this node is in a scope
|
|
143
|
-
* @param opts.skipPorts - Ports to skip (already pre-handled)
|
|
144
|
-
* @param opts.emitInputEvents - Whether to emit VARIABLE_SET events for inputs
|
|
145
|
-
* @param opts.setCall - Method to set variables (default: "await ctx.setVariable")
|
|
146
|
-
* @param opts.nodeTypeName - Override for node type name in events
|
|
147
|
-
* @returns Array of argument expressions to pass to the node function
|
|
148
|
-
*/
|
|
149
|
-
export function buildNodeArgumentsWithContext(opts) {
|
|
150
|
-
const { node, workflow, id, lines, indent = ' ', getCall = 'await ctx.getVariable', isAsync = true, instanceParent, skipPorts, emitInputEvents = false, setCall = 'await ctx.setVariable', nodeTypeName, bundleMode = false, production = false, } = opts;
|
|
151
|
-
const safeId = toValidIdentifier(id);
|
|
152
|
-
const inputConnections = workflow.connections.filter((conn) => conn.to.node === id);
|
|
153
|
-
const args = [];
|
|
154
|
-
// Find instance for checking instance-level constant expressions
|
|
155
|
-
const instance = workflow.instances.find((i) => i.id === id);
|
|
156
|
-
const getInstancePortConfig = (portName) => instance?.config?.portConfigs?.find((pc) => pc.portName === portName && (pc.direction == null || pc.direction === 'INPUT'));
|
|
157
|
-
// Handle execute port first
|
|
158
|
-
const executeConnections = inputConnections.filter((conn) => conn.to.port === 'execute');
|
|
159
|
-
const effectiveNodeTypeName = nodeTypeName || node.functionName;
|
|
160
|
-
if (node.expression) {
|
|
161
|
-
// Expression nodes don't take execute as a function argument.
|
|
162
|
-
// Their _impl has no execute parameter (data-only signature).
|
|
163
|
-
// The wrapper or workflow body handles execute guard and control flow.
|
|
164
|
-
// Still emit the event for the execute port so the UI shows it.
|
|
165
|
-
if (emitInputEvents) {
|
|
166
|
-
lines.push(`${indent}${setCall}({ id: '${id}', portName: 'execute', executionIndex: ${safeId}Idx, nodeTypeName: '${effectiveNodeTypeName}' }, true);`);
|
|
167
|
-
}
|
|
168
|
-
// Don't push execute to args - expression _impl doesn't receive it
|
|
169
|
-
}
|
|
170
|
-
else if (skipPorts?.has('execute')) {
|
|
171
|
-
// Execute was pre-handled (e.g., in scope functions)
|
|
172
|
-
args.push(`${safeId}_execute`);
|
|
173
|
-
}
|
|
174
|
-
else if (executeConnections.length > 0) {
|
|
175
|
-
// Execute port has connections - use them
|
|
176
|
-
const varName = `${safeId}_execute`;
|
|
177
|
-
if (executeConnections.length === 1) {
|
|
178
|
-
const conn = executeConnections[0];
|
|
179
|
-
const sourceNode = conn.from.node;
|
|
180
|
-
const sourcePort = conn.from.port;
|
|
181
|
-
const sourceIdx = isStartNode(sourceNode) ? 'startIdx' : `${toValidIdentifier(sourceNode)}Idx`;
|
|
182
|
-
const isConstSource = isStartNode(sourceNode) || sourceNode === instanceParent;
|
|
183
|
-
if (isConstSource) {
|
|
184
|
-
lines.push(`${indent}const ${varName} = ${getCall}({ id: '${sourceNode}', portName: '${sourcePort}', executionIndex: ${sourceIdx} }) as boolean;`);
|
|
185
|
-
}
|
|
186
|
-
else {
|
|
187
|
-
// Non-const source may be undefined (CANCELLED branch) — guard with false default
|
|
188
|
-
lines.push(`${indent}const ${varName} = ${sourceIdx} !== undefined ? ${getCall}({ id: '${sourceNode}', portName: '${sourcePort}', executionIndex: ${sourceIdx} }) as boolean : false;`);
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
else {
|
|
192
|
-
// Multiple execute connections — coalesce with ||, each guarded
|
|
193
|
-
const parts = executeConnections.map((conn) => {
|
|
194
|
-
const sourceNode = conn.from.node;
|
|
195
|
-
const sourcePort = conn.from.port;
|
|
196
|
-
const sourceIdx = isStartNode(sourceNode) ? 'startIdx' : `${toValidIdentifier(sourceNode)}Idx`;
|
|
197
|
-
const isConstSource = isStartNode(sourceNode) || sourceNode === instanceParent;
|
|
198
|
-
if (isConstSource) {
|
|
199
|
-
return `(${getCall}({ id: '${sourceNode}', portName: '${sourcePort}', executionIndex: ${sourceIdx} }) as boolean)`;
|
|
200
|
-
}
|
|
201
|
-
return `(${sourceIdx} !== undefined ? ${getCall}({ id: '${sourceNode}', portName: '${sourcePort}', executionIndex: ${sourceIdx} }) as boolean : false)`;
|
|
202
|
-
});
|
|
203
|
-
lines.push(`${indent}const ${varName} = ${parts.join(' || ')};`);
|
|
204
|
-
}
|
|
205
|
-
// Emit VARIABLE_SET for execute input port
|
|
206
|
-
if (emitInputEvents) {
|
|
207
|
-
lines.push(`${indent}${setCall}({ id: '${id}', portName: 'execute', executionIndex: ${safeId}Idx, nodeTypeName: '${effectiveNodeTypeName}' }, ${varName});`);
|
|
208
|
-
}
|
|
209
|
-
args.push(varName);
|
|
210
|
-
}
|
|
211
|
-
else {
|
|
212
|
-
// Default execute to true - still emit event for the default value
|
|
213
|
-
if (emitInputEvents) {
|
|
214
|
-
lines.push(`${indent}${setCall}({ id: '${id}', portName: 'execute', executionIndex: ${safeId}Idx, nodeTypeName: '${effectiveNodeTypeName}' }, true);`);
|
|
215
|
-
}
|
|
216
|
-
args.push('true');
|
|
217
|
-
}
|
|
218
|
-
Object.keys(node.inputs).forEach((portName) => {
|
|
219
|
-
if (isExecutePort(portName))
|
|
220
|
-
return;
|
|
221
|
-
// Skip scoped INPUT ports - they're return values from scope, not function parameters
|
|
222
|
-
const portConfig = node.inputs[portName];
|
|
223
|
-
if (portConfig.scope)
|
|
224
|
-
return;
|
|
225
|
-
if (skipPorts?.has(portName)) {
|
|
226
|
-
// Port was pre-handled - skip variable declaration but include in args
|
|
227
|
-
const varName = `${safeId}_${portName}`;
|
|
228
|
-
args.push(varName);
|
|
229
|
-
return;
|
|
230
|
-
}
|
|
231
|
-
const connections = inputConnections.filter((conn) => {
|
|
232
|
-
const targetPort = conn.to.port;
|
|
233
|
-
return targetPort === portName;
|
|
234
|
-
});
|
|
235
|
-
// Check for instance-level expression first
|
|
236
|
-
const instancePortConfig = getInstancePortConfig(portName);
|
|
237
|
-
const hasInstanceExpression = instancePortConfig?.expression !== undefined;
|
|
238
|
-
const varName = `${safeId}_${portName}`;
|
|
239
|
-
const effectiveNodeTypeName = nodeTypeName || node.functionName;
|
|
240
|
-
// Helper to emit VARIABLE_SET event for input port
|
|
241
|
-
const emitSetEvent = () => {
|
|
242
|
-
if (emitInputEvents) {
|
|
243
|
-
lines.push(`${indent}${setCall}({ id: '${id}', portName: '${portName}', executionIndex: ${safeId}Idx, nodeTypeName: '${effectiveNodeTypeName}' }, ${varName});`);
|
|
244
|
-
}
|
|
245
|
-
};
|
|
246
|
-
if (hasInstanceExpression) {
|
|
247
|
-
// Instance-level expression takes priority
|
|
248
|
-
const expr = String(instancePortConfig.expression);
|
|
249
|
-
// Check if expression is a function (arrow or regular)
|
|
250
|
-
const isFunction = expr.includes('=>') || expr.trim().startsWith('function');
|
|
251
|
-
if (isFunction) {
|
|
252
|
-
lines.push(`${indent}const ${varName} = ${isAsync ? 'await ' : ''}(${expr})(ctx);`);
|
|
253
|
-
}
|
|
254
|
-
else {
|
|
255
|
-
// Simple expression - evaluate directly
|
|
256
|
-
lines.push(`${indent}const ${varName} = ${expr};`);
|
|
257
|
-
}
|
|
258
|
-
args.push(varName);
|
|
259
|
-
emitSetEvent();
|
|
260
|
-
}
|
|
261
|
-
else if (connections.length > 0) {
|
|
262
|
-
if (connections.length === 1) {
|
|
263
|
-
const connection = connections[0];
|
|
264
|
-
const sourceNode = connection.from.node;
|
|
265
|
-
const sourcePort = connection.from.port;
|
|
266
|
-
// Check if source node exists (Start node always exists)
|
|
267
|
-
const sourceExists = isStartNode(sourceNode) || workflow.instances.some((i) => i.id === sourceNode);
|
|
268
|
-
if (!sourceExists) {
|
|
269
|
-
lines.push(`${indent}const ${varName} = undefined; // Source node '${sourceNode}' not found`);
|
|
270
|
-
args.push(varName);
|
|
271
|
-
emitSetEvent();
|
|
272
|
-
return;
|
|
273
|
-
}
|
|
274
|
-
const sourceIdx = isStartNode(sourceNode) ? 'startIdx' : `${toValidIdentifier(sourceNode)}Idx`;
|
|
275
|
-
const isConstSource = isStartNode(sourceNode) || sourceNode === instanceParent;
|
|
276
|
-
const nonNullAssert = isConstSource ? '' : '!';
|
|
277
|
-
const rawPortType = mapToTypeScript(portConfig.dataType, portConfig.tsType);
|
|
278
|
-
// Use Parameters<typeof fn>[N] for non-primitive types to avoid bare
|
|
279
|
-
// type names from external modules that aren't in scope. The function
|
|
280
|
-
// IS always imported and in scope, so this is always safe.
|
|
281
|
-
const isPrimitive = /^(string|number|boolean|void|unknown|any|never|null|undefined)(\[\])?$/.test(rawPortType);
|
|
282
|
-
const paramIndex = args.length; // Current position in the function's parameter list
|
|
283
|
-
const portType = isPrimitive ? rawPortType : `Parameters<typeof ${node.functionName}>[${paramIndex}]`;
|
|
284
|
-
// For optional ports on non-const sources, guard against undefined execution index.
|
|
285
|
-
// This is critical for DISJUNCTION nodes where the source may not have executed.
|
|
286
|
-
const needsGuard = portConfig.optional && !isConstSource;
|
|
287
|
-
// For FUNCTION type ports, add resolution step to handle registry IDs
|
|
288
|
-
if (portConfig.dataType === 'FUNCTION') {
|
|
289
|
-
// Emit inline resolveFunction stub if not already declared in scope
|
|
290
|
-
// This avoids a ReferenceError in self-contained generated code
|
|
291
|
-
lines.push(`${indent}const __resolveFunction = typeof resolveFunction === 'function' ? resolveFunction : (p: unknown) => ({ fn: typeof p === 'function' ? p : () => { throw new Error('Cannot resolve function reference'); }, source: 'direct' as const });`);
|
|
292
|
-
const rawVarName = `${varName}_raw`;
|
|
293
|
-
if (needsGuard) {
|
|
294
|
-
lines.push(`${indent}const ${rawVarName} = ${sourceIdx} !== undefined ? ${getCall}({ id: '${sourceNode}', portName: '${sourcePort}', executionIndex: ${sourceIdx} }) : undefined;`);
|
|
295
|
-
lines.push(`${indent}const ${varName}_resolved = ${rawVarName} !== undefined ? __resolveFunction(${rawVarName}) : undefined;`);
|
|
296
|
-
lines.push(`${indent}const ${varName} = ${varName}_resolved?.fn as ${portType};`);
|
|
297
|
-
}
|
|
298
|
-
else {
|
|
299
|
-
lines.push(`${indent}const ${rawVarName} = ${getCall}({ id: '${sourceNode}', portName: '${sourcePort}', executionIndex: ${sourceIdx}${nonNullAssert} });`);
|
|
300
|
-
lines.push(`${indent}const ${varName}_resolved = __resolveFunction(${rawVarName});`);
|
|
301
|
-
lines.push(`${indent}const ${varName} = ${varName}_resolved.fn as ${portType};`);
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
else {
|
|
305
|
-
// Check for coercion (explicit or auto)
|
|
306
|
-
const sourceDataType = resolveSourcePortDataType(workflow, sourceNode, sourcePort);
|
|
307
|
-
const coerceExpr = getCoercionWrapper(connection, sourceDataType, portConfig.dataType);
|
|
308
|
-
if (needsGuard) {
|
|
309
|
-
const getExpr = `${getCall}({ id: '${sourceNode}', portName: '${sourcePort}', executionIndex: ${sourceIdx} })`;
|
|
310
|
-
const wrappedExpr = coerceExpr ? `${coerceExpr}(${getExpr})` : getExpr;
|
|
311
|
-
lines.push(`${indent}const ${varName} = ${sourceIdx} !== undefined ? ${wrappedExpr} as ${portType} : undefined;`);
|
|
312
|
-
}
|
|
313
|
-
else {
|
|
314
|
-
const getExpr = `${getCall}({ id: '${sourceNode}', portName: '${sourcePort}', executionIndex: ${sourceIdx}${nonNullAssert} })`;
|
|
315
|
-
if (coerceExpr) {
|
|
316
|
-
lines.push(`${indent}const ${varName} = ${coerceExpr}(${getExpr}) as ${portType};`);
|
|
317
|
-
}
|
|
318
|
-
else {
|
|
319
|
-
lines.push(`${indent}const ${varName} = ${getExpr} as ${portType};`);
|
|
320
|
-
}
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
}
|
|
324
|
-
else {
|
|
325
|
-
// Filter to only connections with existing source nodes
|
|
326
|
-
const validConnections = connections.filter((conn) => {
|
|
327
|
-
const sourceNode = conn.from.node;
|
|
328
|
-
return isStartNode(sourceNode) || workflow.instances.some((i) => i.id === sourceNode);
|
|
329
|
-
});
|
|
330
|
-
if (validConnections.length === 0) {
|
|
331
|
-
// All source nodes are orphaned
|
|
332
|
-
lines.push(`${indent}const ${varName} = undefined; // All source nodes not found`);
|
|
333
|
-
args.push(varName);
|
|
334
|
-
emitSetEvent();
|
|
335
|
-
return;
|
|
336
|
-
}
|
|
337
|
-
const attempts = [];
|
|
338
|
-
validConnections.forEach((conn) => {
|
|
339
|
-
const sourceNode = conn.from.node;
|
|
340
|
-
const sourcePort = conn.from.port;
|
|
341
|
-
const sourceIdx = isStartNode(sourceNode) ? 'startIdx' : `${toValidIdentifier(sourceNode)}Idx`;
|
|
342
|
-
const getExpr = `${getCall}({ id: '${sourceNode}', portName: '${sourcePort}', executionIndex: ${sourceIdx} })`;
|
|
343
|
-
// Per-connection coercion: each source gets its own coercion wrapper
|
|
344
|
-
if (portConfig.dataType !== 'FUNCTION') {
|
|
345
|
-
const sourceDataType = resolveSourcePortDataType(workflow, sourceNode, sourcePort);
|
|
346
|
-
const coerceExpr = getCoercionWrapper(conn, sourceDataType, portConfig.dataType);
|
|
347
|
-
const wrapped = coerceExpr ? `${coerceExpr}(${getExpr})` : getExpr;
|
|
348
|
-
attempts.push(`(${sourceIdx} !== undefined ? ${wrapped} : undefined)`);
|
|
349
|
-
}
|
|
350
|
-
else {
|
|
351
|
-
attempts.push(`(${sourceIdx} !== undefined ? ${getExpr} : undefined)`);
|
|
352
|
-
}
|
|
353
|
-
});
|
|
354
|
-
const ternary = attempts.join(' ?? ');
|
|
355
|
-
const rawPortType2 = mapToTypeScript(portConfig.dataType, portConfig.tsType);
|
|
356
|
-
const isPrimitive2 = /^(string|number|boolean|void|unknown|any|never|null|undefined)(\[\])?$/.test(rawPortType2);
|
|
357
|
-
const paramIndex2 = args.length;
|
|
358
|
-
const portType = isPrimitive2 ? rawPortType2 : `Parameters<typeof ${node.functionName}>[${paramIndex2}]`;
|
|
359
|
-
// For FUNCTION type ports, add resolution step to handle registry IDs
|
|
360
|
-
if (portConfig.dataType === 'FUNCTION') {
|
|
361
|
-
lines.push(`${indent}const __resolveFunction = typeof resolveFunction === 'function' ? resolveFunction : (p: unknown) => ({ fn: typeof p === 'function' ? p : () => { throw new Error('Cannot resolve function reference'); }, source: 'direct' as const });`);
|
|
362
|
-
const rawVarName = `${varName}_raw`;
|
|
363
|
-
lines.push(`${indent}const ${rawVarName} = ${ternary};`);
|
|
364
|
-
lines.push(`${indent}const ${varName}_resolved = ${rawVarName} !== undefined ? __resolveFunction(${rawVarName}) : undefined;`);
|
|
365
|
-
lines.push(`${indent}const ${varName} = ${varName}_resolved?.fn as ${portType};`);
|
|
366
|
-
}
|
|
367
|
-
else {
|
|
368
|
-
lines.push(`${indent}const ${varName} = ${ternary} as ${portType};`);
|
|
369
|
-
}
|
|
370
|
-
}
|
|
371
|
-
args.push(varName);
|
|
372
|
-
emitSetEvent();
|
|
373
|
-
}
|
|
374
|
-
else if (portConfig.expression) {
|
|
375
|
-
const expression = portConfig.expression;
|
|
376
|
-
const isFunction = expression.includes('=>') || expression.trim().startsWith('function');
|
|
377
|
-
const rawPortType3 = mapToTypeScript(portConfig.dataType, portConfig.tsType);
|
|
378
|
-
const isPrimitive3 = /^(string|number|boolean|void|unknown|any|never|null|undefined)(\[\])?$/.test(rawPortType3);
|
|
379
|
-
const paramIndex3 = args.length;
|
|
380
|
-
const portType = isPrimitive3 ? rawPortType3 : `Parameters<typeof ${node.functionName}>[${paramIndex3}]`;
|
|
381
|
-
if (isFunction) {
|
|
382
|
-
lines.push(`${indent}const ${varName} = ${isAsync ? 'await ' : ''}(${expression})(ctx) as ${portType};`);
|
|
383
|
-
}
|
|
384
|
-
else {
|
|
385
|
-
lines.push(`${indent}const ${varName} = ${expression} as ${portType};`);
|
|
386
|
-
}
|
|
387
|
-
args.push(varName);
|
|
388
|
-
emitSetEvent();
|
|
389
|
-
}
|
|
390
|
-
else if (portConfig.default !== undefined) {
|
|
391
|
-
const defaultVal = JSON.stringify(portConfig.default);
|
|
392
|
-
lines.push(`${indent}const ${varName} = ${defaultVal};`);
|
|
393
|
-
args.push(varName);
|
|
394
|
-
emitSetEvent();
|
|
395
|
-
}
|
|
396
|
-
else if (portConfig.optional) {
|
|
397
|
-
lines.push(`${indent}const ${varName} = undefined;`);
|
|
398
|
-
args.push(varName);
|
|
399
|
-
emitSetEvent();
|
|
400
|
-
}
|
|
401
|
-
else {
|
|
402
|
-
// Required port has no connection, expression, or default - use typed undefined fallback
|
|
403
|
-
const rawPortType4 = mapToTypeScript(portConfig.dataType, portConfig.tsType);
|
|
404
|
-
const isPrimitive4 = /^(string|number|boolean|void|unknown|any|never|null|undefined)(\[\])?$/.test(rawPortType4);
|
|
405
|
-
const paramIndex4 = args.length;
|
|
406
|
-
const portType = isPrimitive4 ? rawPortType4 : `Parameters<typeof ${node.functionName}>[${paramIndex4}]`;
|
|
407
|
-
lines.push(`${indent}let ${varName}: ${portType} = undefined as unknown as ${portType}; // Required port '${portName}' has no connection`);
|
|
408
|
-
args.push(varName);
|
|
409
|
-
emitSetEvent();
|
|
410
|
-
}
|
|
411
|
-
});
|
|
412
|
-
// Handle scoped ports: generate scope functions for each unique scope
|
|
413
|
-
// Collect all unique scope names from both inputs and outputs
|
|
414
|
-
const scopeNames = new Set();
|
|
415
|
-
Object.values(node.inputs).forEach((portDef) => {
|
|
416
|
-
if (portDef.scope)
|
|
417
|
-
scopeNames.add(portDef.scope);
|
|
418
|
-
});
|
|
419
|
-
Object.values(node.outputs).forEach((portDef) => {
|
|
420
|
-
if (portDef.scope)
|
|
421
|
-
scopeNames.add(portDef.scope);
|
|
422
|
-
});
|
|
423
|
-
// For each scope, generate a scope function closure
|
|
424
|
-
scopeNames.forEach((scopeName) => {
|
|
425
|
-
const scopeFunctionVar = `${safeId}_${scopeName}_scopeFn`;
|
|
426
|
-
// Find child instances in this scope
|
|
427
|
-
// Format: instance.parent = { id: parentId, scope: scopeName }
|
|
428
|
-
const childInstances = workflow.instances.filter((inst) => {
|
|
429
|
-
if (!inst.parent)
|
|
430
|
-
return false;
|
|
431
|
-
return inst.parent.id === id && inst.parent.scope === scopeName;
|
|
432
|
-
});
|
|
433
|
-
// Generate scope function closure
|
|
434
|
-
// Scope function async/sync must match what the PARENT NODE expects from its callback.
|
|
435
|
-
// A sync parent node (e.g., forEach) calls the callback synchronously — if the scope
|
|
436
|
-
// function is async it returns a Promise, causing `.field` accesses to yield `undefined`.
|
|
437
|
-
// Only make the scope function async if the parent node itself is async or a child is async.
|
|
438
|
-
// Do NOT inherit the workflow-level isAsync flag (which is true in dev mode for debugging).
|
|
439
|
-
const hasAsyncChild = childInstances.some((child) => {
|
|
440
|
-
const childNodeType = workflow.nodeTypes?.find((nt) => nt.name === child.nodeType || nt.functionName === child.nodeType);
|
|
441
|
-
return childNodeType?.isAsync === true;
|
|
442
|
-
});
|
|
443
|
-
const scopeIsAsync = node.isAsync || hasAsyncChild;
|
|
444
|
-
const scopeFunctionCode = generateScopeFunctionClosure(scopeName, id, node, workflow, childInstances, scopeIsAsync, production);
|
|
445
|
-
lines.push(`${indent}const ${scopeFunctionVar} = ${scopeFunctionCode};`);
|
|
446
|
-
args.push(scopeFunctionVar);
|
|
447
|
-
});
|
|
448
|
-
return args;
|
|
449
|
-
}
|
|
450
|
-
export function generateNodeWithExecutionContext(node, workflow, lines, isAsync, indent = ' ') {
|
|
451
|
-
const nodeName = node.functionName;
|
|
452
|
-
const safeNodeName = toValidIdentifier(nodeName); // Sanitize for use as JS variable name
|
|
453
|
-
const awaitPrefix = isAsync ? 'await ' : '';
|
|
454
|
-
const getCall = isAsync ? 'await ctx.getVariable' : 'ctx.getVariable';
|
|
455
|
-
const setCall = isAsync ? 'await ctx.setVariable' : 'ctx.setVariable';
|
|
456
|
-
lines.push(`${indent}const ${safeNodeName}Idx = ctx.addExecution('${nodeName}');`);
|
|
457
|
-
lines.push(`${indent}if (typeof globalThis !== 'undefined') (globalThis as unknown as { __fw_current_node_id__?: string }).__fw_current_node_id__ = '${nodeName}';`);
|
|
458
|
-
lines.push(`${indent}${awaitPrefix}ctx.sendStatusChangedEvent({`);
|
|
459
|
-
lines.push(`${indent} nodeTypeName: '${nodeName}',`);
|
|
460
|
-
lines.push(`${indent} id: '${nodeName}',`);
|
|
461
|
-
lines.push(`${indent} executionIndex: ${safeNodeName}Idx,`);
|
|
462
|
-
lines.push(`${indent} status: 'RUNNING',`);
|
|
463
|
-
lines.push(`${indent}});`);
|
|
464
|
-
lines.push(`${indent}try {`);
|
|
465
|
-
const args = buildNodeArgumentsWithContext({
|
|
466
|
-
node,
|
|
467
|
-
workflow,
|
|
468
|
-
id: nodeName,
|
|
469
|
-
lines,
|
|
470
|
-
indent: `${indent} `,
|
|
471
|
-
getCall,
|
|
472
|
-
isAsync,
|
|
473
|
-
});
|
|
474
|
-
const resultVar = `${safeNodeName}Result`;
|
|
475
|
-
lines.push(`${indent} const ${resultVar} = ${awaitPrefix}${node.functionName}(${args.join(', ')});`);
|
|
476
|
-
Object.keys(node.outputs).forEach((portName) => {
|
|
477
|
-
if (isSuccessPort(portName) || isFailurePort(portName))
|
|
478
|
-
return;
|
|
479
|
-
lines.push(`${indent} ${setCall}({ id: '${nodeName}', portName: '${portName}', executionIndex: ${safeNodeName}Idx, nodeTypeName: '${nodeName}' }, ${resultVar}.${portName});`);
|
|
480
|
-
});
|
|
481
|
-
lines.push(`${indent} ${awaitPrefix}ctx.sendStatusChangedEvent({`);
|
|
482
|
-
lines.push(`${indent} nodeTypeName: '${nodeName}',`);
|
|
483
|
-
lines.push(`${indent} id: '${nodeName}',`);
|
|
484
|
-
lines.push(`${indent} executionIndex: ${safeNodeName}Idx,`);
|
|
485
|
-
lines.push(`${indent} status: 'SUCCEEDED',`);
|
|
486
|
-
lines.push(`${indent} });`);
|
|
487
|
-
const hasOnSuccess = node.outputs.hasOwnProperty(RESERVED_PORT_NAMES.ON_SUCCESS);
|
|
488
|
-
const hasOnFailure = node.outputs.hasOwnProperty(RESERVED_PORT_NAMES.ON_FAILURE);
|
|
489
|
-
if (hasOnSuccess || hasOnFailure) {
|
|
490
|
-
if (hasOnSuccess) {
|
|
491
|
-
lines.push(`${indent} ${setCall}({ id: '${nodeName}', portName: '${RESERVED_PORT_NAMES.ON_SUCCESS}', executionIndex: ${safeNodeName}Idx, nodeTypeName: '${nodeName}' }, true);`);
|
|
492
|
-
}
|
|
493
|
-
if (hasOnFailure) {
|
|
494
|
-
lines.push(`${indent} ${setCall}({ id: '${nodeName}', portName: '${RESERVED_PORT_NAMES.ON_FAILURE}', executionIndex: ${safeNodeName}Idx, nodeTypeName: '${nodeName}' }, false);`);
|
|
495
|
-
}
|
|
496
|
-
}
|
|
497
|
-
lines.push(`${indent}} catch (error: unknown) {`);
|
|
498
|
-
lines.push(`${indent} ${awaitPrefix}ctx.sendStatusChangedEvent({`);
|
|
499
|
-
lines.push(`${indent} nodeTypeName: '${nodeName}',`);
|
|
500
|
-
lines.push(`${indent} id: '${nodeName}',`);
|
|
501
|
-
lines.push(`${indent} executionIndex: ${safeNodeName}Idx,`);
|
|
502
|
-
lines.push(`${indent} status: 'FAILED',`);
|
|
503
|
-
lines.push(`${indent} });`);
|
|
504
|
-
lines.push(`${indent} ctx.sendLogErrorEvent({`);
|
|
505
|
-
lines.push(`${indent} nodeTypeName: '${nodeName}',`);
|
|
506
|
-
lines.push(`${indent} id: '${nodeName}',`);
|
|
507
|
-
lines.push(`${indent} executionIndex: ${safeNodeName}Idx,`);
|
|
508
|
-
lines.push(`${indent} error: error instanceof Error ? error.message : String(error),`);
|
|
509
|
-
lines.push(`${indent} });`);
|
|
510
|
-
if (hasOnSuccess || hasOnFailure) {
|
|
511
|
-
if (hasOnSuccess) {
|
|
512
|
-
lines.push(`${indent} ${setCall}({ id: '${nodeName}', portName: '${RESERVED_PORT_NAMES.ON_SUCCESS}', executionIndex: ${safeNodeName}Idx, nodeTypeName: '${nodeName}' }, false);`);
|
|
513
|
-
}
|
|
514
|
-
if (hasOnFailure) {
|
|
515
|
-
lines.push(`${indent} ${setCall}({ id: '${nodeName}', portName: '${RESERVED_PORT_NAMES.ON_FAILURE}', executionIndex: ${safeNodeName}Idx, nodeTypeName: '${nodeName}' }, true);`);
|
|
516
|
-
}
|
|
517
|
-
}
|
|
518
|
-
const hasOnFailureConnection = workflow.connections.some((conn) => conn.from.node === nodeName && isFailurePort(conn.from.port));
|
|
519
|
-
if (hasOnFailureConnection) {
|
|
520
|
-
lines.push(`${indent} `);
|
|
521
|
-
}
|
|
522
|
-
else {
|
|
523
|
-
lines.push(`${indent} throw error;`);
|
|
524
|
-
}
|
|
525
|
-
lines.push(`${indent}}`);
|
|
526
|
-
}
|
|
527
|
-
export function buildExecutionContextReturnForBranch(workflow, lines, isAsync, branchName, indent, executedNodes) {
|
|
528
|
-
const getCall = isAsync ? 'await ctx.getVariable' : 'ctx.getVariable';
|
|
529
|
-
const exitConnections = workflow.connections.filter((conn) => isExitNode(conn.to.node));
|
|
530
|
-
const returnProps = [];
|
|
531
|
-
exitConnections.forEach((conn) => {
|
|
532
|
-
const exitPort = conn.to.port;
|
|
533
|
-
const sourceNode = conn.from.node;
|
|
534
|
-
const sourcePort = conn.from.port;
|
|
535
|
-
const sourceIdx = isStartNode(sourceNode) ? 'startIdx' : `${toValidIdentifier(sourceNode)}Idx`;
|
|
536
|
-
// Get exit port type for type casting
|
|
537
|
-
const exitPortDef = workflow.exitPorts[exitPort];
|
|
538
|
-
const exitPortType = exitPortDef?.tsType || (exitPortDef ? mapToTypeScript(exitPortDef.dataType) : 'unknown');
|
|
539
|
-
if (!executedNodes.includes(sourceNode) && !isStartNode(sourceNode)) {
|
|
540
|
-
returnProps.push(`${exitPort}: undefined`);
|
|
541
|
-
}
|
|
542
|
-
else {
|
|
543
|
-
const varName = `exit_${exitPort}_${branchName}`;
|
|
544
|
-
lines.push(`${indent}const ${varName} = ${sourceIdx} !== undefined ? ${getCall}({ id: '${sourceNode}', portName: '${sourcePort}', executionIndex: ${sourceIdx} }) : undefined;`);
|
|
545
|
-
// Cast to the exit port's declared type for type safety
|
|
546
|
-
returnProps.push(`${exitPort}: ${varName} as ${exitPortType}`);
|
|
547
|
-
}
|
|
548
|
-
});
|
|
549
|
-
return `{ ${returnProps.join(', ')} }`;
|
|
550
|
-
}
|
|
551
|
-
//# sourceMappingURL=code-utils.js.map
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Extension point for custom compile targets.
|
|
3
|
-
*
|
|
4
|
-
* Extensions and packs register their compile targets here.
|
|
5
|
-
* The compile command and MCP tool look up targets from this registry.
|
|
6
|
-
*/
|
|
7
|
-
import type { TNodeTypeAST, TWorkflowAST } from '../ast/types.js';
|
|
8
|
-
export interface CompileTarget {
|
|
9
|
-
name: string;
|
|
10
|
-
compile(workflow: TWorkflowAST, nodeTypes: TNodeTypeAST[], options: Record<string, unknown>): string;
|
|
11
|
-
}
|
|
12
|
-
declare class CompileTargetRegistry {
|
|
13
|
-
private targets;
|
|
14
|
-
register(target: CompileTarget): void;
|
|
15
|
-
get(name: string): CompileTarget | undefined;
|
|
16
|
-
getNames(): string[];
|
|
17
|
-
}
|
|
18
|
-
export declare const compileTargetRegistry: CompileTargetRegistry;
|
|
19
|
-
export {};
|
|
20
|
-
//# sourceMappingURL=compile-target-registry.d.ts.map
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Extension point for custom compile targets.
|
|
3
|
-
*
|
|
4
|
-
* Extensions and packs register their compile targets here.
|
|
5
|
-
* The compile command and MCP tool look up targets from this registry.
|
|
6
|
-
*/
|
|
7
|
-
class CompileTargetRegistry {
|
|
8
|
-
targets = new Map();
|
|
9
|
-
register(target) {
|
|
10
|
-
this.targets.set(target.name, target);
|
|
11
|
-
}
|
|
12
|
-
get(name) {
|
|
13
|
-
return this.targets.get(name);
|
|
14
|
-
}
|
|
15
|
-
getNames() {
|
|
16
|
-
return [...this.targets.keys()];
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
export const compileTargetRegistry = new CompileTargetRegistry();
|
|
20
|
-
//# sourceMappingURL=compile-target-registry.js.map
|