@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.
Files changed (922) hide show
  1. package/LICENSE +201 -226
  2. package/NOTICE +13 -0
  3. package/README.md +152 -244
  4. package/dist/agent/agent-loop.d.ts +4 -2
  5. package/dist/agent/cli-session.d.ts +3 -3
  6. package/dist/agent/cli-session.js +511 -438
  7. package/dist/agent/cli-spawn-config.d.ts +4 -4
  8. package/dist/agent/gate.d.ts +164 -0
  9. package/dist/agent/index.d.ts +4 -4
  10. package/dist/agent/index.js +174 -28
  11. package/dist/agent/mcp-bridge.d.ts +1 -1
  12. package/dist/agent/mcp-bridge.js +114 -128
  13. package/dist/agent/mcp-tool-server.d.ts +2 -2
  14. package/dist/agent/mcp-tool-server.js +147 -189
  15. package/dist/agent/profiles.d.ts +69 -0
  16. package/dist/agent/providers/anthropic.d.ts +2 -4
  17. package/dist/agent/providers/claude-cli.d.ts +4 -5
  18. package/dist/agent/providers/openai-compat.d.ts +8 -1
  19. package/dist/agent/streaming.d.ts +2 -2
  20. package/dist/agent/types.d.ts +16 -10
  21. package/dist/api/builder.d.ts +3 -3
  22. package/dist/api/compile.d.ts +9 -4
  23. package/dist/api/durable-validation.d.ts +15 -0
  24. package/dist/api/generate-in-place.d.ts +21 -19
  25. package/dist/api/generate.d.ts +21 -16
  26. package/dist/api/generated-module/local-node-functions.d.ts +24 -0
  27. package/dist/api/generated-module/module-format.d.ts +23 -0
  28. package/dist/api/generated-module/module-writer.d.ts +34 -0
  29. package/dist/api/generated-module/node-type-imports.d.ts +39 -0
  30. package/dist/api/generated-module/preamble.d.ts +16 -0
  31. package/dist/api/generated-module/workflow-functions.d.ts +29 -0
  32. package/dist/api/graph-identity.d.ts +39 -0
  33. package/dist/api/helpers.d.ts +4 -60
  34. package/dist/api/in-place/built-in-nodes.d.ts +18 -0
  35. package/dist/api/in-place/function-body.d.ts +21 -0
  36. package/dist/api/in-place/fw-imports.d.ts +30 -0
  37. package/dist/api/in-place/macro-coverage.d.ts +14 -0
  38. package/dist/api/in-place/node-type-functions.d.ts +18 -0
  39. package/dist/api/in-place/node-type-jsdoc.d.ts +20 -0
  40. package/dist/api/in-place/orphaned-node-types.d.ts +16 -0
  41. package/dist/api/in-place/runtime-section.d.ts +16 -0
  42. package/dist/api/in-place/signature.d.ts +47 -0
  43. package/dist/api/in-place/source-file.d.ts +19 -0
  44. package/dist/api/in-place/workflow-jsdoc.d.ts +19 -0
  45. package/dist/api/index.d.ts +18 -21
  46. package/dist/api/index.js +259 -53
  47. package/dist/api/inline-engine.generated.d.ts +3 -0
  48. package/dist/api/inline-runtime.d.ts +10 -2
  49. package/dist/api/manipulation/connections.d.ts +1 -1
  50. package/dist/api/manipulation/index.d.ts +8 -8
  51. package/dist/api/manipulation/node-types.d.ts +1 -1
  52. package/dist/api/manipulation/nodes.d.ts +3 -13
  53. package/dist/api/manipulation/ports.d.ts +1 -1
  54. package/dist/api/manipulation/scopes.d.ts +1 -1
  55. package/dist/api/manipulation/workflow.d.ts +1 -1
  56. package/dist/api/modify-operation.d.ts +0 -2
  57. package/dist/api/parse.d.ts +22 -1
  58. package/dist/api/port-references.d.ts +66 -0
  59. package/dist/api/query.d.ts +18 -2
  60. package/dist/api/templates.d.ts +1 -1
  61. package/dist/api/transform.d.ts +1 -1
  62. package/dist/api/validate.d.ts +1 -1
  63. package/dist/api/validation-registry.d.ts +2 -2
  64. package/dist/artifacts/brief.d.ts +43 -0
  65. package/dist/artifacts/index.d.ts +31 -0
  66. package/dist/artifacts/pdf.d.ts +19 -0
  67. package/dist/ast/builder.d.ts +3 -3
  68. package/dist/ast/index.d.ts +4 -4
  69. package/dist/ast/index.js +60 -5
  70. package/dist/ast/serialization-node.d.ts +1 -1
  71. package/dist/ast/serialization.d.ts +1 -1
  72. package/dist/ast/types.d.ts +82 -291
  73. package/dist/ast/workflow-utils.d.ts +4 -4
  74. package/dist/built-in-nodes/coercion-types.d.ts +1 -1
  75. package/dist/built-in-nodes/delay.d.ts +3 -1
  76. package/dist/built-in-nodes/generated-registry.d.ts +1 -1
  77. package/dist/built-in-nodes/index.d.ts +6 -5
  78. package/dist/built-in-nodes/index.js +79 -5
  79. package/dist/built-in-nodes/invoke-workflow.d.ts +2 -1
  80. package/dist/built-in-nodes/mock-types.d.ts +45 -14
  81. package/dist/built-in-nodes/sleep.d.ts +12 -0
  82. package/dist/built-in-nodes/wait-for-agent.d.ts +2 -1
  83. package/dist/built-in-nodes/wait-for-event.d.ts +2 -1
  84. package/dist/chevrotain-parser/coerce-parser.d.ts +1 -1
  85. package/dist/chevrotain-parser/connect-parser.d.ts +1 -1
  86. package/dist/chevrotain-parser/grammar-diagrams.d.ts +1 -1
  87. package/dist/chevrotain-parser/index.d.ts +20 -23
  88. package/dist/chevrotain-parser/node-parser.d.ts +7 -8
  89. package/dist/chevrotain-parser/parse-line.d.ts +54 -0
  90. package/dist/chevrotain-parser/tokens.d.ts +0 -17
  91. package/dist/chevrotain-parser/trigger-cancel-parser.d.ts +6 -1
  92. package/dist/chunks/chunk-4EUSHAY6.js +298 -0
  93. package/dist/chunks/chunk-4KDUEOFD.js +197 -0
  94. package/dist/chunks/chunk-5Y3AIUWY.js +911 -0
  95. package/dist/chunks/chunk-6KMVP6AU.js +20 -0
  96. package/dist/chunks/chunk-6PNJORFL.js +128 -0
  97. package/dist/chunks/chunk-7AAQNGRH.js +2001 -0
  98. package/dist/chunks/chunk-7YYKTPJ5.js +22705 -0
  99. package/dist/chunks/chunk-A5MBOFVY.js +33 -0
  100. package/dist/chunks/chunk-AXNQRVJB.js +18 -0
  101. package/dist/chunks/chunk-B6HQ6YS5.js +572 -0
  102. package/dist/chunks/chunk-CY3RNVML.js +296 -0
  103. package/dist/chunks/chunk-CYHYDLV4.js +653 -0
  104. package/dist/chunks/chunk-CZBCCK4Y.js +82 -0
  105. package/dist/chunks/chunk-DCMGQP5V.js +505 -0
  106. package/dist/chunks/chunk-DIAA66GL.js +72 -0
  107. package/dist/chunks/chunk-DUO6H5PR.js +20 -0
  108. package/dist/chunks/chunk-E5WN7IGO.js +125 -0
  109. package/dist/chunks/chunk-EFGFXXQF.js +184 -0
  110. package/dist/chunks/chunk-F3RTZV2A.js +2811 -0
  111. package/dist/chunks/chunk-FMTLP5ZX.js +1397 -0
  112. package/dist/chunks/chunk-HKZLQJDV.js +79 -0
  113. package/dist/chunks/chunk-INDEVYEC.js +146 -0
  114. package/dist/chunks/chunk-JQTF4R5L.js +390 -0
  115. package/dist/chunks/chunk-KMCAYNUM.js +331 -0
  116. package/dist/chunks/chunk-KMWCCOUJ.js +1444 -0
  117. package/dist/chunks/chunk-KU3CLJI2.js +338 -0
  118. package/dist/chunks/chunk-NDSTGMKR.js +3300 -0
  119. package/dist/chunks/chunk-NQNLUAPO.js +505 -0
  120. package/dist/chunks/chunk-O2U2LO57.js +466 -0
  121. package/dist/chunks/chunk-OOQG7UPP.js +457 -0
  122. package/dist/chunks/chunk-OZQAW5ZG.js +112 -0
  123. package/dist/chunks/chunk-P2CVDGHR.js +487 -0
  124. package/dist/chunks/chunk-P44RIZ7C.js +592 -0
  125. package/dist/chunks/chunk-PEZCT37T.js +1475 -0
  126. package/dist/chunks/chunk-PKWSAW6O.js +152 -0
  127. package/dist/chunks/chunk-Q6MDDZMT.js +4373 -0
  128. package/dist/chunks/chunk-QDE4Z7KW.js +6 -0
  129. package/dist/chunks/chunk-QJDAVSNY.js +8 -0
  130. package/dist/chunks/chunk-QYPORSLO.js +7552 -0
  131. package/dist/chunks/chunk-R4QGNK34.js +183 -0
  132. package/dist/chunks/chunk-REEYC73I.js +3002 -0
  133. package/dist/chunks/chunk-SEWDMQ6Q.js +46 -0
  134. package/dist/chunks/chunk-TAIUWKZB.js +3057 -0
  135. package/dist/chunks/chunk-TN4YZ3O7.js +196 -0
  136. package/dist/chunks/chunk-TRMFB43C.js +143 -0
  137. package/dist/chunks/chunk-VO4QXG2X.js +1016 -0
  138. package/dist/chunks/chunk-VP2P3BPA.js +1002 -0
  139. package/dist/chunks/chunk-VQ7H33J4.js +2176 -0
  140. package/dist/chunks/chunk-VWA7MCV2.js +105 -0
  141. package/dist/chunks/chunk-XAV22WD7.js +253 -0
  142. package/dist/chunks/chunk-YSPBPZDV.js +148 -0
  143. package/dist/chunks/chunk-ZKEGXO73.js +282 -0
  144. package/dist/chunks/chunk-ZMGN6F3S.js +4256 -0
  145. package/dist/chunks/grammar-diagrams-AI7VDXOM.js +14 -0
  146. package/dist/chunks/index.min-ECJD6GZC.js +37 -0
  147. package/dist/chunks/manifest-EPTR5MYH.js +21 -0
  148. package/dist/chunks/openapi-document-6TCGVDUW.js +69 -0
  149. package/dist/chunks/registry-K2U5KUTY.js +23 -0
  150. package/dist/chunks/serialization-node-UGY6CFH6.js +38 -0
  151. package/dist/chunks/validate-GEKSZPIN.js +24 -0
  152. package/dist/chunks/validation-registry-IQZX3UE3.js +7 -0
  153. package/dist/chunks/validator-VXFHLPDW.js +26 -0
  154. package/dist/chunks/workflow-executor-KBGFKHNR.js +36 -0
  155. package/dist/cli/commands/agents.d.ts +16 -0
  156. package/dist/cli/commands/artifact.d.ts +10 -0
  157. package/dist/cli/commands/compile.d.ts +0 -30
  158. package/dist/cli/commands/console.d.ts +32 -0
  159. package/dist/cli/commands/context.d.ts +0 -3
  160. package/dist/cli/commands/describe.js +386 -352
  161. package/dist/cli/commands/dev.d.ts +9 -4
  162. package/dist/cli/commands/diagram.d.ts +3 -5
  163. package/dist/cli/commands/doctor.d.ts +27 -4
  164. package/dist/cli/commands/doctor.js +3307 -633
  165. package/dist/cli/commands/export.d.ts +6 -4
  166. package/dist/cli/commands/grammar.d.ts +0 -3
  167. package/dist/cli/commands/implement.d.ts +1 -1
  168. package/dist/cli/commands/init/agent-handoff.d.ts +28 -0
  169. package/dist/cli/commands/init/config.d.ts +3 -0
  170. package/dist/cli/commands/init/files.d.ts +12 -0
  171. package/dist/cli/commands/init/naming.d.ts +13 -0
  172. package/dist/cli/commands/init/output.d.ts +12 -0
  173. package/dist/cli/commands/init/setup.d.ts +21 -0
  174. package/dist/cli/commands/init/types.d.ts +53 -0
  175. package/dist/cli/commands/init-personas.d.ts +9 -1
  176. package/dist/cli/commands/init.d.ts +24 -88
  177. package/dist/cli/commands/market.d.ts +1 -1
  178. package/dist/cli/commands/mcp-setup.d.ts +1 -4
  179. package/dist/cli/commands/modify.d.ts +0 -5
  180. package/dist/cli/commands/openapi.d.ts +9 -11
  181. package/dist/cli/commands/run.d.ts +0 -4
  182. package/dist/cli/commands/serve.d.ts +24 -26
  183. package/dist/cli/commands/status.d.ts +1 -1
  184. package/dist/cli/exports.d.ts +3 -4
  185. package/dist/cli/exports.js +124 -23
  186. package/dist/cli/flow-weaver-agents-H653446S.mjs +81 -0
  187. package/dist/cli/flow-weaver-artifact-WBFYTW76.mjs +58 -0
  188. package/dist/cli/flow-weaver-chunk-265CEK74.mjs +2 -0
  189. package/dist/cli/flow-weaver-chunk-2C7PZCV5.mjs +186 -0
  190. package/dist/cli/flow-weaver-chunk-3BSYCWPL.mjs +3109 -0
  191. package/dist/cli/flow-weaver-chunk-3MKUQP3D.mjs +547 -0
  192. package/dist/cli/flow-weaver-chunk-3ZLMPQTH.mjs +27 -0
  193. package/dist/cli/flow-weaver-chunk-4DVY73ML.mjs +280 -0
  194. package/dist/cli/flow-weaver-chunk-54M4KNEL.mjs +200 -0
  195. package/dist/cli/flow-weaver-chunk-55QMUZIA.mjs +256 -0
  196. package/dist/cli/flow-weaver-chunk-6ZUJ7LMX.mjs +2003 -0
  197. package/dist/cli/flow-weaver-chunk-7ET6N32V.mjs +419 -0
  198. package/dist/cli/flow-weaver-chunk-7G63RR4K.mjs +8880 -0
  199. package/dist/cli/flow-weaver-chunk-A6M5K3W7.mjs +4418 -0
  200. package/dist/cli/flow-weaver-chunk-AA3NATMX.mjs +154 -0
  201. package/dist/cli/flow-weaver-chunk-APX6MQ5A.mjs +5652 -0
  202. package/dist/cli/flow-weaver-chunk-BHCC5FE5.mjs +17 -0
  203. package/dist/cli/flow-weaver-chunk-DM4BBRRU.mjs +35 -0
  204. package/dist/cli/flow-weaver-chunk-DRN7KPWY.mjs +168 -0
  205. package/dist/cli/flow-weaver-chunk-EKWF27G6.mjs +23 -0
  206. package/dist/cli/flow-weaver-chunk-EM5HWQ4R.mjs +338 -0
  207. package/dist/cli/flow-weaver-chunk-FPPPU2DG.mjs +226 -0
  208. package/dist/cli/flow-weaver-chunk-GAQXZHNO.mjs +3005 -0
  209. package/dist/cli/flow-weaver-chunk-GBUNNP33.mjs +1329 -0
  210. package/dist/cli/flow-weaver-chunk-HMAKDE55.mjs +636 -0
  211. package/dist/cli/flow-weaver-chunk-HQ3ZAN44.mjs +367 -0
  212. package/dist/cli/flow-weaver-chunk-I4APCXYN.mjs +21442 -0
  213. package/dist/cli/flow-weaver-chunk-IJJ4JXTL.mjs +2297 -0
  214. package/dist/cli/flow-weaver-chunk-J7EPZW2I.mjs +33 -0
  215. package/dist/cli/flow-weaver-chunk-KOEMJHLG.mjs +83 -0
  216. package/dist/cli/flow-weaver-chunk-M6CBWQKJ.mjs +271 -0
  217. package/dist/cli/flow-weaver-chunk-MHJ4N652.mjs +1580 -0
  218. package/dist/cli/flow-weaver-chunk-MKAFQWLP.mjs +202 -0
  219. package/dist/cli/flow-weaver-chunk-MMV2XGD3.mjs +3291 -0
  220. package/dist/cli/flow-weaver-chunk-MSI2UJES.mjs +125 -0
  221. package/dist/cli/flow-weaver-chunk-N767YRAI.mjs +48 -0
  222. package/dist/cli/flow-weaver-chunk-NQKKWDGF.mjs +56 -0
  223. package/dist/cli/flow-weaver-chunk-NYZDQYFU.mjs +45 -0
  224. package/dist/cli/flow-weaver-chunk-OMVWSNHJ.mjs +14 -0
  225. package/dist/cli/flow-weaver-chunk-PUWZ47H5.mjs +2188 -0
  226. package/dist/cli/flow-weaver-chunk-QOPRVDES.mjs +46 -0
  227. package/dist/cli/flow-weaver-chunk-RIWE7YTR.mjs +216 -0
  228. package/dist/cli/flow-weaver-chunk-S63Q3JIU.mjs +789 -0
  229. package/dist/cli/flow-weaver-chunk-T7X5A23H.mjs +558 -0
  230. package/dist/cli/flow-weaver-chunk-TLV3VZUN.mjs +2 -0
  231. package/dist/cli/flow-weaver-chunk-TS5P3PIN.mjs +194 -0
  232. package/dist/cli/flow-weaver-chunk-U3EO3X4B.mjs +649 -0
  233. package/dist/cli/flow-weaver-chunk-UNFS3NQP.mjs +34 -0
  234. package/dist/cli/flow-weaver-chunk-V6DHWFQG.mjs +2811 -0
  235. package/dist/cli/flow-weaver-chunk-VXWNLYQU.mjs +9 -0
  236. package/dist/cli/flow-weaver-chunk-W3YNK26P.mjs +149 -0
  237. package/dist/cli/flow-weaver-chunk-XG2WKXYZ.mjs +324 -0
  238. package/dist/cli/flow-weaver-chunk-YLSRZWFK.mjs +2219 -0
  239. package/dist/cli/flow-weaver-chunk-YVPURWS6.mjs +40 -0
  240. package/dist/cli/flow-weaver-chunk-Z44JK332.mjs +582 -0
  241. package/dist/cli/flow-weaver-chunk-Z5ZJPNSY.mjs +517 -0
  242. package/dist/cli/flow-weaver-chunk-ZQALO25T.mjs +594 -0
  243. package/dist/cli/flow-weaver-compile-A2CABDSB.mjs +37 -0
  244. package/dist/cli/flow-weaver-console-6EBHDBTN.mjs +71 -0
  245. package/dist/cli/flow-weaver-context-ECLYANFF.mjs +17 -0
  246. package/dist/cli/flow-weaver-context-ZRUMW2KE.mjs +69 -0
  247. package/dist/cli/flow-weaver-create-WIP4EFNP.mjs +124 -0
  248. package/dist/cli/flow-weaver-deployment-WJJRK7NO.mjs +14 -0
  249. package/dist/cli/flow-weaver-describe-XDIFF5LI.mjs +41 -0
  250. package/dist/cli/flow-weaver-dev-LG2NSQAU.mjs +196 -0
  251. package/dist/cli/flow-weaver-diagram-3EVQARQE.mjs +52 -0
  252. package/dist/cli/flow-weaver-diagram-7LR7O4M2.mjs +44 -0
  253. package/dist/cli/flow-weaver-diff-USF7DJLU.mjs +85 -0
  254. package/dist/cli/flow-weaver-docs-QU2ZOXKH.mjs +96 -0
  255. package/dist/cli/flow-weaver-doctor-K447YWHR.mjs +43 -0
  256. package/dist/cli/flow-weaver-export-LAS6N56Y.mjs +140 -0
  257. package/dist/cli/flow-weaver-grammar-RIRUS3Q6.mjs +49 -0
  258. package/dist/cli/flow-weaver-grammar-diagrams-WXRTW5SK.mjs +15 -0
  259. package/dist/cli/flow-weaver-implement-5JG6BCFZ.mjs +114 -0
  260. package/dist/cli/flow-weaver-index.min-OR5SIHXD.mjs +39 -0
  261. package/dist/cli/flow-weaver-init-34YZNPQX.mjs +972 -0
  262. package/dist/cli/flow-weaver-init-personas-NOGZTQQ2.mjs +48 -0
  263. package/dist/cli/flow-weaver-manifest-4JNUSEB3.mjs +18 -0
  264. package/dist/cli/flow-weaver-market-WA4CKHKV.mjs +444 -0
  265. package/dist/cli/flow-weaver-mcp-setup-O26MGXSD.mjs +22 -0
  266. package/dist/cli/flow-weaver-migrate-VFVEUTPH.mjs +119 -0
  267. package/dist/cli/flow-weaver-modify-VM3JP5K6.mjs +97 -0
  268. package/dist/cli/flow-weaver-openapi-IRBWI3HM.mjs +71 -0
  269. package/dist/cli/flow-weaver-openapi-document-7N6YMPG3.mjs +30 -0
  270. package/dist/cli/flow-weaver-pack-commands-OS2QRXAK.mjs +146 -0
  271. package/dist/cli/flow-weaver-registry-5MLFRPPT.mjs +25 -0
  272. package/dist/cli/flow-weaver-run-DSTLSTHR.mjs +555 -0
  273. package/dist/cli/flow-weaver-serialization-node-LE6PCG4M.mjs +50 -0
  274. package/dist/cli/flow-weaver-serve-NVLCLSOW.mjs +192 -0
  275. package/dist/cli/flow-weaver-server-7IERLVXE.mjs +2925 -0
  276. package/dist/cli/flow-weaver-server-KWF4PXYC.mjs +19112 -0
  277. package/dist/cli/flow-weaver-status-75W2S3YB.mjs +138 -0
  278. package/dist/cli/flow-weaver-strip-AZPXUYVA.mjs +79 -0
  279. package/dist/cli/flow-weaver-templates-DSNMB6K7.mjs +72 -0
  280. package/dist/cli/flow-weaver-validate-A4UWDQN6.mjs +19 -0
  281. package/dist/cli/flow-weaver-validate-GRBZ5W4C.mjs +296 -0
  282. package/dist/cli/flow-weaver-validation-registry-BINGUNXX.mjs +9 -0
  283. package/dist/cli/flow-weaver-validator-TY56CI42.mjs +21 -0
  284. package/dist/cli/flow-weaver-watch-OPPERXL6.mjs +114 -0
  285. package/dist/cli/flow-weaver-workflow-executor-6AHYPXAN.mjs +26 -0
  286. package/dist/cli/flow-weaver.mjs +3557 -89498
  287. package/dist/cli/index.d.ts +5 -2
  288. package/dist/cli/pack-commands-needed.d.ts +12 -0
  289. package/dist/cli/program.d.ts +14 -0
  290. package/dist/cli/templates/ai/mock-provider.d.ts +1 -1
  291. package/dist/cli/templates/index.d.ts +1 -8
  292. package/dist/cli/templates/nodes/agent-router.d.ts +1 -1
  293. package/dist/cli/templates/nodes/aggregator.d.ts +1 -1
  294. package/dist/cli/templates/nodes/conversation-memory.d.ts +1 -1
  295. package/dist/cli/templates/nodes/http.d.ts +1 -1
  296. package/dist/cli/templates/nodes/human-approval.d.ts +1 -1
  297. package/dist/cli/templates/nodes/json-extractor.d.ts +1 -1
  298. package/dist/cli/templates/nodes/llm-call.d.ts +1 -1
  299. package/dist/cli/templates/nodes/prompt-template.d.ts +1 -1
  300. package/dist/cli/templates/nodes/rag-retriever.d.ts +1 -1
  301. package/dist/cli/templates/nodes/tool-executor.d.ts +1 -1
  302. package/dist/cli/templates/nodes/transformer.d.ts +1 -1
  303. package/dist/cli/templates/nodes/validator.d.ts +1 -1
  304. package/dist/cli/templates/shared/approval-types.d.ts +1 -1
  305. package/dist/cli/templates/shared/case.d.ts +14 -0
  306. package/dist/cli/templates/shared/llm-types.d.ts +4 -4
  307. package/dist/cli/templates/workflows/aggregator.d.ts +1 -1
  308. package/dist/cli/templates/workflows/ai-agent.d.ts +1 -1
  309. package/dist/cli/templates/workflows/ai-chat.d.ts +1 -1
  310. package/dist/cli/templates/workflows/ai-rag.d.ts +1 -1
  311. package/dist/cli/templates/workflows/ai-react.d.ts +1 -1
  312. package/dist/cli/templates/workflows/approval.d.ts +10 -0
  313. package/dist/cli/templates/workflows/conditional.d.ts +2 -2
  314. package/dist/cli/templates/workflows/error-handler.d.ts +2 -2
  315. package/dist/cli/templates/workflows/foreach.d.ts +1 -1
  316. package/dist/cli/templates/workflows/sequential.d.ts +1 -1
  317. package/dist/cli/templates/workflows/webhook.d.ts +1 -1
  318. package/dist/cli/utils/interactive.d.ts +6 -0
  319. package/dist/cli/utils/json-option.d.ts +8 -0
  320. package/dist/cli/utils/logger.d.ts +2 -0
  321. package/dist/compiler/durable-source-proof.d.ts +23 -0
  322. package/dist/compiler/executable-artifact.d.ts +29 -0
  323. package/dist/compiler/index.d.ts +4 -0
  324. package/dist/compiler/index.js +36 -0
  325. package/dist/console/app.js +106 -0
  326. package/dist/console/assets/synergenius.svg +18 -0
  327. package/dist/console/author.d.ts +32 -0
  328. package/dist/console/cli-catalog.d.ts +21 -0
  329. package/dist/console/cli-run.d.ts +35 -0
  330. package/dist/console/cli-run.js +46 -0
  331. package/dist/console/debug.d.ts +67 -0
  332. package/dist/console/diff-view.d.ts +96 -0
  333. package/dist/console/export.d.ts +36 -0
  334. package/dist/console/git.d.ts +27 -0
  335. package/dist/console/index.d.ts +4 -0
  336. package/dist/console/index.html +16 -0
  337. package/dist/console/index.js +203 -0
  338. package/dist/console/packs.d.ts +100 -0
  339. package/dist/console/request-guard.d.ts +10 -0
  340. package/dist/console/respond.d.ts +16 -0
  341. package/dist/console/router.d.ts +64 -0
  342. package/dist/console/routes-agents.d.ts +14 -0
  343. package/dist/console/routes-project.d.ts +3 -0
  344. package/dist/console/routes-runs.d.ts +3 -0
  345. package/dist/console/routes-services.d.ts +7 -0
  346. package/dist/console/routes-tools.d.ts +3 -0
  347. package/dist/console/runs.d.ts +69 -0
  348. package/dist/console/scan.d.ts +49 -0
  349. package/dist/console/schema.d.ts +74 -0
  350. package/dist/console/server.d.ts +34 -0
  351. package/dist/console/server.js +43264 -0
  352. package/dist/console/services.d.ts +119 -0
  353. package/dist/console/source.d.ts +23 -0
  354. package/dist/console/status.d.ts +68 -0
  355. package/dist/console/styles.css +1023 -0
  356. package/dist/console/terminals.d.ts +22 -0
  357. package/dist/console/workflow-view.d.ts +153 -0
  358. package/dist/constants.d.ts +5 -1
  359. package/dist/constants.js +56 -167
  360. package/dist/context/index.d.ts +10 -0
  361. package/dist/context/index.js +14 -191
  362. package/dist/coordinator/agent-gate.d.ts +107 -0
  363. package/dist/coordinator/bundle-digest.d.ts +20 -0
  364. package/dist/coordinator/clock-tick.d.ts +4 -0
  365. package/dist/coordinator/effect-receipts.d.ts +10 -0
  366. package/dist/coordinator/errors.d.ts +31 -0
  367. package/dist/coordinator/file-store.d.ts +3 -0
  368. package/dist/coordinator/gate-labeling.d.ts +33 -0
  369. package/dist/coordinator/gate-resolution.d.ts +28 -0
  370. package/dist/coordinator/index.d.ts +12 -0
  371. package/dist/coordinator/index.js +107 -0
  372. package/dist/coordinator/memory-store.d.ts +3 -0
  373. package/dist/coordinator/params.d.ts +18 -0
  374. package/dist/coordinator/run-annotations.d.ts +6 -0
  375. package/dist/coordinator/run-context.d.ts +11 -0
  376. package/dist/coordinator/run-ending.d.ts +5 -0
  377. package/dist/coordinator/run-outcome.d.ts +31 -0
  378. package/dist/coordinator/run-resume.d.ts +6 -0
  379. package/dist/coordinator/run-start.d.ts +4 -0
  380. package/dist/coordinator/run-store.d.ts +275 -0
  381. package/dist/coordinator/run-trace.d.ts +41 -0
  382. package/dist/coordinator/run-views.d.ts +12 -0
  383. package/dist/coordinator/runs-dir.d.ts +26 -0
  384. package/dist/coordinator/store.d.ts +67 -0
  385. package/dist/coordinator/time.d.ts +39 -0
  386. package/dist/coordinator/workflow-selection.d.ts +6 -0
  387. package/dist/deployment/index.d.ts +11 -16
  388. package/dist/deployment/index.js +541 -50
  389. package/dist/deployment/targets/base.d.ts +11 -13
  390. package/dist/deployment/targets/openapi-parts.d.ts +92 -0
  391. package/dist/diagram/arms.d.ts +70 -0
  392. package/dist/diagram/ascii-renderer.d.ts +1 -1
  393. package/dist/diagram/geometry.d.ts +22 -29
  394. package/dist/diagram/graph/bounds.d.ts +30 -0
  395. package/dist/diagram/graph/metrics.d.ts +21 -0
  396. package/dist/diagram/graph/nodes.d.ts +33 -0
  397. package/dist/diagram/graph/placement.d.ts +22 -0
  398. package/dist/diagram/graph/ports.d.ts +23 -0
  399. package/dist/diagram/graph/routing.d.ts +40 -0
  400. package/dist/diagram/graph/scopes.d.ts +30 -0
  401. package/dist/diagram/index.d.ts +15 -23
  402. package/dist/diagram/index.js +632 -111
  403. package/dist/diagram/labels.d.ts +12 -0
  404. package/dist/diagram/lanes.d.ts +93 -0
  405. package/dist/diagram/layout.d.ts +1 -1
  406. package/dist/diagram/material-symbols.d.ts +7 -0
  407. package/dist/diagram/orthogonal-router.d.ts +15 -51
  408. package/dist/diagram/process-view.d.ts +79 -0
  409. package/dist/diagram/spine.d.ts +25 -0
  410. package/dist/diagram/theme.d.ts +3 -5
  411. package/dist/diagram/types.d.ts +6 -20
  412. package/dist/diff/index.js +53 -9
  413. package/dist/diff/types.d.ts +1 -5
  414. package/dist/doc-metadata/extractors/annotations.d.ts +0 -4
  415. package/dist/doc-metadata/extractors/cli-commands.d.ts +2 -1
  416. package/dist/doc-metadata/extractors/core-metadata.d.ts +19 -4
  417. package/dist/doc-metadata/extractors/error-codes.d.ts +1 -1
  418. package/dist/doc-metadata/extractors/mcp-tools.d.ts +7 -3
  419. package/dist/doc-metadata/index.d.ts +1 -2
  420. package/dist/doc-metadata/index.js +2368 -9
  421. package/dist/doc-metadata/types.d.ts +7 -24
  422. package/dist/docs/guide.d.ts +33 -0
  423. package/dist/docs/index.d.ts +7 -4
  424. package/dist/docs/index.js +298 -298
  425. package/dist/docs/pack-topics.d.ts +18 -0
  426. package/dist/editor-completions/annotationValues.d.ts +1 -1
  427. package/dist/editor-completions/contextParser.d.ts +3 -2
  428. package/dist/editor-completions/dataTypes.d.ts +1 -1
  429. package/dist/editor-completions/goToDefinition.d.ts +1 -1
  430. package/dist/editor-completions/index.d.ts +8 -8
  431. package/dist/editor-completions/index.js +1244 -175
  432. package/dist/editor-completions/jsDocAnnotations.d.ts +1 -1
  433. package/dist/editor-completions/modifierCompletions.d.ts +1 -1
  434. package/dist/export/index.d.ts +7 -1
  435. package/dist/generated-branding.js +8 -21
  436. package/dist/generated-version.d.ts +1 -1
  437. package/dist/generated-version.js +7 -3
  438. package/dist/generator/annotation-generator.d.ts +84 -0
  439. package/dist/generator/async-detection.d.ts +1 -1
  440. package/dist/{body-generator.d.ts → generator/body-generator.d.ts} +7 -3
  441. package/dist/generator/code-utils.d.ts +15 -60
  442. package/dist/generator/connection-reads.d.ts +94 -0
  443. package/dist/generator/control-flow-plan.d.ts +74 -0
  444. package/dist/generator/control-flow.d.ts +1 -1
  445. package/dist/generator/exit-assembly.d.ts +11 -0
  446. package/dist/generator/index.d.ts +4 -5
  447. package/dist/generator/index.js +34 -11
  448. package/dist/generator/input-port-values.d.ts +22 -0
  449. package/dist/generator/{scope-function-generator.d.ts → node-arguments.d.ts} +76 -1
  450. package/dist/generator/node-invocation.d.ts +74 -0
  451. package/dist/{node-types-generator.d.ts → generator/node-types-generator.d.ts} +3 -2
  452. package/dist/generator/scope-closure.d.ts +23 -0
  453. package/dist/generator/scoped-child.d.ts +49 -0
  454. package/dist/{sugar-optimizer.d.ts → generator/sugar-optimizer.d.ts} +1 -1
  455. package/dist/generator/unified.d.ts +14 -2
  456. package/dist/generator/workflow-generator.d.ts +37 -0
  457. package/dist/index.d.ts +29 -26
  458. package/dist/index.js +1322 -92
  459. package/dist/jsdoc-port-sync/apply-diff.d.ts +15 -0
  460. package/dist/jsdoc-port-sync/callback-signature.d.ts +17 -0
  461. package/dist/jsdoc-port-sync/diff.d.ts +5 -7
  462. package/dist/jsdoc-port-sync/incomplete-lines.d.ts +41 -0
  463. package/dist/jsdoc-port-sync/index.d.ts +11 -11
  464. package/dist/jsdoc-port-sync/index.js +88 -45
  465. package/dist/jsdoc-port-sync/jsdoc-to-signature.d.ts +66 -0
  466. package/dist/jsdoc-port-sync/port-parser.d.ts +6 -24
  467. package/dist/jsdoc-port-sync/port-tag-placement.d.ts +55 -0
  468. package/dist/jsdoc-port-sync/scoped-ports.d.ts +21 -0
  469. package/dist/jsdoc-port-sync/signature-parser.d.ts +8 -1
  470. package/dist/jsdoc-port-sync/signature-to-jsdoc.d.ts +77 -0
  471. package/dist/jsdoc-port-sync/sync.d.ts +4 -1
  472. package/dist/marketplace/index.d.ts +5 -3
  473. package/dist/marketplace/index.js +62 -10
  474. package/dist/marketplace/install.d.ts +24 -0
  475. package/dist/marketplace/manifest.d.ts +1 -1
  476. package/dist/marketplace/npmrc.d.ts +24 -0
  477. package/dist/marketplace/registry.d.ts +46 -11
  478. package/dist/marketplace/types.d.ts +41 -24
  479. package/dist/marketplace/validator.d.ts +1 -1
  480. package/dist/mcp/debug-session.d.ts +2 -4
  481. package/dist/mcp/dist-imports.d.ts +12 -0
  482. package/dist/mcp/response-utils.d.ts +11 -9
  483. package/dist/mcp/server.d.ts +0 -1
  484. package/dist/mcp/tools-context.d.ts +11 -0
  485. package/dist/mcp/tools-diagram.d.ts +1 -2
  486. package/dist/mcp/tools-export.d.ts +2 -2
  487. package/dist/mcp/tools-marketplace.d.ts +1 -1
  488. package/dist/mcp/tools-run.d.ts +17 -0
  489. package/dist/mcp/tools-workflow.d.ts +3 -0
  490. package/dist/mcp/types.d.ts +4 -14
  491. package/dist/mcp/workflow-executor.d.ts +57 -19
  492. package/dist/npm-packages.d.ts +1 -1
  493. package/dist/npm-packages.js +10 -473
  494. package/dist/parser/annotation-parser.d.ts +88 -0
  495. package/dist/parser/annotation-suggestion.d.ts +23 -0
  496. package/dist/parser/durable-effect-contract.d.ts +10 -0
  497. package/dist/parser/expression-references.d.ts +101 -0
  498. package/dist/parser/external-node-types.d.ts +69 -0
  499. package/dist/{function-like.d.ts → parser/function-like.d.ts} +10 -3
  500. package/dist/parser/generated-sections.d.ts +25 -0
  501. package/dist/parser/import-resolution.d.ts +67 -0
  502. package/dist/parser/import-stub.d.ts +29 -0
  503. package/dist/parser/jsdoc/config-types.d.ts +209 -0
  504. package/dist/parser/jsdoc/graph-tags.d.ts +54 -0
  505. package/dist/parser/jsdoc/node-type-block.d.ts +23 -0
  506. package/dist/parser/jsdoc/parse-line-once.d.ts +11 -0
  507. package/dist/parser/jsdoc/port-tags.d.ts +42 -0
  508. package/dist/parser/jsdoc/runtime-tags.d.ts +65 -0
  509. package/dist/parser/jsdoc/signature-types.d.ts +52 -0
  510. package/dist/parser/jsdoc/workflow-block.d.ts +22 -0
  511. package/dist/parser/jsdoc-parser.d.ts +23 -0
  512. package/dist/parser/macro-expansion.d.ts +80 -0
  513. package/dist/parser/module-resolution.d.ts +38 -0
  514. package/dist/parser/node-inference.d.ts +39 -0
  515. package/dist/parser/npm-node-types.d.ts +24 -0
  516. package/dist/parser/pack-handlers.d.ts +12 -0
  517. package/dist/parser/path-data-resolution.d.ts +75 -0
  518. package/dist/parser/port-inference.d.ts +15 -0
  519. package/dist/{resolve-package-types.d.ts → parser/resolve-package-types.d.ts} +4 -0
  520. package/dist/parser/serialize-deploy-annotations.d.ts +19 -0
  521. package/dist/parser/tag-registry.d.ts +22 -0
  522. package/dist/parser/workflow-extraction.d.ts +39 -0
  523. package/dist/runtime/ExecutionContext.d.ts +87 -99
  524. package/dist/runtime/continuation-core.d.ts +147 -0
  525. package/dist/runtime/continuation.d.ts +48 -0
  526. package/dist/runtime/debug-controller.d.ts +7 -22
  527. package/dist/runtime/durable-execution.d.ts +176 -0
  528. package/dist/runtime/events.d.ts +16 -1
  529. package/dist/runtime/executable-module-contract.d.ts +16 -0
  530. package/dist/runtime/index.d.ts +13 -10
  531. package/dist/runtime/index.js +947 -9
  532. package/dist/runtime/strict-json.d.ts +15 -0
  533. package/dist/server/access.d.ts +12 -0
  534. package/dist/server/api.d.ts +126 -0
  535. package/dist/server/callback-delivery.d.ts +62 -0
  536. package/dist/server/callback-url.d.ts +44 -0
  537. package/dist/server/context.d.ts +35 -0
  538. package/dist/server/http-error.d.ts +10 -0
  539. package/dist/server/index.d.ts +7 -1
  540. package/dist/server/index.js +125 -6
  541. package/dist/server/openapi-document.d.ts +33 -0
  542. package/dist/server/openapi.d.ts +32 -0
  543. package/dist/server/respond.d.ts +35 -0
  544. package/dist/server/route-params.d.ts +17 -0
  545. package/dist/server/route-plan.d.ts +41 -0
  546. package/dist/server/routes-catalog.d.ts +5 -0
  547. package/dist/server/routes-declared.d.ts +12 -0
  548. package/dist/server/routes-runs.d.ts +8 -0
  549. package/dist/server/run-driver.d.ts +58 -0
  550. package/dist/server/run-view.d.ts +26 -0
  551. package/dist/server/transport.d.ts +35 -0
  552. package/dist/server/types.d.ts +143 -52
  553. package/dist/server/webhook-server.d.ts +12 -38
  554. package/dist/server/workflow-registry.d.ts +7 -4
  555. package/dist/service-registry.d.ts +49 -0
  556. package/dist/service-registry.js +123 -0
  557. package/dist/testing/assertions.d.ts +2 -2
  558. package/dist/testing/index.d.ts +14 -13
  559. package/dist/testing/index.js +582 -24
  560. package/dist/testing/mock-approval.d.ts +3 -5
  561. package/dist/testing/mock-llm.d.ts +2 -3
  562. package/dist/testing/recorder.d.ts +5 -6
  563. package/dist/testing/replayer.d.ts +6 -7
  564. package/dist/testing/run-store-check.d.ts +3 -0
  565. package/dist/testing/token-tracker.d.ts +2 -2
  566. package/dist/{type-mappings.d.ts → types/type-mappings.d.ts} +13 -1
  567. package/dist/utils/error-utils.d.ts +4 -2
  568. package/dist/utils/port-ordering.d.ts +2 -2
  569. package/dist/utils/port-tag-utils.d.ts +1 -1
  570. package/dist/validation/agent-detection.d.ts +17 -5
  571. package/dist/validation/agent-rules.d.ts +6 -7
  572. package/dist/validation/core-rules.d.ts +49 -0
  573. package/dist/validation/design-rules.d.ts +9 -3
  574. package/dist/validation/rule-registry.d.ts +3 -3
  575. package/dist/validation/rules/connections.d.ts +27 -0
  576. package/dist/validation/rules/context.d.ts +11 -0
  577. package/dist/validation/rules/cycles.d.ts +17 -0
  578. package/dist/validation/rules/data-flow.d.ts +19 -0
  579. package/dist/validation/rules/scope-topology.d.ts +35 -0
  580. package/dist/validation/rules/type-compatibility.d.ts +30 -0
  581. package/dist/validation/type-checker.d.ts +39 -0
  582. package/dist/validation/validator-helpers.d.ts +31 -0
  583. package/dist/validation/validator.d.ts +30 -0
  584. package/docs/reference/advanced-annotations.md +277 -60
  585. package/docs/reference/built-in-nodes.md +164 -94
  586. package/docs/reference/cancellation.md +44 -0
  587. package/docs/reference/cli-reference.md +252 -234
  588. package/docs/reference/compilation.md +36 -109
  589. package/docs/reference/concepts.md +80 -63
  590. package/docs/reference/console.md +169 -0
  591. package/docs/reference/debugging.md +26 -57
  592. package/docs/reference/deployment.md +217 -143
  593. package/docs/reference/durable-gates.md +445 -0
  594. package/docs/reference/error-codes.md +90 -43
  595. package/docs/reference/export-interface.md +91 -26
  596. package/docs/reference/iterative-development.md +50 -28
  597. package/docs/reference/jsdoc-grammar.md +66 -311
  598. package/docs/reference/library.md +250 -0
  599. package/docs/reference/marketplace.md +301 -152
  600. package/docs/reference/mcp-tools.md +102 -0
  601. package/docs/reference/node-conversion.md +84 -59
  602. package/docs/reference/orientation.md +68 -0
  603. package/docs/reference/scaffold.md +5 -4
  604. package/docs/reference/tutorial.md +106 -166
  605. package/docs/reference/visual-reference.md +1 -1
  606. package/package.json +85 -50
  607. package/dist/agent/agent-loop.js +0 -156
  608. package/dist/agent/cli-spawn-config.js +0 -65
  609. package/dist/agent/device-connection.d.ts +0 -79
  610. package/dist/agent/device-connection.js +0 -184
  611. package/dist/agent/env-allowlist.js +0 -60
  612. package/dist/agent/providers/anthropic.js +0 -198
  613. package/dist/agent/providers/claude-cli.js +0 -161
  614. package/dist/agent/providers/openai-compat.js +0 -205
  615. package/dist/agent/providers/platform.d.ts +0 -23
  616. package/dist/agent/providers/platform.js +0 -132
  617. package/dist/agent/streaming.js +0 -186
  618. package/dist/agent/types.js +0 -20
  619. package/dist/annotation-generator.d.ts +0 -50
  620. package/dist/annotation-generator.js +0 -743
  621. package/dist/api/builder.js +0 -345
  622. package/dist/api/command-runner.js +0 -787
  623. package/dist/api/compile.js +0 -148
  624. package/dist/api/extract-types.js +0 -57
  625. package/dist/api/generate-in-place.js +0 -1477
  626. package/dist/api/generate.js +0 -514
  627. package/dist/api/helpers.js +0 -285
  628. package/dist/api/inline-runtime.js +0 -526
  629. package/dist/api/manipulation/connections.js +0 -151
  630. package/dist/api/manipulation/index.js +0 -41
  631. package/dist/api/manipulation/node-types.js +0 -200
  632. package/dist/api/manipulation/nodes.js +0 -355
  633. package/dist/api/manipulation/ports.js +0 -228
  634. package/dist/api/manipulation/scopes.js +0 -156
  635. package/dist/api/manipulation/workflow.js +0 -116
  636. package/dist/api/modify-operation.js +0 -177
  637. package/dist/api/parse.js +0 -115
  638. package/dist/api/patterns.d.ts +0 -112
  639. package/dist/api/patterns.js +0 -303
  640. package/dist/api/query.js +0 -840
  641. package/dist/api/templates.js +0 -117
  642. package/dist/api/transform.js +0 -40
  643. package/dist/api/validate.js +0 -64
  644. package/dist/api/validation-registry.js +0 -10
  645. package/dist/api/workflow-file-operations.js +0 -180
  646. package/dist/ast/builder.js +0 -395
  647. package/dist/ast/serialization-node.js +0 -30
  648. package/dist/ast/serialization.js +0 -134
  649. package/dist/ast/types.js +0 -2
  650. package/dist/ast/workflow-utils.js +0 -114
  651. package/dist/body-generator.js +0 -35
  652. package/dist/built-in-nodes/coercion-types.js +0 -61
  653. package/dist/built-in-nodes/delay.js +0 -29
  654. package/dist/built-in-nodes/generated-registry.js +0 -299
  655. package/dist/built-in-nodes/invoke-workflow.js +0 -36
  656. package/dist/built-in-nodes/mock-types.js +0 -42
  657. package/dist/built-in-nodes/wait-for-agent.js +0 -31
  658. package/dist/built-in-nodes/wait-for-event.js +0 -25
  659. package/dist/chevrotain-parser/coerce-parser.js +0 -103
  660. package/dist/chevrotain-parser/connect-parser.js +0 -136
  661. package/dist/chevrotain-parser/fan-parser.js +0 -149
  662. package/dist/chevrotain-parser/grammar-diagrams.js +0 -273
  663. package/dist/chevrotain-parser/index.js +0 -31
  664. package/dist/chevrotain-parser/map-parser.js +0 -130
  665. package/dist/chevrotain-parser/node-parser.js +0 -558
  666. package/dist/chevrotain-parser/path-parser.js +0 -140
  667. package/dist/chevrotain-parser/port-parser.js +0 -519
  668. package/dist/chevrotain-parser/position-parser.d.ts +0 -20
  669. package/dist/chevrotain-parser/position-parser.js +0 -83
  670. package/dist/chevrotain-parser/scope-parser.js +0 -104
  671. package/dist/chevrotain-parser/tokens.js +0 -429
  672. package/dist/chevrotain-parser/trigger-cancel-parser.js +0 -291
  673. package/dist/cli/commands/account.d.ts +0 -4
  674. package/dist/cli/commands/account.js +0 -50
  675. package/dist/cli/commands/ai-credentials.d.ts +0 -12
  676. package/dist/cli/commands/ai-credentials.js +0 -95
  677. package/dist/cli/commands/apikey.d.ts +0 -4
  678. package/dist/cli/commands/apikey.js +0 -64
  679. package/dist/cli/commands/auth.d.ts +0 -9
  680. package/dist/cli/commands/auth.js +0 -255
  681. package/dist/cli/commands/compile.js +0 -331
  682. package/dist/cli/commands/connect.d.ts +0 -4
  683. package/dist/cli/commands/connect.js +0 -163
  684. package/dist/cli/commands/context.js +0 -51
  685. package/dist/cli/commands/create.js +0 -139
  686. package/dist/cli/commands/deploy.d.ts +0 -6
  687. package/dist/cli/commands/deploy.js +0 -74
  688. package/dist/cli/commands/dev.js +0 -227
  689. package/dist/cli/commands/diagram.js +0 -39
  690. package/dist/cli/commands/diff.js +0 -57
  691. package/dist/cli/commands/docs.js +0 -74
  692. package/dist/cli/commands/export.js +0 -153
  693. package/dist/cli/commands/grammar.js +0 -40
  694. package/dist/cli/commands/implement.js +0 -91
  695. package/dist/cli/commands/init-personas.js +0 -541
  696. package/dist/cli/commands/init.js +0 -797
  697. package/dist/cli/commands/market.js +0 -440
  698. package/dist/cli/commands/mcp-setup.js +0 -433
  699. package/dist/cli/commands/migrate.js +0 -91
  700. package/dist/cli/commands/modify.js +0 -58
  701. package/dist/cli/commands/openapi.js +0 -71
  702. package/dist/cli/commands/org.d.ts +0 -8
  703. package/dist/cli/commands/org.js +0 -136
  704. package/dist/cli/commands/pattern.d.ts +0 -34
  705. package/dist/cli/commands/pattern.js +0 -186
  706. package/dist/cli/commands/plugin.d.ts +0 -16
  707. package/dist/cli/commands/plugin.js +0 -176
  708. package/dist/cli/commands/run.js +0 -742
  709. package/dist/cli/commands/serve.js +0 -93
  710. package/dist/cli/commands/status.js +0 -123
  711. package/dist/cli/commands/strip.js +0 -61
  712. package/dist/cli/commands/templates.js +0 -58
  713. package/dist/cli/commands/validate.js +0 -267
  714. package/dist/cli/commands/watch.js +0 -71
  715. package/dist/cli/config/credentials.d.ts +0 -15
  716. package/dist/cli/config/credentials.js +0 -43
  717. package/dist/cli/config/platform-client.d.ts +0 -123
  718. package/dist/cli/config/platform-client.js +0 -248
  719. package/dist/cli/env-setup.js +0 -12
  720. package/dist/cli/index.js +0 -850
  721. package/dist/cli/pack-commands.js +0 -122
  722. package/dist/cli/postinstall.d.ts +0 -16
  723. package/dist/cli/postinstall.js +0 -119
  724. package/dist/cli/templates/ai/mock-provider.js +0 -64
  725. package/dist/cli/templates/ai/types.js +0 -5
  726. package/dist/cli/templates/approvals/index.d.ts +0 -15
  727. package/dist/cli/templates/approvals/index.js +0 -241
  728. package/dist/cli/templates/index.js +0 -123
  729. package/dist/cli/templates/nodes/agent-router.js +0 -114
  730. package/dist/cli/templates/nodes/aggregator.js +0 -63
  731. package/dist/cli/templates/nodes/conversation-memory.js +0 -85
  732. package/dist/cli/templates/nodes/http.js +0 -80
  733. package/dist/cli/templates/nodes/human-approval.js +0 -109
  734. package/dist/cli/templates/nodes/json-extractor.js +0 -119
  735. package/dist/cli/templates/nodes/llm-call.js +0 -106
  736. package/dist/cli/templates/nodes/prompt-template.js +0 -52
  737. package/dist/cli/templates/nodes/rag-retriever.js +0 -128
  738. package/dist/cli/templates/nodes/tool-executor.js +0 -108
  739. package/dist/cli/templates/nodes/transformer.js +0 -68
  740. package/dist/cli/templates/nodes/validator.js +0 -62
  741. package/dist/cli/templates/pack-loader.js +0 -58
  742. package/dist/cli/templates/providers/index.js +0 -239
  743. package/dist/cli/templates/shared/approval-types.js +0 -31
  744. package/dist/cli/templates/shared/llm-types.js +0 -109
  745. package/dist/cli/templates/workflows/aggregator.js +0 -101
  746. package/dist/cli/templates/workflows/ai-agent.js +0 -326
  747. package/dist/cli/templates/workflows/ai-chat.js +0 -167
  748. package/dist/cli/templates/workflows/ai-rag.js +0 -184
  749. package/dist/cli/templates/workflows/ai-react.js +0 -293
  750. package/dist/cli/templates/workflows/conditional.js +0 -139
  751. package/dist/cli/templates/workflows/error-handler.js +0 -145
  752. package/dist/cli/templates/workflows/foreach.js +0 -140
  753. package/dist/cli/templates/workflows/sequential.js +0 -200
  754. package/dist/cli/templates/workflows/webhook.js +0 -158
  755. package/dist/cli/utils/cli-helpers.d.ts +0 -44
  756. package/dist/cli/utils/cli-helpers.js +0 -99
  757. package/dist/cli/utils/logger.js +0 -126
  758. package/dist/cli/utils/parse-int-strict.js +0 -17
  759. package/dist/cli/utils/safe-write.js +0 -54
  760. package/dist/deployment/config/defaults.d.ts +0 -29
  761. package/dist/deployment/config/defaults.js +0 -98
  762. package/dist/deployment/config/loader.d.ts +0 -24
  763. package/dist/deployment/config/loader.js +0 -237
  764. package/dist/deployment/config/types.d.ts +0 -117
  765. package/dist/deployment/config/types.js +0 -5
  766. package/dist/deployment/core/adapters.d.ts +0 -66
  767. package/dist/deployment/core/adapters.js +0 -156
  768. package/dist/deployment/core/executor.d.ts +0 -62
  769. package/dist/deployment/core/executor.js +0 -197
  770. package/dist/deployment/core/formatters.d.ts +0 -42
  771. package/dist/deployment/core/formatters.js +0 -146
  772. package/dist/deployment/openapi/generator.d.ts +0 -146
  773. package/dist/deployment/openapi/generator.js +0 -347
  774. package/dist/deployment/openapi/schema-converter.d.ts +0 -49
  775. package/dist/deployment/openapi/schema-converter.js +0 -192
  776. package/dist/deployment/targets/base.js +0 -855
  777. package/dist/deployment/types.d.ts +0 -140
  778. package/dist/deployment/types.js +0 -8
  779. package/dist/diagram/ascii-renderer.js +0 -528
  780. package/dist/diagram/geometry.js +0 -1267
  781. package/dist/diagram/html-viewer.d.ts +0 -21
  782. package/dist/diagram/html-viewer.js +0 -1689
  783. package/dist/diagram/layout.js +0 -143
  784. package/dist/diagram/orthogonal-router.js +0 -568
  785. package/dist/diagram/renderer.d.ts +0 -3
  786. package/dist/diagram/renderer.js +0 -266
  787. package/dist/diagram/theme.js +0 -282
  788. package/dist/diagram/types.js +0 -2
  789. package/dist/diff/WorkflowDiffer.js +0 -429
  790. package/dist/diff/formatDiff.js +0 -239
  791. package/dist/diff/impact.js +0 -119
  792. package/dist/diff/types.js +0 -35
  793. package/dist/doc-metadata/extractors/annotations.js +0 -638
  794. package/dist/doc-metadata/extractors/cli-commands.js +0 -326
  795. package/dist/doc-metadata/extractors/core-metadata.js +0 -61
  796. package/dist/doc-metadata/extractors/error-codes.js +0 -372
  797. package/dist/doc-metadata/extractors/grammar-rules.js +0 -51
  798. package/dist/doc-metadata/extractors/mcp-tools.js +0 -705
  799. package/dist/doc-metadata/extractors/plugin-api.d.ts +0 -19
  800. package/dist/doc-metadata/extractors/plugin-api.js +0 -279
  801. package/dist/doc-metadata/types.js +0 -5
  802. package/dist/editor-completions/annotationValues.js +0 -146
  803. package/dist/editor-completions/contextParser.js +0 -410
  804. package/dist/editor-completions/dataTypes.js +0 -95
  805. package/dist/editor-completions/goToDefinition.js +0 -112
  806. package/dist/editor-completions/jsDocAnnotations.js +0 -359
  807. package/dist/editor-completions/modifierCompletions.js +0 -197
  808. package/dist/editor-completions/types.js +0 -8
  809. package/dist/export/index.js +0 -212
  810. package/dist/extensions/index.d.ts +0 -16
  811. package/dist/extensions/index.js +0 -17
  812. package/dist/friendly-errors.js +0 -761
  813. package/dist/function-like.js +0 -84
  814. package/dist/generator/async-detection.js +0 -56
  815. package/dist/generator/code-utils.js +0 -551
  816. package/dist/generator/compile-target-registry.d.ts +0 -20
  817. package/dist/generator/compile-target-registry.js +0 -20
  818. package/dist/generator/control-flow.js +0 -358
  819. package/dist/generator/dev-mode-registry.d.ts +0 -27
  820. package/dist/generator/dev-mode-registry.js +0 -20
  821. package/dist/generator/scope-function-generator.js +0 -397
  822. package/dist/generator/unified.js +0 -1831
  823. package/dist/generator.d.ts +0 -54
  824. package/dist/generator.js +0 -101
  825. package/dist/jsdoc-parser.d.ts +0 -377
  826. package/dist/jsdoc-parser.js +0 -1189
  827. package/dist/jsdoc-port-sync/constants.js +0 -103
  828. package/dist/jsdoc-port-sync/diff.js +0 -319
  829. package/dist/jsdoc-port-sync/port-parser.js +0 -579
  830. package/dist/jsdoc-port-sync/rename.js +0 -256
  831. package/dist/jsdoc-port-sync/signature-parser.js +0 -559
  832. package/dist/jsdoc-port-sync/sync.js +0 -653
  833. package/dist/marketplace/manifest.js +0 -194
  834. package/dist/marketplace/registry.js +0 -198
  835. package/dist/marketplace/types.js +0 -9
  836. package/dist/marketplace/validator.js +0 -150
  837. package/dist/mcp/agent-channel.d.ts +0 -35
  838. package/dist/mcp/agent-channel.js +0 -61
  839. package/dist/mcp/auto-registration.d.ts +0 -3
  840. package/dist/mcp/auto-registration.js +0 -62
  841. package/dist/mcp/debug-session.js +0 -25
  842. package/dist/mcp/index.d.ts +0 -11
  843. package/dist/mcp/index.js +0 -10
  844. package/dist/mcp/pack-tools.js +0 -59
  845. package/dist/mcp/prompts.js +0 -68
  846. package/dist/mcp/response-utils.js +0 -97
  847. package/dist/mcp/run-registry.d.ts +0 -29
  848. package/dist/mcp/run-registry.js +0 -24
  849. package/dist/mcp/server.js +0 -63
  850. package/dist/mcp/tools-context.js +0 -51
  851. package/dist/mcp/tools-debug.js +0 -451
  852. package/dist/mcp/tools-diagram.js +0 -97
  853. package/dist/mcp/tools-docs.js +0 -62
  854. package/dist/mcp/tools-export.js +0 -222
  855. package/dist/mcp/tools-marketplace.js +0 -132
  856. package/dist/mcp/tools-model.d.ts +0 -3
  857. package/dist/mcp/tools-model.js +0 -279
  858. package/dist/mcp/tools-pattern.d.ts +0 -3
  859. package/dist/mcp/tools-pattern.js +0 -604
  860. package/dist/mcp/tools-query.js +0 -377
  861. package/dist/mcp/tools-resources.js +0 -41
  862. package/dist/mcp/tools-template.js +0 -119
  863. package/dist/mcp/tools-workflow-run.d.ts +0 -40
  864. package/dist/mcp/tools-workflow-run.js +0 -150
  865. package/dist/mcp/types.js +0 -2
  866. package/dist/mcp/workflow-executor.js +0 -242
  867. package/dist/migration/registry.js +0 -29
  868. package/dist/node-types-generator.js +0 -139
  869. package/dist/parser/tag-registry.js +0 -57
  870. package/dist/parser.d.ts +0 -232
  871. package/dist/parser.js +0 -2500
  872. package/dist/plugin/PluginPanel.d.ts +0 -12
  873. package/dist/plugin/PluginPanel.js +0 -5
  874. package/dist/plugin/index.d.ts +0 -13
  875. package/dist/plugin/index.js +0 -14
  876. package/dist/plugin/types.d.ts +0 -75
  877. package/dist/plugin/types.js +0 -8
  878. package/dist/resolve-package-types.js +0 -123
  879. package/dist/runtime/CancellationError.js +0 -20
  880. package/dist/runtime/ExecutionContext.js +0 -280
  881. package/dist/runtime/builtin-functions.js +0 -549
  882. package/dist/runtime/checkpoint.d.ts +0 -84
  883. package/dist/runtime/checkpoint.js +0 -225
  884. package/dist/runtime/debug-controller.js +0 -247
  885. package/dist/runtime/events.js +0 -2
  886. package/dist/runtime/function-registry.js +0 -66
  887. package/dist/runtime/parameter-resolver.js +0 -113
  888. package/dist/server/types.js +0 -5
  889. package/dist/server/webhook-server.js +0 -269
  890. package/dist/server/workflow-registry.js +0 -202
  891. package/dist/shared-project.js +0 -28
  892. package/dist/sugar-optimizer.js +0 -498
  893. package/dist/testing/assertions.js +0 -127
  894. package/dist/testing/mock-approval.js +0 -98
  895. package/dist/testing/mock-llm.js +0 -119
  896. package/dist/testing/recorder.js +0 -70
  897. package/dist/testing/replayer.js +0 -143
  898. package/dist/testing/token-tracker.js +0 -94
  899. package/dist/type-checker.d.ts +0 -42
  900. package/dist/type-checker.js +0 -190
  901. package/dist/type-mappings.js +0 -131
  902. package/dist/types/branded-ports.d.ts +0 -151
  903. package/dist/types/branded-ports.js +0 -121
  904. package/dist/types/index.d.ts +0 -5
  905. package/dist/types/index.js +0 -5
  906. package/dist/types.d.ts +0 -139
  907. package/dist/types.js +0 -15
  908. package/dist/utils/error-utils.js +0 -27
  909. package/dist/utils/lru-cache.js +0 -40
  910. package/dist/utils/port-ordering.js +0 -81
  911. package/dist/utils/port-tag-utils.js +0 -41
  912. package/dist/utils/string-distance.js +0 -56
  913. package/dist/validation/agent-detection.js +0 -115
  914. package/dist/validation/agent-rules.js +0 -262
  915. package/dist/validation/design-rules.js +0 -377
  916. package/dist/validation/rule-registry.js +0 -37
  917. package/dist/validator.d.ts +0 -113
  918. package/dist/validator.js +0 -1631
  919. package/docs/reference/patterns.md +0 -159
  920. package/scripts/postinstall.cjs +0 -86
  921. /package/dist/{shared-project.d.ts → parser/shared-project.d.ts} +0 -0
  922. /package/dist/{friendly-errors.d.ts → validation/friendly-errors.d.ts} +0 -0
