@uipath/maestro-tool 1.204.0 → 1.205.0-preview.258

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 (258) hide show
  1. package/README.md +3 -3
  2. package/dist/{DmnFactory-VWZOSZHH-ggnfcqpa.js → DmnFactory-L7MABUC6-qkvfv1cw.js} +143 -98
  3. package/dist/{KieDmnMarshaller-6TTUU5B4-6apscj68.js → KieDmnMarshaller-LGE63WDG-cybersk4.js} +3 -3
  4. package/dist/THIRD-PARTY-NOTICES.md +47 -23
  5. package/dist/{authoring-ed7fgg74.js → authoring-5xyc2bbq.js} +8 -6
  6. package/dist/{authoring-1qn6m2g3.js → authoring-ehed6df3.js} +8 -6
  7. package/dist/{authoring-ex7mq672.js → authoring-rw21p50g.js} +8 -6
  8. package/dist/{binding-service-dj04a6e6.js → binding-service-b2v8y2sb.js} +44 -35
  9. package/dist/{bpmn-action-type-validator-cja8vct2.js → bpmn-action-type-validator-xg4ncg63.js} +2 -2
  10. package/dist/{bpmn-binding-resolver-3v5223kx.js → bpmn-binding-resolver-wz7xk54x.js} +9 -7
  11. package/dist/{bpmn-branch-a25m8bc2.js → bpmn-branch-ywmc5egw.js} +48 -47
  12. package/dist/{bpmn-format-service-64fsaq4j.js → bpmn-format-service-aq8ekvy2.js} +7 -5
  13. package/dist/{bpmn-refresh-service-ytf3ngzm.js → bpmn-refresh-service-gy1ekx3m.js} +10 -8
  14. package/dist/{bpmn-update-metadata-service-jpz5mfk4.js → bpmn-update-metadata-service-rnf421er.js} +7 -5
  15. package/dist/bpmn-validate-service-7e3q83nh.js +16 -0
  16. package/dist/{business-rule-export-j6xxtp5s.js → business-rule-export-xa719ws5.js} +2 -2
  17. package/dist/canvas-notes-xc2ejzqj.js +23 -0
  18. package/dist/{case-api-bxcxbgm9.js → case-api-v64traxv.js} +9 -7
  19. package/dist/case-bindings-service-hwz2h03e.js +434 -0
  20. package/dist/case-debug-solution-projects-xae2d4vj.js +34 -0
  21. package/dist/{case-debug-studio-web-service-kt5efenk.js → case-debug-studio-web-service-5h6djff3.js} +22 -14
  22. package/dist/{case-described-io-service-kn3rvy53.js → case-described-io-service-tap9pk70.js} +41 -11
  23. package/dist/case-event-trigger-bindings-z4q1kzgv.js +20 -0
  24. package/dist/{case-format-service-k8rcv0wp.js → case-format-service-q42ba5pn.js} +6 -4
  25. package/dist/{case-pack-service-92trp8xj.js → case-pack-service-0j9r3cd2.js} +9 -7
  26. package/dist/case-schema-version-zs5qsr1b.js +20 -0
  27. package/dist/{case-shape-reader-ftc4ve13.js → case-shape-reader-14qzcj4v.js} +1 -1
  28. package/dist/{case-splice-service-7n51cpx3.js → case-splice-service-bk6rvr75.js} +60 -11
  29. package/dist/{case-validate-service-c8jcvw85.js → case-validate-service-80p52d8r.js} +134 -46
  30. package/dist/{connector-enrichment-service-ba0vq2sk.js → connector-enrichment-service-9p98gfmc.js} +32 -28
  31. package/dist/{connector-lookup-service-mzfsqb21.js → connector-lookup-service-v39ab3qh.js} +10 -8
  32. package/dist/{connector-service-8yk65k3n.js → connector-service-yz5c6xag.js} +229 -52
  33. package/dist/connector-task-shape-dcb3v2r5.js +14 -0
  34. package/dist/{connector-task-spec-bn3qaa1w.js → connector-task-spec-pvzzenwg.js} +206 -49
  35. package/dist/de-UZI7FJDO-awjpqfz0.js +200 -0
  36. package/dist/{de-MUJPA4EB-dpg7t2rw.js → de-UZI7FJDO-mwvc4cxe.js} +29 -2
  37. package/dist/{de-FGHEJRCI-rv513mfh.js → de-WLW6KWOJ-2qnsqdtw.js} +238 -31
  38. package/dist/debug-conversation-trigger-f4a07w23.js +33 -0
  39. package/dist/{debug-http-client-73errmgs.js → debug-http-client-8t7t701c.js} +7 -5
  40. package/dist/{debug-service-8kjtrm88.js → debug-service-c7y7f216.js} +8 -6
  41. package/dist/{edge-service-7092t84f.js → edge-service-vnn1p29d.js} +18 -13
  42. package/dist/{embedded-file-reader-v8c2yj2a.js → embedded-file-reader-r66242ey.js} +2 -2
  43. package/dist/en-EJCBA3LK-0wb3b1xy.js +146 -0
  44. package/dist/{en-FBPVNKFN-dqt573xn.js → en-EJCBA3LK-dtpdghgj.js} +12 -4
  45. package/dist/{en-BWGKA5OE-1qkvb9rn.js → en-M7GQYBV2-5nfmpnfz.js} +88 -6
  46. package/dist/{enrichment-service-yjv2eb8h.js → enrichment-service-njfr2m2s.js} +52 -15
  47. package/dist/{es-7SE7HX2X-8yh1aj2y.js → es-4UBUTCQA-m1ytpyx2.js} +29 -2
  48. package/dist/es-4UBUTCQA-t7hsackg.js +200 -0
  49. package/dist/{es-KR3ZSNMP-84zphx0x.js → es-5THCNRFN-tqwyrdgy.js} +235 -28
  50. package/dist/{es-MX-2MYFZU7X-3rek4r73.js → es-MX-5RELIXKI-9jhqtddc.js} +29 -2
  51. package/dist/es-MX-5RELIXKI-jtjbcxbb.js +200 -0
  52. package/dist/{es-MX-XXZJGC4R-2mr8jtgm.js → es-MX-TWZBRAXK-gqd9swzw.js} +237 -30
  53. package/dist/filter-engine-7ep90g7f.js +11 -0
  54. package/dist/{flow-api-y70m8n82.js → flow-api-qj89cv18.js} +17 -10
  55. package/dist/{flow-debug-service-f59xnvdf.js → flow-debug-service-a7vd9eht.js} +109 -71
  56. package/dist/{flow-eval-node-target-v1gra12k.js → flow-eval-node-target-fv15zc9f.js} +19 -18
  57. package/dist/flow-eval-run-api-3xt5n21a.js +16 -0
  58. package/dist/{flow-eval-run-service-hmfbng78.js → flow-eval-run-service-keqkwjg1.js} +92 -99
  59. package/dist/{flow-eval-service-7tpvhn9b.js → flow-eval-service-5j1rwx32.js} +169 -416
  60. package/dist/{flow-init-sdk-source-3gxfr40c.js → flow-init-sdk-source-spm577pw.js} +8 -6
  61. package/dist/{flow-init-service-jawbgb3b.js → flow-init-service-pz2b02z9.js} +25 -20
  62. package/dist/{flow-io-2qapk1ge.js → flow-io-0yftj03d.js} +17 -12
  63. package/dist/{flow-migrate-service-3vyydvyp.js → flow-migrate-service-f0cavrsr.js} +18 -13
  64. package/dist/{flow-pack-service-ypbwn9p1.js → flow-pack-service-seegwatd.js} +59 -45
  65. package/dist/{flow-validate-service-6ra3j72r.js → flow-validate-service-hgswxecb.js} +198 -93
  66. package/dist/{fr-Y6NPVODW-8vr1ja4b.js → fr-CERONSRC-edpxhbmb.js} +237 -30
  67. package/dist/{fr-MDFKNZ4C-h4a122k9.js → fr-VBM5WRC2-63z7w4mh.js} +29 -2
  68. package/dist/fr-VBM5WRC2-707ha692.js +200 -0
  69. package/dist/{governance-fetcher-09dgr70s.js → governance-fetcher-w11mhrn6.js} +8 -6
  70. package/dist/{headless-7rs6g9wg.js → headless-z9enfh9f.js} +4 -4
  71. package/dist/hitPolicyResult-CGCR73CW-tvmbx1r7.js +66 -0
  72. package/dist/{hitl-service-pc3xwzxh.js → hitl-service-zsnxqkhb.js} +17 -12
  73. package/dist/{index-48tf2e7y.js → index-1a83vhkx.js} +59 -35
  74. package/dist/{index-jmy02p6v.js → index-3366ft04.js} +44 -6
  75. package/dist/{index-wmffgzmr.js → index-5dxh9z60.js} +21751 -11098
  76. package/dist/{index-vj0f8thg.js → index-91v7sjfs.js} +7 -5
  77. package/dist/{index-cpgb4hp8.js → index-d60j7q07.js} +8 -6
  78. package/dist/{index-vhm7bexy.js → index-da0zh33m.js} +8 -6
  79. package/dist/{index-1htnjt3c.js → index-ewv0axs9.js} +1087 -213
  80. package/dist/index-f3pbfe53.js +67 -0
  81. package/dist/{index-ng2f77my.js → index-fyc0k5dd.js} +985 -617
  82. package/dist/{index-n7n2d0tb.js → index-gjg7tpcx.js} +66 -2230
  83. package/dist/index-gmkec7es.js +29 -0
  84. package/dist/{index-3bv3wtc0.js → index-n37fqnh7.js} +6 -5
  85. package/dist/{index-hhsf00x8.js → index-ngs0a2he.js} +1 -1
  86. package/dist/index-s6q9xjhw.js +25 -0
  87. package/dist/{index-j2r3jb6c.js → index-xq6ajhgq.js} +2 -2
  88. package/dist/index.js +2 -2
  89. package/dist/init-entry-points-g4za9kc0.js +102 -0
  90. package/dist/inline-entity-resolver-nzfs8hb6.js +46 -0
  91. package/dist/input-reader-3250qtv2.js +15 -0
  92. package/dist/input-reader-3398edew.js +15 -0
  93. package/dist/{ja-UTQEAP34-8e0q6swp.js → ja-43QL7CGO-c3q8gre9.js} +29 -2
  94. package/dist/ja-43QL7CGO-h6qfxfay.js +200 -0
  95. package/dist/{ja-Q5PXKJ2V-p4msxzjd.js → ja-U2MCNHGT-gz0ap1jk.js} +235 -28
  96. package/dist/{known-types-3dm8xfd0.js → known-types-g1bvvvcw.js} +5 -5
  97. package/dist/ko-TLL6Z6CD-ag6gjynr.js +200 -0
  98. package/dist/{ko-AXCHW2OK-askct7f6.js → ko-TLL6Z6CD-wrt3n8a9.js} +29 -2
  99. package/dist/{ko-AYBDSRZG-41mdmsg1.js → ko-XAUYQWDR-zp81gjp4.js} +237 -30
  100. package/dist/localSolutionDiscovery-3fs774b8.js +17 -0
  101. package/dist/{maestro-automate-entry-4qg1z689.js → maestro-automate-entry-wycktqqt.js} +2 -2
  102. package/dist/{maestro-debug-service-c81w1wrx.js → maestro-debug-service-5edvsets.js} +17 -15
  103. package/dist/{maestro-pack-service-9qbtap5h.js → maestro-pack-service-hpvmq8f9.js} +9 -7
  104. package/dist/migration-diagnosis-5tftr979.js +99 -0
  105. package/dist/{node-epyxn4nd.js → node-5g80as4s.js} +29 -15
  106. package/dist/node-service-gsq162p5.js +101 -0
  107. package/dist/{node-strategy-5pz40tee.js → node-strategy-v442hwgd.js} +1 -1
  108. package/dist/node-sync-service-qxhh9e5m.js +65 -0
  109. package/dist/out-target-666eg2kf.js +115 -0
  110. package/dist/{packager-tool-yphr25e9.js → packager-tool-0jn0my4b.js} +4 -2
  111. package/dist/packager-tool-0z498fh0.js +331 -0
  112. package/dist/{packager-tool-j6q8v3kc.js → packager-tool-1q0ee9ht.js} +5 -4
  113. package/dist/packager-tool-20592jhn.js +74 -0
  114. package/dist/{packager-tool-zvpkw29f.js → packager-tool-212khq09.js} +538 -16
  115. package/dist/{packager-tool-7msx23gd.js → packager-tool-2qywkm61.js} +13 -2
  116. package/dist/{packager-tool-b4t0wt7a.js → packager-tool-3kx2vrwn.js} +12 -13
  117. package/dist/{packager-tool-a0f48rfb.js → packager-tool-42xfgd4y.js} +6 -24
  118. package/dist/{packager-tool-myvay41d.js → packager-tool-57bbfe26.js} +3 -3
  119. package/dist/{packager-tool-vte7g48a.js → packager-tool-5hnx28q0.js} +5 -3
  120. package/dist/{packager-tool-xd3rq6k0.js → packager-tool-629qqbfp.js} +2 -2
  121. package/dist/packager-tool-6g510cab.js +1178 -0
  122. package/dist/packager-tool-6sm17vbx.js +336 -0
  123. package/dist/{packager-tool-yy101ck2.js → packager-tool-6tthp3g5.js} +52 -32
  124. package/dist/{packager-tool-d88rqwk8.js → packager-tool-6z1hsm2h.js} +13 -5
  125. package/dist/packager-tool-7hw344bt.js +107 -0
  126. package/dist/{packager-tool-6xrzgn0z.js → packager-tool-7vh4gasn.js} +1 -1
  127. package/dist/packager-tool-7ym4rqd1.js +153 -0
  128. package/dist/packager-tool-8p3ymd4v.js +14 -0
  129. package/dist/{packager-tool-kme3q8xv.js → packager-tool-8tv6dvs5.js} +18 -8
  130. package/dist/{packager-tool-c94w8xmz.js → packager-tool-9c2hte0h.js} +16110 -13031
  131. package/dist/{packager-tool-npr79108.js → packager-tool-ajhgr4bs.js} +51 -8
  132. package/dist/{packager-tool-8pydv61j.js → packager-tool-ajth6af3.js} +588 -16
  133. package/dist/{packager-tool-nct4k0y8.js → packager-tool-arbc078z.js} +280 -416
  134. package/dist/{packager-tool-k0bc2f6w.js → packager-tool-b84rs07t.js} +137 -45
  135. package/dist/{packager-tool-4tf3tq1b.js → packager-tool-bd7t6p8y.js} +6 -4
  136. package/dist/{packager-tool-q02t6n13.js → packager-tool-bhhym40d.js} +26 -3
  137. package/dist/packager-tool-bttxjdhx.js +94 -0
  138. package/dist/packager-tool-c4n4m87w.js +52 -0
  139. package/dist/{packager-tool-8xyea2av.js → packager-tool-cc2q603y.js} +2 -3
  140. package/dist/{packager-tool-8yjmkys9.js → packager-tool-cza49qc1.js} +1681 -459
  141. package/dist/{packager-tool-5jb06280.js → packager-tool-d1kd88zq.js} +1 -1
  142. package/dist/{packager-tool-w3d2891y.js → packager-tool-dpp8z5q3.js} +8 -5
  143. package/dist/{packager-tool-wbtykfb2.js → packager-tool-dzd3y9p0.js} +2 -2
  144. package/dist/{packager-tool-rs4cgyy5.js → packager-tool-f6bh7bsm.js} +9 -10
  145. package/dist/{packager-tool-83hg21mr.js → packager-tool-f7zn3gsf.js} +6 -6
  146. package/dist/{packager-tool-mtpztxtc.js → packager-tool-fwfh4zz7.js} +2 -1
  147. package/dist/packager-tool-g2b0zqch.js +217 -0
  148. package/dist/{packager-tool-xdxr3ync.js → packager-tool-hdxtgckw.js} +11 -1
  149. package/dist/{packager-tool-gtzw8sw4.js → packager-tool-jexxh6qf.js} +51 -6
  150. package/dist/{packager-tool-zq25fdcg.js → packager-tool-jt51hwvr.js} +5 -5
  151. package/dist/packager-tool-k7n4sf7v.js +16 -0
  152. package/dist/{packager-tool-fgaphqq0.js → packager-tool-kd0whk4p.js} +1 -1
  153. package/dist/{packager-tool-3t417qyw.js → packager-tool-ktnfjmbs.js} +6 -6
  154. package/dist/packager-tool-kvp4ttef.js +307 -0
  155. package/dist/packager-tool-m1901c0c.js +1256 -0
  156. package/dist/packager-tool-mgcz986r.js +143 -0
  157. package/dist/{packager-tool-8xhjr5ya.js → packager-tool-mrskd7mn.js} +1 -1
  158. package/dist/{packager-tool-5s7249f4.js → packager-tool-ms1smy5t.js} +1 -1
  159. package/dist/{packager-tool-kveaemqp.js → packager-tool-msecps3h.js} +74 -47
  160. package/dist/packager-tool-n90231c7.js +2 -0
  161. package/dist/{packager-tool-ajjpgh1s.js → packager-tool-nkbz7fsb.js} +161 -83
  162. package/dist/packager-tool-nsh0qg9g.js +40 -0
  163. package/dist/{packager-tool-7q6z6npd.js → packager-tool-pcvhcn2k.js} +93 -11
  164. package/dist/packager-tool-qrs1525h.js +69 -0
  165. package/dist/packager-tool-qs3gymeb.js +92 -0
  166. package/dist/{packager-tool-wf95q0fn.js → packager-tool-r6a4pjjh.js} +32 -13
  167. package/dist/{packager-tool-2wbgdx7c.js → packager-tool-rcx6mwf1.js} +5 -5
  168. package/dist/{packager-tool-zbrda9sn.js → packager-tool-rk25wp3c.js} +1 -1
  169. package/dist/{packager-tool-nase5ajk.js → packager-tool-rp7pny4t.js} +19 -5
  170. package/dist/packager-tool-s695j0qj.js +2 -0
  171. package/dist/packager-tool-s7c0dg22.js +1117 -0
  172. package/dist/{case-bindings-service-hpz8w81a.js → packager-tool-s7frnjqb.js} +20 -233
  173. package/dist/{packager-tool-2k0hp4st.js → packager-tool-sb08yxk6.js} +2 -2
  174. package/dist/{packager-tool-b39nrh8y.js → packager-tool-sga4h8yj.js} +5 -6
  175. package/dist/packager-tool-sm8ertv4.js +9 -0
  176. package/dist/{packager-tool-ts5t1nmn.js → packager-tool-sxqtxw0e.js} +15 -10
  177. package/dist/packager-tool-t4zrz5gd.js +18 -0
  178. package/dist/{packager-tool-pp11j8zp.js → packager-tool-t79p62kr.js} +3 -2
  179. package/dist/{packager-tool-ps84n76y.js → packager-tool-tgh9btcq.js} +2 -2
  180. package/dist/{packager-tool-x2py933t.js → packager-tool-tzc6xsp3.js} +1802 -378
  181. package/dist/packager-tool-v5ft7109.js +35 -0
  182. package/dist/{packager-tool-rkv04anh.js → packager-tool-vv9cf7n5.js} +12 -56
  183. package/dist/{packager-tool-z1qbc0qf.js → packager-tool-wv85dhy2.js} +2 -8
  184. package/dist/{packager-tool-znhjsec2.js → packager-tool-wwbk750c.js} +10804 -25507
  185. package/dist/packager-tool-xj0agqpk.js +11 -0
  186. package/dist/{packager-tool-t2xr2f9r.js → packager-tool-xqghssg3.js} +1 -1
  187. package/dist/{packager-tool-ma2ra4pe.js → packager-tool-xr5pkebd.js} +6 -6
  188. package/dist/packager-tool-y4tyghzf.js +26 -0
  189. package/dist/{packager-tool-9bt3hs56.js → packager-tool-y57r93yz.js} +721 -90
  190. package/dist/packager-tool-ygdbhb2b.js +62 -0
  191. package/dist/{packager-tool-v99ygh9f.js → packager-tool-yn33pw57.js} +124 -58
  192. package/dist/packager-tool-yp84p93n.js +41 -0
  193. package/dist/{packager-tool-yv10w46z.js → packager-tool-zgm0r4yp.js} +57 -205
  194. package/dist/packager-tool.js +26 -17
  195. package/dist/{project-artifacts-ygsyzgbk.js → project-artifacts-tedh0mf8.js} +1 -1
  196. package/dist/{project-validator-ndx5f8vg.js → project-validator-njsprtzv.js} +5 -4
  197. package/dist/{pt-BR-TKHNHMET-sn91xyq0.js → pt-BR-GNQNAAZ2-xadharv4.js} +237 -30
  198. package/dist/{pt-BR-Y6K6XHXK-mp3hwhw1.js → pt-BR-USP2T7GD-pedn77m1.js} +29 -2
  199. package/dist/pt-BR-USP2T7GD-rppy42ym.js +200 -0
  200. package/dist/{pt-3DIO5QWG-59b3f4bc.js → pt-RMIAKZB4-67enhx3m.js} +29 -2
  201. package/dist/pt-RMIAKZB4-t80exmp7.js +200 -0
  202. package/dist/{pt-ROXU257Y-2f6bxev4.js → pt-TO2DARY2-ftcce1bv.js} +237 -30
  203. package/dist/{resolved-check-r83pjq9y.js → resolved-check-8a1cr6j2.js} +1 -1
  204. package/dist/{resourcesSyncService-9b5nzx36.js → resourcesSyncService-rcbw245w.js} +43 -180
  205. package/dist/ro-GHOBYW2S-4zevc9dy.js +200 -0
  206. package/dist/{ro-BWR3ONRR-vzx3hy8a.js → ro-GHOBYW2S-mhnqsgaa.js} +29 -2
  207. package/dist/{ro-AVAWPKOO-b89pw79r.js → ro-WUYJV6OW-a8d9qy1n.js} +235 -28
  208. package/dist/ru-WBLQ5B2U-dpqvtfwr.js +10 -0
  209. package/dist/{sdd-convert-service-am4cs6zq.js → sdd-convert-service-btj95r5z.js} +690 -447
  210. package/dist/{sdd-lookup-12hfwqjq.js → sdd-lookup-x3fh6svg.js} +6 -4
  211. package/dist/{sdd-resolve-service-e56wtgxt.js → sdd-resolve-service-pzsm3mkz.js} +37 -10
  212. package/dist/sdd-resolve-siblings-wzhvhar8.js +57 -0
  213. package/dist/{shared-utils-611ah3tq.js → shared-utils-w643sejd.js} +6 -4
  214. package/dist/{solution-auth-kddmbm0p.js → solution-auth-30yycqtv.js} +3 -3
  215. package/dist/solution-discovery-pavd4zeb.js +47 -0
  216. package/dist/{strict-case-rules-pn3ypd97.js → strict-case-rules-vnyr3b3k.js} +3 -2
  217. package/dist/{strict-entry-points-a2cya540.js → strict-entry-points-xrddz82q.js} +33 -1
  218. package/dist/{strict-sdd-audit-nc7dk2hy.js → strict-sdd-audit-8deegzad.js} +11 -7
  219. package/dist/task-type-declaration-re9ba03j.js +46 -0
  220. package/dist/{tidy-service-thmayk2h.js → tidy-service-mepxtxqm.js} +144 -39
  221. package/dist/{tool-z7q74wa4.js → tool-13vrxcqw.js} +313 -123
  222. package/dist/{tool-rmcqxt09.js → tool-x8dmgc2y.js} +476 -339
  223. package/dist/tool.js +2 -2
  224. package/dist/{tr-5IIHSFW5-hw4cewew.js → tr-GDTLECMM-k5fhmq13.js} +29 -2
  225. package/dist/tr-GDTLECMM-kngksm3r.js +200 -0
  226. package/dist/{tr-JMIP7ZSL-c39b6pe4.js → tr-M3F5A6AU-bb0tg39m.js} +235 -28
  227. package/dist/{trigger-enrichment-service-fw97esz9.js → trigger-enrichment-service-pc8ecypw.js} +34 -30
  228. package/dist/trigger-entry-point-id-819hnfnn.js +15 -0
  229. package/dist/{variable-service-3gywh851.js → variable-service-8v0b9d66.js} +17 -12
  230. package/dist/{wait-for-flow-job-wdcjjk6p.js → wait-for-flow-job-5rjxh65w.js} +14 -11
  231. package/dist/{zh-CN-IFFXSEJS-9wm9gmrv.js → zh-CN-C5G4PC7C-ds9gkptg.js} +235 -28
  232. package/dist/zh-CN-I5D7WHBD-ge92tbx9.js +200 -0
  233. package/dist/{zh-CN-R2KU4U5L-tc1hat59.js → zh-CN-I5D7WHBD-sr5h0a98.js} +29 -2
  234. package/dist/{zh-TW-GNKMELBF-j674515r.js → zh-TW-2AVLM723-288pkc1z.js} +29 -2
  235. package/dist/zh-TW-2AVLM723-xsmap3gk.js +200 -0
  236. package/dist/{zh-TW-IYBNYAMG-8727c7v2.js → zh-TW-62HZIG6O-787kdwex.js} +234 -27
  237. package/package.json +2 -2
  238. package/dist/bpmn-validate-service-tanm0n47.js +0 -14
  239. package/dist/debug-conversation-trigger-zbxp49z7.js +0 -46
  240. package/dist/flow-eval-run-api-zg951w2f.js +0 -15
  241. package/dist/hitPolicyResult-4WDHTX4A-zpjwpxn1.js +0 -69
  242. package/dist/index-03h6hq69.js +0 -200
  243. package/dist/input-reader-sce4dejb.js +0 -13
  244. package/dist/input-reader-tf6xyfvt.js +0 -13
  245. package/dist/migration-diagnosis-fzj426fa.js +0 -71
  246. package/dist/node-service-3j6w3z2k.js +0 -89
  247. package/dist/node-sync-service-q7dsv2p0.js +0 -43
  248. package/dist/out-target-498z06v5.js +0 -72
  249. package/dist/packager-tool-0g6ktcsq.js +0 -32
  250. package/dist/packager-tool-3mvr6njb.js +0 -305
  251. package/dist/packager-tool-521x949f.js +0 -32
  252. package/dist/packager-tool-64zypey6.js +0 -521
  253. package/dist/packager-tool-7t0xj5pz.js +0 -64
  254. package/dist/packager-tool-j836z6mq.js +0 -208
  255. package/dist/packager-tool-p7eactax.js +0 -267
  256. package/dist/packager-tool-xjtv580j.js +0 -13
  257. package/dist/packager-tool-zm7thgdg.js +0 -456
  258. /package/dist/{localization-p76prk3f.js → localization-d151bzb1.js} +0 -0
