@synergenius/flow-weaver 0.32.2 → 0.33.1

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.
@@ -215,6 +215,57 @@ export const NODE_ICON_PATHS = {
215
215
  cloudDone: 'm412.8-279.76 228.63-228.63-60.39-60.39-169 169-84.24-84.24-59.39 59.63L412.8-279.76ZM260.72-151.87q-94.35 0-161.24-65.15-66.89-65.15-66.89-159.26 0-80.39 47.36-143.67 47.35-63.27 125.03-80.75 26.43-92.95 102.63-150.19Q383.8-808.13 480-808.13q118.2 0 201.25 81.74t85.68 199.69q69.72 10.63 115.1 63.81 45.38 53.17 45.38 123.61 0 78.11-54.65 132.76-54.65 54.65-132.76 54.65H260.72Zm0-91h478.56q40.57 0 68.85-28.28 28.28-28.28 28.28-68.85 0-40.57-28.28-68.85-28.28-28.28-68.85-28.28h-62.87v-83.59q0-81.56-57.42-138.99-57.42-57.42-138.99-57.42-82.04 0-139.23 58.74-57.18 58.74-57.18 141.26h-22.87q-56.81 0-96.97 40.16-40.16 40.17-40.16 96.97t40.16 96.97q40.16 40.16 96.97 40.16ZM480-480Z',
216
216
  lock: 'M242.87-72.59q-37.54 0-64.27-26.73-26.73-26.73-26.73-64.27v-394.26q0-37.54 26.73-64.27 26.73-26.73 64.27-26.73h33.54v-73.06q0-84.92 59.46-144.61 59.46-59.7 144.13-59.7 84.67 0 144.13 59.7 59.46 59.69 59.46 144.61v73.06h33.54q37.54 0 64.27 26.73 26.73 26.73 26.73 64.27v394.26q0 37.54-26.73 64.27-26.73 26.73-64.27 26.73H242.87Zm0-91h474.26v-394.26H242.87v394.26ZM536.5-304.22q23.5-23.5 23.5-56.5t-23.5-56.5q-23.5-23.5-56.5-23.5t-56.5 23.5q-23.5 23.5-23.5 56.5t23.5 56.5q23.5 23.5 56.5 23.5t56.5-23.5ZM367.41-648.85h225.18v-73.06q0-47.21-32.73-80.26-32.73-33.05-79.86-33.05t-79.86 33.05q-32.73 33.05-32.73 80.26v73.06ZM242.87-163.59v-394.26 394.26Z',
217
217
  lockOpen: 'M242.87-648.85h349.72v-73.06q0-47.21-32.73-80.26-32.73-33.05-79.86-33.05t-79.86 33.05q-32.73 33.05-32.73 80.26h-91q0-84.92 59.46-144.61 59.46-59.7 144.13-59.7 84.67 0 144.13 59.7 59.46 59.69 59.46 144.61v73.06h33.54q37.54 0 64.27 26.73 26.73 26.73 26.73 64.27v394.26q0 37.54-26.73 64.27-26.73 26.73-64.27 26.73H242.87q-37.54 0-64.27-26.73-26.73-26.73-26.73-64.27v-394.26q0-37.54 26.73-64.27 26.73-26.73 64.27-26.73Zm0 485.26h474.26v-394.26H242.87v394.26ZM536.5-304.22q23.5-23.5 23.5-56.5t-23.5-56.5q-23.5-23.5-56.5-23.5t-56.5 23.5q-23.5 23.5-23.5 56.5t23.5 56.5q23.5 23.5 56.5 23.5t56.5-23.5ZM242.87-163.59v-394.26 394.26Z',
218
+ // ---- Platform catalog sync (icons available in the platform's node icon picker) ----
219
+ addAuthorization: 'M480-73.78q-140.58-32.67-233.28-158.97-92.7-126.29-92.7-289.29v-243.14L480-887.22l326.22 122.15v277.66q-16.15-8.92-34-15.4-17.85-6.47-34.37-8.67v-206.05L480-812.61l-257.85 95v195.51q0 76.58 24.62 140.22t62.5 111.42q37.88 47.79 83.16 79.07 45.29 31.28 86.61 44.56 6.24 14.87 19.92 32.15 13.67 17.27 24.78 26.22-10.44 5.72-21.87 8.58-11.44 2.86-21.87 6.1ZM692.5-80Q615-80 560-135.5T505-267q0-78.43 54.99-133.72Q614.98-456 693-456q77 0 132.5 55.28Q881-345.43 881-267q0 76-55.5 131.5T692.5-80ZM480-479.72Zm195.37 318.76h38.26v-86.41h86.41v-38.26h-86.41v-86.41h-38.26v86.41h-86.41v38.26h86.41v86.41Z',
220
+ alarm: 'M479-76.02q-75.2 0-141.77-28.48-66.58-28.48-116.03-77.82-49.46-49.33-78.32-115.91-28.86-66.57-28.86-142.5T142.88-583q28.86-66.35 78.32-116.18 49.45-49.84 116.03-78.44 66.57-28.6 141.77-28.6 75.2 0 141.77 28.6 66.58 28.6 116.41 78.44 49.84 49.83 78.44 116.18 28.6 66.34 28.6 142.27t-28.6 142.5q-28.6 66.58-78.44 115.97-49.84 49.4-116.41 77.82Q554.2-76.02 479-76.02ZM479-439Zm119.57 162.43 44.39-44.39-129.53-129.52V-640h-62.86v215.43l148 148Zm-387.2-598.08 44.15 44.15L86.5-667.48l-43.91-44.15 168.78-163.02Zm535.26 0 169.02 163.02-44.15 44.15L702.48-830.5l44.15-44.15ZM479-144.15q124.04 0 210.45-86.4 86.4-86.41 86.4-210.45 0-124.04-86.4-210.45-86.41-86.4-210.45-86.4-124.04 0-210.45 86.4-86.4 86.41-86.4 210.45 0 124.04 86.4 210.45 86.41 86.4 210.45 86.4Z',
221
+ allInclusive: 'M211.89-255.93q-91.56 0-153.76-66.7-62.2-66.7-62.2-159.37 0-91.67 62.7-156.87t153.26-65.2q36.72 0 70.96 12.24 34.24 12.23 60.78 37.72l90.85 87.61-48.22 47.5-85.81-83.87q-17.51-17.52-40.46-25.29t-47.98-7.77q-62.45 0-105.19 45.27-42.75 45.27-42.75 108.75 0 64.48 42.24 111.16 42.25 46.68 105.69 46.68 24.28 0 47.12-7.76 22.83-7.77 41.25-24.28l316-298q26.54-25.49 60.78-37.72 34.24-12.24 69.96-12.24 91.56 0 154.26 65.2 62.7 65.2 62.7 156.87 0 92.67-62.7 159.37t-154.26 66.7q-35.72 0-70.46-11.74-34.74-11.73-60.28-37.22l-88.61-87.61 47.98-47.5 83.88 83.89q16.53 16.52 39.81 24.28 23.29 7.76 47.57 7.76 63.44 0 106.19-46.72 42.74-46.72 42.74-111.13 0-63.41-43.24-108.71-43.25-45.3-105.69-45.3-24.28 0-47.12 8.76-22.83 8.77-40.25 25.28l-316 298q-26.54 24.49-61.28 36.22-34.74 11.74-70.46 11.74Z',
222
+ analytics: 'M285.2-277h60v-205h-60v205Zm329.84 0h60v-420h-60v420ZM450-277h60v-118h-60v118Zm0-205h60v-60h-60v60ZM182.15-114.02q-27.6 0-47.86-20.27-20.27-20.26-20.27-47.86v-595.7q0-27.7 20.27-48.03 20.26-20.34 47.86-20.34h595.7q27.7 0 48.03 20.34 20.34 20.33 20.34 48.03v595.7q0 27.6-20.34 47.86-20.33 20.27-48.03 20.27h-595.7Zm0-68.13h595.7v-595.7h-595.7v595.7Zm0-595.7v595.7-595.7Z',
223
+ assignment: 'M182.15-114.02q-28.1 0-48.12-20.01-20.01-20.02-20.01-48.12v-595.7q0-28.2 20.01-48.28 20.02-20.09 48.12-20.09h199.02q6.44-35 34.16-57.5 27.71-22.5 64.67-22.5t64.67 22.5q27.72 22.5 34.16 57.5h199.02q28.2 0 48.28 20.09 20.09 20.08 20.09 48.28v595.7q0 28.1-20.09 48.12-20.08 20.01-48.28 20.01h-595.7Zm0-68.13h595.7v-595.7h-595.7v595.7Zm100-100h270.37v-60H282.15v60Zm0-167.85h395.7v-60h-395.7v60Zm0-167.85h395.7v-60h-395.7v60ZM480-795.57q14.83 0 25.63-10.8 10.8-10.8 10.8-25.63 0-14.83-10.8-25.63-10.8-10.8-25.63-10.8-14.83 0-25.63 10.8-10.8 10.8-10.8 25.63 0 14.83 10.8 25.63 10.8 10.8 25.63 10.8ZM182.15-182.15v-595.7 595.7Z',
224
+ barChart: 'M660.48-154.02v-288.61h145.74v288.61H660.48Zm-253.11 0v-652.2h145.26v652.2H407.37Zm-253.35 0v-452.2h145.5v452.2h-145.5Z',
225
+ calendar: 'M182.15-74.02q-27.6 0-47.86-20.27-20.27-20.26-20.27-47.86v-615.7q0-27.7 20.27-48.03 20.26-20.34 47.86-20.34H245v-60h69.07v60h331.86v-60H715v60h62.85q27.7 0 48.03 20.34 20.34 20.33 20.34 48.03v256.65h-68.37V-570h-595.7v427.85h316.89v68.13H182.15Zm0-555.98h595.7v-127.85h-595.7V-630Zm0 0v-127.85V-630ZM559.04-74.02v-128.02L781-423q9.51-9.63 21.13-13.91 11.62-4.29 23.5-4.29 12.48 0 24.21 4.86T871.02-422l37 37q9.44 9.48 13.82 21.12 4.38 11.63 4.38 23.27 0 11.96-4.86 24.06-4.86 12.09-14.25 21.57L687.07-74.02H559.04Zm303.59-266.59-37-37 37 37Zm-240 203h38l120.28-121.23-18-19.02-19-18.03-121.28 120.22v38.06Zm140.28-140.28-19-18 37 37-18-19Z',
226
+ changeCircle: 'M482-198.09 597.91-313 482.24-427.91 438.09-384l41.32 41.33q-26.8.28-52.11-9.48-25.3-9.76-45.34-29.81-19.76-19.76-30.14-45.52-10.39-25.76-10.39-51.52 0-16.76 4.5-34t12.74-33.48l-45.91-45.67q-17.48 25.95-25.84 54.43-8.35 28.48-8.35 57.72 0 38.48 15 75.6t44.47 66.36q28.53 28.76 63.93 43.26 35.4 14.5 72.92 15.74L438.09-242 482-198.09Zm165.48-169.76q17.24-25.95 25.6-54.43 8.35-28.48 8.35-57.72 0-38.48-14.61-75.98-14.62-37.5-43.86-66.98-28.76-28.52-64.55-42.64-35.78-14.12-73.06-14.6l36.56-37.8L478-761.91 362.09-647l115.67 114.91L521.91-576l-42.08-42.33q25.8.72 52.37 10.86 26.56 10.14 45.84 29.43 19.76 19.76 30.14 45.52 10.39 25.76 10.39 51.52 0 16.76-4.5 34t-12.74 33.24l46.15 45.91ZM480-74.02q-83.43 0-157.51-31.86-74.08-31.86-129.41-87.2-55.34-55.33-87.2-129.41T74.02-480q0-84.43 31.86-158.51 31.86-74.08 87.2-128.91 55.33-54.84 129.41-86.82 74.08-31.98 157.51-31.98 84.43 0 158.51 31.98 74.08 31.98 128.91 86.82 54.84 54.83 86.82 128.91 31.98 74.08 31.98 158.51 0 83.43-31.98 157.51-31.98 74.08-86.82 129.41-54.83 55.34-128.91 87.2T480-74.02Zm0-68.13q141.04 0 239.45-98.78 98.4-98.79 98.4-239.07 0-141.04-98.4-239.45-98.41-98.4-239.45-98.4-140.28 0-239.07 98.4-98.78 98.41-98.78 239.45 0 140.28 98.78 239.07 98.79 98.78 239.07 98.78ZM480-480Z',
227
+ chat: 'M240-399h313v-60H240v60Zm0-130h480v-60H240v60Zm0-130h480v-60H240v60ZM74.02-74.02v-743.83q0-27.7 20.27-48.03 20.26-20.34 47.86-20.34h675.7q27.7 0 48.03 20.34 20.34 20.33 20.34 48.03v515.7q0 27.6-20.34 47.86-20.33 20.27-48.03 20.27H234.02l-160 160Zm134-228.13h609.83v-515.7h-675.7v587.57l65.87-71.87Zm-65.87 0v-515.7 515.7Z',
228
+ checklist: 'M222.96-208.26 74.98-356l47.98-47.74 100 99 179-179.24L449.7-435 222.96-208.26Zm0-320L74.98-676l47.98-47.74 100 99 179-179.24L449.7-755 222.96-528.26Zm298 242.33v-68.14h364.06v68.14H520.96Zm0-320v-68.14h364.06v68.14H520.96Z',
229
+ cloudStorage: 'M251.48-154.02q-90.17 0-153.57-63.1-63.41-63.1-63.41-153.4 0-79.44 50.24-140.23 50.24-60.79 128.43-73.27 20.96-97.72 95.96-159.46 75-61.74 172.94-61.74 112.89 0 191.08 81.74 78.2 81.74 80.11 196.46v24q72.72.15 122.48 49.89 49.76 49.75 49.76 124.61 0 71.61-51.44 123.05-51.45 51.45-123.06 51.45H251.48Zm0-68.13h499.04q43.87 0 75.36-31.4 31.49-31.41 31.49-75.45 0-44.04-31.49-75.45-31.49-31.4-75.36-31.4h-65.15v-86.63q0-89.91-60.2-152.14-60.2-62.23-147.06-62.23-87.39 0-147.94 63.12-60.54 63.12-60.54 153.88h-21.15q-61.11 0-103.48 42.86-42.37 42.85-42.37 105.94 0 62.09 43.37 105.5 43.37 43.4 105.48 43.4ZM480-480Z',
230
+ compareArrows: 'm311.5-154.02-47.74-47.74 116.94-116.7H74.02v-68.37H380.7L263.76-503.76l47.74-47.74 198.98 198.74L311.5-154.02Zm337-254.72L449.76-607.48 648.5-806.22l47.74 47.74-116.7 116.94h306.68v68.37H579.54l116.7 116.69-47.74 47.74Z',
231
+ construction: 'M770.39-114.02 517-367.17l60.83-61.07 253.39 253.39-60.83 60.83Zm-585.78 0-60.83-60.83 292.39-292.39-107.71-107.48-23 23-41.37-41.37v82.61l-25.2 25.2L91.63-612.54l25.2-25.2h83.6l-45.6-45.61 132.91-132.91q17.48-17.48 38.31-23.72 20.84-6.24 45.56-6.24 24.48 0 45.31 8.86 20.84 8.86 38.56 26.1L347.28-703.3l47.76 47.76-24 24 104.72 104.71 122-121.76q-7.76-12.76-12.26-29.76t-4.5-35.76q0-53.96 39.34-93.41 39.33-39.46 93.29-39.46 15.96 0 27.29 3.36 11.34 3.36 19.06 9.08l-85 85.24 73.09 73.08 85-85.24q5.95 8.48 9.93 21.06 3.98 12.57 3.98 28.29 0 54.2-39.58 93.41-39.57 39.22-93.77 39.22-17.76 0-30.52-2.38-12.76-2.38-23.52-7.14L184.61-114.02Z',
232
+ dataArray: 'M596.41-154.02v-67.89h141.68v-516.18H596.41v-68.13h209.81v652.2H596.41Zm-442.39 0v-652.2h209.57v68.13H221.91v516.18h141.68v67.89H154.02Z',
233
+ deviceHub: 'M115.93-115.93v-188.14h157.83l173.61-173.6v-143.74q-35.74-12.79-58.59-42.23-22.85-29.43-22.85-66.36 0-47.53 33.31-80.8 33.3-33.27 80.88-33.27 47.57 0 80.76 33.27 33.19 33.27 33.19 80.8 0 36.93-22.85 66.36-22.85 29.44-58.59 42.23v143.74l173.85 173.6h157.59v188.14H655.93v-121.5L480-413.37 304.07-237.43v121.5H115.93Z',
234
+ engineering: 'M36.26-114.26v-98.15q0-36.94 17.56-60.63 17.55-23.7 46.79-37.7 54-26 116.81-43.24 62.82-17.24 140.94-17.24t140.81 17q62.7 17 116.94 43 29 14.24 46.55 38.07 17.56 23.84 17.56 60.76v98.13H36.26Zm68.37-68.37h507.46v-29.13q0-15-8.5-24.14t-20.5-14.14q-43-19-95.52-36.03-52.53-17.02-129.21-17.02-76.69 0-129.21 17.14-52.52 17.15-95.52 35.96-12.24 4.95-20.62 14.09t-8.38 24.14v29.13Zm253.73-248.59q-68.51 0-112.31-44.61-43.79-44.61-43.79-110.17h-10q-8.75 0-15.21-6.48-6.46-6.47-6.46-15.25 0-8.67 6.46-15.15 6.46-6.47 15.21-6.47h10q0-41.19 21.32-74.51 21.31-33.31 55.94-53.08v39.15q0 6.33 4.45 10.71 4.44 4.38 10.79 4.38 6.76 0 11-4.36t4.24-10.57v-51.83q8.08-1.76 22.18-3.38 14.09-1.62 27.2-1.62 12.86 0 26.86 1.62t22.19 3.37v51.84q0 6.21 4.26 10.57 4.27 4.36 11.27 4.36 6.24 0 10.74-4.38t4.5-10.62v-39.24q34.39 19.77 54.7 53.07 20.32 33.31 20.32 74.52h10q8.75 0 15.21 6.46 6.46 6.45 6.46 15.19 0 8.74-6.46 15.22T524.22-586h-10q0 65.67-43.68 110.23-43.67 44.55-112.18 44.55Zm.11-68.37q40.81 0 64.21-24.37 23.41-24.36 23.41-63.48H270.63q0 39.05 23.37 63.45 23.36 24.4 64.47 24.4ZM358.48-182.63Z',
235
+ fileCopy: 'M782.63-162.63H269.8q-27.69 0-48.03-20.34-20.34-20.33-20.34-48.03v-626.37q0-27.6 20.34-47.86 20.34-20.27 48.03-20.27h345.37l235.59 235.59V-231q0 27.7-20.39 48.03-20.39 20.34-47.74 20.34Zm-202-496.74v-198H269.8V-231h512.83v-428.37h-202ZM141.43-34.5q-27.59 0-47.86-20.27Q73.3-75.03 73.3-102.63v-616.85h68.13v616.85h499.68v68.13H141.43ZM269.8-857.37v198-198V-231v-626.37Z',
236
+ filePresent: 'M222.15-74.02q-27.6 0-47.86-20.27-20.27-20.26-20.27-47.86v-675.7q0-27.7 20.27-48.03 20.26-20.34 47.86-20.34h357.89l226.18 226.18v517.89q0 27.6-20.34 47.86-20.33 20.27-48.03 20.27h-515.7Zm0-68.13h515.7V-634H554v-183.85H222.15v675.7Zm258.11-80q58.5 0 99.12-41.13Q620-304.4 620-362.22v-139.21h-40v139.2q0 42.03-28.75 71.05-28.75 29.03-71.25 29.03-42 0-71-29.02t-29-71.04v-219.3q0-17.97 11.5-28.95 11.5-10.97 28.5-10.97 18 0 29 10.98t11 28.96v199.34h40v-199.21q0-33.63-23.08-56.85-23.07-23.22-56.57-23.22-33.59 0-56.97 23.21Q340-615 340-581.37v219.18q0 57.79 41.2 98.91 41.21 41.13 99.06 41.13Zm-258.11-595.7V-634v-183.85 675.7-675.7Z',
237
+ forum: 'M890.28-70 729.61-230.67H305.02q-28.35 0-48.24-19.96-19.89-19.97-19.89-48.41v-80h436.89q28.1 0 48.12-19.89 20.01-19.9 20.01-48.24v-276.66h80q28.45 0 48.41 19.96 19.96 19.97 19.96 48.41V-70ZM138.09-440.54l66.63-66.63h409.06v-315.46H138.09v382.09ZM69.72-276.17v-546.46q0-28.45 19.96-48.41Q109.64-891 138.09-891h475.69q28.1 0 48.12 19.96 20.01 19.96 20.01 48.41v315.46q0 28.34-20.01 48.24-20.02 19.89-48.12 19.89H232.59L69.72-276.17Zm68.37-231v-315.46 315.46Z',
238
+ history: 'M476.77-114.02q-151.88 0-257.6-107.16Q113.45-328.33 113.78-481h68.13q.28 124.12 85.53 211.48 85.24 87.37 209.32 87.37 125.81 0 213.33-88.36 87.52-88.36 87.52-214.45 0-123.08-88.37-207.99-88.38-84.9-212.48-84.9-66.09 0-124.15 29.45-58.07 29.44-101.35 78.29h99.98V-607H137.46v-212.54h62.63v103.37q52.71-60.53 124.45-95.29 71.74-34.76 152.22-34.76 76.2 0 143.27 28.6 67.08 28.6 117.47 77.94 50.4 49.34 79.32 115.41Q845.74-558.2 845.74-482q0 76.2-28.92 143.27-28.92 67.07-79.32 116.91-50.39 49.84-117.47 78.82-67.07 28.98-143.26 28.98ZM603.8-315.57l-154-152V-683h62.63v189l136.53 133.28-45.16 45.15Z',
239
+ hourglassEmpty: 'M310.15-142.15h339.7V-267q0-71.04-49.4-119.95-49.41-48.9-120.45-48.9t-120.45 48.9q-49.4 48.91-49.4 119.95v124.85Zm169.85-382q71.04 0 120.45-49.4 49.4-49.41 49.4-120.45v-123.85h-339.7V-694q0 71.04 49.4 120.45 49.41 49.4 120.45 49.4ZM154.02-74.02v-68.13h88V-267q0-70.28 38.93-128.04Q319.87-452.8 384.43-480q-64.56-28.2-103.48-85.96-38.93-57.76-38.93-128.04v-123.85h-88v-68.37h652.2v68.37h-88V-694q0 70.28-38.93 128.04Q640.37-508.2 575.8-480q64.57 27.2 103.49 84.96 38.93 57.76 38.93 128.04v124.85h88v68.13h-652.2Z',
240
+ hub: 'M232.55-31.87q-49.64 0-84.44-34.94-34.81-34.94-34.81-84.57 0-49.64 34.87-84.45 34.86-34.8 84.4-34.8 13.93 0 25.09 2.38 11.15 2.38 21.86 7.14l81.65-102.65q-18.28-22.76-28.28-52.02t-5.24-60.45l-116.93-40.86q-15.48 25.24-40.87 39.48-25.39 14.24-58.48 14.24-49.63 0-84.57-34.86-34.93-34.87-34.93-84.4 0-49.63 34.94-84.69 34.94-35.05 84.57-35.05q49.64 0 84.45 35.05 34.8 35.06 34.8 84.73v3.24l117.7 42q18-31.52 43.38-48.4 25.38-16.88 55.66-24.21v-125.08q-39-11.24-62.94-44.44-23.93-33.19-23.93-70.67 0-49.55 34.94-84.6t84.57-35.05q49.64 0 84.57 35.05 34.92 35.05 34.92 84.6 0 37.48-24.32 70.67-24.31 33.2-62.55 44.44v125.17q30.28 7.24 56.16 24.24 25.88 17 44.22 48.28l116.36-42v-3.28q0-49.63 34.86-84.69 34.87-35.05 84.4-35.05 49.63 0 84.69 35.06 35.05 35.06 35.05 84.69 0 49.64-35.05 84.45-35.06 34.8-84.77 34.8-32.97 0-58.88-14.24-25.91-14.24-40.63-39.72l-116.69 41q4.28 31.53-4.98 60.67-9.26 29.14-28.54 51.9l81.89 103.13q10.7-5 21.74-7.5t24.54-2.5q50.47 0 85.2 34.86 34.73 34.87 34.73 84.4 0 49.63-34.98 84.57-34.98 34.93-84.52 34.93-49.63 0-84.56-34.87-34.94-34.88-34.94-84.7 0-20.7 5.62-37.39t15.62-31.93l-81.41-102.41q-32.13 16.28-68.32 16.28-36.2 0-67.96-16.28l-80.65 103.41q10 15.24 15.62 31.43 5.62 16.19 5.62 36.89 0 49.82-34.94 84.7-34.94 34.87-84.58 34.87ZM480-460Z',
241
+ integration: 'M359.35-114.02H180q-26.47 0-46.22-19.76-19.76-19.75-19.76-46.22v-179.35q41.85-4.76 71.68-33.51 29.82-28.76 29.82-70.11 0-41.36-29.82-70.14-29.83-28.78-71.68-33.78V-746q0-26.4 19.76-46.31 19.75-19.91 46.22-19.91h171.74q12.91-40.95 42.73-68.07 29.81-27.12 70.53-27.12t70.53 27.12q29.82 27.12 42.73 68.07H746q26.4 0 46.31 19.91 19.91 19.91 19.91 46.31v167.74q40.95 12.91 66.57 44.73 25.62 31.81 25.62 72.53t-25.62 69.03q-25.62 28.32-66.57 41.23V-180q0 26.47-19.91 46.22-19.91 19.76-46.31 19.76H566.89q-5.24-46.81-34.78-75.47-29.54-28.66-69.17-28.66-39.62 0-69.11 28.66-29.48 28.66-34.48 75.47ZM465-461Z',
242
+ leaderboard: 'M142.15-182.15h180.07v-355.7H142.15v355.7Zm248.2 0h179.3v-595.7h-179.3v595.7Zm247.43 0h180.07v-275.7H637.78v275.7ZM74.02-114.02v-492.2h248.2v-240h315.56v320h248.44v412.2H74.02Z',
243
+ loop: 'M360-118.26 311.26-166l70.17-70.17h-31.8q-115.28-1.92-194.49-84.99Q75.93-404.24 75.93-520q0-117.67 81.7-200.87T357-804.07h246q117.67 0 199.37 83.2T884.07-520q0 118.43-81.98 201.25t-199.94 82.82v-68.14q89.61 0 151.7-62.92 62.08-62.92 62.08-153.01 0-89.57-61.3-152.75-61.3-63.18-150.63-63.18H356q-89.33 0-150.63 63.18T144.07-520q0 86.93 58.95 149.4 58.96 62.47 145.41 64.14h31.13L312.02-374 360-421.98l151.98 151.74L360-118.26Z',
244
+ newFile: 'M450-232.09h60v-129h130v-60H510v-130h-60v130H320v60h130v129ZM222.15-74.02q-27.6 0-47.86-20.27-20.27-20.26-20.27-47.86v-675.7q0-27.7 20.27-48.03 20.26-20.34 47.86-20.34h361.48l222.59 222.59v521.48q0 27.6-20.34 47.86-20.33 20.27-48.03 20.27h-515.7Zm326.7-557.83v-186h-326.7v675.7h515.7v-489.7h-189Zm-326.7-186v186-186 675.7-675.7Z',
245
+ pieChart: 'M514.07-514.07h301.82q-11.24-118.65-96.71-206.11-85.46-87.47-205.11-95.71v301.82Zm-68.14 369.96v-671.78q-128.6 12.19-216.19 109-87.59 96.8-87.59 226.89 0 130.09 87.59 226.89 87.59 96.81 216.19 109Zm68.14 0q119.65-8.48 205-95.82 85.34-87.35 96.82-206H514.07v301.82ZM480-480Zm.03 405.98q-84.2 0-158.29-31.86-74.09-31.86-129.04-86.82-54.96-54.95-86.82-129.02-31.86-74.06-31.86-158.27 0-84.21 31.86-158.28 31.86-74.08 86.79-129.05 54.92-54.97 129.02-86.93 74.09-31.97 158.33-31.97 84.41 0 158.44 32 74.02 31.99 128.91 86.81 54.89 54.82 86.87 128.87Q886.22-564.5 886.22-480q0 84.51-32.01 158.57-32.01 74.07-86.88 128.86-54.87 54.79-128.96 86.67-74.1 31.88-158.34 31.88Z',
246
+ public: 'M480.21-74.02Q396-74.02 321.95-106q-74.06-31.98-129.03-86.87-54.97-54.88-86.93-128.92-31.97-74.04-31.97-158.22 0-84.19 31.97-158.21 31.96-74.02 86.93-128.91 54.97-54.89 129.06-86.99 74.08-32.1 158.31-32.1 84.24 0 158.18 32.1 73.95 32.1 128.87 86.94 54.92 54.83 86.9 128.9 31.98 74.06 31.98 158.27 0 84.21-31.96 158.25-31.95 74.05-86.9 128.96-54.96 54.92-129 86.85-74.04 31.93-158.15 31.93Zm-42.73-69.13v-81.76q-35 0-58.77-25.86-23.76-25.86-23.76-60.66v-43.77L151.39-558.76q-5 20-7 39.26-2 19.26-2 39.13 0 129.1 83.9 225.78 83.91 96.68 211.19 111.44Zm292.11-107.28q43.74-47.53 66-106.84 22.26-59.31 22.26-123.11 0-105.23-57.52-191.09-57.53-85.86-153.81-125.62v17.76q0 34.71-24.03 60.5-24.04 25.79-58.74 25.79h-86.27v86.45q0 17.07-13.5 27.95-13.5 10.88-30.57 10.88H311.2v87.28h256.37q16.9 0 27.92 13.04 11.03 13.03 11.03 29.9v126.11h42.52q28.76 0 50.67 17t29.88 44Z',
247
+ publish: 'M445.93-154.02v-359.52l-118.56 118.8-48.98-48.5L480-644.85l201.61 201.61-48.98 48.5-118.56-118.8v359.52h-68.14ZM154.02-594.85v-143q0-27.58 20.27-47.98 20.26-20.39 47.86-20.39h515.7q27.7 0 48.03 20.34 20.34 20.33 20.34 48.03v143h-68.37v-143h-515.7v143h-68.13Z',
248
+ rssFeed: 'M190.41-114.02q-31.67 0-54.03-22.59t-22.36-54.32q0-31.72 22.48-54.2 22.48-22.48 54.04-22.48 31.76 0 54.42 22.52 22.65 22.53 22.65 54.32t-22.68 54.27q-22.67 22.48-54.52 22.48Zm527.48 0q0-125.65-47.07-234.77-47.08-109.12-129.87-192.04-83.04-82.67-192.23-129.75-109.2-47.07-234.7-47.07v-95.74q145.83 0 272.39 54.53 126.55 54.53 222.24 150.21 95.68 95.69 150.21 222.24 54.53 126.56 54.53 272.39h-95.5Zm-269 0q0-70.48-26.04-132.56-26.03-62.07-71.68-109.59-45.47-47.24-106.11-73.98-60.64-26.74-131.04-26.74v-95.5q90.74 0 168.76 34.22 78.02 34.21 136.36 94.21 58.34 60.01 91.92 139.6 33.57 79.59 33.57 170.34h-95.74Z',
249
+ schema: 'M153.3-29v-231h100v-104.5h-100v-231h100V-700h-100v-231h269.33v231h-100v104.5h100v81.43h154.74v-81.43h269.56v231H577.37v-81.43H422.63v81.43h-100V-260h100v231H153.3Zm68.13-68.37H354.5v-94.5H221.43v94.5Zm0-335.26H354.5v-94.74H221.43v94.74Zm424.07 0h133.07v-94.74H645.5v94.74ZM221.43-768.37H354.5v-94.26H221.43v94.26Z',
250
+ showChart: 'M126-214.26 74.26-266 380-571.74l159.76 160.52 298-335 47.98 46.74-345.26 390.46L380-468.26l-254 254Z',
251
+ sms: 'M303.16-520.85q17.93 0 30.02-12.12 12.1-12.13 12.1-30.06t-12.12-30.02q-12.13-12.1-30.06-12.1t-30.02 12.12q-12.1 12.13-12.1 30.06t12.13 30.02q12.12 12.1 30.05 12.1Zm179.87 0q17.93 0 30.02-12.12 12.1-12.13 12.1-30.06t-12.12-30.02q-12.13-12.1-30.06-12.1t-30.02 12.12q-12.1 12.13-12.1 30.06t12.12 30.02q12.13 12.1 30.06 12.1Zm172.87 0q17.93 0 30.02-12.12 12.1-12.13 12.1-30.06t-12.13-30.02q-12.12-12.1-30.05-12.1t-30.02 12.12q-12.1 12.13-12.1 30.06t12.12 30.02q12.13 12.1 30.06 12.1ZM74.02-74.02v-743.83q0-27.7 20.27-48.03 20.26-20.34 47.86-20.34h675.7q27.7 0 48.03 20.34 20.34 20.33 20.34 48.03v515.7q0 27.6-20.34 47.86-20.33 20.27-48.03 20.27H234.02l-160 160Zm134-228.13h609.83v-515.7h-675.7v587.57l65.87-71.87Zm-65.87 0v-515.7 515.7Z',
252
+ source: 'M74.5-111.87v-675.5l200.5-130 200.5 130v109.74h410v565.76h-811Zm65.5-65.5h105v-105H140v105Zm0-165h105v-105H140v105Zm0-165h105v-105H140v105Zm0-165h105v-105H140v105Zm165 0h105v-105H305v105Zm0 495h515v-435H305v435Zm245-270v-60h165v60H550Zm0 165v-60h165v60H550Zm-140-165v-60h60v60h-60Zm0 165v-60h60v60h-60Z',
253
+ swapHoriz: 'M272.76-154.02 74.02-352.76 272.76-551.5l47.74 47.74-116.7 116.93h306.68v68.37H203.8l116.7 116.7-47.74 47.74Zm414.48-254.72-47.74-47.74 116.93-116.69H449.76v-68.37h306.67L639.5-758.48l47.74-47.74 198.98 198.74-198.98 198.74Z',
254
+ syncAlt: 'M273.39-106.85 74.02-306.46l200.37-200.37 47.98 47.74L203.8-340.52h642.42v68.37H203.8l117.57 117.56-47.98 47.74Zm413.22-346.32-47.74-47.74 117.56-117.57H114.02v-68.37h642.41l-118.56-118.8 47.74-47.74 200.61 200.61-199.61 199.61Z',
255
+ taskAlt: 'M480.12-74.02q-86.32 0-160.51-31t-128.89-85.7q-54.7-54.7-85.7-128.89-31-74.19-31-160.51 0-85.31 30.94-159.4t85.7-128.9q54.76-54.8 128.95-86.3T480-886.22q75 0 140 23.65t117.48 65.4l-49.46 49.21q-42.8-33.32-95.27-51.61-52.46-18.28-112.75-18.28-144.11 0-240.98 96.74-96.87 96.74-96.87 241.07 0 144.32 96.86 241.11 96.86 96.78 240.95 96.78 144.08 0 240.99-96.76 96.9-96.75 96.9-241.09 0-28.88-4.38-56.27-4.38-27.38-12.9-53.19l52.93-53.17q16.24 37.72 24.48 78.28 8.24 40.57 8.24 84.17 0 86.38-31.5 160.57t-86.3 128.95q-54.81 54.76-128.9 85.7-74.09 30.94-159.4 30.94Zm-59.6-220.39L252.89-463.04l49.78-50.03 117.85 117.85L836.2-810.89l51.02 50.02-466.7 466.46Z',
256
+ trendingUp: 'm122.76-234.74-48.74-48.74 298.94-297.69 167 167 231.91-232.4H647.02v-68.36h239.2v239.19h-67.37v-121.09L538.96-316.7l-167-167-249.2 248.96Z',
257
+ update: 'M483.19-114.02q-76.07 0-143.3-28.98-67.24-28.98-117.46-78.82-50.21-49.83-79.31-116.91-29.1-67.07-29.1-143.27 0-76.2 29.1-142.27 29.1-66.08 79.31-115.41 50.22-49.34 117.47-77.94 67.25-28.6 143.34-28.6 80.24 0 151.98 34.76t124.69 95.29v-103.37h62.63V-607H608.76v-63.11h99.98q-43.59-48.91-101.62-78.32-58.03-29.42-123.88-29.42-124.28 0-212.57 84.86-88.28 84.86-88.28 207.95 0 126.08 87.37 214.49 87.38 88.4 213.48 88.4 123.8 0 209.18-87.37 85.37-87.36 85.67-211.48h68.13q0 152.63-105.68 259.8-105.67 107.18-257.35 107.18ZM603.8-315.57l-154-152V-683h62.63v189l136.53 133.28-45.16 45.15Z',
258
+ uploadFile: 'M452-203.43h60v-201.96l82.48 82.48 42-42L480-517.15 325.76-362.91l42 42L452-405.39v201.96ZM222.15-74.02q-27.6 0-47.86-20.27-20.27-20.26-20.27-47.86v-675.7q0-27.7 20.27-48.03 20.26-20.34 47.86-20.34h361.48l222.59 222.59v521.48q0 27.6-20.34 47.86-20.33 20.27-48.03 20.27h-515.7Zm326.7-557.83v-186h-326.7v675.7h515.7v-489.7h-189Zm-326.7-186v186-186 675.7-675.7Z',
259
+ // ---- Aliases (platform names that map to existing core icons) ----
260
+ adminPanel: 'M480-73.78q-142.59-35.67-234.27-164.87-91.69-129.2-91.69-283.27v-242.26L480-886.22l326.22 122.05V-522q0 80.87-22.94 158.57-22.93 77.69-76.93 143.69l-144.31-138.3q-18.76 10.52-39.68 17.28Q501.44-334 480-334q-62 0-105.5-43T331-482.5q0-62.5 43.5-106T480-632q62 0 105.5 43.5T629-482q0 20.76-5.7 41.52t-18.34 37.28l85.61 81.85q24-42.52 35.64-94.66 11.64-52.14 11.64-105.94v-196.86L480-812.61l-257.85 93.92v196.65q0 130.08 72.02 234.51Q366.2-183.11 480.2-143.91q27.6-7.76 67.67-31.81 40.06-24.04 62.87-46.32l48.22 48.74q-35.24 32-84.22 60.38Q525.76-84.54 480-73.78Zm.24-322.85q35.56 0 60.85-24.81 25.28-24.82 25.28-61.09t-25.52-61.56q-25.52-25.28-61.09-25.28-35.56 0-60.85 25.31-25.28 25.32-25.28 61.59t25.52 61.06q25.52 24.78 61.09 24.78Zm2.35-82.83Z',
261
+ ai: 'M352.39-107.15 307-253.85l-148.85-44.54 148.85-44.78L352.39-490l45.15 147.43L544.63-298.4l-147.09 44.56-45.15 146.69Zm370-290.85-28.52-92.39-94.24-28.24 94.24-28.48 28.52-92.15 28.28 92.15 94.72 28.48-94.72 28.24-28.28 92.39ZM192.15-502.52l-17.76-58.52-58.52-18.72 58.52-17.48 17.76-59.24 18.48 59.24 58.52 17.48-58.52 18.72-18.48 58.52Z',
262
+ lockClosed: 'M242.87-72.59q-37.54 0-64.27-26.73-26.73-26.73-26.73-64.27v-394.26q0-37.54 26.73-64.27 26.73-26.73 64.27-26.73h33.54v-73.06q0-84.92 59.46-144.61 59.46-59.7 144.13-59.7 84.67 0 144.13 59.7 59.46 59.69 59.46 144.61v73.06h33.54q37.54 0 64.27 26.73 26.73 26.73 26.73 64.27v394.26q0 37.54-26.73 64.27-26.73 26.73-64.27 26.73H242.87Zm0-91h474.26v-394.26H242.87v394.26ZM536.5-304.22q23.5-23.5 23.5-56.5t-23.5-56.5q-23.5-23.5-56.5-23.5t-56.5 23.5q-23.5 23.5-23.5 56.5t23.5 56.5q23.5 23.5 56.5 23.5t56.5-23.5ZM367.41-648.85h225.18v-73.06q0-47.21-32.73-80.26-32.73-33.05-79.86-33.05t-79.86 33.05q-32.73 33.05-32.73 80.26v73.06ZM242.87-163.59v-394.26 394.26Z',
263
+ lockOpened: 'M242.87-648.85h349.72v-73.06q0-47.21-32.73-80.26-32.73-33.05-79.86-33.05t-79.86 33.05q-32.73 33.05-32.73 80.26h-91q0-84.92 59.46-144.61 59.46-59.7 144.13-59.7 84.67 0 144.13 59.7 59.46 59.69 59.46 144.61v73.06h33.54q37.54 0 64.27 26.73 26.73 26.73 26.73 64.27v394.26q0 37.54-26.73 64.27-26.73 26.73-64.27 26.73H242.87q-37.54 0-64.27-26.73-26.73-26.73-26.73-64.27v-394.26q0-37.54 26.73-64.27 26.73-26.73 64.27-26.73Zm0 485.26h474.26v-394.26H242.87v394.26ZM536.5-304.22q23.5-23.5 23.5-56.5t-23.5-56.5q-23.5-23.5-56.5-23.5t-56.5 23.5q-23.5 23.5-23.5 56.5t23.5 56.5q23.5 23.5 56.5 23.5t56.5-23.5ZM242.87-163.59v-394.26 394.26Z',
264
+ insights: 'M285.2-277h60v-205h-60v205Zm329.84 0h60v-420h-60v420ZM450-277h60v-118h-60v118Zm0-205h60v-60h-60v60ZM182.15-114.02q-27.6 0-47.86-20.27-20.27-20.26-20.27-47.86v-595.7q0-27.7 20.27-48.03 20.26-20.34 47.86-20.34h595.7q27.7 0 48.03 20.34 20.34 20.33 20.34 48.03v595.7q0 27.6-20.34 47.86-20.33 20.27-48.03 20.27h-595.7Zm0-68.13h595.7v-595.7h-595.7v595.7Zm0-595.7v595.7-595.7Z',
265
+ file: 'M222.15-74.02q-27.6 0-47.86-20.27-20.27-20.26-20.27-47.86v-675.7q0-27.7 20.27-48.03 20.26-20.34 47.86-20.34h357.89l226.18 226.18v517.89q0 27.6-20.34 47.86-20.33 20.27-48.03 20.27h-515.7Zm0-68.13h515.7V-634H554v-183.85H222.15v675.7Zm0-675.7V-634v-183.85 675.7-675.7Z',
266
+ outlinedSettings: 'M370-74.02l-16-127.48q-17-6.76-34.5-16.5T287.5-237l-118 53-110-192 104-77q-1-8-1.5-20.5t-.5-20.5q0-8.76.5-21.38T163-536l-104-77 110-192 118 53q14.5-8.98 33.18-19.49T355-787.5l16-126.48h220l16 126.72q17 6.76 34.5 16.5T674-753l118-53 110 192-104 77q1 8 1.5 20.5t.5 20.5q0 8-.5 20.5T798-455l104 77-110 192-118-53q-14.5 9-32 19.5T607-202.5L591-74.02H370ZM480-330q63 0 106.5-43.5T630-480q0-63-43.5-106.5T480-630q-63 0-106.5 43.5T330-480q0 63 43.5 106.5T480-330Z',
267
+ scheduled: 'M573.61-114.02q-97.63 0-165.84-68.12-68.22-68.12-68.22-165.61 0-97.48 68.22-165.6 68.21-68.12 165.84-68.12 97.62 0 165.59 68.12 67.98 68.12 67.98 165.6 0 97.49-67.98 165.61-67.97 68.12-165.59 68.12ZM114.02-580.83v-68.14h233.13v68.14H114.02ZM573.8-182.15q70.2 0 119.74-49.35 49.53-49.35 49.53-119.55t-49.72-120.16q-49.72-49.96-119.92-49.96t-119.55 49.78q-49.35 49.77-49.35 120.48 0 70.48 49.53 119.62 49.54 49.14 119.74 49.14Zm48.72-72.81L573.8-304.2v-111.41h43.72V-321l37.72 37.72-32.72 28.32ZM74.02-419.63v-68.14h188.13v68.14H74.02Z',
268
+ watchLater: 'M573.61-114.02q-97.63 0-165.84-68.12-68.22-68.12-68.22-165.61 0-97.48 68.22-165.6 68.21-68.12 165.84-68.12 97.62 0 165.59 68.12 67.98 68.12 67.98 165.6 0 97.49-67.98 165.61-67.97 68.12-165.59 68.12ZM114.02-580.83v-68.14h233.13v68.14H114.02ZM573.8-182.15q70.2 0 119.74-49.35 49.53-49.35 49.53-119.55t-49.72-120.16q-49.72-49.96-119.92-49.96t-119.55 49.78q-49.35 49.77-49.35 120.48 0 70.48 49.53 119.62 49.54 49.14 119.74 49.14Zm48.72-72.81L573.8-304.2v-111.41h43.72V-321l37.72 37.72-32.72 28.32ZM74.02-419.63v-68.14h188.13v68.14H74.02Z',
218
269
  };