@@ -1,181 +1,1250 @@
1
- /**
2
- * Editor Completions - Public API
3
- *
4
- * Editor-agnostic completion utilities for Flow Weaver.
5
- * Use these with any editor (CodeMirror, VS Code, Monaco, etc.)
6
- */
7
- // Re-export types
8
- export * from './types.js';
9
- // Re-export utilities
10
- export { parseCompletionContext, getWordAtPosition, detectSymbolType, detectBlockType, } from './contextParser.js';
11
- export { getAnnotationCompletions, JSDOC_ANNOTATIONS } from './jsDocAnnotations.js';
12
- export { getDataTypeCompletions, DATA_TYPES } from './dataTypes.js';
13
- export { getDefinitionLocation } from './goToDefinition.js';
14
- export { getAnnotationValueCompletions } from './annotationValues.js';
15
- export { getModifierCompletions, getModifierValueCompletions } from './modifierCompletions.js';
16
- import { parseCompletionContext } from './contextParser.js';
17
- import { getAnnotationCompletions } from './jsDocAnnotations.js';
18
- import { getDataTypeCompletions } from './dataTypes.js';
19
- import { getAnnotationValueCompletions } from './annotationValues.js';
20
- import { getModifierCompletions, getModifierValueCompletions } from './modifierCompletions.js';
21
- /**
22
- * Get Flow Weaver completions for the current cursor position.
23
- *
24
- * This is the main entry point for editor integrations.
25
- *
26
- * @param lineText - The full text of the current line
27
- * @param cursorOffset - Cursor position within the line (0-based)
28
- * @param isInJSDoc - Whether the cursor is inside a JSDoc block
29
- * @param context - Optional workflow context for nodeType/port completions
30
- * @param precedingBlockLines - Optional lines from start of JSDoc block to cursor line
31
- * @returns Array of completion suggestions
32
- *
33
- * @example
34
- * ```typescript
35
- * // In a CodeMirror completion source:
36
- * const completions = getFlowWeaverCompletions(
37
- * " * @inp",
38
- * 7,
39
- * true
40
- * );
41
- * // Returns: [{ label: "@input", ... }]
42
- * ```
43
- */
44
- export function getFlowWeaverCompletions(lineText, cursorOffset, isInJSDoc, context, precedingBlockLines) {
45
- // Parse the context to determine what completions to show
46
- const completionContext = parseCompletionContext(lineText, cursorOffset, isInJSDoc, precedingBlockLines);
47
- if (!completionContext) {
48
- return [];
49
- }
50
- switch (completionContext.type) {
51
- case 'annotation':
52
- return getAnnotationCompletions(completionContext.prefix, completionContext.blockType, completionContext.existingAnnotations);
53
- case 'dataType':
54
- return getDataTypeCompletions(completionContext.prefix);
55
- case 'nodeType':
56
- return getNodeTypeCompletions(completionContext.prefix, context);
57
- case 'nodeId':
58
- return getNodeIdCompletions(completionContext.prefix, context);
59
- case 'port':
60
- return getPortCompletions(completionContext.nodeId || '', completionContext.portDirection || 'output', completionContext.prefix, context, completionContext.lineText);
61
- case 'annotationValue':
62
- return getAnnotationValueCompletions(completionContext.annotation || '', completionContext.prefix);
63
- case 'modifier':
64
- return getModifierCompletions(completionContext.annotation || null, completionContext.prefix);
65
- case 'modifierValue':
66
- return getModifierValueCompletions(completionContext.modifier || '', completionContext.prefix);
67
- default:
68
- return [];
69
- }
70
- }
71
- /**
72
- * Get nodeType completions from workflow context.
73
- */
1
+ import "../chunks/chunk-SEWDMQ6Q.js";
2
+
3
+ // src/editor-completions/contextParser.ts
4
+ var ANNOTATION_PATTERN = /@(\w*)$/;
5
+ var DATA_TYPE_PATTERN = /@(?:input|output)\s+\{(\w*)$/;
6
+ var NODE_TYPE_PATTERN = /@node\s+(\w+)\s+(\w*)$/;
7
+ var CONNECT_NODE_PATTERN = /@connect\s+(\w*)$/;
8
+ var CONNECT_SOURCE_PORT_PATTERN = /@connect\s+(\w+)\.(\w*)$/;
9
+ var CONNECT_TARGET_NODE_PATTERN = /@connect\s+\w+\.\w+\s*->\s*(\w*)$/;
10
+ var CONNECT_TARGET_PORT_PATTERN = /@connect\s+\w+\.\w+\s*->\s*(\w+)\.(\w*)$/;
11
+ var EXECUTE_WHEN_VALUE_PATTERN = /@executeWhen\s+(\w*)$/;
12
+ var FLOW_WEAVER_VALUE_PATTERN = /@flowWeaver\s+(\w*)$/;
13
+ var COLOR_VALUE_PATTERN = /@color\s+(\w*)$/;
14
+ var PATH_NODE_PATTERN = /@path\s+(?:\w+(?::\w+)?\s*->\s*)+(\w*)$/;
15
+ var SCOPE_NODE_PATTERN = /@scope\s+\w+\s*\[(?:\w+\s*,\s*)*(\w*)$/;
16
+ var MAP_PORT_PATTERN = /@map\s+\w+\s+\w+\s+over\s+(\w+)\.(\w*)$/;
17
+ var MAP_OVER_NODE_PATTERN = /@map\s+\w+\s+\w+\s+over\s+(\w*)$/;
18
+ var MAP_TYPE_PATTERN = /@map\s+\w+\s+(\w*)$/;
19
+ var MAP_NODE_PATTERN = /@map\s+(\w*)$/;
20
+ var MODIFIER_NAME_PATTERN = /\[(\w*)$/;
21
+ var MODIFIER_VALUE_PATTERN = /\[(\w+):\s*(\w*)$/;
22
+ function detectBlockType(precedingBlockLines) {
23
+ for (const line of precedingBlockLines) {
24
+ const match = line.match(/@flowWeaver\s+(nodeType|workflow)\b/);
25
+ if (match) {
26
+ return match[1];
27
+ }
28
+ if (/@flowWeaver\s*$/.test(line.trim()) || /@flowWeaver\s+(?!nodeType|workflow)\w/.test(line)) {
29
+ return "workflow";
30
+ }
31
+ }
32
+ return null;
33
+ }
34
+ function detectLineAnnotation(lineText) {
35
+ const match = lineText.match(/@(\w+)/);
36
+ return match ? "@" + match[1] : null;
37
+ }
38
+ function parseCompletionContext(lineText, cursorOffset, isInJSDoc, precedingBlockLines) {
39
+ if (!isInJSDoc) {
40
+ return null;
41
+ }
42
+ const textBeforeCursor = lineText.slice(0, cursorOffset);
43
+ const blockType = precedingBlockLines ? detectBlockType(precedingBlockLines) : null;
44
+ let match;
45
+ match = textBeforeCursor.match(MAP_PORT_PATTERN);
46
+ if (match) {
47
+ return {
48
+ type: "port",
49
+ lineText,
50
+ cursorOffset,
51
+ prefix: match[2],
52
+ nodeId: match[1],
53
+ portDirection: "output",
54
+ blockType
55
+ };
56
+ }
57
+ match = textBeforeCursor.match(MAP_OVER_NODE_PATTERN);
58
+ if (match) {
59
+ return {
60
+ type: "nodeId",
61
+ lineText,
62
+ cursorOffset,
63
+ prefix: match[1],
64
+ blockType
65
+ };
66
+ }
67
+ match = textBeforeCursor.match(MAP_TYPE_PATTERN);
68
+ if (match) {
69
+ return {
70
+ type: "nodeType",
71
+ lineText,
72
+ cursorOffset,
73
+ prefix: match[1],
74
+ blockType
75
+ };
76
+ }
77
+ match = textBeforeCursor.match(MAP_NODE_PATTERN);
78
+ if (match) {
79
+ return {
80
+ type: "nodeId",
81
+ lineText,
82
+ cursorOffset,
83
+ prefix: match[1],
84
+ blockType
85
+ };
86
+ }
87
+ match = textBeforeCursor.match(PATH_NODE_PATTERN);
88
+ if (match) {
89
+ return {
90
+ type: "nodeId",
91
+ lineText,
92
+ cursorOffset,
93
+ prefix: match[1],
94
+ blockType
95
+ };
96
+ }
97
+ match = textBeforeCursor.match(SCOPE_NODE_PATTERN);
98
+ if (match) {
99
+ return {
100
+ type: "nodeId",
101
+ lineText,
102
+ cursorOffset,
103
+ prefix: match[1],
104
+ blockType
105
+ };
106
+ }
107
+ match = textBeforeCursor.match(CONNECT_TARGET_PORT_PATTERN);
108
+ if (match) {
109
+ return {
110
+ type: "port",
111
+ lineText,
112
+ cursorOffset,
113
+ prefix: match[2],
114
+ nodeId: match[1],
115
+ portDirection: "input",
116
+ // Target receives, so needs input port
117
+ blockType
118
+ };
119
+ }
120
+ match = textBeforeCursor.match(CONNECT_TARGET_NODE_PATTERN);
121
+ if (match) {
122
+ return {
123
+ type: "nodeId",
124
+ lineText,
125
+ cursorOffset,
126
+ prefix: match[1],
127
+ blockType
128
+ };
129
+ }
130
+ match = textBeforeCursor.match(CONNECT_SOURCE_PORT_PATTERN);
131
+ if (match) {
132
+ return {
133
+ type: "port",
134
+ lineText,
135
+ cursorOffset,
136
+ prefix: match[2],
137
+ nodeId: match[1],
138
+ portDirection: "output",
139
+ // Source sends, so needs output port
140
+ blockType
141
+ };
142
+ }
143
+ match = textBeforeCursor.match(CONNECT_NODE_PATTERN);
144
+ if (match) {
145
+ return {
146
+ type: "nodeId",
147
+ lineText,
148
+ cursorOffset,
149
+ prefix: match[1],
150
+ blockType
151
+ };
152
+ }
153
+ match = textBeforeCursor.match(NODE_TYPE_PATTERN);
154
+ if (match) {
155
+ return {
156
+ type: "nodeType",
157
+ lineText,
158
+ cursorOffset,
159
+ prefix: match[2],
160
+ blockType
161
+ };
162
+ }
163
+ match = textBeforeCursor.match(DATA_TYPE_PATTERN);
164
+ if (match) {
165
+ return {
166
+ type: "dataType",
167
+ lineText,
168
+ cursorOffset,
169
+ prefix: match[1],
170
+ blockType
171
+ };
172
+ }
173
+ match = textBeforeCursor.match(MODIFIER_VALUE_PATTERN);
174
+ if (match) {
175
+ return {
176
+ type: "modifierValue",
177
+ lineText,
178
+ cursorOffset,
179
+ prefix: match[2],
180
+ modifier: match[1],
181
+ blockType
182
+ };
183
+ }
184
+ match = textBeforeCursor.match(MODIFIER_NAME_PATTERN);
185
+ if (match) {
186
+ const lineAnnotation = detectLineAnnotation(lineText);
187
+ return {
188
+ type: "modifier",
189
+ lineText,
190
+ cursorOffset,
191
+ prefix: match[1],
192
+ annotation: lineAnnotation ?? void 0,
193
+ blockType
194
+ };
195
+ }
196
+ match = textBeforeCursor.match(EXECUTE_WHEN_VALUE_PATTERN);
197
+ if (match) {
198
+ return {
199
+ type: "annotationValue",
200
+ lineText,
201
+ cursorOffset,
202
+ prefix: match[1],
203
+ annotation: "@executeWhen",
204
+ blockType
205
+ };
206
+ }
207
+ match = textBeforeCursor.match(FLOW_WEAVER_VALUE_PATTERN);
208
+ if (match) {
209
+ return {
210
+ type: "annotationValue",
211
+ lineText,
212
+ cursorOffset,
213
+ prefix: match[1],
214
+ annotation: "@flowWeaver",
215
+ blockType
216
+ };
217
+ }
218
+ match = textBeforeCursor.match(COLOR_VALUE_PATTERN);
219
+ if (match) {
220
+ return {
221
+ type: "annotationValue",
222
+ lineText,
223
+ cursorOffset,
224
+ prefix: match[1],
225
+ annotation: "@color",
226
+ blockType
227
+ };
228
+ }
229
+ match = textBeforeCursor.match(ANNOTATION_PATTERN);
230
+ if (match) {
231
+ let existingAnnotations;
232
+ if (precedingBlockLines) {
233
+ const annotations = [];
234
+ for (const line of precedingBlockLines) {
235
+ const annoMatch = line.match(/@(\w+)/);
236
+ if (annoMatch) {
237
+ annotations.push(annoMatch[1]);
238
+ }
239
+ }
240
+ if (annotations.length > 0) {
241
+ existingAnnotations = annotations;
242
+ }
243
+ }
244
+ return {
245
+ type: "annotation",
246
+ lineText,
247
+ cursorOffset,
248
+ prefix: match[1],
249
+ blockType,
250
+ existingAnnotations
251
+ };
252
+ }
253
+ return null;
254
+ }
255
+ function getWordAtPosition(lineText, offset) {
256
+ const charAtOffset = lineText[offset];
257
+ if (!/\w/.test(charAtOffset || "")) {
258
+ return null;
259
+ }
260
+ let start = offset;
261
+ let end = offset;
262
+ while (start > 0 && /\w/.test(lineText[start - 1])) {
263
+ start--;
264
+ }
265
+ while (end < lineText.length && /\w/.test(lineText[end])) {
266
+ end++;
267
+ }
268
+ if (start === end) {
269
+ return null;
270
+ }
271
+ return {
272
+ word: lineText.slice(start, end),
273
+ start,
274
+ end
275
+ };
276
+ }
277
+ function detectSymbolType(lineText, offset) {
278
+ const wordInfo = getWordAtPosition(lineText, offset);
279
+ if (!wordInfo) {
280
+ return null;
281
+ }
282
+ const { word, start } = wordInfo;
283
+ const textBefore = lineText.slice(0, start);
284
+ const nodeTypeMatch = textBefore.match(/@node\s+\w+\s+$/);
285
+ if (nodeTypeMatch) {
286
+ return { type: "nodeType", name: word };
287
+ }
288
+ const connectNodeMatch = textBefore.match(/@connect\s+$/);
289
+ if (connectNodeMatch) {
290
+ return { type: "nodeId", name: word };
291
+ }
292
+ const portMatch = textBefore.match(/@connect\s+(\w+)\.$/);
293
+ if (portMatch) {
294
+ return { type: "port", name: word, nodeId: portMatch[1] };
295
+ }
296
+ const targetNodeMatch = textBefore.match(/@connect\s+\w+\.\w+\s*->\s*$/);
297
+ if (targetNodeMatch) {
298
+ return { type: "nodeId", name: word };
299
+ }
300
+ const targetPortMatch = textBefore.match(/@connect\s+\w+\.\w+\s*->\s*(\w+)\.$/);
301
+ if (targetPortMatch) {
302
+ return { type: "port", name: word, nodeId: targetPortMatch[1] };
303
+ }
304
+ const sugarNodeMatch = textBefore.match(/@path\s+(?:(?:\w+(?::\w+)?\s*(?:->|,)\s*)*)$/);
305
+ if (sugarNodeMatch) {
306
+ return { type: "nodeId", name: word };
307
+ }
308
+ return null;
309
+ }
310
+
311
+ // src/editor-completions/jsDocAnnotations.ts
312
+ var JSDOC_ANNOTATIONS = [
313
+ // Core annotations
314
+ {
315
+ label: "@flowWeaver",
316
+ detail: "Mark function as Flow Weaver workflow",
317
+ documentation: "Indicates this function should be parsed as a Flow Weaver workflow with visual node graph.",
318
+ insertText: "@flowWeaver ",
319
+ insertTextFormat: "plain",
320
+ kind: "annotation",
321
+ sortOrder: 0
322
+ },
323
+ {
324
+ label: "@flowWeaver nodeType",
325
+ detail: "Mark function as reusable node type",
326
+ documentation: "Defines a reusable node type that can be instantiated in workflows.",
327
+ insertText: "@flowWeaver nodeType",
328
+ insertTextFormat: "plain",
329
+ kind: "annotation",
330
+ sortOrder: 1
331
+ },
332
+ // Port definitions (nodeType-only)
333
+ {
334
+ label: "@input",
335
+ detail: "Define input port",
336
+ documentation: "Declares an input port for data or control flow.\nFormat: @input name - description",
337
+ insertText: "@input ${1:name}",
338
+ insertTextFormat: "snippet",
339
+ kind: "annotation",
340
+ sortOrder: 10,
341
+ blockTypes: ["nodeType"]
342
+ },
343
+ {
344
+ label: "@output",
345
+ detail: "Define output port",
346
+ documentation: "Declares an output port for data or control flow.\nFormat: @output name - description",
347
+ insertText: "@output ${1:name}",
348
+ insertTextFormat: "snippet",
349
+ kind: "annotation",
350
+ sortOrder: 11,
351
+ blockTypes: ["nodeType"]
352
+ },
353
+ {
354
+ label: "@step",
355
+ detail: "Define step (control flow) port",
356
+ documentation: "Declares a STEP port for control flow. Shorthand for @input name [type:STEP] or @output name [type:STEP].",
357
+ insertText: "@step ${1:name}",
358
+ insertTextFormat: "snippet",
359
+ kind: "annotation",
360
+ sortOrder: 12,
361
+ blockTypes: ["nodeType"]
362
+ },
363
+ // Node declarations (workflow-only)
364
+ {
365
+ label: "@node",
366
+ detail: "Declare node instance",
367
+ documentation: "Declares a node instance in the workflow.\nFormat: @node instanceId NodeTypeName",
368
+ insertText: "@node ${1:id} ${2:NodeType}",
369
+ insertTextFormat: "snippet",
370
+ kind: "annotation",
371
+ sortOrder: 20,
372
+ blockTypes: ["workflow"]
373
+ },
374
+ {
375
+ label: "@connect",
376
+ detail: "Define connection between ports",
377
+ documentation: "Connects an output port to an input port.\nFormat: @connect sourceNode.outPort -> targetNode.inPort",
378
+ insertText: "@connect ${1:from}.${2:port} -> ${3:to}.${4:port}",
379
+ insertTextFormat: "snippet",
380
+ kind: "annotation",
381
+ sortOrder: 21,
382
+ blockTypes: ["workflow"]
383
+ },
384
+ {
385
+ label: "@fwImport",
386
+ detail: "Import npm node type",
387
+ documentation: 'Imports a node type from an npm package.\nFormat: @fwImport name fn from "package"',
388
+ insertText: '@fwImport ${1:name} ${2:fn} from "${3:pkg}"',
389
+ insertTextFormat: "snippet",
390
+ kind: "annotation",
391
+ sortOrder: 22,
392
+ blockTypes: ["workflow"]
393
+ },
394
+ {
395
+ label: "@path",
396
+ detail: "Multi-node execution route",
397
+ documentation: "Declare a complete execution route through the graph with scope walking for data ports.\nFormat: @path Start -> nodeA:ok -> nodeB:fail -> Exit",
398
+ insertText: "@path Start -> ${1:node1} -> ${2:node2} -> Exit",
399
+ insertTextFormat: "snippet",
400
+ kind: "annotation",
401
+ sortOrder: 25,
402
+ blockTypes: ["workflow"]
403
+ },
404
+ {
405
+ label: "@trigger",
406
+ detail: "Set workflow trigger (event or cron)",
407
+ documentation: 'Defines how this workflow is triggered.\nFormats:\n @trigger event="my/event"\n @trigger cron="0 9 * * *"\n @trigger event="my/event" cron="0 9 * * *"',
408
+ insertText: '@trigger ${1|event,cron|}="${2:value}"',
409
+ insertTextFormat: "snippet",
410
+ kind: "annotation",
411
+ sortOrder: 15,
412
+ blockTypes: ["workflow"]
413
+ },
414
+ {
415
+ label: "@http",
416
+ detail: "Serve the workflow on an HTTP route",
417
+ documentation: "Makes the workflow an endpoint of fw serve and the embeddable server. Path :params bind to workflow params by name. GET reads the query string, other methods the JSON body. The return ports are the response.\nFormats:\n @http POST /reviews\n @http GET /reviews/:id\n @http POST /reviews mode=async callback\n @http POST /hooks/github auth=none",
418
+ insertText: "@http ${1|POST,GET,PUT,PATCH,DELETE|} /${2:path}",
419
+ insertTextFormat: "snippet",
420
+ kind: "annotation",
421
+ sortOrder: 15,
422
+ blockTypes: ["workflow"]
423
+ },
424
+ {
425
+ label: "@cancelOn",
426
+ detail: "Cancel on external event",
427
+ documentation: 'Cancels a running workflow when a matching event arrives.\nFormat: @cancelOn event="app/user.deleted" match="data.userId"',
428
+ insertText: '@cancelOn event="${1:event/name}" match="${2:data.field}"',
429
+ insertTextFormat: "snippet",
430
+ kind: "annotation",
431
+ sortOrder: 16,
432
+ blockTypes: ["workflow"]
433
+ },
434
+ {
435
+ label: "@retries",
436
+ detail: "Set retry count",
437
+ documentation: "Number of times to retry on failure.\nFormat: @retries 5",
438
+ insertText: "@retries ${1:3}",
439
+ insertTextFormat: "snippet",
440
+ kind: "annotation",
441
+ sortOrder: 17,
442
+ blockTypes: ["workflow"]
443
+ },
444
+ {
445
+ label: "@timeout",
446
+ detail: "Set function timeout",
447
+ documentation: 'Maximum execution time before function is terminated.\nFormat: @timeout "30m"',
448
+ insertText: '@timeout "${1:30m}"',
449
+ insertTextFormat: "snippet",
450
+ kind: "annotation",
451
+ sortOrder: 18,
452
+ blockTypes: ["workflow"]
453
+ },
454
+ {
455
+ label: "@throttle",
456
+ detail: "Rate limit execution",
457
+ documentation: 'Limits execution rate to prevent overwhelming downstream services.\nFormat: @throttle limit=3 period="1m"',
458
+ insertText: '@throttle limit=${1:3} period="${2:1m}"',
459
+ insertTextFormat: "snippet",
460
+ kind: "annotation",
461
+ sortOrder: 19,
462
+ blockTypes: ["workflow"]
463
+ },
464
+ {
465
+ label: "@strictTypes",
466
+ detail: "Strict type checking",
467
+ documentation: "Enables strict type checking for connections in this workflow.",
468
+ insertText: "@strictTypes",
469
+ insertTextFormat: "plain",
470
+ kind: "annotation",
471
+ sortOrder: 24,
472
+ blockTypes: ["workflow"]
473
+ },
474
+ // Metadata (both or specific)
475
+ {
476
+ label: "@label",
477
+ detail: "Set display label",
478
+ documentation: "Sets a human-readable label for the workflow or node.",
479
+ insertText: '@label "${1:Label}"',
480
+ insertTextFormat: "snippet",
481
+ kind: "annotation",
482
+ sortOrder: 30
483
+ },
484
+ {
485
+ label: "@scope",
486
+ detail: "Define iteration scope",
487
+ documentation: "Defines a scope for iteration patterns (forEach, map, etc.).",
488
+ insertText: "@scope ${1:scopeName}",
489
+ insertTextFormat: "snippet",
490
+ kind: "annotation",
491
+ sortOrder: 31,
492
+ blockTypes: ["nodeType"]
493
+ },
494
+ {
495
+ label: "@name",
496
+ detail: "Set node type name",
497
+ documentation: "Sets the display name for a node type.",
498
+ insertText: "@name ${1:name}",
499
+ insertTextFormat: "snippet",
500
+ kind: "annotation",
501
+ sortOrder: 33,
502
+ blockTypes: ["nodeType"]
503
+ },
504
+ {
505
+ label: "@description",
506
+ detail: "Set description",
507
+ documentation: "Sets the description for a node type or workflow.",
508
+ insertText: "@description ${1:text}",
509
+ insertTextFormat: "snippet",
510
+ kind: "annotation",
511
+ sortOrder: 34,
512
+ blockTypes: ["nodeType"]
513
+ },
514
+ {
515
+ label: "@color",
516
+ detail: "Set node color",
517
+ documentation: "Sets the visual color of a node type in the editor.",
518
+ insertText: "@color ${1:color}",
519
+ insertTextFormat: "snippet",
520
+ kind: "annotation",
521
+ sortOrder: 35,
522
+ blockTypes: ["nodeType"]
523
+ },
524
+ {
525
+ label: "@icon",
526
+ detail: "Set node icon",
527
+ documentation: "Sets the icon for a node type.",
528
+ insertText: "@icon ${1:iconName}",
529
+ insertTextFormat: "snippet",
530
+ kind: "annotation",
531
+ sortOrder: 36,
532
+ blockTypes: ["nodeType"]
533
+ },
534
+ {
535
+ label: "@tag",
536
+ detail: "Add category tag",
537
+ documentation: "Adds a category tag to a node type for filtering and organization.",
538
+ insertText: "@tag ${1:tagName}",
539
+ insertTextFormat: "snippet",
540
+ kind: "annotation",
541
+ sortOrder: 37,
542
+ blockTypes: ["nodeType"]
543
+ },
544
+ {
545
+ label: "@expression",
546
+ detail: "Mark as expression node",
547
+ documentation: "Marks this node type as an expression node (pure data transformation, no control flow).",
548
+ insertText: "@expression",
549
+ insertTextFormat: "plain",
550
+ kind: "annotation",
551
+ sortOrder: 38,
552
+ blockTypes: ["nodeType"]
553
+ },
554
+ {
555
+ label: "@pullExecution",
556
+ detail: "Pull execution mode",
557
+ documentation: "Enables pull-based execution for this node type.",
558
+ insertText: "@pullExecution",
559
+ insertTextFormat: "plain",
560
+ kind: "annotation",
561
+ sortOrder: 39,
562
+ blockTypes: ["nodeType"]
563
+ },
564
+ {
565
+ label: "@executeWhen",
566
+ detail: "Execution strategy",
567
+ documentation: "Sets the execution strategy for this node type.\nValues: CONJUNCTION, DISJUNCTION, CUSTOM",
568
+ insertText: "@executeWhen ${1:CONJUNCTION}",
569
+ insertTextFormat: "snippet",
570
+ kind: "annotation",
571
+ sortOrder: 40,
572
+ blockTypes: ["nodeType"]
573
+ },
574
+ {
575
+ label: "@resilience",
576
+ detail: "Declare adapter-owned retry/fallback handling",
577
+ documentation: 'Makes retry or fallback behavior hidden in a shared adapter visible to static agent validation.\nFormat: @resilience retries=3 fallback="backup-provider"',
578
+ insertText: '@resilience retries=${1:3} fallback="${2:backup-provider}"',
579
+ insertTextFormat: "snippet",
580
+ kind: "annotation",
581
+ sortOrder: 41,
582
+ blockTypes: ["nodeType"]
583
+ },
584
+ // Standard JSDoc (for completeness)
585
+ {
586
+ label: "@param",
587
+ detail: "Document parameter",
588
+ documentation: "Standard JSDoc parameter documentation.",
589
+ insertText: "@param {${1:type}} ${2:name} - ${3:description}",
590
+ insertTextFormat: "snippet",
591
+ kind: "annotation",
592
+ sortOrder: 50
593
+ },
594
+ {
595
+ label: "@returns",
596
+ detail: "Document return value",
597
+ documentation: "Standard JSDoc return value documentation.",
598
+ insertText: "@returns {${1:type}} ${2:description}",
599
+ insertTextFormat: "snippet",
600
+ kind: "annotation",
601
+ sortOrder: 51
602
+ }
603
+ ];
604
+ var CONNECTION_ANNOTATIONS = /* @__PURE__ */ new Set(["connect", "path"]);
605
+ function getAnnotationCompletions(prefix, blockType, existingAnnotations) {
606
+ const lowerPrefix = prefix.toLowerCase();
607
+ const existing = existingAnnotations ? new Set(existingAnnotations) : void 0;
608
+ return JSDOC_ANNOTATIONS.filter((c) => {
609
+ if (!c.label.toLowerCase().startsWith("@" + lowerPrefix)) {
610
+ return false;
611
+ }
612
+ if (blockType && c.blockTypes) {
613
+ return c.blockTypes.includes(blockType);
614
+ }
615
+ return true;
616
+ }).map((c) => {
617
+ if (!existing) return c;
618
+ let boost = 0;
619
+ const annotationName = c.label.replace("@", "");
620
+ if (blockType === "workflow") {
621
+ const hasNode = existing.has("node");
622
+ const hasConnection = [...CONNECTION_ANNOTATIONS].some((a) => existing.has(a));
623
+ if (hasNode && !hasConnection && CONNECTION_ANNOTATIONS.has(annotationName)) {
624
+ boost = -10;
625
+ }
626
+ } else if (blockType === "nodeType") {
627
+ const hasInput = existing.has("input");
628
+ const hasOutput = existing.has("output");
629
+ if (!hasInput && annotationName === "input") {
630
+ boost = -10;
631
+ } else if (hasInput && !hasOutput && annotationName === "output") {
632
+ boost = -10;
633
+ }
634
+ }
635
+ if (boost === 0) return c;
636
+ return { ...c, sortOrder: (c.sortOrder ?? 0) + boost };
637
+ }).sort((a, b) => (a.sortOrder ?? 0) - (b.sortOrder ?? 0));
638
+ }
639
+
640
+ // src/editor-completions/dataTypes.ts
641
+ var DATA_TYPES = [
642
+ // Control flow
643
+ {
644
+ label: "STEP",
645
+ detail: "Control flow port",
646
+ documentation: "A control flow port that triggers execution. Used for sequencing nodes.",
647
+ insertText: "STEP}",
648
+ insertTextFormat: "plain",
649
+ kind: "type",
650
+ sortOrder: 0
651
+ },
652
+ // Primitive types
653
+ {
654
+ label: "String",
655
+ detail: "Text value",
656
+ documentation: "A string/text value.",
657
+ insertText: "String}",
658
+ insertTextFormat: "plain",
659
+ kind: "type",
660
+ sortOrder: 10
661
+ },
662
+ {
663
+ label: "Number",
664
+ detail: "Numeric value",
665
+ documentation: "A numeric value (integer or floating point).",
666
+ insertText: "Number}",
667
+ insertTextFormat: "plain",
668
+ kind: "type",
669
+ sortOrder: 11
670
+ },
671
+ {
672
+ label: "Boolean",
673
+ detail: "True/false value",
674
+ documentation: "A boolean true/false value.",
675
+ insertText: "Boolean}",
676
+ insertTextFormat: "plain",
677
+ kind: "type",
678
+ sortOrder: 12
679
+ },
680
+ // Complex types
681
+ {
682
+ label: "Array",
683
+ detail: "List of values",
684
+ documentation: "An array/list of values.",
685
+ insertText: "Array}",
686
+ insertTextFormat: "plain",
687
+ kind: "type",
688
+ sortOrder: 20
689
+ },
690
+ {
691
+ label: "Object",
692
+ detail: "Key-value object",
693
+ documentation: "A JavaScript object with key-value pairs.",
694
+ insertText: "Object}",
695
+ insertTextFormat: "plain",
696
+ kind: "type",
697
+ sortOrder: 21
698
+ },
699
+ {
700
+ label: "Function",
701
+ detail: "Callable function",
702
+ documentation: "A function reference.",
703
+ insertText: "Function}",
704
+ insertTextFormat: "plain",
705
+ kind: "type",
706
+ sortOrder: 22
707
+ },
708
+ // Generic
709
+ {
710
+ label: "Any",
711
+ detail: "Any type",
712
+ documentation: "Accepts any type of value.",
713
+ insertText: "Any}",
714
+ insertTextFormat: "plain",
715
+ kind: "type",
716
+ sortOrder: 30
717
+ }
718
+ ];
719
+ function getDataTypeCompletions(prefix) {
720
+ const lowerPrefix = prefix.toLowerCase();
721
+ return DATA_TYPES.filter(
722
+ (c) => c.label.toLowerCase().startsWith(lowerPrefix)
723
+ );
724
+ }
725
+
726
+ // src/editor-completions/goToDefinition.ts
727
+ function getDefinitionLocation(lineText, offset, context) {
728
+ const symbolInfo = detectSymbolType(lineText, offset);
729
+ if (!symbolInfo) {
730
+ return null;
731
+ }
732
+ switch (symbolInfo.type) {
733
+ case "nodeType":
734
+ return findNodeTypeDefinition(symbolInfo.name, context);
735
+ case "nodeId":
736
+ return findNodeDefinition(symbolInfo.name, context);
737
+ case "port":
738
+ return findPortDefinition(symbolInfo.name, symbolInfo.nodeId, context);
739
+ }
740
+ }
741
+ function findNodeTypeDefinition(name, context) {
742
+ const nodeType = context.nodeTypes[name];
743
+ if (!nodeType) {
744
+ return null;
745
+ }
746
+ return {
747
+ type: "nodeType",
748
+ name,
749
+ filePath: nodeType.filePath,
750
+ line: nodeType.line
751
+ };
752
+ }
753
+ function findNodeDefinition(id, context) {
754
+ const instance = context.instances?.find((inst) => inst.id === id);
755
+ if (!instance) {
756
+ return null;
757
+ }
758
+ const nodeType = context.nodeTypes[instance.nodeType];
759
+ if (nodeType) {
760
+ return {
761
+ type: "node",
762
+ name: id,
763
+ filePath: nodeType.filePath,
764
+ line: nodeType.line
765
+ };
766
+ }
767
+ return {
768
+ type: "node",
769
+ name: id
770
+ };
771
+ }
772
+ function findPortDefinition(portName, nodeId, context) {
773
+ if (!nodeId) {
774
+ return null;
775
+ }
776
+ const instance = context.instances?.find((inst) => inst.id === nodeId);
777
+ if (!instance) {
778
+ return null;
779
+ }
780
+ const nodeType = context.nodeTypes[instance.nodeType];
781
+ if (!nodeType) {
782
+ return null;
783
+ }
784
+ const port = nodeType.ports.find((p) => p.name === portName);
785
+ if (!port) {
786
+ return null;
787
+ }
788
+ return {
789
+ type: "port",
790
+ name: portName,
791
+ filePath: nodeType.filePath,
792
+ line: nodeType.line
793
+ // Ideally we'd have per-port line numbers
794
+ };
795
+ }
796
+
797
+ // src/editor-completions/annotationValues.ts
798
+ var ANNOTATION_VALUES = {
799
+ "@executeWhen": [
800
+ {
801
+ label: "CONJUNCTION",
802
+ detail: "All inputs required",
803
+ documentation: "Node executes when ALL connected input step ports have fired.",
804
+ insertText: "CONJUNCTION",
805
+ insertTextFormat: "plain",
806
+ kind: "value",
807
+ sortOrder: 0
808
+ },
809
+ {
810
+ label: "DISJUNCTION",
811
+ detail: "Any input triggers",
812
+ documentation: "Node executes when ANY connected input step port has fired.",
813
+ insertText: "DISJUNCTION",
814
+ insertTextFormat: "plain",
815
+ kind: "value",
816
+ sortOrder: 1
817
+ },
818
+ {
819
+ label: "CUSTOM",
820
+ detail: "Custom execution logic",
821
+ documentation: "Node uses custom logic to determine when to execute.",
822
+ insertText: "CUSTOM",
823
+ insertTextFormat: "plain",
824
+ kind: "value",
825
+ sortOrder: 2
826
+ }
827
+ ],
828
+ "@flowWeaver": [
829
+ {
830
+ label: "workflow",
831
+ detail: "Visual workflow",
832
+ documentation: "Marks this function as a Flow Weaver workflow with a visual node graph.",
833
+ insertText: "workflow",
834
+ insertTextFormat: "plain",
835
+ kind: "value",
836
+ sortOrder: 0
837
+ },
838
+ {
839
+ label: "nodeType",
840
+ detail: "Reusable node type",
841
+ documentation: "Defines a reusable node type that can be instantiated in workflows.",
842
+ insertText: "nodeType",
843
+ insertTextFormat: "plain",
844
+ kind: "value",
845
+ sortOrder: 1
846
+ }
847
+ ],
848
+ "@color": [
849
+ {
850
+ label: "purple",
851
+ detail: "Purple node color",
852
+ insertText: "purple",
853
+ insertTextFormat: "plain",
854
+ kind: "value",
855
+ sortOrder: 0
856
+ },
857
+ {
858
+ label: "blue",
859
+ detail: "Blue node color",
860
+ insertText: "blue",
861
+ insertTextFormat: "plain",
862
+ kind: "value",
863
+ sortOrder: 1
864
+ },
865
+ {
866
+ label: "green",
867
+ detail: "Green node color",
868
+ insertText: "green",
869
+ insertTextFormat: "plain",
870
+ kind: "value",
871
+ sortOrder: 2
872
+ },
873
+ {
874
+ label: "orange",
875
+ detail: "Orange node color",
876
+ insertText: "orange",
877
+ insertTextFormat: "plain",
878
+ kind: "value",
879
+ sortOrder: 3
880
+ },
881
+ {
882
+ label: "red",
883
+ detail: "Red node color",
884
+ insertText: "red",
885
+ insertTextFormat: "plain",
886
+ kind: "value",
887
+ sortOrder: 4
888
+ },
889
+ {
890
+ label: "teal",
891
+ detail: "Teal node color (alias for cyan)",
892
+ insertText: "teal",
893
+ insertTextFormat: "plain",
894
+ kind: "value",
895
+ sortOrder: 5
896
+ },
897
+ {
898
+ label: "pink",
899
+ detail: "Pink node color",
900
+ insertText: "pink",
901
+ insertTextFormat: "plain",
902
+ kind: "value",
903
+ sortOrder: 6
904
+ },
905
+ {
906
+ label: "yellow",
907
+ detail: "Yellow node color",
908
+ insertText: "yellow",
909
+ insertTextFormat: "plain",
910
+ kind: "value",
911
+ sortOrder: 7
912
+ },
913
+ {
914
+ label: "cyan",
915
+ detail: "Cyan node color",
916
+ insertText: "cyan",
917
+ insertTextFormat: "plain",
918
+ kind: "value",
919
+ sortOrder: 8
920
+ }
921
+ ]
922
+ };
923
+ function getAnnotationValueCompletions(annotation, prefix) {
924
+ const values = ANNOTATION_VALUES[annotation];
925
+ if (!values) {
926
+ return [];
927
+ }
928
+ const lowerPrefix = prefix.toLowerCase();
929
+ return values.filter((v) => v.label.toLowerCase().startsWith(lowerPrefix));
930
+ }
931
+
932
+ // src/editor-completions/modifierCompletions.ts
933
+ var PORT_MODIFIERS = [
934
+ { name: "order", detail: "Port display order", annotations: ["@input", "@output", "@step"] },
935
+ {
936
+ name: "placement",
937
+ detail: "Port placement (TOP/BOTTOM)",
938
+ annotations: ["@input", "@output", "@step"]
939
+ },
940
+ { name: "type", detail: "Override port data type", annotations: ["@input", "@output", "@step"] },
941
+ { name: "hidden", detail: "Hide port from UI", annotations: ["@input", "@output", "@step"] },
942
+ {
943
+ name: "optional",
944
+ detail: "Mark port as optional",
945
+ annotations: ["@input", "@output", "@step"]
946
+ },
947
+ {
948
+ name: "label",
949
+ detail: "Port display label",
950
+ annotations: ["@input", "@output", "@step", "@node"]
951
+ },
952
+ {
953
+ name: "expr",
954
+ detail: "Default expression",
955
+ annotations: ["@input", "@output", "@step", "@node"]
956
+ },
957
+ {
958
+ name: "minimized",
959
+ detail: "Start minimized",
960
+ annotations: ["@input", "@output", "@step", "@node"]
961
+ },
962
+ {
963
+ name: "pullExecution",
964
+ detail: "Pull execution mode",
965
+ annotations: ["@input", "@output", "@step", "@node"]
966
+ }
967
+ ];
968
+ var NODE_MODIFIERS = [
969
+ { name: "label", detail: "Node display label", annotations: ["@node"] },
970
+ { name: "expr", detail: "Node expression", annotations: ["@node"] },
971
+ { name: "minimized", detail: "Start minimized", annotations: ["@node"] },
972
+ { name: "pullExecution", detail: "Pull execution mode", annotations: ["@node"] },
973
+ { name: "portOrder", detail: "Port display order", annotations: ["@node"] },
974
+ { name: "portLabel", detail: "Port label override", annotations: ["@node"] },
975
+ { name: "size", detail: "Node size", annotations: ["@node"] }
976
+ ];
977
+ var ALL_MODIFIERS = [...PORT_MODIFIERS, ...NODE_MODIFIERS];
978
+ var UNIQUE_MODIFIERS = [];
979
+ var seen = /* @__PURE__ */ new Set();
980
+ for (const mod of ALL_MODIFIERS) {
981
+ if (!seen.has(mod.name)) {
982
+ seen.add(mod.name);
983
+ const allAnnotations = ALL_MODIFIERS.filter((m) => m.name === mod.name).flatMap(
984
+ (m) => m.annotations || []
985
+ );
986
+ UNIQUE_MODIFIERS.push({
987
+ ...mod,
988
+ annotations: allAnnotations.length > 0 ? [...new Set(allAnnotations)] : null
989
+ });
990
+ }
991
+ }
992
+ var MODIFIER_VALUES = {
993
+ placement: [
994
+ {
995
+ label: "TOP",
996
+ detail: "Place port on top",
997
+ insertText: "TOP",
998
+ insertTextFormat: "plain",
999
+ kind: "value"
1000
+ },
1001
+ {
1002
+ label: "BOTTOM",
1003
+ detail: "Place port on bottom",
1004
+ insertText: "BOTTOM",
1005
+ insertTextFormat: "plain",
1006
+ kind: "value"
1007
+ }
1008
+ ],
1009
+ hidden: [
1010
+ {
1011
+ label: "true",
1012
+ detail: "Hide port",
1013
+ insertText: "true",
1014
+ insertTextFormat: "plain",
1015
+ kind: "value"
1016
+ },
1017
+ {
1018
+ label: "false",
1019
+ detail: "Show port",
1020
+ insertText: "false",
1021
+ insertTextFormat: "plain",
1022
+ kind: "value"
1023
+ }
1024
+ ],
1025
+ optional: [
1026
+ {
1027
+ label: "true",
1028
+ detail: "Mark as optional",
1029
+ insertText: "true",
1030
+ insertTextFormat: "plain",
1031
+ kind: "value"
1032
+ },
1033
+ {
1034
+ label: "false",
1035
+ detail: "Mark as required",
1036
+ insertText: "false",
1037
+ insertTextFormat: "plain",
1038
+ kind: "value"
1039
+ }
1040
+ ],
1041
+ minimized: [
1042
+ {
1043
+ label: "true",
1044
+ detail: "Start minimized",
1045
+ insertText: "true",
1046
+ insertTextFormat: "plain",
1047
+ kind: "value"
1048
+ },
1049
+ {
1050
+ label: "false",
1051
+ detail: "Start expanded",
1052
+ insertText: "false",
1053
+ insertTextFormat: "plain",
1054
+ kind: "value"
1055
+ }
1056
+ ],
1057
+ pullExecution: [
1058
+ {
1059
+ label: "true",
1060
+ detail: "Enable pull execution",
1061
+ insertText: "true",
1062
+ insertTextFormat: "plain",
1063
+ kind: "value"
1064
+ },
1065
+ {
1066
+ label: "false",
1067
+ detail: "Disable pull execution",
1068
+ insertText: "false",
1069
+ insertTextFormat: "plain",
1070
+ kind: "value"
1071
+ }
1072
+ ]
1073
+ };
1074
+ function getModifierCompletions(lineAnnotation, prefix) {
1075
+ const lowerPrefix = prefix.toLowerCase();
1076
+ return UNIQUE_MODIFIERS.filter((mod) => {
1077
+ if (!mod.name.toLowerCase().startsWith(lowerPrefix)) {
1078
+ return false;
1079
+ }
1080
+ if (lineAnnotation && mod.annotations) {
1081
+ return mod.annotations.includes(lineAnnotation);
1082
+ }
1083
+ return true;
1084
+ }).map((mod, i) => ({
1085
+ label: mod.name,
1086
+ detail: mod.detail,
1087
+ documentation: mod.documentation,
1088
+ insertText: mod.name + ":",
1089
+ insertTextFormat: "plain",
1090
+ kind: "keyword",
1091
+ sortOrder: i
1092
+ }));
1093
+ }
1094
+ function getModifierValueCompletions(modifier, prefix) {
1095
+ const values = MODIFIER_VALUES[modifier];
1096
+ if (!values) {
1097
+ return [];
1098
+ }
1099
+ const lowerPrefix = prefix.toLowerCase();
1100
+ return values.filter((v) => v.label.toLowerCase().startsWith(lowerPrefix));
1101
+ }
1102
+
1103
+ // src/editor-completions/index.ts
1104
+ function getFlowWeaverCompletions(lineText, cursorOffset, isInJSDoc, context, precedingBlockLines) {
1105
+ const completionContext = parseCompletionContext(
1106
+ lineText,
1107
+ cursorOffset,
1108
+ isInJSDoc,
1109
+ precedingBlockLines
1110
+ );
1111
+ if (!completionContext) {
1112
+ return [];
1113
+ }
1114
+ switch (completionContext.type) {
1115
+ case "annotation":
1116
+ return getAnnotationCompletions(
1117
+ completionContext.prefix,
1118
+ completionContext.blockType,
1119
+ completionContext.existingAnnotations
1120
+ );
1121
+ case "dataType":
1122
+ return getDataTypeCompletions(completionContext.prefix);
1123
+ case "nodeType":
1124
+ return getNodeTypeCompletions(completionContext.prefix, context);
1125
+ case "nodeId":
1126
+ return getNodeIdCompletions(completionContext.prefix, context);
1127
+ case "port":
1128
+ return getPortCompletions(
1129
+ completionContext.nodeId || "",
1130
+ completionContext.portDirection || "output",
1131
+ completionContext.prefix,
1132
+ context,
1133
+ completionContext.lineText
1134
+ );
1135
+ case "annotationValue":
1136
+ return getAnnotationValueCompletions(
1137
+ completionContext.annotation || "",
1138
+ completionContext.prefix
1139
+ );
1140
+ case "modifier":
1141
+ return getModifierCompletions(completionContext.annotation || null, completionContext.prefix);
1142
+ case "modifierValue":
1143
+ return getModifierValueCompletions(
1144
+ completionContext.modifier || "",
1145
+ completionContext.prefix
1146
+ );
1147
+ case null:
1148
+ return [];
1149
+ }
1150
+ }
74
1151
  function getNodeTypeCompletions(prefix, context) {
75
- if (!context?.nodeTypes) {
76
- return [];
77
- }
78
- const lowerPrefix = prefix.toLowerCase();
79
- return Object.values(context.nodeTypes)
80
- .filter((nt) => nt.name.toLowerCase().startsWith(lowerPrefix))
81
- .map((nt) => ({
82
- label: nt.name,
83
- detail: nt.category,
84
- documentation: nt.description,
85
- insertText: nt.name,
86
- insertTextFormat: 'plain',
87
- kind: 'nodeType',
88
- }));
89
- }
90
- /**
91
- * Get node instance ID completions from workflow context.
92
- */
1152
+ if (!context?.nodeTypes) {
1153
+ return [];
1154
+ }
1155
+ const lowerPrefix = prefix.toLowerCase();
1156
+ return Object.values(context.nodeTypes).filter((nt) => nt.name.toLowerCase().startsWith(lowerPrefix)).map((nt) => ({
1157
+ label: nt.name,
1158
+ detail: nt.category,
1159
+ documentation: nt.description,
1160
+ insertText: nt.name,
1161
+ insertTextFormat: "plain",
1162
+ kind: "nodeType"
1163
+ }));
1164
+ }
93
1165
  function getNodeIdCompletions(prefix, context) {
94
- if (!context?.instances) {
95
- return [];
96
- }
97
- const lowerPrefix = prefix.toLowerCase();
98
- return context.instances
99
- .filter((inst) => inst.id.toLowerCase().startsWith(lowerPrefix))
100
- .map((inst) => ({
101
- label: inst.id,
102
- detail: inst.nodeType,
103
- insertText: inst.id,
104
- insertTextFormat: 'plain',
105
- kind: 'node',
106
- }));
107
- }
108
- /**
109
- * Get port completions for a specific node.
110
- * When completing target ports (input), sorts type-matching ports first
111
- * and demotes already-connected ports.
112
- */
1166
+ if (!context?.instances) {
1167
+ return [];
1168
+ }
1169
+ const lowerPrefix = prefix.toLowerCase();
1170
+ return context.instances.filter((inst) => inst.id.toLowerCase().startsWith(lowerPrefix)).map((inst) => ({
1171
+ label: inst.id,
1172
+ detail: inst.nodeType,
1173
+ insertText: inst.id,
1174
+ insertTextFormat: "plain",
1175
+ kind: "node"
1176
+ }));
1177
+ }
113
1178
  function getPortCompletions(nodeId, direction, prefix, context, lineText) {
114
- if (!context?.instances || !context?.nodeTypes) {
115
- return [];
116
- }
117
- // Find the node instance
118
- const instance = context.instances.find((inst) => inst.id === nodeId);
119
- if (!instance) {
120
- return [];
121
- }
122
- // Find the node type
123
- const nodeType = context.nodeTypes[instance.nodeType];
124
- if (!nodeType) {
125
- return [];
126
- }
127
- // Filter ports by direction
128
- const directionUpper = direction.toUpperCase();
129
- const lowerPrefix = prefix.toLowerCase();
130
- // Resolve source port dataType when completing target (input) ports
131
- let sourceDataType;
132
- if (direction === 'input' && lineText) {
133
- const sourceMatch = lineText.match(/@connect\s+(\w+)\.(\w+)\s*->/);
134
- if (sourceMatch) {
135
- const [, srcNodeId, srcPortName] = sourceMatch;
136
- const srcInstance = context.instances.find((inst) => inst.id === srcNodeId);
137
- if (srcInstance) {
138
- const srcNodeType = context.nodeTypes[srcInstance.nodeType];
139
- if (srcNodeType) {
140
- const srcPort = srcNodeType.ports.find((p) => p.name === srcPortName && p.direction === 'OUTPUT');
141
- sourceDataType = srcPort?.dataType;
142
- }
143
- }
1179
+ if (!context?.instances || !context?.nodeTypes) {
1180
+ return [];
1181
+ }
1182
+ const instance = context.instances.find((inst) => inst.id === nodeId);
1183
+ if (!instance) {
1184
+ return [];
1185
+ }
1186
+ const nodeType = context.nodeTypes[instance.nodeType];
1187
+ if (!nodeType) {
1188
+ return [];
1189
+ }
1190
+ const directionUpper = direction.toUpperCase();
1191
+ const lowerPrefix = prefix.toLowerCase();
1192
+ let sourceDataType;
1193
+ if (direction === "input" && lineText) {
1194
+ const sourceMatch = lineText.match(/@connect\s+(\w+)\.(\w+)\s*->/);
1195
+ if (sourceMatch) {
1196
+ const [, srcNodeId, srcPortName] = sourceMatch;
1197
+ const srcInstance = context.instances.find((inst) => inst.id === srcNodeId);
1198
+ if (srcInstance) {
1199
+ const srcNodeType = context.nodeTypes[srcInstance.nodeType];
1200
+ if (srcNodeType) {
1201
+ const srcPort = srcNodeType.ports.find(
1202
+ (p) => p.name === srcPortName && p.direction === "OUTPUT"
1203
+ );
1204
+ sourceDataType = srcPort?.dataType;
144
1205
  }
1206
+ }
145
1207
  }
146
- // Build set of already-connected ports on this node (for the given direction)
147
- const connectedPorts = new Set();
148
- if (context.connections) {
149
- for (const conn of context.connections) {
150
- if (direction === 'input' && conn.targetNode === nodeId) {
151
- connectedPorts.add(conn.targetPort);
152
- }
153
- else if (direction === 'output' && conn.sourceNode === nodeId) {
154
- connectedPorts.add(conn.sourcePort);
155
- }
156
- }
1208
+ }
1209
+ const connectedPorts = /* @__PURE__ */ new Set();
1210
+ if (context.connections) {
1211
+ for (const conn of context.connections) {
1212
+ if (direction === "input" && conn.targetNode === nodeId) {
1213
+ connectedPorts.add(conn.targetPort);
1214
+ } else if (direction === "output" && conn.sourceNode === nodeId) {
1215
+ connectedPorts.add(conn.sourcePort);
1216
+ }
157
1217
  }
158
- return nodeType.ports
159
- .filter((port) => port.direction === directionUpper)
160
- .filter((port) => port.name.toLowerCase().startsWith(lowerPrefix))
161
- .map((port) => {
162
- const isConnected = connectedPorts.has(port.name);
163
- const isTypeMatch = sourceDataType && port.dataType === sourceDataType;
164
- let sortOrder = 0;
165
- if (isTypeMatch)
166
- sortOrder = -10;
167
- if (isConnected)
168
- sortOrder = 20;
169
- return {
170
- label: port.name,
171
- detail: isConnected ? `${port.dataType || ''} (connected)`.trim() : port.dataType,
172
- documentation: port.description,
173
- insertText: port.name,
174
- insertTextFormat: 'plain',
175
- kind: 'port',
176
- sortOrder,
177
- };
178
- })
179
- .sort((a, b) => (a.sortOrder ?? 0) - (b.sortOrder ?? 0));
180
- }
181
- //# sourceMappingURL=index.js.map
1218
+ }
1219
+ return nodeType.ports.filter((port) => port.direction === directionUpper).filter((port) => port.name.toLowerCase().startsWith(lowerPrefix)).map((port) => {
1220
+ const isConnected = connectedPorts.has(port.name);
1221
+ const isTypeMatch = sourceDataType && port.dataType === sourceDataType;
1222
+ let sortOrder = 0;
1223
+ if (isTypeMatch) sortOrder = -10;
1224
+ if (isConnected) sortOrder = 20;
1225
+ return {
1226
+ label: port.name,
1227
+ detail: isConnected ? `${port.dataType || ""} (connected)`.trim() : port.dataType,
1228
+ documentation: port.description,
1229
+ insertText: port.name,
1230
+ insertTextFormat: "plain",
1231
+ kind: "port",
1232
+ sortOrder
1233
+ };
1234
+ }).sort((a, b) => (a.sortOrder ?? 0) - (b.sortOrder ?? 0));
1235
+ }
1236
+ export {
1237
+ DATA_TYPES,
1238
+ JSDOC_ANNOTATIONS,
1239
+ detectBlockType,
1240
+ detectSymbolType,
1241
+ getAnnotationCompletions,
1242
+ getAnnotationValueCompletions,
1243
+ getDataTypeCompletions,
1244
+ getDefinitionLocation,
1245
+ getFlowWeaverCompletions,
1246
+ getModifierCompletions,
1247
+ getModifierValueCompletions,
1248
+ getWordAtPosition,
1249
+ parseCompletionContext
1250
+ };