@@ -3,45 +3,57 @@ import {
3
3
  DEFAULT_TIMEOUT_MS,
4
4
  pendingSecondsFor,
5
5
  pendingStallInstructions
6
- } from "./packager-tool-wbtykfb2.js";
6
+ } from "./packager-tool-dzd3y9p0.js";
7
+ import {
8
+ package_default
9
+ } from "./packager-tool-bd7t6p8y.js";
10
+ import"./packager-tool-s695j0qj.js";
7
11
  import"./packager-tool-8j9q1nd2.js";
8
12
  import {
9
13
  VALID_RESOURCE_TYPES
10
14
  } from "./packager-tool-s95s0kvg.js";
11
- import {
12
- package_default
13
- } from "./packager-tool-4tf3tq1b.js";
14
- import {
15
- evaluatorTypeAliases,
16
- resolveLoginConfig
17
- } from "./packager-tool-64zypey6.js";
18
- import"./packager-tool-7msx23gd.js";
19
15
  import {
20
16
  registerRegistryCommand
21
- } from "./packager-tool-k0bc2f6w.js";
17
+ } from "./packager-tool-b84rs07t.js";
22
18
  import {
23
19
  registerSharedDebugInstanceCommands,
24
20
  registerSharedIncidentCommands,
25
21
  registerSharedInstanceCommands,
26
22
  registerSharedProcessCommands,
27
23
  registerSharedProcessesCommands
28
- } from "./packager-tool-zvpkw29f.js";
29
- import"./packager-tool-2k0hp4st.js";
30
- import"./packager-tool-eypvc2kv.js";
24
+ } from "./packager-tool-212khq09.js";
25
+ import"./packager-tool-sb08yxk6.js";
26
+ import {
27
+ UnknownEntryPointError
28
+ } from "./packager-tool-k7n4sf7v.js";
29
+ import"./packager-tool-2qywkm61.js";
30
+ import {
31
+ evaluatorTypeAliases,
32
+ formatDuration,
33
+ formatEvalSetRunRow,
34
+ formatEvaluatorScores,
35
+ formatRemoteEvalRunRow,
36
+ isFailedRemoteRun,
37
+ isTerminalRemoteStatus,
38
+ remoteRunScore,
39
+ resolveLoginConfig
40
+ } from "./packager-tool-m1901c0c.js";
31
41
  import {
32
42
  setAgentProjectMetadataReader
33
43
  } from "./packager-tool-8qp60s20.js";
34
- import"./packager-tool-v99ygh9f.js";
44
+ import"./packager-tool-eypvc2kv.js";
45
+ import"./packager-tool-yn33pw57.js";
35
46
  import"./packager-tool-0gctz400.js";
36
47
  import"./packager-tool-qa9gftnj.js";
37
48
  import"./packager-tool-yc4kw997.js";
38
- import"./packager-tool-npr79108.js";
39
- import"./packager-tool-8xhjr5ya.js";
49
+ import"./packager-tool-ajhgr4bs.js";
50
+ import"./packager-tool-mrskd7mn.js";
40
51
  import {
41
52
  ATTACHMENT_INSTRUCTIONS,
42
53
  ATTACHMENT_UPLOAD_INSTRUCTIONS,
43
54
  CommandDimensions,
44
55
  OutputFormatter,
56
+ Pagination,
45
57
  RESULTS,
46
58
  ScreenLogger,
47
59
  ShipDimensions,
@@ -53,29 +65,65 @@ import {
53
65
  logger,
54
66
  mapPackageMetadataOptions,
55
67
  parseAttachmentSpec,
68
+ parseLimit,
69
+ parseOffset,
56
70
  processContext,
57
71
  registerPackageMetadataOptions,
58
72
  resolveAttachmentInputs,
59
73
  splitPackagedName,
60
74
  summarizePlatformBody,
61
75
  trackShipSucceeded
62
- } from "./packager-tool-yv10w46z.js";
76
+ } from "./packager-tool-zgm0r4yp.js";
77
+ import"./packager-tool-6sm17vbx.js";
63
78
  import {
64
79
  getFileSystem
65
- } from "./packager-tool-xdxr3ync.js";
80
+ } from "./packager-tool-hdxtgckw.js";
66
81
  import"./packager-tool-yvcrdbgp.js";
82
+ import"./packager-tool-sm8ertv4.js";
67
83
  import {
68
84
  catchError
69
- } from "./packager-tool-z1qbc0qf.js";
85
+ } from "./packager-tool-wv85dhy2.js";
70
86
  import {
71
87
  __require
72
88
  } from "./packager-tool-1yh8g550.js";
73
89
 
90
+ // ../flow-tool/src/utils/row-window.ts
91
+ function addRowWindowOptions(command) {
92
+ return command.option("-l, --limit <number>", "Number of items to return (1-10000)", parseLimit).option("--offset <number>", "Number of items to skip (0-1000000)", parseOffset, 0);
93
+ }
94
+ function rowWindow(rows, options) {
95
+ const { limit, offset } = options;
96
+ if (limit === undefined && offset === 0) {
97
+ return { rows };
98
+ }
99
+ const window = rows.slice(offset, limit === undefined ? undefined : offset + limit);
100
+ return {
101
+ rows: window,
102
+ pagination: new Pagination({
103
+ returned: window.length,
104
+ limit: limit ?? Math.max(window.length, 1),
105
+ offset,
106
+ total: rows.length
107
+ })
108
+ };
109
+ }
110
+ function apiPagination(returned, options) {
111
+ const { limit, offset } = options;
112
+ if (limit === undefined && offset === 0) {
113
+ return;
114
+ }
115
+ return new Pagination({
116
+ returned,
117
+ limit: limit ?? Math.max(returned, 1),
118
+ offset
119
+ });
120
+ }
121
+
74
122
  // ../flow-tool/src/commands/binding.ts
