@synergenius/flow-weaver 0.33.1 → 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 -244
- 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 -89498
- 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 +22 -29
- 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 +15 -51
- package/dist/diagram/process-view.d.ts +79 -0
- package/dist/diagram/spine.d.ts +25 -0
- package/dist/diagram/theme.d.ts +3 -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 -1267
- package/dist/diagram/html-viewer.d.ts +0 -21
- package/dist/diagram/html-viewer.js +0 -1689
- package/dist/diagram/layout.js +0 -143
- package/dist/diagram/orthogonal-router.js +0 -568
- package/dist/diagram/renderer.d.ts +0 -3
- package/dist/diagram/renderer.js +0 -266
- 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
|
@@ -6,7 +6,7 @@ keywords: [pullExecution, executeWhen, mergeStrategy, autoConnect, strictTypes,
|
|
|
6
6
|
|
|
7
7
|
# Advanced Annotations
|
|
8
8
|
|
|
9
|
-
This guide covers annotations that go beyond the basics in [Concepts](concepts). Each feature is fully supported by the parser, validator, and compiler.
|
|
9
|
+
This guide covers annotations that go beyond the basics in [Concepts](concepts.md). Each feature is fully supported by the parser, validator, and compiler.
|
|
10
10
|
|
|
11
11
|
## Pull Execution
|
|
12
12
|
|
|
@@ -65,7 +65,7 @@ Controls how a node evaluates incoming STEP signals before firing. This matters
|
|
|
65
65
|
| `DISJUNCTION` | Execute when **ANY** signal arrives (OR) | Priority routing, first-response |
|
|
66
66
|
| `CUSTOM` | Execution controlled by custom logic | Advanced patterns |
|
|
67
67
|
|
|
68
|
-
|
|
68
|
+
The strategy is set on the node type, and applies to every instance of it:
|
|
69
69
|
|
|
70
70
|
```typescript
|
|
71
71
|
/**
|
|
@@ -80,15 +80,6 @@ function firstResponse(execute: boolean, data: string) {
|
|
|
80
80
|
}
|
|
81
81
|
```
|
|
82
82
|
|
|
83
|
-
### Instance Level
|
|
84
|
-
|
|
85
|
-
```typescript
|
|
86
|
-
/**
|
|
87
|
-
* @flowWeaver workflow
|
|
88
|
-
* @node fr firstResponse [executeWhen: DISJUNCTION]
|
|
89
|
-
*/
|
|
90
|
-
```
|
|
91
|
-
|
|
92
83
|
---
|
|
93
84
|
|
|
94
85
|
## Merge Strategies
|
|
@@ -147,9 +138,24 @@ Enables automatic linear connection wiring. When `@autoConnect` is present and n
|
|
|
147
138
|
Start -> first @node -> second @node -> ... -> last @node -> Exit
|
|
148
139
|
```
|
|
149
140
|
|
|
150
|
-
Data ports are matched by name — if node A has an output named `
|
|
141
|
+
Data ports are matched by name between neighbours — if node A has an output named `record` and the next node B has an input named `record`, they are automatically connected.
|
|
151
142
|
|
|
152
143
|
```typescript
|
|
144
|
+
/** @flowWeaver nodeType @expression */
|
|
145
|
+
function validateRecord(data: Record<string, unknown>): { record: Record<string, unknown> } {
|
|
146
|
+
return { record: data };
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/** @flowWeaver nodeType @expression */
|
|
150
|
+
function enrichRecord(record: Record<string, unknown>): { enriched: Record<string, unknown> } {
|
|
151
|
+
return { enriched: { ...record, enrichedAt: Date.now() } };
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
/** @flowWeaver nodeType @expression */
|
|
155
|
+
function scoreRecord(enriched: Record<string, unknown>): { result: Record<string, unknown> } {
|
|
156
|
+
return { result: { ...enriched, score: 1 } };
|
|
157
|
+
}
|
|
158
|
+
|
|
153
159
|
/**
|
|
154
160
|
* @flowWeaver workflow
|
|
155
161
|
* @autoConnect
|
|
@@ -159,18 +165,23 @@ Data ports are matched by name — if node A has an output named `result` and no
|
|
|
159
165
|
* @param data - Input record
|
|
160
166
|
* @returns result - Scored record
|
|
161
167
|
*/
|
|
162
|
-
export function pipeline(
|
|
163
|
-
|
|
168
|
+
export function pipeline(
|
|
169
|
+
execute: boolean,
|
|
170
|
+
params: { data: Record<string, unknown> }
|
|
171
|
+
): { onSuccess: boolean; onFailure: boolean; result: Record<string, unknown> } {
|
|
172
|
+
throw new Error('generated body was not installed');
|
|
164
173
|
}
|
|
165
174
|
```
|
|
166
175
|
|
|
167
176
|
This is equivalent to manually writing:
|
|
168
177
|
```
|
|
178
|
+
@connect Start.execute -> v.execute
|
|
169
179
|
@connect Start.data -> v.data
|
|
170
180
|
@connect v.onSuccess -> e.execute
|
|
171
|
-
@connect v.
|
|
181
|
+
@connect v.record -> e.record
|
|
172
182
|
@connect e.onSuccess -> s.execute
|
|
173
|
-
@connect e.
|
|
183
|
+
@connect e.enriched -> s.enriched
|
|
184
|
+
@connect s.onSuccess -> Exit.onSuccess
|
|
174
185
|
@connect s.result -> Exit.result
|
|
175
186
|
```
|
|
176
187
|
|
|
@@ -184,7 +195,24 @@ Fan macros reduce boilerplate when broadcasting a single output to many targets,
|
|
|
184
195
|
|
|
185
196
|
### `@fanOut` — One to Many
|
|
186
197
|
|
|
187
|
-
Broadcasts a single output port to multiple targets
|
|
198
|
+
Broadcasts a single output port to multiple targets. The examples below use three node types that each take `data` and return `result`:
|
|
199
|
+
|
|
200
|
+
```typescript
|
|
201
|
+
/** @flowWeaver nodeType @expression */
|
|
202
|
+
function processA(data: string): { result: string } {
|
|
203
|
+
return { result: `A: ${data}` };
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
/** @flowWeaver nodeType @expression */
|
|
207
|
+
function processB(data: string): { result: string } {
|
|
208
|
+
return { result: `B: ${data}` };
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
/** @flowWeaver nodeType @expression */
|
|
212
|
+
function processC(data: string): { result: string } {
|
|
213
|
+
return { result: `C: ${data}` };
|
|
214
|
+
}
|
|
215
|
+
```
|
|
188
216
|
|
|
189
217
|
```typescript
|
|
190
218
|
/**
|
|
@@ -227,11 +255,14 @@ Merges multiple output ports into a single target:
|
|
|
227
255
|
* @node c processC
|
|
228
256
|
* @node agg aggregate
|
|
229
257
|
*
|
|
258
|
+
* @fanOut Start.data -> a, b, c
|
|
230
259
|
* @fanIn a.result, b.result, c.result -> agg.items
|
|
231
|
-
* @connect agg.
|
|
260
|
+
* @connect agg.combined -> Exit.result
|
|
232
261
|
*/
|
|
233
262
|
```
|
|
234
263
|
|
|
264
|
+
(`aggregate` is the `[mergeStrategy:COLLECT]` node type from [Declaring Merge Strategy](#declaring-merge-strategy).)
|
|
265
|
+
|
|
235
266
|
This expands to:
|
|
236
267
|
```
|
|
237
268
|
@connect a.result -> agg.items
|
|
@@ -249,56 +280,141 @@ Both macros are preserved through parse-regenerate round-trips. The compiler sto
|
|
|
249
280
|
|
|
250
281
|
## Strict Types (`@strictTypes`)
|
|
251
282
|
|
|
252
|
-
By default, type mismatches between connected ports produce warnings. With `@strictTypes`, they become errors.
|
|
283
|
+
By default, type mismatches between connected ports produce warnings. With `@strictTypes`, they become `TYPE_INCOMPATIBLE` errors. This workflow is rejected because a `STRING` output reaches a `NUMBER` input:
|
|
253
284
|
|
|
285
|
+
<!-- example: invalid TYPE_INCOMPATIBLE -->
|
|
254
286
|
```typescript
|
|
287
|
+
/** @flowWeaver nodeType @expression */
|
|
288
|
+
function readAmount(raw: string): { amount: string } {
|
|
289
|
+
return { amount: raw.trim() };
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
/** @flowWeaver nodeType @expression */
|
|
293
|
+
function addTax(total: number): { withTax: number } {
|
|
294
|
+
return { withTax: total * 1.2 };
|
|
295
|
+
}
|
|
296
|
+
|
|
255
297
|
/**
|
|
256
298
|
* @flowWeaver workflow
|
|
257
299
|
* @strictTypes
|
|
258
|
-
* @
|
|
259
|
-
* @
|
|
300
|
+
* @param raw - Amount as typed by the user
|
|
301
|
+
* @returns withTax - Amount with tax
|
|
302
|
+
* @node read readAmount
|
|
303
|
+
* @node tax addTax
|
|
304
|
+
* @path Start -> read -> tax -> Exit
|
|
305
|
+
* @connect read.amount -> tax.total
|
|
260
306
|
*/
|
|
307
|
+
export function strict(
|
|
308
|
+
execute: boolean,
|
|
309
|
+
params: { raw: string }
|
|
310
|
+
): { onSuccess: boolean; onFailure: boolean; withTax: number } {
|
|
311
|
+
throw new Error('generated body was not installed');
|
|
312
|
+
}
|
|
261
313
|
```
|
|
262
314
|
|
|
263
|
-
|
|
264
|
-
- **
|
|
265
|
-
- **
|
|
266
|
-
- **
|
|
267
|
-
-
|
|
315
|
+
How a connection between two node ports is judged:
|
|
316
|
+
- **same type** (`STRING` → `STRING`), or `ANY` on either side: compatible
|
|
317
|
+
- **safe coercion** (`NUMBER` → `STRING`, `BOOLEAN` → `STRING`): compatible, no warning
|
|
318
|
+
- **lossy coercion** (`STRING` → `NUMBER`, `OBJECT` → `STRING`, ...), **unusual coercion** (`NUMBER` → `BOOLEAN`, `STRING` → `OBJECT`, ...) and any other mismatch: a warning (`LOSSY_TYPE_COERCION`, `UNUSUAL_TYPE_COERCION`, `TYPE_MISMATCH`) by default, a `TYPE_INCOMPATIBLE` error with `@strictTypes`
|
|
319
|
+
- a `STEP` port connected to a data port: always an error (`STEP_PORT_TYPE_MISMATCH`)
|
|
320
|
+
|
|
321
|
+
Connections from `Start` or into `Exit` are not type-checked.
|
|
268
322
|
|
|
269
323
|
---
|
|
270
324
|
|
|
271
325
|
## Path Sugar (`@path`)
|
|
272
326
|
|
|
273
|
-
Syntactic sugar for declaring multi-step execution routes. A `@path` annotation expands to a chain of STEP connections (execute → onSuccess).
|
|
327
|
+
Syntactic sugar for declaring multi-step execution routes. A `@path` annotation expands to a chain of STEP connections (execute → onSuccess) and wires the data ports along the way by name.
|
|
274
328
|
|
|
275
329
|
### Basic Syntax
|
|
276
330
|
|
|
277
331
|
```typescript
|
|
332
|
+
/** @flowWeaver nodeType @expression */
|
|
333
|
+
function validate(record: Record<string, unknown>): { record: Record<string, unknown> } {
|
|
334
|
+
return { record };
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
/** @flowWeaver nodeType @expression */
|
|
338
|
+
function enrich(record: Record<string, unknown>): { record: Record<string, unknown> } {
|
|
339
|
+
return { record: { ...record, enrichedAt: Date.now() } };
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
/** @flowWeaver nodeType @expression */
|
|
343
|
+
function score(record: Record<string, unknown>): { score: number } {
|
|
344
|
+
return { score: Object.keys(record).length };
|
|
345
|
+
}
|
|
346
|
+
|
|
278
347
|
/**
|
|
279
348
|
* @flowWeaver workflow
|
|
349
|
+
* @param record - Raw record
|
|
350
|
+
* @returns score - Final score
|
|
280
351
|
* @node v validate
|
|
281
352
|
* @node e enrich
|
|
282
353
|
* @node s score
|
|
283
354
|
* @path Start -> v -> e -> s -> Exit
|
|
284
355
|
*/
|
|
356
|
+
export function scorePipeline(
|
|
357
|
+
execute: boolean,
|
|
358
|
+
params: { record: Record<string, unknown> }
|
|
359
|
+
): { onSuccess: boolean; onFailure: boolean; score: number } {
|
|
360
|
+
throw new Error('generated body was not installed');
|
|
361
|
+
}
|
|
285
362
|
```
|
|
286
363
|
|
|
287
364
|
This expands to:
|
|
288
365
|
```
|
|
289
366
|
@connect Start.execute -> v.execute
|
|
367
|
+
@connect Start.record -> v.record
|
|
290
368
|
@connect v.onSuccess -> e.execute
|
|
369
|
+
@connect v.record -> e.record
|
|
291
370
|
@connect e.onSuccess -> s.execute
|
|
292
|
-
@connect
|
|
371
|
+
@connect e.record -> s.record
|
|
372
|
+
@connect s.onSuccess -> Exit.onSuccess
|
|
373
|
+
@connect s.score -> Exit.score
|
|
293
374
|
```
|
|
294
375
|
|
|
376
|
+
### Data Resolution
|
|
377
|
+
|
|
378
|
+
For every step after the first, each data input resolves to the nearest earlier step in the path that has an output of the same name. `Start` params count as outputs, and `Exit` `@returns` ports count as inputs, so a linear pipeline with consistently named ports needs no `@connect` at all.
|
|
379
|
+
|
|
380
|
+
Two rules keep this predictable:
|
|
381
|
+
|
|
382
|
+
- **An explicit `@connect` wins.** If a port already has a connection, `@path` leaves it alone. Use this to take a value from an earlier step than the nearest one.
|
|
383
|
+
- **A `Start` param never passes straight through to `Exit`.** Echoing an input as an output would hide a missing producer, so `Start.x -> Exit.x` is only ever an explicit `@connect`.
|
|
384
|
+
|
|
385
|
+
A port with no same-name ancestor stays unconnected and is reported by validation as usual (`MISSING_REQUIRED_INPUT` for a node, `UNREACHABLE_EXIT_PORT` for Exit).
|
|
386
|
+
|
|
295
387
|
### Branching with `:ok` and `:fail`
|
|
296
388
|
|
|
297
|
-
Use `:ok` or `:fail` suffixes to route through `onSuccess` or `onFailure
|
|
389
|
+
Use `:ok` or `:fail` suffixes to route through `onSuccess` or `onFailure`. The router is a normal-mode node, because it branches:
|
|
298
390
|
|
|
299
391
|
```typescript
|
|
392
|
+
/**
|
|
393
|
+
* Boolean branch: onSuccess for routine records, onFailure for urgent ones.
|
|
394
|
+
* @flowWeaver nodeType
|
|
395
|
+
*/
|
|
396
|
+
function routeUrgency(
|
|
397
|
+
execute: boolean,
|
|
398
|
+
record: Record<string, unknown>
|
|
399
|
+
): { onSuccess: boolean; onFailure: boolean; record: Record<string, unknown> } {
|
|
400
|
+
if (!execute) return { onSuccess: false, onFailure: false, record };
|
|
401
|
+
const urgent = record.priority === 'high';
|
|
402
|
+
return { onSuccess: !urgent, onFailure: urgent, record };
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
/** @flowWeaver nodeType @expression */
|
|
406
|
+
function handle(record: Record<string, unknown>): { handled: boolean } {
|
|
407
|
+
return { handled: record !== undefined };
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
/** @flowWeaver nodeType @expression */
|
|
411
|
+
function escalate(record: Record<string, unknown>): { ticket: string } {
|
|
412
|
+
return { ticket: `ESC-${String(record.id)}` };
|
|
413
|
+
}
|
|
414
|
+
|
|
300
415
|
/**
|
|
301
416
|
* @flowWeaver workflow
|
|
417
|
+
* @param record - Raw record
|
|
302
418
|
* @node v validate
|
|
303
419
|
* @node router routeUrgency
|
|
304
420
|
* @node handler handle
|
|
@@ -316,8 +432,25 @@ Without a suffix, `:ok` (onSuccess) is the default. Duplicate connections from o
|
|
|
316
432
|
Multiple paths can be declared in a single `@path` tag using commas. This is equivalent to separate `@path` tags:
|
|
317
433
|
|
|
318
434
|
```typescript
|
|
435
|
+
/** @flowWeaver nodeType @expression */
|
|
436
|
+
function enrichCompany(lead: { domain: string }): { company: string } {
|
|
437
|
+
return { company: lead.domain };
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
/** @flowWeaver nodeType @expression */
|
|
441
|
+
function enrichContact(lead: { email: string }): { contact: string } {
|
|
442
|
+
return { contact: lead.email };
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
/** @flowWeaver nodeType @expression */
|
|
446
|
+
function scoreLead(company: string, contact: string): { score: number } {
|
|
447
|
+
return { score: company.length + contact.length };
|
|
448
|
+
}
|
|
449
|
+
|
|
319
450
|
/**
|
|
320
|
-
* @flowWeaver workflow
|
|
451
|
+
* @flowWeaver workflow
|
|
452
|
+
* @param lead - The lead to score
|
|
453
|
+
* @returns score - Lead score
|
|
321
454
|
* @node enrichCompany enrichCompany
|
|
322
455
|
* @node enrichContact enrichContact
|
|
323
456
|
* @node scoreLead scoreLead
|
|
@@ -340,6 +473,11 @@ Syntactic sugar for forEach iteration patterns. A `@map` expands to a synthetic
|
|
|
340
473
|
### Basic Syntax
|
|
341
474
|
|
|
342
475
|
```typescript
|
|
476
|
+
/** @flowWeaver nodeType @expression */
|
|
477
|
+
function doubleIt(value: number): { doubled: number } {
|
|
478
|
+
return { doubled: value * 2 };
|
|
479
|
+
}
|
|
480
|
+
|
|
343
481
|
/**
|
|
344
482
|
* @flowWeaver workflow
|
|
345
483
|
* @node proc doubleIt
|
|
@@ -378,10 +516,64 @@ Node instances in workflows support attribute brackets `[...]` for configuration
|
|
|
378
516
|
Set port values via JavaScript expressions instead of connections:
|
|
379
517
|
|
|
380
518
|
```typescript
|
|
381
|
-
@node wait
|
|
519
|
+
@node wait delay [expr: duration="'30s'"]
|
|
520
|
+
```
|
|
521
|
+
|
|
522
|
+
Each assignment is `portName="expression"`. Multiple assignments are comma-separated. (`waitForEvent` and `waitForAgent` accept expressions the same way, but using either makes the workflow a gated one — see [Durable Gates](durable-gates.md).)
|
|
523
|
+
|
|
524
|
+
#### Referencing upstream ports
|
|
525
|
+
|
|
526
|
+
An expression may read values the workflow already has: `Start.<param>` for a workflow input, `<node>.<port>` for an output of an earlier node. Any property access after the port is ordinary JavaScript, so `Start.expense.id` reads the `id` field of the `expense` param.
|
|
527
|
+
|
|
528
|
+
```typescript
|
|
529
|
+
/** @flowWeaver nodeType @expression */
|
|
530
|
+
function route(expense: { id: string; amount: number }): { risk: string } {
|
|
531
|
+
return { risk: expense.amount > 1000 ? 'high' : 'low' };
|
|
532
|
+
}
|
|
533
|
+
|
|
534
|
+
/**
|
|
535
|
+
* The body is never called: the gate's resolution is its return value.
|
|
536
|
+
* @flowWeaver nodeType
|
|
537
|
+
* @durableGate approval
|
|
538
|
+
* @input draft - The drafted decision to approve
|
|
539
|
+
* @output decision - The approved decision
|
|
540
|
+
*/
|
|
541
|
+
async function waitForApproval(
|
|
542
|
+
execute: boolean,
|
|
543
|
+
draft: object
|
|
544
|
+
): Promise<{ onSuccess: boolean; onFailure: boolean; decision: object }> {
|
|
545
|
+
throw new Error('durable gate implementation must not execute');
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
/**
|
|
549
|
+
* @flowWeaver workflow
|
|
550
|
+
* @param expense - The expense
|
|
551
|
+
* @returns decision
|
|
552
|
+
* @node route route
|
|
553
|
+
* @node reviewer waitForAgent [expr:
|
|
554
|
+
* agentId="'review'",
|
|
555
|
+
* context="{ id: Start.expense.id, amount: Start.expense.amount, risk: route.risk }",
|
|
556
|
+
* prompt="`Draft an approve/reject decision for expense ${Start.expense.id}`"]
|
|
557
|
+
* @node approval waitForApproval [expr: draft="reviewer.agentResult"]
|
|
558
|
+
* @path Start -> route -> reviewer -> approval -> Exit
|
|
559
|
+
*/
|
|
382
560
|
```
|
|
383
561
|
|
|
384
|
-
|
|
562
|
+
This replaces the node that would otherwise exist only to shape those three values, and it replaces a `@connect` whose only purpose is a rename (`[expr: draft="reviewer.agentResult"]`).
|
|
563
|
+
|
|
564
|
+
**Keep expressions short.** A reference or a small reshape (`shape.top`, `{ path: Start.path }`, `Start.count + 1`) reads well inline. A multi-line string, a template literal with its own quotes, or anything you would want to format across lines belongs in a node function body, not in a `[expr:]` string, where JSDoc forces it onto one line with escaped quotes. If the value is a prompt or a paragraph, write a one-line `@expression` node that builds it — the template literal lives in real code — and let `@path` wire it. The expression form is for wiring and reshaping, not for authoring prose.
|
|
565
|
+
|
|
566
|
+
Each reference is a real data dependency. The parser records it as a connection marked as derived from the expression, so execution order, cycle detection, `fw_query` (`data-deps`, `execution-order`), the diagram and the durable continuation all see the edge. A derived connection is not written as `@connect` (the expression implies it), is exempt from the one-source-per-input rule (one expression may read several ports) and from type checks (the expression transforms the value), and cannot be removed on its own; edit the expression.
|
|
567
|
+
|
|
568
|
+
What is recognised, exactly:
|
|
569
|
+
|
|
570
|
+
- A property access on a bare identifier that is `Start` or a node id, where the property is a declared data port. The expression is parsed as TypeScript, so a name inside a string literal (`'Start.path'`) is text, a name inside a template substitution (`` `${Start.path}` ``) is a reference, and `Start["path"]`, `f().port` or `x[0].port` are never references.
|
|
571
|
+
- A node id that is also a top-level binding of the file (an import, a `const`, a class) is ambiguous when the property is a port and plain JavaScript when it is not. Node type functions do not count: `@node route route` with `route.risk` reads the node.
|
|
572
|
+
- References are between top-level nodes. A scoped child, or a reference to one, is refused; scoped ports keep their explicit `@connect node.port:scope` form.
|
|
573
|
+
|
|
574
|
+
Errors are reported at parse time, prefixed with the instance and port, for example `[expr] reviewer.context: "route.rsk" is not an output of "route". Available: risk.`, and for a control port, a self-reference, a scope boundary or an ambiguous name. A reference cycle between two expressions is `CYCLE_DETECTED` like any other cycle.
|
|
575
|
+
|
|
576
|
+
The decision record is [ADR 0002](../adr/0002-expression-port-references.md).
|
|
385
577
|
|
|
386
578
|
### Port Order (`[portOrder: ...]`)
|
|
387
579
|
|
|
@@ -409,7 +601,7 @@ Display the node in a collapsed/minimized state:
|
|
|
409
601
|
|
|
410
602
|
### Size (`[size: W H]`)
|
|
411
603
|
|
|
412
|
-
Custom node dimensions
|
|
604
|
+
Custom node dimensions when the workflow is rendered as a diagram:
|
|
413
605
|
|
|
414
606
|
```typescript
|
|
415
607
|
@node big BigNode [size: 400 300]
|
|
@@ -441,7 +633,7 @@ Visual tags/badges on the instance. Each tag has a label string and optional too
|
|
|
441
633
|
|
|
442
634
|
### Suppress Warnings (`[suppress: ...]`)
|
|
443
635
|
|
|
444
|
-
Silences specific validator warnings on a per-instance basis. Useful when a warning is intentional, such as output
|
|
636
|
+
Silences specific validator warnings on a per-instance basis. Useful when a warning is intentional, such as an output port deliberately left unconnected because its value is discarded by design.
|
|
445
637
|
|
|
446
638
|
```typescript
|
|
447
639
|
@node fetch fetchData [suppress: "UNUSED_OUTPUT_PORT"]
|
|
@@ -455,7 +647,7 @@ The suppression is scoped to the annotated instance only. Other instances of the
|
|
|
455
647
|
Multiple attribute brackets can appear on the same `@node`:
|
|
456
648
|
|
|
457
649
|
```typescript
|
|
458
|
-
@node wait
|
|
650
|
+
@node wait delay [expr: duration="'24h'"] [minimized] [color: "#3b82f6"]
|
|
459
651
|
```
|
|
460
652
|
|
|
461
653
|
---
|
|
@@ -467,28 +659,44 @@ A single TypeScript file can contain multiple `@flowWeaver workflow` annotations
|
|
|
467
659
|
```typescript
|
|
468
660
|
/**
|
|
469
661
|
* @flowWeaver workflow
|
|
662
|
+
* @param record - Raw record
|
|
663
|
+
* @returns record - Validated record
|
|
470
664
|
* @node v validate
|
|
471
665
|
* @path Start -> v -> Exit
|
|
472
666
|
*/
|
|
473
|
-
export function validatePipeline(
|
|
667
|
+
export function validatePipeline(
|
|
668
|
+
execute: boolean,
|
|
669
|
+
params: { record: Record<string, unknown> }
|
|
670
|
+
): { onSuccess: boolean; onFailure: boolean; record: Record<string, unknown> } {
|
|
671
|
+
throw new Error('generated body was not installed');
|
|
672
|
+
}
|
|
474
673
|
|
|
475
674
|
/**
|
|
476
675
|
* @flowWeaver workflow
|
|
676
|
+
* @param record - Raw record
|
|
677
|
+
* @returns record - Enriched record
|
|
477
678
|
* @node e enrich
|
|
478
679
|
* @path Start -> e -> Exit
|
|
479
680
|
*/
|
|
480
|
-
export function enrichPipeline(
|
|
681
|
+
export function enrichPipeline(
|
|
682
|
+
execute: boolean,
|
|
683
|
+
params: { record: Record<string, unknown> }
|
|
684
|
+
): { onSuccess: boolean; onFailure: boolean; record: Record<string, unknown> } {
|
|
685
|
+
throw new Error('generated body was not installed');
|
|
686
|
+
}
|
|
481
687
|
```
|
|
482
688
|
|
|
689
|
+
(`validate` and `enrich` are the node types from [Path Sugar](#path-sugar-path).)
|
|
690
|
+
|
|
483
691
|
### Targeting a Specific Workflow
|
|
484
692
|
|
|
485
|
-
Most CLI commands accept `--workflow
|
|
693
|
+
Most CLI commands accept `--workflow` or `-w` to target a specific workflow:
|
|
486
694
|
|
|
487
695
|
```bash
|
|
488
|
-
fw compile multi.ts --workflow
|
|
696
|
+
fw compile multi.ts --workflow validatePipeline
|
|
489
697
|
fw validate multi.ts -w enrichPipeline
|
|
490
|
-
fw run multi.ts -w validatePipeline --params '{"
|
|
491
|
-
fw describe multi.ts --workflow
|
|
698
|
+
fw run multi.ts -w validatePipeline --params '{"record": {"id": 1}}'
|
|
699
|
+
fw describe multi.ts --workflow enrichPipeline
|
|
492
700
|
```
|
|
493
701
|
|
|
494
702
|
Without this flag, all workflows in the file are processed.
|
|
@@ -515,6 +723,14 @@ These annotations go on `@flowWeaver nodeType` blocks:
|
|
|
515
723
|
| `@expression` | Expression mode (simplified signature) | `@expression` |
|
|
516
724
|
| `@executeWhen` | Execution strategy | `@executeWhen DISJUNCTION` |
|
|
517
725
|
| `@pullExecution` | Lazy evaluation | `@pullExecution execute` |
|
|
726
|
+
| `@resilience` | Declare adapter-owned retry/fallback handling for static validation | `@resilience retries=3 fallback="backup-provider"` |
|
|
727
|
+
| `@durablePure` | No side effects; safe to re-run after a resume | `@durablePure` |
|
|
728
|
+
| `@durableGate` | Pause point: `approval`, `input`, or `agent` | `@durableGate approval` |
|
|
729
|
+
| `@durableEffect` | Touches the outside world; runs through the effect adapter | `@durableEffect` |
|
|
730
|
+
|
|
731
|
+
`@resilience` is an explicit static-analysis contract; it does not implement retries itself. Use it only when the node's shared adapter already performs the declared bounded retries or fallback. An unconnected `onFailure` port still remains an error because exhausted attempts must be handled.
|
|
732
|
+
|
|
733
|
+
The three `@durable…` tags are a closed classification: once a workflow's reachable closure contains a gate, every node in it must carry exactly one of them, or compilation fails. An effect node also changes its signature — a trailing `operationKey: string` parameter and a `{ result, receipt }` return. See [Durable Gates](durable-gates.md).
|
|
518
734
|
|
|
519
735
|
---
|
|
520
736
|
|
|
@@ -522,42 +738,43 @@ These annotations go on `@flowWeaver nodeType` blocks:
|
|
|
522
738
|
|
|
523
739
|
Named colors adapt to the diagram theme (dark/light). You can also pass any hex color directly (e.g. `@color "#ff6b35"`).
|
|
524
740
|
|
|
525
|
-
`blue
|
|
741
|
+
`blue`, `purple`, `cyan`, `orange`, `pink`, `green`, `red`, `yellow`, `teal` (alias for cyan)
|
|
526
742
|
|
|
527
743
|
## Available Icons
|
|
528
744
|
|
|
529
|
-
|
|
745
|
+
Any [Material Symbols](https://fonts.google.com/icons) name is valid, in the font's `snake_case` or in `camelCase` (`swap_horiz` and `swapHoriz` are the same icon). The console draws the icon from the font; the SVG artifacts draw the icons in the visual-reference table with a path and any other as a dot.
|
|
530
746
|
|
|
531
|
-
**AI & ML:** `psychology
|
|
747
|
+
**AI & ML:** `psychology`, `smartToy`, `autoAwesome`, `modelTraining`, `science`, `biotech`
|
|
532
748
|
|
|
533
|
-
**Data & storage:** `database
|
|
749
|
+
**Data & storage:** `database`, `dataObject`, `tableChart`, `token`, `storage`, `memory`
|
|
534
750
|
|
|
535
|
-
**Cloud & network:** `api
|
|
751
|
+
**Cloud & network:** `api`, `webhook`, `cloudSync`, `cloudUpload`, `cloudDownload`, `dns`, `router`, `http`, `link`
|
|
536
752
|
|
|
537
|
-
**Security & auth:** `key
|
|
753
|
+
**Security & auth:** `key`, `shield`, `vpnKey`, `verified`, `security`, `policy`, `adminPanelSettings`
|
|
538
754
|
|
|
539
|
-
**Logic & flow:** `altRoute
|
|
755
|
+
**Logic & flow:** `altRoute`, `callSplit`, `callMerge`, `rule`, `filterAlt`, `repeat`, `sort`
|
|
540
756
|
|
|
541
|
-
**Actions & status:** `bolt
|
|
757
|
+
**Actions & status:** `bolt`, `build`, `rocketLaunch`, `send`, `sync`, `refresh`
|
|
542
758
|
|
|
543
|
-
**Communication:** `notifications
|
|
759
|
+
**Communication:** `notifications`, `email`, `campaign`
|
|
544
760
|
|
|
545
|
-
**Scheduling:** `event
|
|
761
|
+
**Scheduling:** `event`, `schedule`, `timer`
|
|
546
762
|
|
|
547
|
-
**General tools:** `terminal
|
|
763
|
+
**General tools:** `terminal`, `settings`, `tune`, `search`, `save`, `upload`, `download`, `edit`, `delete`
|
|
548
764
|
|
|
549
|
-
**Status:** `checkCircle
|
|
765
|
+
**Status:** `checkCircle`, `error`, `warning`, `info`, `help`, `visibility`
|
|
550
766
|
|
|
551
|
-
**Files:** `folder
|
|
767
|
+
**Files:** `folder`, `description`, `attachFile`
|
|
552
768
|
|
|
553
|
-
**Structural:** `code` (default)
|
|
769
|
+
**Structural:** `code` (default), `flow` (workflow nodes), `startNode`, `exitNode`
|
|
554
770
|
|
|
555
771
|
---
|
|
556
772
|
|
|
557
773
|
## Related Topics
|
|
558
774
|
|
|
559
|
-
- [Concepts](concepts) — Core workflow fundamentals
|
|
560
|
-
- [
|
|
561
|
-
- [
|
|
562
|
-
- [
|
|
563
|
-
- [
|
|
775
|
+
- [Concepts](concepts.md) — Core workflow fundamentals
|
|
776
|
+
- [Durable Gates](durable-gates.md) — The `@durablePure` / `@durableGate` / `@durableEffect` classification
|
|
777
|
+
- [JSDoc Grammar](jsdoc-grammar.md) — Formal EBNF syntax for all annotations
|
|
778
|
+
- [Compilation](compilation.md) — How annotations affect code generation
|
|
779
|
+
- [Error Codes](error-codes.md) — Validation errors for annotation issues
|
|
780
|
+
- [CLI Reference](cli-reference.md) — All command flags
|