219
270
  /** All valid icon names (keys of NODE_ICON_PATHS) */
220
271
  export const VALID_NODE_ICONS = Object.keys(NODE_ICON_PATHS);
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.32.2";
1
+ export declare const VERSION = "0.33.1";
2
2
  //# sourceMappingURL=generated-version.d.ts.map
@@ -1,3 +1,3 @@
1
1
  // Auto-generated by scripts/generate-version.ts — do not edit manually
2
- export const VERSION = '0.32.2';
2
+ export const VERSION = '0.33.1';
3
3
  //# sourceMappingURL=generated-version.js.map
@@ -994,15 +994,17 @@ export class JSDocParser {
994
994
  */
995
995
  parsePathTag(tag, config, warnings) {
996
996
  const comment = tag.getCommentText() || '';
997
- const result = parsePathLine(`@path ${comment}`, warnings);
998
- if (!result) {
997
+ const results = parsePathLine(`@path ${comment}`, warnings);
998
+ if (!results) {
999
999
  warnings.push(`Invalid @path tag format: ${comment}`);
1000
1000
  return;
1001
1001
  }
1002
1002
  config.paths = config.paths || [];
1003
- config.paths.push({
1004
- steps: result.steps,
1005
- });
1003
+ for (const result of results) {
1004
+ config.paths.push({
1005
+ steps: result.steps,
1006
+ });
1007
+ }
1006
1008
  }
1007
1009
  parseFanOutTag(tag, config, warnings) {
1008
1010
  const comment = tag.getCommentText() || '';
@@ -5,6 +5,7 @@ export { registerQueryTools } from './tools-query.js';
5
5
  export { registerTemplateTools } from './tools-template.js';
6
6
  export { registerPatternTools } from './tools-pattern.js';
7
7
  export { registerDebugTools } from './tools-debug.js';
8
+ export { registerResourceTools } from './tools-resources.js';
8
9
  export { registerPrompts } from './prompts.js';
9
10
  export { startMcpServer, mcpServerCommand } from './server.js';
10
11
  //# sourceMappingURL=index.d.ts.map
package/dist/mcp/index.js CHANGED
@@ -4,6 +4,7 @@ export { registerQueryTools } from './tools-query.js';
4
4
  export { registerTemplateTools } from './tools-template.js';
5
5
  export { registerPatternTools } from './tools-pattern.js';
6
6
  export { registerDebugTools } from './tools-debug.js';
7
+ export { registerResourceTools } from './tools-resources.js';
7
8
  export { registerPrompts } from './prompts.js';
8
9
  export { startMcpServer, mcpServerCommand } from './server.js';
9
10
  //# sourceMappingURL=index.js.map
@@ -11,7 +11,9 @@ import { registerDiagramTools } from './tools-diagram.js';
11
11
  import { registerDocsTools } from './tools-docs.js';
12
12
  import { registerModelTools } from './tools-model.js';
13
13
  import { registerDebugTools } from './tools-debug.js';
14
+ import { registerWorkflowRunTools } from './tools-workflow-run.js';
14
15
  import { registerContextTools } from './tools-context.js';
16
+ import { registerResourceTools } from './tools-resources.js';
15
17
  import { registerPrompts } from './prompts.js';
16
18
  import { registerPackMcpTools } from './pack-tools.js';
17
19
  export async function startMcpServer(options) {
@@ -30,7 +32,9 @@ export async function startMcpServer(options) {
30
32
  registerDocsTools(mcp);
31
33
  registerModelTools(mcp);
32
34
  registerDebugTools(mcp);
35
+ registerWorkflowRunTools(mcp);
33
36
  registerContextTools(mcp);
37
+ registerResourceTools(mcp);
34
38
  registerPrompts(mcp);
35
39
  await registerPackMcpTools(mcp);
36
40
  // Connect transport (only in stdio MCP mode)
@@ -16,7 +16,7 @@ export function registerExportTools(mcp) {
16
16
  target: z
17
17
  .string()
18
18
  .describe('Deployment target platform. Run with --list-targets to see installed targets.'),
19
- outputDir: z.string().describe('Output directory for generated files'),
19
+ outputDir: z.string().optional().describe('Output directory for generated files (default: ./dist relative to workflow)'),
20
20
  serviceName: z
21
21
  .string()
22
22
  .optional()
@@ -44,7 +44,7 @@ export function registerExportTools(mcp) {
44
44
  }, async (args) => {
45
45
  try {
46
46
  const filePath = path.resolve(args.filePath);
47
- const outputDir = path.resolve(args.outputDir);
47
+ const outputDir = path.resolve(args.outputDir || path.join(path.dirname(filePath), 'dist'));
48
48
  const preview = args.preview ?? false;
49
49
  const includeDocs = args.includeDocs ?? true;
50
50
  // 1. Validate file exists
@@ -62,15 +62,34 @@ export function registerModelTools(mcp) {
62
62
  lines.push(`declare function ${step.name}(${params}): ${returnType};`);
63
63
  lines.push('');
64
64
  }
65
- // Parse the flow string — use full function names as instance IDs
66
- const flowSteps = args.flow
67
- .split('->')
68
- .map((s) => s.trim())
69
- .filter(Boolean);
70
65
  // Build @node annotations using full name as both ID and type
71
66
  const nodeAnnotations = args.steps.map((step) => `@node ${step.name} ${step.name}`);
72
- // @path uses the same full names directly from the flow string
73
- const pathAnnotation = `@path ${flowSteps.join(' -> ')}`;
67
+ // Split comma-separated flow into separate @path annotations
68
+ const pathAnnotations = args.flow.split(',').map((segment) => {
69
+ const steps = segment
70
+ .split('->')
71
+ .map((s) => s.trim())
72
+ .filter(Boolean);
73
+ return `@path ${steps.join(' -> ')}`;
74
+ });
75
+ // Generate @connect annotations for DATA ports between adjacent steps in the flow
76
+ const stepMap = new Map(args.steps.map((s) => [s.name, s]));
77
+ const connectAnnotations = [];
78
+ for (const segment of args.flow.split(',')) {
79
+ const flowNodes = segment.split('->').map((s) => s.trim()).filter(Boolean);
80
+ for (let i = 0; i < flowNodes.length - 1; i++) {
81
+ const fromStep = stepMap.get(flowNodes[i]);
82
+ const toStep = stepMap.get(flowNodes[i + 1]);
83
+ if (!fromStep || !toStep)
84
+ continue;
85
+ // Connect matching output->input port names
86
+ for (const outputName of Object.keys(fromStep.outputs)) {
87
+ if (outputName in toStep.inputs) {
88
+ connectAnnotations.push(`@connect ${fromStep.name}.${outputName} -> ${toStep.name}.${outputName}`);
89
+ }
90
+ }
91
+ }
92
+ }
74
93
  // Generate workflow annotation
75
94
  const jsdocLines = ['/**'];
76
95
  if (args.description) {
@@ -81,9 +100,16 @@ export function registerModelTools(mcp) {
81
100
  for (const nodeAnn of nodeAnnotations) {
82
101
  jsdocLines.push(` * ${nodeAnn}`);
83
102
  }
84
- jsdocLines.push(` * ${pathAnnotation}`);
103
+ for (const pathAnn of pathAnnotations) {
104
+ jsdocLines.push(` * ${pathAnn}`);
105
+ }
106
+ for (const connAnn of connectAnnotations) {
107
+ jsdocLines.push(` * ${connAnn}`);
108
+ }
85
109
  jsdocLines.push(' */');
86
- jsdocLines.push(`export const ${args.name} = 'flowWeaver:draft';`);
110
+ jsdocLines.push(`export async function ${args.name}() {`);
111
+ jsdocLines.push(` // stub - compile to generate workflow body`);
112
+ jsdocLines.push(`}`);
87
113
  lines.push(...jsdocLines);
88
114
  lines.push('');
89
115
  const content = lines.join('\n');
@@ -66,6 +66,7 @@ export function registerQueryTools(mcp) {
66
66
  mcp.tool('fw_validate', 'Validate a workflow file and return errors/warnings.', {
67
67
  filePath: z.string().describe('Path to the workflow file'),
68
68
  workflowName: z.string().optional().describe('Specific workflow name'),
69
+ draft: z.boolean().optional().describe('Draft mode - suppresses STUB_NODE errors for unimplemented nodes (default: false)'),
69
70
  }, async (args) => {
70
71
  try {
71
72
  const filePath = path.resolve(args.filePath);
@@ -102,7 +103,7 @@ export function registerQueryTools(mcp) {
102
103
  warnings: parseResult.warnings,
103
104
  });
104
105
  }
105
- const result = validateWorkflow(parseResult.ast);
106
+ const result = validateWorkflow(parseResult.ast, args.draft ? { mode: 'draft' } : undefined);
106
107
  const errors = result.errors.map((e) => ({
107
108
  message: e.message,
108
109
  severity: e.type,
@@ -148,6 +149,7 @@ export function registerQueryTools(mcp) {
148
149
  typedEvents: z.boolean().optional().describe('Generate Zod event schemas from workflow @param annotations'),
149
150
  retries: z.number().int().min(0).optional().describe('Number of retries per function. Overrides @retries annotation.'),
150
151
  timeout: z.string().optional().describe('Function timeout (e.g. "30m", "1h"). Overrides @timeout annotation.'),
152
+ draft: z.boolean().optional().describe('Draft mode - suppresses STUB_NODE validation errors so partially implemented workflows can compile (default: false)'),
151
153
  }, async (args) => {
152
154
  try {
153
155
  const filePath = path.resolve(args.filePath);
@@ -210,6 +212,7 @@ export function registerQueryTools(mcp) {
210
212
  write: args.write ?? true,
211
213
  parse: { workflowName: args.workflowName },
212
214
  generate: { production: args.production ?? false },
215
+ validationMode: args.draft ? 'draft' : undefined,
213
216
  });
214
217
  return makeToolResult({
215
218
  outputFile: result.metadata?.outputFile ?? filePath,
@@ -0,0 +1,9 @@
1
+ /**
2
+ * MCP Resource Tool - fw_list_resources
3
+ *
4
+ * Returns available icons, colors, and annotation tags so AI agents
5
+ * can use valid values when building workflows.
6
+ */
7
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
8
+ export declare function registerResourceTools(mcp: McpServer): void;
9
+ //# sourceMappingURL=tools-resources.d.ts.map
@@ -0,0 +1,41 @@
1
+ /**
2
+ * MCP Resource Tool - fw_list_resources
3
+ *
4
+ * Returns available icons, colors, and annotation tags so AI agents
5
+ * can use valid values when building workflows.
6
+ */
7
+ import { z } from 'zod';
8
+ import { VALID_NODE_ICONS } from '../diagram/theme.js';
9
+ import { VALID_NODE_COLORS, KNOWN_NODETYPE_TAGS, KNOWN_WORKFLOW_TAGS } from '../constants.js';
10
+ import { makeToolResult } from './response-utils.js';
11
+ export function registerResourceTools(mcp) {
12
+ mcp.tool('fw_list_resources', 'List available icons, colors, and annotation tags for use in workflow definitions.', {
13
+ type: z
14
+ .enum(['icons', 'colors', 'tags', 'all'])
15
+ .default('all')
16
+ .describe('Resource type to list (default: all)'),
17
+ }, async (args) => {
18
+ const type = args.type ?? 'all';
19
+ switch (type) {
20
+ case 'icons':
21
+ return makeToolResult([...VALID_NODE_ICONS]);
22
+ case 'colors':
23
+ return makeToolResult([...VALID_NODE_COLORS]);
24
+ case 'tags':
25
+ return makeToolResult({
26
+ nodeType: [...KNOWN_NODETYPE_TAGS],
27
+ workflow: [...KNOWN_WORKFLOW_TAGS],
28
+ });
29
+ case 'all':
30
+ return makeToolResult({
31
+ icons: [...VALID_NODE_ICONS],
32
+ colors: [...VALID_NODE_COLORS],
33
+ tags: {
34
+ nodeType: [...KNOWN_NODETYPE_TAGS],
35
+ workflow: [...KNOWN_WORKFLOW_TAGS],
36
+ },
37
+ });
38
+ }
39
+ });
40
+ }
41
+ //# sourceMappingURL=tools-resources.js.map
@@ -0,0 +1,40 @@
1
+ /**
2
+ * MCP tools for running workflows with waitForAgent pause/resume support.
3
+ *
4
+ * fw_workflow_run: Starts a workflow. If it hits waitForAgent, returns the
5
+ * agent request to the MCP caller (e.g. Claude Code) with status "waiting_for_agent".
6
+ * If the workflow completes without pausing, returns the result directly.
7
+ *
8
+ * fw_workflow_resume: Resumes a paused workflow with the agent's result.
9
+ * Returns the final workflow result (or pauses again if another waitForAgent is hit).
10
+ */
11
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
12
+ import { AgentChannel } from './agent-channel.js';
13
+ /** Exposed for testing — run workflow with pause/resume support */
14
+ export declare function runWorkflowWithAgent(filePath: string, params: Record<string, unknown>, workflowName?: string): Promise<{
15
+ status: 'completed';
16
+ result: unknown;
17
+ } | {
18
+ status: 'waiting_for_agent';
19
+ runId: string;
20
+ agentRequest: object;
21
+ agentChannel: AgentChannel;
22
+ } | {
23
+ status: 'error';
24
+ message: string;
25
+ }>;
26
+ /** Exposed for testing — resume a paused workflow with agent result */
27
+ export declare function resumeWorkflow(runId: string, agentResult: Record<string, unknown>): Promise<{
28
+ status: 'completed';
29
+ result: unknown;
30
+ } | {
31
+ status: 'waiting_for_agent';
32
+ runId: string;
33
+ agentRequest: object;
34
+ agentChannel: AgentChannel;
35
+ } | {
36
+ status: 'error';
37
+ message: string;
38
+ }>;
39
+ export declare function registerWorkflowRunTools(mcp: McpServer): void;
40
+ //# sourceMappingURL=tools-workflow-run.d.ts.map
@@ -0,0 +1,150 @@
1
+ /**
2
+ * MCP tools for running workflows with waitForAgent pause/resume support.
3
+ *
4
+ * fw_workflow_run: Starts a workflow. If it hits waitForAgent, returns the
5
+ * agent request to the MCP caller (e.g. Claude Code) with status "waiting_for_agent".
6
+ * If the workflow completes without pausing, returns the result directly.
7
+ *
8
+ * fw_workflow_resume: Resumes a paused workflow with the agent's result.
9
+ * Returns the final workflow result (or pauses again if another waitForAgent is hit).
10
+ */
11
+ import { z } from 'zod';
12
+ import { executeWorkflowFromFile } from './workflow-executor.js';
13
+ import { AgentChannel } from './agent-channel.js';
14
+ import { storePendingRun, getPendingRun, removePendingRun, } from './run-registry.js';
15
+ function makeToolResult(data) {
16
+ return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
17
+ }
18
+ function makeErrorResult(code, message) {
19
+ return {
20
+ content: [{ type: 'text', text: JSON.stringify({ error: code, message }) }],
21
+ isError: true,
22
+ };
23
+ }
24
+ function generateRunId() {
25
+ return `run-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
26
+ }
27
+ /**
28
+ * Race between workflow completion and agent pause.
29
+ * Returns whichever happens first.
30
+ */
31
+ async function raceAgentPause(executionPromise, agentChannel) {
32
+ try {
33
+ const outcome = await Promise.race([
34
+ executionPromise.then((r) => ({
35
+ type: 'completed',
36
+ result: r?.result ?? r,
37
+ })),
38
+ agentChannel.onPause().then((request) => ({
39
+ type: 'waiting_for_agent',
40
+ request,
41
+ })),
42
+ ]);
43
+ return outcome;
44
+ }
45
+ catch (err) {
46
+ return {
47
+ type: 'error',
48
+ message: err instanceof Error ? err.message : String(err),
49
+ };
50
+ }
51
+ }
52
+ /** Exposed for testing — run workflow with pause/resume support */
53
+ export async function runWorkflowWithAgent(filePath, params, workflowName) {
54
+ const agentChannel = new AgentChannel();
55
+ const runId = generateRunId();
56
+ const executionPromise = executeWorkflowFromFile(filePath, params, {
57
+ workflowName,
58
+ agentChannel,
59
+ includeTrace: true,
60
+ });
61
+ const outcome = await raceAgentPause(executionPromise, agentChannel);
62
+ if (outcome.type === 'completed') {
63
+ return { status: 'completed', result: outcome.result };
64
+ }
65
+ if (outcome.type === 'waiting_for_agent') {
66
+ storePendingRun({
67
+ runId,
68
+ filePath,
69
+ workflowName,
70
+ executionPromise,
71
+ agentChannel,
72
+ request: outcome.request,
73
+ createdAt: Date.now(),
74
+ tmpFiles: [],
75
+ });
76
+ return { status: 'waiting_for_agent', runId, agentRequest: outcome.request, agentChannel };
77
+ }
78
+ return { status: 'error', message: outcome.message };
79
+ }
80
+ /** Exposed for testing — resume a paused workflow with agent result */
81
+ export async function resumeWorkflow(runId, agentResult) {
82
+ const pendingRun = getPendingRun(runId);
83
+ if (!pendingRun) {
84
+ return { status: 'error', message: `No pending run found with ID "${runId}".` };
85
+ }
86
+ pendingRun.agentChannel.resume(agentResult);
87
+ const outcome = await raceAgentPause(pendingRun.executionPromise, pendingRun.agentChannel);
88
+ if (outcome.type === 'completed') {
89
+ removePendingRun(runId);
90
+ return { status: 'completed', result: outcome.result };
91
+ }
92
+ if (outcome.type === 'waiting_for_agent') {
93
+ pendingRun.request = outcome.request;
94
+ return { status: 'waiting_for_agent', runId, agentRequest: outcome.request, agentChannel: pendingRun.agentChannel };
95
+ }
96
+ removePendingRun(runId);
97
+ return { status: 'error', message: outcome.message };
98
+ }
99
+ export function registerWorkflowRunTools(mcp) {
100
+ // -------------------------------------------------------------------------
101
+ // fw_workflow_run - Start a workflow, pause at waitForAgent
102
+ // -------------------------------------------------------------------------
103
+ mcp.tool('fw_workflow_run', 'Run a workflow. If it hits a waitForAgent node, returns the agent request so ' +
104
+ 'you can respond. If it completes without pausing, returns the result directly.', {
105
+ filePath: z.string().describe('Path to the workflow .ts file'),
106
+ params: z
107
+ .record(z.unknown())
108
+ .optional()
109
+ .describe('Input parameters for the workflow'),
110
+ workflowName: z
111
+ .string()
112
+ .optional()
113
+ .describe('Specific workflow export name (for multi-workflow files)'),
114
+ }, async (args) => {
115
+ try {
116
+ const result = await runWorkflowWithAgent(args.filePath, args.params ?? {}, args.workflowName);
117
+ if (result.status === 'error') {
118
+ return makeErrorResult('EXECUTION_ERROR', result.message);
119
+ }
120
+ // Don't leak agentChannel to MCP output
121
+ const { agentChannel: _ac, ...output } = result;
122
+ return makeToolResult(output);
123
+ }
124
+ catch (err) {
125
+ return makeErrorResult('EXECUTION_ERROR', err instanceof Error ? err.message : String(err));
126
+ }
127
+ });
128
+ // -------------------------------------------------------------------------
129
+ // fw_workflow_resume - Resume a paused workflow with agent result
130
+ // -------------------------------------------------------------------------
131
+ mcp.tool('fw_workflow_resume', 'Resume a workflow that paused at waitForAgent. Provide the agent result to continue execution.', {
132
+ runId: z.string().describe('Run ID from fw_workflow_run'),
133
+ agentResult: z
134
+ .record(z.unknown())
135
+ .describe('The agent result to pass back to the workflow'),
136
+ }, async (args) => {
137
+ try {
138
+ const result = await resumeWorkflow(args.runId, args.agentResult);
139
+ if (result.status === 'error') {
140
+ return makeErrorResult('RESUME_ERROR', result.message);
141
+ }
142
+ const { agentChannel: _ac, ...output } = result;
143
+ return makeToolResult(output);
144
+ }
145
+ catch (err) {
146
+ return makeErrorResult('RESUME_ERROR', err instanceof Error ? err.message : String(err));
147
+ }
148
+ });
149
+ }
150
+ //# sourceMappingURL=tools-workflow-run.js.map
package/dist/validator.js CHANGED
@@ -829,6 +829,12 @@ export class WorkflowValidator {
829
829
  // Check for multiple connections to the same Exit port
830
830
  exitPortConnections.forEach((connections, portName) => {
831
831
  if (connections.length > 1) {
832
+ // Skip control flow ports — multiple STEP connections to Exit.onSuccess
833
+ // is the standard convergence pattern for parallel terminal nodes
834
+ const exitPort = workflow.exitPorts[portName];
835
+ if (exitPort?.isControlFlow || exitPort?.dataType === 'STEP') {
836
+ return;
837
+ }
832
838
  const sourceNodes = connections.map((c) => c.from.node);
833
839
  if (this.areMutuallyExclusive(sourceNodes, workflow, instanceMap)) {
834
840
  return; // Suppress — mutually exclusive branches
@@ -311,6 +311,22 @@ Use `:ok` or `:fail` suffixes to route through `onSuccess` or `onFailure`:
311
311
 
312
312
  Without a suffix, `:ok` (onSuccess) is the default. Duplicate connections from overlapping paths are automatically deduplicated.
313
313
 
314
+ ### Comma-Separated Paths
315
+
316
+ Multiple paths can be declared in a single `@path` tag using commas. This is equivalent to separate `@path` tags:
317
+
318
+ ```typescript
319
+ /**
320
+ * @flowWeaver workflow @autoConnect
321
+ * @node enrichCompany enrichCompany
322
+ * @node enrichContact enrichContact
323
+ * @node scoreLead scoreLead
324
+ * @path Start -> enrichCompany -> scoreLead -> Exit, Start -> enrichContact -> scoreLead
325
+ */
326
+ ```
327
+
328
+ This creates a parallel fork from Start to both `enrichCompany` and `enrichContact`, then both converge on `scoreLead`.
329
+
314
330
  ### Path Validation
315
331
 
316
332
  The sugar optimizer validates that all nodes referenced in `@path` exist and that the expected control-flow connections are still valid. Stale paths are automatically filtered during parse-regenerate round-trips.
@@ -276,12 +276,15 @@ The first form is the standard `node.port` reference with optional `:scope` suff
276
276
  ## @path
277
277
 
278
278
  ```
279
- pathTag ::= "@path" pathStep ( "->" pathStep )+
279
+ pathTag ::= "@path" pathSequence ( "," pathSequence )*
280
+ pathSequence ::= pathStep ( "->" pathStep )+
280
281
  pathStep ::= IDENTIFIER [ ":" ( "ok" | "fail" ) ]
281
282
  ```
282
283
 
283
284
  Declare a complete execution route through the graph with scope walking for data ports. Steps separated by `->`, each optionally suffixed with `:ok` (default) or `:fail` to select `onSuccess` or `onFailure`.
284
285
 
286
+ Multiple paths can be declared in a single `@path` tag using commas, or as separate `@path` tags. Both forms are equivalent.
287
+
285
288
  **Examples:**
286
289
 
287
290
  ```
@@ -289,10 +292,17 @@ Declare a complete execution route through the graph with scope walking for data
289
292
  @path Start -> validator:ok -> processor -> Exit
290
293
  ```
291
294
 
295
+ Comma-separated (equivalent to two `@path` tags):
296
+
297
+ ```
298
+ @path Start -> enrichCompany -> scoreLead -> Exit, Start -> enrichContact -> scoreLead
299
+ ```
300
+
292
301
  - `:ok` follows `onSuccess` (default when no suffix)
293
302
  - `:fail` follows `onFailure`
294
303
  - Data ports auto-resolve by walking backward through the path to the nearest ancestor with a same-name output port (scope walking)
295
304
  - Multiple `@path` lines can coexist; overlapping prefixes are deduplicated
305
+ - Comma-separated paths within a single `@path` are expanded to separate paths
296
306
  - Manual `@connect` lines can supplement for cross-named ports
297
307
 
298
308
  ## @position
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@synergenius/flow-weaver",
3
- "version": "0.32.2",
3
+ "version": "0.33.1",
4
4
  "description": "Flow Weaver: deterministic TypeScript workflow compiler. Define workflows with JSDoc annotations, compile to standalone functions with zero runtime dependencies.",
5
5
  "private": false,
6
6
  "type": "module",