75
123
  var BINDING_LIST_EXAMPLES = [
76
124
  {
77
125
  Description: "List all bindings in a flow file",
78
- Command: "uip maestro flow binding list flow.json",
126
+ Command: "uip maestro flow bindings list flow.json",
79
127
  Output: {
80
128
  Code: "BindingListSuccess",
81
129
  Data: {
@@ -95,7 +143,7 @@ var BINDING_LIST_EXAMPLES = [
95
143
  var BINDING_ADD_EXAMPLES = [
96
144
  {
97
145
  Description: "Add a process binding to a flow",
98
- Command: 'uip maestro flow binding add flow.json "Invoice" process "InvoiceProcess" --property-attribute name',
146
+ Command: 'uip maestro flow bindings create flow.json "Invoice" process "InvoiceProcess" --property-attribute name',
99
147
  Output: {
100
148
  Code: "BindingAddSuccess",
101
149
  Data: {
@@ -113,7 +161,7 @@ var BINDING_ADD_EXAMPLES = [
113
161
  var BINDING_DELETE_EXAMPLES = [
114
162
  {
115
163
  Description: "Remove all bindings by resource key",
116
- Command: "uip maestro flow binding remove flow.json a1b2c3d4-0000-0000-0000-000000000001",
164
+ Command: "uip maestro flow bindings delete flow.json a1b2c3d4-0000-0000-0000-000000000001",
117
165
  Output: {
118
166
  Code: "BindingRemoveSuccess",
119
167
  Data: {
@@ -129,9 +177,9 @@ var BINDING_DELETE_EXAMPLES = [
129
177
  }
130
178
  ];
131
179
  var registerBindingCommand = (program) => {
132
- const binding = program.command("binding").description("Manage bindings in a Flow file");
133
- binding.command("list").description("List all bindings in a Flow file").argument("<file>", "Path to the .flow file").examples(BINDING_LIST_EXAMPLES).trackedAction(processContext, async (file) => {
134
- const { listBindingsInFlow } = await import("./binding-service-dj04a6e6.js");
180
+ const binding = program.command("bindings").alias("binding").description("Manage bindings in a Flow file");
181
+ addRowWindowOptions(binding.command("list")).description("List all bindings in a Flow file").argument("<file>", "Path to the .flow file").examples(BINDING_LIST_EXAMPLES).trackedAction(processContext, async (file, options) => {
182
+ const { listBindingsInFlow } = await import("./binding-service-b2v8y2sb.js");
135
183
  const [error, result] = await catchError(listBindingsInFlow(file));
136
184
  if (error) {
137
185
  OutputFormatter.error({
@@ -142,18 +190,20 @@ var registerBindingCommand = (program) => {
142
190
  processContext.exit(1);
143
191
  return;
144
192
  }
193
+ const window = rowWindow(result.bindings, options);
145
194
  OutputFormatter.success({
146
195
  Result: RESULTS.Success,
147
196
  Code: "BindingListSuccess",
148
197
  Data: {
149
- Bindings: result.bindings,
150
- Count: result.count
151
- }
198
+ Bindings: window.rows,
199
+ Count: window.rows.length
200
+ },
201
+ Pagination: window.pagination
152
202
  });
153
203
  });
154
- binding.command("add").description(`Add a binding to a Flow file.
204
+ binding.command("create").alias("add").description(`Add a binding to a Flow file.
155
205
  ` + `Valid resource types: ${VALID_RESOURCE_TYPES.join(", ")}`).argument("<file>", "Path to the .flow file").argument("<name>", "Binding display name").argument("<resource>", "Resource type").argument("<default-value>", "Default value for the binding").option("--resource-key <key>", "Resource catalog identifier").option("--property-attribute <attr>", "Target node property (e.g., name, folderPath, connection)").option("--resource-sub-type <type>", "Resource sub-classification (e.g., Agent, Process)").examples(BINDING_ADD_EXAMPLES).trackedAction(processContext, async (file, name, resource, defaultValue, options) => {
156
- const { addBindingToFlow } = await import("./binding-service-dj04a6e6.js");
206
+ const { addBindingToFlow } = await import("./binding-service-b2v8y2sb.js");
157
207
  const [error, result] = await catchError(addBindingToFlow(file, name, resource, defaultValue, {
158
208
  resourceKey: options.resourceKey,
159
209
  propertyAttribute: options.propertyAttribute,
@@ -176,8 +226,8 @@ var registerBindingCommand = (program) => {
176
226
  }
177
227
  });
178
228
  });
179
- binding.command("remove").description("Remove all bindings with a given resource key from a Flow file").argument("<file>", "Path to the .flow file").argument("<resource-key>", "Resource key of the bindings to remove").examples(BINDING_DELETE_EXAMPLES).trackedAction(processContext, async (file, resourceKey) => {
180
- const { deleteBindingFromFlow } = await import("./binding-service-dj04a6e6.js");
229
+ binding.command("delete").alias("remove").description("Remove all bindings with a given resource key from a Flow file").argument("<file>", "Path to the .flow file").argument("<resource-key>", "Resource key of the bindings to remove").examples(BINDING_DELETE_EXAMPLES).trackedAction(processContext, async (file, resourceKey) => {
230
+ const { deleteBindingFromFlow } = await import("./binding-service-b2v8y2sb.js");
181
231
  const [error, result] = await catchError(deleteBindingFromFlow(file, resourceKey));
182
232
  if (error) {
183
233
  OutputFormatter.error({
@@ -199,6 +249,55 @@ var registerBindingCommand = (program) => {
199
249
  });
200
250
  };
201
251
 
252
+ // ../flow-tool/src/commands/debug-summary.ts
253
+ function buildDebugSummary(result) {
254
+ const summary = {
255
+ finalStatus: result.finalStatus,
256
+ instanceId: result.instanceId,
257
+ studioWebUrl: result.studioWebUrl,
258
+ solutionId: result.solutionId,
259
+ failed: (result.elementExecutions ?? []).filter((execution) => execution.status !== "Completed").map(({ elementId, status }) => ({ elementId, status }))
260
+ };
261
+ if (result.variables) {
262
+ const globals = result.variables.globals ?? {};
263
+ const outputs = {};
264
+ const missing = [];
265
+ for (const id of result.declaredOutputIds ?? []) {
266
+ if (Object.hasOwn(globals, id)) {
267
+ outputs[id] = globals[id];
268
+ } else {
269
+ missing.push(id);
270
+ }
271
+ }
272
+ summary.outputs = outputs;
273
+ if (missing.length > 0)
274
+ summary.missingOutputs = missing;
275
+ }
276
+ if (result.variablesError)
277
+ summary.variablesError = result.variablesError;
278
+ if (result.incidents && result.incidents.length > 0) {
279
+ summary.incidents = result.incidents;
280
+ }
281
+ return summary;
282
+ }
283
+ var FULL_DEBUG_OUTPUT_DIR = ".flow-debug";
284
+ var FULL_DEBUG_OUTPUT_GITIGNORE = "# Written by `uip maestro flow debug --summary`: local debug records with tenant data.\n*\n";
285
+ async function writeFullDebugOutput(fs, projectPath, envelope) {
286
+ const { findNearestParentUipxFile } = await import("./index-d60j7q07.js");
287
+ const projectDir = fs.path.resolve(projectPath);
288
+ const discovery = await findNearestParentUipxFile(fs, projectDir);
289
+ const solutionDir = discovery.status === "found" ? fs.path.dirname(discovery.solutionFile) : fs.path.resolve(projectDir, "..");
290
+ const dir = fs.path.join(solutionDir, FULL_DEBUG_OUTPUT_DIR);
291
+ const relative = fs.path.relative(solutionDir, projectDir);
292
+ const key = relative && !relative.startsWith("..") && !fs.path.isAbsolute(relative) ? relative : fs.path.basename(projectDir);
293
+ const file = fs.path.join(dir, `${key}.json`);
294
+ await fs.mkdir(fs.path.dirname(file));
295
+ await fs.writeFile(fs.path.join(dir, ".gitignore"), FULL_DEBUG_OUTPUT_GITIGNORE);
296
+ await fs.writeFile(file, `${JSON.stringify(envelope, null, 2)}
297
+ `);
298
+ return file;
299
+ }
300
+
202
301
  // ../flow-tool/src/commands/debug.ts
203
302
  function buildHttpFailureOutput(err) {
204
303
  const stageLabel = err.stage ?? "request";
@@ -288,22 +387,26 @@ function buildIncidentInstructions(incidents, instanceId) {
288
387
  - `)}
289
388
  ${detailHint}${traceHint}`;
290
389
  }
390
+ function variablesRetryCommand(instanceId, error) {
391
+ const ids = error.expectedGlobals?.length ? error.expectedGlobals : error.missingGlobals;
392
+ const expect = ids?.length ? ` --expected-outputs ${ids.join(" ")}` : "";
393
+ return `'uip maestro flow debug-instance variables ${instanceId}${expect}'`;
394
+ }
291
395
  var CONVERSATIONAL_DEBUG_WARNING = "This flow, which starts on a conversation trigger, can only be debugged from a chat UI. " + `Debug it using the chat panel from either:
292
396
  ` + " 1. Studio Web — open the debug URL printed once the solution uploads " + `(also 'Data.studioWebUrl' in the result).
293
397
  ` + " 2. UiPath Maestro VS Code extension — open the flow and hit Debug.";
294
- async function projectStartsOnConversationTrigger(projectPath) {
295
- const [error, found] = await catchError((async () => {
296
- const { readFlowWorkflow, resolveProjectFlowFile } = await import("./flow-io-2qapk1ge.js");
297
- const { startsOnConversationTrigger } = await import("./debug-conversation-trigger-zbxp49z7.js");
398
+ async function readProjectFlowNodes(projectPath) {
399
+ const [error, nodes] = await catchError((async () => {
400
+ const { readFlowWorkflow, resolveProjectFlowFile } = await import("./flow-io-0yftj03d.js");
298
401
  const flowFilePath = await resolveProjectFlowFile(projectPath);
299
402
  const { workflow } = await readFlowWorkflow(flowFilePath);
300
- return startsOnConversationTrigger(workflow);
403
+ return workflow.nodes ?? [];
301
404
  })());
302
405
  if (error) {
303
- logger.info(`Skipped the conversational pre-flight scan: ${error.message}`);
304
- return false;
406
+ logger.info(`Skipped the debug pre-flight scan: ${error.message}`);
407
+ return;
305
408
  }
306
- return found === true;
409
+ return nodes;
307
410
  }
308
411
  var FLOW_DEBUG_EXAMPLES = [
309
412
  {
@@ -324,6 +427,21 @@ var FLOW_DEBUG_EXAMPLES = [
324
427
  }
325
428
  }
326
429
  },
430
+ {
431
+ Description: "Read only the verdict: status, the elements that did not complete, and the flow's declared outputs — not every node's raw output (HTTP bodies and headers included)",
432
+ Command: "uip maestro flow debug ./my-flow-project --summary",
433
+ Output: {
434
+ Code: "FlowDebug",
435
+ Data: {
436
+ finalStatus: "Completed",
437
+ instanceId: "c3d4e5f6-0000-0000-0000-000000000001",
438
+ studioWebUrl: "https://cloud.uipath.com/org/tenant/studio_/debug/e5f6a7b8",
439
+ solutionId: "e5f6a7b8-0000-0000-0000-000000000001",
440
+ failed: [],
441
+ outputs: { weatherVerdict: "warm office today" }
442
+ }
443
+ }
444
+ },
327
445
  {
328
446
  Description: "Conversational flow (core.trigger.conversation) — uploaded to Studio Web and handed off, since only a chat UI can drive it. No debug session is started",
329
447
  Command: "uip maestro flow debug ./my-chat-flow --open-in-browser",
@@ -409,9 +527,24 @@ function parsePositiveIntegerOption(value, optionName) {
409
527
  return { ok: true, value: parsed };
410
528
  }
411
529
  function registerDebugCommand(program) {
412
- program.command("debug").description("Debug a flow project by uploading to Studio Web and running a debug session").argument("<project-path>", "Path to the flow project directory (must contain project.uiproj)").option("--folder-id <id>", "Orchestrator folder ID (OrganizationUnitId) as a positive integer. Mutually exclusive with --folder-key/--folder-path. Auto-detected if none are provided.").option("--folder-key <key>", "Orchestrator folder key (UUID). The CLI resolves it to the folder ID. Mutually exclusive with --folder-id/--folder-path.").option("--folder-path <path>", "Orchestrator folder path (e.g. 'Shared/Sub'). The CLI resolves it to the folder ID. Mutually exclusive with --folder-id/--folder-key.").option("--poll-interval <ms>", "Polling interval in milliseconds", "2000").option("--timeout <seconds>", "Maximum seconds to wait for debug completion").option("-i, --inputs <json>", "Input parameters as JSON string or @file.json").option("--attachment <name=path>", "Upload a file as a file-typed workflow input variable (repeatable). " + "Example: --attachment file1=./resume.pdf", appendOption, []).option("--open-in-browser", "Open the Studio Web URL in the browser once it is known.").option("--login-validity <minutes>", "Minimum minutes before token expiration to trigger a refresh (default: 10)", parseInt, 10).examples(FLOW_DEBUG_EXAMPLES).trackedAction(processContext, async (projectPath, options) => {
413
- const { getLoginStatusAsync } = await import("./index-j2r3jb6c.js");
414
- const isConversational = await projectStartsOnConversationTrigger(projectPath);
530
+ program.command("debug").description("Debug a flow project by uploading to Studio Web and running a debug session").argument("<project-path>", "Path to the flow project directory (must contain project.uiproj)").option("--folder-id <id>", "Orchestrator folder ID (OrganizationUnitId) as a positive integer. Mutually exclusive with --folder-key/--folder-path. Auto-detected if none are provided.").option("--folder-key <key>", "Orchestrator folder key (UUID). The CLI resolves it to the folder ID. Mutually exclusive with --folder-id/--folder-path.").option("--folder-path <path>", "Orchestrator folder path (e.g. 'Shared/Sub'). The CLI resolves it to the folder ID. Mutually exclusive with --folder-id/--folder-key.").option("--poll-interval <ms>", "Polling interval in milliseconds", "2000").option("--timeout <seconds>", "Maximum seconds to wait for debug completion").option("-i, --inputs <json>", "Input parameters as JSON string or @file.json").option("--entry-point <id>", "Entry point node id — a trigger node id from the .flow file. Defaults to the trigger marked isDefaultEntryPoint, else the first trigger").option("--attachment <name=path>", "Upload a file as a file-typed workflow input variable (repeatable). " + "Example: --attachment file1=./resume.pdf", appendOption, []).option("--summary", "Return only the run's status, its failed elements and the flow's declared outputs, " + "instead of every node's raw output. The full result, tenant data included, is written to " + "<solution>/.flow-debug/<project>.json (<project> relative to the solution; the folder's own " + ".gitignore ignores it; never packed or uploaded) and named in Data.fullOutputPath.").option("--open-in-browser", "Open the Studio Web URL in the browser once it is known.").option("--login-validity <minutes>", "Minimum minutes before token expiration to trigger a refresh (default: 10)", parseInt, 10).examples(FLOW_DEBUG_EXAMPLES).trackedAction(processContext, async (projectPath, options) => {
531
+ const { getLoginStatusAsync } = await import("./index-xq6ajhgq.js");
532
+ const nodes = await readProjectFlowNodes(projectPath);
533
+ let isConversational = false;
534
+ if (nodes !== undefined) {
535
+ const { startsOnConversationTrigger } = await import("./debug-conversation-trigger-f4a07w23.js");
536
+ const [entryPointError, conversational] = catchError(() => startsOnConversationTrigger({ nodes }, options.entryPoint));
537
+ if (entryPointError instanceof UnknownEntryPointError) {
538
+ OutputFormatter.error({
539
+ Result: RESULTS.ValidationError,
540
+ Message: entryPointError.message,
541
+ Instructions: entryPointError.instructions
542
+ });
543
+ processContext.exit(3);
544
+ return;
545
+ }
546
+ isConversational = conversational === true;
547
+ }
415
548
  if (isConversational) {
416
549
  OutputFormatter.log({
417
550
  Warning: CONVERSATIONAL_DEBUG_WARNING
@@ -527,7 +660,7 @@ function registerDebugCommand(program) {
527
660
  }
528
661
  userProvidedFolderId = parsed.value;
529
662
  } else if (options.folderKey !== undefined || options.folderPath !== undefined) {
530
- const { resolveFolder } = await import("./index-n7n2d0tb.js");
663
+ const { resolveFolder } = await import("./index-gjg7tpcx.js");
531
664
  const [folderError, folder] = await catchError(resolveFolder({
532
665
  folderKey: options.folderKey,
533
666
  folderPath: options.folderPath
@@ -566,17 +699,18 @@ function registerDebugCommand(program) {
566
699
  InboundVoiceDebugError,
567
700
  MissingSolutionWrapperError,
568
701
  UnregisteredProjectError
569
- } = await import("./flow-debug-service-f59xnvdf.js");
570
- const { MaestroHttpError } = await import("./debug-http-client-73errmgs.js");
702
+ } = await import("./flow-debug-service-a7vd9eht.js");
703
+ const { UnboundInlineEntityError } = await import("./inline-entity-resolver-nzfs8hb6.js");
704
+ const { MaestroHttpError } = await import("./debug-http-client-8t7t701c.js");
571
705
  const {
572
706
  buildPollTimeoutFailureOutput,
573
707
  DebugPollTimeoutError,
574
708
  isSuccessfulDebugStatus
575
- } = await import("./debug-service-8kjtrm88.js");
709
+ } = await import("./debug-service-c7y7f216.js");
576
710
  const {
577
711
  buildSolutionUploadFailureOutput,
578
712
  isSolutionUploadHttpError
579
- } = await import("./index-cpgb4hp8.js");
713
+ } = await import("./index-d60j7q07.js");
580
714
  const service = new FlowDebugService;
581
715
  const parsedPollInterval = parsePositiveNumberOption(options.pollInterval || "2000", "--poll-interval");
582
716
  if (!parsedPollInterval.ok) {
@@ -605,7 +739,7 @@ function registerDebugCommand(program) {
605
739
  }
606
740
  let inputs;
607
741
  if (options.inputs) {
608
- const { parseFlowInputs } = await import("./flow-api-y70m8n82.js");
742
+ const { parseFlowInputs } = await import("./flow-api-qj89cv18.js");
609
743
  const [parseError, parsed] = await catchError(parseFlowInputs(options.inputs));
610
744
  if (parseError) {
611
745
  OutputFormatter.error({
@@ -630,7 +764,7 @@ function registerDebugCommand(program) {
630
764
  processContext.exit(1);
631
765
  return;
632
766
  }
633
- const { uploadJobAttachment } = await import("./index-n7n2d0tb.js");
767
+ const { uploadJobAttachment } = await import("./index-gjg7tpcx.js");
634
768
  const [uploadError, resolved] = await catchError(resolveAttachmentInputs(specs, (bytes, fileName) => uploadJobAttachment(bytes, fileName, {
635
769
  tenant: tenantName
636
770
  })));
@@ -657,6 +791,7 @@ function registerDebugCommand(program) {
657
791
  }
658
792
  const debugOptions = {
659
793
  inputs,
794
+ ...options.entryPoint === undefined ? {} : { entryPoint: options.entryPoint },
660
795
  ...maxPolls === undefined ? {} : { maxPolls },
661
796
  ...isConversational ? { uploadOnly: true } : {}
662
797
  };
@@ -696,7 +831,7 @@ function registerDebugCommand(program) {
696
831
  processContext.exit(3);
697
832
  return;
698
833
  }
699
- if (executeError instanceof InboundVoiceDebugError) {
834
+ if (executeError instanceof InboundVoiceDebugError || executeError instanceof UnknownEntryPointError) {
700
835
  OutputFormatter.error({
701
836
  Result: RESULTS.ValidationError,
702
837
  Message: executeError.message,
@@ -714,6 +849,15 @@ function registerDebugCommand(program) {
714
849
  processContext.exit(3);
715
850
  return;
716
851
  }
852
+ if (executeError instanceof UnboundInlineEntityError) {
853
+ OutputFormatter.error({
854
+ Result: RESULTS.ValidationError,
855
+ Message: executeError.message,
856
+ Instructions: executeError.instructions
857
+ });
858
+ processContext.exit(3);
859
+ return;
860
+ }
717
861
  if (executeError instanceof DebugProvisioningMissingResourcesError) {
718
862
  OutputFormatter.error({
719
863
  Result: RESULTS.Failure,
@@ -763,21 +907,39 @@ function registerDebugCommand(program) {
763
907
  return;
764
908
  }
765
909
  const success = isSuccessfulDebugStatus(result.finalStatus);
766
- const data = {
910
+ const fullData = {
767
911
  jobKey: result.jobKey,
768
912
  instanceId: result.instanceId,
769
913
  runId: result.runId,
770
914
  folderKey: result.folderKey,
771
915
  finalStatus: result.finalStatus,
916
+ entryPoint: result.entryPoint,
772
917
  solutionId: result.solutionId,
773
918
  studioWebUrl: result.studioWebUrl,
774
919
  elementExecutions: result.elementExecutions,
775
920
  variables: result.variables,
776
921
  variablesError: result.variablesError,
922
+ variablesFetch: result.variablesFetch,
777
923
  incidents: result.incidents
778
924
  };
925
+ let data = fullData;
926
+ if (options.summary) {
927
+ const summary2 = buildDebugSummary(result);
928
+ const [writeError, fullOutputPath] = await catchError(writeFullDebugOutput(getFileSystem(), projectPath, {
929
+ Result: success ? RESULTS.Success : RESULTS.Failure,
930
+ Code: "FlowDebug",
931
+ Data: fullData
932
+ }));
933
+ if (writeError) {
934
+ logger.warn(`Could not write the full debug output: ${writeError.message}`);
935
+ summary2.fullOutputError = writeError.message;
936
+ } else {
937
+ summary2.fullOutputPath = fullOutputPath;
938
+ }
939
+ data = summary2;
940
+ }
779
941
  if (success) {
780
- const instructions = result.variablesError ? `Debug completed with status: ${result.finalStatus}, but the output variables could not be read after ${result.variablesError.attempts} attempt(s): ${result.variablesError.message}. ` + `Data.variables is absent and Data.variablesError explains why — treat the outputs as UNKNOWN, not empty. ` + `Retry with 'uip maestro flow debug-instance variables ${result.instanceId}'.` : `Debug completed with status: ${result.finalStatus}`;
942
+ const instructions = result.variablesError ? `Debug completed with status: ${result.finalStatus}, but the output variables could not be read after ${result.variablesError.attempts} attempt(s): ${result.variablesError.message}. Data.${options.summary ? "outputs" : "variables"} is absent and Data.variablesError explains why — treat the outputs as UNKNOWN, not empty. ` + `Retry with ${variablesRetryCommand(result.instanceId, result.variablesError)}.` : `Debug completed with status: ${result.finalStatus}`;
781
943
  OutputFormatter.success({
782
944
  Result: RESULTS.Success,
783
945
  Code: "FlowDebug",
@@ -821,7 +983,7 @@ var registerDebugInstancesCommand = (program) => {
821
983
  var EDGE_LIST_EXAMPLES = [
822
984
  {
823
985
  Description: "List all edges in a flow file",
824
- Command: "uip maestro flow edge list flow.json",
986
+ Command: "uip maestro flow edges list flow.json",
825
987
  Output: {
826
988
  Code: "EdgeListSuccess",
827
989
  Data: {
@@ -840,7 +1002,7 @@ var EDGE_LIST_EXAMPLES = [
840
1002
  var EDGE_ADD_EXAMPLES = [
841
1003
  {
842
1004
  Description: "Add an edge between two nodes in a flow",
843
- Command: "uip maestro flow edge add flow.json Node_1 Node_2",
1005
+ Command: "uip maestro flow edges create flow.json Node_1 Node_2",
844
1006
  Output: {
845
1007
  Code: "EdgeAddSuccess",
846
1008
  Data: {
@@ -856,7 +1018,7 @@ var EDGE_ADD_EXAMPLES = [
856
1018
  },
857
1019
  {
858
1020
  Description: "Re-running with the same arguments is idempotent: returns the existing edge id with code EdgeAlreadyExists and a stderr warning.",
859
- Command: "uip maestro flow edge add flow.json Node_1 Node_2",
1021
+ Command: "uip maestro flow edges create flow.json Node_1 Node_2",
860
1022
  Output: {
861
1023
  Code: "EdgeAlreadyExists",
862
1024
  Data: {
@@ -874,7 +1036,7 @@ var EDGE_ADD_EXAMPLES = [
874
1036
  var EDGE_DELETE_EXAMPLES = [
875
1037
  {
876
1038
  Description: "Delete an edge by ID",
877
- Command: "uip maestro flow edge delete flow.json edge_a1b2c3d4",
1039
+ Command: "uip maestro flow edges delete flow.json edge_a1b2c3d4",
878
1040
  Output: {
879
1041
  Code: "EdgeDeleteSuccess",
880
1042
  Data: {
@@ -890,7 +1052,7 @@ var EDGE_DELETE_EXAMPLES = [
890
1052
  var EDGE_REMOVE_EXAMPLES = [
891
1053
  {
892
1054
  Description: "Remove an edge by ID",
893
- Command: "uip maestro flow edge remove flow.json edge_a1b2c3d4",
1055
+ Command: "uip maestro flow edges remove flow.json edge_a1b2c3d4",
894
1056
  Output: {
895
1057
  Code: "EdgeRemoveSuccess",
896
1058
  Data: {
@@ -904,10 +1066,10 @@ var EDGE_REMOVE_EXAMPLES = [
904
1066
  }
905
1067
  ];
906
1068
  function getDeleteEdgeInstructions(file) {
907
- return `Check that "${file}" exists and run 'uip maestro flow edge list ${file}' to find a valid edge ID, then retry.`;
1069
+ return `Check that "${file}" exists and run 'uip maestro flow edges list ${file}' to find a valid edge ID, then retry.`;
908
1070
  }
909
1071
  async function runDeleteEdge(file, edgeId, code) {
910
- const { deleteEdgeFromFlow } = await import("./edge-service-7092t84f.js");
1072
+ const { deleteEdgeFromFlow } = await import("./edge-service-vnn1p29d.js");
911
1073
  const normalizedEdgeId = edgeId.trim();
912
1074
  const [error, result] = await catchError(deleteEdgeFromFlow(file, normalizedEdgeId));
913
1075
  if (error) {
@@ -928,9 +1090,9 @@ async function runDeleteEdge(file, edgeId, code) {
928
1090
  });
929
1091
  }
930
1092
  var registerEdgeCommand = (program) => {
931
- const edge = program.command("edge").description("Manage edges in a Flow file");
932
- edge.command("list").description("List all edges in a Flow file").argument("<file>", "Path to the .flow file").examples(EDGE_LIST_EXAMPLES).trackedAction(processContext, async (file) => {
933
- const { listEdgesInFlow } = await import("./edge-service-7092t84f.js");
1093
+ const edge = program.command("edges").alias("edge").description("Manage edges in a Flow file");
1094
+ addRowWindowOptions(edge.command("list")).description("List all edges in a Flow file").argument("<file>", "Path to the .flow file").examples(EDGE_LIST_EXAMPLES).trackedAction(processContext, async (file, options) => {
1095
+ const { listEdgesInFlow } = await import("./edge-service-vnn1p29d.js");
934
1096
  const [error, result] = await catchError(listEdgesInFlow(file));
935
1097
  if (error) {
936
1098
  OutputFormatter.error({
@@ -941,17 +1103,19 @@ var registerEdgeCommand = (program) => {
941
1103
  processContext.exit(1);
942
1104
  return;
943
1105
  }
1106
+ const window = rowWindow(result.edges, options);
944
1107
  OutputFormatter.success({
945
1108
  Result: RESULTS.Success,
946
1109
  Code: "EdgeListSuccess",
947
1110
  Data: {
948
- Edges: result.edges,
949
- Count: result.count
950
- }
1111
+ Edges: window.rows,
1112
+ Count: window.rows.length
1113
+ },
1114
+ Pagination: window.pagination
951
1115
  });
952
1116
  });
953
- edge.command("add").description("Add an edge between two nodes in a Flow file").argument("<file>", "Path to the .flow file").argument("<source-id>", "ID of the source node").argument("<target-id>", "ID of the target node").option("--source-port <port>", 'Source port name (defaults to "output")').option("--target-port <port>", 'Target port name (defaults to "input")').examples(EDGE_ADD_EXAMPLES).trackedAction(processContext, async (file, sourceId, targetId, options) => {
954
- const { addEdgeToFlow } = await import("./edge-service-7092t84f.js");
1117
+ edge.command("create").alias("add").description("Add an edge between two nodes in a Flow file").argument("<file>", "Path to the .flow file").argument("<source-id>", "ID of the source node").argument("<target-id>", "ID of the target node").option("--source-port <port>", 'Source port name (defaults to "output")').option("--target-port <port>", 'Target port name (defaults to "input")').examples(EDGE_ADD_EXAMPLES).trackedAction(processContext, async (file, sourceId, targetId, options) => {
1118
+ const { addEdgeToFlow } = await import("./edge-service-vnn1p29d.js");
955
1119
  const [error, result] = await catchError(addEdgeToFlow(file, sourceId, targetId, {
956
1120
  sourcePort: options.sourcePort,
957
1121
  targetPort: options.targetPort
@@ -987,108 +1151,10 @@ var registerEdgeCommand = (program) => {
987
1151
  });
988
1152
  });
989
1153
  edge.command("delete").description(`Delete an edge from a Flow file.
990
- Use 'uip maestro flow edge list' to find the edge ID.`).argument("<file>", "Path to the .flow file").argument("<edge-id>", "ID of the edge to delete").examples(EDGE_DELETE_EXAMPLES).trackedAction(processContext, async (file, edgeId) => runDeleteEdge(file, edgeId, "EdgeDeleteSuccess"));
991
- edge.command("remove").description(`Remove an edge from a Flow file.
992
- Alias for 'edge delete'. Use 'uip maestro flow edge list' to find the edge ID.`).argument("<file>", "Path to the .flow file").argument("<edge-id>", "ID of the edge to remove").examples(EDGE_REMOVE_EXAMPLES).trackedAction(processContext, async (file, edgeId) => runDeleteEdge(file, edgeId, "EdgeRemoveSuccess"));
1154
+ Use 'uip maestro flow edges list' to find the edge ID.`).argument("<file>", "Path to the .flow file").argument("<edge-id>", "ID of the edge to delete").examples(EDGE_DELETE_EXAMPLES).trackedAction(processContext, async (file, edgeId) => runDeleteEdge(file, edgeId, "EdgeDeleteSuccess"));
1155
+ edge.command("remove", { hidden: true }).description(`Remove an edge from a Flow file.
1156
+ Alias for 'edges delete'. Use 'uip maestro flow edges list' to find the edge ID.`).argument("<file>", "Path to the .flow file").argument("<edge-id>", "ID of the edge to remove").examples(EDGE_REMOVE_EXAMPLES).trackedAction(processContext, async (file, edgeId) => runDeleteEdge(file, edgeId, "EdgeRemoveSuccess"));
993
1157
  };
994
-
995
- // ../flow-tool/src/services/flow-eval-run-format.ts
996
- function formatDuration(durationMs) {
997
- if (durationMs === null || durationMs === undefined) {
998
- return "-";
999
- }
1000
- return `${(durationMs / 1000).toFixed(1)}s`;
1001
- }
1002
- function formatEvaluatorScores(scores, evaluators) {
1003
- if (!scores || scores.length === 0) {
1004
- return "-";
1005
- }
1006
- return scores.map((score) => {
1007
- const evaluator = evaluators.find((item) => item.id === score.evaluatorId);
1008
- return `${evaluator?.name ?? score.evaluatorId}: ${score.value}`;
1009
- }).join(", ");
1010
- }
1011
- function evaluatorSnapshotName(snapshot) {
1012
- if (typeof snapshot === "object" && snapshot !== null && !Array.isArray(snapshot) && typeof snapshot.name === "string") {
1013
- return snapshot.name;
1014
- }
1015
- return;
1016
- }
1017
- function remoteEvaluatorName(evaluatorId, evaluatorSnapshot, evaluators) {
1018
- return evaluators.find((item) => item.id === evaluatorId)?.name ?? evaluatorSnapshotName(evaluatorSnapshot) ?? evaluatorId;
1019
- }
1020
- function remoteRunScore(run) {
1021
- if (run.result?.scores && run.result.scores.length > 0) {
1022
- const sum = run.result.scores.reduce((total, score) => total + score.value, 0);
1023
- return Number((sum / run.result.scores.length).toFixed(4));
1024
- }
1025
- const value = run.result?.score?.value;
1026
- return typeof value === "number" || typeof value === "boolean" ? value : "-";
1027
- }
1028
- function formatRemoteEvalRunRow(run, evaluators, verbose = false) {
1029
- let evaluatorScores = "-";
1030
- let justifications = "-";
1031
- if (run.evaluatorRuns && run.evaluatorRuns.length > 0) {
1032
- evaluatorScores = run.evaluatorRuns.map((evaluatorRun) => {
1033
- const name = remoteEvaluatorName(evaluatorRun.evaluatorId, evaluatorRun.evaluatorSnapshot, evaluators);
1034
- const score = evaluatorRun.result?.score;
1035
- if (score?.type === "error") {
1036
- return `${name}: Error`;
1037
- }
1038
- return `${name}: ${score?.value ?? "-"}`;
1039
- }).join(", ");
1040
- const justificationParts = run.evaluatorRuns.filter((evaluatorRun) => evaluatorRun.result?.score?.justification).map((evaluatorRun) => {
1041
- const name = remoteEvaluatorName(evaluatorRun.evaluatorId, evaluatorRun.evaluatorSnapshot, evaluators);
1042
- return `[${name}] ${evaluatorRun.result?.score?.justification}`;
1043
- });
1044
- if (justificationParts.length > 0) {
1045
- justifications = justificationParts.join(" | ");
1046
- }
1047
- } else if (run.result?.scores && run.result.scores.length > 0) {
1048
- evaluatorScores = formatEvaluatorScores(run.result.scores, evaluators);
1049
- }
1050
- const tokens = run.completionMetrics?.tokens;
1051
- const duration = run.completionMetrics?.duration;
1052
- const error = run.errorMessage ?? (typeof run.error === "string" ? run.error : run.error?.message) ?? "-";
1053
- const row = {
1054
- DataPoint: run.evalSnapshot?.name ?? run.id,
1055
- Status: run.status,
1056
- Score: remoteRunScore(run),
1057
- EvaluatorScores: evaluatorScores,
1058
- Tokens: typeof tokens === "number" && tokens > 0 ? tokens : "-",
1059
- Duration: typeof duration === "number" ? formatDuration(duration) : "-",
1060
- Error: error
1061
- };
1062
- if (verbose) {
1063
- row.Justifications = justifications;
1064
- }
1065
- return row;
1066
- }
1067
- function isFailedRemoteRun(run) {
1068
- const status = run.status.toLowerCase();
1069
- if (status === "failed" || status === "workloadfailed" || run.errorMessage || run.error) {
1070
- return true;
1071
- }
1072
- if (run.result?.score?.type === "error") {
1073
- return true;
1074
- }
1075
- return run.evaluatorRuns?.some((evaluatorRun) => evaluatorRun.result?.score?.type === "error" || evaluatorRun.result?.score?.value === false) ?? false;
1076
- }
1077
- function isTerminalRemoteStatus(status) {
1078
- return ["completed", "partiallycompleted", "failed"].includes(status.toLowerCase());
1079
- }
1080
- function formatEvalSetRunRow(run, evaluators) {
1081
- return {
1082
- EvalSetRunId: run.id,
1083
- Status: run.status,
1084
- Score: run.score ?? "-",
1085
- DataPoints: run.numberOfEvalsExecuted ?? "-",
1086
- Duration: formatDuration(run.durationMilliseconds),
1087
- EvaluatorScores: formatEvaluatorScores(run.evaluatorScores, evaluators),
1088
- CreatedAt: run.createdAt
1089
- };
1090
- }
1091
-
1092
1158
  // ../flow-tool/src/commands/eval-run.ts
1093
1159
  var FLOW_EVAL_PATH_OPTION_DESCRIPTION = "Path to a Flow project directory, or a solution directory with exactly one Flow project";
1094
1160
  var POLL_INTERVAL_MS = 5000;
@@ -1096,7 +1162,7 @@ var POLL_TIMEOUT_MS = 600000;
1096
1162
  var FLOW_EVAL_RUN_START_EXAMPLES = [
1097
1163
  {
1098
1164
  Description: "Start a Studio Web Flow evaluation run",
1099
- Command: 'uip maestro flow eval run start --set "Default Evaluation Set" --path ./my-solution/Flow',
1165
+ Command: 'uip maestro flow eval runs start --set "Default Evaluation Set" --path ./my-solution/Flow',
1100
1166
  Output: {
1101
1167
  Code: "FlowEvalRunStarted",
1102
1168
  Data: {
@@ -1111,7 +1177,7 @@ var FLOW_EVAL_RUN_START_EXAMPLES = [
1111
1177
  var FLOW_EVAL_RUN_STATUS_EXAMPLES = [
1112
1178
  {
1113
1179
  Description: "Check the status of a Studio Web Flow evaluation run",
1114
- Command: 'uip maestro flow eval run status a1b2c3d4-0000-0000-0000-000000000101 --set "Default Evaluation Set" --path ./my-solution/Flow',
1180
+ Command: 'uip maestro flow eval runs status a1b2c3d4-0000-0000-0000-000000000101 --set "Default Evaluation Set" --path ./my-solution/Flow',
1115
1181
  Output: {
1116
1182
  Code: "FlowEvalRunStatus",
1117
1183
  Data: {
@@ -1126,7 +1192,7 @@ var FLOW_EVAL_RUN_STATUS_EXAMPLES = [
1126
1192
  var FLOW_EVAL_RUN_RESULTS_EXAMPLES = [
1127
1193
  {
1128
1194
  Description: "Show detailed per-data-point results for a Flow run",
1129
- Command: 'uip maestro flow eval run results a1b2c3d4-0000-0000-0000-000000000101 --set "Default Evaluation Set" --path ./my-solution/Flow',
1195
+ Command: 'uip maestro flow eval runs results a1b2c3d4-0000-0000-0000-000000000101 --set "Default Evaluation Set" --path ./my-solution/Flow',
1130
1196
  Output: {
1131
1197
  Code: "FlowEvalRunResults",
1132
1198
  Data: [
@@ -1144,7 +1210,7 @@ var FLOW_EVAL_RUN_RESULTS_EXAMPLES = [
1144
1210
  var FLOW_EVAL_RUN_LIST_EXAMPLES = [
1145
1211
  {
1146
1212
  Description: "List Studio Web evaluation runs for a Flow eval set",
1147
- Command: 'uip maestro flow eval run list --set "Default Evaluation Set" --path ./my-solution/Flow',
1213
+ Command: 'uip maestro flow eval runs list --set "Default Evaluation Set" --path ./my-solution/Flow',
1148
1214
  Output: {
1149
1215
  Code: "FlowEvalRunList",
1150
1216
  Data: [
@@ -1163,7 +1229,7 @@ var FLOW_EVAL_RUN_LIST_EXAMPLES = [
1163
1229
  var FLOW_EVAL_RUN_COMPARE_EXAMPLES = [
1164
1230
  {
1165
1231
  Description: "Compare two Studio Web Flow evaluation runs",
1166
- Command: 'uip maestro flow eval run compare a1b2c3d4-0000-0000-0000-000000000101 --compare-to a1b2c3d4-0000-0000-0000-000000000102 --set "Default Evaluation Set" --path ./my-solution/Flow',
1232
+ Command: 'uip maestro flow eval runs compare a1b2c3d4-0000-0000-0000-000000000101 --compare-to a1b2c3d4-0000-0000-0000-000000000102 --set "Default Evaluation Set" --path ./my-solution/Flow',
1167
1233
  Output: {
1168
1234
  Code: "FlowEvalRunComparison",
1169
1235
  Data: {
@@ -1287,11 +1353,11 @@ async function resolveRemoteTarget(service, options, config, requireSolutionId =
1287
1353
  }, requireSolutionId, config);
1288
1354
  }
1289
1355
  function registerEvalRunCommand(evalCmd) {
1290
- const runCmd = evalCmd.command("run").description("Run Flow evaluation sets in Studio Web");
1356
+ const runCmd = evalCmd.command("runs").alias("run").description("Run Flow evaluation sets in Studio Web");
1291
1357
  addStartOptions(runCmd.command("start").description("Start a Studio Web evaluation run (Flow solution must be available in Studio Web)")).option("--wait", "Wait for the evaluation to complete and show results").option("--timeout <seconds>", "Timeout in seconds for --wait polling", (value) => Number.parseInt(value, 10)).examples(FLOW_EVAL_RUN_START_EXAMPLES).trackedAction(processContext, async (options) => {
1292
1358
  const [error] = await catchError((async () => {
1293
1359
  const config = await resolveStudioWebConfig();
1294
- const { FlowEvalRunService } = await import("./flow-eval-run-service-hmfbng78.js");
1360
+ const { FlowEvalRunService } = await import("./flow-eval-run-service-keqkwjg1.js");
1295
1361
  const service = new FlowEvalRunService;
1296
1362
  const result = await service.startRemoteEvalRun(options.path, options.set, config, {
1297
1363
  solutionId: options.solutionId,
@@ -1310,7 +1376,7 @@ function registerEvalRunCommand(evalCmd) {
1310
1376
  Evaluators: result.evaluators,
1311
1377
  Status: result.status
1312
1378
  },
1313
- Instructions: options.wait ? "Waiting for completion..." : `Monitor with: uip maestro flow eval run status ${result.evalSetRunId} --set "${options.set}" --path ${options.path}`
1379
+ Instructions: options.wait ? "Waiting for completion..." : `Monitor with: uip maestro flow eval runs status ${result.evalSetRunId} --set "${options.set}" --path ${options.path}`
1314
1380
  });
1315
1381
  if (options.wait) {
1316
1382
  await outputCompletedRemoteRun(service, config, options.path, result, options.timeout);
@@ -1320,10 +1386,10 @@ function registerEvalRunCommand(evalCmd) {
1320
1386
  outputError("Failed to start flow evaluation run", error);
1321
1387
  }
1322
1388
  });
1323
- addTargetOptions(runCmd.command("status").description("Check the status of a Studio Web Flow evaluation run").argument("<evalSetRunId>", "Evaluation set run ID")).examples(FLOW_EVAL_RUN_STATUS_EXAMPLES).trackedAction(processContext, async (evalSetRunId, options) => {
1389
+ addTargetOptions(runCmd.command("status").description("Check the status of a Studio Web Flow evaluation run").argument("<eval-set-run-id>", "Evaluation set run ID")).examples(FLOW_EVAL_RUN_STATUS_EXAMPLES).trackedAction(processContext, async (evalSetRunId, options) => {
1324
1390
  const [error] = await catchError((async () => {
1325
1391
  const config = await resolveStudioWebConfig();
1326
- const { FlowEvalRunService } = await import("./flow-eval-run-service-hmfbng78.js");
1392
+ const { FlowEvalRunService } = await import("./flow-eval-run-service-keqkwjg1.js");
1327
1393
  const service = new FlowEvalRunService;
1328
1394
  const target = await resolveRemoteTarget(service, options, config);
1329
1395
  const [run, evaluators] = await Promise.all([
@@ -1346,10 +1412,10 @@ function registerEvalRunCommand(evalCmd) {
1346
1412
  outputError("Failed to get flow evaluation run status", error);
1347
1413
  }
1348
1414
  });
1349
- addTargetOptions(runCmd.command("results").description("Get detailed results for a Studio Web Flow evaluation run").argument("<evalSetRunId>", "Evaluation set run ID")).option("--only-failed", "Show only failed or errored data points").option("--verbose", "Include evaluator justifications in output").option("--export-format <json|csv>", "Export results to file (json or csv)").examples(FLOW_EVAL_RUN_RESULTS_EXAMPLES).trackedAction(processContext, async (evalSetRunId, options) => {
1415
+ addTargetOptions(runCmd.command("results").description("Get detailed results for a Studio Web Flow evaluation run").argument("<eval-set-run-id>", "Evaluation set run ID")).option("--only-failed", "Show only failed or errored data points").option("--verbose", "Include evaluator justifications in output").option("--export-format <json|csv>", "Export results to file (json or csv)").examples(FLOW_EVAL_RUN_RESULTS_EXAMPLES).trackedAction(processContext, async (evalSetRunId, options) => {
1350
1416
  const [error] = await catchError((async () => {
1351
1417
  const config = await resolveStudioWebConfig();
1352
- const { FlowEvalRunService } = await import("./flow-eval-run-service-hmfbng78.js");
1418
+ const { FlowEvalRunService } = await import("./flow-eval-run-service-keqkwjg1.js");
1353
1419
  const service = new FlowEvalRunService;
1354
1420
  const target = await resolveRemoteTarget(service, options, config);
1355
1421
  let evalRuns = await service.getRemoteEvalRuns(config, target.workloadId, evalSetRunId);
@@ -1380,17 +1446,19 @@ function registerEvalRunCommand(evalCmd) {
1380
1446
  outputError("Failed to get flow evaluation results", error);
1381
1447
  }
1382
1448
  });
1383
- addTargetOptions(runCmd.command("list").description("List Studio Web evaluation runs for a Flow eval set")).examples(FLOW_EVAL_RUN_LIST_EXAMPLES).trackedAction(processContext, async (options) => {
1449
+ addTargetOptions(addRowWindowOptions(runCmd.command("list")).description("List Studio Web evaluation runs for a Flow eval set")).examples(FLOW_EVAL_RUN_LIST_EXAMPLES).trackedAction(processContext, async (options) => {
1384
1450
  const [error] = await catchError((async () => {
1385
1451
  const config = await resolveStudioWebConfig();
1386
- const { FlowEvalRunService } = await import("./flow-eval-run-service-hmfbng78.js");
1452
+ const { FlowEvalRunService } = await import("./flow-eval-run-service-keqkwjg1.js");
1387
1453
  const service = new FlowEvalRunService;
1388
1454
  const target = await resolveRemoteTarget(service, options, config);
1389
- const runs = await service.listRemoteEvalSetRuns(config, target.workloadId, target.evalSet.id);
1455
+ const allRuns = await service.listRemoteEvalSetRuns(config, target.workloadId, target.evalSet.id);
1456
+ const { rows: runs, pagination } = rowWindow(allRuns, options);
1390
1457
  if (runs.length === 0) {
1391
1458
  OutputFormatter.success({
1392
1459
  Result: RESULTS.Success,
1393
1460
  Code: "FlowEvalRunList",
1461
+ Pagination: pagination,
1394
1462
  Data: []
1395
1463
  });
1396
1464
  return;
@@ -1399,6 +1467,7 @@ function registerEvalRunCommand(evalCmd) {
1399
1467
  OutputFormatter.success({
1400
1468
  Result: RESULTS.Success,
1401
1469
  Code: "FlowEvalRunList",
1470
+ Pagination: pagination,
1402
1471
  Data: runs.map((run) => formatEvalSetRunRow(run, evaluators))
1403
1472
  });
1404
1473
  })());
@@ -1406,10 +1475,10 @@ function registerEvalRunCommand(evalCmd) {
1406
1475
  outputError("Failed to list flow evaluation runs", error);
1407
1476
  }
1408
1477
  });
1409
- addTargetOptions(runCmd.command("compare").description("Compare results of two Studio Web Flow evaluation runs").argument("<evalSetRunId>", "First evaluation set run ID").requiredOption("--compare-to <id>", "Second evaluation set run ID to compare against")).examples(FLOW_EVAL_RUN_COMPARE_EXAMPLES).trackedAction(processContext, async (evalSetRunId, options) => {
1478
+ addTargetOptions(runCmd.command("compare").description("Compare results of two Studio Web Flow evaluation runs").argument("<eval-set-run-id>", "First evaluation set run ID").requiredOption("--compare-to <id>", "Second evaluation set run ID to compare against")).examples(FLOW_EVAL_RUN_COMPARE_EXAMPLES).trackedAction(processContext, async (evalSetRunId, options) => {
1410
1479
  const [error] = await catchError((async () => {
1411
1480
  const config = await resolveStudioWebConfig();
1412
- const { FlowEvalRunService } = await import("./flow-eval-run-service-hmfbng78.js");
1481
+ const { FlowEvalRunService } = await import("./flow-eval-run-service-keqkwjg1.js");
1413
1482
  const service = new FlowEvalRunService;
1414
1483
  const target = await resolveRemoteTarget(service, options, config);
1415
1484
  const [runsA, runsB, runMetaA, runMetaB] = await Promise.all([
@@ -1539,10 +1608,10 @@ function registerEvalCommand(program) {
1539
1608
  registerEvalRunCommand(evalCmd);
1540
1609
  }
1541
1610
  function registerEvaluatorCommands(evalCmd) {
1542
- const evaluator = evalCmd.command("evaluator").description("Manage Flow evaluators");
1543
- evaluator.command("add").description("Add an evaluator to the flow project").argument("<name>", "Evaluator name").requiredOption("--type <type>", `Evaluator type: ${evaluatorTypeAliases().join(", ")}`).option("--description <text>", "Evaluator description").option("--target-key <key>", "Target output key", "*").option("--model <model>", "LLM model for LLM judge evaluators").option("--prompt <prompt>", "Custom LLM judge prompt").option("--path <path>", FLOW_EVAL_PATH_OPTION_DESCRIPTION2, ".").trackedAction(processContext, async (name, options) => {
1611
+ const evaluator = evalCmd.command("evaluators").alias("evaluator").description("Manage Flow evaluators");
1612
+ evaluator.command("create").alias("add").description("Add an evaluator to the flow project").argument("<name>", "Evaluator name").requiredOption("--type <type>", `Evaluator type: ${evaluatorTypeAliases().join(", ")}`).option("--description <text>", "Evaluator description").option("--target-key <key>", "Target output key", "*").option("--model <model>", "LLM model for LLM judge evaluators").option("--prompt <prompt>", "Custom LLM judge prompt").option("--path <path>", FLOW_EVAL_PATH_OPTION_DESCRIPTION2, ".").trackedAction(processContext, async (name, options) => {
1544
1613
  const [error] = await catchError((async () => {
1545
- const { FlowEvalService } = await import("./flow-eval-service-7tpvhn9b.js");
1614
+ const { FlowEvalService } = await import("./flow-eval-service-5j1rwx32.js");
1546
1615
  const service = new FlowEvalService;
1547
1616
  const created = await service.addEvaluator(options.path, {
1548
1617
  name,
@@ -1567,15 +1636,17 @@ function registerEvaluatorCommands(evalCmd) {
1567
1636
  outputError2("Failed to add evaluator", error);
1568
1637
  }
1569
1638
  });
1570
- evaluator.command("list").description("List evaluators in a flow project").option("--path <path>", FLOW_EVAL_PATH_OPTION_DESCRIPTION2, ".").trackedAction(processContext, async (options) => {
1639
+ addRowWindowOptions(evaluator.command("list")).description("List evaluators in a flow project").option("--path <path>", FLOW_EVAL_PATH_OPTION_DESCRIPTION2, ".").trackedAction(processContext, async (options) => {
1571
1640
  const [error] = await catchError((async () => {
1572
- const { FlowEvalService } = await import("./flow-eval-service-7tpvhn9b.js");
1641
+ const { FlowEvalService } = await import("./flow-eval-service-5j1rwx32.js");
1573
1642
  const service = new FlowEvalService;
1574
1643
  const evaluators = await service.listEvaluators(options.path);
1644
+ const window = rowWindow(evaluators, options);
1575
1645
  OutputFormatter.success({
1576
1646
  Result: RESULTS.Success,
1577
1647
  Code: "FlowEvalEvaluatorList",
1578
- Data: evaluators.map((item) => ({
1648
+ Pagination: window.pagination,
1649
+ Data: window.rows.map((item) => ({
1579
1650
  Name: item.name ?? String(item.evaluatorConfig.name ?? ""),
1580
1651
  Id: item.id,
1581
1652
  Type: item.evaluatorTypeId,
@@ -1588,9 +1659,9 @@ function registerEvaluatorCommands(evalCmd) {
1588
1659
  outputError2("Failed to list evaluators", error);
1589
1660
  }
1590
1661
  });
1591
- evaluator.command("remove").description("Remove an evaluator from a flow project").argument("<id>", "Evaluator ID, name, or file base name").option("--path <path>", FLOW_EVAL_PATH_OPTION_DESCRIPTION2, ".").trackedAction(processContext, async (id, options) => {
1662
+ evaluator.command("delete").alias("remove").description("Remove an evaluator from a flow project").argument("<id>", "Evaluator ID, name, or file base name").option("--path <path>", FLOW_EVAL_PATH_OPTION_DESCRIPTION2, ".").trackedAction(processContext, async (id, options) => {
1592
1663
  const [error] = await catchError((async () => {
1593
- const { FlowEvalService } = await import("./flow-eval-service-7tpvhn9b.js");
1664
+ const { FlowEvalService } = await import("./flow-eval-service-5j1rwx32.js");
1594
1665
  const service = new FlowEvalService;
1595
1666
  const removed = await service.removeEvaluator(options.path, id);
1596
1667
  if (!removed) {
@@ -1608,11 +1679,11 @@ function registerEvaluatorCommands(evalCmd) {
1608
1679
  });
1609
1680
  }
1610
1681
  function registerEvalSetCommands(evalCmd) {
1611
- const set = evalCmd.command("set").description("Manage evaluation sets");
1612
- set.command("add").description("Create an evaluation set").argument("<name>", "Evaluation set name").option("--evaluators <refs>", "Comma-separated evaluator IDs or file base names (default: all)").option("--entry-point <id>", "Entry point node id — a trigger node id from the .flow file (not a BPMN path), stored as the eval set's selectedEntrypoint; defaults to the flow's trigger. An agent node id creates a node-scoped eval set (evaluates that node in isolation)").option("--path <path>", FLOW_EVAL_PATH_OPTION_DESCRIPTION2, ".").trackedAction(processContext, async (name, options) => {
1682
+ const set = evalCmd.command("sets").alias("set").description("Manage evaluation sets");
1683
+ set.command("create").alias("add").description("Create an evaluation set").argument("<name>", "Evaluation set name").option("--evaluators <refs>", "Comma-separated evaluator IDs or file base names (default: all)").option("--entry-point <id>", "Entry point node id — a trigger node id from the .flow file (not a BPMN path), stored as the eval set's selectedEntrypoint; defaults to the flow's trigger. An agent node id creates a node-scoped eval set (evaluates that node in isolation)").option("--path <path>", FLOW_EVAL_PATH_OPTION_DESCRIPTION2, ".").trackedAction(processContext, async (name, options) => {
1613
1684
  const [error] = await catchError((async () => {
1614
- const { FlowEvalService } = await import("./flow-eval-service-7tpvhn9b.js");
1615
- const { readEvalSetScope, readNodeTargetId } = await import("./flow-eval-node-target-v1gra12k.js");
1685
+ const { FlowEvalService } = await import("./flow-eval-service-5j1rwx32.js");
1686
+ const { readEvalSetScope, readNodeTargetId } = await import("./flow-eval-node-target-fv15zc9f.js");
1616
1687
  const service = new FlowEvalService;
1617
1688
  const created = await service.addEvalSet(options.path, {
1618
1689
  name,
@@ -1637,16 +1708,18 @@ function registerEvalSetCommands(evalCmd) {
1637
1708
  outputError2("Failed to create evaluation set", error);
1638
1709
  }
1639
1710
  });
1640
- set.command("list").description("List evaluation sets").option("--path <path>", FLOW_EVAL_PATH_OPTION_DESCRIPTION2, ".").trackedAction(processContext, async (options) => {
1711
+ addRowWindowOptions(set.command("list")).description("List evaluation sets").option("--path <path>", FLOW_EVAL_PATH_OPTION_DESCRIPTION2, ".").trackedAction(processContext, async (options) => {
1641
1712
  const [error] = await catchError((async () => {
1642
- const { FlowEvalService } = await import("./flow-eval-service-7tpvhn9b.js");
1643
- const { readEvalSetScope, readNodeTargetId } = await import("./flow-eval-node-target-v1gra12k.js");
1713
+ const { FlowEvalService } = await import("./flow-eval-service-5j1rwx32.js");
1714
+ const { readEvalSetScope, readNodeTargetId } = await import("./flow-eval-node-target-fv15zc9f.js");
1644
1715
  const service = new FlowEvalService;
1645
1716
  const sets = await service.listEvalSets(options.path);
1717
+ const window = rowWindow(sets, options);
1646
1718
  OutputFormatter.success({
1647
1719
  Result: RESULTS.Success,
1648
1720
  Code: "FlowEvalSetList",
1649
- Data: sets.map((item) => {
1721
+ Pagination: window.pagination,
1722
+ Data: window.rows.map((item) => {
1650
1723
  const targetNode = readNodeTargetId(item);
1651
1724
  return {
1652
1725
  Name: item.name,
@@ -1664,9 +1737,9 @@ function registerEvalSetCommands(evalCmd) {
1664
1737
  outputError2("Failed to list evaluation sets", error);
1665
1738
  }
1666
1739
  });
1667
- set.command("remove").description("Remove an evaluation set").argument("<id>", "Evaluation set ID, name, or file base name").option("--path <path>", FLOW_EVAL_PATH_OPTION_DESCRIPTION2, ".").trackedAction(processContext, async (id, options) => {
1740
+ set.command("delete").alias("remove").description("Remove an evaluation set").argument("<id>", "Evaluation set ID, name, or file base name").option("--path <path>", FLOW_EVAL_PATH_OPTION_DESCRIPTION2, ".").trackedAction(processContext, async (id, options) => {
1668
1741
  const [error] = await catchError((async () => {
1669
- const { FlowEvalService } = await import("./flow-eval-service-7tpvhn9b.js");
1742
+ const { FlowEvalService } = await import("./flow-eval-service-5j1rwx32.js");
1670
1743
  const service = new FlowEvalService;
1671
1744
  const removed = await service.removeEvalSet(options.path, id);
1672
1745
  if (!removed) {
@@ -1684,13 +1757,13 @@ function registerEvalSetCommands(evalCmd) {
1684
1757
  });
1685
1758
  }
1686
1759
  function registerEvaluationCommands(evalCmd) {
1687
- evalCmd.command("add").description("Add a data point to an evaluation set").argument("<name>", "Data point name").requiredOption("--set <name>", "Evaluation set name or ID").option("--inputs <json>", "Input values as a JSON object").option("--input-file <key=path>", "Attach a file as input <key>; repeatable", collectInputFile, []).option("--expected <json>", "Expected output as a JSON object").option("--criteria <json>", "Per-evaluator criteria JSON object keyed by evaluator id").option("--search-text <text>", "Search text for contains evaluators").option("--path <path>", FLOW_EVAL_PATH_OPTION_DESCRIPTION2, ".").trackedAction(processContext, async (name, options) => {
1760
+ evalCmd.command("create").alias("add").description("Add a data point to an evaluation set").argument("<name>", "Data point name").requiredOption("--set <name>", "Evaluation set name or ID").option("--inputs <json>", "Input values as a JSON object").option("--input-file <key=path>", "Attach a file as input <key>; repeatable", collectInputFile, []).option("--expected <json>", "Expected output as a JSON object").option("--criteria <json>", "Per-evaluator criteria JSON object keyed by evaluator id").option("--search-text <text>", "Search text for contains evaluators").option("--path <path>", FLOW_EVAL_PATH_OPTION_DESCRIPTION2, ".").trackedAction(processContext, async (name, options) => {
1688
1761
  const [error] = await catchError((async () => {
1689
1762
  const inputs = options.inputs === undefined ? {} : parseJsonObject(options.inputs, "--inputs");
1690
1763
  const inputFiles = parseInputFiles(options.inputFile);
1691
1764
  const expectedOutput = options.expected ? parseJsonObject(options.expected, "--expected") : undefined;
1692
1765
  const criteria = options.criteria ? parseCriteriaOption(options.criteria) : undefined;
1693
- const { FlowEvalService } = await import("./flow-eval-service-7tpvhn9b.js");
1766
+ const { FlowEvalService } = await import("./flow-eval-service-5j1rwx32.js");
1694
1767
  const service = new FlowEvalService;
1695
1768
  const evaluation = await service.addEvaluation(options.path, options.set, {
1696
1769
  name,
@@ -1715,15 +1788,17 @@ function registerEvaluationCommands(evalCmd) {
1715
1788
  outputError2("Failed to add evaluation data point", error);
1716
1789
  }
1717
1790
  });
1718
- evalCmd.command("list").description("List data points in an evaluation set").requiredOption("--set <name>", "Evaluation set name or ID").option("--path <path>", FLOW_EVAL_PATH_OPTION_DESCRIPTION2, ".").trackedAction(processContext, async (options) => {
1791
+ addRowWindowOptions(evalCmd.command("list")).description("List data points in an evaluation set").requiredOption("--set <name>", "Evaluation set name or ID").option("--path <path>", FLOW_EVAL_PATH_OPTION_DESCRIPTION2, ".").trackedAction(processContext, async (options) => {
1719
1792
  const [error] = await catchError((async () => {
1720
- const { FlowEvalService } = await import("./flow-eval-service-7tpvhn9b.js");
1793
+ const { FlowEvalService } = await import("./flow-eval-service-5j1rwx32.js");
1721
1794
  const service = new FlowEvalService;
1722
1795
  const evaluations = await service.listEvaluations(options.path, options.set);
1796
+ const window = rowWindow(evaluations, options);
1723
1797
  OutputFormatter.success({
1724
1798
  Result: RESULTS.Success,
1725
1799
  Code: "FlowEvalList",
1726
- Data: evaluations.map((item) => ({
1800
+ Pagination: window.pagination,
1801
+ Data: window.rows.map((item) => ({
1727
1802
  Name: item.name,
1728
1803
  Id: item.id,
1729
1804
  Inputs: JSON.stringify(item.inputs),
@@ -1736,9 +1811,9 @@ function registerEvaluationCommands(evalCmd) {
1736
1811
  outputError2("Failed to list evaluation data points", error);
1737
1812
  }
1738
1813
  });
1739
- evalCmd.command("remove").description("Remove a data point from an evaluation set").argument("<id>", "Data point ID or name").requiredOption("--set <name>", "Evaluation set name or ID").option("--path <path>", FLOW_EVAL_PATH_OPTION_DESCRIPTION2, ".").trackedAction(processContext, async (id, options) => {
1814
+ evalCmd.command("delete").alias("remove").description("Remove a data point from an evaluation set").argument("<id>", "Data point ID or name").requiredOption("--set <name>", "Evaluation set name or ID").option("--path <path>", FLOW_EVAL_PATH_OPTION_DESCRIPTION2, ".").trackedAction(processContext, async (id, options) => {
1740
1815
  const [error] = await catchError((async () => {
1741
- const { FlowEvalService } = await import("./flow-eval-service-7tpvhn9b.js");
1816
+ const { FlowEvalService } = await import("./flow-eval-service-5j1rwx32.js");
1742
1817
  const service = new FlowEvalService;
1743
1818
  const removed = await service.removeEvaluation(options.path, options.set, id);
1744
1819
  if (!removed) {
@@ -1756,8 +1831,8 @@ function registerEvaluationCommands(evalCmd) {
1756
1831
  });
1757
1832
  }
1758
1833
  function registerSimulationCommands(evalCmd) {
1759
- const simulation = evalCmd.command("simulation").description("Manage simulations on eval data points");
1760
- simulation.command("add").description("Add or update a simulation on a data point").argument("<component-id>", "Component ID to simulate").requiredOption("--set <name>", "Evaluation set name or ID").requiredOption("--data-point <id>", "Data point name or ID").requiredOption("--strategy <strategy>", "Simulation strategy: Static or Llm").option("--component-type <type>", "Component type (defaults to Node when --parent is used)").option("--component-description <text>", "Component description").option("--simulation-instructions <text>", "Simulation instructions (for Llm strategy)").option("--mock-value <json>", "Mock output value as JSON (for Static strategy)").option("--parent <component-id>", "Parent agent component ID. When set, the simulation is added as a child tool simulation on the parent agent node.").option("--path <path>", FLOW_EVAL_PATH_OPTION_DESCRIPTION2, ".").trackedAction(processContext, async (componentId, options) => {
1834
+ const simulation = evalCmd.command("simulations").alias("simulation").description("Manage simulations on eval data points");
1835
+ simulation.command("create").alias("add").description("Add or update a simulation on a data point").argument("<component-id>", "Component ID to simulate").requiredOption("--set <name>", "Evaluation set name or ID").requiredOption("--data-point <id>", "Data point name or ID").requiredOption("--strategy <strategy>", "Simulation strategy: Static or Llm").option("--component-type <type>", "Component type (defaults to Node when --parent is used)").option("--component-description <text>", "Component description").option("--simulation-instructions <text>", "Simulation instructions (for Llm strategy)").option("--mock-value <json>", "Mock output value as JSON (for Static strategy)").option("--parent <component-id>", "Parent agent component ID. When set, the simulation is added as a child tool simulation on the parent agent node.").option("--path <path>", FLOW_EVAL_PATH_OPTION_DESCRIPTION2, ".").trackedAction(processContext, async (componentId, options) => {
1761
1836
  const [error] = await catchError((async () => {
1762
1837
  const strategy = options.strategy;
1763
1838
  if (strategy !== "Static" && strategy !== "Llm") {
@@ -1782,7 +1857,7 @@ function registerSimulationCommands(evalCmd) {
1782
1857
  simulationInstruction: options.simulationInstructions,
1783
1858
  mockValue
1784
1859
  };
1785
- const { FlowEvalService } = await import("./flow-eval-service-7tpvhn9b.js");
1860
+ const { FlowEvalService } = await import("./flow-eval-service-5j1rwx32.js");
1786
1861
  const service = new FlowEvalService;
1787
1862
  if (options.parent !== undefined) {
1788
1863
  const { simulation: created, warning } = await service.addChildSimulation(options.path, options.set, options.dataPoint, options.parent, simulation2);
@@ -1822,15 +1897,17 @@ function registerSimulationCommands(evalCmd) {
1822
1897
  outputError2("Failed to add simulation", error);
1823
1898
  }
1824
1899
  });
1825
- simulation.command("list").description("List simulations on a data point").requiredOption("--set <name>", "Evaluation set name or ID").requiredOption("--data-point <id>", "Data point name or ID").option("--parent <component-id>", "Parent agent component ID. When set, lists child tool simulations on the parent agent node.").option("--path <path>", FLOW_EVAL_PATH_OPTION_DESCRIPTION2, ".").trackedAction(processContext, async (options) => {
1900
+ addRowWindowOptions(simulation.command("list")).description("List simulations on a data point").requiredOption("--set <name>", "Evaluation set name or ID").requiredOption("--data-point <id>", "Data point name or ID").option("--parent <component-id>", "Parent agent component ID. When set, lists child tool simulations on the parent agent node.").option("--path <path>", FLOW_EVAL_PATH_OPTION_DESCRIPTION2, ".").trackedAction(processContext, async (options) => {
1826
1901
  const [error] = await catchError((async () => {
1827
- const { FlowEvalService } = await import("./flow-eval-service-7tpvhn9b.js");
1902
+ const { FlowEvalService } = await import("./flow-eval-service-5j1rwx32.js");
1828
1903
  const service = new FlowEvalService;
1829
1904
  const simulations = options.parent !== undefined ? await service.listChildSimulations(options.path, options.set, options.dataPoint, options.parent) : await service.listSimulations(options.path, options.set, options.dataPoint);
1905
+ const window = rowWindow(simulations, options);
1830
1906
  OutputFormatter.success({
1831
1907
  Result: RESULTS.Success,
1832
1908
  Code: options.parent !== undefined ? "FlowEvalChildSimulationList" : "FlowEvalSimulationList",
1833
- Data: simulations.map((s) => ({
1909
+ Pagination: window.pagination,
1910
+ Data: window.rows.map((s) => ({
1834
1911
  ComponentId: s.componentId,
1835
1912
  ComponentType: s.componentType,
1836
1913
  ComponentDescription: s.componentDescription ?? "-",
@@ -1844,9 +1921,9 @@ function registerSimulationCommands(evalCmd) {
1844
1921
  outputError2("Failed to list simulations", error);
1845
1922
  }
1846
1923
  });
1847
- simulation.command("remove").description("Remove a simulation from a data point").argument("<component-id>", "Component ID to remove").requiredOption("--set <name>", "Evaluation set name or ID").requiredOption("--data-point <id>", "Data point name or ID").option("--parent <component-id>", "Parent agent component ID. When set, removes a child tool simulation from the parent agent node.").option("--path <path>", FLOW_EVAL_PATH_OPTION_DESCRIPTION2, ".").trackedAction(processContext, async (componentId, options) => {
1924
+ simulation.command("delete").alias("remove").description("Remove a simulation from a data point").argument("<component-id>", "Component ID to remove").requiredOption("--set <name>", "Evaluation set name or ID").requiredOption("--data-point <id>", "Data point name or ID").option("--parent <component-id>", "Parent agent component ID. When set, removes a child tool simulation from the parent agent node.").option("--path <path>", FLOW_EVAL_PATH_OPTION_DESCRIPTION2, ".").trackedAction(processContext, async (componentId, options) => {
1848
1925
  const [error] = await catchError((async () => {
1849
- const { FlowEvalService } = await import("./flow-eval-service-7tpvhn9b.js");
1926
+ const { FlowEvalService } = await import("./flow-eval-service-5j1rwx32.js");
1850
1927
  const service = new FlowEvalService;
1851
1928
  const removed = options.parent !== undefined ? await service.removeChildSimulation(options.path, options.set, options.dataPoint, options.parent, componentId) : await service.removeSimulation(options.path, options.set, options.dataPoint, componentId);
1852
1929
  if (!removed) {
@@ -1913,7 +1990,7 @@ function parseSchemaOption(raw) {
1913
1990
  var FLOW_HITL_ADD_EXAMPLES = [
1914
1991
  {
1915
1992
  Description: "Add a bare HITL node with no schema fields",
1916
- Command: "uip maestro flow hitl add workflow.flow",
1993
+ Command: "uip maestro flow hitl create workflow.flow",
1917
1994
  Output: {
1918
1995
  Code: "HitlNodeAdded",
1919
1996
  Data: {
@@ -1926,7 +2003,7 @@ var FLOW_HITL_ADD_EXAMPLES = [
1926
2003
  },
1927
2004
  {
1928
2005
  Description: "Add a HITL node with label, priority, and group assignee",
1929
- Command: 'uip maestro flow hitl add workflow.flow --label "Invoice Review" --priority High --assignee finance-approvers',
2006
+ Command: 'uip maestro flow hitl create workflow.flow --label "Invoice Review" --priority High --assignee finance-approvers',
1930
2007
  Output: {
1931
2008
  Code: "HitlNodeAdded",
1932
2009
  Data: {
@@ -1939,7 +2016,7 @@ var FLOW_HITL_ADD_EXAMPLES = [
1939
2016
  },
1940
2017
  {
1941
2018
  Description: "Add a HITL node with full schema (inputs, outputs, and outcomes)",
1942
- Command: `uip maestro flow hitl add workflow.flow --label "Approval" --schema '{"inputs":[{"name":"invoiceId","binding":"fetchInvoice1.result.invoiceId"}],"outputs":[{"name":"decision","required":true}],"outcomes":[{"name":"Approve"},{"name":"Reject"}]}'`,
2019
+ Command: `uip maestro flow hitl create workflow.flow --label "Approval" --schema '{"inputs":[{"name":"invoiceId","binding":"fetchInvoice1.result.invoiceId"}],"outputs":[{"name":"decision","required":true}],"outcomes":[{"name":"Approve"},{"name":"Reject"}]}'`,
1943
2020
  Output: {
1944
2021
  Code: "HitlNodeAdded",
1945
2022
  Data: {
@@ -1953,7 +2030,7 @@ var FLOW_HITL_ADD_EXAMPLES = [
1953
2030
  ];
1954
2031
  var registerHitlCommand = (program) => {
1955
2032
  const hitl = program.command("hitl").description("Add HITL (Human-in-the-Loop) nodes to a Flow file");
1956
- hitl.command("add").description("Add a Human-in-the-Loop node to a .flow file. Pauses flow execution and waits for a human to complete a task in Action Center.").argument("<file>", "Path to the .flow file").option("--schema <json>", 'Task schema. inputs pre-fill from flow variables (add "binding":"varName"), outputs write back (add "variable":"varName"). ' + `e.g. '{"title":"Invoice Approval","inputs":[{"name":"invoiceId"}],"outputs":[{"name":"decision","variable":"approvalDecision","required":true}],"outcomes":[{"name":"Approve"},{"name":"Reject"}]}'`).option("--priority <level>", "Task priority: Low, Medium, High (default: Low)").option("--position <x,y>", "Canvas position for the node (e.g. 250,300)").option("--label <label>", "Display label for the node").option("--assignee <email-or-group>", "Assignment criteria: user email (e.g. reviewer@company.com) or group name (e.g. finance-approvers)").examples(FLOW_HITL_ADD_EXAMPLES).trackedAction(processContext, async (file, options) => {
2033
+ hitl.command("create").alias("add").description("Add a Human-in-the-Loop node to a .flow file. Pauses flow execution and waits for a human to complete a task in Action Center.").argument("<file>", "Path to the .flow file").option("--schema <json>", 'Task schema. inputs pre-fill from flow variables (add "binding":"varName"), outputs write back (add "variable":"varName"). ' + `e.g. '{"title":"Invoice Approval","inputs":[{"name":"invoiceId"}],"outputs":[{"name":"decision","variable":"approvalDecision","required":true}],"outcomes":[{"name":"Approve"},{"name":"Reject"}]}'`).option("--priority <level>", "Task priority: Low, Medium, High (default: Low)").option("--position <x,y>", "Canvas position for the node (e.g. 250,300)").option("--label <label>", "Display label for the node").option("--assignee <email-or-group>", "Assignment criteria: user email (e.g. reviewer@company.com) or group name (e.g. finance-approvers)").examples(FLOW_HITL_ADD_EXAMPLES).trackedAction(processContext, async (file, options) => {
1957
2034
  if (options.priority !== undefined && !VALID_PRIORITIES.includes(options.priority)) {
1958
2035
  OutputFormatter.error({
1959
2036
  Result: RESULTS.Failure,
@@ -1991,7 +2068,7 @@ var registerHitlCommand = (program) => {
1991
2068
  }
1992
2069
  schema = parsed;
1993
2070
  }
1994
- const { addHitlNode } = await import("./hitl-service-pc3xwzxh.js");
2071
+ const { addHitlNode } = await import("./hitl-service-zsnxqkhb.js");
1995
2072
  const [error, result] = await catchError(addHitlNode(file, {
1996
2073
  schema,
1997
2074
  priority: options.priority,
@@ -2084,8 +2161,8 @@ Packing or uploading the solution will sync solution resources automatically.`
2084
2161
  ];
2085
2162
  var registerInitCommand = (program) => {
2086
2163
  program.command("init").description("Create a new Flow project with boilerplate files. If run outside an existing solution, a parent '<name>Solution' is scaffolded automatically and the flow project is created inside it. If run inside an existing solution, the project is added to that solution.").argument("<name>", "Flow project name").option("--force", "Force initialization even if target directory exists and is not empty").option("--skip-solution-registration", "Do not auto-register this project in the surrounding solution").option("--automate", "Create a Maestro Automate project. Same Flow project and the same commands — it only changes the runtime profile written into operate.json.").option("--sdk-source [file]", "Also write the builder-SDK source: decompile the new .flow into <project>/.flow-sdk/<name>.flow.ts, or into [file] (relative to the current directory), creating its folder. Same as running 'uip maestro flow decompile <name>.flow -o <file> --no-pipeline' after init. Requires @uipath/maestro-builder-sdk.").examples(FLOW_INIT_EXAMPLES).trackedAction(processContext, async (name, options) => {
2087
- const { flowInitAsync, FlowInitSdkSourceError } = await import("./flow-init-service-jawbgb3b.js");
2088
- const { RuntimeProfile } = await import("./maestro-automate-entry-4qg1z689.js");
2164
+ const { flowInitAsync, FlowInitSdkSourceError } = await import("./flow-init-service-pz2b02z9.js");
2165
+ const { RuntimeProfile } = await import("./maestro-automate-entry-wycktqqt.js");
2089
2166
  const [error, result] = await catchError(flowInitAsync(name, {
2090
2167
  force: options.force,
2091
2168
  skipRegistration: options.skipSolutionRegistration === true,
@@ -2160,7 +2237,7 @@ var DEFAULT_JOB_LIST_ORDER_BY = "Id desc";
2160
2237
  var FLOW_JOB_LIST_EXAMPLES = [
2161
2238
  {
2162
2239
  Description: "List recent Flow jobs in a folder",
2163
- Command: "uip maestro flow job list --folder-key c3d4e5f6-0000-0000-0000-000000000001 --limit 2",
2240
+ Command: "uip maestro flow jobs list --folder-key c3d4e5f6-0000-0000-0000-000000000001 --limit 2",
2164
2241
  Output: {
2165
2242
  Code: "FlowJobList",
2166
2243
  Data: [
@@ -2179,7 +2256,7 @@ var FLOW_JOB_LIST_EXAMPLES = [
2179
2256
  var FLOW_JOB_STATUS_EXAMPLES = [
2180
2257
  {
2181
2258
  Description: "Get detailed status of a flow job",
2182
- Command: "uip maestro flow job status b2c3d4e5-0000-0000-0000-000000000001",
2259
+ Command: "uip maestro flow jobs status b2c3d4e5-0000-0000-0000-000000000001",
2183
2260
  Output: {
2184
2261
  Code: "FlowJobStatus",
2185
2262
  Data: {
@@ -2241,9 +2318,9 @@ function formatFlowJob(job) {
2241
2318
  };
2242
2319
  }
2243
2320
  function registerJobCommand(program) {
2244
- const jobCmd = program.command("job").description("Manage Flow jobs");
2321
+ const jobCmd = program.command("jobs").alias("job").description("Manage Flow jobs");
2245
2322
  jobCmd.command("list").description("List Flow jobs in a folder").addOption(createHiddenDeprecatedTenantOption("-t, --tenant <tenant-name>")).option("--folder-key <key>", "Folder key (GUID, defaults to authenticated folder)").option("--state <state>", `Filter by job state (${VALID_JOB_STATES.join(", ")})`).option("--process-name <name>", "Filter by Flow process name (contains match)").option("-l, --limit <number>", "Number of items to return", DEFAULT_JOB_LIST_LIMIT).option("--offset <number>", "Number of items to skip", DEFAULT_JOB_LIST_OFFSET).option("--sort-by <field>", "Sort results by field (e.g., 'Id desc')", DEFAULT_JOB_LIST_ORDER_BY).option("--all-fields", "Return all fields from the API response instead of a curated summary").option("--login-validity <minutes>", "Minimum minutes before token expiration to trigger a refresh (default: 10)", (value) => Number.parseInt(value, 10), 10).examples(FLOW_JOB_LIST_EXAMPLES).trackedAction(processContext, async (options) => {
2246
- const { getLoginStatusAsync } = await import("./index-j2r3jb6c.js");
2323
+ const { getLoginStatusAsync } = await import("./index-xq6ajhgq.js");
2247
2324
  const [loginError, loginStatus] = await catchError(getLoginStatusAsync({
2248
2325
  ensureTokenValidityMinutes: options.loginValidity
2249
2326
  }));
@@ -2316,7 +2393,7 @@ function registerJobCommand(program) {
2316
2393
  tenantId: loginStatus.tenantId,
2317
2394
  baseUrl: loginStatus.baseUrl
2318
2395
  };
2319
- const { listFlowJobs } = await import("./flow-api-y70m8n82.js");
2396
+ const { listFlowJobs } = await import("./flow-api-qj89cv18.js");
2320
2397
  const [listError, jobs] = await catchError(listFlowJobs(config, {
2321
2398
  state,
2322
2399
  processName: normalizedOptions.processName,
@@ -2347,7 +2424,7 @@ function registerJobCommand(program) {
2347
2424
  });
2348
2425
  });
2349
2426
  jobCmd.command("traces").description("Stream traces for a running job").argument("<job-key>", "Job key (GUID from run command)").addOption(createHiddenDeprecatedTenantOption("-t, --tenant <tenant-name>")).option("--poll-interval <ms>", "Polling interval in milliseconds", "2000").option("--traces-service <name>", "Traces service name (default: llmopstenant_)", "llmopstenant_").option("--pretty", "Show traces in human-readable format instead of raw JSON").option("--login-validity <minutes>", "Minimum minutes before token expiration to trigger a refresh (default: 10)", parseInt, 10).trackedAction(processContext, async (jobKey, options) => {
2350
- const { getLoginStatusAsync } = await import("./index-j2r3jb6c.js");
2427
+ const { getLoginStatusAsync } = await import("./index-xq6ajhgq.js");
2351
2428
  const [loginError, loginStatus] = await catchError(getLoginStatusAsync({
2352
2429
  ensureTokenValidityMinutes: options.loginValidity
2353
2430
  }));
@@ -2403,8 +2480,8 @@ function registerJobCommand(program) {
2403
2480
  const pollSeconds = pollIntervalMs / 1000;
2404
2481
  logger.info(`Streaming traces for job: ${jobKey}
2405
2482
  Polling every ${pollSeconds}s...`);
2406
- const { formatTraceLine } = await import("./shared-utils-611ah3tq.js");
2407
- const { streamJobTraces } = await import("./flow-api-y70m8n82.js");
2483
+ const { formatTraceLine } = await import("./shared-utils-w643sejd.js");
2484
+ const { streamJobTraces } = await import("./flow-api-qj89cv18.js");
2408
2485
  const [tracesError, result] = await catchError(streamJobTraces(config, jobKey, {
2409
2486
  onTrace: (trace) => {
2410
2487
  if (options.pretty) {
@@ -2442,7 +2519,7 @@ function registerJobCommand(program) {
2442
2519
  processContext.exit(result.success ? 0 : 1);
2443
2520
  });
2444
2521
  jobCmd.command("status").description("Get detailed status of a Flow job").argument("<job-key>", "Job key (GUID from run command)").addOption(createHiddenDeprecatedTenantOption("-t, --tenant <tenant-name>")).option("--folder-key <key>", "Folder key (GUID from list command, defaults to authenticated folder)").option("--detailed", "Show full response with all fields").option("--login-validity <minutes>", "Minimum minutes before token expiration to trigger a refresh (default: 10)", parseInt, 10).examples(FLOW_JOB_STATUS_EXAMPLES).trackedAction(processContext, async (jobKey, options) => {
2445
- const { getLoginStatusAsync } = await import("./index-j2r3jb6c.js");
2522
+ const { getLoginStatusAsync } = await import("./index-xq6ajhgq.js");
2446
2523
  const [loginError, loginStatus] = await catchError(getLoginStatusAsync({
2447
2524
  ensureTokenValidityMinutes: options.loginValidity
2448
2525
  }));
@@ -2484,7 +2561,7 @@ function registerJobCommand(program) {
2484
2561
  tenantId: loginStatus.tenantId,
2485
2562
  baseUrl: loginStatus.baseUrl
2486
2563
  };
2487
- const { getJobStatusDetailed } = await import("./flow-api-y70m8n82.js");
2564
+ const { getJobStatusDetailed } = await import("./flow-api-qj89cv18.js");
2488
2565
  const [statusError, status] = await catchError(getJobStatusDetailed(config, jobKey));
2489
2566
  if (statusError) {
2490
2567
  OutputFormatter.error({
@@ -2568,7 +2645,7 @@ var FLOW_MIGRATE_EXAMPLES = [
2568
2645
  ];
2569
2646
  var registerMigrateCommand = (program) => {
2570
2647
  program.command("migrate").description("Migrate a .flow file to the current workflow and node schema versions").argument("<file>", "Path to the .flow file").option("--dry-run", "Show what would change without writing the file").option("--no-include-optional", "Skip optional node migrations (e.g. typeVersion normalization). Default: optional migrations are applied.").examples(FLOW_MIGRATE_EXAMPLES).trackedAction(processContext, async (file, options) => {
2571
- const { migrateFlow } = await import("./flow-migrate-service-3vyydvyp.js");
2648
+ const { migrateFlow } = await import("./flow-migrate-service-f0cavrsr.js");
2572
2649
  const [error, result] = await catchError(migrateFlow(file, {
2573
2650
  dryRun: options.dryRun,
2574
2651
  includeOptional: options.includeOptional
@@ -2609,7 +2686,7 @@ var registerMigrateCommand = (program) => {
2609
2686
  var NODE_ADD_EXAMPLES = [
2610
2687
  {
2611
2688
  Description: "Add a manual trigger node to a flow",
2612
- Command: 'uip maestro flow node add flow.json core.trigger.manual --label "Start"',
2689
+ Command: 'uip maestro flow nodes create flow.json core.trigger.manual --label "Start"',
2613
2690
  Output: {
2614
2691
  Code: "NodeAddSuccess",
2615
2692
  Data: {
@@ -2627,7 +2704,7 @@ var NODE_ADD_EXAMPLES = [
2627
2704
  var NODE_CONFIGURE_EXAMPLES = [
2628
2705
  {
2629
2706
  Description: "Configure a connector node with connection details",
2630
- Command: `uip maestro flow node configure flow.json node_a1b2c3d4 --detail '{"connectionId":"b2c3d4e5-0000-0000-0000-000000000001","folderKey":"c3d4e5f6-0000-0000-0000-000000000001","method":"POST","endpoint":"/issues"}'`,
2707
+ Command: `uip maestro flow nodes configure flow.json node_a1b2c3d4 --detail '{"connectionId":"b2c3d4e5-0000-0000-0000-000000000001","folderKey":"c3d4e5f6-0000-0000-0000-000000000001","method":"POST","endpoint":"/issues"}'`,
2631
2708
  Output: {
2632
2709
  Code: "NodeConfigureSuccess",
2633
2710
  Data: {
@@ -2639,7 +2716,7 @@ var NODE_CONFIGURE_EXAMPLES = [
2639
2716
  },
2640
2717
  {
2641
2718
  Description: "Configure a generic connector activity (e.g. SFDC InsertRecord) — requires objectName",
2642
- Command: `uip maestro flow node configure flow.json node_a1b2c3d4 --detail '{"connectionId":"b2c3d4e5-0000-0000-0000-000000000001","folderKey":"c3d4e5f6-0000-0000-0000-000000000001","method":"POST","endpoint":"/Account","objectName":"Account","bodyParameters":{"Name":"Acme Corp"}}'`,
2719
+ Command: `uip maestro flow nodes configure flow.json node_a1b2c3d4 --detail '{"connectionId":"b2c3d4e5-0000-0000-0000-000000000001","folderKey":"c3d4e5f6-0000-0000-0000-000000000001","method":"POST","endpoint":"/Account","objectName":"Account","bodyParameters":{"Name":"Acme Corp"}}'`,
2643
2720
  Output: {
2644
2721
  Code: "NodeConfigureSuccess",
2645
2722
  Data: {
@@ -2651,7 +2728,7 @@ var NODE_CONFIGURE_EXAMPLES = [
2651
2728
  },
2652
2729
  {
2653
2730
  Description: "Configure a param bound to another node's output — must use $vars., not the bare node id",
2654
- Command: `uip maestro flow node configure flow.json node_a1b2c3d4 --detail '{"connectionId":"b2c3d4e5-0000-0000-0000-000000000001","folderKey":"c3d4e5f6-0000-0000-0000-000000000001","method":"POST","endpoint":"/Account","bodyParameters":{"recordId":"=js:$vars.createEntityRecord1.output.Id"}}'`,
2731
+ Command: `uip maestro flow nodes configure flow.json node_a1b2c3d4 --detail '{"connectionId":"b2c3d4e5-0000-0000-0000-000000000001","folderKey":"c3d4e5f6-0000-0000-0000-000000000001","method":"POST","endpoint":"/Account","bodyParameters":{"recordId":"=js:$vars.createEntityRecord1.output.Id"}}'`,
2655
2732
  Output: {
2656
2733
  Code: "NodeConfigureSuccess",
2657
2734
  Data: {
@@ -2665,7 +2742,7 @@ var NODE_CONFIGURE_EXAMPLES = [
2665
2742
  var NODE_LIST_EXAMPLES = [
2666
2743
  {
2667
2744
  Description: "List all nodes in a flow file",
2668
- Command: "uip maestro flow node list flow.json",
2745
+ Command: "uip maestro flow nodes list flow.json",
2669
2746
  Output: {
2670
2747
  Code: "NodeListSuccess",
2671
2748
  Data: {
@@ -2681,7 +2758,7 @@ var NODE_LIST_EXAMPLES = [
2681
2758
  var NODE_DELETE_EXAMPLES = [
2682
2759
  {
2683
2760
  Description: "Delete a node and its connections from a flow",
2684
- Command: "uip maestro flow node delete flow.json node_a1b2c3d4",
2761
+ Command: "uip maestro flow nodes delete flow.json node_a1b2c3d4",
2685
2762
  Output: {
2686
2763
  Code: "NodeDeleteSuccess",
2687
2764
  Data: {
@@ -2701,7 +2778,7 @@ var NODE_DELETE_EXAMPLES = [
2701
2778
  var NODE_REMOVE_EXAMPLES = [
2702
2779
  {
2703
2780
  Description: "Remove a node and its connections from a flow",
2704
- Command: "uip maestro flow node remove flow.json node_a1b2c3d4",
2781
+ Command: "uip maestro flow nodes remove flow.json node_a1b2c3d4",
2705
2782
  Output: {
2706
2783
  Code: "NodeRemoveSuccess",
2707
2784
  Data: {
@@ -2731,10 +2808,10 @@ function parsePosition2(value) {
2731
2808
  return { x, y };
2732
2809
  }
2733
2810
  function getDeleteNodeInstructions(file) {
2734
- return `Check that "${file}" exists and run 'uip maestro flow node list ${file}' to find a valid node ID, then retry.`;
2811
+ return `Check that "${file}" exists and run 'uip maestro flow nodes list ${file}' to find a valid node ID, then retry.`;
2735
2812
  }
2736
2813
  async function runDeleteNode(file, nodeId, code) {
2737
- const { deleteNodeFromFlow } = await import("./node-service-3j6w3z2k.js");
2814
+ const { deleteNodeFromFlow } = await import("./node-service-gsq162p5.js");
2738
2815
  const normalizedNodeId = nodeId.trim();
2739
2816
  const [error, result] = await catchError(deleteNodeFromFlow(file, normalizedNodeId));
2740
2817
  if (error) {
@@ -2760,10 +2837,10 @@ async function runDeleteNode(file, nodeId, code) {
2760
2837
  });
2761
2838
  }
2762
2839
  var registerNodeCommand = (program) => {
2763
- const node = program.command("node").description("Manage nodes in a Flow file");
2764
- node.command("add").description(`Add a node to a Flow file.
2765
- ` + "For connector nodes (type uipath.connector), do NOT pass --input here — " + `run 'node configure' afterwards to supply connection and endpoint details.
2766
- Example: uip maestro flow node add flow.flow uipath.connector.jira.createIssue --label 'Create Jira Issue'`).argument("<file>", "Path to the .flow file").argument("<node-type>", "Node type identifier (e.g. core.trigger.manual)").option("-i, --input <json>", `JSON object of input values to set on the node (e.g. '{"script": "..."}')`).option("--position <x,y>", "Node position in the canvas (e.g. 250,150)").option("--label <label>", "Display label for the node").option("--source <uuid>", "Source UUID for nodes whose manifest declares a source dependency. Use the agent's ProjectId (inline agent nodes) or the resource id from the parent inline agent's resources[] (agent-tool resource nodes). Populates inputs.source.").option("--parent <node-id>", "Id of the existing node that should contain this node. Set when authoring a loop body whose containment cannot be " + "inferred from edges alone — typically the id of a " + "core.logic.loop node.").option("--metadata <file>", "Non-catalog activity only: the generated activity metadata (<Name>.json from 'uip is activities metadata generate'). The node definition is built from it instead of the registry; the node type must be uipath.connector.custom.<connector-key>.<slug>. Requires --scripts.").option("--scripts <dir>", "Non-catalog activity only: directory holding <scriptRef>.js for the action and every lookup the metadata references; the sources are embedded in the node. Requires --metadata.").examples(NODE_ADD_EXAMPLES).trackedAction(processContext, async (file, nodeType, options) => {
2840
+ const node = program.command("nodes").alias("node").description("Manage nodes in a Flow file");
2841
+ node.command("create").alias("add").description(`Add a node to a Flow file.
2842
+ ` + "For connector nodes (type uipath.connector), do NOT pass --input here — " + `run 'nodes configure' afterwards to supply connection and endpoint details.
2843
+ Example: uip maestro flow nodes create flow.flow uipath.connector.jira.createIssue --label 'Create Jira Issue'`).argument("<file>", "Path to the .flow file").argument("<node-type>", "Node type identifier (e.g. core.trigger.manual)").option("-i, --input <json>", `JSON object of input values to set on the node (e.g. '{"script": "..."}')`).option("--position <x,y>", "Node position in the canvas (e.g. 250,150)").option("--label <label>", "Display label for the node").option("--source <uuid>", "Source UUID for nodes whose manifest declares a source dependency. Use the agent's ProjectId (inline agent nodes) or the resource id from the parent inline agent's resources[] (agent-tool resource nodes). Populates inputs.source.").option("--parent <node-id>", "Id of the existing node that should contain this node. Set when authoring a loop body whose containment cannot be " + "inferred from edges alone — typically the id of a " + "core.logic.loop node.").option("--metadata <file>", "Non-catalog activity only: the generated activity metadata (<Name>.json from 'uip is activities metadata generate'). The node definition is built from it instead of the registry; the node type must be uipath.connector.custom.<connector-key>.<slug>. Requires --scripts.").option("--scripts <dir>", "Non-catalog activity only: directory holding <scriptRef>.js for the action and every lookup the metadata references; the sources are embedded in the node. Requires --metadata.").examples(NODE_ADD_EXAMPLES).trackedAction(processContext, async (file, nodeType, options) => {
2767
2844
  if (options.metadata === undefined !== (options.scripts === undefined)) {
2768
2845
  OutputFormatter.error({
2769
2846
  Result: RESULTS.Failure,
@@ -2820,7 +2897,7 @@ Example: uip maestro flow node add flow.flow uipath.connector.jira.createIssue -
2820
2897
  NodeTypeNotEnabledError,
2821
2898
  NodeTypeNotFoundError,
2822
2899
  SourceRequiredError
2823
- } = await import("./node-service-3j6w3z2k.js");
2900
+ } = await import("./node-service-gsq162p5.js");
2824
2901
  const [error, result] = await catchError(addNodeToFlow(file, nodeType, {
2825
2902
  position,
2826
2903
  label: options.label,
@@ -2865,8 +2942,8 @@ Example: uip maestro flow node add flow.flow uipath.connector.jira.createIssue -
2865
2942
  });
2866
2943
  });
2867
2944
  node.command("configure").description(`Configure a connector or managed HTTP node with connection and method details.
2868
- ` + `Run this after 'node add' — populates inputs.detail and creates workflow bindings.
2869
- ` + `Use 'node list' to find the node ID.
2945
+ ` + `Run this after 'nodes create' — populates inputs.detail and creates workflow bindings.
2946
+ ` + `Use 'nodes list' to find the node ID.
2870
2947
 
2871
2948
  CONNECTOR ACTIVITIES (type uipath.connector.*, NOT *.trigger.*)
2872
2949
  Required: connectionId, folderKey, method, endpoint.
@@ -2947,7 +3024,7 @@ MANAGED HTTP NODES (type core.action.http.v2)
2947
3024
  processContext.exit(1);
2948
3025
  return;
2949
3026
  }
2950
- const { configureConnectorNode, InvalidDetailError } = await import("./connector-service-8yk65k3n.js");
3027
+ const { configureConnectorNode, InvalidDetailError } = await import("./connector-service-yz5c6xag.js");
2951
3028
  const [error, result] = await catchError(configureConnectorNode(file, nodeId, parsed));
2952
3029
  if (error) {
2953
3030
  const message = error instanceof InvalidDetailError ? "Invalid --detail" : "Error configuring node";
@@ -2972,8 +3049,8 @@ MANAGED HTTP NODES (type core.action.http.v2)
2972
3049
  }
2973
3050
  });
2974
3051
  });
2975
- node.command("list").description("List all nodes in a Flow file").argument("<file>", "Path to the .flow file").examples(NODE_LIST_EXAMPLES).trackedAction(processContext, async (file) => {
2976
- const { listNodesInFlow } = await import("./node-service-3j6w3z2k.js");
3052
+ addRowWindowOptions(node.command("list")).description("List all nodes in a Flow file").argument("<file>", "Path to the .flow file").examples(NODE_LIST_EXAMPLES).trackedAction(processContext, async (file, options) => {
3053
+ const { listNodesInFlow } = await import("./node-service-gsq162p5.js");
2977
3054
  const [error, result] = await catchError(listNodesInFlow(file));
2978
3055
  if (error) {
2979
3056
  OutputFormatter.error({
@@ -2984,21 +3061,23 @@ MANAGED HTTP NODES (type core.action.http.v2)
2984
3061
  processContext.exit(1);
2985
3062
  return;
2986
3063
  }
3064
+ const window = rowWindow(result.nodes, options);
2987
3065
  OutputFormatter.success({
2988
3066
  Result: RESULTS.Success,
2989
3067
  Code: "NodeListSuccess",
2990
3068
  Data: {
2991
- Nodes: result.nodes,
2992
- Count: result.count
2993
- }
3069
+ Nodes: window.rows,
3070
+ Count: window.rows.length
3071
+ },
3072
+ Pagination: window.pagination
2994
3073
  });
2995
3074
  });
2996
3075
  node.command("delete").description(`Delete a node from a Flow file.
2997
3076
  Automatically removes connected edges, orphaned bindings, orphaned definitions, and node variables owned by the deleted node.
2998
- Use 'node list' to find the node ID.`).argument("<file>", "Path to the .flow file").argument("<node-id>", "ID of the node to delete").examples(NODE_DELETE_EXAMPLES).trackedAction(processContext, async (file, nodeId) => runDeleteNode(file, nodeId, "NodeDeleteSuccess"));
2999
- node.command("remove").description(`Remove a node from a Flow file.
3000
- Alias for 'node delete'. Automatically removes connected edges, orphaned bindings, orphaned definitions, and node variables owned by the removed node.
3001
- Use 'node list' to find the node ID.`).argument("<file>", "Path to the .flow file").argument("<node-id>", "ID of the node to remove").examples(NODE_REMOVE_EXAMPLES).trackedAction(processContext, async (file, nodeId) => runDeleteNode(file, nodeId, "NodeRemoveSuccess"));
3077
+ Use 'nodes list' to find the node ID.`).argument("<file>", "Path to the .flow file").argument("<node-id>", "ID of the node to delete").examples(NODE_DELETE_EXAMPLES).trackedAction(processContext, async (file, nodeId) => runDeleteNode(file, nodeId, "NodeDeleteSuccess"));
3078
+ node.command("remove", { hidden: true }).description(`Remove a node from a Flow file.
3079
+ Alias for 'nodes delete'. Automatically removes connected edges, orphaned bindings, orphaned definitions, and node variables owned by the removed node.
3080
+ Use 'nodes list' to find the node ID.`).argument("<file>", "Path to the .flow file").argument("<node-id>", "ID of the node to remove").examples(NODE_REMOVE_EXAMPLES).trackedAction(processContext, async (file, nodeId) => runDeleteNode(file, nodeId, "NodeRemoveSuccess"));
3002
3081
  };
3003
3082
 
3004
3083
  // ../flow-tool/src/commands/pack.ts
@@ -3018,7 +3097,7 @@ var FLOW_PACK_EXAMPLES = [
3018
3097
  var registerPackCommand = (program) => {
3019
3098
  const command = program.command("pack").description("Pack a Flow project into a .nupkg file").argument("<project-path>", "Path to the Flow project directory").argument("<output-path>", "Output directory where the .nupkg will be saved").option("-n, --name <name>", "Package name (default: project folder name)").option("-v, --version <version>", "Package version (default: 1.0.0)", "1.0.0");
3020
3099
  registerPackageMetadataOptions(command).examples(FLOW_PACK_EXAMPLES).trackedAction(processContext, async (projectPath, outputPath, options) => {
3021
- const { FlowPackService } = await import("./flow-pack-service-ypbwn9p1.js");
3100
+ const { FlowPackService } = await import("./flow-pack-service-seegwatd.js");
3022
3101
  const service = new FlowPackService;
3023
3102
  const exitCode = await service.execute(projectPath, {
3024
3103
  output: outputPath,
@@ -3122,24 +3201,25 @@ var FLOW_PROCESS_RUN_EXAMPLES = [
3122
3201
  function flowProcessRunErrorCode(error) {
3123
3202
  return error.message.toLowerCase().includes("release key is required") ? "FlowReleaseKeyRequired" : undefined;
3124
3203
  }
3125
- async function resolveReleaseKey(config, processKey) {
3204
+ async function resolveRelease(config, processKey) {
3126
3205
  const separator = processKey.lastIndexOf(":");
3127
3206
  const key = separator === -1 ? processKey : processKey.slice(0, separator);
3128
3207
  const version = separator === -1 ? undefined : processKey.slice(separator + 1);
3129
- const { listFlowProcesses } = await import("./flow-api-y70m8n82.js");
3130
- const processes = await listFlowProcesses(config);
3131
- const matches = processes.filter((candidate) => candidate.processKey === key && (version === undefined || candidate.processVersion === version));
3132
- const [releaseKey, ...extra] = matches.map((match) => match.key).filter((candidate) => Boolean(candidate));
3133
- if (releaseKey === undefined) {
3134
- throw new Error(`No Flow release matches process key '${processKey}' in folder ${config.folderKey}.`);
3208
+ const byReleaseKey = config.releaseKey !== undefined;
3209
+ const { escapeODataStringLiteral: esc, listFlowProcesses } = await import("./flow-api-qj89cv18.js");
3210
+ const processes = await listFlowProcesses(config, byReleaseKey ? `Key eq '${esc(config.releaseKey)}'` : `ProcessKey eq '${esc(key)}'`);
3211
+ const matches = processes.filter((candidate) => Boolean(candidate.key) && (byReleaseKey ? candidate.key === config.releaseKey : candidate.processKey === key && (version === undefined || candidate.processVersion === version)));
3212
+ const [release, ...extra] = matches;
3213
+ if (release === undefined) {
3214
+ throw new Error(byReleaseKey ? `No Flow release with key '${config.releaseKey}' in folder ${config.folderKey}.` : `No Flow release matches process key '${processKey}' in folder ${config.folderKey}.`);
3135
3215
  }
3136
3216
  if (extra.length > 0) {
3137
3217
  throw new Error(`${matches.length} Flow releases match process key '${processKey}' in folder ${config.folderKey}: ${matches.map((match) => `${match.processVersion} (${match.key})`).join(", ")}.`);
3138
3218
  }
3139
- return releaseKey;
3219
+ return release;
3140
3220
  }
3141
3221
  async function resolveFolderForList(options) {
3142
- const { resolveFolder } = await import("./index-n7n2d0tb.js");
3222
+ const { resolveFolder } = await import("./index-gjg7tpcx.js");
3143
3223
  if (options.folderKey && options.folderPath) {
3144
3224
  const [pathError, pathFolder] = await catchError(resolveFolder({ folderPath: options.folderPath }, {
3145
3225
  tenant: options.tenant,
@@ -3171,8 +3251,8 @@ async function resolveFolderForList(options) {
3171
3251
  function registerProcessCommand(program) {
3172
3252
  const processCmd = program.command("process").description("Manage Flow processes");
3173
3253
  registerSharedProcessCommands(processCmd, { toolLabel: "Flow" });
3174
- processCmd.command("list").description("List available Flow projects. The releaseActive and releaseLatest fields reflect Orchestrator release-level state (whether the release is marked active or the highest version on the manifest) and do not indicate whether the process is deployed or runnable.").addOption(createHiddenDeprecatedTenantOption("-t, --tenant <tenant-name>")).option("--filter <odata>", "Additional OData filter").option("-f, --folder-key <key>", "Folder key (GUID)").option("--folder-path <path>", "Folder path (e.g. 'Shared/Invoices'). Alternative to --folder-key.").option("--login-validity <minutes>", "Minimum minutes before token expiration to trigger a refresh (default: 10)", parseInt, 10).examples(FLOW_PROCESS_LIST_EXAMPLES).trackedAction(processContext, async (options) => {
3175
- const { getLoginStatusAsync } = await import("./index-j2r3jb6c.js");
3254
+ addRowWindowOptions(processCmd.command("list")).description("List available Flow projects. The releaseActive and releaseLatest fields reflect Orchestrator release-level state (whether the release is marked active or the highest version on the manifest) and do not indicate whether the process is deployed or runnable.").addOption(createHiddenDeprecatedTenantOption("-t, --tenant <tenant-name>")).option("--filter <odata>", "Additional OData filter").option("-f, --folder-key <key>", "Folder key (GUID)").option("--folder-path <path>", "Folder path (e.g. 'Shared/Invoices'). Alternative to --folder-key.").option("--login-validity <minutes>", "Minimum minutes before token expiration to trigger a refresh (default: 10)", parseInt, 10).examples(FLOW_PROCESS_LIST_EXAMPLES).trackedAction(processContext, async (options) => {
3255
+ const { getLoginStatusAsync } = await import("./index-xq6ajhgq.js");
3176
3256
  if (options.folderKey === undefined && options.folderPath === undefined) {
3177
3257
  OutputFormatter.error({
3178
3258
  Result: RESULTS.ValidationError,
@@ -3241,8 +3321,11 @@ function registerProcessCommand(program) {
3241
3321
  tenantName,
3242
3322
  baseUrl: loginStatus.baseUrl
3243
3323
  };
3244
- const { listFlowProcesses } = await import("./flow-api-y70m8n82.js");
3245
- const [listError, processes] = await catchError(listFlowProcesses(config, options.filter));
3324
+ const { listFlowProcesses } = await import("./flow-api-qj89cv18.js");
3325
+ const [listError, processes] = await catchError(listFlowProcesses(config, options.filter, {
3326
+ limit: options.limit,
3327
+ offset: options.offset
3328
+ }));
3246
3329
  if (listError) {
3247
3330
  OutputFormatter.error({
3248
3331
  Result: RESULTS.Failure,
@@ -3263,11 +3346,12 @@ function registerProcessCommand(program) {
3263
3346
  releaseLatest: p.isLatestVersion ? "Yes" : "No"
3264
3347
  }));
3265
3348
  OutputFormatter.emitList("FlowProjectList", formattedData, {
3266
- emptyInstructions: "No Flow projects found. Check folder permissions or try a different folder."
3349
+ emptyInstructions: options.offset === 0 ? "No Flow projects found. Check folder permissions or try a different folder." : undefined,
3350
+ pagination: apiPagination(formattedData.length, options)
3267
3351
  });
3268
3352
  });
3269
3353
  processCmd.command("get").description("Get Flow project schema and details").argument("<process-key>", "Process key (e.g., MyFlow.flow.Flow:1.0.0)").argument("<feed-id>", "Feed ID (from 'flow project list')").addOption(createHiddenDeprecatedTenantOption("-t, --tenant <tenant-name>")).requiredOption("-f, --folder-key <key>", "Folder key (GUID)").option("--login-validity <minutes>", "Minimum minutes before token expiration to trigger a refresh (default: 10)", parseInt, 10).examples(FLOW_PROCESS_GET_EXAMPLES).trackedAction(processContext, async (processKey, feedId, options) => {
3270
- const { getLoginStatusAsync } = await import("./index-j2r3jb6c.js");
3354
+ const { getLoginStatusAsync } = await import("./index-xq6ajhgq.js");
3271
3355
  const [loginError, loginStatus] = await catchError(getLoginStatusAsync({
3272
3356
  ensureTokenValidityMinutes: options.loginValidity
3273
3357
  }));
@@ -3318,7 +3402,7 @@ function registerProcessCommand(program) {
3318
3402
  baseUrl: loginStatus.baseUrl,
3319
3403
  feedId
3320
3404
  };
3321
- const { getFlowEntryPoints } = await import("./flow-api-y70m8n82.js");
3405
+ const { getFlowEntryPoints } = await import("./flow-api-qj89cv18.js");
3322
3406
  const [entryPointsError, entryPoints] = await catchError(getFlowEntryPoints(config));
3323
3407
  if (entryPointsError) {
3324
3408
  OutputFormatter.error({
@@ -3356,13 +3440,14 @@ function registerProcessCommand(program) {
3356
3440
  Instructions: `Found ${entryPoints.length} entry point(s) for ${processKey}`
3357
3441
  });
3358
3442
  });
3359
- processCmd.command("run").description("Run a Flow project with inputs").argument("<process-key>", "Process key (e.g., MyFlow.flow.Flow:1.0.0)").argument("<folder-key>", "Folder key (GUID)").option("-i, --inputs <json>", "Input parameters as JSON string or @file.json").option("--attachment <name=path>", "Upload a local file as a file-typed workflow input variable (repeatable). Example: --attachment file1=./resume.pdf", appendOption, []).addOption(createHiddenDeprecatedTenantOption("-t, --tenant <tenant-name>")).option("--release-key <key>", "Release key (GUID, from list command)").option("--feed-id <id>", "Feed ID for package lookup (optional)").option("--robot-ids <ids>", "Comma-separated robot IDs (optional)").option("--validate", "Validate inputs against project schema (basic: required fields + primitive types)").option("--login-validity <minutes>", "Minimum minutes before token expiration to trigger a refresh (default: 10)", parseInt, 10).option("--wait", "Block until the job reaches a terminal state (Successful, Faulted, Stopped)").option("--timeout <seconds>", "Maximum seconds to wait (0 = no timeout). Requires --wait.", String(DEFAULT_TIMEOUT_MS / 1000)).option("--poll-interval <seconds>", "Seconds between status checks. Requires --wait.", String(DEFAULT_INTERVAL_MS / 1000)).examples(FLOW_PROCESS_RUN_EXAMPLES).trackedAction(processContext, async (processKey, folderKey, options) => {
3360
- const { getLoginStatusAsync } = await import("./index-j2r3jb6c.js");
3443
+ processCmd.command("run").description("Run a Flow project with inputs").argument("<process-key>", "Process key (e.g., MyFlow.flow.Flow:1.0.0)").argument("<folder-key>", "Folder key (GUID)").option("-i, --inputs <json>", "Input parameters as JSON string or @file.json").option("--attachment <name=path>", "Upload a local file as a file-typed workflow input variable (repeatable). Example: --attachment file1=./resume.pdf", appendOption, []).addOption(createHiddenDeprecatedTenantOption("-t, --tenant <tenant-name>")).option("--release-key <key>", "Release key (GUID, from list command)").option("--feed-id <id>", "Feed ID for package lookup (optional)").option("--robot-ids <ids>", "Comma-separated robot IDs (optional)").option("--entry-point <id>", "Entry point node id — a trigger node id from the .flow file. Defaults to the release's default entry point").option("--validate", "Validate inputs against project schema (basic: required fields + primitive types)").option("--login-validity <minutes>", "Minimum minutes before token expiration to trigger a refresh (default: 10)", parseInt, 10).option("--wait", "Block until the job reaches a terminal state (Successful, Faulted, Stopped)").option("--timeout <seconds>", "Maximum seconds to wait (0 = no timeout). Requires --wait.", String(DEFAULT_TIMEOUT_MS / 1000)).option("--poll-interval <seconds>", "Seconds between status checks. Requires --wait.", String(DEFAULT_INTERVAL_MS / 1000)).examples(FLOW_PROCESS_RUN_EXAMPLES).trackedAction(processContext, async (processKey, folderKey, options) => {
3444
+ const { getLoginStatusAsync } = await import("./index-xq6ajhgq.js");
3361
3445
  const {
3362
3446
  parseFlowInputs,
3447
+ resolveEntryPoint,
3363
3448
  startFlowProjectJob,
3364
3449
  validateFlowInputs
3365
- } = await import("./flow-api-y70m8n82.js");
3450
+ } = await import("./flow-api-qj89cv18.js");
3366
3451
  const [loginError, loginStatus] = await catchError(getLoginStatusAsync({
3367
3452
  ensureTokenValidityMinutes: options.loginValidity
3368
3453
  }));
@@ -3417,7 +3502,7 @@ function registerProcessCommand(program) {
3417
3502
  }
3418
3503
  inputs = parsed;
3419
3504
  } else {
3420
- const { readStdin } = await import("./input-reader-sce4dejb.js");
3505
+ const { readStdin } = await import("./input-reader-3398edew.js");
3421
3506
  const [stdinError, stdinData] = await catchError(readStdin());
3422
3507
  if (stdinError) {
3423
3508
  OutputFormatter.error({
@@ -3442,6 +3527,68 @@ function registerProcessCommand(program) {
3442
3527
  inputs = parsed;
3443
3528
  }
3444
3529
  }
3530
+ const config = {
3531
+ processKey,
3532
+ folderKey,
3533
+ inputs,
3534
+ authToken: loginStatus.accessToken || "",
3535
+ organizationId: loginStatus.organizationId,
3536
+ tenantName,
3537
+ tenantId: loginStatus.tenantId,
3538
+ baseUrl: loginStatus.baseUrl,
3539
+ releaseKey: options.releaseKey,
3540
+ feedId: options.feedId
3541
+ };
3542
+ let mainEntryPointId;
3543
+ const fillRelease = async () => {
3544
+ const [resolveError, release] = await catchError(resolveRelease(config, processKey));
3545
+ if (resolveError) {
3546
+ OutputFormatter.error({
3547
+ Result: RESULTS.Failure,
3548
+ Code: "FlowReleaseKeyRequired",
3549
+ Message: resolveError.message,
3550
+ Instructions: `Run 'uip maestro flow process list --folder-key ${folderKey}' and pass the matching releaseKey as --release-key.`
3551
+ });
3552
+ processContext.exit(1);
3553
+ return false;
3554
+ }
3555
+ if (config.releaseKey === undefined) {
3556
+ logger.info(`Resolved --release-key ${release.key} for process ${processKey}.`);
3557
+ }
3558
+ config.releaseKey = release.key;
3559
+ config.feedId ??= release.feedId;
3560
+ mainEntryPointId = release.entryPointId;
3561
+ return true;
3562
+ };
3563
+ const needsFeed = config.feedId === undefined && (options.entryPoint !== undefined || options.validate);
3564
+ const needsMainEntryPoint = options.validate && options.entryPoint === undefined;
3565
+ if ((needsFeed || needsMainEntryPoint) && !await fillRelease()) {
3566
+ return;
3567
+ }
3568
+ let entryPoint;
3569
+ if (options.entryPoint !== undefined) {
3570
+ const [entryPointError, resolved] = await catchError(resolveEntryPoint(config, options.entryPoint));
3571
+ if (entryPointError instanceof UnknownEntryPointError) {
3572
+ OutputFormatter.error({
3573
+ Result: RESULTS.ValidationError,
3574
+ Message: entryPointError.message,
3575
+ Instructions: entryPointError.instructions
3576
+ });
3577
+ processContext.exit(3);
3578
+ return;
3579
+ }
3580
+ if (entryPointError) {
3581
+ OutputFormatter.error({
3582
+ Result: RESULTS.Failure,
3583
+ Message: entryPointError.message,
3584
+ Instructions: instructionsFor("backend", entryPointError)
3585
+ });
3586
+ processContext.exit(1);
3587
+ return;
3588
+ }
3589
+ entryPoint = resolved;
3590
+ config.entryPointPath = resolved.Path;
3591
+ }
3445
3592
  const attachmentSpecs = options.attachment ?? [];
3446
3593
  if (attachmentSpecs.length > 0) {
3447
3594
  const [parseError, specs] = catchError(() => attachmentSpecs.map(parseAttachmentSpec));
@@ -3454,7 +3601,7 @@ function registerProcessCommand(program) {
3454
3601
  processContext.exit(1);
3455
3602
  return;
3456
3603
  }
3457
- const { uploadJobAttachment } = await import("./index-n7n2d0tb.js");
3604
+ const { uploadJobAttachment } = await import("./index-gjg7tpcx.js");
3458
3605
  const [uploadError, resolved] = await catchError(resolveAttachmentInputs(specs, (bytes, fileName) => uploadJobAttachment(bytes, fileName, {
3459
3606
  tenant: tenantName
3460
3607
  })));
@@ -3475,18 +3622,6 @@ function registerProcessCommand(program) {
3475
3622
  logger.info(`Uploaded '${path}' as attachment ${reference.ID} (variable '${name}').`);
3476
3623
  }
3477
3624
  }
3478
- const config = {
3479
- processKey,
3480
- folderKey,
3481
- inputs,
3482
- authToken: loginStatus.accessToken || "",
3483
- organizationId: loginStatus.organizationId,
3484
- tenantName,
3485
- tenantId: loginStatus.tenantId,
3486
- baseUrl: loginStatus.baseUrl,
3487
- releaseKey: options.releaseKey,
3488
- feedId: options.feedId
3489
- };
3490
3625
  if (options.robotIds) {
3491
3626
  config.robotIds = options.robotIds.split(",").map((id) => parseInt(id.trim(), 10));
3492
3627
  if (config.robotIds.some((id) => Number.isNaN(id))) {
@@ -3500,7 +3635,7 @@ function registerProcessCommand(program) {
3500
3635
  }
3501
3636
  }
3502
3637
  if (options.validate) {
3503
- const [valError, validation] = await catchError(validateFlowInputs(config, inputs));
3638
+ const [valError, validation] = await catchError(validateFlowInputs(config, inputs, entryPoint, mainEntryPointId));
3504
3639
  if (valError) {
3505
3640
  const code = flowProcessRunErrorCode(valError);
3506
3641
  OutputFormatter.error({
@@ -3553,20 +3688,8 @@ ${errorList}`,
3553
3688
  timeoutMs = timeoutS * 1000;
3554
3689
  intervalMs = intervalS * 1000;
3555
3690
  }
3556
- if (config.releaseKey === undefined) {
3557
- const [resolveError, resolvedReleaseKey] = await catchError(resolveReleaseKey(config, processKey));
3558
- if (resolveError) {
3559
- OutputFormatter.error({
3560
- Result: RESULTS.Failure,
3561
- Code: "FlowReleaseKeyRequired",
3562
- Message: resolveError.message,
3563
- Instructions: `Run 'uip maestro flow process list --folder-key ${folderKey}' and pass the matching releaseKey as --release-key.`
3564
- });
3565
- processContext.exit(1);
3566
- return;
3567
- }
3568
- config.releaseKey = resolvedReleaseKey;
3569
- logger.info(`Resolved --release-key ${resolvedReleaseKey} for process ${processKey}.`);
3691
+ if (config.releaseKey === undefined && !await fillRelease()) {
3692
+ return;
3570
3693
  }
3571
3694
  const [jobError, job] = await catchError(startFlowProjectJob(config));
3572
3695
  if (jobError) {
@@ -3589,7 +3712,7 @@ ${errorList}`,
3589
3712
  traceId: job.traceId,
3590
3713
  folderKey
3591
3714
  },
3592
- Instructions: `Watch traces: uip maestro flow job traces ${job.key} --folder-key ${folderKey}`
3715
+ Instructions: `Watch traces: uip maestro flow jobs traces ${job.key} --folder-key ${folderKey}`
3593
3716
  });
3594
3717
  if (!options.wait) {
3595
3718
  processContext.exit(0);
@@ -3604,7 +3727,7 @@ ${errorList}`,
3604
3727
  processContext.exit(1);
3605
3728
  return;
3606
3729
  }
3607
- const { handleFlowJobWait } = await import("./wait-for-flow-job-wdcjjk6p.js");
3730
+ const { handleFlowJobWait } = await import("./wait-for-flow-job-5rjxh65w.js");
3608
3731
  await handleFlowJobWait(job.key, {
3609
3732
  config,
3610
3733
  timeoutMs,
@@ -3646,13 +3769,13 @@ function getDefaultOutputPath(fs = getFileSystem()) {
3646
3769
  }
3647
3770
  var registerPublishCommand = (program) => {
3648
3771
  program.command("publish").description("Pack a Flow project and upload the resulting .nupkg to Orchestrator packages").argument("<project-path>", "Path to the Flow project directory").argument("[output-path]", "Output directory where the generated .nupkg will be saved").option("-n, --name <name>", "Package name (default: project folder name)").option("-v, --version <version>", "Package version (default: 1.0.0)", "1.0.0").addOption(createHiddenDeprecatedTenantOption("-t, --tenant <tenant-name>")).option("--feed-id <feedId>", "Feed ID (optional, defaults to tenant feed). Mutually exclusive with --folder-key/--folder-path.").option("--folder-key <key>", "Folder key (GUID) of an Orchestrator folder hierarchy feed. The CLI resolves the folder's feed ID automatically. Mutually exclusive with --feed-id and --folder-path.").option("--folder-path <path>", "Folder path (e.g. 'Shared/Sub') of an Orchestrator folder hierarchy feed. The CLI resolves the folder's feed ID automatically. Mutually exclusive with --feed-id and --folder-key.").examples(FLOW_PUBLISH_EXAMPLES).trackedAction(processContext, async (projectPath, outputPath, options) => {
3649
- const { getLoginStatusAsync } = await import("./index-j2r3jb6c.js");
3772
+ const { getLoginStatusAsync } = await import("./index-xq6ajhgq.js");
3650
3773
  const {
3651
3774
  createApiClient,
3652
3775
  PackageFeedsApi,
3653
3776
  ProcessesApi,
3654
3777
  resolveFolder
3655
- } = await import("./index-n7n2d0tb.js");
3778
+ } = await import("./index-gjg7tpcx.js");
3656
3779
  const fs = getFileSystem();
3657
3780
  const shouldCleanupOutput = outputPath === undefined;
3658
3781
  const packageOutputPath = outputPath ?? getDefaultOutputPath(fs);
@@ -3738,7 +3861,7 @@ var registerPublishCommand = (program) => {
3738
3861
  }
3739
3862
  resolvedFeedId = folderFeedId;
3740
3863
  }
3741
- const { FlowPackService } = await import("./flow-pack-service-ypbwn9p1.js");
3864
+ const { FlowPackService } = await import("./flow-pack-service-seegwatd.js");
3742
3865
  const service = new FlowPackService;
3743
3866
  const [packError, packResult] = await catchError(service.executeAsync(projectPath, {
3744
3867
  output: packageOutputPath,
@@ -3839,7 +3962,7 @@ var registerRegistryCommand2 = (program) => {
3839
3962
  // ../flow-tool/src/commands/tidy.ts
3840
3963
  var registerTidyCommand = (program) => {
3841
3964
  program.command("format").description("Format a .flow file by auto-laying out nodes to prevent overlaps and arrange in a clean flow").argument("<file>", "Path to the .flow file").trackedAction(processContext, async (file) => {
3842
- const { tidyFlow } = await import("./tidy-service-thmayk2h.js");
3965
+ const { tidyFlow } = await import("./tidy-service-mepxtxqm.js");
3843
3966
  const [error, result] = await catchError(tidyFlow(file));
3844
3967
  if (error) {
3845
3968
  OutputFormatter.error({
@@ -3924,6 +4047,17 @@ var FLOW_VALIDATE_EXAMPLES = [
3924
4047
  }
3925
4048
  }
3926
4049
  },
4050
+ {
4051
+ Description: "Validate against freshly fetched node manifests, bypassing the 30-minute manifest cache",
4052
+ Command: "uip maestro flow validate flow.json --force",
4053
+ Output: {
4054
+ Code: "FlowValidate",
4055
+ Data: {
4056
+ File: "flow.json",
4057
+ Status: "Valid"
4058
+ }
4059
+ }
4060
+ },
3927
4061
  {
3928
4062
  Description: "Fail validation on expression and script type errors (they are warnings by default)",
3929
4063
  Command: "uip maestro flow validate flow.json --strict-expressions",
@@ -3937,11 +4071,11 @@ var FLOW_VALIDATE_EXAMPLES = [
3937
4071
  }
3938
4072
  ];
3939
4073
  var registerValidateCommand = (program) => {
3940
- program.command("validate").description("Validate a .flow file (or a project directory containing one) against the Flow schema").argument("<flowFile>", "Path to the .flow file (or a project directory containing one) to validate").option("--governance", "Validate agent nodes against organization governance policies (requires login)").option("--strict-bindings", "Fail validation when a Managed HTTP node (core.action.http.v2) carries a connector-shaped label but no Integration Service binding. Default: warn only.").option("--strict-expressions", "Fail validation when an expression or script body has a type error. The check always runs, using the shared Flow expression checker (the same engine the canvas runs); its findings are warnings by default. Default: warn only.").examples(FLOW_VALIDATE_EXAMPLES).trackedAction(processContext, async (flowFile, options) => {
4074
+ program.command("validate").description("Validate a .flow file (or a project directory containing one) against the Flow schema").argument("<flow-file>", "Path to the .flow file (or a project directory containing one) to validate").option("--governance", "Validate agent nodes against organization governance policies (requires login)").option("--strict-bindings", "Fail validation when a Managed HTTP node (core.action.http.v2) carries a connector-shaped label but no Integration Service binding. Default: warn only.").option("--strict-expressions", "Fail validation when an expression or script body has a type error. The check always runs, using the shared Flow expression checker (the same engine the canvas runs); its findings are warnings by default. Default: warn only.").option("--force", "Refetch the current node manifests used by the stale-handle check instead of reading the cached copy (the cache `registry pull` writes, kept 30 minutes per tenant). The refetched manifests replace the cache, as `registry pull --force` does.").examples(FLOW_VALIDATE_EXAMPLES).trackedAction(processContext, async (flowFile, options) => {
3941
4075
  let governanceEnforcements;
3942
4076
  let availableModelNames;
3943
4077
  if (options.governance) {
3944
- const { fetchGovernanceData } = await import("./governance-fetcher-09dgr70s.js");
4078
+ const { fetchGovernanceData } = await import("./governance-fetcher-w11mhrn6.js");
3945
4079
  const [error, data] = await catchError(fetchGovernanceData());
3946
4080
  if (error) {
3947
4081
  OutputFormatter.error({
@@ -3955,11 +4089,12 @@ var registerValidateCommand = (program) => {
3955
4089
  governanceEnforcements = data.enforcements;
3956
4090
  availableModelNames = data.modelNames;
3957
4091
  }
3958
- const { FlowValidateService } = await import("./flow-validate-service-6ra3j72r.js");
4092
+ const { FlowValidateService } = await import("./flow-validate-service-hgswxecb.js");
3959
4093
  const service = new FlowValidateService({
3960
4094
  governanceEnforcements,
3961
4095
  availableModelNames,
3962
4096
  validateCurrentManifests: true,
4097
+ manifestCache: options.force !== true,
3963
4098
  strictBindings: options.strictBindings === true,
3964
4099
  strictExpressions: options.strictExpressions ?? STRICT_EXPRESSIONS_DEFAULT
3965
4100
  });
@@ -3974,7 +4109,7 @@ var registerValidateCommand = (program) => {
3974
4109
  var VARIABLE_ADD_EXAMPLES = [
3975
4110
  {
3976
4111
  Description: "Add a string input variable to a flow (auto-bound to the flow's trigger node, making it an entry-point input)",
3977
- Command: "uip maestro flow variable add flow.json myInput --direction in --type string",
4112
+ Command: "uip maestro flow variables create flow.json myInput --direction in --type string",
3978
4113
  Output: {
3979
4114
  Code: "VariableAddSuccess",
3980
4115
  Data: {
@@ -3989,7 +4124,7 @@ var VARIABLE_ADD_EXAMPLES = [
3989
4124
  },
3990
4125
  {
3991
4126
  Description: "Bind an input to a specific trigger when the flow has several entry points",
3992
- Command: "uip maestro flow variable add flow.json myInput --direction in --type string --trigger-node-id timerTrigger1",
4127
+ Command: "uip maestro flow variables create flow.json myInput --direction in --type string --trigger-node-id timerTrigger1",
3993
4128
  Output: {
3994
4129
  Code: "VariableAddSuccess",
3995
4130
  Data: {
@@ -4006,7 +4141,7 @@ var VARIABLE_ADD_EXAMPLES = [
4006
4141
  var VARIABLE_DELETE_EXAMPLES = [
4007
4142
  {
4008
4143
  Description: "Remove a variable from a flow",
4009
- Command: "uip maestro flow variable remove flow.json myInput",
4144
+ Command: "uip maestro flow variables delete flow.json myInput",
4010
4145
  Output: {
4011
4146
  Code: "VariableRemoveSuccess",
4012
4147
  Data: {
@@ -4022,7 +4157,7 @@ var VARIABLE_DELETE_EXAMPLES = [
4022
4157
  var VARIABLE_LIST_EXAMPLES = [
4023
4158
  {
4024
4159
  Description: "List all variables in a flow file",
4025
- Command: "uip maestro flow variable list flow.json",
4160
+ Command: "uip maestro flow variables list flow.json",
4026
4161
  Output: {
4027
4162
  Code: "VariableListSuccess",
4028
4163
  Data: {
@@ -4083,9 +4218,9 @@ function parseDefaultValue(value, type) {
4083
4218
  }
4084
4219
  }
4085
4220
  var registerVariableCommand = (program) => {
4086
- const variable = program.command("variable").description("Manage variables in a Flow file");
4087
- variable.command("add").description("Add a variable to a Flow file").argument("<file>", "Path to the .flow file").argument("<variable-id>", "Variable identifier (e.g. myInputVar)").requiredOption("-d, --direction <direction>", `Variable direction (${VALID_DIRECTIONS.join(", ")})`).option("-t, --type <type>", `Data type (${VALID_TYPES.join(", ")})`, "string").option("--default-value <value>", "Default value (parsed based on --type)").option("--description <text>", "Human-readable description").option("--schema <json>", "JSON schema for object/array types").option("--sub-type <subType>", "Sub-type for complex types").option("--trigger-node-id <nodeId>", "Trigger node an input variable belongs to (defaults to the flow's only trigger node; required when the flow has several)").examples(VARIABLE_ADD_EXAMPLES).trackedAction(processContext, async (file, variableId, options) => {
4088
- const { validateIdentifier } = await import("./index-vj0f8thg.js");
4221
+ const variable = program.command("variables").alias("variable").description("Manage variables in a Flow file");
4222
+ variable.command("create").alias("add").description("Add a variable to a Flow file").argument("<file>", "Path to the .flow file").argument("<variable-id>", "Variable identifier (e.g. myInputVar)").requiredOption("-d, --direction <direction>", `Variable direction (${VALID_DIRECTIONS.join(", ")})`).option("-t, --type <type>", `Data type (${VALID_TYPES.join(", ")})`, "string").option("--default-value <value>", "Default value (parsed based on --type)").option("--description <text>", "Human-readable description").option("--schema <json>", "JSON schema for object/array types").option("--sub-type <subType>", "Sub-type for complex types").option("--trigger-node-id <nodeId>", "Trigger node an input variable belongs to (defaults to the flow's only trigger node; required when the flow has several)").examples(VARIABLE_ADD_EXAMPLES).trackedAction(processContext, async (file, variableId, options) => {
4223
+ const { validateIdentifier } = await import("./index-91v7sjfs.js");
4089
4224
  const identifierError = validateIdentifier(variableId, []);
4090
4225
  if (identifierError) {
4091
4226
  OutputFormatter.error({
@@ -4151,7 +4286,7 @@ var registerVariableCommand = (program) => {
4151
4286
  }
4152
4287
  schema = parsed;
4153
4288
  }
4154
- const { addVariableToFlow } = await import("./variable-service-3gywh851.js");
4289
+ const { addVariableToFlow } = await import("./variable-service-8v0b9d66.js");
4155
4290
  const [error, variable2] = await catchError(addVariableToFlow(file, {
4156
4291
  id: variableId,
4157
4292
  direction: options.direction,
@@ -4179,8 +4314,8 @@ var registerVariableCommand = (program) => {
4179
4314
  }
4180
4315
  });
4181
4316
  });
4182
- variable.command("remove").description("Remove a variable from a Flow file").argument("<file>", "Path to the .flow file").argument("<variable-id>", "Variable identifier to remove").examples(VARIABLE_DELETE_EXAMPLES).trackedAction(processContext, async (file, variableId) => {
4183
- const { validateIdentifier } = await import("./index-vj0f8thg.js");
4317
+ variable.command("delete").alias("remove").description("Remove a variable from a Flow file").argument("<file>", "Path to the .flow file").argument("<variable-id>", "Variable identifier to remove").examples(VARIABLE_DELETE_EXAMPLES).trackedAction(processContext, async (file, variableId) => {
4318
+ const { validateIdentifier } = await import("./index-91v7sjfs.js");
4184
4319
  const identifierError = validateIdentifier(variableId, []);
4185
4320
  if (identifierError) {
4186
4321
  OutputFormatter.error({
@@ -4191,7 +4326,7 @@ var registerVariableCommand = (program) => {
4191
4326
  processContext.exit(1);
4192
4327
  return;
4193
4328
  }
4194
- const { deleteVariableFromFlow } = await import("./variable-service-3gywh851.js");
4329
+ const { deleteVariableFromFlow } = await import("./variable-service-8v0b9d66.js");
4195
4330
  const [error, deletedVariable] = await catchError(deleteVariableFromFlow(file, variableId));
4196
4331
  if (error) {
4197
4332
  OutputFormatter.error({
@@ -4210,8 +4345,8 @@ var registerVariableCommand = (program) => {
4210
4345
  }
4211
4346
  });
4212
4347
  });
4213
- variable.command("list").description("List all variables in a Flow file").argument("<file>", "Path to the .flow file").examples(VARIABLE_LIST_EXAMPLES).trackedAction(processContext, async (file) => {
4214
- const { listVariablesInFlow } = await import("./variable-service-3gywh851.js");
4348
+ addRowWindowOptions(variable.command("list")).description("List all variables in a Flow file").argument("<file>", "Path to the .flow file").examples(VARIABLE_LIST_EXAMPLES).trackedAction(processContext, async (file, options) => {
4349
+ const { listVariablesInFlow } = await import("./variable-service-8v0b9d66.js");
4215
4350
  const [error, result] = await catchError(listVariablesInFlow(file));
4216
4351
  if (error) {
4217
4352
  OutputFormatter.error({
@@ -4222,13 +4357,15 @@ var registerVariableCommand = (program) => {
4222
4357
  processContext.exit(1);
4223
4358
  return;
4224
4359
  }
4360
+ const window = rowWindow(result.variables, options);
4225
4361
  OutputFormatter.success({
4226
4362
  Result: RESULTS.Success,
4227
4363
  Code: "VariableListSuccess",
4228
4364
  Data: {
4229
- Variables: result.variables,
4230
- Count: result.count
4231
- }
4365
+ Variables: window.rows,
4366
+ Count: window.rows.length
4367
+ },
4368
+ Pagination: window.pagination
4232
4369
  });
4233
4370
  });
4234
4371
  };
@@ -4268,7 +4405,7 @@ var metadata = {
4268
4405
  };
4269
4406
  var registerCommands = async (program) => {
4270
4407
  setAgentProjectMetadataReader(agentProjectMetadataReader);
4271
- const { registerFlowAuthoringCommands } = await import("./authoring-ex7mq672.js");
4408
+ const { registerFlowAuthoringCommands } = await import("./authoring-rw21p50g.js");
4272
4409
  registerFlowAuthoringCommands(program);
4273
4410
  registerInitCommand(program);
4274
4411
  registerPackCommand(program);
@@ -4296,4 +4433,4 @@ export {
4296
4433
  registerCommands
4297
4434
  };
4298
4435
 
4299
- //# debugId=9E57E0398590F3BE64756E2164756E21
4436
+ //# debugId=E1F422919EE5663C64756E2164756E21