@synergenius/flow-weaver 0.2.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 (466) hide show
  1. package/LICENSE +122 -0
  2. package/README.md +315 -0
  3. package/dist/annotation-generator.d.ts +45 -0
  4. package/dist/annotation-generator.js +557 -0
  5. package/dist/api/builder.d.ts +223 -0
  6. package/dist/api/builder.js +345 -0
  7. package/dist/api/compile.d.ts +92 -0
  8. package/dist/api/compile.js +149 -0
  9. package/dist/api/extract-types.d.ts +29 -0
  10. package/dist/api/extract-types.js +57 -0
  11. package/dist/api/generate-in-place.d.ts +73 -0
  12. package/dist/api/generate-in-place.js +1353 -0
  13. package/dist/api/generate.d.ts +83 -0
  14. package/dist/api/generate.js +510 -0
  15. package/dist/api/helpers.d.ts +248 -0
  16. package/dist/api/helpers.js +285 -0
  17. package/dist/api/index.d.ts +46 -0
  18. package/dist/api/index.js +45 -0
  19. package/dist/api/inline-runtime.d.ts +27 -0
  20. package/dist/api/inline-runtime.js +551 -0
  21. package/dist/api/manipulation/connections.d.ts +79 -0
  22. package/dist/api/manipulation/connections.js +151 -0
  23. package/dist/api/manipulation/index.d.ts +34 -0
  24. package/dist/api/manipulation/index.js +41 -0
  25. package/dist/api/manipulation/node-types.d.ts +123 -0
  26. package/dist/api/manipulation/node-types.js +200 -0
  27. package/dist/api/manipulation/nodes.d.ts +144 -0
  28. package/dist/api/manipulation/nodes.js +333 -0
  29. package/dist/api/manipulation/ports.d.ts +59 -0
  30. package/dist/api/manipulation/ports.js +228 -0
  31. package/dist/api/manipulation/scopes.d.ts +52 -0
  32. package/dist/api/manipulation/scopes.js +156 -0
  33. package/dist/api/manipulation/validation.d.ts +6 -0
  34. package/dist/api/manipulation/validation.js +6 -0
  35. package/dist/api/manipulation/workflow.d.ts +81 -0
  36. package/dist/api/manipulation/workflow.js +116 -0
  37. package/dist/api/manipulation.d.ts +8 -0
  38. package/dist/api/manipulation.js +8 -0
  39. package/dist/api/parse.d.ts +48 -0
  40. package/dist/api/parse.js +110 -0
  41. package/dist/api/patterns.d.ts +112 -0
  42. package/dist/api/patterns.js +306 -0
  43. package/dist/api/query.d.ts +429 -0
  44. package/dist/api/query.js +816 -0
  45. package/dist/api/templates.d.ts +98 -0
  46. package/dist/api/templates.js +117 -0
  47. package/dist/api/transform.d.ts +31 -0
  48. package/dist/api/transform.js +40 -0
  49. package/dist/api/validate.d.ts +25 -0
  50. package/dist/api/validate.js +39 -0
  51. package/dist/api/workflow-file-operations.d.ts +29 -0
  52. package/dist/api/workflow-file-operations.js +180 -0
  53. package/dist/ast/builder.d.ts +210 -0
  54. package/dist/ast/builder.js +395 -0
  55. package/dist/ast/index.d.ts +5 -0
  56. package/dist/ast/index.js +5 -0
  57. package/dist/ast/serialization-node.d.ts +6 -0
  58. package/dist/ast/serialization-node.js +30 -0
  59. package/dist/ast/serialization.d.ts +43 -0
  60. package/dist/ast/serialization.js +134 -0
  61. package/dist/ast/types.d.ts +852 -0
  62. package/dist/ast/types.js +2 -0
  63. package/dist/ast/workflow-utils.d.ts +54 -0
  64. package/dist/ast/workflow-utils.js +114 -0
  65. package/dist/body-generator.d.ts +31 -0
  66. package/dist/body-generator.js +35 -0
  67. package/dist/built-in-nodes/delay.d.ts +11 -0
  68. package/dist/built-in-nodes/delay.js +29 -0
  69. package/dist/built-in-nodes/index.d.ts +5 -0
  70. package/dist/built-in-nodes/index.js +4 -0
  71. package/dist/built-in-nodes/invoke-workflow.d.ts +13 -0
  72. package/dist/built-in-nodes/invoke-workflow.js +25 -0
  73. package/dist/built-in-nodes/mock-types.d.ts +18 -0
  74. package/dist/built-in-nodes/mock-types.js +12 -0
  75. package/dist/built-in-nodes/wait-for-event.d.ts +13 -0
  76. package/dist/built-in-nodes/wait-for-event.js +25 -0
  77. package/dist/chevrotain-parser/connect-parser.d.ts +24 -0
  78. package/dist/chevrotain-parser/connect-parser.js +98 -0
  79. package/dist/chevrotain-parser/grammar-diagrams.d.ts +29 -0
  80. package/dist/chevrotain-parser/grammar-diagrams.js +264 -0
  81. package/dist/chevrotain-parser/index.d.ts +25 -0
  82. package/dist/chevrotain-parser/index.js +27 -0
  83. package/dist/chevrotain-parser/map-parser.d.ts +33 -0
  84. package/dist/chevrotain-parser/map-parser.js +130 -0
  85. package/dist/chevrotain-parser/node-parser.d.ts +36 -0
  86. package/dist/chevrotain-parser/node-parser.js +466 -0
  87. package/dist/chevrotain-parser/path-parser.d.ts +28 -0
  88. package/dist/chevrotain-parser/path-parser.js +118 -0
  89. package/dist/chevrotain-parser/port-parser.d.ts +36 -0
  90. package/dist/chevrotain-parser/port-parser.js +442 -0
  91. package/dist/chevrotain-parser/position-parser.d.ts +20 -0
  92. package/dist/chevrotain-parser/position-parser.js +83 -0
  93. package/dist/chevrotain-parser/scope-parser.d.ts +19 -0
  94. package/dist/chevrotain-parser/scope-parser.js +104 -0
  95. package/dist/chevrotain-parser/tokens.d.ts +78 -0
  96. package/dist/chevrotain-parser/tokens.js +384 -0
  97. package/dist/chevrotain-parser/trigger-cancel-parser.d.ts +50 -0
  98. package/dist/chevrotain-parser/trigger-cancel-parser.js +282 -0
  99. package/dist/cli/commands/changelog.d.ts +13 -0
  100. package/dist/cli/commands/changelog.js +135 -0
  101. package/dist/cli/commands/compile.d.ts +64 -0
  102. package/dist/cli/commands/compile.js +278 -0
  103. package/dist/cli/commands/create.d.ts +33 -0
  104. package/dist/cli/commands/create.js +147 -0
  105. package/dist/cli/commands/describe.d.ts +68 -0
  106. package/dist/cli/commands/describe.js +377 -0
  107. package/dist/cli/commands/dev.d.ts +32 -0
  108. package/dist/cli/commands/dev.js +384 -0
  109. package/dist/cli/commands/diagram.d.ts +13 -0
  110. package/dist/cli/commands/diagram.js +33 -0
  111. package/dist/cli/commands/diff.d.ts +11 -0
  112. package/dist/cli/commands/diff.js +59 -0
  113. package/dist/cli/commands/doctor.d.ts +57 -0
  114. package/dist/cli/commands/doctor.js +719 -0
  115. package/dist/cli/commands/export.d.ts +57 -0
  116. package/dist/cli/commands/export.js +163 -0
  117. package/dist/cli/commands/grammar.d.ts +9 -0
  118. package/dist/cli/commands/grammar.js +39 -0
  119. package/dist/cli/commands/init.d.ts +59 -0
  120. package/dist/cli/commands/init.js +435 -0
  121. package/dist/cli/commands/listen.d.ts +16 -0
  122. package/dist/cli/commands/listen.js +39 -0
  123. package/dist/cli/commands/market.d.ts +52 -0
  124. package/dist/cli/commands/market.js +436 -0
  125. package/dist/cli/commands/migrate.d.ts +13 -0
  126. package/dist/cli/commands/migrate.js +89 -0
  127. package/dist/cli/commands/openapi.d.ts +37 -0
  128. package/dist/cli/commands/openapi.js +67 -0
  129. package/dist/cli/commands/pattern.d.ts +34 -0
  130. package/dist/cli/commands/pattern.js +185 -0
  131. package/dist/cli/commands/plugin.d.ts +16 -0
  132. package/dist/cli/commands/plugin.js +176 -0
  133. package/dist/cli/commands/run.d.ts +49 -0
  134. package/dist/cli/commands/run.js +191 -0
  135. package/dist/cli/commands/serve.d.ts +45 -0
  136. package/dist/cli/commands/serve.js +81 -0
  137. package/dist/cli/commands/templates.d.ts +8 -0
  138. package/dist/cli/commands/templates.js +54 -0
  139. package/dist/cli/commands/ui.d.ts +16 -0
  140. package/dist/cli/commands/ui.js +130 -0
  141. package/dist/cli/commands/validate.d.ts +12 -0
  142. package/dist/cli/commands/validate.js +247 -0
  143. package/dist/cli/commands/watch.d.ts +9 -0
  144. package/dist/cli/commands/watch.js +70 -0
  145. package/dist/cli/flow-weaver.mjs +92924 -0
  146. package/dist/cli/index.d.ts +9 -0
  147. package/dist/cli/index.js +742 -0
  148. package/dist/cli/templates/ai/mock-provider.d.ts +7 -0
  149. package/dist/cli/templates/ai/mock-provider.js +64 -0
  150. package/dist/cli/templates/ai/types.d.ts +47 -0
  151. package/dist/cli/templates/ai/types.js +5 -0
  152. package/dist/cli/templates/approvals/index.d.ts +15 -0
  153. package/dist/cli/templates/approvals/index.js +241 -0
  154. package/dist/cli/templates/index.d.ts +102 -0
  155. package/dist/cli/templates/index.js +101 -0
  156. package/dist/cli/templates/nodes/agent-router.d.ts +3 -0
  157. package/dist/cli/templates/nodes/agent-router.js +114 -0
  158. package/dist/cli/templates/nodes/aggregator.d.ts +7 -0
  159. package/dist/cli/templates/nodes/aggregator.js +63 -0
  160. package/dist/cli/templates/nodes/conversation-memory.d.ts +3 -0
  161. package/dist/cli/templates/nodes/conversation-memory.js +85 -0
  162. package/dist/cli/templates/nodes/http.d.ts +7 -0
  163. package/dist/cli/templates/nodes/http.js +80 -0
  164. package/dist/cli/templates/nodes/human-approval.d.ts +3 -0
  165. package/dist/cli/templates/nodes/human-approval.js +110 -0
  166. package/dist/cli/templates/nodes/json-extractor.d.ts +3 -0
  167. package/dist/cli/templates/nodes/json-extractor.js +119 -0
  168. package/dist/cli/templates/nodes/llm-call.d.ts +3 -0
  169. package/dist/cli/templates/nodes/llm-call.js +106 -0
  170. package/dist/cli/templates/nodes/prompt-template.d.ts +3 -0
  171. package/dist/cli/templates/nodes/prompt-template.js +52 -0
  172. package/dist/cli/templates/nodes/rag-retriever.d.ts +3 -0
  173. package/dist/cli/templates/nodes/rag-retriever.js +128 -0
  174. package/dist/cli/templates/nodes/tool-executor.d.ts +3 -0
  175. package/dist/cli/templates/nodes/tool-executor.js +108 -0
  176. package/dist/cli/templates/nodes/transformer.d.ts +7 -0
  177. package/dist/cli/templates/nodes/transformer.js +68 -0
  178. package/dist/cli/templates/nodes/validator.d.ts +7 -0
  179. package/dist/cli/templates/nodes/validator.js +62 -0
  180. package/dist/cli/templates/providers/index.d.ts +14 -0
  181. package/dist/cli/templates/providers/index.js +239 -0
  182. package/dist/cli/templates/shared/approval-types.d.ts +9 -0
  183. package/dist/cli/templates/shared/approval-types.js +31 -0
  184. package/dist/cli/templates/shared/llm-types.d.ts +15 -0
  185. package/dist/cli/templates/shared/llm-types.js +104 -0
  186. package/dist/cli/templates/workflows/aggregator.d.ts +7 -0
  187. package/dist/cli/templates/workflows/aggregator.js +104 -0
  188. package/dist/cli/templates/workflows/ai-agent-durable.d.ts +8 -0
  189. package/dist/cli/templates/workflows/ai-agent-durable.js +338 -0
  190. package/dist/cli/templates/workflows/ai-agent.d.ts +31 -0
  191. package/dist/cli/templates/workflows/ai-agent.js +326 -0
  192. package/dist/cli/templates/workflows/ai-chat.d.ts +7 -0
  193. package/dist/cli/templates/workflows/ai-chat.js +169 -0
  194. package/dist/cli/templates/workflows/ai-pipeline-durable.d.ts +8 -0
  195. package/dist/cli/templates/workflows/ai-pipeline-durable.js +330 -0
  196. package/dist/cli/templates/workflows/ai-rag.d.ts +7 -0
  197. package/dist/cli/templates/workflows/ai-rag.js +186 -0
  198. package/dist/cli/templates/workflows/ai-react.d.ts +7 -0
  199. package/dist/cli/templates/workflows/ai-react.js +294 -0
  200. package/dist/cli/templates/workflows/conditional.d.ts +12 -0
  201. package/dist/cli/templates/workflows/conditional.js +142 -0
  202. package/dist/cli/templates/workflows/error-handler.d.ts +7 -0
  203. package/dist/cli/templates/workflows/error-handler.js +147 -0
  204. package/dist/cli/templates/workflows/foreach.d.ts +7 -0
  205. package/dist/cli/templates/workflows/foreach.js +143 -0
  206. package/dist/cli/templates/workflows/sequential.d.ts +7 -0
  207. package/dist/cli/templates/workflows/sequential.js +198 -0
  208. package/dist/cli/templates/workflows/webhook.d.ts +7 -0
  209. package/dist/cli/templates/workflows/webhook.js +161 -0
  210. package/dist/cli/utils/logger.d.ts +15 -0
  211. package/dist/cli/utils/logger.js +46 -0
  212. package/dist/constants.d.ts +100 -0
  213. package/dist/constants.js +125 -0
  214. package/dist/defaults.d.ts +3 -0
  215. package/dist/defaults.js +3 -0
  216. package/dist/deployment/config/defaults.d.ts +29 -0
  217. package/dist/deployment/config/defaults.js +98 -0
  218. package/dist/deployment/config/loader.d.ts +24 -0
  219. package/dist/deployment/config/loader.js +236 -0
  220. package/dist/deployment/config/types.d.ts +117 -0
  221. package/dist/deployment/config/types.js +5 -0
  222. package/dist/deployment/core/adapters.d.ts +90 -0
  223. package/dist/deployment/core/adapters.js +251 -0
  224. package/dist/deployment/core/executor.d.ts +62 -0
  225. package/dist/deployment/core/executor.js +197 -0
  226. package/dist/deployment/core/formatters.d.ts +57 -0
  227. package/dist/deployment/core/formatters.js +170 -0
  228. package/dist/deployment/index.d.ts +31 -0
  229. package/dist/deployment/index.js +48 -0
  230. package/dist/deployment/openapi/generator.d.ts +146 -0
  231. package/dist/deployment/openapi/generator.js +347 -0
  232. package/dist/deployment/openapi/schema-converter.d.ts +49 -0
  233. package/dist/deployment/openapi/schema-converter.js +192 -0
  234. package/dist/deployment/targets/base.d.ts +316 -0
  235. package/dist/deployment/targets/base.js +823 -0
  236. package/dist/deployment/targets/cloudflare.d.ts +23 -0
  237. package/dist/deployment/targets/cloudflare.js +1125 -0
  238. package/dist/deployment/targets/inngest.d.ts +38 -0
  239. package/dist/deployment/targets/inngest.js +926 -0
  240. package/dist/deployment/targets/lambda.d.ts +23 -0
  241. package/dist/deployment/targets/lambda.js +1289 -0
  242. package/dist/deployment/targets/vercel.d.ts +23 -0
  243. package/dist/deployment/targets/vercel.js +886 -0
  244. package/dist/deployment/types.d.ts +183 -0
  245. package/dist/deployment/types.js +8 -0
  246. package/dist/diagram/geometry.d.ts +26 -0
  247. package/dist/diagram/geometry.js +850 -0
  248. package/dist/diagram/index.d.ts +16 -0
  249. package/dist/diagram/index.js +42 -0
  250. package/dist/diagram/layout.d.ts +11 -0
  251. package/dist/diagram/layout.js +143 -0
  252. package/dist/diagram/orthogonal-router.d.ts +79 -0
  253. package/dist/diagram/orthogonal-router.js +568 -0
  254. package/dist/diagram/renderer.d.ts +3 -0
  255. package/dist/diagram/renderer.js +207 -0
  256. package/dist/diagram/theme.d.ts +20 -0
  257. package/dist/diagram/theme.js +189 -0
  258. package/dist/diagram/types.d.ts +70 -0
  259. package/dist/diagram/types.js +2 -0
  260. package/dist/diff/WorkflowDiffer.d.ts +13 -0
  261. package/dist/diff/WorkflowDiffer.js +429 -0
  262. package/dist/diff/formatDiff.d.ts +10 -0
  263. package/dist/diff/formatDiff.js +220 -0
  264. package/dist/diff/impact.d.ts +29 -0
  265. package/dist/diff/impact.js +119 -0
  266. package/dist/diff/index.d.ts +10 -0
  267. package/dist/diff/index.js +9 -0
  268. package/dist/diff/types.d.ts +138 -0
  269. package/dist/diff/types.js +35 -0
  270. package/dist/doc-metadata/extractors/annotations.d.ts +56 -0
  271. package/dist/doc-metadata/extractors/annotations.js +337 -0
  272. package/dist/doc-metadata/extractors/cli-commands.d.ts +17 -0
  273. package/dist/doc-metadata/extractors/cli-commands.js +355 -0
  274. package/dist/doc-metadata/extractors/mcp-tools.d.ts +16 -0
  275. package/dist/doc-metadata/extractors/mcp-tools.js +689 -0
  276. package/dist/doc-metadata/extractors/plugin-api.d.ts +19 -0
  277. package/dist/doc-metadata/extractors/plugin-api.js +279 -0
  278. package/dist/doc-metadata/index.d.ts +5 -0
  279. package/dist/doc-metadata/index.js +4 -0
  280. package/dist/doc-metadata/types.d.ts +120 -0
  281. package/dist/doc-metadata/types.js +5 -0
  282. package/dist/editor-completions/annotationValues.d.ts +12 -0
  283. package/dist/editor-completions/annotationValues.js +138 -0
  284. package/dist/editor-completions/contextParser.d.ts +40 -0
  285. package/dist/editor-completions/contextParser.js +410 -0
  286. package/dist/editor-completions/dataTypes.d.ts +16 -0
  287. package/dist/editor-completions/dataTypes.js +95 -0
  288. package/dist/editor-completions/goToDefinition.d.ts +27 -0
  289. package/dist/editor-completions/goToDefinition.js +112 -0
  290. package/dist/editor-completions/index.d.ts +39 -0
  291. package/dist/editor-completions/index.js +181 -0
  292. package/dist/editor-completions/jsDocAnnotations.d.ts +29 -0
  293. package/dist/editor-completions/jsDocAnnotations.js +357 -0
  294. package/dist/editor-completions/modifierCompletions.d.ts +17 -0
  295. package/dist/editor-completions/modifierCompletions.js +197 -0
  296. package/dist/editor-completions/types.d.ts +119 -0
  297. package/dist/editor-completions/types.js +8 -0
  298. package/dist/export/index.d.ts +68 -0
  299. package/dist/export/index.js +1074 -0
  300. package/dist/export/templates.d.ts +24 -0
  301. package/dist/export/templates.js +186 -0
  302. package/dist/friendly-errors.d.ts +35 -0
  303. package/dist/friendly-errors.js +375 -0
  304. package/dist/function-like.d.ts +38 -0
  305. package/dist/function-like.js +83 -0
  306. package/dist/generated-branding.d.ts +16 -0
  307. package/dist/generated-branding.js +22 -0
  308. package/dist/generator/async-detection.d.ts +27 -0
  309. package/dist/generator/async-detection.js +56 -0
  310. package/dist/generator/code-utils.d.ts +76 -0
  311. package/dist/generator/code-utils.js +410 -0
  312. package/dist/generator/control-flow.d.ts +54 -0
  313. package/dist/generator/control-flow.js +284 -0
  314. package/dist/generator/inngest.d.ts +53 -0
  315. package/dist/generator/inngest.js +1126 -0
  316. package/dist/generator/scope-function-generator.d.ts +78 -0
  317. package/dist/generator/scope-function-generator.js +360 -0
  318. package/dist/generator/unified.d.ts +42 -0
  319. package/dist/generator/unified.js +1504 -0
  320. package/dist/generator.d.ts +54 -0
  321. package/dist/generator.js +100 -0
  322. package/dist/index.d.ts +85 -0
  323. package/dist/index.js +89 -0
  324. package/dist/jsdoc-parser.d.ts +308 -0
  325. package/dist/jsdoc-parser.js +923 -0
  326. package/dist/jsdoc-port-sync/constants.d.ts +41 -0
  327. package/dist/jsdoc-port-sync/constants.js +103 -0
  328. package/dist/jsdoc-port-sync/diff.d.ts +76 -0
  329. package/dist/jsdoc-port-sync/diff.js +319 -0
  330. package/dist/jsdoc-port-sync/index.d.ts +42 -0
  331. package/dist/jsdoc-port-sync/index.js +45 -0
  332. package/dist/jsdoc-port-sync/port-parser.d.ts +68 -0
  333. package/dist/jsdoc-port-sync/port-parser.js +579 -0
  334. package/dist/jsdoc-port-sync/rename.d.ts +21 -0
  335. package/dist/jsdoc-port-sync/rename.js +256 -0
  336. package/dist/jsdoc-port-sync/signature-parser.d.ts +104 -0
  337. package/dist/jsdoc-port-sync/signature-parser.js +559 -0
  338. package/dist/jsdoc-port-sync/sync.d.ts +36 -0
  339. package/dist/jsdoc-port-sync/sync.js +644 -0
  340. package/dist/jsdoc-port-sync.d.ts +10 -0
  341. package/dist/jsdoc-port-sync.js +10 -0
  342. package/dist/marketplace/index.d.ts +11 -0
  343. package/dist/marketplace/index.js +10 -0
  344. package/dist/marketplace/manifest.d.ts +32 -0
  345. package/dist/marketplace/manifest.js +176 -0
  346. package/dist/marketplace/registry.d.ts +30 -0
  347. package/dist/marketplace/registry.js +100 -0
  348. package/dist/marketplace/types.d.ts +154 -0
  349. package/dist/marketplace/types.js +9 -0
  350. package/dist/marketplace/validator.d.ts +13 -0
  351. package/dist/marketplace/validator.js +131 -0
  352. package/dist/mcp/auto-registration.d.ts +3 -0
  353. package/dist/mcp/auto-registration.js +62 -0
  354. package/dist/mcp/editor-connection.d.ts +50 -0
  355. package/dist/mcp/editor-connection.js +125 -0
  356. package/dist/mcp/event-buffer.d.ts +62 -0
  357. package/dist/mcp/event-buffer.js +150 -0
  358. package/dist/mcp/index.d.ts +12 -0
  359. package/dist/mcp/index.js +11 -0
  360. package/dist/mcp/resources.d.ts +14 -0
  361. package/dist/mcp/resources.js +55 -0
  362. package/dist/mcp/response-utils.d.ts +63 -0
  363. package/dist/mcp/response-utils.js +89 -0
  364. package/dist/mcp/server.d.ts +4 -0
  365. package/dist/mcp/server.js +99 -0
  366. package/dist/mcp/tools-diagram.d.ts +8 -0
  367. package/dist/mcp/tools-diagram.js +53 -0
  368. package/dist/mcp/tools-editor.d.ts +5 -0
  369. package/dist/mcp/tools-editor.js +190 -0
  370. package/dist/mcp/tools-export.d.ts +9 -0
  371. package/dist/mcp/tools-export.js +180 -0
  372. package/dist/mcp/tools-marketplace.d.ts +9 -0
  373. package/dist/mcp/tools-marketplace.js +132 -0
  374. package/dist/mcp/tools-pattern.d.ts +3 -0
  375. package/dist/mcp/tools-pattern.js +783 -0
  376. package/dist/mcp/tools-query.d.ts +3 -0
  377. package/dist/mcp/tools-query.js +364 -0
  378. package/dist/mcp/tools-template.d.ts +10 -0
  379. package/dist/mcp/tools-template.js +119 -0
  380. package/dist/mcp/types.d.ts +70 -0
  381. package/dist/mcp/types.js +8 -0
  382. package/dist/mcp/workflow-executor.d.ts +47 -0
  383. package/dist/mcp/workflow-executor.js +133 -0
  384. package/dist/migration/registry.d.ts +30 -0
  385. package/dist/migration/registry.js +29 -0
  386. package/dist/node-types-generator.d.ts +49 -0
  387. package/dist/node-types-generator.js +139 -0
  388. package/dist/npm-packages.d.ts +56 -0
  389. package/dist/npm-packages.js +255 -0
  390. package/dist/parser.d.ts +204 -0
  391. package/dist/parser.js +2100 -0
  392. package/dist/plugin/PluginPanel.d.ts +12 -0
  393. package/dist/plugin/PluginPanel.js +5 -0
  394. package/dist/plugin/index.d.ts +13 -0
  395. package/dist/plugin/index.js +14 -0
  396. package/dist/plugin/types.d.ts +75 -0
  397. package/dist/plugin/types.js +8 -0
  398. package/dist/resolve-package-types.d.ts +17 -0
  399. package/dist/resolve-package-types.js +123 -0
  400. package/dist/runtime/CancellationError.d.ts +11 -0
  401. package/dist/runtime/CancellationError.js +20 -0
  402. package/dist/runtime/ExecutionContext.d.ts +146 -0
  403. package/dist/runtime/ExecutionContext.js +235 -0
  404. package/dist/runtime/builtin-functions.d.ts +8 -0
  405. package/dist/runtime/builtin-functions.js +549 -0
  406. package/dist/runtime/events.d.ts +50 -0
  407. package/dist/runtime/events.js +2 -0
  408. package/dist/runtime/function-registry.d.ts +59 -0
  409. package/dist/runtime/function-registry.js +66 -0
  410. package/dist/runtime/index.d.ts +7 -0
  411. package/dist/runtime/index.js +7 -0
  412. package/dist/runtime/parameter-resolver.d.ts +62 -0
  413. package/dist/runtime/parameter-resolver.js +113 -0
  414. package/dist/server/index.d.ts +7 -0
  415. package/dist/server/index.js +6 -0
  416. package/dist/server/types.d.ts +93 -0
  417. package/dist/server/types.js +5 -0
  418. package/dist/server/webhook-server.d.ts +50 -0
  419. package/dist/server/webhook-server.js +269 -0
  420. package/dist/server/workflow-registry.d.ts +61 -0
  421. package/dist/server/workflow-registry.js +202 -0
  422. package/dist/shared-project.d.ts +9 -0
  423. package/dist/shared-project.js +28 -0
  424. package/dist/sugar-optimizer.d.ts +40 -0
  425. package/dist/sugar-optimizer.js +387 -0
  426. package/dist/testing/assertions.d.ts +51 -0
  427. package/dist/testing/assertions.js +127 -0
  428. package/dist/testing/index.d.ts +30 -0
  429. package/dist/testing/index.js +24 -0
  430. package/dist/testing/mock-approval.d.ts +81 -0
  431. package/dist/testing/mock-approval.js +98 -0
  432. package/dist/testing/mock-llm.d.ts +124 -0
  433. package/dist/testing/mock-llm.js +119 -0
  434. package/dist/testing/recorder.d.ts +72 -0
  435. package/dist/testing/recorder.js +70 -0
  436. package/dist/testing/replayer.d.ts +56 -0
  437. package/dist/testing/replayer.js +143 -0
  438. package/dist/testing/token-tracker.d.ts +71 -0
  439. package/dist/testing/token-tracker.js +94 -0
  440. package/dist/type-checker.d.ts +42 -0
  441. package/dist/type-checker.js +190 -0
  442. package/dist/type-mappings.d.ts +29 -0
  443. package/dist/type-mappings.js +125 -0
  444. package/dist/types/branded-ports.d.ts +151 -0
  445. package/dist/types/branded-ports.js +121 -0
  446. package/dist/types/index.d.ts +5 -0
  447. package/dist/types/index.js +5 -0
  448. package/dist/types.d.ts +139 -0
  449. package/dist/types.js +15 -0
  450. package/dist/utils/error-utils.d.ts +15 -0
  451. package/dist/utils/error-utils.js +27 -0
  452. package/dist/utils/lru-cache.d.ts +15 -0
  453. package/dist/utils/lru-cache.js +40 -0
  454. package/dist/utils/port-ordering.d.ts +26 -0
  455. package/dist/utils/port-ordering.js +88 -0
  456. package/dist/utils/port-tag-utils.d.ts +23 -0
  457. package/dist/utils/port-tag-utils.js +41 -0
  458. package/dist/utils/string-distance.d.ts +14 -0
  459. package/dist/utils/string-distance.js +56 -0
  460. package/dist/validation/agent-detection.d.ts +33 -0
  461. package/dist/validation/agent-detection.js +115 -0
  462. package/dist/validation/agent-rules.d.ts +48 -0
  463. package/dist/validation/agent-rules.js +262 -0
  464. package/dist/validator.d.ts +92 -0
  465. package/dist/validator.js +970 -0
  466. package/package.json +109 -0
