@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
package/dist/cli/index.js
DELETED
|
@@ -1,850 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Flow Weaver Annotations CLI
|
|
3
|
-
* Command-line interface for compiling and validating workflow files
|
|
4
|
-
*
|
|
5
|
-
* Note: Shebang is added by build script (scripts/build-cli.ts) to the CJS bundle.
|
|
6
|
-
* Do not add #!/usr/bin/env node here - it will cause duplicate shebangs.
|
|
7
|
-
*/
|
|
8
|
-
// Must be imported first: sets up env vars before picocolors reads them
|
|
9
|
-
import './env-setup.js';
|
|
10
|
-
import * as path from 'node:path';
|
|
11
|
-
// Load built-in extensions (CI/CD, etc.) before any commands run
|
|
12
|
-
import '../extensions/index.js';
|
|
13
|
-
import { Command, Option } from 'commander';
|
|
14
|
-
import { parseIntStrict } from './utils/parse-int-strict.js';
|
|
15
|
-
import { logger } from './utils/logger.js';
|
|
16
|
-
import { getErrorMessage } from '../utils/error-utils.js';
|
|
17
|
-
const version = typeof __CLI_VERSION__ !== 'undefined' ? __CLI_VERSION__ : '0.0.0-dev';
|
|
18
|
-
const program = new Command();
|
|
19
|
-
program
|
|
20
|
-
.name('fw')
|
|
21
|
-
.description('Flow Weaver Annotations - Compile and validate workflow files')
|
|
22
|
-
.option('-v, --version', 'Output the current version')
|
|
23
|
-
.option('--no-color', 'Disable colors')
|
|
24
|
-
.option('--color', 'Force colors')
|
|
25
|
-
.on('option:version', () => {
|
|
26
|
-
logger.banner(version);
|
|
27
|
-
process.exit(0);
|
|
28
|
-
})
|
|
29
|
-
.configureHelp({
|
|
30
|
-
sortSubcommands: false,
|
|
31
|
-
subcommandTerm: (cmd) => cmd.name() + (cmd.usage() ? ' ' + cmd.usage() : ''),
|
|
32
|
-
});
|
|
33
|
-
// Track whether our action handler already printed the error,
|
|
34
|
-
// so Commander's own error handling doesn't duplicate it.
|
|
35
|
-
let actionErrorHandled = false;
|
|
36
|
-
program.configureOutput({
|
|
37
|
-
writeErr: (str) => {
|
|
38
|
-
if (actionErrorHandled)
|
|
39
|
-
return;
|
|
40
|
-
const trimmed = str.replace(/^error:\s*/i, '').trimEnd();
|
|
41
|
-
if (trimmed) {
|
|
42
|
-
logger.error(trimmed);
|
|
43
|
-
}
|
|
44
|
-
},
|
|
45
|
-
writeOut: (str) => process.stdout.write(str),
|
|
46
|
-
});
|
|
47
|
-
/**
|
|
48
|
-
* Wraps a command action with centralized error handling.
|
|
49
|
-
* Catches errors, prints them once, sets the flag to prevent Commander duplication.
|
|
50
|
-
*/
|
|
51
|
-
function wrapAction(fn) {
|
|
52
|
-
return async (...args) => {
|
|
53
|
-
try {
|
|
54
|
-
await fn(...args);
|
|
55
|
-
}
|
|
56
|
-
catch (error) {
|
|
57
|
-
actionErrorHandled = true;
|
|
58
|
-
logger.error(getErrorMessage(error));
|
|
59
|
-
process.exit(1);
|
|
60
|
-
}
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
// Compile command
|
|
64
|
-
program
|
|
65
|
-
.command('compile <input>')
|
|
66
|
-
.description('Compile workflow files to TypeScript')
|
|
67
|
-
.option('-o, --output <path>', 'Output file or directory')
|
|
68
|
-
.option('-p, --production', 'Generate production code (no debug events)', false)
|
|
69
|
-
.option('-s, --source-map', 'Generate source maps', false)
|
|
70
|
-
.option('--verbose', 'Verbose output', false)
|
|
71
|
-
.option('--dry-run', 'Preview compilation without writing files', false)
|
|
72
|
-
.option('-w, --workflow <name>', 'Specific workflow name to compile')
|
|
73
|
-
.addOption(new Option('-f, --format <format>', 'Module format').choices(['esm', 'cjs', 'auto']).default('auto'))
|
|
74
|
-
.option('--strict', 'Treat type coercion warnings as errors', false)
|
|
75
|
-
.option('--clean', 'Omit redundant @param/@returns annotations from compiled output', false)
|
|
76
|
-
.option('--target <target>', 'Compilation target: typescript (default) or a registered extension target')
|
|
77
|
-
.option('--cron <schedule>', 'Set cron trigger schedule')
|
|
78
|
-
.option('--serve', 'Generate serve() handler for HTTP event reception')
|
|
79
|
-
.option('--framework <name>', 'Framework adapter for serve handler (next, express, hono, fastify, remix)')
|
|
80
|
-
.option('--typed-events', 'Generate Zod event schemas from workflow @param annotations')
|
|
81
|
-
.option('--retries <n>', 'Number of retries per function', parseIntStrict)
|
|
82
|
-
.option('--timeout <duration>', 'Function timeout (e.g. "30m", "1h")')
|
|
83
|
-
.action(wrapAction(async (input, options) => {
|
|
84
|
-
const { compileCommand } = await import('./commands/compile.js');
|
|
85
|
-
if (options.workflow)
|
|
86
|
-
options.workflowName = options.workflow;
|
|
87
|
-
await compileCommand(input, options);
|
|
88
|
-
}));
|
|
89
|
-
// Strip command
|
|
90
|
-
program
|
|
91
|
-
.command('strip <input>')
|
|
92
|
-
.description('Remove generated code from compiled workflow files')
|
|
93
|
-
.option('-o, --output <path>', 'Output directory (default: in-place)')
|
|
94
|
-
.option('--dry-run', 'Preview without writing', false)
|
|
95
|
-
.option('--verbose', 'Verbose output', false)
|
|
96
|
-
.action(wrapAction(async (input, options) => {
|
|
97
|
-
const { stripCommand } = await import('./commands/strip.js');
|
|
98
|
-
await stripCommand(input, options);
|
|
99
|
-
}));
|
|
100
|
-
// Describe command
|
|
101
|
-
program
|
|
102
|
-
.command('describe <input>')
|
|
103
|
-
.description('Output workflow structure in LLM-friendly formats (JSON, text, mermaid)')
|
|
104
|
-
.addOption(new Option('-f, --format <format>', 'Output format').choices(['json', 'text', 'mermaid', 'paths', 'ascii', 'ascii-compact']).default('json'))
|
|
105
|
-
.option('-n, --node <id>', 'Focus on a specific node')
|
|
106
|
-
.option('--compile', 'Also update runtime markers in the source file')
|
|
107
|
-
.option('-w, --workflow <name>', 'Specific workflow name to describe')
|
|
108
|
-
.action(wrapAction(async (input, options) => {
|
|
109
|
-
const { describeCommand } = await import('./commands/describe.js');
|
|
110
|
-
if (options.workflow)
|
|
111
|
-
options.workflowName = options.workflow;
|
|
112
|
-
await describeCommand(input, options);
|
|
113
|
-
}));
|
|
114
|
-
// Diagram command
|
|
115
|
-
program
|
|
116
|
-
.command('diagram <input>')
|
|
117
|
-
.description('Generate SVG or interactive HTML diagram of a workflow')
|
|
118
|
-
.addOption(new Option('-t, --theme <theme>', 'Color theme').choices(['dark', 'light']).default('dark'))
|
|
119
|
-
.option('--width <pixels>', 'SVG width in pixels')
|
|
120
|
-
.option('-p, --padding <pixels>', 'Canvas padding in pixels')
|
|
121
|
-
.option('--no-port-labels', 'Hide data type labels on ports')
|
|
122
|
-
.option('-w, --workflow <name>', 'Specific workflow to render')
|
|
123
|
-
.addOption(new Option('-f, --format <format>', 'Output format').choices(['svg', 'html', 'ascii', 'ascii-compact', 'text']).default('svg'))
|
|
124
|
-
.option('-o, --output <file>', 'Write output to file instead of stdout')
|
|
125
|
-
.action(wrapAction(async (input, options) => {
|
|
126
|
-
if (options.width)
|
|
127
|
-
options.width = Number(options.width);
|
|
128
|
-
if (options.padding)
|
|
129
|
-
options.padding = Number(options.padding);
|
|
130
|
-
options.showPortLabels = options.portLabels;
|
|
131
|
-
if (options.workflow)
|
|
132
|
-
options.workflowName = options.workflow;
|
|
133
|
-
const { diagramCommand } = await import('./commands/diagram.js');
|
|
134
|
-
await diagramCommand(input, options);
|
|
135
|
-
}));
|
|
136
|
-
// Diff command
|
|
137
|
-
program
|
|
138
|
-
.command('diff <file1> <file2>')
|
|
139
|
-
.description('Compare two workflow files semantically')
|
|
140
|
-
.addOption(new Option('-f, --format <format>', 'Output format').choices(['text', 'json', 'compact']).default('text'))
|
|
141
|
-
.option('-w, --workflow <name>', 'Specific workflow name to compare')
|
|
142
|
-
.option('--exit-zero', 'Exit 0 even when differences are found', false)
|
|
143
|
-
.action(wrapAction(async (file1, file2, options) => {
|
|
144
|
-
const { diffCommand } = await import('./commands/diff.js');
|
|
145
|
-
if (options.workflow)
|
|
146
|
-
options.workflowName = options.workflow;
|
|
147
|
-
await diffCommand(file1, file2, options);
|
|
148
|
-
}));
|
|
149
|
-
// Validate command
|
|
150
|
-
program
|
|
151
|
-
.command('validate <input>')
|
|
152
|
-
.description('Validate workflow files without compiling')
|
|
153
|
-
.option('--verbose', 'Verbose output', false)
|
|
154
|
-
.option('-q, --quiet', 'Suppress warnings', false)
|
|
155
|
-
.option('--json', 'Output results as JSON', false)
|
|
156
|
-
.option('-w, --workflow <name>', 'Specific workflow name to validate')
|
|
157
|
-
.option('--strict', 'Treat type coercion warnings as errors', false)
|
|
158
|
-
.action(wrapAction(async (input, options) => {
|
|
159
|
-
const { validateCommand } = await import('./commands/validate.js');
|
|
160
|
-
if (options.workflow)
|
|
161
|
-
options.workflowName = options.workflow;
|
|
162
|
-
await validateCommand(input, options);
|
|
163
|
-
}));
|
|
164
|
-
// Doctor command
|
|
165
|
-
program
|
|
166
|
-
.command('doctor')
|
|
167
|
-
.description('Check project environment and configuration for flow-weaver compatibility')
|
|
168
|
-
.option('--json', 'Output results as JSON', false)
|
|
169
|
-
.action(wrapAction(async (options) => {
|
|
170
|
-
const { doctorCommand } = await import('./commands/doctor.js');
|
|
171
|
-
await doctorCommand(options);
|
|
172
|
-
}));
|
|
173
|
-
// Init command
|
|
174
|
-
program
|
|
175
|
-
.command('init [directory]')
|
|
176
|
-
.description('Create a new flow-weaver project')
|
|
177
|
-
.option('-n, --name <name>', 'Project name (defaults to directory name)')
|
|
178
|
-
.option('-t, --template <template>', 'Workflow template (default: sequential)')
|
|
179
|
-
.option('-f, --format <format>', 'Module format: esm or cjs (default: esm)')
|
|
180
|
-
.option('-y, --yes', 'Skip prompts and use defaults', false)
|
|
181
|
-
.option('--preset <persona>', 'User preset: nocode, vibecoder, lowcode, expert')
|
|
182
|
-
.option('--use-case <category>', 'Use case: data, ai, api, automation, cicd, minimal')
|
|
183
|
-
.option('--mcp', 'Auto-configure MCP for AI editors after scaffolding')
|
|
184
|
-
.option('--no-mcp', 'Skip MCP setup prompt')
|
|
185
|
-
.option('--no-agent', 'Skip post-init agent launch prompt')
|
|
186
|
-
.option('--install', 'Run npm install after scaffolding')
|
|
187
|
-
.option('--no-install', 'Skip npm install')
|
|
188
|
-
.option('--git', 'Initialize a git repository')
|
|
189
|
-
.option('--no-git', 'Skip git init')
|
|
190
|
-
.option('--with-weaver', 'Install Weaver AI assistant')
|
|
191
|
-
.option('--no-weaver', 'Skip Weaver installation')
|
|
192
|
-
.option('--force', 'Overwrite existing files', false)
|
|
193
|
-
.action(wrapAction(async (directory, options) => {
|
|
194
|
-
const { initCommand } = await import('./commands/init.js');
|
|
195
|
-
await initCommand(directory, options);
|
|
196
|
-
}));
|
|
197
|
-
// Watch command
|
|
198
|
-
program
|
|
199
|
-
.command('watch <input>')
|
|
200
|
-
.description('Watch workflow files and recompile on changes')
|
|
201
|
-
.option('-o, --output <path>', 'Output file or directory')
|
|
202
|
-
.option('-p, --production', 'Generate production code (no debug events)', false)
|
|
203
|
-
.option('-s, --source-map', 'Generate source maps', false)
|
|
204
|
-
.option('--verbose', 'Verbose output', false)
|
|
205
|
-
.option('-w, --workflow <name>', 'Specific workflow name to compile')
|
|
206
|
-
.option('-f, --format <format>', 'Module format: esm, cjs, or auto', 'auto')
|
|
207
|
-
.action(wrapAction(async (input, options) => {
|
|
208
|
-
const { watchCommand } = await import('./commands/watch.js');
|
|
209
|
-
if (options.workflow)
|
|
210
|
-
options.workflowName = options.workflow;
|
|
211
|
-
await watchCommand(input, options);
|
|
212
|
-
}));
|
|
213
|
-
// Dev command (watch + compile + run)
|
|
214
|
-
program
|
|
215
|
-
.command('dev <input>')
|
|
216
|
-
.description('Watch, compile, and run workflow on changes')
|
|
217
|
-
.option('--params <json>', 'Input parameters as JSON string')
|
|
218
|
-
.option('--params-file <path>', 'Path to JSON file with input parameters')
|
|
219
|
-
.option('-w, --workflow <name>', 'Specific workflow name to run')
|
|
220
|
-
.option('-p, --production', 'Run in production mode (no trace events)', false)
|
|
221
|
-
.option('-f, --format <format>', 'Module format: esm, cjs, or auto', 'auto')
|
|
222
|
-
.option('--clean', 'Omit redundant @param/@returns annotations', false)
|
|
223
|
-
.option('--once', 'Run once then exit', false)
|
|
224
|
-
.option('--json', 'Output result as JSON', false)
|
|
225
|
-
.option('--target <target>', 'Compilation target (default: typescript)')
|
|
226
|
-
.option('--mocks <json>', 'Mock config for built-in nodes (events, invocations, agents, fast) as JSON')
|
|
227
|
-
.option('--mocks-file <path>', 'Path to JSON file with mock config for built-in nodes')
|
|
228
|
-
.action(wrapAction(async (input, options) => {
|
|
229
|
-
const { devCommand } = await import('./commands/dev.js');
|
|
230
|
-
await devCommand(input, options);
|
|
231
|
-
}));
|
|
232
|
-
// MCP server command
|
|
233
|
-
program
|
|
234
|
-
.command('mcp-server')
|
|
235
|
-
.description('Start MCP server for Claude Code integration')
|
|
236
|
-
.option('--stdio', 'Run in MCP stdio mode (skip interactive registration)')
|
|
237
|
-
.action(wrapAction(async (options) => {
|
|
238
|
-
const { mcpServerCommand } = await import('../mcp/server.js');
|
|
239
|
-
await mcpServerCommand(options);
|
|
240
|
-
}));
|
|
241
|
-
// MCP setup command
|
|
242
|
-
program
|
|
243
|
-
.command('mcp-setup')
|
|
244
|
-
.description('Configure MCP server for AI coding tools (Claude, Cursor, VS Code, Windsurf, Codex, OpenClaw)')
|
|
245
|
-
.option('--tool <tools...>', 'Specific tools to configure (claude, cursor, vscode, windsurf, codex, openclaw)')
|
|
246
|
-
.option('--all', 'Configure all detected tools without prompting')
|
|
247
|
-
.option('--list', 'List detected tools without configuring')
|
|
248
|
-
.action(wrapAction(async (options) => {
|
|
249
|
-
const { mcpSetupCommand } = await import('./commands/mcp-setup.js');
|
|
250
|
-
await mcpSetupCommand(options);
|
|
251
|
-
}));
|
|
252
|
-
// Create command (with subcommands)
|
|
253
|
-
const createCmd = program.command('create').description('Create workflows or nodes from templates');
|
|
254
|
-
createCmd
|
|
255
|
-
.command('workflow <template> <file>')
|
|
256
|
-
.description('Create a workflow from a template')
|
|
257
|
-
.option('-l, --line <number>', 'Insert at specific line number', parseIntStrict)
|
|
258
|
-
.option('-a, --async', 'Generate an async workflow', false)
|
|
259
|
-
.option('-p, --preview', 'Preview generated code without writing', false)
|
|
260
|
-
.option('--provider <provider>', 'LLM provider (openai, anthropic, ollama, mock)')
|
|
261
|
-
.option('--model <model>', 'Model identifier (e.g., gpt-4o, claude-3-5-sonnet-20241022)')
|
|
262
|
-
.option('--config <json>', 'Configuration as JSON string')
|
|
263
|
-
.option('--name <name>', 'Override the derived workflow function name')
|
|
264
|
-
.option('--nodes <names>', 'Comma-separated node function names (e.g., "fetch,parse,store")')
|
|
265
|
-
.option('--input <name>', 'Custom input port name (default: "data")')
|
|
266
|
-
.option('--output <name>', 'Custom output port name (default: "result")')
|
|
267
|
-
.action(wrapAction(async (template, file, options) => {
|
|
268
|
-
const { createWorkflowCommand } = await import('./commands/create.js');
|
|
269
|
-
await createWorkflowCommand(template, file, options);
|
|
270
|
-
}));
|
|
271
|
-
createCmd
|
|
272
|
-
.command('node <name> <file>')
|
|
273
|
-
.description('Create a node type from a template')
|
|
274
|
-
.option('-l, --line <number>', 'Insert at specific line number', parseIntStrict)
|
|
275
|
-
.option('-t, --template <template>', 'Node template to use', 'transformer')
|
|
276
|
-
.option('-p, --preview', 'Preview generated code without writing', false)
|
|
277
|
-
.option('--strategy <strategy>', 'Template strategy (e.g. mock, callback, webhook)')
|
|
278
|
-
.option('--config <json>', 'Additional configuration (JSON)')
|
|
279
|
-
.action(wrapAction(async (name, file, options) => {
|
|
280
|
-
const { createNodeCommand } = await import('./commands/create.js');
|
|
281
|
-
await createNodeCommand(name, file, options);
|
|
282
|
-
}));
|
|
283
|
-
// Modify command (with subcommands)
|
|
284
|
-
const modifyCmd = program.command('modify').description('Modify workflow structure');
|
|
285
|
-
modifyCmd
|
|
286
|
-
.command('addNode')
|
|
287
|
-
.description('Add a node instance to a workflow')
|
|
288
|
-
.requiredOption('--file <path>', 'Workflow file')
|
|
289
|
-
.requiredOption('--nodeId <id>', 'Node instance ID')
|
|
290
|
-
.requiredOption('--nodeType <type>', 'Node type name')
|
|
291
|
-
.action(wrapAction(async (options) => {
|
|
292
|
-
const { modifyAddNodeCommand } = await import('./commands/modify.js');
|
|
293
|
-
await modifyAddNodeCommand(options.file, options);
|
|
294
|
-
}));
|
|
295
|
-
modifyCmd
|
|
296
|
-
.command('removeNode')
|
|
297
|
-
.description('Remove a node instance from a workflow')
|
|
298
|
-
.requiredOption('--file <path>', 'Workflow file')
|
|
299
|
-
.requiredOption('--nodeId <id>', 'Node instance ID')
|
|
300
|
-
.action(wrapAction(async (options) => {
|
|
301
|
-
const { modifyRemoveNodeCommand } = await import('./commands/modify.js');
|
|
302
|
-
await modifyRemoveNodeCommand(options.file, options);
|
|
303
|
-
}));
|
|
304
|
-
modifyCmd
|
|
305
|
-
.command('addConnection')
|
|
306
|
-
.description('Add a connection between nodes')
|
|
307
|
-
.requiredOption('--file <path>', 'Workflow file')
|
|
308
|
-
.requiredOption('--from <node.port>', 'Source (e.g. nodeA.output)')
|
|
309
|
-
.requiredOption('--to <node.port>', 'Target (e.g. nodeB.input)')
|
|
310
|
-
.action(wrapAction(async (options) => {
|
|
311
|
-
const { modifyAddConnectionCommand } = await import('./commands/modify.js');
|
|
312
|
-
await modifyAddConnectionCommand(options.file, options);
|
|
313
|
-
}));
|
|
314
|
-
modifyCmd
|
|
315
|
-
.command('removeConnection')
|
|
316
|
-
.description('Remove a connection between nodes')
|
|
317
|
-
.requiredOption('--file <path>', 'Workflow file')
|
|
318
|
-
.requiredOption('--from <node.port>', 'Source (e.g. nodeA.output)')
|
|
319
|
-
.requiredOption('--to <node.port>', 'Target (e.g. nodeB.input)')
|
|
320
|
-
.action(wrapAction(async (options) => {
|
|
321
|
-
const { modifyRemoveConnectionCommand } = await import('./commands/modify.js');
|
|
322
|
-
await modifyRemoveConnectionCommand(options.file, options);
|
|
323
|
-
}));
|
|
324
|
-
modifyCmd
|
|
325
|
-
.command('renameNode')
|
|
326
|
-
.description('Rename a node instance (updates all connections)')
|
|
327
|
-
.requiredOption('--file <path>', 'Workflow file')
|
|
328
|
-
.requiredOption('--oldId <id>', 'Current node ID')
|
|
329
|
-
.requiredOption('--newId <id>', 'New node ID')
|
|
330
|
-
.action(wrapAction(async (options) => {
|
|
331
|
-
const { modifyRenameNodeCommand } = await import('./commands/modify.js');
|
|
332
|
-
await modifyRenameNodeCommand(options.file, options);
|
|
333
|
-
}));
|
|
334
|
-
modifyCmd
|
|
335
|
-
.command('setPosition')
|
|
336
|
-
.description('Set position of a node instance')
|
|
337
|
-
.requiredOption('--file <path>', 'Workflow file')
|
|
338
|
-
.requiredOption('--nodeId <id>', 'Node instance ID')
|
|
339
|
-
.requiredOption('--x <number>', 'X coordinate')
|
|
340
|
-
.requiredOption('--y <number>', 'Y coordinate')
|
|
341
|
-
.action(wrapAction(async (options) => {
|
|
342
|
-
const { modifySetPositionCommand } = await import('./commands/modify.js');
|
|
343
|
-
await modifySetPositionCommand(options.file, options);
|
|
344
|
-
}));
|
|
345
|
-
modifyCmd
|
|
346
|
-
.command('setLabel')
|
|
347
|
-
.description('Set display label for a node instance')
|
|
348
|
-
.requiredOption('--file <path>', 'Workflow file')
|
|
349
|
-
.requiredOption('--nodeId <id>', 'Node instance ID')
|
|
350
|
-
.requiredOption('--label <text>', 'Display label')
|
|
351
|
-
.action(wrapAction(async (options) => {
|
|
352
|
-
const { modifySetLabelCommand } = await import('./commands/modify.js');
|
|
353
|
-
await modifySetLabelCommand(options.file, options);
|
|
354
|
-
}));
|
|
355
|
-
// Templates command
|
|
356
|
-
program
|
|
357
|
-
.command('templates')
|
|
358
|
-
.description('List available templates')
|
|
359
|
-
.option('--json', 'Output as JSON', false)
|
|
360
|
-
.action(wrapAction(async (options) => {
|
|
361
|
-
const { templatesCommand } = await import('./commands/templates.js');
|
|
362
|
-
await templatesCommand(options);
|
|
363
|
-
}));
|
|
364
|
-
// Grammar command
|
|
365
|
-
program
|
|
366
|
-
.command('grammar')
|
|
367
|
-
.description('Output JSDoc annotation grammar (@input, @output, @connect, @node, @scope) as HTML railroad diagrams or EBNF text')
|
|
368
|
-
.addOption(new Option('-f, --format <format>', 'Output format').choices(['html', 'ebnf']))
|
|
369
|
-
.option('-o, --output <path>', 'Write output to file instead of stdout')
|
|
370
|
-
.action(wrapAction(async (options) => {
|
|
371
|
-
const { grammarCommand } = await import('./commands/grammar.js');
|
|
372
|
-
await grammarCommand(options);
|
|
373
|
-
}));
|
|
374
|
-
// Pattern command (with subcommands)
|
|
375
|
-
const patternCmd = program.command('pattern').description('Work with reusable workflow patterns');
|
|
376
|
-
patternCmd
|
|
377
|
-
.command('list <path>')
|
|
378
|
-
.description('List patterns in a file or directory')
|
|
379
|
-
.option('--json', 'Output as JSON', false)
|
|
380
|
-
.action(wrapAction(async (inputPath, options) => {
|
|
381
|
-
const { patternListCommand } = await import('./commands/pattern.js');
|
|
382
|
-
await patternListCommand(inputPath, options);
|
|
383
|
-
}));
|
|
384
|
-
patternCmd
|
|
385
|
-
.command('apply <pattern-file> <target-file>')
|
|
386
|
-
.description('Apply a pattern to a workflow file')
|
|
387
|
-
.option('-p, --preview', 'Preview changes without writing', false)
|
|
388
|
-
.option('--prefix <prefix>', 'Prefix for node instance IDs')
|
|
389
|
-
.option('-n, --name <name>', 'Specific pattern name to apply')
|
|
390
|
-
.action(wrapAction(async (patternFile, targetFile, options) => {
|
|
391
|
-
const { patternApplyCommand } = await import('./commands/pattern.js');
|
|
392
|
-
await patternApplyCommand(patternFile, targetFile, options);
|
|
393
|
-
}));
|
|
394
|
-
patternCmd
|
|
395
|
-
.command('extract <source-file>')
|
|
396
|
-
.description('Extract a pattern from workflow nodes')
|
|
397
|
-
.requiredOption('--nodes <nodes>', 'Comma-separated list of node IDs to extract')
|
|
398
|
-
.requiredOption('-o, --output <file>', 'Output pattern file')
|
|
399
|
-
.option('-n, --name <name>', 'Pattern name')
|
|
400
|
-
.option('-p, --preview', 'Preview pattern without writing', false)
|
|
401
|
-
.action(wrapAction(async (sourceFile, options) => {
|
|
402
|
-
const { patternExtractCommand } = await import('./commands/pattern.js');
|
|
403
|
-
await patternExtractCommand(sourceFile, options);
|
|
404
|
-
}));
|
|
405
|
-
// Run command
|
|
406
|
-
program
|
|
407
|
-
.command('run <input>')
|
|
408
|
-
.description('Execute a workflow file directly')
|
|
409
|
-
.option('-w, --workflow <name>', 'Specific workflow name to run')
|
|
410
|
-
.option('--params <json>', 'Input parameters as JSON string')
|
|
411
|
-
.option('--params-file <path>', 'Path to JSON file with input parameters')
|
|
412
|
-
.option('-p, --production', 'Production mode (no trace events)', false)
|
|
413
|
-
.option('-t, --trace', 'Include execution trace events')
|
|
414
|
-
.option('-s, --stream', 'Stream trace events in real-time')
|
|
415
|
-
.option('--json', 'Output result as JSON', false)
|
|
416
|
-
.option('--timeout <ms>', 'Execution timeout in milliseconds', parseIntStrict)
|
|
417
|
-
.option('--mocks <json>', 'Mock config for built-in nodes (events, invocations, agents, fast) as JSON')
|
|
418
|
-
.option('--mocks-file <path>', 'Path to JSON file with mock config for built-in nodes')
|
|
419
|
-
.option('-d, --debug', 'Start in step-through debug mode')
|
|
420
|
-
.option('--checkpoint', 'Enable checkpointing to disk after each node')
|
|
421
|
-
.option('--resume [file]', 'Resume from a checkpoint file (auto-detects latest if no file)')
|
|
422
|
-
.option('-b, --breakpoint <nodeIds...>', 'Set initial breakpoints (repeatable)')
|
|
423
|
-
.action(wrapAction(async (input, options) => {
|
|
424
|
-
const { runCommand } = await import('./commands/run.js');
|
|
425
|
-
await runCommand(input, options);
|
|
426
|
-
}));
|
|
427
|
-
// Serve command
|
|
428
|
-
program
|
|
429
|
-
.command('serve [directory]')
|
|
430
|
-
.description('Start HTTP server exposing workflows as endpoints')
|
|
431
|
-
.option('-p, --port <port>', 'Server port', '3000')
|
|
432
|
-
.option('-H, --host <host>', 'Server host', '0.0.0.0')
|
|
433
|
-
.option('--no-watch', 'Disable file watching for hot reload')
|
|
434
|
-
.option('--production', 'Production mode (no trace events)', false)
|
|
435
|
-
.option('--precompile', 'Precompile all workflows on startup', false)
|
|
436
|
-
.option('--cors <origin>', 'CORS origin', '*')
|
|
437
|
-
.option('--swagger', 'Enable Swagger UI at /docs', false)
|
|
438
|
-
.action(wrapAction(async (directory, options) => {
|
|
439
|
-
const { serveCommand } = await import('./commands/serve.js');
|
|
440
|
-
await serveCommand(directory, {
|
|
441
|
-
port: parseIntStrict(options.port),
|
|
442
|
-
host: options.host,
|
|
443
|
-
watch: options.watch,
|
|
444
|
-
production: options.production,
|
|
445
|
-
precompile: options.precompile,
|
|
446
|
-
cors: options.cors,
|
|
447
|
-
swagger: options.swagger,
|
|
448
|
-
});
|
|
449
|
-
}));
|
|
450
|
-
// Export command
|
|
451
|
-
program
|
|
452
|
-
.command('export <input>')
|
|
453
|
-
.description('Export workflow as serverless function')
|
|
454
|
-
.requiredOption('-t, --target <target>', 'Target platform (install target packs via marketplace)')
|
|
455
|
-
.requiredOption('-o, --output <path>', 'Output directory')
|
|
456
|
-
.option('-w, --workflow <name>', 'Specific workflow name to export')
|
|
457
|
-
.option('-p, --production', 'Production mode (no debug events)', false)
|
|
458
|
-
.option('--bundle', 'Bundle node types into the output', false)
|
|
459
|
-
.option('--dry-run', 'Preview without writing files', false)
|
|
460
|
-
.option('--multi', 'Export all workflows in file as a single multi-workflow service', false)
|
|
461
|
-
.option('--workflows <names>', 'Comma-separated list of workflows to export (used with --multi)')
|
|
462
|
-
.option('--docs', 'Include API documentation routes (/docs and /openapi.json)', false)
|
|
463
|
-
.option('--durable-steps', 'Use deep generator with per-node durable steps', false)
|
|
464
|
-
.action(wrapAction(async (input, options) => {
|
|
465
|
-
const { exportCommand } = await import('./commands/export.js');
|
|
466
|
-
await exportCommand(input, options);
|
|
467
|
-
}));
|
|
468
|
-
// OpenAPI command
|
|
469
|
-
program
|
|
470
|
-
.command('openapi <directory>')
|
|
471
|
-
.description('Generate OpenAPI specification from workflows')
|
|
472
|
-
.option('-o, --output <path>', 'Output file path')
|
|
473
|
-
.option('--title <title>', 'API title', 'Flow Weaver API')
|
|
474
|
-
.option('--version <version>', 'API version', '1.0.0')
|
|
475
|
-
.option('--description <desc>', 'API description')
|
|
476
|
-
.option('-f, --format <format>', 'Output format: json, yaml', 'json')
|
|
477
|
-
.option('--server <url>', 'Server URL')
|
|
478
|
-
.action(wrapAction(async (directory, options) => {
|
|
479
|
-
const { openapiCommand } = await import('./commands/openapi.js');
|
|
480
|
-
await openapiCommand(directory, options);
|
|
481
|
-
}));
|
|
482
|
-
// Plugin command group
|
|
483
|
-
const pluginCmd = program.command('plugin').description('Scaffold and manage external plugins');
|
|
484
|
-
pluginCmd
|
|
485
|
-
.command('init <name>')
|
|
486
|
-
.description('Scaffold a new external plugin')
|
|
487
|
-
.option('-a, --area <area>', 'Component area: sidebar, main, toolbar, modal, panel', 'panel')
|
|
488
|
-
.option('--no-system', 'Skip generating a system module')
|
|
489
|
-
.option('-p, --preview', 'Preview generated files without writing', false)
|
|
490
|
-
.option('--force', 'Overwrite existing files', false)
|
|
491
|
-
.action(wrapAction(async (name, options) => {
|
|
492
|
-
const { pluginInitCommand } = await import('./commands/plugin.js');
|
|
493
|
-
await pluginInitCommand(name, options);
|
|
494
|
-
}));
|
|
495
|
-
// Migrate command
|
|
496
|
-
program
|
|
497
|
-
.command('migrate <glob>')
|
|
498
|
-
.description('Migrate workflow files to current syntax via parse → regenerate round-trip')
|
|
499
|
-
.option('--dry-run', 'Preview changes without writing files', false)
|
|
500
|
-
.option('--diff', 'Show semantic diff before/after', false)
|
|
501
|
-
.action(wrapAction(async (glob, options) => {
|
|
502
|
-
const { migrateCommand } = await import('./commands/migrate.js');
|
|
503
|
-
await migrateCommand(glob, options);
|
|
504
|
-
}));
|
|
505
|
-
// Status command
|
|
506
|
-
program
|
|
507
|
-
.command('status <input>')
|
|
508
|
-
.description('Report implementation progress for stub workflows')
|
|
509
|
-
.option('-w, --workflow <name>', 'Specific workflow name')
|
|
510
|
-
.option('--json', 'Output as JSON', false)
|
|
511
|
-
.action(wrapAction(async (input, options) => {
|
|
512
|
-
const { statusCommand } = await import('./commands/status.js');
|
|
513
|
-
if (options.workflow)
|
|
514
|
-
options.workflowName = options.workflow;
|
|
515
|
-
await statusCommand(input, options);
|
|
516
|
-
}));
|
|
517
|
-
// Implement command
|
|
518
|
-
program
|
|
519
|
-
.command('implement <input> [node]')
|
|
520
|
-
.description('Replace a stub node with a real function skeleton')
|
|
521
|
-
.option('-w, --workflow <name>', 'Specific workflow name')
|
|
522
|
-
.option('--nodeId <id>', 'Node to implement (alternative to positional arg)')
|
|
523
|
-
.option('-p, --preview', 'Preview the generated code without writing', false)
|
|
524
|
-
.action(wrapAction(async (input, node, options) => {
|
|
525
|
-
const nodeName = node ?? options.nodeId;
|
|
526
|
-
if (!nodeName) {
|
|
527
|
-
throw new Error('Node name is required (as positional arg or --nodeId flag)');
|
|
528
|
-
}
|
|
529
|
-
const { implementCommand } = await import('./commands/implement.js');
|
|
530
|
-
if (options.workflow)
|
|
531
|
-
options.workflowName = options.workflow;
|
|
532
|
-
await implementCommand(input, nodeName, options);
|
|
533
|
-
}));
|
|
534
|
-
// Docs command: fw docs [topic] | fw docs search <query>
|
|
535
|
-
program
|
|
536
|
-
.command('docs [args...]')
|
|
537
|
-
.description('Browse reference documentation')
|
|
538
|
-
.option('--json', 'Output as JSON', false)
|
|
539
|
-
.option('--compact', 'Return compact LLM-friendly version', false)
|
|
540
|
-
.action(wrapAction(async (args, options) => {
|
|
541
|
-
const { docsListCommand, docsReadCommand, docsSearchCommand } = await import('./commands/docs.js');
|
|
542
|
-
if (args.length === 0 || args[0] === 'list') {
|
|
543
|
-
await docsListCommand(options);
|
|
544
|
-
}
|
|
545
|
-
else if (args[0] === 'search') {
|
|
546
|
-
const query = args.slice(1).join(' ');
|
|
547
|
-
if (!query) {
|
|
548
|
-
logger.error('Usage: fw docs search <query>');
|
|
549
|
-
process.exit(1);
|
|
550
|
-
}
|
|
551
|
-
await docsSearchCommand(query, options);
|
|
552
|
-
}
|
|
553
|
-
else {
|
|
554
|
-
await docsReadCommand(args[0], options);
|
|
555
|
-
}
|
|
556
|
-
}));
|
|
557
|
-
// Context command: generate LLM context bundles
|
|
558
|
-
program
|
|
559
|
-
.command('context [preset]')
|
|
560
|
-
.description('Generate LLM context bundle from documentation and grammar')
|
|
561
|
-
.option('--profile <profile>', 'Output profile: standalone or assistant', 'standalone')
|
|
562
|
-
.option('--topics <slugs>', 'Comma-separated topic slugs (overrides preset)')
|
|
563
|
-
.option('--add <slugs>', 'Comma-separated topic slugs to add to preset')
|
|
564
|
-
.option('--no-grammar', 'Omit EBNF grammar section')
|
|
565
|
-
.option('-o, --output <path>', 'Write to file instead of stdout')
|
|
566
|
-
.option('--list', 'List available presets and exit')
|
|
567
|
-
.action(wrapAction(async (preset, options) => {
|
|
568
|
-
const { contextCommand } = await import('./commands/context.js');
|
|
569
|
-
await contextCommand(preset, options);
|
|
570
|
-
}));
|
|
571
|
-
// Marketplace command group
|
|
572
|
-
const marketCmd = program.command('market').description('Discover, install, and publish marketplace packages');
|
|
573
|
-
marketCmd
|
|
574
|
-
.command('init <name>')
|
|
575
|
-
.description('Scaffold a new marketplace package')
|
|
576
|
-
.option('-d, --description <desc>', 'Package description')
|
|
577
|
-
.option('-a, --author <author>', 'Author name')
|
|
578
|
-
.option('-y, --yes', 'Skip prompts and use defaults', false)
|
|
579
|
-
.action(wrapAction(async (name, options) => {
|
|
580
|
-
const { marketInitCommand } = await import('./commands/market.js');
|
|
581
|
-
await marketInitCommand(name, options);
|
|
582
|
-
}));
|
|
583
|
-
marketCmd
|
|
584
|
-
.command('pack [directory]')
|
|
585
|
-
.description('Validate and generate flowweaver.manifest.json')
|
|
586
|
-
.option('--json', 'Output results as JSON', false)
|
|
587
|
-
.option('--verbose', 'Show parse warnings', false)
|
|
588
|
-
.action(wrapAction(async (directory, options) => {
|
|
589
|
-
const { marketPackCommand } = await import('./commands/market.js');
|
|
590
|
-
await marketPackCommand(directory, options);
|
|
591
|
-
}));
|
|
592
|
-
marketCmd
|
|
593
|
-
.command('publish [directory]')
|
|
594
|
-
.description('Pack and publish to npm')
|
|
595
|
-
.option('--dry-run', 'Preview without publishing', false)
|
|
596
|
-
.option('--tag <tag>', 'npm dist-tag')
|
|
597
|
-
.action(wrapAction(async (directory, options) => {
|
|
598
|
-
const { marketPublishCommand } = await import('./commands/market.js');
|
|
599
|
-
await marketPublishCommand(directory, options);
|
|
600
|
-
}));
|
|
601
|
-
marketCmd
|
|
602
|
-
.command('install <package>')
|
|
603
|
-
.description('Install a marketplace package')
|
|
604
|
-
.option('--json', 'Output results as JSON', false)
|
|
605
|
-
.action(wrapAction(async (packageSpec, options) => {
|
|
606
|
-
const { marketInstallCommand } = await import('./commands/market.js');
|
|
607
|
-
await marketInstallCommand(packageSpec, options);
|
|
608
|
-
}));
|
|
609
|
-
marketCmd
|
|
610
|
-
.command('search [query]')
|
|
611
|
-
.description('Search npm for marketplace packages')
|
|
612
|
-
.option('-l, --limit <number>', 'Max results', '20')
|
|
613
|
-
.option('-r, --registry <url>', 'Custom registry search URL (e.g., private npm registry)')
|
|
614
|
-
.option('--json', 'Output as JSON', false)
|
|
615
|
-
.action(wrapAction(async (query, options) => {
|
|
616
|
-
const { marketSearchCommand } = await import('./commands/market.js');
|
|
617
|
-
await marketSearchCommand(query, { ...options, limit: parseIntStrict(options.limit) });
|
|
618
|
-
}));
|
|
619
|
-
marketCmd
|
|
620
|
-
.command('list')
|
|
621
|
-
.description('List installed marketplace packages')
|
|
622
|
-
.option('--json', 'Output as JSON', false)
|
|
623
|
-
.action(wrapAction(async (options) => {
|
|
624
|
-
const { marketListCommand } = await import('./commands/market.js');
|
|
625
|
-
await marketListCommand(options);
|
|
626
|
-
}));
|
|
627
|
-
// Concise examples appended to --help
|
|
628
|
-
program.addHelpText('after', `
|
|
629
|
-
Examples:
|
|
630
|
-
|
|
631
|
-
$ fw compile my-workflow.ts
|
|
632
|
-
$ fw validate 'src/**/*.ts'
|
|
633
|
-
$ fw run workflow.ts --params '{"a": 5}'
|
|
634
|
-
$ fw describe workflow.ts --format ascii-compact
|
|
635
|
-
$ fw init my-project
|
|
636
|
-
|
|
637
|
-
Run fw <command> --help for detailed usage.
|
|
638
|
-
`);
|
|
639
|
-
// Show concise welcome when no command specified (before parse to avoid Commander error handling)
|
|
640
|
-
if (!process.argv.slice(2).length) {
|
|
641
|
-
logger.banner(version);
|
|
642
|
-
console.log();
|
|
643
|
-
console.log(' Usage: flow-weaver <command> [options]');
|
|
644
|
-
console.log();
|
|
645
|
-
console.log(' Get started:');
|
|
646
|
-
console.log(' init [dir] Create a new project');
|
|
647
|
-
console.log(' compile <input> Compile workflow files');
|
|
648
|
-
console.log(' validate <input> Validate without compiling');
|
|
649
|
-
console.log(' run <input> Execute a workflow');
|
|
650
|
-
console.log(' doctor Check project environment');
|
|
651
|
-
console.log();
|
|
652
|
-
console.log(' Run ' + logger.highlight('fw --help') + ' for all commands.');
|
|
653
|
-
console.log();
|
|
654
|
-
process.exit(0);
|
|
655
|
-
}
|
|
656
|
-
// Register pack-contributed CLI commands, then parse.
|
|
657
|
-
// Skip when loaded inside vitest's worker (coverage instrumentation).
|
|
658
|
-
if (!process.env['VITEST']) {
|
|
659
|
-
(async () => {
|
|
660
|
-
const { registerPackCommands } = await import('./pack-commands.js');
|
|
661
|
-
await registerPackCommands(program);
|
|
662
|
-
// Auth commands (login, logout, status)
|
|
663
|
-
program
|
|
664
|
-
.command('login')
|
|
665
|
-
.description('Log in to Flow Weaver platform')
|
|
666
|
-
.option('-e, --email <email>', 'Email address')
|
|
667
|
-
.option('-p, --password <password>', 'Password (for non-interactive login with --email)')
|
|
668
|
-
.option('-k, --api-key <key>', 'Use API key instead of email/password')
|
|
669
|
-
.option('--platform-url <url>', 'Platform URL')
|
|
670
|
-
.action(async (options) => {
|
|
671
|
-
const { loginCommand } = await import('./commands/auth.js');
|
|
672
|
-
await loginCommand(options);
|
|
673
|
-
});
|
|
674
|
-
program
|
|
675
|
-
.command('logout')
|
|
676
|
-
.description('Log out from Flow Weaver platform')
|
|
677
|
-
.action(async () => {
|
|
678
|
-
const { logoutCommand } = await import('./commands/auth.js');
|
|
679
|
-
await logoutCommand();
|
|
680
|
-
});
|
|
681
|
-
program
|
|
682
|
-
.command('auth')
|
|
683
|
-
.description('Show authentication status')
|
|
684
|
-
.action(async () => {
|
|
685
|
-
const { authStatusCommand } = await import('./commands/auth.js');
|
|
686
|
-
await authStatusCommand();
|
|
687
|
-
});
|
|
688
|
-
// API key management
|
|
689
|
-
const apikeyCmd = program
|
|
690
|
-
.command('apikey')
|
|
691
|
-
.description('Manage platform API keys');
|
|
692
|
-
apikeyCmd
|
|
693
|
-
.command('create <name>')
|
|
694
|
-
.description('Create a new API key')
|
|
695
|
-
.action(async (name) => {
|
|
696
|
-
const { apiKeyCreateCommand } = await import('./commands/apikey.js');
|
|
697
|
-
await apiKeyCreateCommand(name);
|
|
698
|
-
});
|
|
699
|
-
apikeyCmd
|
|
700
|
-
.command('list')
|
|
701
|
-
.description('List all active API keys')
|
|
702
|
-
.action(async () => {
|
|
703
|
-
const { apiKeyListCommand } = await import('./commands/apikey.js');
|
|
704
|
-
await apiKeyListCommand();
|
|
705
|
-
});
|
|
706
|
-
apikeyCmd
|
|
707
|
-
.command('revoke <id>')
|
|
708
|
-
.description('Revoke an API key by ID or prefix')
|
|
709
|
-
.action(async (id) => {
|
|
710
|
-
const { apiKeyRevokeCommand } = await import('./commands/apikey.js');
|
|
711
|
-
await apiKeyRevokeCommand(id);
|
|
712
|
-
});
|
|
713
|
-
// AI credential management
|
|
714
|
-
const aiCmd = program
|
|
715
|
-
.command('ai')
|
|
716
|
-
.description('Manage AI provider credentials');
|
|
717
|
-
aiCmd
|
|
718
|
-
.command('add <provider>')
|
|
719
|
-
.description('Add an AI provider credential (anthropic or openai)')
|
|
720
|
-
.option('-k, --key <key>', 'API key (omit to enter interactively)')
|
|
721
|
-
.option('-l, --label <label>', 'Display name for the credential')
|
|
722
|
-
.option('-m, --model <model>', 'Default model to use')
|
|
723
|
-
.option('-d, --default', 'Set as default credential')
|
|
724
|
-
.action(async (provider, options) => {
|
|
725
|
-
const { aiAddCommand } = await import('./commands/ai-credentials.js');
|
|
726
|
-
await aiAddCommand(provider, options);
|
|
727
|
-
});
|
|
728
|
-
aiCmd
|
|
729
|
-
.command('list')
|
|
730
|
-
.description('List all AI credentials')
|
|
731
|
-
.action(async () => {
|
|
732
|
-
const { aiListCommand } = await import('./commands/ai-credentials.js');
|
|
733
|
-
await aiListCommand();
|
|
734
|
-
});
|
|
735
|
-
aiCmd
|
|
736
|
-
.command('revoke <id>')
|
|
737
|
-
.description('Revoke an AI credential')
|
|
738
|
-
.option('-f, --force', 'Skip confirmation prompt')
|
|
739
|
-
.action(async (id, options) => {
|
|
740
|
-
const { aiRevokeCommand } = await import('./commands/ai-credentials.js');
|
|
741
|
-
await aiRevokeCommand(id, options);
|
|
742
|
-
});
|
|
743
|
-
aiCmd
|
|
744
|
-
.command('test <id>')
|
|
745
|
-
.description('Test an AI credential')
|
|
746
|
-
.action(async (id) => {
|
|
747
|
-
const { aiTestCommand } = await import('./commands/ai-credentials.js');
|
|
748
|
-
await aiTestCommand(id);
|
|
749
|
-
});
|
|
750
|
-
// Account (includes usage)
|
|
751
|
-
program
|
|
752
|
-
.command('account')
|
|
753
|
-
.description('Show account details and plan usage')
|
|
754
|
-
.action(async () => {
|
|
755
|
-
const { accountCommand } = await import('./commands/account.js');
|
|
756
|
-
await accountCommand();
|
|
757
|
-
});
|
|
758
|
-
// Organization management
|
|
759
|
-
const orgCmd = program
|
|
760
|
-
.command('org')
|
|
761
|
-
.description('Manage organizations');
|
|
762
|
-
orgCmd
|
|
763
|
-
.command('list')
|
|
764
|
-
.description('List your organizations')
|
|
765
|
-
.action(async () => {
|
|
766
|
-
const { orgListCommand } = await import('./commands/org.js');
|
|
767
|
-
await orgListCommand();
|
|
768
|
-
});
|
|
769
|
-
orgCmd
|
|
770
|
-
.command('create <name>')
|
|
771
|
-
.description('Create a new organization')
|
|
772
|
-
.action(async (name) => {
|
|
773
|
-
const { orgCreateCommand } = await import('./commands/org.js');
|
|
774
|
-
await orgCreateCommand(name);
|
|
775
|
-
});
|
|
776
|
-
orgCmd
|
|
777
|
-
.command('members <org>')
|
|
778
|
-
.description('List members of an organization (accepts slug, name, or ID)')
|
|
779
|
-
.action(async (org) => {
|
|
780
|
-
const { orgMembersCommand } = await import('./commands/org.js');
|
|
781
|
-
await orgMembersCommand(org);
|
|
782
|
-
});
|
|
783
|
-
orgCmd
|
|
784
|
-
.command('invite <org> <email>')
|
|
785
|
-
.description('Invite a member (org accepts slug, name, or ID)')
|
|
786
|
-
.option('-r, --role <role>', 'Role: editor or viewer (default: editor)')
|
|
787
|
-
.action(async (org, email, options) => {
|
|
788
|
-
const { orgInviteCommand } = await import('./commands/org.js');
|
|
789
|
-
await orgInviteCommand(org, email, options);
|
|
790
|
-
});
|
|
791
|
-
orgCmd
|
|
792
|
-
.command('remove <org> <user>')
|
|
793
|
-
.description('Remove a member (org accepts slug; user accepts email or ID)')
|
|
794
|
-
.action(async (org, user) => {
|
|
795
|
-
const { orgRemoveCommand } = await import('./commands/org.js');
|
|
796
|
-
await orgRemoveCommand(org, user);
|
|
797
|
-
});
|
|
798
|
-
// Deploy commands (push + deploy to cloud)
|
|
799
|
-
program
|
|
800
|
-
.command('deploy <file>')
|
|
801
|
-
.description('Deploy a workflow to the platform')
|
|
802
|
-
.option('-n, --name <name>', 'Workflow name (defaults to filename)')
|
|
803
|
-
.action(async (file, options) => {
|
|
804
|
-
const { deployCommand } = await import('./commands/deploy.js');
|
|
805
|
-
await deployCommand(file, options);
|
|
806
|
-
});
|
|
807
|
-
program
|
|
808
|
-
.command('undeploy <slug>')
|
|
809
|
-
.description('Remove a deployed workflow')
|
|
810
|
-
.action(async (slug) => {
|
|
811
|
-
const { undeployCommand } = await import('./commands/deploy.js');
|
|
812
|
-
await undeployCommand(slug);
|
|
813
|
-
});
|
|
814
|
-
program
|
|
815
|
-
.command('cloud-status')
|
|
816
|
-
.description('Show cloud deployments and usage')
|
|
817
|
-
.action(async () => {
|
|
818
|
-
const { cloudStatusCommand } = await import('./commands/deploy.js');
|
|
819
|
-
await cloudStatusCommand();
|
|
820
|
-
});
|
|
821
|
-
// Connect command — connect this device to the platform
|
|
822
|
-
program
|
|
823
|
-
.command('connect [dir]')
|
|
824
|
-
.description('Connect this device to the Flow Weaver platform')
|
|
825
|
-
.action(async (dir) => {
|
|
826
|
-
const { handleConnect } = await import('./commands/connect.js');
|
|
827
|
-
await handleConnect(path.resolve(dir ?? '.'));
|
|
828
|
-
});
|
|
829
|
-
// Fallback weaver shim if pack not installed
|
|
830
|
-
if (!program.commands.some(c => c.name() === 'weaver')) {
|
|
831
|
-
program
|
|
832
|
-
.command('weaver')
|
|
833
|
-
.description('AI assistant for Flow Weaver workflows')
|
|
834
|
-
.allowUnknownOption(true)
|
|
835
|
-
.action(async () => {
|
|
836
|
-
console.log('');
|
|
837
|
-
console.log(' Weaver is not installed.');
|
|
838
|
-
console.log('');
|
|
839
|
-
console.log(' Install it:');
|
|
840
|
-
console.log(' npm install @synergenius/flow-weaver-pack-weaver');
|
|
841
|
-
console.log('');
|
|
842
|
-
console.log(' Or during project init:');
|
|
843
|
-
console.log(' flow-weaver init (select "Yes" when asked about Weaver)');
|
|
844
|
-
console.log('');
|
|
845
|
-
});
|
|
846
|
-
}
|
|
847
|
-
program.parse(process.argv);
|
|
848
|
-
})();
|
|
849
|
-
}
|
|
850
|
-
//# sourceMappingURL=index.js.map
|