@uipath/flow-tool 1.202.1 → 1.203.0-preview.160
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/THIRD-PARTY-NOTICES.md +162 -9
- package/dist/{authoring-113fk5ep.js → authoring-tv4dh80p.js} +31 -9
- package/dist/{binding-service-4y4gk5rb.js → binding-service-m1729g4d.js} +39 -31
- package/dist/{connector-service-n0jw38wq.js → connector-service-hcscpb7k.js} +227 -59
- package/dist/{conversion-QANACVCM-zs0hhfjv.js → conversion-FQTRFHRX-5bww6cg9.js} +213 -129
- package/dist/{de-6U7ECGHH-xwsw33fk.js → de-B3EKCNFC-zdwybhh7.js} +7 -4
- package/dist/{de-7XQXX2DK-IDWR6CAR-n4z245kt.js → de-FGHEJRCI-PK6WALXW-0dnvnmke.js} +153 -9
- package/dist/de-FGHEJRCI-gn4cf5gh.js +2697 -0
- package/dist/{de-7XQXX2DK-tqdy5n2b.js → de-FGHEJRCI-rv513mfh.js} +153 -9
- package/dist/{de-5KVP66U6-1bnf4zt5.js → de-MUJPA4EB-209jpeqe.js} +14 -2
- package/dist/de-MUJPA4EB-dpg7t2rw.js +173 -0
- package/dist/{de-HKTOVV4H-pe9w0xn8.js → de-VMMG2MN7-2ecwpg1b.js} +2 -5
- package/dist/{de-XLT4QPIP-kj81dxjc.js → de-XNTCMP5Z-xfkfqg20.js} +7 -4
- package/dist/{debug-conversation-trigger-9gwtwxn6.js → debug-conversation-trigger-m9zwsek2.js} +23 -20
- package/dist/{debug-http-client-mc67gw2b.js → debug-http-client-53qk6pc5.js} +2 -2
- package/dist/{debug-service-h0mpv9mh.js → debug-service-nyk0s6mc.js} +3 -3
- package/dist/{edge-service-pxwzsne6.js → edge-service-ey6a128k.js} +21 -18
- package/dist/{index-rmym7hm4.js → embedded-file-reader-0sjt4nkj.js} +96 -16641
- package/dist/en-BPJVY3U7-xkpj5xc5.js +52 -0
- package/dist/{en-5ZGC5VQ3-h581y30k.js → en-BWGKA5OE-1qkvb9rn.js} +140 -2
- package/dist/{en-P4AS26D7-zptp77bm.js → en-E454CJNK-ytfw06kj.js} +4 -2
- package/dist/en-FBPVNKFN-dqt573xn.js +138 -0
- package/dist/{en-X3S6IZ5J-nhkg6pwn.js → en-GN2ZGWUE-03z2df4k.js} +26 -2
- package/dist/en-TBNO2WUV-77KTKLDE-4ktf0pqw.js +1942 -0
- package/dist/{en-5ZGC5VQ3-EWX7ILY7-rmtj70fk.js → en-TBNO2WUV-9nan43e5.js} +141 -9
- package/dist/es-7SE7HX2X-8yh1aj2y.js +173 -0
- package/dist/{es-VFPNVMP5-bx2c337j.js → es-7SE7HX2X-qda7whn6.js} +14 -2
- package/dist/{es-NQICVYSQ-3dtqgget.js → es-EKHIPSW6-ya88nvm0.js} +7 -4
- package/dist/{es-PQ3RA33Q-y4kxhjfr.js → es-KEBF3AIM-g5rszh8f.js} +7 -4
- package/dist/es-KR3ZSNMP-0cszm2n3.js +2697 -0
- package/dist/{es-ZGCPPOME-8gazspjj.js → es-KR3ZSNMP-84zphx0x.js} +153 -9
- package/dist/{es-ZGCPPOME-24PJEGPV-rn86z9kn.js → es-KR3ZSNMP-QLWVVWKJ-5egs0gj9.js} +153 -9
- package/dist/es-MX-2MYFZU7X-3rek4r73.js +173 -0
- package/dist/{es-MX-XAVLOQW3-q00km2y7.js → es-MX-2MYFZU7X-6v0q5rbn.js} +14 -2
- package/dist/{es-MX-NHTIP5YM-ar6zfx95.js → es-MX-EL3CDS3F-sh84yvjr.js} +7 -4
- package/dist/{es-MX-OKNDG2NH-tcac6j4g.js → es-MX-OR6G2SFR-7yykk5ma.js} +7 -4
- package/dist/{es-MX-U2VN3SZW-anynsmd8.js → es-MX-XXZJGC4R-2mr8jtgm.js} +153 -9
- package/dist/{es-MX-U2VN3SZW-KYAJ2ONK-kdram1g1.js → es-MX-XXZJGC4R-W6EEIHXR-c2m4yjpj.js} +153 -9
- package/dist/es-MX-XXZJGC4R-b4fbwe9d.js +2697 -0
- package/dist/{es-MX-H2EAXLYI-j42kfkxy.js → es-MX-ZP2LJ3V7-k4brnfa9.js} +2 -5
- package/dist/{es-O4PAV2CR-0g23ve3v.js → es-WY6FZ3HO-zksnn6dp.js} +2 -5
- package/dist/first-party-service-srxaftkn.js +27 -0
- package/dist/{flow-api-p6vabmea.js → flow-api-f49qbvf6.js} +8 -8
- package/dist/{flow-debug-service-m2ch7mwg.js → flow-debug-service-12553vsz.js} +67 -42
- package/dist/flow-eval-node-target-y11g5wga.js +53 -0
- package/dist/flow-eval-run-api-1bw5e0k4.js +13 -0
- package/dist/{flow-eval-run-service-pdkvt1tp.js → flow-eval-run-service-5yb42k28.js} +107 -222
- package/dist/{flow-eval-service-4zhncch4.js → flow-eval-service-62jbxh61.js} +352 -308
- package/dist/flow-init-service-8my1tazk.js +42 -0
- package/dist/flow-io-fftvq9gn.js +41 -0
- package/dist/{flow-migrate-service-n8bjdds3.js → flow-migrate-service-bh0cxn16.js} +29 -25
- package/dist/{flow-pack-service-sw4dbxvr.js → flow-pack-service-z34abxpg.js} +46 -38
- package/dist/flow-validate-service-kesk1p8a.js +65 -0
- package/dist/{fr-R4L3OAWI-30khpsmn.js → fr-DPD4GHX3-exeypjwk.js} +7 -4
- package/dist/{fr-PFHIL7YZ-2n589p47.js → fr-IHD66TVT-vfvmefbx.js} +7 -4
- package/dist/fr-MDFKNZ4C-h4a122k9.js +173 -0
- package/dist/{fr-E5MDO4EG-c3mkty2t.js → fr-MDFKNZ4C-qmypp92m.js} +14 -2
- package/dist/{fr-5YRGHXF5-kz1ywpv6.js → fr-PRMYCRDC-0bk078by.js} +2 -5
- package/dist/{fr-T3G5GZCT-y3f7xb1q.js → fr-Y6NPVODW-8vr1ja4b.js} +153 -9
- package/dist/{fr-T3G5GZCT-TU4IKBEG-k6xz1s1f.js → fr-Y6NPVODW-AS7T42TR-v4qe2tha.js} +153 -9
- package/dist/fr-Y6NPVODW-q5ef3htr.js +2697 -0
- package/dist/{governance-fetcher-kaarfkse.js → governance-fetcher-qqp2kfm6.js} +6 -5
- package/dist/{headless-h1myzz32.js → headless-rkxtgwts.js} +43066 -1733
- package/dist/{hitl-service-sztgwdqk.js → hitl-service-sbdq031m.js} +20 -17
- package/dist/{index-1kgxzh8x.js → index-3ts7y9d3.js} +15 -3
- package/dist/{index-zw4jx227.js → index-51z10z84.js} +4 -4
- package/dist/{index-eybzsdcc.js → index-55cym5j7.js} +66 -6
- package/dist/index-kmp9fmhb.js +25 -0
- package/dist/index-sc7ddh21.js +16742 -0
- package/dist/{index-4zrwgb3c.js → index-ymsd3pyx.js} +12 -15
- package/dist/{index-4y4rvc7g.js → index-zc0rre3h.js} +6 -4
- package/dist/index.js +13 -24
- package/dist/init.js +25 -21
- package/dist/{input-reader-cex1tqwe.js → input-reader-tw0j373f.js} +1 -1
- package/dist/{ja-SDAPAVCR-kg39dfap.js → ja-HFEQKCZF-hb2f25p8.js} +2 -5
- package/dist/{ja-P4OSE367-srr3qypg.js → ja-JE5ZL7EY-hacj2m31.js} +7 -4
- package/dist/{ja-ZHKCBE5W-x73w6x3e.js → ja-MDG4BKZQ-gayaca2c.js} +7 -4
- package/dist/{ja-BI5K3JDZ-GTIHISTZ-s6n3r2ab.js → ja-Q5PXKJ2V-BR5GRIDQ-fgqqpryf.js} +153 -9
- package/dist/{ja-BI5K3JDZ-77zat4z2.js → ja-Q5PXKJ2V-p4msxzjd.js} +153 -9
- package/dist/ja-Q5PXKJ2V-tzf2rvz2.js +2697 -0
- package/dist/ja-UTQEAP34-8e0q6swp.js +173 -0
- package/dist/{ja-DPO5PPLO-mysfmznx.js → ja-UTQEAP34-hvyf683h.js} +14 -2
- package/dist/known-types-8dhhqk35.js +19 -0
- package/dist/ko-AXCHW2OK-askct7f6.js +173 -0
- package/dist/{ko-ITOPNIYI-hmxd2asd.js → ko-AXCHW2OK-pkwdcbmx.js} +14 -2
- package/dist/{ko-JOBF5V7N-4bv0mjje.js → ko-AYBDSRZG-41mdmsg1.js} +153 -9
- package/dist/{ko-JOBF5V7N-O7T4HKIE-ape840y0.js → ko-AYBDSRZG-G43C3XUW-kng13fsg.js} +153 -9
- package/dist/ko-AYBDSRZG-am0h0m2r.js +2697 -0
- package/dist/{ko-NAGOZLC3-gaxxsnd2.js → ko-B4SEC7QX-thq2wt6a.js} +2 -5
- package/dist/{ko-PYOS2KJP-e7dshyxy.js → ko-DJJRKCG5-5h3k9csc.js} +7 -4
- package/dist/{ko-6W7OGLLB-mnmqc584.js → ko-LA5OSS5P-mq5h8sbk.js} +7 -4
- package/dist/localization-y790z9vm.js +47 -0
- package/dist/{maestro-automate-entry-6bxz7zxn.js → maestro-automate-entry-pqy9xqm3.js} +2 -2
- package/dist/node-service-ttx9qj8a.js +80 -0
- package/dist/node-sync-service-t1atntv4.js +40 -0
- package/dist/{node-tgybta62.js → node-wn6npa2d.js} +2344 -376
- package/dist/{packager-tool-3wzbcn5q.js → packager-tool-0egkaa38.js} +1 -1
- package/dist/{packager-tool-29vnb5v1.js → packager-tool-10t52r3c.js} +7 -7
- package/dist/{packager-tool-nq4rcqqg.js → packager-tool-1frs4sr4.js} +32 -2
- package/dist/{packager-tool-p96yqdnk.js → packager-tool-1r5dnt9q.js} +1 -1
- package/dist/{packager-tool-f0kd5kq4.js → packager-tool-26ydwf12.js} +130 -15
- package/dist/{packager-tool-gkhk6ty0.js → packager-tool-2c2wm7ss.js} +10 -10
- package/dist/{packager-tool-cphdcys0.js → packager-tool-321a1806.js} +1 -1
- package/dist/packager-tool-4mna26cc.js +133 -0
- package/dist/packager-tool-53w8skv5.js +262 -0
- package/dist/{packager-tool-m056vsmy.js → packager-tool-6k8s7pt9.js} +269 -23
- package/dist/{packager-tool-tn5e7wnb.js → packager-tool-6rsegsby.js} +6 -7
- package/dist/packager-tool-795gzq9k.js +208 -0
- package/dist/packager-tool-7q6z6npd.js +1937 -0
- package/dist/{packager-tool-77f5xeqw.js → packager-tool-8dj442ex.js} +5 -4
- package/dist/packager-tool-8qp60s20.js +12 -0
- package/dist/packager-tool-94nyzk85.js +1889 -0
- package/dist/{packager-tool-aea5psjw.js → packager-tool-9kx94sj5.js} +16 -6
- package/dist/{packager-tool-3g534a1a.js → packager-tool-9mm51nrg.js} +1 -1
- package/dist/{packager-tool-0d7tcvg1.js → packager-tool-b1xs6aty.js} +4 -1
- package/dist/{packager-tool-pb1g4qnb.js → packager-tool-b3m0jr5g.js} +8 -7
- package/dist/{packager-tool-cbvcyr3t.js → packager-tool-bhgzjh7h.js} +310 -13
- package/dist/{packager-tool-s7tgf9kh.js → packager-tool-cgr7y554.js} +23 -5
- package/dist/packager-tool-d6qf5qmb.js +49 -0
- package/dist/{packager-tool-a42jnpy5.js → packager-tool-d88rqwk8.js} +29 -3
- package/dist/{packager-tool-7exrv6w7.js → packager-tool-dh5nppv4.js} +1 -1
- package/dist/{packager-tool-09xysehb.js → packager-tool-e3yks66r.js} +5 -3
- package/dist/{packager-tool-58q3tvh7.js → packager-tool-e87tzg4y.js} +159 -21
- package/dist/packager-tool-e93xbetx.js +3513 -0
- package/dist/{packager-tool-7gx51wnq.js → packager-tool-edemj2dc.js} +10 -13
- package/dist/packager-tool-fvm2dddf.js +6297 -0
- package/dist/{packager-tool-3bra2c4j.js → packager-tool-gctpkdzs.js} +1 -1
- package/dist/packager-tool-gdtpsdn7.js +342 -0
- package/dist/{packager-tool-em5r6g6j.js → packager-tool-gpwec9sp.js} +217 -26
- package/dist/{packager-tool-a1hbfmws.js → packager-tool-gzpvdcnw.js} +124 -2
- package/dist/{packager-tool-ck10v2ve.js → packager-tool-h9d8c9rf.js} +1 -1
- package/dist/packager-tool-j78fwwhq.js +16 -0
- package/dist/{packager-tool-0g00g1a5.js → packager-tool-j7fbzh3b.js} +2 -2
- package/dist/packager-tool-jysvpt8p.js +11 -0
- package/dist/{packager-tool-yw0zcs7r.js → packager-tool-np5sdn2n.js} +9 -9
- package/dist/{packager-tool-7c18ekyp.js → packager-tool-nsmy7aap.js} +5 -5
- package/dist/{packager-tool-e0p2zsyc.js → packager-tool-p79yh9ww.js} +16 -16
- package/dist/packager-tool-paq9c70w.js +1332 -0
- package/dist/{packager-tool-p7c203yf.js → packager-tool-qzg0br7p.js} +100 -127
- package/dist/packager-tool-qzxscmvb.js +261 -0
- package/dist/{packager-tool-af8bw5wd.js → packager-tool-r7j4amsv.js} +228 -217
- package/dist/{packager-tool-rfkx60be.js → packager-tool-rpr68as1.js} +8 -8
- package/dist/{packager-tool-py7cevyk.js → packager-tool-s0mzv3sx.js} +1 -1
- package/dist/{packager-tool-5wmnpaf0.js → packager-tool-t9c77psy.js} +3098 -3179
- package/dist/{packager-tool-n09qbckn.js → packager-tool-vbser1d9.js} +7 -7
- package/dist/packager-tool-vcjq9xkc.js +1895 -0
- package/dist/{packager-tool-p9stswjj.js → packager-tool-vck7ct1e.js} +13248 -8037
- package/dist/{packager-tool-m5qfverj.js → packager-tool-vdc8r21p.js} +10279 -16112
- package/dist/{packager-tool-9bec251q.js → packager-tool-vqcnvaae.js} +10896 -6243
- package/dist/packager-tool-w5a1hhyj.js +13 -0
- package/dist/{packager-tool-yaabg8qc.js → packager-tool-yfbcqbvs.js} +39 -43
- package/dist/packager-tool-z185rq2a.js +180 -0
- package/dist/{packager-tool-z9bfhmm5.js → packager-tool-z83pga0z.js} +159 -21
- package/dist/{packager-tool-vzj3dha7.js → packager-tool-zh87cczz.js} +15 -56
- package/dist/packager-tool.js +19 -16
- package/dist/pt-3DIO5QWG-59b3f4bc.js +173 -0
- package/dist/{pt-YI4VE4YQ-wdkn2dcf.js → pt-3DIO5QWG-hb763vct.js} +14 -2
- package/dist/{pt-D6A6MVB2-yvxca8vz.js → pt-3KUMINBZ-d0fexmny.js} +7 -4
- package/dist/{pt-BR-Z3TUDJHM-8v73x9s7.js → pt-BR-3LGIH33I-tqbrd89y.js} +7 -4
- package/dist/{pt-BR-DXXSYJDO-a2tp13v7.js → pt-BR-6VFBW5QT-hsck9gjj.js} +2 -5
- package/dist/{pt-BR-7DYX2YPT-LZYH4YFD-bx43vx3z.js → pt-BR-TKHNHMET-4Z5H4N5G-pzw3328h.js} +153 -9
- package/dist/pt-BR-TKHNHMET-dn6zxk1d.js +2697 -0
- package/dist/{pt-BR-7DYX2YPT-fqxqzqtf.js → pt-BR-TKHNHMET-sn91xyq0.js} +153 -9
- package/dist/{pt-BR-UQCYHKMJ-q78n7q70.js → pt-BR-WNNZTIMN-6fent688.js} +7 -4
- package/dist/{pt-BR-BXURWX4W-bwfcwhk1.js → pt-BR-Y6K6XHXK-37a932vp.js} +14 -2
- package/dist/pt-BR-Y6K6XHXK-mp3hwhw1.js +173 -0
- package/dist/{pt-KSBWHAVQ-mhvhgr2p.js → pt-PFZXVOQH-qshq0b2m.js} +7 -4
- package/dist/{pt-HTXGGX6Y-97t21dty.js → pt-ROXU257Y-2f6bxev4.js} +153 -9
- package/dist/{pt-HTXGGX6Y-ZHQSDFKI-vehfxadc.js → pt-ROXU257Y-OWZOS54V-ywap2t39.js} +153 -9
- package/dist/pt-ROXU257Y-yd80gx6s.js +2697 -0
- package/dist/{pt-7TR74ZMB-bmphh4x2.js → pt-WOTPKWPZ-1rxcy8hs.js} +2 -5
- package/dist/{ro-VZUZTAMR-f4q0g3em.js → ro-AN5G62WQ-kcj00jwq.js} +7 -4
- package/dist/ro-AVAWPKOO-42m6am1w.js +2697 -0
- package/dist/{ro-KTNQ3MNU-XIE6YPQN-gen8p82z.js → ro-AVAWPKOO-6WCG756B-v7pjv1hc.js} +153 -9
- package/dist/{ro-KTNQ3MNU-y08n1x5g.js → ro-AVAWPKOO-b89pw79r.js} +153 -9
- package/dist/{ro-RKXZUG7Z-nndrrsq7.js → ro-BWR3ONRR-jmap5ajd.js} +14 -2
- package/dist/ro-BWR3ONRR-vzx3hy8a.js +173 -0
- package/dist/{ro-4TMBHS5M-jz0anpt6.js → ro-KMDT7LYJ-yhpnsdvw.js} +7 -4
- package/dist/{ro-BJFER5OI-83tq8vxh.js → ro-PB44YXML-zmhhwp5h.js} +2 -5
- package/dist/ru-GSCT4ARZ-jrxwev63.js +10 -0
- package/dist/ru-WBLQ5B2U-s4em88p0.js +10 -0
- package/dist/{serialization-J5QK3HPY-bgewpt6f.js → serialization-BXU6AKAN-z0vcrhpz.js} +1949 -906
- package/dist/services/connector-binding-validator.d.ts +10 -1
- package/dist/services/definitions-lookup.d.ts +27 -0
- package/dist/services/flow-debug-service.d.ts +290 -0
- package/dist/services/flow-eval-types.d.ts +2 -2
- package/dist/services/flow-eval-utils.d.ts +29 -0
- package/dist/services/flow-validate-service.d.ts +39 -0
- package/dist/services/node-validators/connector-validator.d.ts +8 -0
- package/dist/services/vars-reference-rule.d.ts +113 -13
- package/dist/{shared-utils-3cwmvxdc.js → shared-utils-wv356cvj.js} +1 -1
- package/dist/tidy-service-6s3tg778.js +39 -0
- package/dist/tool.js +13 -24
- package/dist/tr-5IIHSFW5-hw4cewew.js +173 -0
- package/dist/{tr-AA6O2WSR-86ba4bdf.js → tr-5IIHSFW5-stsb3dar.js} +14 -2
- package/dist/{tr-XHSSPNK7-GW5KVXR3-2w3f1ss6.js → tr-JMIP7ZSL-G3QYPVT2-gswngwcr.js} +153 -9
- package/dist/{tr-XHSSPNK7-cmqyc4wd.js → tr-JMIP7ZSL-c39b6pe4.js} +153 -9
- package/dist/tr-JMIP7ZSL-fb67ft9w.js +2696 -0
- package/dist/{tr-W4AVRSQ4-hjr81xzk.js → tr-KHOCWWLF-8apf5y44.js} +7 -4
- package/dist/{tr-GSQQ6SOT-hv1gyeaa.js → tr-SC55DYHY-e4zgcd4t.js} +7 -4
- package/dist/{tr-RQTZ2DMS-w3cwv8s4.js → tr-SEC6RGZ4-0ttavjya.js} +2 -5
- package/dist/utils/handle-expansion.d.ts +34 -0
- package/dist/utils/write-resolved-flow.d.ts +7 -0
- package/dist/validation.js +48 -41
- package/dist/{variable-service-xm8dh1gw.js → variable-service-73bvxzy9.js} +24 -21
- package/dist/{wait-for-flow-job-4cyc36yg.js → wait-for-flow-job-yp3mhy43.js} +8 -8
- package/dist/{zh-CN-6YRAN57T-rd7x2tqs.js → zh-CN-4NI2EGMV-8g027vv3.js} +7 -4
- package/dist/{zh-CN-2EHQT23P-mr63c4xz.js → zh-CN-IFFXSEJS-9wm9gmrv.js} +153 -9
- package/dist/{zh-CN-2EHQT23P-T5XRQCVS-ac17dpc1.js → zh-CN-IFFXSEJS-MZQ4HU3Z-ge1ynmtz.js} +153 -9
- package/dist/zh-CN-IFFXSEJS-tke4mzty.js +2697 -0
- package/dist/{zh-CN-ZC6LT4IN-kbzvvzz5.js → zh-CN-MX7VIOF2-xznrtchf.js} +2 -5
- package/dist/{zh-CN-EDFRBU32-vvj7tmaq.js → zh-CN-OUMLDKDS-q3a1rr5c.js} +7 -4
- package/dist/{zh-CN-R2KLHXQV-agqr45ds.js → zh-CN-R2KU4U5L-q4yhc33t.js} +14 -2
- package/dist/zh-CN-R2KU4U5L-tc1hat59.js +173 -0
- package/dist/{zh-TW-SO2245GN-n2bn1gg4.js → zh-TW-53SU6EH4-33x57egq.js} +7 -4
- package/dist/{zh-TW-R7Y5KVMU-m61y07e3.js → zh-TW-5SJ3GZT2-bsg054mw.js} +2 -5
- package/dist/zh-TW-GNKMELBF-j674515r.js +173 -0
- package/dist/{zh-TW-RJGCQANM-w0x3qc1p.js → zh-TW-GNKMELBF-r4ay2475.js} +14 -2
- package/dist/{zh-TW-MGZCE5BT-c4ekmrz9.js → zh-TW-IYBNYAMG-8727c7v2.js} +153 -9
- package/dist/{zh-TW-MGZCE5BT-P6FLIUAR-zmq07vhs.js → zh-TW-IYBNYAMG-J7FWTQTK-sx8d4ymg.js} +153 -9
- package/dist/zh-TW-IYBNYAMG-wcan0qpb.js +2697 -0
- package/dist/{zh-TW-HAICM6DE-rh7k3cq7.js → zh-TW-TN3MPNXL-jcgg2hcs.js} +7 -4
- package/package.json +3 -2
- package/dist/en-EPWMLP2N-2wvge238.js +0 -28
- package/dist/flow-eval-node-target-3530n69r.js +0 -46
- package/dist/flow-init-service-40r1q53q.js +0 -38
- package/dist/flow-io-23wgj1sg.js +0 -38
- package/dist/flow-validate-service-k7s2rbgc.js +0 -59
- package/dist/known-types-a20evmmg.js +0 -20
- package/dist/localization-1br6h143.js +0 -47
- package/dist/node-service-n183yy2f.js +0 -72
- package/dist/node-sync-service-dk9jazv4.js +0 -42
- package/dist/packager-tool-2wefykg9.js +0 -106
- package/dist/packager-tool-8j92afwp.js +0 -58
- package/dist/packager-tool-abbtfk2v.js +0 -54
- package/dist/packager-tool-gaa5ss24.js +0 -4945
- package/dist/packager-tool-k99nf3pq.js +0 -25
- package/dist/packager-tool-vpqyvh4c.js +0 -304
- package/dist/tidy-service-4q2mrf2y.js +0 -36
|
@@ -31,6 +31,7 @@ export declare const MANAGED_HTTP_NODE_TYPE = "core.action.http.v2";
|
|
|
31
31
|
export interface ConnectorBindingNode {
|
|
32
32
|
id: string;
|
|
33
33
|
type: string;
|
|
34
|
+
typeVersion?: unknown;
|
|
34
35
|
name?: unknown;
|
|
35
36
|
display?: {
|
|
36
37
|
label?: unknown;
|
|
@@ -43,6 +44,13 @@ export interface ConnectorBindingWorkflow {
|
|
|
43
44
|
subflows?: Record<string, {
|
|
44
45
|
nodes?: ConnectorBindingNode[];
|
|
45
46
|
}>;
|
|
47
|
+
/**
|
|
48
|
+
* The flow's `definitions[]` list. Read only to skip the MCP check on a
|
|
49
|
+
* node whose definition already marks `toolName` required (the shared
|
|
50
|
+
* `schema-validation` rule reports that one — avoid a second, softer
|
|
51
|
+
* report for the same defect).
|
|
52
|
+
*/
|
|
53
|
+
definitions?: unknown[];
|
|
46
54
|
}
|
|
47
55
|
export interface ConnectorBindingValidationOptions {
|
|
48
56
|
/**
|
|
@@ -88,7 +96,8 @@ export interface ConnectorCatalog {
|
|
|
88
96
|
export declare function loadConnectorCatalog(): Promise<ConnectorCatalog>;
|
|
89
97
|
/**
|
|
90
98
|
* Walk every node in the flow + every subflow and emit one issue per
|
|
91
|
-
* unbound, connector-shaped Managed HTTP node
|
|
99
|
+
* unbound, connector-shaped Managed HTTP node — plus one per MCP "Run a Tool"
|
|
100
|
+
* node with no selected tool (UV-15018). Scope mirrors
|
|
92
101
|
* `validateResourceBindings` so the new check stays consistent with the
|
|
93
102
|
* §A4 binding-integrity pass already in `FlowValidateService`.
|
|
94
103
|
*/
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The one lookup for a node's `definitions[]` entry, shared by every site
|
|
3
|
+
* that resolves a definition to WRITE to it or to act on its content
|
|
4
|
+
* (`patchOutputType` / `patchRequiredInputs` in connector-service, the
|
|
5
|
+
* toolName-required suppression in connector-binding-validator).
|
|
6
|
+
*
|
|
7
|
+
* `definitions[]` can legitimately hold two versions of one `nodeType`
|
|
8
|
+
* (schema-validation keys manifests by `nodeType:version`), so an unversioned
|
|
9
|
+
* lookup can resolve the wrong version's entry. The rules:
|
|
10
|
+
*
|
|
11
|
+
* - A node that carries a `typeVersion` resolves ONLY the entry with that
|
|
12
|
+
* exact `version`. A node whose version has no entry resolves nothing —
|
|
13
|
+
* it does not validate against any of the present entries either
|
|
14
|
+
* (`validateDefinitionsPresent` reports it), and patching a different
|
|
15
|
+
* version's entry would stamp this node's truth onto other nodes' schema.
|
|
16
|
+
* - A node with NO `typeVersion` (hand-authored flows, unit fixtures) falls
|
|
17
|
+
* back to a SOLE `nodeType` match — never one of several versions picked
|
|
18
|
+
* arbitrarily.
|
|
19
|
+
*
|
|
20
|
+
* Read-only display paths that prefer a best guess over nothing wrap this
|
|
21
|
+
* with a first-entry fallback (`findMatchingDefinition` in flow-eval-utils);
|
|
22
|
+
* write paths must not.
|
|
23
|
+
*/
|
|
24
|
+
export declare function findNodeDefinition(definitions: ReadonlyArray<unknown> | undefined, node: {
|
|
25
|
+
type?: string;
|
|
26
|
+
typeVersion?: unknown;
|
|
27
|
+
}): Record<string, unknown> | undefined;
|
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Service for debugging Flow files.
|
|
3
|
+
*
|
|
4
|
+
* Converts a .flow file to BPMN XML, generates the required project files,
|
|
5
|
+
* begins a debug session in Orchestrator, creates a debug instance in PIMS,
|
|
6
|
+
* and polls for execution status.
|
|
7
|
+
*/
|
|
8
|
+
import type { Workflow } from "@uipath/flow-core";
|
|
9
|
+
import type { BeginSessionResponse, DebugCallbacks, DebugInstanceResponse, DebugInstanceStatusResponse, DebugResult, DebugVariablesResponse, ElementExecution, StudioWebDebugConfig } from "@uipath/maestro-sdk";
|
|
10
|
+
import { RuntimeProfile } from "@uipath/packager-tool-flow";
|
|
11
|
+
import { type SolutionImportResponse } from "@uipath/solution-sdk";
|
|
12
|
+
export type { BeginSessionResponse, DebugCallbacks, DebugInstanceResponse, DebugInstanceStatusResponse, DebugResult, DebugVariablesResponse, ElementExecution, SolutionImportResponse, StudioWebDebugConfig, };
|
|
13
|
+
/**
|
|
14
|
+
* Canonical user-facing message + instructions surfaced when `flow debug`
|
|
15
|
+
* is run against a standalone Flow project (no enclosing `.uipx`).
|
|
16
|
+
*
|
|
17
|
+
* Exported so the command layer (and tests) can assert the exact envelope
|
|
18
|
+
* shape required by UiPath/cli#2023 without re-stringifying it.
|
|
19
|
+
*/
|
|
20
|
+
export declare const FLOW_DEBUG_MISSING_SOLUTION_MESSAGE = "Flow debug requires this Flow to be inside a solution.";
|
|
21
|
+
export declare const FLOW_DEBUG_MISSING_SOLUTION_INSTRUCTIONS = "Create a solution wrapper and import this Flow before debugging: `uip solution init <name>` then `uip solution projects import <flow-dir>` from inside the solution directory, then re-run `uip maestro flow debug`.";
|
|
22
|
+
/**
|
|
23
|
+
* Canonical user-facing message surfaced when the Flow project's directory
|
|
24
|
+
* is not listed in the enclosing solution's `.uipx` Projects[] manifest.
|
|
25
|
+
*
|
|
26
|
+
* Without this preflight, Studio Web rejects the upload with an opaque
|
|
27
|
+
* `Import failed (400): The solution archive does not contain any valid projects.`
|
|
28
|
+
* (MST-10004). Failing locally with the project path + solution path is
|
|
29
|
+
* far more actionable.
|
|
30
|
+
*/
|
|
31
|
+
export declare const FLOW_DEBUG_UNREGISTERED_PROJECT_MESSAGE = "Flow project is not registered in the enclosing solution.";
|
|
32
|
+
export declare const buildFlowDebugUnregisteredProjectInstructions: (projectDir: string, solutionFile: string) => string;
|
|
33
|
+
/**
|
|
34
|
+
* Thrown by {@link FlowDebugService.executeProjectViaStudioWeb} when the
|
|
35
|
+
* Flow project is not enclosed by a `.uipx` solution wrapper.
|
|
36
|
+
*
|
|
37
|
+
* The command layer translates this into a `ValidationError` envelope
|
|
38
|
+
* (exit code 3) so users get an actionable, locally-generated diagnostic
|
|
39
|
+
* before any upload is attempted — fixing the opaque server-side 400
|
|
40
|
+
* tracked in UiPath/cli#2023.
|
|
41
|
+
*/
|
|
42
|
+
export declare class MissingSolutionWrapperError extends Error {
|
|
43
|
+
readonly instructions: string;
|
|
44
|
+
constructor(message?: string, instructions?: string);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Thrown by {@link FlowDebugService.executeProjectViaStudioWeb} when an
|
|
48
|
+
* enclosing `.uipx` solution wrapper exists but does not list the Flow
|
|
49
|
+
* project directory in its `Projects[]` manifest.
|
|
50
|
+
*
|
|
51
|
+
* The command layer translates this into a `ValidationError` envelope
|
|
52
|
+
* (exit code 3). This replaces the opaque server-side
|
|
53
|
+
* `Import failed (400): The solution archive does not contain any valid projects.`
|
|
54
|
+
* surfaced from Studio Web (MST-10004) with a typed, locally-detected
|
|
55
|
+
* diagnostic that names the exact repair command.
|
|
56
|
+
*/
|
|
57
|
+
export declare class UnregisteredProjectError extends Error {
|
|
58
|
+
readonly instructions: string;
|
|
59
|
+
readonly projectDir: string;
|
|
60
|
+
readonly solutionFile: string;
|
|
61
|
+
constructor(projectDir: string, solutionFile: string);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* What an upload-only run returns: the solution is on Studio Web and the
|
|
65
|
+
* designer URL is known, but no debug session or instance was created.
|
|
66
|
+
*/
|
|
67
|
+
export interface StudioWebUploadResult {
|
|
68
|
+
uploadedOnly: true;
|
|
69
|
+
solutionId: string;
|
|
70
|
+
studioWebUrl: string;
|
|
71
|
+
}
|
|
72
|
+
export declare const FLOW_DEBUG_INBOUND_VOICE_MESSAGE = "Inbound voice flows cannot be debugged from the CLI.";
|
|
73
|
+
export declare const buildFlowDebugInboundVoiceInstructions: (triggerLabel: string) => string;
|
|
74
|
+
/**
|
|
75
|
+
* Thrown when the flow starts from an incoming-call trigger. Only a real call
|
|
76
|
+
* to a published flow can raise one, so the run would never advance.
|
|
77
|
+
*/
|
|
78
|
+
export declare class InboundVoiceDebugError extends Error {
|
|
79
|
+
readonly instructions: string;
|
|
80
|
+
constructor(triggerLabel: string);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Reject a flow that starts from an incoming-call trigger. Keyed on the
|
|
84
|
+
* trigger, not on voice nodes: an outbound flow carries the same nodes.
|
|
85
|
+
*/
|
|
86
|
+
export declare function assertNotInboundVoiceFlow(workflow: {
|
|
87
|
+
nodes?: readonly unknown[];
|
|
88
|
+
}): void;
|
|
89
|
+
export declare class FlowDebugService {
|
|
90
|
+
private readonly fs;
|
|
91
|
+
constructor();
|
|
92
|
+
/**
|
|
93
|
+
* Pre-flight check: confirm the Flow project lives inside a `.uipx`
|
|
94
|
+
* solution wrapper by walking ancestor directories.
|
|
95
|
+
*
|
|
96
|
+
* Throws {@link MissingSolutionWrapperError} if no `.uipx` is found.
|
|
97
|
+
* Reuses {@link findNearestParentUipxFile} from `@uipath/solution-sdk`
|
|
98
|
+
* to share the ancestor-walk semantics with `uip solution projects import`.
|
|
99
|
+
*
|
|
100
|
+
* Returns the absolute path of the `.uipx` file when present so callers
|
|
101
|
+
* can log it without re-walking.
|
|
102
|
+
*/
|
|
103
|
+
assertEnclosingSolution(projectPath: string): Promise<string>;
|
|
104
|
+
/**
|
|
105
|
+
* Pre-flight check: confirm the Flow project's directory is actually
|
|
106
|
+
* listed in the enclosing solution's `.uipx` `Projects[]` manifest.
|
|
107
|
+
*
|
|
108
|
+
* Throws {@link UnregisteredProjectError} when the manifest does not
|
|
109
|
+
* include the project. Comparison is canonicalized via `realpath()`
|
|
110
|
+
* so case-insensitive filesystems and symlinks don't yield false
|
|
111
|
+
* negatives.
|
|
112
|
+
*
|
|
113
|
+
* This is the local guard for MST-10004: without it, Studio Web
|
|
114
|
+
* silently accepts the upload and then rejects the import with an
|
|
115
|
+
* opaque `code:20001 / "The solution archive does not contain any
|
|
116
|
+
* valid projects."` HTTP 400. By failing locally, the agent (or
|
|
117
|
+
* human) gets the exact repair command (`uip solution projects add`)
|
|
118
|
+
* before any network I/O.
|
|
119
|
+
*/
|
|
120
|
+
assertProjectRegisteredInSolution(projectPath: string, solutionFile: string): Promise<void>;
|
|
121
|
+
/**
|
|
122
|
+
* Read and parse a .flow file.
|
|
123
|
+
*/
|
|
124
|
+
readFlowFile(flowFilePath: string): Promise<Workflow>;
|
|
125
|
+
/**
|
|
126
|
+
* Read a .bpmn file and return the raw XML string.
|
|
127
|
+
*/
|
|
128
|
+
readBpmnFile(bpmnFilePath: string): Promise<string>;
|
|
129
|
+
/**
|
|
130
|
+
* Convert a Workflow to BPMN XML using @uipath/flow-converter.
|
|
131
|
+
*
|
|
132
|
+
* The inline-agent `Orchestrator.StartInlineAgentJob` activity's
|
|
133
|
+
* `entryPoint` must stay BARE (`<projectId>/agent.json`, no `content/`
|
|
134
|
+
* prefix). At debug time Orchestrator's debug-flow detector resolves the
|
|
135
|
+
* agent by matching the activity `entryPoint` against the
|
|
136
|
+
* `FpsProperties.debug.master.processes[].entryPointPath` entry, and that
|
|
137
|
+
* entry uses the bare path. A `content/`-prefixed activity entryPoint never
|
|
138
|
+
* matches, so the agent faults with `[170007]` "the job's associated
|
|
139
|
+
* process could not be found" (verified byte-for-byte against a working
|
|
140
|
+
* Studio Web debug capture, which also emits the bare path).
|
|
141
|
+
*
|
|
142
|
+
* We therefore do NOT call `setPublishIntentOnInlineAgents` here — that
|
|
143
|
+
* marks agents `__packageIntent = "Publish"`, which makes the converter
|
|
144
|
+
* emit the `content/`-prefixed form used by real publish/deploy. That form
|
|
145
|
+
* is wrong for a debug session.
|
|
146
|
+
*/
|
|
147
|
+
convertToBpmn(workflow: Workflow, projectDir?: string): Promise<string>;
|
|
148
|
+
/**
|
|
149
|
+
* Reconstruct inline-agent `agentInputVariables` from each agent's
|
|
150
|
+
* `agent.json` `inputSchema` when the flow node leaves them empty.
|
|
151
|
+
*
|
|
152
|
+
* Studio Web keeps the input binding in the agent's `inputSchema` and rebuilds
|
|
153
|
+
* the node's `agentInputVariables` from it on load; the `.flow` it writes
|
|
154
|
+
* carries an empty `agentInputVariables`. The CLI converter derives the
|
|
155
|
+
* agent's `JobArguments` from `agentInputVariables` (it never reads
|
|
156
|
+
* `agent.json`), so an SW-authored flow would otherwise convert to an agent
|
|
157
|
+
* with empty input — works in SW, fails on `uip maestro flow debug`.
|
|
158
|
+
*
|
|
159
|
+
* We mirror SW: for each inline-agent node, read `<projectDir>/<source>/agent.json`
|
|
160
|
+
* and **reconcile** the node's `agentInputVariables` against the agent's
|
|
161
|
+
* `inputSchema.properties` — the contract the runtime actually binds. We
|
|
162
|
+
* *add* a derived entry for every schema input LEAF the node is missing and
|
|
163
|
+
* *preserve* every entry the node already declares, so a custom/divergent
|
|
164
|
+
* binding is never clobbered. Leaves are enumerated encoding-agnostically
|
|
165
|
+
* (MST-12020): a flat key (`<node>__output__<field>`) is one leaf; a NESTED
|
|
166
|
+
* schema's `x-uipath-container` trees are descended to their leaves — so an
|
|
167
|
+
* agent.json authored by a nested-flag canvas still reconciles per-field
|
|
168
|
+
* bindings instead of one un-navigable whole-container binding. Either way
|
|
169
|
+
* the derived id is the FLAT spelling (matching the packager's flat-healed
|
|
170
|
+
* prompt tokens), the binding is `=$vars.<node>.output.<field>`
|
|
171
|
+
* (`metadata`-rooted paths → `$metadata`), and "already declares" is
|
|
172
|
+
* checked on the CANONICAL dotted path so a flat and a nested spelling of
|
|
173
|
+
* the same input never produce a duplicate JobArgument.
|
|
174
|
+
*
|
|
175
|
+
* Reconciling (rather than only filling an empty list) also catches drift: an
|
|
176
|
+
* `agent.json` that gained an input the `.flow` node never re-wired would
|
|
177
|
+
* otherwise silently drop that input at debug. We therefore always read the
|
|
178
|
+
* agent.json. Best-effort — a missing/unreadable `agent.json` or absent
|
|
179
|
+
* `inputSchema` leaves the node as-is, and a node that already covers every
|
|
180
|
+
* schema key is left untouched (no spurious mutation).
|
|
181
|
+
*/
|
|
182
|
+
private hydrateInlineAgentInputs;
|
|
183
|
+
/**
|
|
184
|
+
* Generate project files (operate.json, entry-points.json, bindings_v2.json,
|
|
185
|
+
* package-descriptor.json) into a temporary directory alongside the BPMN and .flow file.
|
|
186
|
+
*/
|
|
187
|
+
generateProjectFiles(flowData: Workflow, bpmnXml: string, flowFileContent?: string, startEventId?: string, profile?: RuntimeProfile): Promise<string>;
|
|
188
|
+
/**
|
|
189
|
+
* Build a .uis solution package from the generated project files.
|
|
190
|
+
* Creates a solution wrapper, zips it into .uis format.
|
|
191
|
+
*/
|
|
192
|
+
buildSolutionPackage(projectDir: string, projectName: string): Promise<string>;
|
|
193
|
+
private writeSingleProjectSolutionMetadata;
|
|
194
|
+
/**
|
|
195
|
+
* Build the `debug.master.processes` descriptors for every in-solution
|
|
196
|
+
* project so a flow-as-node callee's `Orchestrator.StartAgenticProcess`
|
|
197
|
+
* resolves the child — the same FpsProperties registry inline agents use,
|
|
198
|
+
* so no Orchestrator provisioning or deployed release is needed.
|
|
199
|
+
*
|
|
200
|
+
* Each descriptor pairs the Studio Web-minted `projectId` (from the upload
|
|
201
|
+
* result, matched by folder name) and the uploaded `solutionId` with the
|
|
202
|
+
* project's type + per-project entry point read from the staged solution.
|
|
203
|
+
* The lead Flow being debugged gets the exact BPMN + start node the session
|
|
204
|
+
* launches from; standalone Agent projects are skipped (inline agents are
|
|
205
|
+
* registered separately via `inlineAgents`).
|
|
206
|
+
*/
|
|
207
|
+
private buildSolutionProjectDescriptors;
|
|
208
|
+
/**
|
|
209
|
+
* Compile a sibling flow project's `.flow` to BPMN + packaging artifacts
|
|
210
|
+
* in place inside its staged directory. Sibling flow projects are copied
|
|
211
|
+
* from the solution with only their `.flow` source; a flow-as-node call
|
|
212
|
+
* needs the compiled `.bpmn` (and bindings/manifests) in the package or the
|
|
213
|
+
* child job faults with 180003 (FileMissingInProjectArchive). Mirrors the
|
|
214
|
+
* artifact generation the lead flow already gets.
|
|
215
|
+
*/
|
|
216
|
+
private generateSiblingFlowPackage;
|
|
217
|
+
/**
|
|
218
|
+
* Write a flow project's debug-package artifacts (`.flow`, compiled
|
|
219
|
+
* `.bpmn`, packaging manifests, resolved flow) into `projectDir`. Shared by
|
|
220
|
+
* the lead flow being debugged and each sibling flow-as-node callee so the
|
|
221
|
+
* conversion/packaging pipeline lives in one place. Returns the values the
|
|
222
|
+
* lead path needs downstream (entry points, start node, bpmn file name).
|
|
223
|
+
*/
|
|
224
|
+
private writeFlowProjectPackage;
|
|
225
|
+
/** Map a raw `.uiproj` ProjectType to the BeginSession wire vocabulary. */
|
|
226
|
+
private toWireProjectType;
|
|
227
|
+
/**
|
|
228
|
+
* Normalize an entry point to the `debug.master` form: no leading slash,
|
|
229
|
+
* no `content/` prefix (e.g. `/Flow.bpmn#start` or
|
|
230
|
+
* `content/new.bpmn#manualTrigger1` → `Flow.bpmn#start` / `new.bpmn#manualTrigger1`).
|
|
231
|
+
*/
|
|
232
|
+
private normalizeEntryPoint;
|
|
233
|
+
/** Read the first `entry-points.json` filePath in a project dir, or "". */
|
|
234
|
+
private readFirstEntryPointPath;
|
|
235
|
+
/**
|
|
236
|
+
* Derive an entry point from a project's compiled `.bpmn` start event,
|
|
237
|
+
* for projects whose `entry-points.json` is empty (ProcessOrchestration).
|
|
238
|
+
* Matches Studio Web's `/{bpmn}#{startEvent}` form (leading slash kept).
|
|
239
|
+
* Returns "" when no `.bpmn` is present.
|
|
240
|
+
*/
|
|
241
|
+
private deriveEntryPointFromBpmn;
|
|
242
|
+
/** Read a project's `.uiproj` `ProjectType`, or undefined if unavailable. */
|
|
243
|
+
private readProjectTypeRaw;
|
|
244
|
+
/**
|
|
245
|
+
* Build a name→type map from the `.uipx` Projects array so
|
|
246
|
+
* {@link buildSolutionProjectDescriptors} can resolve the type for
|
|
247
|
+
* projects that have no `project.uiproj` (JS/TS Functions).
|
|
248
|
+
*/
|
|
249
|
+
static buildProjectTypeMap(projects?: Array<{
|
|
250
|
+
ProjectRelativePath: string;
|
|
251
|
+
Type?: unknown;
|
|
252
|
+
}>): Map<string, string>;
|
|
253
|
+
/**
|
|
254
|
+
* Full Studio Web debug flow from a flow project directory:
|
|
255
|
+
* 1. Validate project directory has required files
|
|
256
|
+
* 2. Read .flow file + generate packaging artifacts on the fly
|
|
257
|
+
* 3. Build .uis solution package containing ALL projects in the solution
|
|
258
|
+
* 5. Upload/overwrite to Studio Web → get projectId + solutionId
|
|
259
|
+
* 6. Begin debug session in Orchestrator → get jobKey
|
|
260
|
+
* 7. Create debug instance in PIMS with solutionId + projectId
|
|
261
|
+
* 8. Poll PIMS debug-instances for completion
|
|
262
|
+
*/
|
|
263
|
+
executeProjectViaStudioWeb(projectPath: string, config: StudioWebDebugConfig, callbacks?: DebugCallbacks, pollInterval?: number, options?: {
|
|
264
|
+
inputs?: Record<string, unknown>;
|
|
265
|
+
maxPolls?: number;
|
|
266
|
+
/**
|
|
267
|
+
* Upload the solution and stop. For a flow only a chat UI can drive,
|
|
268
|
+
* a debug instance would sit unused — and its message subscription
|
|
269
|
+
* would block the next run — so the CLI hands the user the designer
|
|
270
|
+
* URL instead of starting a session nobody can advance.
|
|
271
|
+
*/
|
|
272
|
+
uploadOnly?: boolean;
|
|
273
|
+
}): Promise<DebugResult | StudioWebUploadResult>;
|
|
274
|
+
/**
|
|
275
|
+
* Full Studio Web debug flow:
|
|
276
|
+
* 1. Read .flow/.bpmn file
|
|
277
|
+
* 2. Convert to BPMN (if .flow)
|
|
278
|
+
* 3. Generate project files
|
|
279
|
+
* 4. Build .uis solution package
|
|
280
|
+
* 5. Upload to Studio Web → get projectId + solutionId
|
|
281
|
+
* 6. Begin debug session in Orchestrator → get jobKey
|
|
282
|
+
* 7. Create debug instance in PIMS with solutionId + projectId
|
|
283
|
+
* 8. Poll PIMS debug-instances for completion
|
|
284
|
+
*/
|
|
285
|
+
executeViaStudioWeb(filePath: string, config: StudioWebDebugConfig, callbacks?: DebugCallbacks, pollInterval?: number, options?: {
|
|
286
|
+
inputs?: Record<string, unknown>;
|
|
287
|
+
keep?: boolean;
|
|
288
|
+
maxPolls?: number;
|
|
289
|
+
}): Promise<DebugResult>;
|
|
290
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { Evaluation, EvaluationSet, Evaluator, EvaluationCriteria as SchemaEvaluationCriteria, Simulation } from "./flow-eval-schema/index.js";
|
|
1
|
+
import type { Evaluation, EvaluationSet, Evaluator, EvaluationCriteria as SchemaEvaluationCriteria, Simulation, SimulationStrategy } from "./flow-eval-schema/index.js";
|
|
2
2
|
export type EvaluationCriteria = SchemaEvaluationCriteria;
|
|
3
3
|
export type FlowEvaluator = Evaluator;
|
|
4
4
|
export type FlowEvaluation = Evaluation;
|
|
5
5
|
export type FlowEvaluationSet = EvaluationSet;
|
|
6
|
-
export type { Simulation };
|
|
6
|
+
export type { Simulation, SimulationStrategy };
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { StudioWebDebugConfig } from "./flow-debug-service.js";
|
|
1
2
|
import { type EvaluatorTypeId } from "./flow-eval-schema/index.js";
|
|
2
3
|
import type { EvaluationCriteria, FlowEvaluator } from "./flow-eval-types.js";
|
|
3
4
|
export declare function isRecord(value: unknown): value is Record<string, unknown>;
|
|
@@ -11,4 +12,32 @@ export declare function buildEvaluatorConfig(typeId: EvaluatorTypeId, options: {
|
|
|
11
12
|
model?: string;
|
|
12
13
|
prompt?: string;
|
|
13
14
|
}): Record<string, unknown>;
|
|
15
|
+
/**
|
|
16
|
+
* Resolves the current login status into a {@link StudioWebDebugConfig}.
|
|
17
|
+
* Throws if the login is missing any required field, including organizationName.
|
|
18
|
+
*/
|
|
19
|
+
export declare function resolveLoginConfig(): Promise<StudioWebDebugConfig>;
|
|
20
|
+
/**
|
|
21
|
+
* Resolves the login fields needed by {@link FlowEvalRunApi} metadata calls.
|
|
22
|
+
* Does not require organizationName — only the base URL, org/tenant IDs,
|
|
23
|
+
* and auth token.
|
|
24
|
+
*/
|
|
25
|
+
export declare function resolveEvalApiConfig(): Promise<{
|
|
26
|
+
baseUrl: string;
|
|
27
|
+
organizationId: string;
|
|
28
|
+
tenantName: string;
|
|
29
|
+
tenantId: string;
|
|
30
|
+
authToken: string;
|
|
31
|
+
}>;
|
|
32
|
+
/**
|
|
33
|
+
* Finds the definition entry matching a node's type (and optionally version)
|
|
34
|
+
* from the flow's definitions array. Pure logic, no I/O.
|
|
35
|
+
*
|
|
36
|
+
* BEST-EFFORT read variant of `findNodeDefinition` (definitions-lookup.ts):
|
|
37
|
+
* when the strict lookup resolves nothing (several versions, none matching),
|
|
38
|
+
* this falls back to the first same-type entry — display/read paths prefer a
|
|
39
|
+
* best guess over nothing. Paths that WRITE to the definition (or suppress
|
|
40
|
+
* diagnostics based on it) must use the strict helper directly.
|
|
41
|
+
*/
|
|
42
|
+
export declare function findMatchingDefinition(nodeType: string, typeVersion: string | undefined, definitions: Array<Record<string, unknown>>): Record<string, unknown> | undefined;
|
|
14
43
|
export declare function buildDefaultCriteria(evaluators: FlowEvaluator[], expectedOutput: Record<string, unknown> | undefined, searchText: string | undefined): Record<string, EvaluationCriteria | null | undefined>;
|
|
@@ -309,6 +309,45 @@ export declare class FlowValidateService {
|
|
|
309
309
|
* `validateGlobalVariableUniqueness`.
|
|
310
310
|
*/
|
|
311
311
|
private validateGlobalTriggerBindings;
|
|
312
|
+
/**
|
|
313
|
+
* Bare `$vars.<id>` read of a trigger-scoped input (UV-16316).
|
|
314
|
+
*
|
|
315
|
+
* When an `in` global declares a `triggerNodeId` that points at a real
|
|
316
|
+
* trigger node in this scope, the runtime surfaces that value ONLY under the
|
|
317
|
+
* trigger's output — `$vars.<triggerNodeId>.output.<id>`. A bare `$vars.<id>`
|
|
318
|
+
* read does not address the trigger input; it resolves today only because a
|
|
319
|
+
* `core.trigger.manual` node also emits a process-level input of the same
|
|
320
|
+
* name, so re-pointing the flow at a connector or scheduled trigger makes the
|
|
321
|
+
* bare read resolve to null and the flow faults or silently uses a wrong
|
|
322
|
+
* value.
|
|
323
|
+
*
|
|
324
|
+
* `--strict-expressions` already caught this through the expression type
|
|
325
|
+
* checker (the bare name is not on the `$vars` type for a trigger-scoped
|
|
326
|
+
* input), but plain `flow validate` — the default, and what the maestro-flow
|
|
327
|
+
* skill tells agents to run — returned Valid, so the silent-wrong-value path
|
|
328
|
+
* stayed open by default. This structural check moves that one rule into the
|
|
329
|
+
* default run; every other expression-type check stays behind
|
|
330
|
+
* `--strict-expressions`.
|
|
331
|
+
*
|
|
332
|
+
* Severity: `error` — the bare read addresses nothing the trigger produces,
|
|
333
|
+
* so the value is null or wrong; failing validation is the only way to close
|
|
334
|
+
* the default path. Scope-local, mirroring `validateGlobalTriggerBindings`.
|
|
335
|
+
* A global whose `triggerNodeId` is missing or points at a non-trigger is
|
|
336
|
+
* left to `validateGlobalTriggerBindings` / `validateUnboundInputGlobals`, so
|
|
337
|
+
* one fact is reported once.
|
|
338
|
+
*
|
|
339
|
+
* References come from `collectVarsRefs` (vars-reference-rule.ts), the same
|
|
340
|
+
* extraction `validateVarsReferences` uses, so this rule inherits its chain
|
|
341
|
+
* parser (dot form, bracket form and optional chaining all parse to the same
|
|
342
|
+
* segments), its comment stripping, its skip of the CLI-owned connector
|
|
343
|
+
* `inputs.detail.configuration` blob, and its walk of `variables.variableUpdates`.
|
|
344
|
+
* It parts company on one judgement: text that is not code. `collectVarsRefs`
|
|
345
|
+
* tags each reference with `inProse` and leaves the call to the caller;
|
|
346
|
+
* this rule drops those, because it reports a VALID id and "$vars.<id>" in
|
|
347
|
+
* a help string, a prompt or a regex is ordinary text, while a template
|
|
348
|
+
* interpolation (`${$vars.<id>}`) is code and stays a read.
|
|
349
|
+
*/
|
|
350
|
+
private validateTriggerScopedBareVarReads;
|
|
312
351
|
/**
|
|
313
352
|
* Entry-point contract integrity for flow inputs (root-cause:
|
|
314
353
|
* skill-flow-calculator).
|
|
@@ -8,3 +8,11 @@ import type { FlowNodeValidator } from "./types.js";
|
|
|
8
8
|
* pluggability was introduced.
|
|
9
9
|
*/
|
|
10
10
|
export declare const connectorNodeValidator: FlowNodeValidator;
|
|
11
|
+
/**
|
|
12
|
+
* The `essentialConfiguration` object inside the CLI-owned `=jsonString:`
|
|
13
|
+
* configuration blob, or `undefined` for a missing, malformed or non-object
|
|
14
|
+
* blob (`=jsonString:null` parses to `null`). The one parser behind every
|
|
15
|
+
* read of that blob in this file (and the connector-binding validator's MCP
|
|
16
|
+
* node identification).
|
|
17
|
+
*/
|
|
18
|
+
export declare function readEssentialConfiguration(detail: Record<string, unknown>): Record<string, unknown> | undefined;
|
|
@@ -40,7 +40,14 @@
|
|
|
40
40
|
* 3. the second segment is an output the producer declares (its instance
|
|
41
41
|
* `outputs` or its definition's `outputDefinition`), in every reference
|
|
42
42
|
* form — dot-form `=js:` inputs were left to the schema rule until it
|
|
43
|
-
* stopped running
|
|
43
|
+
* stopped running — EXCEPT a Decision's `matchedCase`/`matchedCaseId`
|
|
44
|
+
* (flow-schema's `SYNTHETIC_GATEWAY_OUTPUT_KEYS`), which the registry
|
|
45
|
+
* declares but the packed `inclusiveGateway` never populates, so a read is
|
|
46
|
+
* always null at runtime and is flagged even though the name is declared
|
|
47
|
+
* (UV-16500). Always an error, `outputs.*.source` included — see
|
|
48
|
+
* `decisionUnpopulatedOutputIssue`. Switch shares this gap and is deferred
|
|
49
|
+
* to a follow-up gated on the archive scan, not left out for lack of
|
|
50
|
+
* evidence;
|
|
44
51
|
* 4. an identifier read on an output the definition types as `array` — or
|
|
45
52
|
* a connector `output` whose `inputs.detail.inputMetadata.operation` is
|
|
46
53
|
* `list` (every configured list node carries it; the `definitions[]`
|
|
@@ -54,9 +61,11 @@
|
|
|
54
61
|
* 5. an inline-agent input binding (`agentInputVariables[].binding`) names a
|
|
55
62
|
* node that runs on EVERY path to the agent — a parallel branch counts, an
|
|
56
63
|
* exclusive branch does not (`[400300]` is certain on the other arm).
|
|
57
|
-
* On agent bindings
|
|
58
|
-
* and output-name checks are
|
|
59
|
-
* reads the agent.json schema
|
|
64
|
+
* On agent bindings this check, (4) and the Decision `matchedCase*` half of
|
|
65
|
+
* (3) run: their existence, ancestry and ordinary output-name checks are
|
|
66
|
+
* `validateAgentInputScopeRefs`'s (which also reads the agent.json schema
|
|
67
|
+
* keys), so one defect is reported once — but a Decision's declared-yet-
|
|
68
|
+
* unpopulated output passes that check, so this rule owns it here too.
|
|
60
69
|
*
|
|
61
70
|
* Severity: a node INPUT that cannot resolve faults the node, so (1)–(5) are
|
|
62
71
|
* errors there (`validateAgentInputScopeRefs`'s no-edge-path finding on an
|
|
@@ -70,13 +79,23 @@
|
|
|
70
79
|
* (`$vars.x?.output` is `$vars.x.output`); an End's
|
|
71
80
|
* `outputs.*.source` and variable updates evaluate leniently (an undefined
|
|
72
81
|
* intermediate yields null — archived debug-graded passes carry such reads),
|
|
73
|
-
* so every finding there is a warning
|
|
82
|
+
* so every finding there is a warning — except the synthetic gateway outputs
|
|
83
|
+
* of (3), which are null on EVERY path rather than merely sometimes absent, so
|
|
84
|
+
* leniency there returns a wrong answer instead of faulting.
|
|
74
85
|
*
|
|
75
86
|
* JavaScript texts (a Script node's `inputs.script`, `=js:` strings and
|
|
76
87
|
* `jsExpression` objects) are scanned with their `//` and `/* *\/` comments
|
|
77
88
|
* removed, so a commented-out reference left behind by an edit is not a
|
|
78
89
|
* finding. String and template literals are kept: `${$vars.x.y}` is evaluated,
|
|
79
|
-
* and a plain string mentioning `$vars` is rare enough to accept.
|
|
90
|
+
* and a plain string mentioning `$vars` is rare enough to accept. THIS rule
|
|
91
|
+
* keeps accepting it — every finding it makes needs a reference that is
|
|
92
|
+
* already broken (an unknown root, a producer that runs later, an output name
|
|
93
|
+
* the producer does not declare), and a broken reference sitting in prose is
|
|
94
|
+
* rare on top of rare; the 9,016-flow archive scan below was graded with that
|
|
95
|
+
* behavior. The extraction does now tag such references (`ref.inProse`,
|
|
96
|
+
* see `collectVarsRefs`) for callers whose tolerance is lower —
|
|
97
|
+
* `validateTriggerScopedBareVarReads` fires on a perfectly valid id, where
|
|
98
|
+
* "$vars.<id>" in a help string is ordinary prose, so it drops them.
|
|
80
99
|
*
|
|
81
100
|
* Overlap with the expression type checker (`expression-validator.ts`, the
|
|
82
101
|
* canvas's `@uipath/flow-expression-model`): it also reports an unresolved
|
|
@@ -144,13 +163,94 @@ export interface VarsRefOptions {
|
|
|
144
163
|
*/
|
|
145
164
|
extraKnownRoots?: Iterable<string>;
|
|
146
165
|
}
|
|
166
|
+
type FlowNode = VarsRefFlow["nodes"][number];
|
|
167
|
+
export interface VarsRef {
|
|
168
|
+
/** Chain segments after `$vars`, e.g. `["checkTemperature", "output", "matchedCaseId"]`. */
|
|
169
|
+
segments: string[];
|
|
170
|
+
/** Verbatim reference text as written (whitespace removed), for messages. */
|
|
171
|
+
text: string;
|
|
172
|
+
/**
|
|
173
|
+
* Indices of the segments read through `?.`. When segment k is undefined
|
|
174
|
+
* (a missing root, a node that has not run, an undeclared output), the
|
|
175
|
+
* fault happens at the NEXT read — `undefined.<k+1>` — so the read is
|
|
176
|
+
* undefined-safe exactly when segment k+1 is optional (`a?.b.c` still
|
|
177
|
+
* throws at `.c` when `a` is defined and `a.b` is not).
|
|
178
|
+
*/
|
|
179
|
+
guarded: ReadonlySet<number>;
|
|
180
|
+
/**
|
|
181
|
+
* The reference sits in text the runtime never evaluates — quoted prose
|
|
182
|
+
* (`"mentions $vars.x"`), a regex pattern, or a block comment inside a
|
|
183
|
+
* `${…}` — so nothing reads it. A template interpolation itself is code,
|
|
184
|
+
* so `` `${$vars.x}` `` is false. Always false for a non-JavaScript field,
|
|
185
|
+
* where the whole value is the expression and there is no quoting to read.
|
|
186
|
+
*/
|
|
187
|
+
inProse: boolean;
|
|
188
|
+
}
|
|
189
|
+
export interface ScannedJsText {
|
|
190
|
+
/** The source with its top-level comments removed. */
|
|
191
|
+
text: string;
|
|
192
|
+
/**
|
|
193
|
+
* Half-open `[start, end)` spans of `text` the runtime never evaluates as
|
|
194
|
+
* code: the inside of a `'…'`, `"…"` or backtick literal, a `/…/` regex
|
|
195
|
+
* pattern, and a block comment kept verbatim inside a `${…}`. A template
|
|
196
|
+
* literal's interpolations are otherwise NOT in here — they are live code,
|
|
197
|
+
* so `` `${$vars.x}` `` reads `$vars.x` and `"mentions $vars.x"` does not.
|
|
198
|
+
* Ranges are ascending and never overlap.
|
|
199
|
+
*/
|
|
200
|
+
proseRanges: Array<[number, number]>;
|
|
201
|
+
}
|
|
147
202
|
/**
|
|
148
|
-
*
|
|
149
|
-
*
|
|
150
|
-
*
|
|
151
|
-
*
|
|
152
|
-
*
|
|
153
|
-
*
|
|
203
|
+
* Strip comments and record which parts of the result are not live code.
|
|
204
|
+
*
|
|
205
|
+
* A `${…}` body is copied verbatim rather than stripped, which a spec pins —
|
|
206
|
+
* `` `a ${b // c} d` `` has no newline for its comment to end at, and consuming
|
|
207
|
+
* to end-of-input would eat the closing brace. Comments there are therefore
|
|
208
|
+
* TAGGED as prose instead of removed: a block comment by its delimiters, a line
|
|
209
|
+
* comment up to the newline or the `}` that closes the interpolation, whichever
|
|
210
|
+
* comes first. Nested string literals and regex patterns inside an interpolation
|
|
211
|
+
* are tagged too, so `` `${"$vars.x"}` `` is prose and `` `${$vars.x}` `` is a
|
|
212
|
+
* read. The one cost of stopping at `}`: a brace in such a comment ends the
|
|
213
|
+
* interpolation early, so code after it up to the closing backtick is tagged
|
|
214
|
+
* prose — a read there is missed. Rare, and it fails open.
|
|
215
|
+
*/
|
|
216
|
+
export declare function scanJsText(source: string): ScannedJsText;
|
|
217
|
+
/** One authored `$vars` reference, with the node and field it was written in. */
|
|
218
|
+
export interface VarsRefOccurrence {
|
|
219
|
+
nodeId: string;
|
|
220
|
+
/** Path inside the node, e.g. `inputs.script`, `outputs.summary.source`, `variableUpdates[0]`. */
|
|
221
|
+
fieldPath: string;
|
|
222
|
+
isAgentBinding: boolean;
|
|
223
|
+
/**
|
|
224
|
+
* The reference sits inside a larger expression rather than BEING the whole
|
|
225
|
+
* field value (`=js:$vars.x.output.issues` is not embedded; a Script body
|
|
226
|
+
* that mentions it is).
|
|
227
|
+
*/
|
|
228
|
+
embedded: boolean;
|
|
229
|
+
ref: VarsRef;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Every `$vars` reference an author wrote on these nodes — the single
|
|
233
|
+
* extraction every `$vars` rule shares, so none of them re-derives "what counts
|
|
234
|
+
* as an authored expression".
|
|
235
|
+
*
|
|
236
|
+
* It walks the same fields as the rule below (node `inputs`, `outputs` and the
|
|
237
|
+
* node's entry in `variables.variableUpdates`), skips the CLI-owned connector
|
|
238
|
+
* `inputs.detail.configuration` blob (a serialized manifest, not an authored
|
|
239
|
+
* expression), strips `//` and `/* *\/` comments out of JavaScript texts, and
|
|
240
|
+
* parses each chain with `parseRefs` — so dot form, bracket form
|
|
241
|
+
* (`$vars['a']['b']`, `$vars["a.b"]`) and optional chaining all come back as
|
|
242
|
+
* the same `segments` array.
|
|
243
|
+
*
|
|
244
|
+
* Quoted text is kept, not dropped, and each reference is tagged with
|
|
245
|
+
* `ref.inProse` so a caller can decide for itself: a reference in
|
|
246
|
+
* prose (`"mentions $vars.x"`) is never read at runtime, but one in a template
|
|
247
|
+
* interpolation (`` `${$vars.x}` ``) is. Callers differ — see
|
|
248
|
+
* `validateVarsReferences` (keeps prose) and `validateTriggerScopedBareVarReads`
|
|
249
|
+
* (drops it).
|
|
250
|
+
*
|
|
251
|
+
* `updatesByNode` is `variables.variableUpdates` — a map of node id → the
|
|
252
|
+
* updates that node applies.
|
|
154
253
|
*/
|
|
155
|
-
export declare function
|
|
254
|
+
export declare function collectVarsRefs(nodes: ReadonlyArray<FlowNode>, updatesByNode?: Record<string, unknown>): VarsRefOccurrence[];
|
|
156
255
|
export declare function validateVarsReferences(flow: VarsRefFlow, options?: VarsRefOptions): ValidationIssue[];
|
|
256
|
+
export {};
|