@@ -0,0 +1,442 @@
1
+ /**
2
+ * @module chevrotain-parser/port-parser
3
+ *
4
+ * Parser for @input/@output/@step port declarations using Chevrotain.
5
+ */
6
+ import { CstParser } from 'chevrotain';
7
+ import { JSDocLexer, InputTag, OutputTag, StepTag, Identifier, ScopePrefix, OrderPrefix, PlacementPrefix, TypePrefix, MergeStrategyPrefix, TopKeyword, BottomKeyword, TrueKeyword, FalseKeyword, OverKeyword, MinimizedKeyword, Integer, StringLiteral, DescriptionText, LBracket, RBracket, LParen, RParen, Comma, Colon, Dot, Dash, Equals, GreaterThan, LessThan, Pipe, Ampersand, LBrace, RBrace, Asterisk, allTokens, } from './tokens.js';
8
+ // =============================================================================
9
+ // Parser Definition
10
+ // =============================================================================
11
+ class PortParser extends CstParser {
12
+ constructor() {
13
+ super(allTokens);
14
+ this.performSelfAnalysis();
15
+ }
16
+ // Entry rule for port line
17
+ portLine = this.RULE('portLine', () => {
18
+ this.OR([
19
+ { ALT: () => this.SUBRULE(this.inputPort) },
20
+ { ALT: () => this.SUBRULE(this.outputPort) },
21
+ { ALT: () => this.SUBRULE(this.stepPort) },
22
+ ]);
23
+ });
24
+ // @input port: @input name, @input [name], @input [name=default]
25
+ inputPort = this.RULE('inputPort', () => {
26
+ this.CONSUME(InputTag);
27
+ this.OR([
28
+ {
29
+ ALT: () => {
30
+ // Bracketed format: [name] or [name=default]
31
+ this.CONSUME(LBracket, { LABEL: 'optionalBracket' });
32
+ this.CONSUME(Identifier, { LABEL: 'portName' });
33
+ this.OPTION(() => {
34
+ this.CONSUME(Equals);
35
+ // Default value can be an identifier, integer, or string literal
36
+ this.OR1([
37
+ { ALT: () => this.CONSUME2(Identifier, { LABEL: 'defaultValue' }) },
38
+ { ALT: () => this.CONSUME(Integer, { LABEL: 'defaultValueInt' }) },
39
+ { ALT: () => this.CONSUME(StringLiteral, { LABEL: 'defaultValueStr' }) },
40
+ ]);
41
+ });
42
+ this.CONSUME(RBracket);
43
+ },
44
+ },
45
+ {
46
+ ALT: () => {
47
+ // Plain format: name
48
+ this.CONSUME3(Identifier, { LABEL: 'portName' });
49
+ },
50
+ },
51
+ ]);
52
+ this.OPTION2(() => {
53
+ this.SUBRULE(this.scopeClause);
54
+ });
55
+ this.MANY2(() => {
56
+ this.SUBRULE(this.metadataBracket);
57
+ });
58
+ this.OPTION4(() => {
59
+ this.SUBRULE(this.descriptionClause);
60
+ });
61
+ });
62
+ // @output port
63
+ outputPort = this.RULE('outputPort', () => {
64
+ this.CONSUME(OutputTag);
65
+ this.CONSUME(Identifier, { LABEL: 'portName' });
66
+ this.OPTION(() => {
67
+ this.SUBRULE(this.scopeClause);
68
+ });
69
+ this.MANY(() => {
70
+ this.SUBRULE(this.metadataBracket);
71
+ });
72
+ this.OPTION3(() => {
73
+ this.SUBRULE(this.descriptionClause);
74
+ });
75
+ });
76
+ // @step port
77
+ stepPort = this.RULE('stepPort', () => {
78
+ this.CONSUME(StepTag);
79
+ this.CONSUME(Identifier, { LABEL: 'portName' });
80
+ this.OPTION(() => {
81
+ this.SUBRULE(this.descriptionClause);
82
+ });
83
+ });
84
+ // scope:identifier
85
+ scopeClause = this.RULE('scopeClause', () => {
86
+ this.CONSUME(ScopePrefix);
87
+ this.CONSUME(Identifier, { LABEL: 'scopeName' });
88
+ });
89
+ // [order:N, placement:TOP/BOTTOM, type:X, mergeStrategy:X]
90
+ metadataBracket = this.RULE('metadataBracket', () => {
91
+ this.CONSUME(LBracket);
92
+ this.AT_LEAST_ONE_SEP({
93
+ SEP: Comma,
94
+ DEF: () => {
95
+ this.OR([
96
+ { ALT: () => this.SUBRULE(this.orderAttr) },
97
+ { ALT: () => this.SUBRULE(this.placementAttr) },
98
+ { ALT: () => this.SUBRULE(this.typeAttr) },
99
+ { ALT: () => this.SUBRULE(this.mergeStrategyAttr) },
100
+ ]);
101
+ },
102
+ });
103
+ this.CONSUME(RBracket);
104
+ });
105
+ // order:N
106
+ orderAttr = this.RULE('orderAttr', () => {
107
+ this.CONSUME(OrderPrefix);
108
+ this.CONSUME(Integer, { LABEL: 'orderValue' });
109
+ });
110
+ // placement:TOP/BOTTOM
111
+ placementAttr = this.RULE('placementAttr', () => {
112
+ this.CONSUME(PlacementPrefix);
113
+ this.OR([
114
+ { ALT: () => this.CONSUME(TopKeyword, { LABEL: 'placementValue' }) },
115
+ { ALT: () => this.CONSUME(BottomKeyword, { LABEL: 'placementValue' }) },
116
+ ]);
117
+ });
118
+ // type:STRING/NUMBER/BOOLEAN/ARRAY/OBJECT/FUNCTION/ANY/STEP
119
+ // Uses Identifier to avoid matching type keywords in descriptions
120
+ typeAttr = this.RULE('typeAttr', () => {
121
+ this.CONSUME(TypePrefix);
122
+ this.CONSUME(Identifier, { LABEL: 'typeValue' });
123
+ });
124
+ // mergeStrategy:FIRST/LAST/COLLECT/MERGE/CONCAT
125
+ mergeStrategyAttr = this.RULE('mergeStrategyAttr', () => {
126
+ this.CONSUME(MergeStrategyPrefix);
127
+ this.CONSUME(Identifier, { LABEL: 'mergeStrategyValue' });
128
+ });
129
+ // - description text
130
+ // Note: We just consume the dash here. The actual description text is extracted
131
+ // from the raw input in parsePortLine() to handle special characters like &, :, etc.
132
+ descriptionClause = this.RULE('descriptionClause', () => {
133
+ this.CONSUME(Dash);
134
+ // Consume any remaining tokens - they're part of the description
135
+ // but the actual description is extracted from raw input.
136
+ // Keywords (over, true, false, TOP, BOTTOM, minimized) and prefix tokens
137
+ // (scope:, order:, etc.) must be included here since they can appear in
138
+ // free-text descriptions (e.g., "Array to iterate over").
139
+ this.MANY(() => {
140
+ this.OR([
141
+ { ALT: () => this.CONSUME(Identifier) },
142
+ { ALT: () => this.CONSUME(Integer) },
143
+ { ALT: () => this.CONSUME(LParen) },
144
+ { ALT: () => this.CONSUME(RParen) },
145
+ { ALT: () => this.CONSUME(Colon) },
146
+ { ALT: () => this.CONSUME(StringLiteral) },
147
+ { ALT: () => this.CONSUME(DescriptionText) },
148
+ { ALT: () => this.CONSUME(Comma) },
149
+ { ALT: () => this.CONSUME(Dot) },
150
+ { ALT: () => this.CONSUME2(Dash) },
151
+ { ALT: () => this.CONSUME(Equals) },
152
+ { ALT: () => this.CONSUME(GreaterThan) },
153
+ { ALT: () => this.CONSUME(LessThan) },
154
+ { ALT: () => this.CONSUME(Pipe) },
155
+ { ALT: () => this.CONSUME(Ampersand) },
156
+ { ALT: () => this.CONSUME(LBrace) },
157
+ { ALT: () => this.CONSUME(RBrace) },
158
+ { ALT: () => this.CONSUME(LBracket) },
159
+ { ALT: () => this.CONSUME(RBracket) },
160
+ { ALT: () => this.CONSUME(Asterisk) },
161
+ // Keywords that can appear in description text
162
+ { ALT: () => this.CONSUME(OverKeyword) },
163
+ { ALT: () => this.CONSUME(TopKeyword) },
164
+ { ALT: () => this.CONSUME(BottomKeyword) },
165
+ { ALT: () => this.CONSUME(TrueKeyword) },
166
+ { ALT: () => this.CONSUME(FalseKeyword) },
167
+ { ALT: () => this.CONSUME(MinimizedKeyword) },
168
+ // Prefix tokens (scope:, order:, etc.)
169
+ { ALT: () => this.CONSUME(ScopePrefix) },
170
+ { ALT: () => this.CONSUME(OrderPrefix) },
171
+ { ALT: () => this.CONSUME(PlacementPrefix) },
172
+ { ALT: () => this.CONSUME(TypePrefix) },
173
+ { ALT: () => this.CONSUME(MergeStrategyPrefix) },
174
+ ]);
175
+ });
176
+ });
177
+ }
178
+ // =============================================================================
179
+ // Parser Instance (singleton)
180
+ // =============================================================================
181
+ const parserInstance = new PortParser();
182
+ // =============================================================================
183
+ // CST Visitor
184
+ // =============================================================================
185
+ const BaseVisitor = parserInstance.getBaseCstVisitorConstructor();
186
+ class PortVisitor extends BaseVisitor {
187
+ constructor() {
188
+ super();
189
+ this.validateVisitor();
190
+ }
191
+ portLine(ctx) {
192
+ if (ctx.inputPort) {
193
+ return this.visit(ctx.inputPort);
194
+ }
195
+ if (ctx.outputPort) {
196
+ return this.visit(ctx.outputPort);
197
+ }
198
+ if (ctx.stepPort) {
199
+ return this.visit(ctx.stepPort);
200
+ }
201
+ return null;
202
+ }
203
+ inputPort(ctx) {
204
+ const name = ctx.portName[0].image;
205
+ const isOptional = !!ctx.optionalBracket;
206
+ // Handle default value from identifier, integer, or string literal
207
+ let defaultValue;
208
+ if (ctx.defaultValue?.[0]) {
209
+ defaultValue = ctx.defaultValue[0].image;
210
+ }
211
+ else if (ctx.defaultValueInt?.[0]) {
212
+ defaultValue = ctx.defaultValueInt[0].image;
213
+ }
214
+ else if (ctx.defaultValueStr?.[0]) {
215
+ // Remove quotes from string literal
216
+ const raw = ctx.defaultValueStr[0].image;
217
+ defaultValue = raw.slice(1, -1);
218
+ }
219
+ let scope;
220
+ let order;
221
+ let placement;
222
+ let dataType;
223
+ let mergeStrategy;
224
+ let description;
225
+ if (ctx.scopeClause) {
226
+ scope = this.visit(ctx.scopeClause);
227
+ }
228
+ if (ctx.metadataBracket) {
229
+ // Handle multiple metadata brackets (e.g., [order:1] [placement:TOP])
230
+ for (const bracket of ctx.metadataBracket) {
231
+ const metadata = this.visit(bracket);
232
+ if (metadata.order !== undefined)
233
+ order = metadata.order;
234
+ if (metadata.placement !== undefined)
235
+ placement = metadata.placement;
236
+ if (metadata.dataType !== undefined)
237
+ dataType = metadata.dataType;
238
+ if (metadata.mergeStrategy !== undefined)
239
+ mergeStrategy = metadata.mergeStrategy;
240
+ }
241
+ }
242
+ if (ctx.descriptionClause) {
243
+ description = this.visit(ctx.descriptionClause);
244
+ }
245
+ return {
246
+ type: 'input',
247
+ name,
248
+ ...(isOptional && { isOptional }),
249
+ ...(defaultValue && { defaultValue }),
250
+ ...(scope && { scope }),
251
+ ...(order !== undefined && { order }),
252
+ ...(placement && { placement }),
253
+ ...(dataType && { dataType }),
254
+ ...(mergeStrategy && { mergeStrategy }),
255
+ ...(description && { description }),
256
+ };
257
+ }
258
+ outputPort(ctx) {
259
+ const name = ctx.portName[0].image;
260
+ let scope;
261
+ let order;
262
+ let placement;
263
+ let dataType;
264
+ let description;
265
+ if (ctx.scopeClause) {
266
+ scope = this.visit(ctx.scopeClause);
267
+ }
268
+ if (ctx.metadataBracket) {
269
+ // Handle multiple metadata brackets (e.g., [order:1] [placement:TOP])
270
+ for (const bracket of ctx.metadataBracket) {
271
+ const metadata = this.visit(bracket);
272
+ if (metadata.order !== undefined)
273
+ order = metadata.order;
274
+ if (metadata.placement !== undefined)
275
+ placement = metadata.placement;
276
+ if (metadata.dataType !== undefined)
277
+ dataType = metadata.dataType;
278
+ }
279
+ }
280
+ if (ctx.descriptionClause) {
281
+ description = this.visit(ctx.descriptionClause);
282
+ }
283
+ return {
284
+ type: 'output',
285
+ name,
286
+ ...(scope && { scope }),
287
+ ...(order !== undefined && { order }),
288
+ ...(placement && { placement }),
289
+ ...(dataType && { dataType }),
290
+ ...(description && { description }),
291
+ };
292
+ }
293
+ stepPort(ctx) {
294
+ const name = ctx.portName[0].image;
295
+ let description;
296
+ if (ctx.descriptionClause) {
297
+ description = this.visit(ctx.descriptionClause);
298
+ }
299
+ return {
300
+ type: 'step',
301
+ name,
302
+ ...(description && { description }),
303
+ };
304
+ }
305
+ scopeClause(ctx) {
306
+ return ctx.scopeName[0].image;
307
+ }
308
+ metadataBracket(ctx) {
309
+ let order;
310
+ let placement;
311
+ let dataType;
312
+ let mergeStrategy;
313
+ if (ctx.orderAttr) {
314
+ for (const attr of ctx.orderAttr) {
315
+ order = this.visit(attr);
316
+ }
317
+ }
318
+ if (ctx.placementAttr) {
319
+ for (const attr of ctx.placementAttr) {
320
+ placement = this.visit(attr);
321
+ }
322
+ }
323
+ if (ctx.typeAttr) {
324
+ for (const attr of ctx.typeAttr) {
325
+ dataType = this.visit(attr);
326
+ }
327
+ }
328
+ if (ctx.mergeStrategyAttr) {
329
+ for (const attr of ctx.mergeStrategyAttr) {
330
+ mergeStrategy = this.visit(attr);
331
+ }
332
+ }
333
+ return { order, placement, dataType, mergeStrategy };
334
+ }
335
+ orderAttr(ctx) {
336
+ return parseInt(ctx.orderValue[0].image, 10);
337
+ }
338
+ placementAttr(ctx) {
339
+ return ctx.placementValue[0].image;
340
+ }
341
+ typeAttr(ctx) {
342
+ return ctx.typeValue[0].image;
343
+ }
344
+ mergeStrategyAttr(ctx) {
345
+ return ctx.mergeStrategyValue[0].image;
346
+ }
347
+ descriptionClause(ctx) {
348
+ if (ctx.Identifier) {
349
+ return ctx.Identifier.map((token) => token.image).join(' ');
350
+ }
351
+ return '';
352
+ }
353
+ }
354
+ const visitorInstance = new PortVisitor();
355
+ // =============================================================================
356
+ // Public API
357
+ // =============================================================================
358
+ /**
359
+ * Parse a port line (@input/@output/@step) and return structured result.
360
+ * Returns null if the line is not a port declaration.
361
+ */
362
+ export function parsePortLine(input, warnings) {
363
+ const lexResult = JSDocLexer.tokenize(input);
364
+ // Ignore lexer errors for now - we may have special chars in description
365
+ // Just ensure we have at least one token
366
+ // Check if starts with @input, @output, or @step
367
+ if (lexResult.tokens.length === 0) {
368
+ return null;
369
+ }
370
+ const firstToken = lexResult.tokens[0];
371
+ if (firstToken.tokenType !== InputTag &&
372
+ firstToken.tokenType !== OutputTag &&
373
+ firstToken.tokenType !== StepTag) {
374
+ return null;
375
+ }
376
+ parserInstance.input = lexResult.tokens;
377
+ const cst = parserInstance.portLine();
378
+ if (parserInstance.errors.length > 0) {
379
+ const firstError = parserInstance.errors[0];
380
+ const truncatedInput = input.length > 60 ? input.substring(0, 60) + '...' : input;
381
+ const expectedTokens = firstError.context?.ruleStack?.length
382
+ ? ` in rule "${firstError.context.ruleStack[firstError.context.ruleStack.length - 1]}"`
383
+ : '';
384
+ warnings.push(`Failed to parse port line: "${truncatedInput}"${expectedTokens}\n` +
385
+ ` Error: ${firstError.message}\n` +
386
+ ` Expected format: @input <name> [scope:scopeName] [order:N] - description\n` +
387
+ ` @output <name> - description\n` +
388
+ ` @step <name> - description`);
389
+ return null;
390
+ }
391
+ const result = visitorInstance.visit(cst);
392
+ // Extract description from raw input (more robust than token-based)
393
+ // Description starts after " - " (dash with spaces)
394
+ const dashMatch = input.match(/\s-\s+(.+)$/);
395
+ if (dashMatch && dashMatch[1]) {
396
+ result.description = dashMatch[1].trim();
397
+ }
398
+ else if (result.description === '') {
399
+ // Parser found dash but no text - remove empty description
400
+ delete result.description;
401
+ }
402
+ return result;
403
+ }
404
+ /**
405
+ * Parse all port lines from a JSDoc block.
406
+ * Extracts lines starting with @input, @output, or @step.
407
+ */
408
+ export function parsePortsFromJSDoc(jsdocBlock, warnings = []) {
409
+ const results = [];
410
+ // Split by lines and process each
411
+ const lines = jsdocBlock.split('\n');
412
+ for (const line of lines) {
413
+ // Remove JSDoc line prefix: " * "
414
+ const cleanLine = line.replace(/^\s*\*\s*/, '').trim();
415
+ // Skip if not a port tag
416
+ if (!cleanLine.startsWith('@input') &&
417
+ !cleanLine.startsWith('@output') &&
418
+ !cleanLine.startsWith('@step')) {
419
+ continue;
420
+ }
421
+ const result = parsePortLine(cleanLine, warnings);
422
+ if (result) {
423
+ results.push(result);
424
+ }
425
+ }
426
+ return results;
427
+ }
428
+ /**
429
+ * Check if a line is a valid port line.
430
+ */
431
+ export function isValidPortLine(line) {
432
+ const cleanLine = line.replace(/^\s*\*\s*/, '').trim();
433
+ const warnings = [];
434
+ return parsePortLine(cleanLine, warnings) != null;
435
+ }
436
+ /**
437
+ * Get serialized grammar for documentation/diagram generation.
438
+ */
439
+ export function getPortGrammar() {
440
+ return parserInstance.getSerializedGastProductions();
441
+ }
442
+ //# sourceMappingURL=port-parser.js.map
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @module chevrotain-parser/position-parser
3
+ *
4
+ * Parser for @position declarations using Chevrotain.
5
+ */
6
+ export interface PositionParseResult {
7
+ nodeId: string;
8
+ x: number;
9
+ y: number;
10
+ }
11
+ /**
12
+ * Parse a @position line and return structured result.
13
+ * Returns null if the line is not a position declaration.
14
+ */
15
+ export declare function parsePositionLine(input: string, warnings: string[]): PositionParseResult | null;
16
+ /**
17
+ * Get serialized grammar for documentation/diagram generation.
18
+ */
19
+ export declare function getPositionGrammar(): import("chevrotain").ISerializedGast[];
20
+ //# sourceMappingURL=position-parser.d.ts.map
@@ -0,0 +1,83 @@
1
+ /**
2
+ * @module chevrotain-parser/position-parser
3
+ *
4
+ * Parser for @position declarations using Chevrotain.
5
+ */
6
+ import { CstParser } from 'chevrotain';
7
+ import { JSDocLexer, PositionTag, Identifier, Integer, allTokens } from './tokens.js';
8
+ // =============================================================================
9
+ // Parser Definition
10
+ // =============================================================================
11
+ class PositionParser extends CstParser {
12
+ constructor() {
13
+ super(allTokens);
14
+ this.performSelfAnalysis();
15
+ }
16
+ // Entry rule for position line
17
+ positionLine = this.RULE('positionLine', () => {
18
+ this.CONSUME(PositionTag);
19
+ this.CONSUME(Identifier, { LABEL: 'nodeId' });
20
+ this.CONSUME(Integer, { LABEL: 'xCoord' });
21
+ this.CONSUME2(Integer, { LABEL: 'yCoord' });
22
+ });
23
+ }
24
+ // =============================================================================
25
+ // Parser Instance (singleton)
26
+ // =============================================================================
27
+ const parserInstance = new PositionParser();
28
+ // =============================================================================
29
+ // CST Visitor
30
+ // =============================================================================
31
+ const BaseVisitor = parserInstance.getBaseCstVisitorConstructor();
32
+ class PositionVisitor extends BaseVisitor {
33
+ constructor() {
34
+ super();
35
+ this.validateVisitor();
36
+ }
37
+ positionLine(ctx) {
38
+ const nodeId = ctx.nodeId[0].image;
39
+ const x = parseInt(ctx.xCoord[0].image, 10);
40
+ const y = parseInt(ctx.yCoord[0].image, 10);
41
+ return { nodeId, x, y };
42
+ }
43
+ }
44
+ const visitorInstance = new PositionVisitor();
45
+ // =============================================================================
46
+ // Public API
47
+ // =============================================================================
48
+ /**
49
+ * Parse a @position line and return structured result.
50
+ * Returns null if the line is not a position declaration.
51
+ */
52
+ export function parsePositionLine(input, warnings) {
53
+ const lexResult = JSDocLexer.tokenize(input);
54
+ if (lexResult.errors.length > 0) {
55
+ return null;
56
+ }
57
+ // Check if starts with @position
58
+ if (lexResult.tokens.length === 0) {
59
+ return null;
60
+ }
61
+ const firstToken = lexResult.tokens[0];
62
+ if (firstToken.tokenType !== PositionTag) {
63
+ return null;
64
+ }
65
+ parserInstance.input = lexResult.tokens;
66
+ const cst = parserInstance.positionLine();
67
+ if (parserInstance.errors.length > 0) {
68
+ const firstError = parserInstance.errors[0];
69
+ const truncatedInput = input.length > 60 ? input.substring(0, 60) + '...' : input;
70
+ warnings.push(`Failed to parse position line: "${truncatedInput}"\n` +
71
+ ` Error: ${firstError.message}\n` +
72
+ ` Expected format: @position nodeId x y`);
73
+ return null;
74
+ }
75
+ return visitorInstance.visit(cst);
76
+ }
77
+ /**
78
+ * Get serialized grammar for documentation/diagram generation.
79
+ */
80
+ export function getPositionGrammar() {
81
+ return parserInstance.getSerializedGastProductions();
82
+ }
83
+ //# sourceMappingURL=position-parser.js.map
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @module chevrotain-parser/scope-parser
3
+ *
4
+ * Parser for @scope declarations using Chevrotain.
5
+ */
6
+ export interface ScopeParseResult {
7
+ scopeName: string;
8
+ children: string[];
9
+ }
10
+ /**
11
+ * Parse a @scope line and return structured result.
12
+ * Returns null if the line is not a scope declaration.
13
+ */
14
+ export declare function parseScopeLine(input: string, warnings: string[]): ScopeParseResult | null;
15
+ /**
16
+ * Get serialized grammar for documentation/diagram generation.
17
+ */
18
+ export declare function getScopeGrammar(): import("chevrotain").ISerializedGast[];
19
+ //# sourceMappingURL=scope-parser.d.ts.map
@@ -0,0 +1,104 @@
1
+ /**
2
+ * @module chevrotain-parser/scope-parser
3
+ *
4
+ * Parser for @scope declarations using Chevrotain.
5
+ */
6
+ import { CstParser } from 'chevrotain';
7
+ import { JSDocLexer, ScopeTag, Identifier, Dot, LBracket, RBracket, Comma, allTokens, } from './tokens.js';
8
+ // =============================================================================
9
+ // Parser Definition
10
+ // =============================================================================
11
+ class ScopeParser extends CstParser {
12
+ constructor() {
13
+ super(allTokens);
14
+ this.performSelfAnalysis();
15
+ }
16
+ // Entry rule for scope line: @scope scopeName [child1, child2]
17
+ // or @scope container.scopeName [child1, child2]
18
+ scopeLine = this.RULE('scopeLine', () => {
19
+ this.CONSUME(ScopeTag);
20
+ this.SUBRULE(this.scopeRef);
21
+ this.CONSUME(LBracket);
22
+ this.AT_LEAST_ONE_SEP({
23
+ SEP: Comma,
24
+ DEF: () => {
25
+ this.CONSUME(Identifier, { LABEL: 'childId' });
26
+ },
27
+ });
28
+ this.CONSUME(RBracket);
29
+ });
30
+ // scopeName or container.scopeName
31
+ scopeRef = this.RULE('scopeRef', () => {
32
+ this.CONSUME(Identifier, { LABEL: 'firstPart' });
33
+ this.OPTION(() => {
34
+ this.CONSUME(Dot);
35
+ this.CONSUME2(Identifier, { LABEL: 'secondPart' });
36
+ });
37
+ });
38
+ }
39
+ // =============================================================================
40
+ // Parser Instance (singleton)
41
+ // =============================================================================
42
+ const parserInstance = new ScopeParser();
43
+ // =============================================================================
44
+ // CST Visitor
45
+ // =============================================================================
46
+ const BaseVisitor = parserInstance.getBaseCstVisitorConstructor();
47
+ class ScopeVisitor extends BaseVisitor {
48
+ constructor() {
49
+ super();
50
+ this.validateVisitor();
51
+ }
52
+ scopeLine(ctx) {
53
+ const scopeName = this.visit(ctx.scopeRef);
54
+ const children = ctx.childId.map((token) => token.image);
55
+ return { scopeName, children };
56
+ }
57
+ scopeRef(ctx) {
58
+ const firstPart = ctx.firstPart[0].image;
59
+ if (ctx.secondPart) {
60
+ const secondPart = ctx.secondPart[0].image;
61
+ return `${firstPart}.${secondPart}`;
62
+ }
63
+ return firstPart;
64
+ }
65
+ }
66
+ const visitorInstance = new ScopeVisitor();
67
+ // =============================================================================
68
+ // Public API
69
+ // =============================================================================
70
+ /**
71
+ * Parse a @scope line and return structured result.
72
+ * Returns null if the line is not a scope declaration.
73
+ */
74
+ export function parseScopeLine(input, warnings) {
75
+ const lexResult = JSDocLexer.tokenize(input);
76
+ if (lexResult.errors.length > 0) {
77
+ return null;
78
+ }
79
+ if (lexResult.tokens.length === 0) {
80
+ return null;
81
+ }
82
+ const firstToken = lexResult.tokens[0];
83
+ if (firstToken.tokenType !== ScopeTag) {
84
+ return null;
85
+ }
86
+ parserInstance.input = lexResult.tokens;
87
+ const cst = parserInstance.scopeLine();
88
+ if (parserInstance.errors.length > 0) {
89
+ const firstError = parserInstance.errors[0];
90
+ const truncatedInput = input.length > 60 ? input.substring(0, 60) + '...' : input;
91
+ warnings.push(`Failed to parse scope line: "${truncatedInput}"\n` +
92
+ ` Error: ${firstError.message}\n` +
93
+ ` Expected format: @scope scopeName [child1, child2]`);
94
+ return null;
95
+ }
96
+ return visitorInstance.visit(cst);
97
+ }
98
+ /**
99
+ * Get serialized grammar for documentation/diagram generation.
100
+ */
101
+ export function getScopeGrammar() {
102
+ return parserInstance.getSerializedGastProductions();
103
+ }
104
+ //# sourceMappingURL=scope-parser.js.map