@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,797 +0,0 @@
|
|
|
1
|
-
/* eslint-disable no-console */
|
|
2
|
-
/**
|
|
3
|
-
* Init command — scaffolds a new flow-weaver project interactively.
|
|
4
|
-
* Supports persona-aware onboarding for nocode, low-code, vibe-coder, and expert users.
|
|
5
|
-
*/
|
|
6
|
-
import * as fs from 'fs';
|
|
7
|
-
import * as path from 'path';
|
|
8
|
-
import { execSync, spawn } from 'child_process';
|
|
9
|
-
import input from '@inquirer/input';
|
|
10
|
-
import select, { Separator } from '@inquirer/select';
|
|
11
|
-
import confirm from '@inquirer/confirm';
|
|
12
|
-
import { ExitPromptError } from '@inquirer/core';
|
|
13
|
-
import { getWorkflowTemplate, getAllWorkflowTemplates } from '../templates/index.js';
|
|
14
|
-
import { loadPackTemplates } from '../templates/pack-loader.js';
|
|
15
|
-
import { logger } from '../utils/logger.js';
|
|
16
|
-
import { compileCommand } from './compile.js';
|
|
17
|
-
import { runMcpSetupFromInit, CLI_TOOL_BINARY, detectCliTools } from './mcp-setup.js';
|
|
18
|
-
import { PERSONA_CHOICES, PERSONA_CONFIRMATIONS, USE_CASE_CHOICES, selectTemplateForPersona, getTemplateSubChoices, printNextSteps, generateReadme, generateExampleWorkflow, generateAgentPrompt, generateEditorPrompt, generateSetupPromptFile, printCopyablePrompt, AGENT_LAUNCH_DEFAULTS, } from './init-personas.js';
|
|
19
|
-
// ── Utilities ────────────────────────────────────────────────────────────────
|
|
20
|
-
const PROJECT_NAME_RE = /^[a-zA-Z0-9][-a-zA-Z0-9_.]*$/;
|
|
21
|
-
export function validateProjectName(name) {
|
|
22
|
-
if (!name)
|
|
23
|
-
return 'Project name cannot be empty';
|
|
24
|
-
if (name.length > 214)
|
|
25
|
-
return 'Project name must be at most 214 characters';
|
|
26
|
-
if (!PROJECT_NAME_RE.test(name)) {
|
|
27
|
-
return 'Project name must start with a letter or digit and contain only letters, digits, hyphens, dots, and underscores';
|
|
28
|
-
}
|
|
29
|
-
return true;
|
|
30
|
-
}
|
|
31
|
-
export function toWorkflowName(projectName) {
|
|
32
|
-
const camel = projectName
|
|
33
|
-
.replace(/[-_.]+(.)?/g, (_, c) => (c ? c.toUpperCase() : ''))
|
|
34
|
-
.replace(/^[^a-zA-Z_$]+/, '')
|
|
35
|
-
.replace(/^./, (c) => c.toLowerCase());
|
|
36
|
-
return (camel || 'myProject') + 'Workflow';
|
|
37
|
-
}
|
|
38
|
-
export function isNonInteractive() {
|
|
39
|
-
return !process.stdin.isTTY;
|
|
40
|
-
}
|
|
41
|
-
// Dynamic: includes core templates plus any registered by extensions/packs
|
|
42
|
-
function getValidTemplates() {
|
|
43
|
-
return getAllWorkflowTemplates().map((t) => t.id);
|
|
44
|
-
}
|
|
45
|
-
const VALID_PERSONAS = ['nocode', 'vibecoder', 'lowcode', 'expert'];
|
|
46
|
-
// Dynamic: includes core use cases plus any registered by extensions/packs
|
|
47
|
-
function getValidUseCases() {
|
|
48
|
-
return USE_CASE_CHOICES.map((c) => c.value);
|
|
49
|
-
}
|
|
50
|
-
// ── Config resolution (prompts) ──────────────────────────────────────────────
|
|
51
|
-
export async function resolveInitConfig(dirArg, options) {
|
|
52
|
-
const skipPrompts = options.yes || isNonInteractive();
|
|
53
|
-
const force = options.force ?? false;
|
|
54
|
-
const hasExplicitTemplate = !!options.template;
|
|
55
|
-
// 1. Project name (unchanged)
|
|
56
|
-
let projectName;
|
|
57
|
-
if (options.name) {
|
|
58
|
-
projectName = options.name;
|
|
59
|
-
}
|
|
60
|
-
else if (dirArg) {
|
|
61
|
-
projectName = path.basename(dirArg);
|
|
62
|
-
}
|
|
63
|
-
else if (skipPrompts) {
|
|
64
|
-
projectName = 'my-project';
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
projectName = await input({
|
|
68
|
-
message: 'Project name:',
|
|
69
|
-
default: 'my-project',
|
|
70
|
-
validate: (v) => validateProjectName(v),
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
const valid = validateProjectName(projectName);
|
|
74
|
-
if (valid !== true) {
|
|
75
|
-
throw new Error(valid);
|
|
76
|
-
}
|
|
77
|
-
const targetDir = path.resolve(dirArg ?? projectName);
|
|
78
|
-
// 2. Persona
|
|
79
|
-
let persona;
|
|
80
|
-
if (options.preset) {
|
|
81
|
-
if (!VALID_PERSONAS.includes(options.preset)) {
|
|
82
|
-
throw new Error(`Unknown preset "${options.preset}". Available: ${VALID_PERSONAS.join(', ')}`);
|
|
83
|
-
}
|
|
84
|
-
persona = options.preset;
|
|
85
|
-
}
|
|
86
|
-
else if (skipPrompts || hasExplicitTemplate) {
|
|
87
|
-
persona = 'expert';
|
|
88
|
-
}
|
|
89
|
-
else {
|
|
90
|
-
persona = await select({
|
|
91
|
-
message: 'How do you plan to build?',
|
|
92
|
-
choices: PERSONA_CHOICES,
|
|
93
|
-
default: 'vibecoder',
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
// Print persona confirmation (interactive only)
|
|
97
|
-
if (!skipPrompts) {
|
|
98
|
-
const confirmation = PERSONA_CONFIRMATIONS[persona];
|
|
99
|
-
if (confirmation) {
|
|
100
|
-
logger.log(` ${logger.dim(confirmation)}`);
|
|
101
|
-
logger.newline();
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
// 3. Template selection (persona-dependent)
|
|
105
|
-
let template;
|
|
106
|
-
let useCase;
|
|
107
|
-
if (hasExplicitTemplate) {
|
|
108
|
-
// Direct --template flag bypasses everything
|
|
109
|
-
template = options.template;
|
|
110
|
-
if (!getValidTemplates().includes(template)) {
|
|
111
|
-
throw new Error(`Unknown template "${template}". Available: ${getValidTemplates().join(', ')}`);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
else if (persona === 'expert') {
|
|
115
|
-
// Expert: show today's flat template list
|
|
116
|
-
if (skipPrompts) {
|
|
117
|
-
template = 'sequential';
|
|
118
|
-
}
|
|
119
|
-
else {
|
|
120
|
-
template = await select({
|
|
121
|
-
message: 'Workflow template:',
|
|
122
|
-
choices: [
|
|
123
|
-
new Separator('── Data Processing ──'),
|
|
124
|
-
{ value: 'sequential', name: 'sequential', description: 'Linear pipeline' },
|
|
125
|
-
{ value: 'foreach', name: 'foreach', description: 'Batch iteration' },
|
|
126
|
-
{ value: 'aggregator', name: 'aggregator', description: 'Collect and aggregate results' },
|
|
127
|
-
new Separator('── Automation ──'),
|
|
128
|
-
{ value: 'conditional', name: 'conditional', description: 'Route by condition' },
|
|
129
|
-
new Separator('── AI ──'),
|
|
130
|
-
{ value: 'ai-agent', name: 'ai-agent', description: 'LLM agent with tool calling' },
|
|
131
|
-
{ value: 'ai-react', name: 'ai-react', description: 'ReAct pattern' },
|
|
132
|
-
{ value: 'ai-rag', name: 'ai-rag', description: 'Retrieval-Augmented Generation' },
|
|
133
|
-
{ value: 'ai-chat', name: 'ai-chat', description: 'Conversational AI' },
|
|
134
|
-
new Separator('── Integration ──'),
|
|
135
|
-
{ value: 'webhook', name: 'webhook', description: 'HTTP webhook handler' },
|
|
136
|
-
new Separator('── Utility ──'),
|
|
137
|
-
{ value: 'error-handler', name: 'error-handler', description: 'Error handling and recovery' },
|
|
138
|
-
],
|
|
139
|
-
default: 'sequential',
|
|
140
|
-
});
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
else {
|
|
144
|
-
// Non-expert: use-case categories
|
|
145
|
-
if (options.useCase) {
|
|
146
|
-
if (!getValidUseCases().includes(options.useCase)) {
|
|
147
|
-
throw new Error(`Unknown use case "${options.useCase}". Available: ${getValidUseCases().join(', ')}`);
|
|
148
|
-
}
|
|
149
|
-
useCase = options.useCase;
|
|
150
|
-
}
|
|
151
|
-
else if (skipPrompts) {
|
|
152
|
-
useCase = 'data';
|
|
153
|
-
}
|
|
154
|
-
else {
|
|
155
|
-
useCase = await select({
|
|
156
|
-
message: 'What are you building?',
|
|
157
|
-
choices: USE_CASE_CHOICES,
|
|
158
|
-
default: 'data',
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
const selection = selectTemplateForPersona(persona, useCase);
|
|
162
|
-
if (selection.choices && !skipPrompts) {
|
|
163
|
-
// Lowcode with multiple choices: show sub-select
|
|
164
|
-
template = await select({
|
|
165
|
-
message: 'Pick a template:',
|
|
166
|
-
choices: getTemplateSubChoices(selection.choices),
|
|
167
|
-
default: selection.template,
|
|
168
|
-
});
|
|
169
|
-
}
|
|
170
|
-
else {
|
|
171
|
-
template = selection.template;
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
// 3b. "Something else" follow-up: ask what they're building
|
|
175
|
-
let useCaseDescription;
|
|
176
|
-
if (useCase === 'minimal' && !skipPrompts && persona !== 'expert') {
|
|
177
|
-
useCaseDescription = await input({
|
|
178
|
-
message: 'Briefly describe what you want to build:',
|
|
179
|
-
});
|
|
180
|
-
if (useCaseDescription) {
|
|
181
|
-
useCaseDescription = useCaseDescription.trim();
|
|
182
|
-
}
|
|
183
|
-
if (!useCaseDescription)
|
|
184
|
-
useCaseDescription = undefined;
|
|
185
|
-
}
|
|
186
|
-
// 3c. Weaver AI assistant opt-in
|
|
187
|
-
let installWeaver;
|
|
188
|
-
if (options.withWeaver) {
|
|
189
|
-
installWeaver = true;
|
|
190
|
-
}
|
|
191
|
-
else if (options.weaver === false) {
|
|
192
|
-
installWeaver = false;
|
|
193
|
-
}
|
|
194
|
-
else if (skipPrompts) {
|
|
195
|
-
installWeaver = true;
|
|
196
|
-
}
|
|
197
|
-
else {
|
|
198
|
-
installWeaver = await confirm({
|
|
199
|
-
message: 'Install Weaver AI assistant? (Recommended)\n Weaver helps you create, modify, and manage workflows with AI.',
|
|
200
|
-
default: true,
|
|
201
|
-
});
|
|
202
|
-
}
|
|
203
|
-
// 4. MCP setup (nocode, vibecoder, lowcode: prompt; expert: skip unless --mcp)
|
|
204
|
-
let mcp;
|
|
205
|
-
if (options.mcp !== undefined) {
|
|
206
|
-
mcp = options.mcp;
|
|
207
|
-
}
|
|
208
|
-
else if (skipPrompts) {
|
|
209
|
-
mcp = false;
|
|
210
|
-
}
|
|
211
|
-
else if (persona === 'nocode' || persona === 'vibecoder' || persona === 'lowcode') {
|
|
212
|
-
mcp = await confirm({
|
|
213
|
-
message: 'Set up AI editor integration? (Claude Code, Cursor, VS Code, etc.)',
|
|
214
|
-
default: true,
|
|
215
|
-
});
|
|
216
|
-
}
|
|
217
|
-
else {
|
|
218
|
-
mcp = false;
|
|
219
|
-
}
|
|
220
|
-
// 5. Install deps (expert: prompt, others: auto-yes)
|
|
221
|
-
let installDeps;
|
|
222
|
-
if (options.install !== undefined) {
|
|
223
|
-
installDeps = options.install;
|
|
224
|
-
}
|
|
225
|
-
else if (skipPrompts || persona !== 'expert') {
|
|
226
|
-
installDeps = true;
|
|
227
|
-
}
|
|
228
|
-
else {
|
|
229
|
-
installDeps = await confirm({ message: 'Install dependencies (npm install)?', default: true });
|
|
230
|
-
}
|
|
231
|
-
// 6. Git init (expert: prompt, others: auto-yes)
|
|
232
|
-
let gitInit;
|
|
233
|
-
if (options.git !== undefined) {
|
|
234
|
-
gitInit = options.git;
|
|
235
|
-
}
|
|
236
|
-
else if (skipPrompts || persona !== 'expert') {
|
|
237
|
-
gitInit = true;
|
|
238
|
-
}
|
|
239
|
-
else {
|
|
240
|
-
gitInit = await confirm({ message: 'Initialize a git repository?', default: true });
|
|
241
|
-
}
|
|
242
|
-
// 7. Module format (expert only)
|
|
243
|
-
let format;
|
|
244
|
-
if (options.format) {
|
|
245
|
-
format = options.format;
|
|
246
|
-
if (format !== 'esm' && format !== 'cjs') {
|
|
247
|
-
throw new Error(`Invalid format "${format}". Use "esm" or "cjs".`);
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
else if (skipPrompts || persona !== 'expert') {
|
|
251
|
-
format = 'esm';
|
|
252
|
-
}
|
|
253
|
-
else {
|
|
254
|
-
format = await select({
|
|
255
|
-
message: 'Module format:',
|
|
256
|
-
choices: [
|
|
257
|
-
{ value: 'esm', name: 'ESM (Recommended)', description: 'ECMAScript modules (import/export)' },
|
|
258
|
-
{ value: 'cjs', name: 'CommonJS', description: 'CommonJS modules (require/module.exports)' },
|
|
259
|
-
],
|
|
260
|
-
default: 'esm',
|
|
261
|
-
});
|
|
262
|
-
}
|
|
263
|
-
return {
|
|
264
|
-
projectName,
|
|
265
|
-
targetDir,
|
|
266
|
-
template,
|
|
267
|
-
format,
|
|
268
|
-
install: installDeps,
|
|
269
|
-
git: gitInit,
|
|
270
|
-
force,
|
|
271
|
-
persona,
|
|
272
|
-
useCase,
|
|
273
|
-
useCaseDescription,
|
|
274
|
-
mcp,
|
|
275
|
-
installWeaver,
|
|
276
|
-
};
|
|
277
|
-
}
|
|
278
|
-
// ── Pure file generation ─────────────────────────────────────────────────────
|
|
279
|
-
export function generateProjectFiles(projectName, template, format = 'esm', persona = 'expert', installWeaver = false) {
|
|
280
|
-
const workflowName = toWorkflowName(projectName);
|
|
281
|
-
const workflowFile = `${projectName}-workflow.ts`;
|
|
282
|
-
const tmpl = getWorkflowTemplate(template);
|
|
283
|
-
if (!tmpl) {
|
|
284
|
-
throw new Error(`Unknown template "${template}"`);
|
|
285
|
-
}
|
|
286
|
-
let workflowCode = tmpl.generate({ workflowName });
|
|
287
|
-
// Add onboarding comment when weaver is installed
|
|
288
|
-
if (installWeaver) {
|
|
289
|
-
workflowCode = `// This is a Flow Weaver workflow. The JSDoc annotations define the DAG.\n// Don't worry about the syntax — use 'weaver assistant' to modify it.\n// Run: npx flow-weaver weaver assistant\n\n${workflowCode}`;
|
|
290
|
-
}
|
|
291
|
-
// Package.json
|
|
292
|
-
const scripts = {
|
|
293
|
-
dev: `npx fw compile src/${workflowFile} -o src && npx tsx src/main.ts`,
|
|
294
|
-
start: 'npx tsx src/main.ts',
|
|
295
|
-
compile: `npx fw compile src/${workflowFile} -o src`,
|
|
296
|
-
validate: `npx fw validate src/${workflowFile}`,
|
|
297
|
-
doctor: 'npx fw doctor',
|
|
298
|
-
};
|
|
299
|
-
// Add diagram script for non-expert personas
|
|
300
|
-
if (persona !== 'expert') {
|
|
301
|
-
scripts.diagram = `npx fw diagram src/${workflowFile} --format ascii-compact`;
|
|
302
|
-
}
|
|
303
|
-
const packageJsonContent = {
|
|
304
|
-
name: projectName,
|
|
305
|
-
version: '1.0.0',
|
|
306
|
-
scripts,
|
|
307
|
-
dependencies: {
|
|
308
|
-
'@synergenius/flow-weaver': 'latest',
|
|
309
|
-
...(installWeaver ? { '@synergenius/flow-weaver-pack-weaver': 'latest' } : {}),
|
|
310
|
-
},
|
|
311
|
-
devDependencies: {
|
|
312
|
-
typescript: '^5.3.0',
|
|
313
|
-
'@types/node': '^20.11.0',
|
|
314
|
-
tsx: '^4.21.0',
|
|
315
|
-
},
|
|
316
|
-
};
|
|
317
|
-
if (format === 'esm') {
|
|
318
|
-
packageJsonContent.type = 'module';
|
|
319
|
-
}
|
|
320
|
-
const packageJson = JSON.stringify(packageJsonContent, null, 2);
|
|
321
|
-
// tsconfig.json
|
|
322
|
-
const tsconfigContent = {
|
|
323
|
-
compilerOptions: {
|
|
324
|
-
target: 'ES2020',
|
|
325
|
-
module: format === 'esm' ? 'ES2020' : 'CommonJS',
|
|
326
|
-
moduleResolution: format === 'esm' ? 'bundler' : 'node',
|
|
327
|
-
strict: true,
|
|
328
|
-
esModuleInterop: true,
|
|
329
|
-
skipLibCheck: true,
|
|
330
|
-
outDir: 'dist',
|
|
331
|
-
rootDir: 'src',
|
|
332
|
-
types: ['node'],
|
|
333
|
-
},
|
|
334
|
-
include: ['src'],
|
|
335
|
-
};
|
|
336
|
-
const tsconfigJson = JSON.stringify(tsconfigContent, null, 2);
|
|
337
|
-
// main.ts
|
|
338
|
-
const workflowJsFile = workflowFile.replace(/\.ts$/, '.js');
|
|
339
|
-
let mainTs;
|
|
340
|
-
if (format === 'esm') {
|
|
341
|
-
mainTs = [
|
|
342
|
-
'/**',
|
|
343
|
-
` * ${projectName} — workflow runner`,
|
|
344
|
-
' *',
|
|
345
|
-
' * Usage:',
|
|
346
|
-
' * npm run dev compile workflow + run this file',
|
|
347
|
-
' * npm start run without recompiling',
|
|
348
|
-
' * npm run compile compile only',
|
|
349
|
-
' */',
|
|
350
|
-
'',
|
|
351
|
-
`import { ${workflowName} } from './${workflowJsFile}';`,
|
|
352
|
-
'',
|
|
353
|
-
'async function main() {',
|
|
354
|
-
` const result = await ${workflowName}(true, { data: { message: 'hello world' } });`,
|
|
355
|
-
' console.log(JSON.stringify(result, null, 2));',
|
|
356
|
-
'}',
|
|
357
|
-
'',
|
|
358
|
-
'main().catch((e) => {',
|
|
359
|
-
" if (e instanceof Error && e.message.startsWith('Compile with:')) {",
|
|
360
|
-
" console.error('Workflow not compiled yet. Run: npm run dev');",
|
|
361
|
-
' process.exit(1);',
|
|
362
|
-
' }',
|
|
363
|
-
' console.error(e);',
|
|
364
|
-
' process.exit(1);',
|
|
365
|
-
'});',
|
|
366
|
-
'',
|
|
367
|
-
].join('\n');
|
|
368
|
-
}
|
|
369
|
-
else {
|
|
370
|
-
mainTs = [
|
|
371
|
-
'/**',
|
|
372
|
-
` * ${projectName} — workflow runner`,
|
|
373
|
-
' *',
|
|
374
|
-
' * Usage:',
|
|
375
|
-
' * npm run dev compile workflow + run this file',
|
|
376
|
-
' * npm start run without recompiling',
|
|
377
|
-
' * npm run compile compile only',
|
|
378
|
-
' */',
|
|
379
|
-
'',
|
|
380
|
-
`const { ${workflowName} } = require('./${workflowJsFile}');`,
|
|
381
|
-
'',
|
|
382
|
-
'async function main() {',
|
|
383
|
-
` const result = await ${workflowName}(true, { data: { message: 'hello world' } });`,
|
|
384
|
-
' console.log(JSON.stringify(result, null, 2));',
|
|
385
|
-
'}',
|
|
386
|
-
'',
|
|
387
|
-
'main().catch((e) => {',
|
|
388
|
-
" if (e instanceof Error && e.message.startsWith('Compile with:')) {",
|
|
389
|
-
" console.error('Workflow not compiled yet. Run: npm run dev');",
|
|
390
|
-
' process.exit(1);',
|
|
391
|
-
' }',
|
|
392
|
-
' console.error(e);',
|
|
393
|
-
' process.exit(1);',
|
|
394
|
-
'});',
|
|
395
|
-
'',
|
|
396
|
-
].join('\n');
|
|
397
|
-
}
|
|
398
|
-
const gitignore = `node_modules/\ndist/\n.tsbuildinfo\n`;
|
|
399
|
-
const configYaml = `defaultFileType: ts\n`;
|
|
400
|
-
const files = {
|
|
401
|
-
'package.json': packageJson,
|
|
402
|
-
'tsconfig.json': tsconfigJson,
|
|
403
|
-
[`src/${workflowFile}`]: workflowCode,
|
|
404
|
-
'src/main.ts': mainTs,
|
|
405
|
-
'.gitignore': gitignore,
|
|
406
|
-
'.flowweaver/config.yaml': configYaml,
|
|
407
|
-
};
|
|
408
|
-
// Add README for all personas
|
|
409
|
-
files['README.md'] = generateReadme(projectName, persona, template);
|
|
410
|
-
// Add example workflow for lowcode persona
|
|
411
|
-
if (persona === 'lowcode') {
|
|
412
|
-
files['examples/example-workflow.ts'] = generateExampleWorkflow(projectName);
|
|
413
|
-
}
|
|
414
|
-
// Add Weaver config + getting started guide if opted in
|
|
415
|
-
if (installWeaver) {
|
|
416
|
-
files['.weaver.json'] = JSON.stringify({ provider: 'auto', approval: 'auto' }, null, 2) + '\n';
|
|
417
|
-
files['GETTING_STARTED.md'] = generateGettingStarted(projectName, workflowFile);
|
|
418
|
-
}
|
|
419
|
-
return files;
|
|
420
|
-
}
|
|
421
|
-
// ── Filesystem writer ────────────────────────────────────────────────────────
|
|
422
|
-
export function scaffoldProject(targetDir, files, options) {
|
|
423
|
-
const filesCreated = [];
|
|
424
|
-
const filesSkipped = [];
|
|
425
|
-
for (const [relativePath, content] of Object.entries(files)) {
|
|
426
|
-
const absPath = path.join(targetDir, relativePath);
|
|
427
|
-
const dir = path.dirname(absPath);
|
|
428
|
-
fs.mkdirSync(dir, { recursive: true });
|
|
429
|
-
if (fs.existsSync(absPath) && !options.force) {
|
|
430
|
-
filesSkipped.push(relativePath);
|
|
431
|
-
continue;
|
|
432
|
-
}
|
|
433
|
-
fs.writeFileSync(absPath, content, 'utf8');
|
|
434
|
-
filesCreated.push(relativePath);
|
|
435
|
-
}
|
|
436
|
-
return { filesCreated, filesSkipped };
|
|
437
|
-
}
|
|
438
|
-
// ── Post-scaffold actions ────────────────────────────────────────────────────
|
|
439
|
-
export function runNpmInstall(targetDir) {
|
|
440
|
-
try {
|
|
441
|
-
execSync('npm install', { cwd: targetDir, stdio: 'pipe', timeout: 120_000 });
|
|
442
|
-
return { success: true };
|
|
443
|
-
}
|
|
444
|
-
catch (err) {
|
|
445
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
446
|
-
return { success: false, error: message };
|
|
447
|
-
}
|
|
448
|
-
}
|
|
449
|
-
export function runGitInit(targetDir) {
|
|
450
|
-
try {
|
|
451
|
-
execSync('git init', { cwd: targetDir, stdio: 'pipe', timeout: 10_000 });
|
|
452
|
-
return { success: true };
|
|
453
|
-
}
|
|
454
|
-
catch (err) {
|
|
455
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
456
|
-
return { success: false, error: message };
|
|
457
|
-
}
|
|
458
|
-
}
|
|
459
|
-
/**
|
|
460
|
-
* After init + MCP setup, offer to launch a CLI agent or generate a prompt for GUI editors.
|
|
461
|
-
* Returns true if a CLI agent was spawned (init should exit and let the agent take over).
|
|
462
|
-
*/
|
|
463
|
-
export async function handleAgentHandoff(opts) {
|
|
464
|
-
const { projectName, persona, template, targetDir, cliTools, guiTools, filesCreated, useCaseDescription } = opts;
|
|
465
|
-
// Step 1: If CLI agent available, offer to launch it
|
|
466
|
-
if (cliTools.length > 0) {
|
|
467
|
-
const toolId = cliTools[0]; // Prefer first (claude > codex)
|
|
468
|
-
const binary = CLI_TOOL_BINARY[toolId];
|
|
469
|
-
const displayName = toolId === 'claude' ? 'Claude Code' : 'Codex';
|
|
470
|
-
const launchDefault = AGENT_LAUNCH_DEFAULTS[persona];
|
|
471
|
-
const shouldLaunch = await confirm({
|
|
472
|
-
message: `Launch ${displayName} to set up your project?`,
|
|
473
|
-
default: launchDefault,
|
|
474
|
-
});
|
|
475
|
-
if (shouldLaunch && binary) {
|
|
476
|
-
const prompt = generateAgentPrompt(projectName, persona, template, useCaseDescription);
|
|
477
|
-
logger.newline();
|
|
478
|
-
logger.log(` ${logger.dim(`Starting ${displayName}...`)}`);
|
|
479
|
-
logger.newline();
|
|
480
|
-
const child = spawn(binary, [prompt], {
|
|
481
|
-
cwd: targetDir,
|
|
482
|
-
stdio: 'inherit',
|
|
483
|
-
env: { ...process.env },
|
|
484
|
-
});
|
|
485
|
-
child.on('error', (err) => {
|
|
486
|
-
logger.error(`Failed to start ${displayName}: ${err.message}`);
|
|
487
|
-
});
|
|
488
|
-
return true;
|
|
489
|
-
}
|
|
490
|
-
}
|
|
491
|
-
// Step 2: If GUI editors configured (or user declined CLI), offer prompt options
|
|
492
|
-
if (guiTools.length > 0 || cliTools.length > 0) {
|
|
493
|
-
const promptAction = await select({
|
|
494
|
-
message: 'Generate a setup prompt for your editor?',
|
|
495
|
-
choices: [
|
|
496
|
-
{ value: 'terminal', name: 'Print to terminal', description: 'Copy and paste into your editor' },
|
|
497
|
-
{ value: 'file', name: 'Save as file', description: 'Write PROJECT_SETUP.md to your project' },
|
|
498
|
-
{ value: 'both', name: 'Both' },
|
|
499
|
-
{ value: 'skip', name: 'Skip' },
|
|
500
|
-
],
|
|
501
|
-
default: 'terminal',
|
|
502
|
-
});
|
|
503
|
-
if (promptAction === 'skip')
|
|
504
|
-
return false;
|
|
505
|
-
const editorPrompt = generateEditorPrompt(projectName, persona, template, useCaseDescription);
|
|
506
|
-
if (promptAction === 'terminal' || promptAction === 'both') {
|
|
507
|
-
printCopyablePrompt(editorPrompt);
|
|
508
|
-
}
|
|
509
|
-
if (promptAction === 'file' || promptAction === 'both') {
|
|
510
|
-
const setupContent = generateSetupPromptFile(projectName, persona, template, filesCreated, useCaseDescription);
|
|
511
|
-
const setupPath = path.join(targetDir, 'PROJECT_SETUP.md');
|
|
512
|
-
fs.writeFileSync(setupPath, setupContent, 'utf8');
|
|
513
|
-
// Add to .gitignore
|
|
514
|
-
const gitignorePath = path.join(targetDir, '.gitignore');
|
|
515
|
-
if (fs.existsSync(gitignorePath)) {
|
|
516
|
-
const existing = fs.readFileSync(gitignorePath, 'utf8');
|
|
517
|
-
if (!existing.includes('PROJECT_SETUP.md')) {
|
|
518
|
-
fs.appendFileSync(gitignorePath, 'PROJECT_SETUP.md\n', 'utf8');
|
|
519
|
-
}
|
|
520
|
-
}
|
|
521
|
-
logger.newline();
|
|
522
|
-
logger.success(`Wrote ${logger.highlight('PROJECT_SETUP.md')} ${logger.dim('(delete after first setup)')}`);
|
|
523
|
-
}
|
|
524
|
-
}
|
|
525
|
-
return false;
|
|
526
|
-
}
|
|
527
|
-
// ── CLI entrypoint ───────────────────────────────────────────────────────────
|
|
528
|
-
export async function initCommand(dirArg, options) {
|
|
529
|
-
try {
|
|
530
|
-
// Load templates contributed by installed marketplace packs
|
|
531
|
-
await loadPackTemplates(process.cwd());
|
|
532
|
-
const config = await resolveInitConfig(dirArg, options);
|
|
533
|
-
// Validate target directory
|
|
534
|
-
const pkgPath = path.join(config.targetDir, 'package.json');
|
|
535
|
-
if (fs.existsSync(pkgPath) && !config.force) {
|
|
536
|
-
throw new Error(`${config.targetDir} already contains a package.json. Use --force to overwrite.`);
|
|
537
|
-
}
|
|
538
|
-
// Generate and scaffold
|
|
539
|
-
const files = generateProjectFiles(config.projectName, config.template, config.format, config.persona, config.installWeaver);
|
|
540
|
-
const { filesCreated, filesSkipped } = scaffoldProject(config.targetDir, files, {
|
|
541
|
-
force: config.force,
|
|
542
|
-
});
|
|
543
|
-
// Post-scaffold actions
|
|
544
|
-
let installResult;
|
|
545
|
-
if (config.install) {
|
|
546
|
-
const spinner = !options.json ? logger.spinner('Installing dependencies...') : null;
|
|
547
|
-
installResult = runNpmInstall(config.targetDir);
|
|
548
|
-
if (spinner) {
|
|
549
|
-
if (installResult.success)
|
|
550
|
-
spinner.stop('Dependencies installed');
|
|
551
|
-
else
|
|
552
|
-
spinner.fail(`npm install failed: ${installResult.error}`);
|
|
553
|
-
}
|
|
554
|
-
}
|
|
555
|
-
let gitResult;
|
|
556
|
-
if (config.git) {
|
|
557
|
-
gitResult = runGitInit(config.targetDir);
|
|
558
|
-
}
|
|
559
|
-
// Auto-compile the workflow so `npm start` works immediately
|
|
560
|
-
const workflowFile = `${config.projectName}-workflow.ts`;
|
|
561
|
-
const workflowPath = path.join(config.targetDir, 'src', workflowFile);
|
|
562
|
-
let compileResult;
|
|
563
|
-
if (!options.json && fs.existsSync(workflowPath)) {
|
|
564
|
-
try {
|
|
565
|
-
await compileCommand(workflowPath, { format: config.format });
|
|
566
|
-
compileResult = { success: true };
|
|
567
|
-
}
|
|
568
|
-
catch (err) {
|
|
569
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
570
|
-
compileResult = { success: false, error: message };
|
|
571
|
-
}
|
|
572
|
-
}
|
|
573
|
-
// MCP setup
|
|
574
|
-
let mcpConfigured;
|
|
575
|
-
let mcpResult;
|
|
576
|
-
if (config.mcp && !options.json) {
|
|
577
|
-
const spinner = logger.spinner('Detecting AI editors...');
|
|
578
|
-
try {
|
|
579
|
-
mcpResult = await runMcpSetupFromInit();
|
|
580
|
-
mcpConfigured = mcpResult.configured;
|
|
581
|
-
spinner.stop();
|
|
582
|
-
// Per-tool status lines
|
|
583
|
-
for (const t of mcpResult.detected) {
|
|
584
|
-
if (!t.detected)
|
|
585
|
-
continue;
|
|
586
|
-
const wasConfigured = mcpConfigured.includes(t.displayName);
|
|
587
|
-
if (wasConfigured) {
|
|
588
|
-
logger.success(`${t.displayName} configured`);
|
|
589
|
-
}
|
|
590
|
-
}
|
|
591
|
-
if (mcpResult.failed.length > 0) {
|
|
592
|
-
for (const name of mcpResult.failed) {
|
|
593
|
-
logger.warn(`${name} failed to configure`);
|
|
594
|
-
}
|
|
595
|
-
}
|
|
596
|
-
if (mcpResult.detected.every((t) => !t.detected)) {
|
|
597
|
-
logger.log(` ${logger.dim('No AI editors detected')}`);
|
|
598
|
-
}
|
|
599
|
-
}
|
|
600
|
-
catch {
|
|
601
|
-
spinner.fail('MCP setup failed');
|
|
602
|
-
}
|
|
603
|
-
}
|
|
604
|
-
// Agent handoff
|
|
605
|
-
let agentLaunched = false;
|
|
606
|
-
let mcpCliTools = [];
|
|
607
|
-
let mcpGuiTools = [];
|
|
608
|
-
if (mcpResult) {
|
|
609
|
-
mcpCliTools = mcpResult.cliTools;
|
|
610
|
-
mcpGuiTools = mcpResult.guiTools;
|
|
611
|
-
}
|
|
612
|
-
// Build report
|
|
613
|
-
const report = {
|
|
614
|
-
projectDir: config.targetDir,
|
|
615
|
-
filesCreated,
|
|
616
|
-
filesSkipped,
|
|
617
|
-
template: config.template,
|
|
618
|
-
format: config.format,
|
|
619
|
-
persona: config.persona,
|
|
620
|
-
installResult,
|
|
621
|
-
gitResult,
|
|
622
|
-
mcpConfigured,
|
|
623
|
-
agentLaunched: false,
|
|
624
|
-
};
|
|
625
|
-
if (options.json) {
|
|
626
|
-
console.log(JSON.stringify(report, null, 2));
|
|
627
|
-
return;
|
|
628
|
-
}
|
|
629
|
-
// Human output — status lines
|
|
630
|
-
logger.newline();
|
|
631
|
-
logger.success(`Created ${logger.highlight(config.projectName)} ${logger.dim(`(${config.template}, ${config.format.toUpperCase()})`)}`);
|
|
632
|
-
if (filesSkipped.length > 0) {
|
|
633
|
-
logger.warn(`Skipped ${filesSkipped.length} existing file(s)`);
|
|
634
|
-
}
|
|
635
|
-
if (installResult) {
|
|
636
|
-
if (installResult.success) {
|
|
637
|
-
logger.success('Dependencies installed');
|
|
638
|
-
}
|
|
639
|
-
else {
|
|
640
|
-
logger.warn(`npm install failed: ${installResult.error}`);
|
|
641
|
-
}
|
|
642
|
-
}
|
|
643
|
-
if (gitResult) {
|
|
644
|
-
if (gitResult.success) {
|
|
645
|
-
logger.success('Git initialized');
|
|
646
|
-
}
|
|
647
|
-
else {
|
|
648
|
-
logger.warn(`git init failed: ${gitResult.error}`);
|
|
649
|
-
}
|
|
650
|
-
}
|
|
651
|
-
if (compileResult) {
|
|
652
|
-
if (compileResult.success) {
|
|
653
|
-
logger.success('Workflow compiled');
|
|
654
|
-
}
|
|
655
|
-
else {
|
|
656
|
-
logger.warn(`Compile failed: ${compileResult.error}`);
|
|
657
|
-
}
|
|
658
|
-
}
|
|
659
|
-
if (config.installWeaver) {
|
|
660
|
-
logger.success('Weaver AI assistant installed');
|
|
661
|
-
logger.newline();
|
|
662
|
-
logger.log(' Weaver installed. Try:');
|
|
663
|
-
logger.log(' flow-weaver weaver assistant # AI assistant');
|
|
664
|
-
logger.log(' flow-weaver weaver bot "..." # create workflows with AI');
|
|
665
|
-
logger.log(' flow-weaver weaver examples # see what\'s possible');
|
|
666
|
-
logger.newline();
|
|
667
|
-
logger.log(' VS Code extension:');
|
|
668
|
-
logger.log(' Search "Flow Weaver" in Extensions (Ctrl+Shift+X)');
|
|
669
|
-
logger.log(' IntelliSense + diagrams + Weaver commands in your editor');
|
|
670
|
-
logger.newline();
|
|
671
|
-
}
|
|
672
|
-
// Read the workflow code for preview
|
|
673
|
-
const workflowCode = files[`src/${workflowFile}`] ?? null;
|
|
674
|
-
// Persona-specific rich output
|
|
675
|
-
const relDir = path.relative(process.cwd(), config.targetDir);
|
|
676
|
-
const displayDir = !relDir || relDir === '.' ? null : relDir.startsWith('../../') ? config.targetDir : relDir;
|
|
677
|
-
// Agent handoff: offer to launch CLI agent or generate prompt for GUI editors.
|
|
678
|
-
// Decoupled from MCP: even if MCP wasn't run, check for available CLI tools.
|
|
679
|
-
const skipAgent = options.agent === false || options.yes || isNonInteractive();
|
|
680
|
-
if (!skipAgent) {
|
|
681
|
-
// If MCP didn't run or found no CLI tools, do a quick binary check
|
|
682
|
-
if (mcpCliTools.length === 0) {
|
|
683
|
-
try {
|
|
684
|
-
mcpCliTools = await detectCliTools();
|
|
685
|
-
}
|
|
686
|
-
catch {
|
|
687
|
-
// Non-fatal
|
|
688
|
-
}
|
|
689
|
-
}
|
|
690
|
-
const hasTools = mcpCliTools.length > 0 || mcpGuiTools.length > 0;
|
|
691
|
-
if (hasTools) {
|
|
692
|
-
try {
|
|
693
|
-
agentLaunched = await handleAgentHandoff({
|
|
694
|
-
projectName: config.projectName,
|
|
695
|
-
persona: config.persona,
|
|
696
|
-
template: config.template,
|
|
697
|
-
targetDir: config.targetDir,
|
|
698
|
-
cliTools: mcpCliTools,
|
|
699
|
-
guiTools: mcpGuiTools,
|
|
700
|
-
filesCreated,
|
|
701
|
-
useCaseDescription: config.useCaseDescription,
|
|
702
|
-
});
|
|
703
|
-
report.agentLaunched = agentLaunched;
|
|
704
|
-
}
|
|
705
|
-
catch (err) {
|
|
706
|
-
if (err instanceof ExitPromptError)
|
|
707
|
-
return;
|
|
708
|
-
// Non-fatal: just skip agent handoff
|
|
709
|
-
}
|
|
710
|
-
}
|
|
711
|
-
}
|
|
712
|
-
// If an agent was spawned, it takes over. Print minimal output.
|
|
713
|
-
if (agentLaunched) {
|
|
714
|
-
return;
|
|
715
|
-
}
|
|
716
|
-
printNextSteps({
|
|
717
|
-
projectName: config.projectName,
|
|
718
|
-
persona: config.persona,
|
|
719
|
-
template: config.template,
|
|
720
|
-
displayDir,
|
|
721
|
-
installSkipped: !config.install,
|
|
722
|
-
workflowCode,
|
|
723
|
-
workflowFile,
|
|
724
|
-
mcpConfigured,
|
|
725
|
-
agentLaunched,
|
|
726
|
-
compiled: compileResult?.success,
|
|
727
|
-
});
|
|
728
|
-
}
|
|
729
|
-
catch (err) {
|
|
730
|
-
// Clean exit on Ctrl+C during prompts
|
|
731
|
-
if (err instanceof ExitPromptError) {
|
|
732
|
-
return;
|
|
733
|
-
}
|
|
734
|
-
throw err;
|
|
735
|
-
}
|
|
736
|
-
}
|
|
737
|
-
// ── Getting Started guide (generated when Weaver is installed) ───────────────
|
|
738
|
-
function generateGettingStarted(projectName, workflowFile) {
|
|
739
|
-
return `# Getting Started with ${projectName}
|
|
740
|
-
|
|
741
|
-
Your project has Flow Weaver + Weaver AI assistant installed.
|
|
742
|
-
|
|
743
|
-
## Quick Start
|
|
744
|
-
|
|
745
|
-
npx flow-weaver weaver assistant # Ask the AI anything about your project
|
|
746
|
-
npx flow-weaver weaver examples # See what you can do
|
|
747
|
-
npx flow-weaver weaver doctor # Check your setup
|
|
748
|
-
|
|
749
|
-
## Your First Workflow
|
|
750
|
-
|
|
751
|
-
Open \`src/${workflowFile}\` — that's your workflow file.
|
|
752
|
-
|
|
753
|
-
Don't worry about the annotations. Ask the assistant:
|
|
754
|
-
|
|
755
|
-
npx flow-weaver weaver assistant
|
|
756
|
-
> explain my workflow
|
|
757
|
-
> add error handling to it
|
|
758
|
-
> show me a diagram
|
|
759
|
-
|
|
760
|
-
The AI writes the annotations for you. You focus on what you want, not how to write it.
|
|
761
|
-
|
|
762
|
-
## Useful Commands
|
|
763
|
-
|
|
764
|
-
npx flow-weaver validate src/ # check for errors
|
|
765
|
-
npx flow-weaver compile src/ # compile to standalone
|
|
766
|
-
npx flow-weaver diagram src/ # visual diagram
|
|
767
|
-
npx fw deploy src/${workflowFile} # deploy to cloud (requires fw login)
|
|
768
|
-
|
|
769
|
-
## Autonomous Mode
|
|
770
|
-
|
|
771
|
-
npx flow-weaver weaver session --continuous # process task queue
|
|
772
|
-
npx flow-weaver weaver queue add "Fix all validation errors"
|
|
773
|
-
|
|
774
|
-
## Cloud Features
|
|
775
|
-
|
|
776
|
-
npx fw login # connect to Flow Weaver platform
|
|
777
|
-
npx fw deploy src/${workflowFile} # deploy workflow
|
|
778
|
-
npx fw cloud-status # see deployments + usage
|
|
779
|
-
|
|
780
|
-
## VS Code Extension
|
|
781
|
-
|
|
782
|
-
Install the Flow Weaver extension for the best editing experience:
|
|
783
|
-
- IntelliSense for annotations (completions, hover, go-to-definition)
|
|
784
|
-
- Real-time validation (errors show as you type)
|
|
785
|
-
- Interactive diagram panel
|
|
786
|
-
- Weaver commands in the command palette (Ctrl+Shift+P → "Flow Weaver")
|
|
787
|
-
|
|
788
|
-
Search "Flow Weaver" in the VS Code extensions marketplace.
|
|
789
|
-
|
|
790
|
-
## Learn More
|
|
791
|
-
|
|
792
|
-
npx flow-weaver weaver examples # concrete task examples
|
|
793
|
-
npx flow-weaver docs concepts # core concepts
|
|
794
|
-
npx flow-weaver docs jsdoc-grammar # annotation reference
|
|
795
|
-
`;
|
|
796
|
-
}
|
|
797
|
-
//# sourceMappingURL=init.js.map
|