@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
|
@@ -1,203 +1,289 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: Deployment
|
|
3
|
-
description: Export workflows
|
|
4
|
-
keywords: [deploy, export,
|
|
3
|
+
description: Export workflows through target packs, serve them over HTTP, generate OpenAPI specs, and export multi-workflow services
|
|
4
|
+
keywords: [deploy, export, target, serve, openapi, swagger, multi-workflow, durable-steps, webhook, http, cors, packs, marketplace, dry-run]
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Deployment
|
|
8
8
|
|
|
9
|
-
Flow Weaver
|
|
9
|
+
The compiled output is plain TypeScript with no runtime dependency on Flow Weaver, so it runs wherever TypeScript runs. Beyond that, three paths exist: export platform-specific boilerplate through a target pack, serve workflows over HTTP with `fw serve`, or generate an OpenAPI spec for whatever hosts them.
|
|
10
10
|
|
|
11
|
-
##
|
|
11
|
+
## Export Targets
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
Flow Weaver core ships no export target. A target is provided by a pack — its `exportTargets` manifest entry names the target and the class that generates files — and is discovered from the current project's `node_modules` each time `fw export` runs.
|
|
14
14
|
|
|
15
15
|
```bash
|
|
16
|
-
#
|
|
17
|
-
npm install
|
|
18
|
-
|
|
19
|
-
npm install @synergenius/flow-weaver-pack-cloudflare
|
|
20
|
-
npm install @synergenius/flow-weaver-pack-inngest
|
|
21
|
-
|
|
22
|
-
# CI/CD targets
|
|
23
|
-
npm install @synergenius/flow-weaver-pack-github-actions
|
|
24
|
-
npm install @synergenius/flow-weaver-pack-gitlab-ci
|
|
16
|
+
fw market search <what you need> # find a target pack
|
|
17
|
+
npm install <pack> # or: fw market install <pack>
|
|
18
|
+
fw export workflow.ts --target <name> --output dist/
|
|
25
19
|
```
|
|
26
20
|
|
|
27
|
-
|
|
21
|
+
- `--dry-run` lists the files that would be written and previews the handler without touching disk
|
|
22
|
+
- `--durable-steps` is handed to the target as a target option; a target that supports per-node durability uses it
|
|
23
|
+
- `--production` compiles without trace instrumentation
|
|
24
|
+
- An unknown target name returns `INVALID_TARGET` naming the installed targets; with no target pack installed that list is empty
|
|
25
|
+
|
|
26
|
+
What a target generates, the deploy instructions it prints, and any annotations it reads (`@deploy` keys, platform-specific tags) are documented by the pack. Once installed, the pack's topics appear in `fw docs`. Writing a target is covered in [Marketplace](marketplace.md).
|
|
28
27
|
|
|
29
28
|
---
|
|
30
29
|
|
|
31
|
-
## Export
|
|
30
|
+
## Multi-Workflow Export
|
|
32
31
|
|
|
33
|
-
|
|
32
|
+
Export all workflows in a file as a **unified service** with routing, function registry, and optional API documentation:
|
|
34
33
|
|
|
35
34
|
```bash
|
|
36
|
-
fw export
|
|
35
|
+
fw export workflows.ts --target <name> --output dist/ --multi
|
|
37
36
|
```
|
|
38
37
|
|
|
39
|
-
###
|
|
38
|
+
### Features
|
|
39
|
+
|
|
40
|
+
- **Unified routing** — Single entry point dispatches to the correct workflow
|
|
41
|
+
- **Function registry** — All workflows registered and callable by name
|
|
42
|
+
- **API docs** — Add `--docs` to include Swagger UI at `/docs` and OpenAPI spec at `/openapi.json`
|
|
40
43
|
|
|
41
44
|
```bash
|
|
42
|
-
fw export
|
|
45
|
+
fw export workflows.ts --target <name> --output api/ --multi --docs
|
|
43
46
|
```
|
|
44
47
|
|
|
45
|
-
|
|
46
|
-
- `handler.ts` — Lambda handler with API Gateway event parsing
|
|
47
|
-
- `package.json` — Dependencies
|
|
48
|
-
- Deploy instructions for AWS CLI or SAM
|
|
48
|
+
### Selecting Workflows
|
|
49
49
|
|
|
50
|
-
|
|
50
|
+
Export a subset of workflows from a multi-workflow file:
|
|
51
51
|
|
|
52
52
|
```bash
|
|
53
|
-
fw export
|
|
53
|
+
fw export workflows.ts --target <name> --output dist/ --multi --workflows validatePipeline,enrichPipeline
|
|
54
54
|
```
|
|
55
55
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## HTTP Serve Mode
|
|
59
59
|
|
|
60
|
-
|
|
60
|
+
`fw serve` puts a directory of workflows behind HTTP: the routes they declare, a run resource for every one of them, and a URL for every run.
|
|
61
61
|
|
|
62
62
|
```bash
|
|
63
|
-
fw
|
|
63
|
+
fw serve [directory] [options]
|
|
64
64
|
```
|
|
65
65
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
66
|
+
Runs go through the same local coordinator `fw console` and the MCP tools use, stored under the project's `.fw/runs` (`FW_RUNS_DIR` to move it). That is what makes a workflow with durable gates an ordinary endpoint here: it runs to its first gate and answers with a run id; the gate is resolved by another request, by an agent profile, or by a person in the console — the same run, whoever picks it up. The same handler is a function you can mount in your own server; see [Embedding the API](#embedding-the-api).
|
|
67
|
+
|
|
68
|
+
### Workflows as endpoints
|
|
69
|
+
|
|
70
|
+
A workflow becomes an endpoint by declaring its route:
|
|
71
|
+
|
|
72
|
+
```typescript
|
|
73
|
+
/**
|
|
74
|
+
* Reviews a file and reports the risk.
|
|
75
|
+
* @flowWeaver workflow
|
|
76
|
+
* @http POST /reviews
|
|
77
|
+
* @http GET /reviews/:path
|
|
78
|
+
* @param path - The file
|
|
79
|
+
* @param text - Its contents
|
|
80
|
+
* @returns report - The review
|
|
81
|
+
*/
|
|
82
|
+
export async function reviewFile(
|
|
83
|
+
execute: boolean,
|
|
84
|
+
params: { path: string; text: string }
|
|
85
|
+
): Promise<{ onSuccess: boolean; onFailure: boolean; report: string }> {
|
|
86
|
+
throw new Error('generated body was not installed');
|
|
87
|
+
}
|
|
88
|
+
```
|
|
69
89
|
|
|
70
|
-
|
|
90
|
+
Each `@http METHOD /path` line is mounted as written. The console's **Serve** pane writes the first one for you (*Expose as endpoint*), and its **Endpoints** page lists every route in the project with the request to copy.
|
|
71
91
|
|
|
72
|
-
|
|
73
|
-
fw export workflow.ts --target inngest --output dist/
|
|
74
|
-
```
|
|
92
|
+
**Parameters.** A `:name` segment binds the workflow parameter of that name, converted to its declared type. `GET` and `DELETE` take the remaining parameters from the query string; `POST`, `PUT` and `PATCH` take them from the JSON body. A missing required parameter or a wrong type is `400 VALIDATION_ERROR` with `details: [{ path, message }]`.
|
|
75
93
|
|
|
76
|
-
|
|
77
|
-
- Inngest function with event triggers
|
|
78
|
-
- Serve handler for your framework
|
|
94
|
+
**The answer** is the workflow's return ports, with `onSuccess`/`onFailure` removed:
|
|
79
95
|
|
|
80
|
-
|
|
96
|
+
| The workflow… | Status | Body | Headers |
|
|
97
|
+
|---------------|--------|------|---------|
|
|
98
|
+
| ran to the end | `200` | the return ports, e.g. `{ "report": "…" }` | `X-Run-Id` |
|
|
99
|
+
| ended on its failure path | `422` | the return ports as they stand | `X-Run-Id` |
|
|
100
|
+
| paused at a gate | `202` | the run (below), with `gate` | `Location: /runs/<id>/result`, `Retry-After` |
|
|
101
|
+
| still running past the wait | `202` | the run, `status: "running"` | `Location: /runs/<id>/result`, `Retry-After` |
|
|
102
|
+
| failed | `500` | `{ error: { code, message }, runId, links }` | `X-Run-Id` |
|
|
103
|
+
| cancelled | `410` | `{ error: { code: "RUN_CANCELLED" }, runId, links }` | `X-Run-Id` |
|
|
81
104
|
|
|
82
|
-
|
|
83
|
-
fw export workflow.ts --target inngest --output dist/ --durable-steps
|
|
84
|
-
```
|
|
105
|
+
`Location` always points at `GET /runs/<id>/result`, which answers in this same table: `202` while the run waits or runs, then the declared body. So a client polls one URL and reads one shape from its first request to the final answer; the run resource at `/runs/<id>` is there when it wants the gate, the agent, or the raw ports.
|
|
85
106
|
|
|
86
|
-
|
|
107
|
+
A request waits at most 60 s for its run (`maxWaitMs`); a `Prefer: wait=<seconds>` header asks for less. Past that the answer is `202` and the run goes on without the connection, so a proxy that cuts long requests never loses a client its run id. A route with `mode=async` answers `202` before the first step runs; `?async=1` or `Prefer: respond-async` asks the same of any route.
|
|
87
108
|
|
|
88
|
-
|
|
89
|
-
fw export workflow.ts --target github-actions --output .github/workflows/
|
|
90
|
-
```
|
|
109
|
+
At most 32 segments started by requests run at once (`maxInFlight`); past that a start or a resolve is `503 BUSY` with `Retry-After`. Agent answers and callbacks are not counted.
|
|
91
110
|
|
|
92
|
-
|
|
93
|
-
- GitHub Actions workflow YAML with jobs mapped from workflow nodes
|
|
94
|
-
- Proper step ordering and dependency configuration
|
|
111
|
+
The API also keeps the clock. Its sweep, every few seconds (`callbacks.sweepMs`), first wakes every run whose `sleep` is over and times out every gate whose `timeout` has passed — then delivers callbacks, so a run the clock finished still posts its result. A waiting run's JSON carries `due: { at, action }` when the clock will act on it. Embedding the API, `api.tick()` is the same pass on demand. See [Time](durable-gates.md#time).
|
|
95
112
|
|
|
96
|
-
|
|
113
|
+
**Retries.** An `Idempotency-Key` header makes the same request the same run: a retry after a timeout returns whatever that run has reached, with `Idempotent-Replayed: true`, instead of starting another. The key is scoped to the route.
|
|
97
114
|
|
|
98
|
-
|
|
99
|
-
fw export workflow.ts --target gitlab-ci --output .
|
|
100
|
-
```
|
|
115
|
+
**Callbacks.** On a route marked `callback`, the caller may add `"callbackUrl": "https://…"` to the body (or `?callbackUrl=` on a `GET`). When the run ends — however it ends, and whoever ends it: the API, an agent profile, a person in the console — the API POSTs `{ runId, workflow, status, result?, failed?, error? }` there, with `X-Flow-Weaver-Run`, `X-Flow-Weaver-Status`, `X-Flow-Weaver-Attempt` and, when the server has a token, `X-Flow-Weaver-Signature: sha256=<HMAC-SHA256 of the body, keyed with the token>`. The callback is kept beside the run, so a restart does not lose it; a failed delivery is retried after 2 s, 10 s, 1 min, 5 min and 15 min, then given up and the reason recorded. Redirects are not followed. Answer `2xx` to acknowledge.
|
|
101
116
|
|
|
102
|
-
|
|
103
|
-
- `.gitlab-ci.yml` with stages and jobs mapped from workflow nodes
|
|
104
|
-
- Pipeline configuration with proper stage ordering
|
|
117
|
+
Only public hosts receive callbacks by default: `localhost`, private ranges, link-local addresses and names that resolve to them are refused with `400 CALLBACK_REFUSED`, because a server fetching a caller-chosen URL is the classic request-forgery hole. The check runs again at every delivery attempt, and the post connects to the address that check resolved. A name pointed at a private address after the run began is refused, not fetched. `fw serve --dev` allows them for local testing; an embedding sets `callbacks: { hosts: ['hooks.example.com', '*.internal.example.com'] }`, `{ allowPrivate: true }`, or its own `allow(url)` rule.
|
|
105
118
|
|
|
106
|
-
|
|
119
|
+
To verify a callback, recompute the HMAC over the raw body with your token and compare it to the header in constant time:
|
|
107
120
|
|
|
108
|
-
|
|
121
|
+
```typescript
|
|
122
|
+
import { createHmac, timingSafeEqual } from 'node:crypto';
|
|
123
|
+
const expected = `sha256=${createHmac('sha256', process.env.FW_SERVE_TOKEN!).update(rawBody).digest('hex')}`;
|
|
124
|
+
const ok = expected.length === signature.length && timingSafeEqual(Buffer.from(expected), Buffer.from(signature));
|
|
125
|
+
```
|
|
109
126
|
|
|
110
|
-
|
|
127
|
+
**Auth.** Every route needs the bearer token when the server has one, except a route marked `auth=none` — for a webhook from a service that cannot carry your token. A form post (`application/x-www-form-urlencoded`) is accepted too, its fields read by the parameters' types, which is what most webhook senders emit.
|
|
111
128
|
|
|
112
|
-
|
|
129
|
+
A route under `/health`, `/workflows`, `/runs`, `/openapi.json` or `/docs` is refused, as is a method and path two workflows both declare; `GET /workflows` lists the `problems`, and the console's Endpoints page shows them. `:name` must be a parameter of the workflow, or the validator reports `HTTP_PARAM_UNKNOWN`.
|
|
113
130
|
|
|
114
|
-
|
|
131
|
+
### The run resource
|
|
115
132
|
|
|
116
|
-
|
|
117
|
-
# GitHub Actions
|
|
118
|
-
fw export pipeline.ts --target github-actions --output .github/workflows/
|
|
133
|
+
Every workflow, declared or not, also answers as a run resource:
|
|
119
134
|
|
|
120
|
-
# GitLab CI
|
|
121
|
-
fw export pipeline.ts --target gitlab-ci --output .
|
|
122
135
|
```
|
|
136
|
+
POST /workflows/<name>
|
|
137
|
+
Content-Type: application/json
|
|
138
|
+
Authorization: Bearer <token> # when the server has one
|
|
123
139
|
|
|
124
|
-
|
|
140
|
+
{ "param1": "value1", "param2": "value2" }
|
|
141
|
+
```
|
|
125
142
|
|
|
126
|
-
|
|
143
|
+
The answer is the run:
|
|
127
144
|
|
|
128
|
-
|
|
145
|
+
| The workflow… | Status | Body |
|
|
146
|
+
|---------------|--------|------|
|
|
147
|
+
| ran to the end | `200` | `{ runId, status: "completed", result, executionTime, links }` |
|
|
148
|
+
| paused at a gate | `202` | `{ runId, status: "waiting", gate: { kind, node, inputs, absent, outputs, hasFailurePort }, agent?, links }` |
|
|
149
|
+
| failed | `500` | `{ runId, status: "failed", error: { code, message } }` |
|
|
129
150
|
|
|
130
|
-
|
|
151
|
+
Add `?async=1` (or `Prefer: respond-async`) to be answered at once with `202` and `status: "running"`, then follow `links.self` or `links.events`. `gate.inputs` are labelled by port, as `fw_run` shows them.
|
|
131
152
|
|
|
132
|
-
|
|
133
|
-
fw export workflows.ts --target lambda --output dist/ --multi
|
|
134
|
-
```
|
|
153
|
+
### Runs
|
|
135
154
|
|
|
136
|
-
|
|
155
|
+
| Request | Does |
|
|
156
|
+
|---------|------|
|
|
157
|
+
| `GET /runs?workflow=<name>` | Lists runs, newest first — those in flight here and those in the store |
|
|
158
|
+
| `GET /runs/:id` | The run: `status`, `gate` while waiting, `agent` when a profile is involved, `result` or `error` |
|
|
159
|
+
| `GET /runs/:id/result` | The declared answer: `202` while waiting or running, `200`/`422` with the return ports, `500`, `410` when cancelled |
|
|
160
|
+
| `POST /runs/:id/resolve` | Body `{ "answer": … }` or `{ "reject": "why" }`. The rules for `answer` are the ones under [Durable Gates](durable-gates.md): one output → the value; several → an object with every one; none → `null`. Answers `200` on completion, `202` at the next gate, `409` when the run is not waiting, the file changed since it paused (`BUNDLE_CHANGED`), or an agent is answering |
|
|
161
|
+
| `POST /runs/:id/cancel` | Stops a segment in flight or drops a waiting continuation |
|
|
162
|
+
| `GET /runs/:id/events` | Server-sent events: the run (`type: "run"`), each step when the server keeps a trace (`type: "event"`), what an agent says while it answers (`type: "agent"`), then `synced` and whatever happens next |
|
|
163
|
+
| `GET /runs/:id/agent` | The transcript of the agent that answered the run's latest agent gate |
|
|
137
164
|
|
|
138
|
-
|
|
139
|
-
- **Function registry** — All workflows registered and callable by name
|
|
140
|
-
- **API docs** — Add `--docs` to include Swagger UI at `/docs` and OpenAPI spec at `/openapi.json`
|
|
165
|
+
Errors are `{ "error": { "code", "message" } }`; `--dev` adds the stack. Codes: `UNAUTHORIZED`, `WORKFLOW_NOT_FOUND`, `RUN_NOT_FOUND`, `RUN_NOT_WAITING`, `BUNDLE_CHANGED`, `MISSING_OUTPUTS`, `INVALID_INPUT`, `INVALID_JSON`, `AGENT_ANSWERING`, `EXECUTION_ERROR`.
|
|
141
166
|
|
|
142
|
-
|
|
143
|
-
fw export workflows.ts --target vercel --output api/ --multi --docs
|
|
144
|
-
```
|
|
167
|
+
### Agent gates
|
|
145
168
|
|
|
146
|
-
|
|
169
|
+
When the project has `.flowweaver/agents.yaml`, a run that pauses at a `waitForAgent` gate is answered by the matching profile in the background: the server records `agent: { profile, status: "answering" }` on the run, streams the model's words on `/runs/:id/events`, and resumes with the answer. The caller sees `202 waiting` and, a moment later, `completed` — or `waiting` with `agent.status: "failed"` and the reason, when the profile could not answer and a person must. `--no-agents` turns this off. See [Agent profiles](durable-gates.md#agent-profiles).
|
|
147
170
|
|
|
148
|
-
|
|
171
|
+
While a profile is answering, a resolve from elsewhere is refused with `409 AGENT_ANSWERING`, so two answers never race. The note records which process is answering; if that process dies mid-answer, the next server or console to start marks the note failed and the gate is open again, and a resolve in the meantime ignores a note whose process is gone.
|
|
149
172
|
|
|
150
|
-
|
|
151
|
-
|
|
173
|
+
### Options
|
|
174
|
+
|
|
175
|
+
| Option | Default | Does |
|
|
176
|
+
|--------|---------|------|
|
|
177
|
+
| `--port <n>` | `3000` | |
|
|
178
|
+
| `--host <h>` | `127.0.0.1` | Loopback only. Anything else needs `--token` or `--insecure`, because whoever reaches the port can run your workflows |
|
|
179
|
+
| `--token <t>` | `FW_SERVE_TOKEN` | Every request but `/health` must carry `Authorization: Bearer <t>` |
|
|
180
|
+
| `--no-agents` | agents on | Agent gates wait for a person |
|
|
181
|
+
| `--trace` | off | Keep a step trace per run and stream it; costs a debug build of each workflow |
|
|
182
|
+
| `--dev` | off | Stacks in error bodies; a start body may be `{ "params", "mocks" }`; callbacks may go to localhost and private addresses |
|
|
183
|
+
| `--insecure` | off | Listen beyond loopback with no token |
|
|
184
|
+
| `--no-watch` | watching | Do not re-discover workflows when files change |
|
|
185
|
+
| `--cors <origin>` | none | Send CORS headers for that origin |
|
|
186
|
+
| `--swagger` | off | Swagger UI at `/docs`; with it on, `/docs` and `/openapi.json` are readable without the token, since a browser page cannot send one. Off, `/docs` is `404` and `/openapi.json` needs the token |
|
|
187
|
+
|
|
188
|
+
`GET /health` answers without a token: `{ status, workflows, routes, uptime, version, auth: "token" | "open", agents }`. `GET /workflows` lists every workflow with its declared `routes`, its input and output JSON Schema and how many gates it has, plus the `problems` with routes that could not be mounted; `GET /workflows/<name>` is one of them. `GET /openapi.json` describes the declared routes with their path and query parameters and the `200`/`202`/`422` answers, the run resources, and the bearer scheme.
|
|
189
|
+
|
|
190
|
+
### Embedding the API
|
|
191
|
+
|
|
192
|
+
`fw serve` is a thin wrapper around a handler that your own server can mount. `@synergenius/flow-weaver/server` exports it:
|
|
193
|
+
|
|
194
|
+
```typescript
|
|
195
|
+
import { createWorkflowApi } from '@synergenius/flow-weaver/server';
|
|
196
|
+
|
|
197
|
+
const api = createWorkflowApi({
|
|
198
|
+
dir: './workflows', // the project: its workflows and .flowweaver/agents.yaml
|
|
199
|
+
token: process.env.FW_SERVE_TOKEN, // bearer token, unset means open
|
|
200
|
+
agents: true, // answer agent gates from the project's profiles
|
|
201
|
+
trace: false, // keep and stream a step trace per run
|
|
202
|
+
legacyRoutes: true, // also POST /workflows/<name> for every workflow
|
|
203
|
+
runsDir: undefined, // where runs live; unset is ~/.fw/runs (fw serve passes the project's .fw/runs)
|
|
204
|
+
maxWaitMs: 60_000, // answer 202 with the result URL past this
|
|
205
|
+
maxInFlight: 32, // 503 past this many running segments
|
|
206
|
+
callbacks: { hosts: ['hooks.example.com'] },
|
|
207
|
+
docs: false, // Swagger UI at /docs, readable without the token
|
|
208
|
+
});
|
|
152
209
|
```
|
|
153
210
|
|
|
154
|
-
|
|
211
|
+
Then one of the adapters, all serving the same routes:
|
|
155
212
|
|
|
156
|
-
|
|
213
|
+
```typescript
|
|
214
|
+
// Node
|
|
215
|
+
import * as http from 'node:http';
|
|
216
|
+
http.createServer(api.node()).listen(3000);
|
|
157
217
|
|
|
158
|
-
|
|
218
|
+
// Express (or anything with app.use(path, (req, res, next) => …))
|
|
219
|
+
app.use('/api', api.express()); // declared routes, /runs, /openapi.json, all under /api
|
|
159
220
|
|
|
160
|
-
|
|
161
|
-
|
|
221
|
+
// A fetch host: Bun, Deno, Hono, Cloudflare Workers, Next.js route handlers
|
|
222
|
+
export default { fetch: (req: Request) => api.fetch(req) };
|
|
162
223
|
```
|
|
163
224
|
|
|
164
|
-
|
|
225
|
+
Links in responses — `Location`, `links.self`, the OpenAPI `servers` entry — are written under the mount path, so a client that follows them never needs to know where the API sits. The `handle(req, res, { basePath })` method under the adapters takes any request and response with Node's shape and returns whether the request was one of ours, for a framework not listed here.
|
|
226
|
+
|
|
227
|
+
`api.routes()` says what was mounted and what was refused; `api.openapi(serverUrl)` is the document; `api.close()` stops watching, ends every stream and aborts what is in flight. Pass `agentProvider` to build the model client for a profile yourself, and `env` to read keys from somewhere other than `process.env`.
|
|
228
|
+
|
|
229
|
+
Runs made through an embedded API land in the same store as `fw console` and `fw_run` on the same machine, so a gate reached in your server is answered in the console, and a run started in the console is visible at `GET /runs`. Every run records its `origin` — `http`, `console` or `mcp` — and the console's run list says so.
|
|
230
|
+
|
|
231
|
+
### Integrating for real
|
|
165
232
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
233
|
+
What comes up when the API goes into an existing code base, and what the API does about it:
|
|
234
|
+
|
|
235
|
+
- **Body parsers.** `express.json()` and `express.urlencoded()` consume the request stream before any later middleware; the API notices `req.body` and uses it instead of reading the stream again. With a framework that parses bodies but does not set `req.body` on the raw request, pass the parsed body yourself:
|
|
236
|
+
|
|
237
|
+
```typescript
|
|
238
|
+
// Fastify
|
|
239
|
+
fastify.all('/api/*', async (request, reply) => {
|
|
240
|
+
reply.hijack();
|
|
241
|
+
const handled = await api.handle(request.raw, reply.raw, { basePath: '/api', body: request.body });
|
|
242
|
+
if (!handled) {
|
|
243
|
+
reply.raw.writeHead(404);
|
|
244
|
+
reply.raw.end();
|
|
245
|
+
}
|
|
246
|
+
});
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
- **Your own auth.** Mount the API behind your session or JWT middleware and leave `token` unset; then nothing but your middleware guards it, `auth=none` changes nothing, and callbacks go out unsigned. Or set `token` too, and clients carry both.
|
|
250
|
+
- **Your own CORS.** `cors` is off unless asked; a `cors()` middleware in front of the mount works as usual.
|
|
251
|
+
- **Long workflows.** Reverse proxies and load balancers cut a request after a minute or so. The API answers `202` with the result URL after `maxWaitMs` (60 s by default) on its own; set it under your proxy's timeout, or declare `mode=async` on a route whose workflow always runs long.
|
|
252
|
+
- **Back-pressure.** `maxInFlight` (32) caps the segments running at once; past it callers get `503` and `Retry-After`. Size it to what one process can run, and to the model calls agent gates will make.
|
|
253
|
+
- **Shutdown.** Call `api.close()` on `SIGTERM`. A run paused at a gate is safe, it lives in the store. A segment in flight is aborted and the run recorded as failed; a client that used an `Idempotency-Key` can simply repeat the request.
|
|
254
|
+
- **Where runs live.** By default the run store is a directory on the host, which is right for one process, or a few on one machine: they share it, and a claim keeps two from driving the same run. Past one host — instances behind a balancer, a container without a disk — pass a `RunStore` of your own (`createWorkflowApi({ store })`, nine methods over a database; see [Run stores](library.md#run-stores)) and every instance sees every run. Either way the workflows are parsed with the TypeScript compiler at startup, which takes seconds and needs Node: edge runtimes and short-lived functions are out; a long-running Node service is the shape.
|
|
255
|
+
- **Logs and metrics.** `onRun(run)` fires on every state change of a run the API drives; `onCallback(outcome)` on every delivery attempt. Nothing is written to the console otherwise.
|
|
256
|
+
- **Module format.** The package is ESM. From CommonJS, `const { createWorkflowApi } = await import('@synergenius/flow-weaver/server')`.
|
|
257
|
+
- **Limits.** Bodies over 1 MiB are refused with `413` (`maxBodyBytes` changes it). A JSON string where a number is declared is `400`; only form posts are coerced.
|
|
258
|
+
|
|
259
|
+
`fw openapi <dir> --server https://api.example.com/api` writes the same document `/openapi.json` serves, for a client generator or a gateway; `--no-auth` and `--no-legacy` match a server without a token or without the run resources.
|
|
173
260
|
|
|
174
261
|
### Examples
|
|
175
262
|
|
|
176
|
-
Development server with hot reload:
|
|
177
263
|
```bash
|
|
178
|
-
fw serve
|
|
264
|
+
fw serve # this directory, 127.0.0.1:3000
|
|
265
|
+
fw serve ./workflows --trace --swagger # every step streamed, docs at /docs
|
|
266
|
+
fw serve --host 0.0.0.0 --token "$FW_SERVE_TOKEN" # reachable from elsewhere, guarded
|
|
267
|
+
fw serve --no-agents # a person answers every agent gate
|
|
179
268
|
```
|
|
180
269
|
|
|
181
|
-
|
|
182
|
-
```bash
|
|
183
|
-
fw serve ./workflows --production --precompile --no-watch --port 8080
|
|
184
|
-
```
|
|
270
|
+
A declared route, end to end:
|
|
185
271
|
|
|
186
|
-
With Swagger UI:
|
|
187
272
|
```bash
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
273
|
+
curl -s -X POST localhost:3000/reviews -H 'Content-Type: application/json' \
|
|
274
|
+
-H 'Idempotency-Key: review-notes-1' \
|
|
275
|
+
-d '{"path":"notes.md","text":"TODO: ship it."}'
|
|
276
|
+
# 202 { "runId": "5c1e…", "status": "waiting", "gate": { "kind": "agent", "node": "agent", … } }
|
|
277
|
+
# Location: /runs/5c1e…
|
|
191
278
|
|
|
192
|
-
|
|
279
|
+
curl -s -X POST localhost:3000/runs/5c1e…/resolve -H 'Content-Type: application/json' \
|
|
280
|
+
-d '{"answer":{"summary":"No tests.","risk":"high"}}'
|
|
281
|
+
# 200 { "runId": "5c1e…", "status": "completed", "result": { "report": "…" } }
|
|
193
282
|
|
|
194
|
-
|
|
283
|
+
curl -s localhost:3000/reviews/notes.md?text=fine # the GET route: 200 { "report": "…" }
|
|
195
284
|
```
|
|
196
|
-
POST /workflow-name
|
|
197
|
-
Content-Type: application/json
|
|
198
285
|
|
|
199
|
-
|
|
200
|
-
```
|
|
286
|
+
Before 0.39, `fw serve` listened on `0.0.0.0`, sent `*` CORS headers, answered `{ success, result }`, mounted nothing but `/workflows/<name>`, and refused any workflow with a gate.
|
|
201
287
|
|
|
202
288
|
---
|
|
203
289
|
|
|
@@ -209,7 +295,7 @@ Generate an OpenAPI specification from all workflows in a directory:
|
|
|
209
295
|
fw openapi <directory> [options]
|
|
210
296
|
```
|
|
211
297
|
|
|
212
|
-
The
|
|
298
|
+
It is the same document `fw serve` publishes at `/openapi.json`, built by the same code, so the two never disagree. The schemas come from each workflow's `@param` and `@returns` annotations, and the summary from its description.
|
|
213
299
|
|
|
214
300
|
### Options
|
|
215
301
|
|
|
@@ -222,30 +308,19 @@ fw openapi ./workflows --format yaml --output api-spec.yaml
|
|
|
222
308
|
|
|
223
309
|
# With server URL
|
|
224
310
|
fw openapi ./workflows --server https://api.example.com --title "My API" --version "2.0.0"
|
|
311
|
+
|
|
312
|
+
# For a server without a token, and without the run resources
|
|
313
|
+
fw openapi ./workflows --no-auth --no-legacy
|
|
225
314
|
```
|
|
226
315
|
|
|
227
316
|
### Generated Spec
|
|
228
317
|
|
|
229
|
-
|
|
230
|
-
- **Path** — `POST /workflow-name`
|
|
231
|
-
- **Request body** — JSON schema from `@param` types
|
|
232
|
-
- **Response** — JSON schema from `@returns` types
|
|
233
|
-
- **Description** — From `@description` or JSDoc comment text
|
|
234
|
-
|
|
235
|
-
---
|
|
236
|
-
|
|
237
|
-
## Dev Mode with Inngest
|
|
238
|
-
|
|
239
|
-
For Inngest development, `fw dev` starts a local dev server with the Inngest Dev Server:
|
|
240
|
-
|
|
241
|
-
```bash
|
|
242
|
-
fw dev workflow.ts --target inngest --port 8080 --framework express
|
|
243
|
-
```
|
|
318
|
+
The document (OpenAPI 3.0.3) describes:
|
|
244
319
|
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
320
|
+
- **Declared routes**: every `@http METHOD /path` that could be mounted, with `:name` segments as path parameters, the remaining parameters as query parameters (`GET`, `DELETE`) or a JSON or form request body (the other methods), the `Idempotency-Key` and `Prefer` headers, `callbackUrl` on a `callback` route, and the answers: `200` with the return ports, `202` when paused at a gate (with `Location`), `400`, `409`, `422` on the failure path, `500`. A route marked `auth=none` carries no security requirement
|
|
321
|
+
- **The run resource**: `GET` and `POST /workflows/<name>` for every workflow, unless `--no-legacy`
|
|
322
|
+
- **The run endpoints**: `/runs`, `/runs/{runId}`, `/runs/{runId}/resolve`, `/runs/{runId}/cancel`, `/runs/{runId}/events`, `/runs/{runId}/agent`, and `/health`
|
|
323
|
+
- **Components**: the `Run` and `Error` schemas, and the bearer security scheme applied to every operation, unless `--no-auth`
|
|
249
324
|
|
|
250
325
|
---
|
|
251
326
|
|
|
@@ -254,15 +329,14 @@ This:
|
|
|
254
329
|
1. **Validate** — Run `fw validate workflow.ts --strict` before deploying
|
|
255
330
|
2. **Production compile** — Use `--production` to strip debug instrumentation
|
|
256
331
|
3. **Test locally** — Use `fw serve` or `fw run` with mocks
|
|
257
|
-
4. **Export** — Generate platform-specific code with `fw export
|
|
258
|
-
5. **Deploy** — Follow
|
|
332
|
+
4. **Export** — Generate platform-specific code with `fw export --target <name>`
|
|
333
|
+
5. **Deploy** — Follow the instructions the target prints with the generated output
|
|
259
334
|
|
|
260
335
|
---
|
|
261
336
|
|
|
262
337
|
## Related Topics
|
|
263
338
|
|
|
264
|
-
- [
|
|
265
|
-
- [CLI Reference](cli-reference) — Full command flags for export, serve, openapi
|
|
266
|
-
- [Compilation](compilation) —
|
|
267
|
-
- [Built-in Nodes](built-in-nodes) — Mock system for local testing
|
|
268
|
-
- [Concepts](concepts) — Core workflow fundamentals
|
|
339
|
+
- [Marketplace](marketplace.md) — Finding target packs and writing an export target
|
|
340
|
+
- [CLI Reference](cli-reference.md) — Full command flags for export, serve, openapi
|
|
341
|
+
- [Compilation](compilation.md) — Compile targets and target options
|
|
342
|
+
- [Built-in Nodes](built-in-nodes.md) — Mock system for local testing
|