@uipath/flow-tool 1.204.0-preview.254 → 1.205.0-preview.256

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 (178) hide show
  1. package/README.md +9 -9
  2. package/dist/THIRD-PARTY-NOTICES.md +36 -12
  3. package/dist/{authoring-bppe07p0.js → authoring-e1k40hyw.js} +6 -5
  4. package/dist/{binding-service-9t9gqe9c.js → binding-service-yw91615m.js} +38 -30
  5. package/dist/{connector-service-xm05bmhz.js → connector-service-ttm75a4n.js} +224 -47
  6. package/dist/de-UZI7FJDO-awjpqfz0.js +200 -0
  7. package/dist/{de-MUJPA4EB-dpg7t2rw.js → de-UZI7FJDO-mwvc4cxe.js} +29 -2
  8. package/dist/{de-FGHEJRCI-rv513mfh.js → de-WLW6KWOJ-2qnsqdtw.js} +238 -31
  9. package/dist/debug-conversation-trigger-xsm3ycqx.js +30 -0
  10. package/dist/{debug-http-client-p4kf38yt.js → debug-http-client-yqjzsnhw.js} +5 -4
  11. package/dist/{debug-service-893erynq.js → debug-service-nra3n02y.js} +6 -5
  12. package/dist/{edge-service-rms6p69f.js → edge-service-8fv0m681.js} +16 -12
  13. package/dist/{embedded-file-reader-v8c2yj2a.js → embedded-file-reader-r66242ey.js} +2 -2
  14. package/dist/en-EJCBA3LK-0wb3b1xy.js +146 -0
  15. package/dist/{en-FBPVNKFN-dqt573xn.js → en-EJCBA3LK-dtpdghgj.js} +12 -4
  16. package/dist/{en-BWGKA5OE-1qkvb9rn.js → en-M7GQYBV2-5nfmpnfz.js} +88 -6
  17. package/dist/{es-7SE7HX2X-8yh1aj2y.js → es-4UBUTCQA-m1ytpyx2.js} +29 -2
  18. package/dist/es-4UBUTCQA-t7hsackg.js +200 -0
  19. package/dist/{es-KR3ZSNMP-84zphx0x.js → es-5THCNRFN-tqwyrdgy.js} +235 -28
  20. package/dist/{es-MX-2MYFZU7X-3rek4r73.js → es-MX-5RELIXKI-9jhqtddc.js} +29 -2
  21. package/dist/es-MX-5RELIXKI-jtjbcxbb.js +200 -0
  22. package/dist/{es-MX-XXZJGC4R-2mr8jtgm.js → es-MX-TWZBRAXK-gqd9swzw.js} +237 -30
  23. package/dist/filter-engine-7ep90g7f.js +11 -0
  24. package/dist/{flow-api-kjvpsxhw.js → flow-api-sat010z1.js} +16 -10
  25. package/dist/{flow-debug-service-3wtns3k7.js → flow-debug-service-cgawm96k.js} +96 -58
  26. package/dist/{flow-eval-node-target-ee6vbq8a.js → flow-eval-node-target-dah1gmmh.js} +17 -17
  27. package/dist/flow-eval-run-api-xdygjzfv.js +13 -0
  28. package/dist/{flow-eval-run-service-0ne6bjff.js → flow-eval-run-service-03j1szf6.js} +73 -80
  29. package/dist/{flow-eval-service-kbbq3wwq.js → flow-eval-service-9j46ta9k.js} +167 -415
  30. package/dist/{flow-init-sdk-source-z9qx1zkt.js → flow-init-sdk-source-xvdvkq7d.js} +6 -5
  31. package/dist/{flow-init-service-cefvmek0.js → flow-init-service-0a4y3a46.js} +19 -15
  32. package/dist/{flow-io-ykx6eb1v.js → flow-io-1wabd32s.js} +15 -11
  33. package/dist/{flow-migrate-service-c4hcjfc8.js → flow-migrate-service-mkqpbwtv.js} +16 -12
  34. package/dist/{flow-pack-service-6wqe1mj3.js → flow-pack-service-7dj2hhyz.js} +47 -38
  35. package/dist/flow-validate-service-1ktjayjv.js +70 -0
  36. package/dist/{fr-Y6NPVODW-8vr1ja4b.js → fr-CERONSRC-edpxhbmb.js} +237 -30
  37. package/dist/{fr-MDFKNZ4C-h4a122k9.js → fr-VBM5WRC2-63z7w4mh.js} +29 -2
  38. package/dist/fr-VBM5WRC2-707ha692.js +200 -0
  39. package/dist/{governance-fetcher-fgwewrfq.js → governance-fetcher-76hxssjm.js} +7 -6
  40. package/dist/{hitl-service-0tct4x3e.js → hitl-service-vcbhd4cb.js} +15 -11
  41. package/dist/{index-aaq9rwfv.js → index-1b2je9n2.js} +1088 -233
  42. package/dist/index-d090f35d.js +66 -0
  43. package/dist/{index-yj4xk2aw.js → index-dgdnbb2g.js} +7 -5
  44. package/dist/{index-ng2f77my.js → index-fyc0k5dd.js} +985 -617
  45. package/dist/{index-tzky1ynd.js → index-hz008fep.js} +6 -5
  46. package/dist/{index-vrhcbxnk.js → index-nsn889vf.js} +6 -5
  47. package/dist/{index-2s8rmmw6.js → index-sqhbn7ew.js} +4 -4
  48. package/dist/{index-tnz5ks4t.js → index-wycgq0ff.js} +65 -2230
  49. package/dist/index.js +17 -14
  50. package/dist/init.js +19 -15
  51. package/dist/inline-entity-resolver-64pqwk86.js +45 -0
  52. package/dist/input-reader-n7kzdrev.js +12 -0
  53. package/dist/{ja-UTQEAP34-8e0q6swp.js → ja-43QL7CGO-c3q8gre9.js} +29 -2
  54. package/dist/ja-43QL7CGO-h6qfxfay.js +200 -0
  55. package/dist/{ja-Q5PXKJ2V-p4msxzjd.js → ja-U2MCNHGT-gz0ap1jk.js} +235 -28
  56. package/dist/{known-types-q6fcyq2e.js → known-types-3025scz1.js} +5 -5
  57. package/dist/ko-TLL6Z6CD-ag6gjynr.js +200 -0
  58. package/dist/{ko-AXCHW2OK-askct7f6.js → ko-TLL6Z6CD-wrt3n8a9.js} +29 -2
  59. package/dist/{ko-AYBDSRZG-41mdmsg1.js → ko-XAUYQWDR-zp81gjp4.js} +237 -30
  60. package/dist/{maestro-automate-entry-qak46eg0.js → maestro-automate-entry-6f9act3w.js} +2 -2
  61. package/dist/{node-ey7dteda.js → node-hz6cvp9d.js} +29 -15
  62. package/dist/{node-service-z8s4nm09.js → node-service-7wz8gx7h.js} +41 -30
  63. package/dist/{node-strategy-fdnkvq4a.js → node-strategy-1dmmhvf3.js} +1 -1
  64. package/dist/node-sync-service-yvyf7chw.js +61 -0
  65. package/dist/packager-tool-10vc8pq4.js +2 -0
  66. package/dist/{packager-tool-wq9k7pq8.js → packager-tool-2h15x2kb.js} +6 -6
  67. package/dist/{packager-tool-c4909mw9.js → packager-tool-2z0r1f32.js} +668 -57
  68. package/dist/packager-tool-4kr6g0zw.js +16 -0
  69. package/dist/packager-tool-4x7tzvv0.js +1176 -0
  70. package/dist/{packager-tool-d88rqwk8.js → packager-tool-6z1hsm2h.js} +13 -5
  71. package/dist/packager-tool-7hw344bt.js +107 -0
  72. package/dist/{packager-tool-fjcbc1bb.js → packager-tool-7wnxyvf9.js} +519 -437
  73. package/dist/{packager-tool-m8xtf5ej.js → packager-tool-8g5931fz.js} +7 -4
  74. package/dist/{packager-tool-h9tzz0qd.js → packager-tool-961vsbsc.js} +15 -10
  75. package/dist/packager-tool-9era57c0.js +28 -0
  76. package/dist/packager-tool-9gprvfcy.js +23 -0
  77. package/dist/packager-tool-9jxzgsxc.js +14 -0
  78. package/dist/{packager-tool-zxp4hya4.js → packager-tool-a5afh1dc.js} +34 -13
  79. package/dist/{packager-tool-02f63a08.js → packager-tool-apawc11t.js} +88 -762
  80. package/dist/{packager-tool-tf3d2y8z.js → packager-tool-aw9v0raw.js} +2 -2
  81. package/dist/packager-tool-cqtsj6yh.js +2 -0
  82. package/dist/{packager-tool-5nqhxb9e.js → packager-tool-dwd6cc01.js} +16110 -13031
  83. package/dist/{packager-tool-t605qewm.js → packager-tool-dxgrhfq5.js} +2 -2
  84. package/dist/{packager-tool-awkq26v0.js → packager-tool-e7kvq8hf.js} +5 -3
  85. package/dist/{packager-tool-m6abv2vy.js → packager-tool-fjqpf1y6.js} +6 -24
  86. package/dist/{packager-tool-3dc9gz35.js → packager-tool-frjt46rb.js} +1 -1
  87. package/dist/{packager-tool-y8egb0fa.js → packager-tool-gqq3vkgh.js} +2573 -535
  88. package/dist/{packager-tool-w5a1hhyj.js → packager-tool-hxyjn885.js} +13 -2
  89. package/dist/packager-tool-j3228zs9.js +35 -0
  90. package/dist/{packager-tool-hhy1gr2k.js → packager-tool-jgfzfqjm.js} +1 -1
  91. package/dist/{packager-tool-n4m8yrm2.js → packager-tool-kb520rm5.js} +172 -71
  92. package/dist/{packager-tool-4fhedj18.js → packager-tool-kmv2p8z4.js} +20 -8
  93. package/dist/{packager-tool-6h69pd2a.js → packager-tool-kn86394c.js} +127 -61
  94. package/dist/packager-tool-mgcz986r.js +143 -0
  95. package/dist/{packager-tool-3h2ktz6q.js → packager-tool-myhbp761.js} +11 -1
  96. package/dist/{packager-tool-2xycknte.js → packager-tool-ns9xn7zq.js} +13 -13
  97. package/dist/{packager-tool-vbfz8k7w.js → packager-tool-p8gab24q.js} +52 -32
  98. package/dist/{packager-tool-stq8800d.js → packager-tool-pacrqxv2.js} +17 -4
  99. package/dist/{packager-tool-7q6z6npd.js → packager-tool-pcvhcn2k.js} +93 -11
  100. package/dist/packager-tool-phw8ydjx.js +331 -0
  101. package/dist/{packager-tool-c7nmvv5g.js → packager-tool-q8akejne.js} +6 -4
  102. package/dist/packager-tool-qcqb9hf8.js +26 -0
  103. package/dist/{packager-tool-n89vrpex.js → packager-tool-skcjythd.js} +10907 -25608
  104. package/dist/{packager-tool-vnwq9t1v.js → packager-tool-sphnextf.js} +5 -6
  105. package/dist/{packager-tool-1ca047de.js → packager-tool-sqpesv2e.js} +12 -56
  106. package/dist/packager-tool-t7ahhaer.js +877 -0
  107. package/dist/{packager-tool-0d375dbz.js → packager-tool-thnkpqwc.js} +1802 -378
  108. package/dist/{packager-tool-peawy22c.js → packager-tool-tqjfdpda.js} +53 -8
  109. package/dist/{packager-tool-qsa2nf80.js → packager-tool-vd3rn4fj.js} +463 -327
  110. package/dist/{packager-tool-5tjzg56t.js → packager-tool-wh660fny.js} +1 -1
  111. package/dist/{packager-tool-tyg399d6.js → packager-tool-wze74wyk.js} +74 -47
  112. package/dist/{packager-tool-arbswyqr.js → packager-tool-x20684x5.js} +1 -1
  113. package/dist/packager-tool-xj0agqpk.js +11 -0
  114. package/dist/packager-tool-xk78j7dz.js +1256 -0
  115. package/dist/{packager-tool-py93409h.js → packager-tool-ymma2s85.js} +2 -2
  116. package/dist/packager-tool-z0yxfhdj.js +40 -0
  117. package/dist/packager-tool.js +13 -10
  118. package/dist/{pt-BR-TKHNHMET-sn91xyq0.js → pt-BR-GNQNAAZ2-xadharv4.js} +237 -30
  119. package/dist/{pt-BR-Y6K6XHXK-mp3hwhw1.js → pt-BR-USP2T7GD-pedn77m1.js} +29 -2
  120. package/dist/pt-BR-USP2T7GD-rppy42ym.js +200 -0
  121. package/dist/{pt-3DIO5QWG-59b3f4bc.js → pt-RMIAKZB4-67enhx3m.js} +29 -2
  122. package/dist/pt-RMIAKZB4-t80exmp7.js +200 -0
  123. package/dist/{pt-ROXU257Y-2f6bxev4.js → pt-TO2DARY2-ftcce1bv.js} +237 -30
  124. package/dist/ro-GHOBYW2S-4zevc9dy.js +200 -0
  125. package/dist/{ro-BWR3ONRR-vzx3hy8a.js → ro-GHOBYW2S-mhnqsgaa.js} +29 -2
  126. package/dist/{ro-AVAWPKOO-b89pw79r.js → ro-WUYJV6OW-a8d9qy1n.js} +235 -28
  127. package/dist/ru-WBLQ5B2U-dpqvtfwr.js +10 -0
  128. package/dist/services/connector-request-buckets.d.ts +1 -0
  129. package/dist/services/flow-eval-file-store.d.ts +1 -11
  130. package/dist/services/flow-eval-utils.d.ts +1 -32
  131. package/dist/services/flow-validate-service.d.ts +51 -0
  132. package/dist/services/inline-entity-resolver.d.ts +22 -0
  133. package/dist/services/node-service.d.ts +21 -1
  134. package/dist/services/packaging-utils.d.ts +15 -2
  135. package/dist/{shared-utils-pnbvyyb2.js → shared-utils-tqnx96mg.js} +4 -3
  136. package/dist/solution-auth-8qz5pw7z.js +14 -0
  137. package/dist/solution-discovery-vqravtkh.js +44 -0
  138. package/dist/{tidy-service-chs0s9pw.js → tidy-service-tqjea6g2.js} +143 -39
  139. package/dist/tool.js +17 -14
  140. package/dist/{tr-5IIHSFW5-hw4cewew.js → tr-GDTLECMM-k5fhmq13.js} +29 -2
  141. package/dist/tr-GDTLECMM-kngksm3r.js +200 -0
  142. package/dist/{tr-JMIP7ZSL-c39b6pe4.js → tr-M3F5A6AU-bb0tg39m.js} +235 -28
  143. package/dist/utils/flow-io.d.ts +2 -1
  144. package/dist/validation.js +39 -33
  145. package/dist/{variable-service-6ky17hts.js → variable-service-kqnqxmx2.js} +16 -12
  146. package/dist/{wait-for-flow-job-d8m6mqb4.js → wait-for-flow-job-b0vj8828.js} +15 -12
  147. package/dist/{zh-CN-IFFXSEJS-9wm9gmrv.js → zh-CN-C5G4PC7C-ds9gkptg.js} +235 -28
  148. package/dist/zh-CN-I5D7WHBD-ge92tbx9.js +200 -0
  149. package/dist/{zh-CN-R2KU4U5L-tc1hat59.js → zh-CN-I5D7WHBD-sr5h0a98.js} +29 -2
  150. package/dist/{zh-TW-GNKMELBF-j674515r.js → zh-TW-2AVLM723-288pkc1z.js} +29 -2
  151. package/dist/zh-TW-2AVLM723-xsmap3gk.js +200 -0
  152. package/dist/{zh-TW-IYBNYAMG-8727c7v2.js → zh-TW-62HZIG6O-787kdwex.js} +234 -27
  153. package/package.json +2 -2
  154. package/dist/debug-conversation-trigger-mqzrtt1v.js +0 -44
  155. package/dist/flow-eval-run-api-byx3cacw.js +0 -13
  156. package/dist/flow-validate-service-5pbh3s4p.js +0 -64
  157. package/dist/input-reader-vhar4g0k.js +0 -11
  158. package/dist/node-sync-service-ak1wgysc.js +0 -40
  159. package/dist/packager-tool-2m06764j.js +0 -454
  160. package/dist/packager-tool-6c3szt0w.js +0 -265
  161. package/dist/packager-tool-8ak76pc3.js +0 -15
  162. package/dist/packager-tool-pz5nqg0s.js +0 -64
  163. package/dist/packager-tool-t3ysatjd.js +0 -521
  164. package/dist/packager-tool-vd6jt4n8.js +0 -208
  165. package/dist/services/flow-debug-service.d.ts +0 -320
  166. package/dist/services/flow-eval-schema/deterministic-evaluators.d.ts +0 -110
  167. package/dist/services/flow-eval-schema/evaluator-fields.d.ts +0 -66
  168. package/dist/services/flow-eval-schema/helpers.d.ts +0 -9
  169. package/dist/services/flow-eval-schema/index.d.ts +0 -4
  170. package/dist/services/flow-eval-schema/llm-judge-evaluators.d.ts +0 -174
  171. package/dist/services/flow-eval-schema/prompts.d.ts +0 -2
  172. package/dist/services/flow-eval-schema/registry.d.ts +0 -375
  173. package/dist/services/flow-eval-schema/tool-call-evaluators.d.ts +0 -93
  174. package/dist/services/flow-eval-schema/types.d.ts +0 -95
  175. package/dist/services/flow-eval-types.d.ts +0 -6
  176. package/dist/utils/write-resolved-flow.d.ts +0 -7
  177. /package/dist/{headless-45dypanh.js → headless-fw8pwyzm.js} +0 -0
  178. /package/dist/{localization-xecwjpe2.js → localization-d6gjmrsw.js} +0 -0
@@ -1,10 +1,73 @@
1
+ import {
2
+ resolveInlineEntity
3
+ } from "./packager-tool-j3228zs9.js";
4
+ import {
5
+ getConnectorInfo,
6
+ getNode,
7
+ isConnectorNode,
8
+ isTenantManifestInvalidError
9
+ } from "./packager-tool-7wnxyvf9.js";
10
+ import {
11
+ explainNodeTypeWithoutProcessResource
12
+ } from "./packager-tool-phw8ydjx.js";
13
+ import {
14
+ isKnownSdkNodeType
15
+ } from "./packager-tool-e7kvq8hf.js";
16
+ import {
17
+ findMatchingDefinition
18
+ } from "./packager-tool-hxyjn885.js";
19
+ import {
20
+ ensureDirectory
21
+ } from "./packager-tool-xk78j7dz.js";
22
+ import {
23
+ readFlowWorkflow,
24
+ writeFlowWorkflow
25
+ } from "./packager-tool-sphnextf.js";
26
+ import {
27
+ bindingNodesOf,
28
+ buildInlineAgentContract,
29
+ createProcessBindings,
30
+ entityScopeKey,
31
+ extractProcessGuid,
32
+ isEntityNodeType,
33
+ isInlineAgentNodeType,
34
+ operateRuntimeOptions,
35
+ readInlineAgentSource
36
+ } from "./packager-tool-thnkpqwc.js";
37
+ import {
38
+ addBinding,
39
+ addNode,
40
+ createBinding,
41
+ generateNodeIdAndName
42
+ } from "./packager-tool-961vsbsc.js";
43
+ import {
44
+ withRuntimeProfile
45
+ } from "./packager-tool-jgfzfqjm.js";
46
+ import {
47
+ defaultEntryPointNodeId
48
+ } from "./packager-tool-qcqb9hf8.js";
49
+ import {
50
+ EntryPointType,
51
+ ProjectType,
52
+ generateBindingsJson,
53
+ generateEntryPointsJson,
54
+ generateOperateJson,
55
+ getBindingResources,
56
+ getEntryPoints,
57
+ isConversationalOrVoiceAgentNodeType,
58
+ mergeBindingResources
59
+ } from "./packager-tool-bhqx9kez.js";
1
60
  import {
2
61
  UIPATH_HOME_DIR,
62
+ logger
63
+ } from "./packager-tool-apawc11t.js";
64
+ import {
3
65
  catchError
4
- } from "./packager-tool-02f63a08.js";
66
+ } from "./packager-tool-t7ahhaer.js";
5
67
  import {
6
68
  getFileSystem
7
- } from "./packager-tool-3h2ktz6q.js";
69
+ } from "./packager-tool-myhbp761.js";
70
+
8
71
  // ../../node_modules/acorn/dist/acorn.mjs
9
72
  var astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 7, 9, 32, 4, 318, 1, 78, 5, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 68, 8, 2, 0, 3, 0, 2, 3, 2, 4, 2, 0, 15, 1, 83, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 7, 19, 58, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 199, 7, 137, 9, 54, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 55, 9, 266, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 10, 5350, 0, 7, 14, 11465, 27, 2343, 9, 87, 9, 39, 4, 60, 6, 26, 9, 535, 9, 470, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4178, 9, 519, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 245, 1, 2, 9, 233, 0, 3, 0, 8, 1, 6, 0, 475, 6, 110, 6, 6, 9, 4759, 9, 787719, 239];
10
73
  var astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 4, 51, 13, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 7, 25, 39, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 39, 27, 10, 22, 251, 41, 7, 1, 17, 5, 57, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 31, 9, 2, 0, 3, 0, 2, 37, 2, 0, 26, 0, 2, 0, 45, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 200, 32, 32, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 24, 43, 261, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 26, 3994, 6, 582, 6842, 29, 1763, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 433, 44, 212, 63, 33, 24, 3, 24, 45, 74, 6, 0, 67, 12, 65, 1, 2, 0, 15, 4, 10, 7381, 42, 31, 98, 114, 8702, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 229, 29, 3, 0, 208, 30, 2, 2, 2, 1, 2, 6, 3, 4, 10, 1, 225, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4381, 3, 5773, 3, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 8489];
@@ -5698,14 +5761,17 @@ var bpmn_spec_default = {
5698
5761
  requiresDiscovery: true,
5699
5762
  isDynamic: true,
5700
5763
  xmlTemplate: `<bpmn:ServiceTask id="{id}" name="{name}">
5701
- <uipath:activity type="Orchestrator.StartAgentJob" version="v1">
5702
- <uipath:context>
5703
- <uipath:input name="name" type="string" value="=bindings.{nameBindingId}" />
5704
- <uipath:input name="folderPath" type="string" value="=bindings.{folderPathBindingId}" />
5705
- </uipath:context>
5706
- <uipath:input name="JobArguments" type="json" target="bodyField"><![CDATA[{}]]></uipath:input>
5707
- <uipath:output name="Process response" type="Orchestrator.RunJob" var="{varId}" />
5708
- </uipath:activity>
5764
+ <bpmn:extensionElements>
5765
+ <uipath:activity version="v1">
5766
+ <uipath:type value="Orchestrator.StartAgentJob" version="v2" />
5767
+ <uipath:context>
5768
+ <uipath:input name="name" type="string" value="=bindings.{nameBindingId}" />
5769
+ <uipath:input name="folderPath" type="string" value="=bindings.{folderPathBindingId}" />
5770
+ </uipath:context>
5771
+ <uipath:input name="JobArguments" type="json" target="bodyField"><![CDATA[{}]]></uipath:input>
5772
+ <uipath:output name="Process response" type="Orchestrator.RunJob" var="{varId}" />
5773
+ </uipath:activity>
5774
+ </bpmn:extensionElements>
5709
5775
  <bpmn:incoming>{incomingEdge}</bpmn:incoming>
5710
5776
  <bpmn:outgoing>{outgoingEdge}</bpmn:outgoing>
5711
5777
  </bpmn:ServiceTask>`,
@@ -5733,7 +5799,7 @@ var bpmn_spec_default = {
5733
5799
  defaultValue: null,
5734
5800
  bindingInfo: {
5735
5801
  resource: "BusinessRule",
5736
- resourceKeyPattern: "${metadata.key}",
5802
+ resourceKeyPattern: "${metadata.folderPath}.${metadata.name}",
5737
5803
  propertyAttribute: "name"
5738
5804
  }
5739
5805
  },
@@ -5747,7 +5813,7 @@ var bpmn_spec_default = {
5747
5813
  defaultValue: null,
5748
5814
  bindingInfo: {
5749
5815
  resource: "BusinessRule",
5750
- resourceKeyPattern: "${metadata.key}",
5816
+ resourceKeyPattern: "${metadata.folderPath}.${metadata.name}",
5751
5817
  propertyAttribute: "folderPath"
5752
5818
  }
5753
5819
  },
@@ -5764,13 +5830,22 @@ var bpmn_spec_default = {
5764
5830
  inputPattern: "mergedBody",
5765
5831
  inputName: "JobArguments",
5766
5832
  inputTarget: "bodyField",
5767
- outputSource: null,
5768
- outputType: null,
5833
+ outputName: "output",
5834
+ outputSource: "=result",
5835
+ outputType: "jsonSchema",
5836
+ additionalOutputs: [
5837
+ {
5838
+ name: "Error",
5839
+ type: "jsonSchema",
5840
+ source: "=Error",
5841
+ required: true
5842
+ }
5843
+ ],
5769
5844
  useRelativeSource: true,
5770
5845
  bindingPattern: "businessRule",
5771
5846
  bindingInfo: {
5772
5847
  resource: "BusinessRule",
5773
- resourceKeyPattern: "${metadata.key}",
5848
+ resourceKeyPattern: "${metadata.folderPath}.${metadata.name}",
5774
5849
  propertyAttribute: "name",
5775
5850
  contextField: "name"
5776
5851
  },
@@ -5779,7 +5854,7 @@ var bpmn_spec_default = {
5779
5854
  xmlTemplate: `<bpmn:BusinessRuleTask id="{id}" name="{name}">
5780
5855
  <bpmn:extensionElements>
5781
5856
  <uipath:activity version="v1">
5782
- <uipath:type value="Orchestrator.BusinessRules" version="v2" />
5857
+ <uipath:type value="Orchestrator.BusinessRules" version="v3" />
5783
5858
  <uipath:context>
5784
5859
  <uipath:input name="name" type="string" value="=bindings.{nameBindingId}" />
5785
5860
  <uipath:input name="folderPath" type="string" value="=bindings.{folderPathBindingId}" />
@@ -5787,17 +5862,17 @@ var bpmn_spec_default = {
5787
5862
  <uipath:inputSchema type="jsonSchema"><![CDATA[{"$schema":"http://json-schema.org/draft-07/schema#","type":"object","properties":{},"required":[]}]]></uipath:inputSchema>
5788
5863
  </uipath:context>
5789
5864
  <uipath:input name="JobArguments" type="json" target="bodyField"><![CDATA[{}]]></uipath:input>
5865
+ <uipath:output name="output" type="jsonSchema" source="=result" var="{outputVarId}" />
5790
5866
  <uipath:output name="Error" type="jsonSchema" source="=Error" var="{errorVarId}" />
5791
- <uipath:output name="{outputName}" type="{outputType}" source="={outputName}" var="{outputVarId}" />
5792
5867
  </uipath:activity>
5793
5868
  </bpmn:extensionElements>
5794
5869
  <bpmn:incoming>{incomingEdge}</bpmn:incoming>
5795
5870
  <bpmn:outgoing>{outgoingEdge}</bpmn:outgoing>
5796
5871
  </bpmn:BusinessRuleTask>`,
5797
- discoveryNotes: "Uses getOrchestratorBusinessRules() to list available business rules",
5872
+ discoveryNotes: "Uses `uip rules list --all-folders --output json` to list deployed business rules; it returns 50 rows by default, so keep raising --offset while Pagination.HasMore is true",
5798
5873
  inputNotes: "isSplitInputs=true in design schema: the canvas shows one input per rule argument and serialization merges them into the single JobArguments JSON body. The uipath:context inputSchema lists each argument with its type, and its required array names the required ones.",
5799
- contextFieldNotes: `name and folderPath each point to a root binding with resource="BusinessRule" and propertyAttribute name or folderPath; the engine runs the rule by these two. resourceKey is the rule's entity key, which for a rule in the solution folder is its name; the name and folderPath defaults are the rule name and its folder path. The folderPath binding default is an empty string when the rule lives in the running job's folder. _label holds the rule name as a plain value.`,
5800
- outputNotes: "One uipath:output per rule output, named after the output with source =<output name>, plus an Error output (type jsonSchema, source =Error). Each var names a process variable declared as uipath:inputOutput on this element."
5874
+ contextFieldNotes: "name and folderPath each point to a root binding for a BusinessRule resource. Both bindings share one resourceKey. Use propertyAttribute name for name and folderPath for folderPath. _label is not bound and holds the rule name.",
5875
+ outputNotes: 'One output named output (type jsonSchema, source =result) holding the whole result keyed by decision, so a decision\'s column reads as vars.<outputVarId>.<decision>.<column>; plus an Error output (type jsonSchema, source =Error). Each var names a process variable declared as uipath:inputOutput on this element. Only a decision-keyed rule fits this output: its `uip rules describe` OutputArguments carry "x-uipath-decision-keyed": true; run `uip rules refresh` and redeploy a rule that does not.'
5801
5876
  },
5802
5877
  "Intsvc.ActivityExecution": {
5803
5878
  extensionType: "Intsvc.ActivityExecution",
@@ -7348,52 +7423,189 @@ var bpmn_spec_default = {
7348
7423
  </bpmn:ServiceTask>`,
7349
7424
  discoveryNotes: "Uses getQueueDefinitions(serviceType, search) to list available queues"
7350
7425
  },
7351
- "Orchestrator.StartAgenticProcess": {
7352
- extensionType: "Orchestrator.StartAgenticProcess",
7353
- label: "Start and wait for agentic process",
7354
- bpmnElement: "bpmn:CallActivity",
7426
+ "Orchestrator.SetTransactionStatus": {
7427
+ extensionType: "Orchestrator.SetTransactionStatus",
7428
+ label: "Set transaction status",
7429
+ bpmnElement: "bpmn:ServiceTask",
7355
7430
  placements: {
7356
7431
  activity: {
7357
- type: "bpmn:CallActivity"
7432
+ type: "bpmn:ServiceTask"
7358
7433
  }
7359
7434
  },
7360
7435
  extensionTag: "uipath:activity",
7361
7436
  contextFields: [
7362
7437
  {
7363
- name: "releaseKey",
7364
- displayName: "Process",
7438
+ name: "_label",
7365
7439
  type: "string",
7366
7440
  required: false,
7367
7441
  hidden: true,
7368
7442
  isPrimaryKey: false,
7369
7443
  binding: false,
7444
+ defaultValue: null
7445
+ }
7446
+ ],
7447
+ inputPattern: "mergedBody",
7448
+ outputSource: "=Error",
7449
+ outputType: "jsonSchema",
7450
+ outputName: "Error",
7451
+ bindingPattern: "none",
7452
+ requiresDiscovery: false,
7453
+ isDynamic: false,
7454
+ xmlTemplate: `<bpmn:ServiceTask id="{id}" name="{name}">
7455
+ <bpmn:extensionElements>
7456
+ <uipath:activity version="v1">
7457
+ <uipath:type value="Orchestrator.SetTransactionStatus" version="v1" />
7458
+ <uipath:input name="body" type="json" target="body"><![CDATA[{"QueueItem":{QueueItem},"Status":"{Status}","ErrorType":null,"Reason":null,"Details":null}]]></uipath:input>
7459
+ <uipath:output name="Error" type="jsonSchema" source="=Error" var="{varId}" />
7460
+ </uipath:activity>
7461
+ </bpmn:extensionElements>
7462
+ <bpmn:incoming>{incomingEdge}</bpmn:incoming>
7463
+ <bpmn:outgoing>{outgoingEdge}</bpmn:outgoing>
7464
+ </bpmn:ServiceTask>`,
7465
+ inputNotes: 'All inputFields go as keys of one <uipath:input name="body" type="json" target="body"> CDATA object. QueueItem takes either a JSON object literal (e.g. an object with an Id property) or a quoted "=expr"; it is not itself quoted in the template. Optional fields default to null in this example; fill only what you use.',
7466
+ inputFields: [
7467
+ {
7468
+ name: "QueueItem",
7469
+ displayName: "Transaction item",
7470
+ type: "object",
7471
+ required: true,
7472
+ hidden: false,
7473
+ isPrimaryKey: false,
7474
+ binding: false,
7370
7475
  defaultValue: null,
7371
- bindingInfo: {
7372
- resource: "process",
7373
- resourceKeyPattern: "${metadata.key}",
7374
- propertyAttribute: "Key"
7375
- }
7476
+ target: "body"
7376
7477
  },
7377
7478
  {
7378
- name: "folderId",
7479
+ name: "Status",
7480
+ type: "dropdown",
7481
+ required: true,
7482
+ hidden: false,
7483
+ isPrimaryKey: false,
7484
+ binding: false,
7485
+ defaultValue: null,
7486
+ enum: [
7487
+ "Successful",
7488
+ "Failed"
7489
+ ],
7490
+ target: "body"
7491
+ },
7492
+ {
7493
+ name: "ErrorType",
7494
+ type: "dropdown",
7495
+ required: false,
7496
+ hidden: false,
7497
+ isPrimaryKey: false,
7498
+ binding: false,
7499
+ defaultValue: null,
7500
+ enum: [
7501
+ "BusinessException",
7502
+ "ApplicationException"
7503
+ ],
7504
+ target: "body"
7505
+ },
7506
+ {
7507
+ name: "Reason",
7379
7508
  type: "string",
7380
7509
  required: false,
7381
- hidden: true,
7510
+ hidden: false,
7382
7511
  isPrimaryKey: false,
7383
7512
  binding: false,
7384
- defaultValue: null
7513
+ defaultValue: null,
7514
+ target: "body"
7385
7515
  },
7386
7516
  {
7387
- name: "folderPath",
7517
+ name: "Details",
7518
+ type: "string",
7519
+ required: false,
7520
+ hidden: false,
7521
+ isPrimaryKey: false,
7522
+ binding: false,
7523
+ defaultValue: null,
7524
+ target: "body"
7525
+ }
7526
+ ],
7527
+ inputName: "body",
7528
+ inputTarget: "body"
7529
+ },
7530
+ "Orchestrator.SetTransactionProgress": {
7531
+ extensionType: "Orchestrator.SetTransactionProgress",
7532
+ label: "Set transaction progress",
7533
+ bpmnElement: "bpmn:ServiceTask",
7534
+ placements: {
7535
+ activity: {
7536
+ type: "bpmn:ServiceTask"
7537
+ }
7538
+ },
7539
+ extensionTag: "uipath:activity",
7540
+ contextFields: [
7541
+ {
7542
+ name: "_label",
7388
7543
  type: "string",
7389
7544
  required: false,
7390
7545
  hidden: true,
7391
7546
  isPrimaryKey: false,
7392
7547
  binding: false,
7393
7548
  defaultValue: null
7549
+ }
7550
+ ],
7551
+ inputPattern: "mergedBody",
7552
+ outputSource: "=Error",
7553
+ outputType: "jsonSchema",
7554
+ outputName: "Error",
7555
+ bindingPattern: "none",
7556
+ requiresDiscovery: false,
7557
+ isDynamic: false,
7558
+ xmlTemplate: `<bpmn:ServiceTask id="{id}" name="{name}">
7559
+ <bpmn:extensionElements>
7560
+ <uipath:activity version="v1">
7561
+ <uipath:type value="Orchestrator.SetTransactionProgress" version="v1" />
7562
+ <uipath:input name="body" type="json" target="body"><![CDATA[{"QueueItem":{QueueItem},"Progress":"{Progress}"}]]></uipath:input>
7563
+ <uipath:output name="Error" type="jsonSchema" source="=Error" var="{varId}" />
7564
+ </uipath:activity>
7565
+ </bpmn:extensionElements>
7566
+ <bpmn:incoming>{incomingEdge}</bpmn:incoming>
7567
+ <bpmn:outgoing>{outgoingEdge}</bpmn:outgoing>
7568
+ </bpmn:ServiceTask>`,
7569
+ inputFields: [
7570
+ {
7571
+ name: "QueueItem",
7572
+ displayName: "Transaction item",
7573
+ type: "object",
7574
+ required: true,
7575
+ hidden: false,
7576
+ isPrimaryKey: false,
7577
+ binding: false,
7578
+ defaultValue: null,
7579
+ target: "body"
7394
7580
  },
7395
7581
  {
7396
- name: "name",
7582
+ name: "Progress",
7583
+ type: "string",
7584
+ required: true,
7585
+ hidden: false,
7586
+ isPrimaryKey: false,
7587
+ binding: false,
7588
+ defaultValue: null,
7589
+ target: "body"
7590
+ }
7591
+ ],
7592
+ inputName: "body",
7593
+ inputTarget: "body",
7594
+ inputNotes: 'All inputFields go as keys of one <uipath:input name="body" type="json" target="body"> CDATA object. QueueItem takes either a JSON object literal (e.g. an object with an Id property) or a quoted "=expr"; it is not itself quoted in the template.'
7595
+ },
7596
+ "Orchestrator.PostponeTransactionItem": {
7597
+ extensionType: "Orchestrator.PostponeTransactionItem",
7598
+ label: "Postpone transaction item",
7599
+ bpmnElement: "bpmn:ServiceTask",
7600
+ placements: {
7601
+ activity: {
7602
+ type: "bpmn:ServiceTask"
7603
+ }
7604
+ },
7605
+ extensionTag: "uipath:activity",
7606
+ contextFields: [
7607
+ {
7608
+ name: "_label",
7397
7609
  type: "string",
7398
7610
  required: false,
7399
7611
  hidden: true,
@@ -7403,54 +7615,74 @@ var bpmn_spec_default = {
7403
7615
  }
7404
7616
  ],
7405
7617
  inputPattern: "mergedBody",
7406
- inputName: "JobArguments",
7407
- inputTarget: "bodyField",
7408
- outputSource: null,
7409
- outputType: "Orchestrator.RunJob",
7410
- outputName: "Process response",
7411
- useRelativeSource: true,
7412
- bindingPattern: "process",
7413
- bindingInfo: {
7414
- resource: "process",
7415
- resourceKeyPattern: "${metadata.key}",
7416
- propertyAttribute: "Key",
7417
- contextField: "releaseKey"
7418
- },
7419
- requiresDiscovery: true,
7420
- isDynamic: true,
7421
- xmlTemplate: `<bpmn:CallActivity id="{id}" name="{name}">
7618
+ outputSource: "=Error",
7619
+ outputType: "jsonSchema",
7620
+ outputName: "Error",
7621
+ bindingPattern: "none",
7622
+ requiresDiscovery: false,
7623
+ isDynamic: false,
7624
+ xmlTemplate: `<bpmn:ServiceTask id="{id}" name="{name}">
7422
7625
  <bpmn:extensionElements>
7423
7626
  <uipath:activity version="v1">
7424
- <uipath:type value="Orchestrator.StartAgenticProcess" version="v1" />
7425
- <uipath:context>
7426
- <uipath:input name="releaseKey" type="string" value="{releaseKey}" />
7427
- <uipath:input name="folderId" type="string" value="{folderId}" />
7428
- <uipath:input name="folderPath" type="string" value="{folderPath}" />
7429
- <uipath:input name="name" type="string" value="{name}" />
7430
- </uipath:context>
7431
- <uipath:input name="JobArguments" type="json" target="bodyField"><![CDATA[{}]]></uipath:input>
7432
- <uipath:output name="Process response" type="Orchestrator.RunJob" var="{varId}" />
7627
+ <uipath:type value="Orchestrator.PostponeTransactionItem" version="v1" />
7628
+ <uipath:input name="body" type="json" target="body"><![CDATA[{"QueueItem":{QueueItem},"PostponeDate":"{PostponeDate}","DueDate":null}]]></uipath:input>
7629
+ <uipath:output name="Error" type="jsonSchema" source="=Error" var="{varId}" />
7433
7630
  </uipath:activity>
7434
7631
  </bpmn:extensionElements>
7435
7632
  <bpmn:incoming>{incomingEdge}</bpmn:incoming>
7436
7633
  <bpmn:outgoing>{outgoingEdge}</bpmn:outgoing>
7437
- </bpmn:CallActivity>`,
7438
- discoveryNotes: "Uses getSupportedOrchestratorTasks('ProcessOrchestration', search, 0, 100, true) to list available agentic processes"
7634
+ </bpmn:ServiceTask>`,
7635
+ inputFields: [
7636
+ {
7637
+ name: "QueueItem",
7638
+ displayName: "Transaction item",
7639
+ type: "object",
7640
+ required: true,
7641
+ hidden: false,
7642
+ isPrimaryKey: false,
7643
+ binding: false,
7644
+ defaultValue: null,
7645
+ target: "body"
7646
+ },
7647
+ {
7648
+ name: "PostponeDate",
7649
+ type: "datetime",
7650
+ required: true,
7651
+ hidden: false,
7652
+ isPrimaryKey: false,
7653
+ binding: false,
7654
+ defaultValue: null,
7655
+ target: "body"
7656
+ },
7657
+ {
7658
+ name: "DueDate",
7659
+ type: "datetime",
7660
+ required: false,
7661
+ hidden: false,
7662
+ isPrimaryKey: false,
7663
+ binding: false,
7664
+ defaultValue: null,
7665
+ target: "body"
7666
+ }
7667
+ ],
7668
+ inputName: "body",
7669
+ inputTarget: "body",
7670
+ inputNotes: 'All inputFields go as keys of one <uipath:input name="body" type="json" target="body"> CDATA object. QueueItem takes either a JSON object literal (e.g. an object with an Id property) or a quoted "=expr"; it is not itself quoted in the template. Optional fields default to null in this example; fill only what you use.'
7439
7671
  },
7440
- "Orchestrator.StartAgenticProcessAsync": {
7441
- extensionType: "Orchestrator.StartAgenticProcessAsync",
7442
- label: "Start agentic process",
7443
- bpmnElement: "bpmn:CallActivity",
7672
+ "Orchestrator.BulkAddQueueItems": {
7673
+ extensionType: "Orchestrator.BulkAddQueueItems",
7674
+ label: "Bulk add queue items",
7675
+ bpmnElement: "bpmn:ServiceTask",
7444
7676
  placements: {
7445
7677
  activity: {
7446
- type: "bpmn:CallActivity"
7678
+ type: "bpmn:ServiceTask"
7447
7679
  }
7448
7680
  },
7449
7681
  extensionTag: "uipath:activity",
7450
7682
  contextFields: [
7451
7683
  {
7452
- name: "releaseKey",
7453
- displayName: "Process",
7684
+ name: "queueName",
7685
+ displayName: "Queue name",
7454
7686
  type: "string",
7455
7687
  required: false,
7456
7688
  hidden: true,
@@ -7458,13 +7690,13 @@ var bpmn_spec_default = {
7458
7690
  binding: false,
7459
7691
  defaultValue: null,
7460
7692
  bindingInfo: {
7461
- resource: "process",
7462
- resourceKeyPattern: "${metadata.key}",
7463
- propertyAttribute: "Key"
7693
+ resource: "queue",
7694
+ resourceKeyPattern: "${folderPath}.${name}",
7695
+ propertyAttribute: "name"
7464
7696
  }
7465
7697
  },
7466
7698
  {
7467
- name: "folderId",
7699
+ name: "folderPath",
7468
7700
  type: "string",
7469
7701
  required: false,
7470
7702
  hidden: true,
@@ -7473,16 +7705,7 @@ var bpmn_spec_default = {
7473
7705
  defaultValue: null
7474
7706
  },
7475
7707
  {
7476
- name: "folderPath",
7477
- type: "string",
7478
- required: false,
7479
- hidden: true,
7480
- isPrimaryKey: false,
7481
- binding: false,
7482
- defaultValue: null
7483
- },
7484
- {
7485
- name: "name",
7708
+ name: "_label",
7486
7709
  type: "string",
7487
7710
  required: false,
7488
7711
  hidden: true,
@@ -7492,85 +7715,80 @@ var bpmn_spec_default = {
7492
7715
  }
7493
7716
  ],
7494
7717
  inputPattern: "mergedBody",
7495
- inputName: "JobArguments",
7496
- inputTarget: "bodyField",
7497
- outputSource: null,
7498
- outputType: null,
7499
- outputName: null,
7500
- outputNotes: "Fire-and-forget: the canvas clears the process outputs for this type (getAgenticProcessInputOutputValues sets outputs to [] for Orchestrator.StartAgenticProcessAsync), so the payload carries none of the entry-point outputs its sync sibling returns. A process picked straight from Orchestrator (no solutionResourceKey) can still contribute task-definition outputs, which is why this type stays on the canvas-owned dynamic path. Use Orchestrator.StartAgenticProcess when you need the job result.",
7501
- bindingPattern: "process",
7718
+ outputSource: "=response",
7719
+ outputType: "jsonSchema",
7720
+ outputName: "response",
7721
+ bindingPattern: "queue",
7502
7722
  bindingInfo: {
7503
- resource: "process",
7504
- resourceKeyPattern: "${metadata.key}",
7505
- propertyAttribute: "Key",
7506
- contextField: "releaseKey"
7723
+ resource: "queue",
7724
+ resourceKeyPattern: "${folderPath}.${name}",
7725
+ propertyAttribute: "name",
7726
+ contextField: "queueName"
7507
7727
  },
7508
7728
  requiresDiscovery: true,
7509
- isDynamic: true,
7510
- xmlTemplate: `<bpmn:CallActivity id="{id}" name="{name}">
7729
+ isDynamic: false,
7730
+ xmlTemplate: `<bpmn:ServiceTask id="{id}" name="{name}">
7511
7731
  <bpmn:extensionElements>
7512
7732
  <uipath:activity version="v1">
7513
- <uipath:type value="Orchestrator.StartAgenticProcessAsync" version="v1" />
7733
+ <uipath:type value="Orchestrator.BulkAddQueueItems" version="v2" />
7514
7734
  <uipath:context>
7515
- <uipath:input name="releaseKey" type="string" value="{releaseKey}" />
7516
- <uipath:input name="folderId" type="string" value="{folderId}" />
7735
+ <uipath:input name="queueName" type="string" value="{queueName}" />
7517
7736
  <uipath:input name="folderPath" type="string" value="{folderPath}" />
7518
- <uipath:input name="name" type="string" value="{name}" />
7519
7737
  </uipath:context>
7520
- <uipath:input name="JobArguments" type="json" target="bodyField"><![CDATA[{}]]></uipath:input>
7738
+ <uipath:input name="body" type="json" target="body"><![CDATA[{"QueueItems":{QueueItems},"CommitStrategy":"{CommitStrategy}"}]]></uipath:input>
7739
+ <uipath:output name="response" type="jsonSchema" source="=response" var="{varId}" />
7521
7740
  </uipath:activity>
7522
7741
  </bpmn:extensionElements>
7523
7742
  <bpmn:incoming>{incomingEdge}</bpmn:incoming>
7524
7743
  <bpmn:outgoing>{outgoingEdge}</bpmn:outgoing>
7525
- </bpmn:CallActivity>`,
7526
- discoveryNotes: "Uses getSupportedOrchestratorTasks('ProcessOrchestration', search, 0, 100, true) to list available agentic processes"
7527
- },
7528
- "Orchestrator.StartCaseMgmtProcess": {
7529
- extensionType: "Orchestrator.StartCaseMgmtProcess",
7530
- label: "Start and wait for case management",
7531
- bpmnElement: "bpmn:CallActivity",
7532
- placements: {
7533
- activity: {
7534
- type: "bpmn:CallActivity"
7535
- }
7536
- },
7537
- extensionTag: "uipath:activity",
7538
- contextFields: [
7539
- {
7540
- name: "releaseKey",
7541
- displayName: "Process",
7542
- type: "string",
7543
- required: false,
7544
- hidden: true,
7545
- isPrimaryKey: false,
7546
- binding: false,
7547
- defaultValue: null,
7548
- bindingInfo: {
7549
- resource: "process",
7550
- resourceKeyPattern: "${metadata.key}",
7551
- propertyAttribute: "Key"
7552
- }
7553
- },
7744
+ </bpmn:ServiceTask>`,
7745
+ discoveryNotes: "Uses getQueueDefinitions(serviceType, search) to list available queues.",
7746
+ inputNotes: 'All inputFields go as keys of one <uipath:input name="body" type="json" target="body"> CDATA object. QueueItems takes either a JSON array literal or a quoted "=expr"; it is not itself quoted in the template.',
7747
+ outputNotes: "isDynamic is false even though the design schema says true: the queue picker only sets context and bindings here, and the input/output pair is fixed (see inputNotes), so the strict field checks are safe and should stay.",
7748
+ inputFields: [
7554
7749
  {
7555
- name: "folderId",
7556
- type: "string",
7557
- required: false,
7558
- hidden: true,
7750
+ name: "QueueItems",
7751
+ displayName: "Transaction items",
7752
+ type: "json",
7753
+ required: true,
7754
+ hidden: false,
7559
7755
  isPrimaryKey: false,
7560
7756
  binding: false,
7561
- defaultValue: null
7757
+ target: "body"
7562
7758
  },
7563
7759
  {
7564
- name: "folderPath",
7565
- type: "string",
7566
- required: false,
7567
- hidden: true,
7760
+ name: "CommitStrategy",
7761
+ displayName: "Commit strategy",
7762
+ type: "dropdown",
7763
+ required: true,
7764
+ hidden: false,
7568
7765
  isPrimaryKey: false,
7569
7766
  binding: false,
7570
- defaultValue: null
7571
- },
7767
+ defaultValue: "AllOrNothing",
7768
+ enum: [
7769
+ "AllOrNothing",
7770
+ "StopOnFirstFailure",
7771
+ "ProcessAllIndependently"
7772
+ ],
7773
+ target: "body"
7774
+ }
7775
+ ],
7776
+ inputName: "body",
7777
+ inputTarget: "body"
7778
+ },
7779
+ "Orchestrator.DeleteQueueItems": {
7780
+ extensionType: "Orchestrator.DeleteQueueItems",
7781
+ label: "Delete queue items",
7782
+ bpmnElement: "bpmn:ServiceTask",
7783
+ placements: {
7784
+ activity: {
7785
+ type: "bpmn:ServiceTask"
7786
+ }
7787
+ },
7788
+ extensionTag: "uipath:activity",
7789
+ contextFields: [
7572
7790
  {
7573
- name: "name",
7791
+ name: "_label",
7574
7792
  type: "string",
7575
7793
  required: false,
7576
7794
  hidden: true,
@@ -7580,54 +7798,53 @@ var bpmn_spec_default = {
7580
7798
  }
7581
7799
  ],
7582
7800
  inputPattern: "mergedBody",
7583
- inputName: "JobArguments",
7584
- inputTarget: "bodyField",
7585
- outputSource: null,
7586
- outputType: "Orchestrator.RunJob",
7587
- outputName: "Process response",
7588
- useRelativeSource: true,
7589
- bindingPattern: "process",
7590
- bindingInfo: {
7591
- resource: "process",
7592
- resourceKeyPattern: "${metadata.key}",
7593
- propertyAttribute: "Key",
7594
- contextField: "releaseKey"
7595
- },
7596
- requiresDiscovery: true,
7597
- isDynamic: true,
7598
- xmlTemplate: `<bpmn:CallActivity id="{id}" name="{name}">
7801
+ outputSource: "=deletedCount",
7802
+ outputType: "jsonSchema",
7803
+ outputName: "deletedCount",
7804
+ bindingPattern: "none",
7805
+ requiresDiscovery: false,
7806
+ isDynamic: false,
7807
+ xmlTemplate: `<bpmn:ServiceTask id="{id}" name="{name}">
7599
7808
  <bpmn:extensionElements>
7600
7809
  <uipath:activity version="v1">
7601
- <uipath:type value="Orchestrator.StartCaseMgmtProcess" version="v1" />
7602
- <uipath:context>
7603
- <uipath:input name="releaseKey" type="string" value="{releaseKey}" />
7604
- <uipath:input name="folderId" type="string" value="{folderId}" />
7605
- <uipath:input name="folderPath" type="string" value="{folderPath}" />
7606
- <uipath:input name="name" type="string" value="{name}" />
7607
- </uipath:context>
7608
- <uipath:input name="JobArguments" type="json" target="bodyField"><![CDATA[{}]]></uipath:input>
7609
- <uipath:output name="Process response" type="Orchestrator.RunJob" var="{varId}" />
7810
+ <uipath:type value="Orchestrator.DeleteQueueItems" version="v1" />
7811
+ <uipath:input name="body" type="json" target="body"><![CDATA[{"Items":{Items}}]]></uipath:input>
7812
+ <uipath:output name="deletedCount" type="jsonSchema" source="=deletedCount" var="{varId}" />
7610
7813
  </uipath:activity>
7611
7814
  </bpmn:extensionElements>
7612
7815
  <bpmn:incoming>{incomingEdge}</bpmn:incoming>
7613
7816
  <bpmn:outgoing>{outgoingEdge}</bpmn:outgoing>
7614
- </bpmn:CallActivity>`,
7615
- discoveryNotes: "Uses getSupportedOrchestratorTasks('caseManagement', search, 0, 100, true) to list available case management processes"
7817
+ </bpmn:ServiceTask>`,
7818
+ inputNotes: 'All inputFields go as keys of one <uipath:input name="body" type="json" target="body"> CDATA object. Items takes either a JSON array literal or a quoted "=expr"; it is not itself quoted in the template.',
7819
+ inputFields: [
7820
+ {
7821
+ name: "Items",
7822
+ displayName: "Transaction items",
7823
+ type: "json",
7824
+ required: true,
7825
+ hidden: false,
7826
+ isPrimaryKey: false,
7827
+ binding: false,
7828
+ target: "body"
7829
+ }
7830
+ ],
7831
+ inputName: "body",
7832
+ inputTarget: "body"
7616
7833
  },
7617
- "Orchestrator.StartCaseMgmtProcessAsync": {
7618
- extensionType: "Orchestrator.StartCaseMgmtProcessAsync",
7619
- label: "Start case management",
7620
- bpmnElement: "bpmn:CallActivity",
7834
+ "Orchestrator.GetTransactionItem": {
7835
+ extensionType: "Orchestrator.GetTransactionItem",
7836
+ label: "Get transaction item",
7837
+ bpmnElement: "bpmn:ServiceTask",
7621
7838
  placements: {
7622
7839
  activity: {
7623
- type: "bpmn:CallActivity"
7840
+ type: "bpmn:ServiceTask"
7624
7841
  }
7625
7842
  },
7626
7843
  extensionTag: "uipath:activity",
7627
7844
  contextFields: [
7628
7845
  {
7629
- name: "releaseKey",
7630
- displayName: "Process",
7846
+ name: "queueName",
7847
+ displayName: "Queue name",
7631
7848
  type: "string",
7632
7849
  required: false,
7633
7850
  hidden: true,
@@ -7635,13 +7852,13 @@ var bpmn_spec_default = {
7635
7852
  binding: false,
7636
7853
  defaultValue: null,
7637
7854
  bindingInfo: {
7638
- resource: "process",
7639
- resourceKeyPattern: "${metadata.key}",
7640
- propertyAttribute: "Key"
7855
+ resource: "queue",
7856
+ resourceKeyPattern: "${folderPath}.${name}",
7857
+ propertyAttribute: "name"
7641
7858
  }
7642
7859
  },
7643
7860
  {
7644
- name: "folderId",
7861
+ name: "folderPath",
7645
7862
  type: "string",
7646
7863
  required: false,
7647
7864
  hidden: true,
@@ -7650,7 +7867,7 @@ var bpmn_spec_default = {
7650
7867
  defaultValue: null
7651
7868
  },
7652
7869
  {
7653
- name: "folderPath",
7870
+ name: "_label",
7654
7871
  type: "string",
7655
7872
  required: false,
7656
7873
  hidden: true,
@@ -7659,77 +7876,107 @@ var bpmn_spec_default = {
7659
7876
  defaultValue: null
7660
7877
  },
7661
7878
  {
7662
- name: "name",
7879
+ name: "reference",
7880
+ displayName: "Reference",
7663
7881
  type: "string",
7664
7882
  required: false,
7665
7883
  hidden: true,
7666
7884
  isPrimaryKey: false,
7667
7885
  binding: false,
7668
7886
  defaultValue: null
7887
+ },
7888
+ {
7889
+ name: "filterStrategy",
7890
+ displayName: "Reference filter strategy",
7891
+ type: "string",
7892
+ required: false,
7893
+ hidden: true,
7894
+ isPrimaryKey: false,
7895
+ binding: false,
7896
+ defaultValue: "StartsWith",
7897
+ enum: [
7898
+ "StartsWith",
7899
+ "Equals"
7900
+ ]
7669
7901
  }
7670
7902
  ],
7671
- inputPattern: "mergedBody",
7672
- inputName: "JobArguments",
7673
- inputTarget: "bodyField",
7674
- outputSource: null,
7675
- outputType: null,
7676
- outputName: null,
7677
- outputNotes: "Fire-and-forget: the canvas clears the process outputs for this type (getAgenticProcessInputOutputValues sets outputs to [] for Orchestrator.StartCaseMgmtProcessAsync), so the payload carries none of the entry-point outputs its sync sibling returns. A process picked straight from Orchestrator (no solutionResourceKey) can still contribute task-definition outputs, which is why this type stays on the canvas-owned dynamic path. Use Orchestrator.StartCaseMgmtProcess when you need the job result.",
7678
- bindingPattern: "process",
7903
+ inputPattern: "none",
7904
+ outputSource: "=result",
7905
+ outputType: "jsonSchema",
7906
+ outputName: "TransactionItem",
7907
+ additionalOutputs: [
7908
+ {
7909
+ name: "hasItem",
7910
+ type: "boolean",
7911
+ source: "=hasItem",
7912
+ required: true
7913
+ },
7914
+ {
7915
+ name: "Error",
7916
+ type: "jsonSchema",
7917
+ source: "=Error",
7918
+ required: true
7919
+ }
7920
+ ],
7921
+ bindingPattern: "queue",
7679
7922
  bindingInfo: {
7680
- resource: "process",
7681
- resourceKeyPattern: "${metadata.key}",
7682
- propertyAttribute: "Key",
7683
- contextField: "releaseKey"
7923
+ resource: "queue",
7924
+ resourceKeyPattern: "${folderPath}.${name}",
7925
+ propertyAttribute: "name",
7926
+ contextField: "queueName"
7684
7927
  },
7685
7928
  requiresDiscovery: true,
7686
- isDynamic: true,
7687
- xmlTemplate: `<bpmn:CallActivity id="{id}" name="{name}">
7929
+ isDynamic: false,
7930
+ xmlTemplate: `<bpmn:ServiceTask id="{id}" name="{name}">
7688
7931
  <bpmn:extensionElements>
7689
7932
  <uipath:activity version="v1">
7690
- <uipath:type value="Orchestrator.StartCaseMgmtProcessAsync" version="v1" />
7933
+ <uipath:type value="Orchestrator.GetTransactionItem" version="v2" />
7691
7934
  <uipath:context>
7692
- <uipath:input name="releaseKey" type="string" value="{releaseKey}" />
7693
- <uipath:input name="folderId" type="string" value="{folderId}" />
7935
+ <uipath:input name="queueName" type="string" value="{queueName}" />
7694
7936
  <uipath:input name="folderPath" type="string" value="{folderPath}" />
7695
- <uipath:input name="name" type="string" value="{name}" />
7937
+ <uipath:input name="reference" type="string" value="" />
7938
+ <uipath:input name="filterStrategy" type="string" value="StartsWith" />
7696
7939
  </uipath:context>
7697
- <uipath:input name="JobArguments" type="json" target="bodyField"><![CDATA[{}]]></uipath:input>
7940
+ <uipath:output name="hasItem" type="boolean" source="=hasItem" var="{hasItemVarId}" />
7941
+ <uipath:output name="TransactionItem" type="jsonSchema" source="=result" var="{varId}" />
7942
+ <uipath:output name="Error" type="jsonSchema" source="=Error" var="{errorVarId}" />
7698
7943
  </uipath:activity>
7699
7944
  </bpmn:extensionElements>
7700
7945
  <bpmn:incoming>{incomingEdge}</bpmn:incoming>
7701
7946
  <bpmn:outgoing>{outgoingEdge}</bpmn:outgoing>
7702
- </bpmn:CallActivity>`,
7703
- discoveryNotes: "Uses getSupportedOrchestratorTasks('caseManagement', search, 0, 100, true) to list available case management processes"
7947
+ </bpmn:ServiceTask>`,
7948
+ discoveryNotes: "Uses getQueueDefinitions(serviceType, search) to list available queues.",
7949
+ outputNotes: "hasItem is the branchable empty-queue signal (the only property guaranteed on an empty queue). The engine flattens the dequeued item onto the result root, so =result binds TransactionItem; it is typed like the trigger's item so it chains into Set transaction status / progress / Postpone (their QueueItem input). The canvas serializes three outputs (hasItem, TransactionItem, Error); outputName/outputSource/outputType name the primary (TransactionItem) and additionalOutputs declares the other two, so all three are gated on name, type, source and presence.",
7950
+ contextFieldNotes: "reference and filterStrategy live in uipath:context next to queueName; the backend reads them there. filterStrategy mirrors Orchestrator's QueueItemsFilterStrategy (default StartsWith)."
7704
7951
  },
7705
- "Orchestrator.StartFlowProcess": {
7706
- extensionType: "Orchestrator.StartFlowProcess",
7707
- label: "Start and wait for Maestro Flow",
7708
- bpmnElement: "bpmn:CallActivity",
7952
+ "Orchestrator.GetQueueItems": {
7953
+ extensionType: "Orchestrator.GetQueueItems",
7954
+ label: "Get queue items",
7955
+ bpmnElement: "bpmn:ServiceTask",
7709
7956
  placements: {
7710
7957
  activity: {
7711
- type: "bpmn:CallActivity"
7958
+ type: "bpmn:ServiceTask"
7712
7959
  }
7713
7960
  },
7714
7961
  extensionTag: "uipath:activity",
7715
7962
  contextFields: [
7716
7963
  {
7717
- name: "releaseKey",
7718
- displayName: "Maestro Flow",
7964
+ name: "queueName",
7719
7965
  type: "string",
7720
7966
  required: false,
7721
7967
  hidden: true,
7722
7968
  isPrimaryKey: false,
7723
7969
  binding: false,
7724
7970
  defaultValue: null,
7971
+ displayName: "Queue name",
7725
7972
  bindingInfo: {
7726
- resource: "process",
7727
- resourceKeyPattern: "${metadata.key}",
7728
- propertyAttribute: "Key"
7973
+ resource: "queue",
7974
+ resourceKeyPattern: "${folderPath}.${name}",
7975
+ propertyAttribute: "name"
7729
7976
  }
7730
7977
  },
7731
7978
  {
7732
- name: "folderId",
7979
+ name: "folderPath",
7733
7980
  type: "string",
7734
7981
  required: false,
7735
7982
  hidden: true,
@@ -7738,7 +7985,7 @@ var bpmn_spec_default = {
7738
7985
  defaultValue: null
7739
7986
  },
7740
7987
  {
7741
- name: "folderPath",
7988
+ name: "_label",
7742
7989
  type: "string",
7743
7990
  required: false,
7744
7991
  hidden: true,
@@ -7747,18 +7994,249 @@ var bpmn_spec_default = {
7747
7994
  defaultValue: null
7748
7995
  },
7749
7996
  {
7750
- name: "name",
7997
+ name: "statuses",
7751
7998
  type: "string",
7752
7999
  required: false,
7753
8000
  hidden: true,
7754
8001
  isPrimaryKey: false,
7755
8002
  binding: false,
7756
- defaultValue: null
8003
+ defaultValue: null,
8004
+ displayName: "Status"
8005
+ },
8006
+ {
8007
+ name: "reference",
8008
+ type: "string",
8009
+ required: false,
8010
+ hidden: true,
8011
+ isPrimaryKey: false,
8012
+ binding: false,
8013
+ defaultValue: null,
8014
+ displayName: "Reference"
7757
8015
  }
7758
8016
  ],
7759
- inputPattern: "mergedBody",
7760
- inputName: "JobArguments",
7761
- inputTarget: "bodyField",
8017
+ inputPattern: "none",
8018
+ outputSource: "=queueItems",
8019
+ outputType: "jsonSchema",
8020
+ outputName: "QueueItems",
8021
+ additionalOutputs: [
8022
+ {
8023
+ name: "Count",
8024
+ type: "number",
8025
+ source: "=count",
8026
+ required: true
8027
+ },
8028
+ {
8029
+ name: "Error",
8030
+ type: "jsonSchema",
8031
+ source: "=Error",
8032
+ required: true
8033
+ }
8034
+ ],
8035
+ bindingPattern: "queue",
8036
+ bindingInfo: {
8037
+ resource: "queue",
8038
+ resourceKeyPattern: "${folderPath}.${name}",
8039
+ propertyAttribute: "name",
8040
+ contextField: "queueName"
8041
+ },
8042
+ requiresDiscovery: true,
8043
+ isDynamic: false,
8044
+ xmlTemplate: `<bpmn:ServiceTask id="{id}" name="{name}">
8045
+ <bpmn:extensionElements>
8046
+ <uipath:activity version="v1">
8047
+ <uipath:type value="Orchestrator.GetQueueItems" version="v2" />
8048
+ <uipath:context>
8049
+ <uipath:input name="queueName" type="string" value="{queueName}" />
8050
+ <uipath:input name="folderPath" type="string" value="{folderPath}" />
8051
+ <uipath:input name="statuses" type="string" value="{statuses}" />
8052
+ <uipath:input name="reference" type="string" value="{reference}" />
8053
+ </uipath:context>
8054
+ <uipath:output name="QueueItems" type="jsonSchema" source="=queueItems" var="{varId}" />
8055
+ <uipath:output name="Count" type="number" source="=count" var="{countVarId}" />
8056
+ <uipath:output name="Error" type="jsonSchema" source="=Error" var="{errorVarId}" />
8057
+ </uipath:activity>
8058
+ </bpmn:extensionElements>
8059
+ <bpmn:incoming>{incomingEdge}</bpmn:incoming>
8060
+ <bpmn:outgoing>{outgoingEdge}</bpmn:outgoing>
8061
+ </bpmn:ServiceTask>`,
8062
+ discoveryNotes: "Uses getQueueDefinitions(serviceType, search) to list available queues.",
8063
+ outputNotes: "The canvas serializes three outputs (QueueItems, Count, Error); outputName/outputSource/outputType name the primary (QueueItems) and additionalOutputs declares the other two, so all three are gated on name, type, source and presence.",
8064
+ contextFieldNotes: "statuses and reference filter the returned items and live in uipath:context alongside queueName."
8065
+ },
8066
+ "Queue.WaitForEvent": {
8067
+ extensionType: "Queue.WaitForEvent",
8068
+ label: "Wait for queue item",
8069
+ bpmnElement: "bpmn:ReceiveTask",
8070
+ placements: {
8071
+ activity: {
8072
+ type: "bpmn:ReceiveTask"
8073
+ },
8074
+ event: {
8075
+ type: "bpmn:IntermediateCatchEvent",
8076
+ eventDefinition: {
8077
+ type: "bpmn:MessageEventDefinition"
8078
+ }
8079
+ }
8080
+ },
8081
+ extensionTag: "uipath:event",
8082
+ contextFields: [
8083
+ {
8084
+ name: "queueName",
8085
+ type: "string",
8086
+ required: false,
8087
+ hidden: true,
8088
+ isPrimaryKey: false,
8089
+ binding: false,
8090
+ defaultValue: null,
8091
+ displayName: "Queue name",
8092
+ bindingInfo: {
8093
+ resource: "queue",
8094
+ resourceKeyPattern: "${folderPath}.${name}",
8095
+ propertyAttribute: "name"
8096
+ }
8097
+ },
8098
+ {
8099
+ name: "folderPath",
8100
+ type: "string",
8101
+ required: false,
8102
+ hidden: true,
8103
+ isPrimaryKey: false,
8104
+ binding: false,
8105
+ defaultValue: null
8106
+ },
8107
+ {
8108
+ name: "_label",
8109
+ type: "string",
8110
+ required: false,
8111
+ hidden: true,
8112
+ isPrimaryKey: false,
8113
+ binding: false,
8114
+ defaultValue: null
8115
+ },
8116
+ {
8117
+ name: "reference",
8118
+ type: "string",
8119
+ required: false,
8120
+ hidden: true,
8121
+ isPrimaryKey: false,
8122
+ binding: false,
8123
+ defaultValue: null,
8124
+ displayName: "Reference"
8125
+ },
8126
+ {
8127
+ name: "filterStrategy",
8128
+ type: "string",
8129
+ required: false,
8130
+ hidden: true,
8131
+ isPrimaryKey: false,
8132
+ binding: false,
8133
+ defaultValue: "StartsWith",
8134
+ displayName: "Reference filter strategy",
8135
+ enum: [
8136
+ "StartsWith",
8137
+ "Equals"
8138
+ ]
8139
+ }
8140
+ ],
8141
+ inputPattern: "none",
8142
+ outputSource: "=result",
8143
+ outputType: "jsonSchema",
8144
+ outputName: "TransactionItem",
8145
+ additionalOutputs: [
8146
+ {
8147
+ name: "Error",
8148
+ type: "jsonSchema",
8149
+ source: "=Error",
8150
+ required: true
8151
+ }
8152
+ ],
8153
+ bindingPattern: "queue",
8154
+ bindingInfo: {
8155
+ resource: "queue",
8156
+ resourceKeyPattern: "${folderPath}.${name}",
8157
+ propertyAttribute: "name",
8158
+ contextField: "queueName"
8159
+ },
8160
+ requiresDiscovery: true,
8161
+ isDynamic: false,
8162
+ xmlTemplate: `<bpmn:ReceiveTask id="{id}" name="{name}">
8163
+ <bpmn:extensionElements>
8164
+ <uipath:event version="v1">
8165
+ <uipath:type value="Queue.WaitForEvent" version="v2" />
8166
+ <uipath:context>
8167
+ <uipath:input name="queueName" type="string" value="{queueName}" />
8168
+ <uipath:input name="folderPath" type="string" value="{folderPath}" />
8169
+ <uipath:input name="reference" type="string" value="" />
8170
+ <uipath:input name="filterStrategy" type="string" value="StartsWith" />
8171
+ </uipath:context>
8172
+ <uipath:output name="TransactionItem" type="jsonSchema" source="=result" var="{varId}" />
8173
+ <uipath:output name="Error" type="jsonSchema" source="=Error" var="{errorVarId}" />
8174
+ </uipath:event>
8175
+ </bpmn:extensionElements>
8176
+ <bpmn:incoming>{incomingEdge}</bpmn:incoming>
8177
+ <bpmn:outgoing>{outgoingEdge}</bpmn:outgoing>
8178
+ </bpmn:ReceiveTask>`,
8179
+ discoveryNotes: "Uses getQueueDefinitions(serviceType, search) to list available queues.",
8180
+ outputNotes: "The canvas serializes two outputs (TransactionItem, Error); outputName/outputSource/outputType name the primary (TransactionItem) and additionalOutputs declares Error, so both are gated on name, type, source and presence.",
8181
+ extensionTagNotes: "Registered in the PO.Frontend isEvents array, so it serializes as uipath:event and never reaches the merged-body branch."
8182
+ },
8183
+ "Orchestrator.StartAgenticProcess": {
8184
+ extensionType: "Orchestrator.StartAgenticProcess",
8185
+ label: "Start and wait for agentic process",
8186
+ bpmnElement: "bpmn:CallActivity",
8187
+ placements: {
8188
+ activity: {
8189
+ type: "bpmn:CallActivity"
8190
+ }
8191
+ },
8192
+ extensionTag: "uipath:activity",
8193
+ contextFields: [
8194
+ {
8195
+ name: "releaseKey",
8196
+ displayName: "Process",
8197
+ type: "string",
8198
+ required: false,
8199
+ hidden: true,
8200
+ isPrimaryKey: false,
8201
+ binding: false,
8202
+ defaultValue: null,
8203
+ bindingInfo: {
8204
+ resource: "process",
8205
+ resourceKeyPattern: "${metadata.key}",
8206
+ propertyAttribute: "Key"
8207
+ }
8208
+ },
8209
+ {
8210
+ name: "folderId",
8211
+ type: "string",
8212
+ required: false,
8213
+ hidden: true,
8214
+ isPrimaryKey: false,
8215
+ binding: false,
8216
+ defaultValue: null
8217
+ },
8218
+ {
8219
+ name: "folderPath",
8220
+ type: "string",
8221
+ required: false,
8222
+ hidden: true,
8223
+ isPrimaryKey: false,
8224
+ binding: false,
8225
+ defaultValue: null
8226
+ },
8227
+ {
8228
+ name: "name",
8229
+ type: "string",
8230
+ required: false,
8231
+ hidden: true,
8232
+ isPrimaryKey: false,
8233
+ binding: false,
8234
+ defaultValue: null
8235
+ }
8236
+ ],
8237
+ inputPattern: "mergedBody",
8238
+ inputName: "JobArguments",
8239
+ inputTarget: "bodyField",
7762
8240
  outputSource: null,
7763
8241
  outputType: "Orchestrator.RunJob",
7764
8242
  outputName: "Process response",
@@ -7775,7 +8253,7 @@ var bpmn_spec_default = {
7775
8253
  xmlTemplate: `<bpmn:CallActivity id="{id}" name="{name}">
7776
8254
  <bpmn:extensionElements>
7777
8255
  <uipath:activity version="v1">
7778
- <uipath:type value="Orchestrator.StartFlowProcess" version="v2" />
8256
+ <uipath:type value="Orchestrator.StartAgenticProcess" version="v1" />
7779
8257
  <uipath:context>
7780
8258
  <uipath:input name="releaseKey" type="string" value="{releaseKey}" />
7781
8259
  <uipath:input name="folderId" type="string" value="{folderId}" />
@@ -7789,11 +8267,11 @@ var bpmn_spec_default = {
7789
8267
  <bpmn:incoming>{incomingEdge}</bpmn:incoming>
7790
8268
  <bpmn:outgoing>{outgoingEdge}</bpmn:outgoing>
7791
8269
  </bpmn:CallActivity>`,
7792
- discoveryNotes: "Uses getSupportedOrchestratorTasks('Flow', search, 0, 100, true) to list available flow processes. Studio Web bindings use the Flow process resource subtype."
8270
+ discoveryNotes: "Uses getSupportedOrchestratorTasks('ProcessOrchestration', search, 0, 100, true) to list available agentic processes"
7793
8271
  },
7794
- "Orchestrator.StartFlowProcessAsync": {
7795
- extensionType: "Orchestrator.StartFlowProcessAsync",
7796
- label: "Start Maestro Flow",
8272
+ "Orchestrator.StartAgenticProcessAsync": {
8273
+ extensionType: "Orchestrator.StartAgenticProcessAsync",
8274
+ label: "Start agentic process",
7797
8275
  bpmnElement: "bpmn:CallActivity",
7798
8276
  placements: {
7799
8277
  activity: {
@@ -7804,7 +8282,7 @@ var bpmn_spec_default = {
7804
8282
  contextFields: [
7805
8283
  {
7806
8284
  name: "releaseKey",
7807
- displayName: "Maestro Flow",
8285
+ displayName: "Process",
7808
8286
  type: "string",
7809
8287
  required: false,
7810
8288
  hidden: true,
@@ -7851,7 +8329,7 @@ var bpmn_spec_default = {
7851
8329
  outputSource: null,
7852
8330
  outputType: null,
7853
8331
  outputName: null,
7854
- outputNotes: "Fire-and-forget: the canvas clears the process outputs for this type (getAgenticProcessInputOutputValues sets outputs to [] for Orchestrator.StartFlowProcessAsync), so the payload carries none of the entry-point outputs its sync sibling returns. A process picked straight from Orchestrator (no solutionResourceKey) can still contribute task-definition outputs, which is why this type stays on the canvas-owned dynamic path. Use Orchestrator.StartFlowProcess when you need the job result.",
8332
+ outputNotes: "Fire-and-forget: the canvas clears the process outputs for this type (getAgenticProcessInputOutputValues sets outputs to [] for Orchestrator.StartAgenticProcessAsync), so the payload carries none of the entry-point outputs its sync sibling returns. A process picked straight from Orchestrator (no solutionResourceKey) can still contribute task-definition outputs, which is why this type stays on the canvas-owned dynamic path. Use Orchestrator.StartAgenticProcess when you need the job result.",
7855
8333
  bindingPattern: "process",
7856
8334
  bindingInfo: {
7857
8335
  resource: "process",
@@ -7864,7 +8342,7 @@ var bpmn_spec_default = {
7864
8342
  xmlTemplate: `<bpmn:CallActivity id="{id}" name="{name}">
7865
8343
  <bpmn:extensionElements>
7866
8344
  <uipath:activity version="v1">
7867
- <uipath:type value="Orchestrator.StartFlowProcessAsync" version="v2" />
8345
+ <uipath:type value="Orchestrator.StartAgenticProcessAsync" version="v1" />
7868
8346
  <uipath:context>
7869
8347
  <uipath:input name="releaseKey" type="string" value="{releaseKey}" />
7870
8348
  <uipath:input name="folderId" type="string" value="{folderId}" />
@@ -7877,191 +8355,990 @@ var bpmn_spec_default = {
7877
8355
  <bpmn:incoming>{incomingEdge}</bpmn:incoming>
7878
8356
  <bpmn:outgoing>{outgoingEdge}</bpmn:outgoing>
7879
8357
  </bpmn:CallActivity>`,
7880
- discoveryNotes: "Uses getSupportedOrchestratorTasks('Flow', search, 0, 100, true) to list available flow processes."
8358
+ discoveryNotes: "Uses getSupportedOrchestratorTasks('ProcessOrchestration', search, 0, 100, true) to list available agentic processes"
7881
8359
  },
7882
- "A2A.AgentExecution": {
7883
- extensionType: "A2A.AgentExecution",
7884
- label: "Start and wait for A2A agent",
7885
- bpmnElement: "bpmn:ServiceTask",
8360
+ "Orchestrator.StartCaseMgmtProcess": {
8361
+ extensionType: "Orchestrator.StartCaseMgmtProcess",
8362
+ label: "Start and wait for case management",
8363
+ bpmnElement: "bpmn:CallActivity",
7886
8364
  placements: {
7887
8365
  activity: {
7888
- type: "bpmn:ServiceTask"
8366
+ type: "bpmn:CallActivity"
7889
8367
  }
7890
8368
  },
7891
8369
  extensionTag: "uipath:activity",
7892
- contextFields: [],
7893
- inputPattern: "mergedBody",
7894
- inputName: "body",
7895
- inputTarget: "body",
7896
- outputSource: null,
7897
- outputType: "A2A.AgentExecution",
7898
- outputName: "a2aResponse",
7899
- useRelativeSource: true,
7900
- bindingPattern: "none",
7901
- requiresDiscovery: false,
7902
- isDynamic: true,
7903
- xmlTemplate: `<bpmn:ServiceTask id="{id}" name="{name}">
7904
- <bpmn:extensionElements>
7905
- <uipath:activity version="v1">
7906
- <uipath:type value="A2A.AgentExecution" version="v1" />
7907
- <uipath:input name="body" type="json" target="body"><![CDATA[{"agentUrl":"{agentUrl}","skillId":"{skillId}","input":"{input}","authToken":"{authToken}","agentName":"{agentName}"}]]></uipath:input>
7908
- <uipath:output name="a2aResponse" type="A2A.AgentExecution" var="{varId}" />
7909
- </uipath:activity>
7910
- </bpmn:extensionElements>
7911
- <bpmn:incoming>{incomingEdge}</bpmn:incoming>
7912
- <bpmn:outgoing>{outgoingEdge}</bpmn:outgoing>
7913
- </bpmn:ServiceTask>`,
7914
- inputFieldNotes: "Auto-initialized by A2AFPSFormControl on load. Version is set to v2. Outputs include a2aResponse (jsonSchema with A2A response schema, source=result) and Error (any, source=Error). authToken should be an expression or variable (for example =vars.authToken), never a literal token.",
7915
- outputNotes: "Output schema includes: isSuccess (boolean), response (string), sessionId (string), status (string), taskId (string), artifacts (array of {index, parts, metadata}). Also includes Error output (type=any, source=Error).",
7916
- inputFields: [
7917
- {
7918
- name: "agentUrl",
7919
- displayName: "Agent URL",
7920
- type: "string",
7921
- required: true,
7922
- description: "URL of the A2A agent endpoint"
7923
- },
8370
+ contextFields: [
7924
8371
  {
7925
- name: "skillId",
7926
- displayName: "Skill ID",
8372
+ name: "releaseKey",
8373
+ displayName: "Process",
7927
8374
  type: "string",
7928
- required: true,
7929
- description: "Identifier for the specific skill to invoke on the agent"
8375
+ required: false,
8376
+ hidden: true,
8377
+ isPrimaryKey: false,
8378
+ binding: false,
8379
+ defaultValue: null,
8380
+ bindingInfo: {
8381
+ resource: "process",
8382
+ resourceKeyPattern: "${metadata.key}",
8383
+ propertyAttribute: "Key"
8384
+ }
8385
+ },
8386
+ {
8387
+ name: "folderId",
8388
+ type: "string",
8389
+ required: false,
8390
+ hidden: true,
8391
+ isPrimaryKey: false,
8392
+ binding: false,
8393
+ defaultValue: null
8394
+ },
8395
+ {
8396
+ name: "folderPath",
8397
+ type: "string",
8398
+ required: false,
8399
+ hidden: true,
8400
+ isPrimaryKey: false,
8401
+ binding: false,
8402
+ defaultValue: null
8403
+ },
8404
+ {
8405
+ name: "name",
8406
+ type: "string",
8407
+ required: false,
8408
+ hidden: true,
8409
+ isPrimaryKey: false,
8410
+ binding: false,
8411
+ defaultValue: null
8412
+ }
8413
+ ],
8414
+ inputPattern: "mergedBody",
8415
+ inputName: "JobArguments",
8416
+ inputTarget: "bodyField",
8417
+ outputSource: null,
8418
+ outputType: "Orchestrator.RunJob",
8419
+ outputName: "Process response",
8420
+ useRelativeSource: true,
8421
+ bindingPattern: "process",
8422
+ bindingInfo: {
8423
+ resource: "process",
8424
+ resourceKeyPattern: "${metadata.key}",
8425
+ propertyAttribute: "Key",
8426
+ contextField: "releaseKey"
8427
+ },
8428
+ requiresDiscovery: true,
8429
+ isDynamic: true,
8430
+ xmlTemplate: `<bpmn:CallActivity id="{id}" name="{name}">
8431
+ <bpmn:extensionElements>
8432
+ <uipath:activity version="v1">
8433
+ <uipath:type value="Orchestrator.StartCaseMgmtProcess" version="v1" />
8434
+ <uipath:context>
8435
+ <uipath:input name="releaseKey" type="string" value="{releaseKey}" />
8436
+ <uipath:input name="folderId" type="string" value="{folderId}" />
8437
+ <uipath:input name="folderPath" type="string" value="{folderPath}" />
8438
+ <uipath:input name="name" type="string" value="{name}" />
8439
+ </uipath:context>
8440
+ <uipath:input name="JobArguments" type="json" target="bodyField"><![CDATA[{}]]></uipath:input>
8441
+ <uipath:output name="Process response" type="Orchestrator.RunJob" var="{varId}" />
8442
+ </uipath:activity>
8443
+ </bpmn:extensionElements>
8444
+ <bpmn:incoming>{incomingEdge}</bpmn:incoming>
8445
+ <bpmn:outgoing>{outgoingEdge}</bpmn:outgoing>
8446
+ </bpmn:CallActivity>`,
8447
+ discoveryNotes: "Uses getSupportedOrchestratorTasks('caseManagement', search, 0, 100, true) to list available case management processes"
8448
+ },
8449
+ "Orchestrator.StartCaseMgmtProcessAsync": {
8450
+ extensionType: "Orchestrator.StartCaseMgmtProcessAsync",
8451
+ label: "Start case management",
8452
+ bpmnElement: "bpmn:CallActivity",
8453
+ placements: {
8454
+ activity: {
8455
+ type: "bpmn:CallActivity"
8456
+ }
8457
+ },
8458
+ extensionTag: "uipath:activity",
8459
+ contextFields: [
8460
+ {
8461
+ name: "releaseKey",
8462
+ displayName: "Process",
8463
+ type: "string",
8464
+ required: false,
8465
+ hidden: true,
8466
+ isPrimaryKey: false,
8467
+ binding: false,
8468
+ defaultValue: null,
8469
+ bindingInfo: {
8470
+ resource: "process",
8471
+ resourceKeyPattern: "${metadata.key}",
8472
+ propertyAttribute: "Key"
8473
+ }
8474
+ },
8475
+ {
8476
+ name: "folderId",
8477
+ type: "string",
8478
+ required: false,
8479
+ hidden: true,
8480
+ isPrimaryKey: false,
8481
+ binding: false,
8482
+ defaultValue: null
8483
+ },
8484
+ {
8485
+ name: "folderPath",
8486
+ type: "string",
8487
+ required: false,
8488
+ hidden: true,
8489
+ isPrimaryKey: false,
8490
+ binding: false,
8491
+ defaultValue: null
8492
+ },
8493
+ {
8494
+ name: "name",
8495
+ type: "string",
8496
+ required: false,
8497
+ hidden: true,
8498
+ isPrimaryKey: false,
8499
+ binding: false,
8500
+ defaultValue: null
8501
+ }
8502
+ ],
8503
+ inputPattern: "mergedBody",
8504
+ inputName: "JobArguments",
8505
+ inputTarget: "bodyField",
8506
+ outputSource: null,
8507
+ outputType: null,
8508
+ outputName: null,
8509
+ outputNotes: "Fire-and-forget: the canvas clears the process outputs for this type (getAgenticProcessInputOutputValues sets outputs to [] for Orchestrator.StartCaseMgmtProcessAsync), so the payload carries none of the entry-point outputs its sync sibling returns. A process picked straight from Orchestrator (no solutionResourceKey) can still contribute task-definition outputs, which is why this type stays on the canvas-owned dynamic path. Use Orchestrator.StartCaseMgmtProcess when you need the job result.",
8510
+ bindingPattern: "process",
8511
+ bindingInfo: {
8512
+ resource: "process",
8513
+ resourceKeyPattern: "${metadata.key}",
8514
+ propertyAttribute: "Key",
8515
+ contextField: "releaseKey"
8516
+ },
8517
+ requiresDiscovery: true,
8518
+ isDynamic: true,
8519
+ xmlTemplate: `<bpmn:CallActivity id="{id}" name="{name}">
8520
+ <bpmn:extensionElements>
8521
+ <uipath:activity version="v1">
8522
+ <uipath:type value="Orchestrator.StartCaseMgmtProcessAsync" version="v1" />
8523
+ <uipath:context>
8524
+ <uipath:input name="releaseKey" type="string" value="{releaseKey}" />
8525
+ <uipath:input name="folderId" type="string" value="{folderId}" />
8526
+ <uipath:input name="folderPath" type="string" value="{folderPath}" />
8527
+ <uipath:input name="name" type="string" value="{name}" />
8528
+ </uipath:context>
8529
+ <uipath:input name="JobArguments" type="json" target="bodyField"><![CDATA[{}]]></uipath:input>
8530
+ </uipath:activity>
8531
+ </bpmn:extensionElements>
8532
+ <bpmn:incoming>{incomingEdge}</bpmn:incoming>
8533
+ <bpmn:outgoing>{outgoingEdge}</bpmn:outgoing>
8534
+ </bpmn:CallActivity>`,
8535
+ discoveryNotes: "Uses getSupportedOrchestratorTasks('caseManagement', search, 0, 100, true) to list available case management processes"
8536
+ },
8537
+ "Orchestrator.StartFlowProcess": {
8538
+ extensionType: "Orchestrator.StartFlowProcess",
8539
+ label: "Start and wait for Maestro Flow",
8540
+ bpmnElement: "bpmn:CallActivity",
8541
+ placements: {
8542
+ activity: {
8543
+ type: "bpmn:CallActivity"
8544
+ }
8545
+ },
8546
+ extensionTag: "uipath:activity",
8547
+ contextFields: [
8548
+ {
8549
+ name: "releaseKey",
8550
+ displayName: "Maestro Flow",
8551
+ type: "string",
8552
+ required: false,
8553
+ hidden: true,
8554
+ isPrimaryKey: false,
8555
+ binding: false,
8556
+ defaultValue: null,
8557
+ bindingInfo: {
8558
+ resource: "process",
8559
+ resourceKeyPattern: "${metadata.key}",
8560
+ propertyAttribute: "Key"
8561
+ }
8562
+ },
8563
+ {
8564
+ name: "folderId",
8565
+ type: "string",
8566
+ required: false,
8567
+ hidden: true,
8568
+ isPrimaryKey: false,
8569
+ binding: false,
8570
+ defaultValue: null
8571
+ },
8572
+ {
8573
+ name: "folderPath",
8574
+ type: "string",
8575
+ required: false,
8576
+ hidden: true,
8577
+ isPrimaryKey: false,
8578
+ binding: false,
8579
+ defaultValue: null
8580
+ },
8581
+ {
8582
+ name: "name",
8583
+ type: "string",
8584
+ required: false,
8585
+ hidden: true,
8586
+ isPrimaryKey: false,
8587
+ binding: false,
8588
+ defaultValue: null
8589
+ }
8590
+ ],
8591
+ inputPattern: "mergedBody",
8592
+ inputName: "JobArguments",
8593
+ inputTarget: "bodyField",
8594
+ outputSource: null,
8595
+ outputType: "Orchestrator.RunJob",
8596
+ outputName: "Process response",
8597
+ useRelativeSource: true,
8598
+ bindingPattern: "process",
8599
+ bindingInfo: {
8600
+ resource: "process",
8601
+ resourceKeyPattern: "${metadata.key}",
8602
+ propertyAttribute: "Key",
8603
+ contextField: "releaseKey"
8604
+ },
8605
+ requiresDiscovery: true,
8606
+ isDynamic: true,
8607
+ xmlTemplate: `<bpmn:CallActivity id="{id}" name="{name}">
8608
+ <bpmn:extensionElements>
8609
+ <uipath:activity version="v1">
8610
+ <uipath:type value="Orchestrator.StartFlowProcess" version="v2" />
8611
+ <uipath:context>
8612
+ <uipath:input name="releaseKey" type="string" value="{releaseKey}" />
8613
+ <uipath:input name="folderId" type="string" value="{folderId}" />
8614
+ <uipath:input name="folderPath" type="string" value="{folderPath}" />
8615
+ <uipath:input name="name" type="string" value="{name}" />
8616
+ </uipath:context>
8617
+ <uipath:input name="JobArguments" type="json" target="bodyField"><![CDATA[{}]]></uipath:input>
8618
+ <uipath:output name="Process response" type="Orchestrator.RunJob" var="{varId}" />
8619
+ </uipath:activity>
8620
+ </bpmn:extensionElements>
8621
+ <bpmn:incoming>{incomingEdge}</bpmn:incoming>
8622
+ <bpmn:outgoing>{outgoingEdge}</bpmn:outgoing>
8623
+ </bpmn:CallActivity>`,
8624
+ discoveryNotes: "Uses getSupportedOrchestratorTasks('Flow', search, 0, 100, true) to list available flow processes. Studio Web bindings use the Flow process resource subtype."
8625
+ },
8626
+ "Orchestrator.StartFlowProcessAsync": {
8627
+ extensionType: "Orchestrator.StartFlowProcessAsync",
8628
+ label: "Start Maestro Flow",
8629
+ bpmnElement: "bpmn:CallActivity",
8630
+ placements: {
8631
+ activity: {
8632
+ type: "bpmn:CallActivity"
8633
+ }
8634
+ },
8635
+ extensionTag: "uipath:activity",
8636
+ contextFields: [
8637
+ {
8638
+ name: "releaseKey",
8639
+ displayName: "Maestro Flow",
8640
+ type: "string",
8641
+ required: false,
8642
+ hidden: true,
8643
+ isPrimaryKey: false,
8644
+ binding: false,
8645
+ defaultValue: null,
8646
+ bindingInfo: {
8647
+ resource: "process",
8648
+ resourceKeyPattern: "${metadata.key}",
8649
+ propertyAttribute: "Key"
8650
+ }
8651
+ },
8652
+ {
8653
+ name: "folderId",
8654
+ type: "string",
8655
+ required: false,
8656
+ hidden: true,
8657
+ isPrimaryKey: false,
8658
+ binding: false,
8659
+ defaultValue: null
8660
+ },
8661
+ {
8662
+ name: "folderPath",
8663
+ type: "string",
8664
+ required: false,
8665
+ hidden: true,
8666
+ isPrimaryKey: false,
8667
+ binding: false,
8668
+ defaultValue: null
8669
+ },
8670
+ {
8671
+ name: "name",
8672
+ type: "string",
8673
+ required: false,
8674
+ hidden: true,
8675
+ isPrimaryKey: false,
8676
+ binding: false,
8677
+ defaultValue: null
8678
+ }
8679
+ ],
8680
+ inputPattern: "mergedBody",
8681
+ inputName: "JobArguments",
8682
+ inputTarget: "bodyField",
8683
+ outputSource: null,
8684
+ outputType: null,
8685
+ outputName: null,
8686
+ outputNotes: "Fire-and-forget: the canvas clears the process outputs for this type (getAgenticProcessInputOutputValues sets outputs to [] for Orchestrator.StartFlowProcessAsync), so the payload carries none of the entry-point outputs its sync sibling returns. A process picked straight from Orchestrator (no solutionResourceKey) can still contribute task-definition outputs, which is why this type stays on the canvas-owned dynamic path. Use Orchestrator.StartFlowProcess when you need the job result.",
8687
+ bindingPattern: "process",
8688
+ bindingInfo: {
8689
+ resource: "process",
8690
+ resourceKeyPattern: "${metadata.key}",
8691
+ propertyAttribute: "Key",
8692
+ contextField: "releaseKey"
8693
+ },
8694
+ requiresDiscovery: true,
8695
+ isDynamic: true,
8696
+ xmlTemplate: `<bpmn:CallActivity id="{id}" name="{name}">
8697
+ <bpmn:extensionElements>
8698
+ <uipath:activity version="v1">
8699
+ <uipath:type value="Orchestrator.StartFlowProcessAsync" version="v2" />
8700
+ <uipath:context>
8701
+ <uipath:input name="releaseKey" type="string" value="{releaseKey}" />
8702
+ <uipath:input name="folderId" type="string" value="{folderId}" />
8703
+ <uipath:input name="folderPath" type="string" value="{folderPath}" />
8704
+ <uipath:input name="name" type="string" value="{name}" />
8705
+ </uipath:context>
8706
+ <uipath:input name="JobArguments" type="json" target="bodyField"><![CDATA[{}]]></uipath:input>
8707
+ </uipath:activity>
8708
+ </bpmn:extensionElements>
8709
+ <bpmn:incoming>{incomingEdge}</bpmn:incoming>
8710
+ <bpmn:outgoing>{outgoingEdge}</bpmn:outgoing>
8711
+ </bpmn:CallActivity>`,
8712
+ discoveryNotes: "Uses getSupportedOrchestratorTasks('Flow', search, 0, 100, true) to list available flow processes."
8713
+ },
8714
+ "A2A.AgentExecution": {
8715
+ extensionType: "A2A.AgentExecution",
8716
+ label: "Start and wait for A2A agent",
8717
+ bpmnElement: "bpmn:ServiceTask",
8718
+ placements: {
8719
+ activity: {
8720
+ type: "bpmn:ServiceTask"
8721
+ }
8722
+ },
8723
+ extensionTag: "uipath:activity",
8724
+ contextFields: [],
8725
+ inputPattern: "mergedBody",
8726
+ inputName: "body",
8727
+ inputTarget: "body",
8728
+ outputSource: null,
8729
+ outputType: "A2A.AgentExecution",
8730
+ outputName: "a2aResponse",
8731
+ useRelativeSource: true,
8732
+ bindingPattern: "none",
8733
+ requiresDiscovery: false,
8734
+ isDynamic: true,
8735
+ xmlTemplate: `<bpmn:ServiceTask id="{id}" name="{name}">
8736
+ <bpmn:extensionElements>
8737
+ <uipath:activity version="v1">
8738
+ <uipath:type value="A2A.AgentExecution" version="v1" />
8739
+ <uipath:input name="body" type="json" target="body"><![CDATA[{"agentUrl":"{agentUrl}","skillId":"{skillId}","input":"{input}","authToken":"{authToken}","agentName":"{agentName}"}]]></uipath:input>
8740
+ <uipath:output name="a2aResponse" type="A2A.AgentExecution" var="{varId}" />
8741
+ </uipath:activity>
8742
+ </bpmn:extensionElements>
8743
+ <bpmn:incoming>{incomingEdge}</bpmn:incoming>
8744
+ <bpmn:outgoing>{outgoingEdge}</bpmn:outgoing>
8745
+ </bpmn:ServiceTask>`,
8746
+ inputFieldNotes: "Auto-initialized by A2AFPSFormControl on load. Version is set to v2. Outputs include a2aResponse (jsonSchema with A2A response schema, source=result) and Error (any, source=Error). authToken should be an expression or variable (for example =vars.authToken), never a literal token.",
8747
+ outputNotes: "Output schema includes: isSuccess (boolean), response (string), sessionId (string), status (string), taskId (string), artifacts (array of {index, parts, metadata}). Also includes Error output (type=any, source=Error).",
8748
+ inputFields: [
8749
+ {
8750
+ name: "agentUrl",
8751
+ displayName: "Agent URL",
8752
+ type: "string",
8753
+ required: true,
8754
+ description: "URL of the A2A agent endpoint"
8755
+ },
8756
+ {
8757
+ name: "skillId",
8758
+ displayName: "Skill ID",
8759
+ type: "string",
8760
+ required: true,
8761
+ description: "Identifier for the specific skill to invoke on the agent"
8762
+ },
8763
+ {
8764
+ name: "input",
8765
+ displayName: "Input",
8766
+ type: "string",
8767
+ required: true,
8768
+ description: "Input text/message to send to the A2A agent"
8769
+ },
8770
+ {
8771
+ name: "authToken",
8772
+ displayName: "Auth Token",
8773
+ type: "string",
8774
+ required: true,
8775
+ description: "Authentication token for the A2A agent"
8776
+ },
8777
+ {
8778
+ name: "agentName",
8779
+ displayName: "Agent Name",
8780
+ type: "string",
8781
+ required: true,
8782
+ description: "Display name of the A2A agent"
8783
+ }
8784
+ ]
8785
+ },
8786
+ "BPMN.Variables": {
8787
+ extensionType: "BPMN.Variables",
8788
+ label: "BPMN Variables",
8789
+ bpmnElement: "bpmn:Task",
8790
+ placements: {},
8791
+ extensionTag: "uipath:mapping",
8792
+ contextFields: [],
8793
+ inputPattern: "none",
8794
+ outputSource: null,
8795
+ outputType: null,
8796
+ bindingPattern: "none",
8797
+ requiresDiscovery: false,
8798
+ isDynamic: false,
8799
+ xmlTemplate: `<bpmn:Task id="{id}" name="{name}">
8800
+ <bpmn:extensionElements>
8801
+ <uipath:mapping version="v1">
8802
+ <uipath:type value="BPMN.Variables" version="v1" />
8803
+ </uipath:mapping>
8804
+ </bpmn:extensionElements>
8805
+ <bpmn:incoming>{incomingEdge}</bpmn:incoming>
8806
+ <bpmn:outgoing>{outgoingEdge}</bpmn:outgoing>
8807
+ </bpmn:Task>`,
8808
+ inputNotes: "Variable mappings use uipath:mapping with direct input/output elements, not a jsonBody pattern",
8809
+ bpmnElementNotes: "Also used on bpmn:StartEvent, bpmn:EndEvent, bpmn:ScriptTask, and bpmn:SubProcess for variable mappings. On bpmn:Task with no serviceType, defaults to BPMN.Variables.",
8810
+ extensionTagNotes: "Uses uipath:mapping (not uipath:activity). BPMN.Variables mappings are supported on StartEvent, EndEvent, Task, ScriptTask, and SubProcess owners."
8811
+ },
8812
+ "BPMN.ScriptTask": {
8813
+ extensionType: "BPMN.ScriptTask",
8814
+ label: "Execute script",
8815
+ bpmnElement: "bpmn:ScriptTask",
8816
+ placements: {},
8817
+ extensionTag: "uipath:mapping",
8818
+ contextFields: [],
8819
+ inputPattern: "scriptArgs",
8820
+ inputName: "args",
8821
+ inputTarget: "bodyField",
8822
+ outputSource: null,
8823
+ outputType: null,
8824
+ bindingPattern: "none",
8825
+ requiresDiscovery: false,
8826
+ isDynamic: false,
8827
+ xmlTemplate: `<bpmn:ScriptTask id="{id}" name="{name}">
8828
+ <bpmn:extensionElements>
8829
+ <uipath:mapping version="v1">
8830
+ <uipath:type value="BPMN.ScriptTask" version="v1" />
8831
+ <uipath:input name="args" type="json" target="bodyField"><![CDATA[{}]]></uipath:input>
8832
+ </uipath:mapping>
8833
+ </bpmn:extensionElements>
8834
+ <bpmn:incoming>{incomingEdge}</bpmn:incoming>
8835
+ <bpmn:outgoing>{outgoingEdge}</bpmn:outgoing>
8836
+ </bpmn:ScriptTask>`,
8837
+ inputNotes: "Inputs are merged into a single json input named 'args' with target 'bodyField'. An inputSchema is created from the input variables.",
8838
+ extensionTagNotes: "bpmn:ScriptTask is routed through createModdleExtensionVariableMapping (same as BPMN.Variables). Inputs are merged into a single 'args' JSON body with inputSchema."
8839
+ },
8840
+ "ConversationalService.QueueServiceMessage": {
8841
+ extensionType: "ConversationalService.QueueServiceMessage",
8842
+ label: "Queue service message",
8843
+ bpmnElement: "bpmn:ServiceTask",
8844
+ placements: {
8845
+ activity: {
8846
+ type: "bpmn:ServiceTask"
8847
+ }
8848
+ },
8849
+ extensionTag: "uipath:activity",
8850
+ contextFields: [
8851
+ {
8852
+ name: "_label",
8853
+ type: "string",
8854
+ required: false,
8855
+ hidden: true,
8856
+ isPrimaryKey: false,
8857
+ binding: false,
8858
+ defaultValue: null
8859
+ }
8860
+ ],
8861
+ inputPattern: "mergedBody",
8862
+ inputName: "body",
8863
+ inputTarget: "body",
8864
+ outputSource: "=response",
8865
+ outputType: "jsonSchema",
8866
+ outputName: "response",
8867
+ additionalOutputs: [
8868
+ {
8869
+ name: "Error",
8870
+ type: "jsonSchema",
8871
+ source: "=Error",
8872
+ required: false
8873
+ }
8874
+ ],
8875
+ bindingPattern: "none",
8876
+ requiresDiscovery: false,
8877
+ isDynamic: false,
8878
+ xmlTemplate: `<bpmn:ServiceTask id="{id}" name="{name}">
8879
+ <bpmn:extensionElements>
8880
+ <uipath:activity version="v1">
8881
+ <uipath:type value="ConversationalService.QueueServiceMessage" version="v1" />
8882
+ <uipath:input name="body" type="json" target="body"><![CDATA[{"conversationId":"{conversationId}","userContent":"{userContent}","assistantContent":"{assistantContent}"}]]></uipath:input>
8883
+ <uipath:output name="response" type="jsonSchema" source="=response" var="{varId}" />
8884
+ <uipath:output name="Error" type="jsonSchema" source="=Error" var="{errorVarId}" />
8885
+ </uipath:activity>
8886
+ </bpmn:extensionElements>
8887
+ <bpmn:incoming>{incomingEdge}</bpmn:incoming>
8888
+ <bpmn:outgoing>{outgoingEdge}</bpmn:outgoing>
8889
+ </bpmn:ServiceTask>`,
8890
+ inputNotes: "The custom Studio Web form seeds conversationId, userContent, and assistantContent as required fields. The generic FPS serializer merges them into the body JSON payload. It also writes a uipath:inputSchema built from those fields inside uipath:context; the template leaves it out because it is derived, not authored.",
8891
+ contextFieldNotes: 'The design schema declares the three fields as context; the shipped custom form (ConversationalServiceFPSFormControl.tsx) declares them as inputs with target: "body", and the generic serializer merges them into the body.',
8892
+ outputNotes: 'The response schema contains the queued message id, conversation and content fields, MIME types, pending state, and timestamps. Studio Web always writes the standard Error output. Validation also accepts files without it. Extra outputs that narrow the response carry custom="true".',
8893
+ inputFields: [
8894
+ {
8895
+ name: "conversationId",
8896
+ displayName: "Conversation ID",
8897
+ type: "string",
8898
+ required: true,
8899
+ hidden: false,
8900
+ isPrimaryKey: false,
8901
+ binding: false,
8902
+ defaultValue: null,
8903
+ target: "body"
8904
+ },
8905
+ {
8906
+ name: "userContent",
8907
+ displayName: "User content",
8908
+ type: "string",
8909
+ required: true,
8910
+ hidden: false,
8911
+ isPrimaryKey: false,
8912
+ binding: false,
8913
+ defaultValue: null,
8914
+ target: "body"
8915
+ },
8916
+ {
8917
+ name: "assistantContent",
8918
+ displayName: "Assistant content",
8919
+ type: "string",
8920
+ required: true,
8921
+ hidden: false,
8922
+ isPrimaryKey: false,
8923
+ binding: false,
8924
+ defaultValue: null,
8925
+ target: "body"
8926
+ }
8927
+ ]
8928
+ },
8929
+ "Intsvc.TimerTrigger": {
8930
+ extensionType: "Intsvc.TimerTrigger",
8931
+ label: "Timer trigger",
8932
+ bpmnElement: "bpmn:StartEvent",
8933
+ placements: {},
8934
+ extensionTag: "uipath:activity",
8935
+ contextFields: [],
8936
+ inputPattern: "none",
8937
+ outputSource: ".",
8938
+ outputType: "custom",
8939
+ outputName: "result",
8940
+ useRelativeSource: false,
8941
+ bindingPattern: "none",
8942
+ requiresDiscovery: false,
8943
+ isDynamic: false,
8944
+ xmlTemplate: `<bpmn:StartEvent id="{id}" name="{name}">
8945
+ <bpmn:extensionElements>
8946
+ <uipath:activity version="v1">
8947
+ <uipath:type value="Intsvc.TimerTrigger" version="v1" />
8948
+ <uipath:output name="result" type="custom" source="." var="{varId}" />
8949
+ </uipath:activity>
8950
+ </bpmn:extensionElements>
8951
+ <bpmn:timerEventDefinition><bpmn:timeDuration xsi:type="bpmn:tFormalExpression">PT1H</bpmn:timeDuration></bpmn:timerEventDefinition>
8952
+ <bpmn:incoming>{incomingEdge}</bpmn:incoming>
8953
+ <bpmn:outgoing>{outgoingEdge}</bpmn:outgoing>
8954
+ </bpmn:StartEvent>`,
8955
+ inputNotes: "No jsonBody, no input fields, no isSplitInputs in design schema",
8956
+ bpmnElementNotes: "Used via timer event definition on start events; not directly in FPS_TO_NODE_MAPPING",
8957
+ extensionTagNotes: "NOT in isEvents array, uses uipath:activity. However, isIntsvcTriggerDesignSchemaType returns true.",
8958
+ inputFields: []
8959
+ },
8960
+ "Maestro.ReceiveMessageEvent": {
8961
+ extensionType: "Maestro.ReceiveMessageEvent",
8962
+ label: "Receive internal message",
8963
+ bpmnElement: "bpmn:IntermediateCatchEvent",
8964
+ placements: {
8965
+ startEvent: {
8966
+ type: "bpmn:StartEvent",
8967
+ eventDefinition: {
8968
+ type: "bpmn:MessageEventDefinition"
8969
+ }
8970
+ },
8971
+ intermediateEvent: {
8972
+ type: "bpmn:IntermediateCatchEvent",
8973
+ eventDefinition: {
8974
+ type: "bpmn:MessageEventDefinition"
8975
+ }
8976
+ },
8977
+ boundaryEvent: {
8978
+ type: "bpmn:BoundaryEvent",
8979
+ eventDefinition: {
8980
+ type: "bpmn:MessageEventDefinition"
8981
+ }
8982
+ }
8983
+ },
8984
+ extensionTag: "uipath:event",
8985
+ contextFields: [
8986
+ {
8987
+ name: "name",
8988
+ displayName: "Message name",
8989
+ type: "string",
8990
+ required: true,
8991
+ hidden: false,
8992
+ isPrimaryKey: false,
8993
+ binding: false,
8994
+ defaultValue: null
7930
8995
  },
7931
8996
  {
7932
- name: "input",
7933
- displayName: "Input",
8997
+ name: "_label",
8998
+ type: "string",
8999
+ required: false,
9000
+ hidden: true,
9001
+ isPrimaryKey: false,
9002
+ binding: false,
9003
+ defaultValue: null
9004
+ }
9005
+ ],
9006
+ inputPattern: "separateInputs",
9007
+ inputName: "ItemData",
9008
+ inputTarget: "body",
9009
+ outputSource: null,
9010
+ outputType: "Maestro.ReceiveMessageEvent",
9011
+ outputName: "response",
9012
+ useRelativeSource: true,
9013
+ bindingPattern: "none",
9014
+ requiresDiscovery: false,
9015
+ isDynamic: false,
9016
+ xmlTemplate: `<bpmn:IntermediateCatchEvent id="{id}" name="{name}">
9017
+ <bpmn:extensionElements>
9018
+ <uipath:event version="v1">
9019
+ <uipath:type value="Maestro.ReceiveMessageEvent" version="v1" />
9020
+ <uipath:context>
9021
+ <uipath:input name="name" type="string" value="{name}" />
9022
+ <uipath:input name="_label" type="string" value="{_label}" />
9023
+ </uipath:context>
9024
+ <uipath:input name="ItemData" type="json" target="body"><![CDATA[{}]]></uipath:input>
9025
+ <uipath:output name="response" type="Maestro.ReceiveMessageEvent" var="{varId}" />
9026
+ </uipath:event>
9027
+ </bpmn:extensionElements>
9028
+ <bpmn:messageEventDefinition />
9029
+ <bpmn:incoming>{incomingEdge}</bpmn:incoming>
9030
+ <bpmn:outgoing>{outgoingEdge}</bpmn:outgoing>
9031
+ </bpmn:IntermediateCatchEvent>`,
9032
+ inputNotes: "isSplitInputs=true in design schema but NOT in isSplitInputsEvents code array, so inputs are NOT merged into ItemData for this type. They remain separate.",
9033
+ extensionTagNotes: "In isEvents array, uses uipath:event",
9034
+ inputFields: [
9035
+ {
9036
+ name: "Reference",
9037
+ displayName: "Reference",
7934
9038
  type: "string",
7935
9039
  required: true,
7936
- description: "Input text/message to send to the A2A agent"
9040
+ hidden: false,
9041
+ isPrimaryKey: false,
9042
+ binding: false,
9043
+ defaultValue: null,
9044
+ target: "bodyField",
9045
+ description: "Correlation reference to match this receive event to its sender"
9046
+ }
9047
+ ]
9048
+ },
9049
+ "Maestro.SendMessageEvent": {
9050
+ extensionType: "Maestro.SendMessageEvent",
9051
+ label: "Send internal message",
9052
+ bpmnElement: "bpmn:IntermediateThrowEvent",
9053
+ placements: {
9054
+ intermediateEvent: {
9055
+ type: "bpmn:IntermediateThrowEvent",
9056
+ eventDefinition: {
9057
+ type: "bpmn:MessageEventDefinition"
9058
+ }
7937
9059
  },
9060
+ endEvent: {
9061
+ type: "bpmn:EndEvent",
9062
+ eventDefinition: {
9063
+ type: "bpmn:MessageEventDefinition"
9064
+ }
9065
+ }
9066
+ },
9067
+ extensionTag: "uipath:event",
9068
+ contextFields: [
7938
9069
  {
7939
- name: "authToken",
7940
- displayName: "Auth Token",
9070
+ name: "name",
9071
+ displayName: "Message name",
7941
9072
  type: "string",
7942
9073
  required: true,
7943
- description: "Authentication token for the A2A agent"
9074
+ hidden: false,
9075
+ isPrimaryKey: false,
9076
+ binding: false,
9077
+ defaultValue: null
9078
+ },
9079
+ {
9080
+ name: "_label",
9081
+ type: "string",
9082
+ required: false,
9083
+ hidden: true,
9084
+ isPrimaryKey: false,
9085
+ binding: false,
9086
+ defaultValue: null
9087
+ },
9088
+ {
9089
+ name: "inputSchema",
9090
+ displayName: "Input schema",
9091
+ type: "jsonSchema",
9092
+ required: true,
9093
+ hidden: true,
9094
+ isPrimaryKey: false,
9095
+ binding: false,
9096
+ defaultValue: null
9097
+ }
9098
+ ],
9099
+ inputPattern: "splitInputsItemData",
9100
+ inputName: "ItemData",
9101
+ inputTarget: "body",
9102
+ outputSource: null,
9103
+ outputType: "Maestro.SendMessageEvent",
9104
+ outputName: "response",
9105
+ useRelativeSource: true,
9106
+ bindingPattern: "none",
9107
+ requiresDiscovery: false,
9108
+ isDynamic: false,
9109
+ xmlTemplate: `<bpmn:IntermediateThrowEvent id="{id}" name="{name}">
9110
+ <bpmn:extensionElements>
9111
+ <uipath:event version="v1">
9112
+ <uipath:type value="Maestro.SendMessageEvent" version="v1" />
9113
+ <uipath:context>
9114
+ <uipath:input name="name" type="string" value="{name}" />
9115
+ <uipath:input name="_label" type="string" value="{_label}" />
9116
+ <uipath:input name="inputSchema" type="jsonSchema" value="{inputSchema}" />
9117
+ </uipath:context>
9118
+ <uipath:input name="ItemData" type="json" target="body"><![CDATA[{"Reference":"{Reference}","SpecificContent":{},"TimeToLive":""}]]></uipath:input>
9119
+ <uipath:output name="response" type="Maestro.SendMessageEvent" var="{varId}" />
9120
+ </uipath:event>
9121
+ </bpmn:extensionElements>
9122
+ <bpmn:messageEventDefinition />
9123
+ <bpmn:incoming>{incomingEdge}</bpmn:incoming>
9124
+ <bpmn:outgoing>{outgoingEdge}</bpmn:outgoing>
9125
+ </bpmn:IntermediateThrowEvent>`,
9126
+ inputNotes: "In isSplitInputsEvents array. Inputs are merged into a single ItemData JSON body at serialization time. Uses SEND_MESSAGE_EVENT_INPUT_SCHEMA as the inputSchema.",
9127
+ extensionTagNotes: "In isEvents array, uses uipath:event",
9128
+ inputFields: [
9129
+ {
9130
+ name: "Reference",
9131
+ displayName: "Reference",
9132
+ type: "string",
9133
+ required: true,
9134
+ hidden: false,
9135
+ isPrimaryKey: false,
9136
+ binding: false,
9137
+ defaultValue: null,
9138
+ target: "body",
9139
+ description: "Correlation reference to match this send event to its receiver"
9140
+ },
9141
+ {
9142
+ name: "SpecificContent",
9143
+ displayName: "Item information",
9144
+ type: "json",
9145
+ required: false,
9146
+ hidden: false,
9147
+ isPrimaryKey: false,
9148
+ binding: false,
9149
+ defaultValue: null,
9150
+ target: "body",
9151
+ description: "JSON payload with the message content"
9152
+ },
9153
+ {
9154
+ name: "TimeToLive",
9155
+ displayName: "Time to live",
9156
+ type: "duration",
9157
+ required: false,
9158
+ hidden: false,
9159
+ isPrimaryKey: false,
9160
+ binding: false,
9161
+ defaultValue: null,
9162
+ target: "body",
9163
+ description: "Duration after which the message expires if not consumed"
9164
+ }
9165
+ ]
9166
+ },
9167
+ "Maestro.CaseManagerPlaceholder": {
9168
+ extensionType: "Maestro.CaseManagerPlaceholder",
9169
+ label: "Case manager placeholder",
9170
+ bpmnElement: "bpmn:Task",
9171
+ placements: {},
9172
+ extensionTag: "uipath:activity",
9173
+ contextFields: [],
9174
+ inputPattern: "mergedBody",
9175
+ inputName: "caseManagerInput",
9176
+ inputTarget: "body",
9177
+ outputSource: "=js:(vars.caseRulesDecisions)",
9178
+ outputType: "json",
9179
+ outputName: "caseManagerDecisions",
9180
+ bindingPattern: "none",
9181
+ requiresDiscovery: false,
9182
+ isDynamic: false,
9183
+ contractOutputMayBeCustom: true,
9184
+ xmlTemplate: `<bpmn:Task id="{id}" name="{name}">
9185
+ <bpmn:extensionElements>
9186
+ <uipath:activity version="v1">
9187
+ <uipath:type value="Maestro.CaseManagerPlaceholder" version="v1" />
9188
+ <uipath:input name="caseManagerInput" type="json" target="body"><![CDATA[{"caseRulesDecisions":{caseRulesDecisions},"caseCurrentExecutionState":{caseCurrentExecutionState}}]]></uipath:input>
9189
+ <uipath:output name="caseManagerDecisions" type="json" source="=js:(vars.caseRulesDecisions)" var="{varId}" custom="true" />
9190
+ </uipath:activity>
9191
+ </bpmn:extensionElements>
9192
+ <bpmn:incoming>{incomingEdge}</bpmn:incoming>
9193
+ <bpmn:outgoing>{outgoingEdge}</bpmn:outgoing>
9194
+ </bpmn:Task>`,
9195
+ inputNotes: "The case converter creates this internal fallback task when no case-manager task runs. Its two inputs are merged into caseManagerInput during BPMN serialization.",
9196
+ outputNotes: 'The generated output copies the case-rules decisions into caseManagerDecisions. generateCaseManagerPlaceholderNode (PO.Frontend CaseManagementCaseManagerNodes.ts) spreads caseManagerDecisionsOutputVariable(), which stamps custom="true" on this output - a converter detail, not a panel narrowing, so contractOutputMayBeCustom tells the validator to still shape-check it (name/type/source/var) instead of dropping it as an unrelated custom addition.',
9197
+ inputFields: [
9198
+ {
9199
+ name: "caseRulesDecisions",
9200
+ displayName: "Case rules decisions",
9201
+ type: "json",
9202
+ required: true,
9203
+ hidden: false,
9204
+ isPrimaryKey: false,
9205
+ binding: false,
9206
+ defaultValue: null,
9207
+ target: "body"
9208
+ },
9209
+ {
9210
+ name: "caseCurrentExecutionState",
9211
+ displayName: "Case current execution state",
9212
+ type: "json",
9213
+ required: true,
9214
+ hidden: false,
9215
+ isPrimaryKey: false,
9216
+ binding: false,
9217
+ defaultValue: null,
9218
+ target: "body"
9219
+ }
9220
+ ]
9221
+ },
9222
+ "Maestro.UpdateCaseState": {
9223
+ extensionType: "Maestro.UpdateCaseState",
9224
+ label: "Update case state",
9225
+ bpmnElement: "bpmn:ServiceTask",
9226
+ placements: {},
9227
+ extensionTag: "uipath:activity",
9228
+ contextFields: [],
9229
+ inputPattern: "mergedBody",
9230
+ inputName: "ItemData",
9231
+ inputTarget: "body",
9232
+ outputSource: null,
9233
+ outputType: null,
9234
+ bindingPattern: "none",
9235
+ requiresDiscovery: false,
9236
+ isDynamic: false,
9237
+ xmlTemplate: `<bpmn:ServiceTask id="{id}" name="{name}">
9238
+ <bpmn:extensionElements>
9239
+ <uipath:activity version="v1">
9240
+ <uipath:type value="Maestro.UpdateCaseState" version="v2" />
9241
+ <uipath:input name="ItemData" type="json" target="body"><![CDATA[{"upsertKeys":{upsertKeys},"deleteKeys":{deleteKeys},"tasksCompletedDeleteNames":{tasksCompletedDeleteNames}}]]></uipath:input>
9242
+ </uipath:activity>
9243
+ </bpmn:extensionElements>
9244
+ <bpmn:incoming>{incomingEdge}</bpmn:incoming>
9245
+ <bpmn:outgoing>{outgoingEdge}</bpmn:outgoing>
9246
+ </bpmn:ServiceTask>`,
9247
+ inputNotes: "The case converter always supplies all three fields and the generic serializer merges them into ItemData. upsertKeys is a JSON-typed token: fill with a JSON literal, or a quoted string for an =js:... expression - an unquoted expression breaks the JSON. The generated helper does not bind the design-schema output.",
9248
+ inputFields: [
9249
+ {
9250
+ name: "upsertKeys",
9251
+ displayName: "Event keys to upsert",
9252
+ type: "json",
9253
+ required: true,
9254
+ hidden: false,
9255
+ isPrimaryKey: false,
9256
+ binding: false,
9257
+ defaultValue: null,
9258
+ target: "body"
9259
+ },
9260
+ {
9261
+ name: "deleteKeys",
9262
+ displayName: "Event keys to delete",
9263
+ type: "array",
9264
+ required: true,
9265
+ hidden: false,
9266
+ isPrimaryKey: false,
9267
+ binding: false,
9268
+ defaultValue: null,
9269
+ target: "body"
7944
9270
  },
7945
9271
  {
7946
- name: "agentName",
7947
- displayName: "Agent Name",
7948
- type: "string",
9272
+ name: "tasksCompletedDeleteNames",
9273
+ displayName: "Completed task names to delete",
9274
+ type: "array",
7949
9275
  required: true,
7950
- description: "Display name of the A2A agent"
9276
+ hidden: false,
9277
+ isPrimaryKey: false,
9278
+ binding: false,
9279
+ defaultValue: null,
9280
+ target: "body"
7951
9281
  }
7952
9282
  ]
7953
9283
  },
7954
- "BPMN.Variables": {
7955
- extensionType: "BPMN.Variables",
7956
- label: "BPMN Variables",
7957
- bpmnElement: "bpmn:Task",
9284
+ "Maestro.RetrieveCaseState": {
9285
+ extensionType: "Maestro.RetrieveCaseState",
9286
+ label: "Retrieve case state",
9287
+ bpmnElement: "bpmn:ServiceTask",
7958
9288
  placements: {},
7959
- extensionTag: "uipath:mapping",
9289
+ extensionTag: "uipath:activity",
7960
9290
  contextFields: [],
7961
9291
  inputPattern: "none",
7962
- outputSource: null,
7963
- outputType: null,
7964
- bindingPattern: "none",
7965
- requiresDiscovery: false,
7966
- isDynamic: false,
7967
- xmlTemplate: `<bpmn:Task id="{id}" name="{name}">
7968
- <bpmn:extensionElements>
7969
- <uipath:mapping version="v1">
7970
- <uipath:type value="BPMN.Variables" version="v1" />
7971
- </uipath:mapping>
7972
- </bpmn:extensionElements>
7973
- <bpmn:incoming>{incomingEdge}</bpmn:incoming>
7974
- <bpmn:outgoing>{outgoingEdge}</bpmn:outgoing>
7975
- </bpmn:Task>`,
7976
- inputNotes: "Variable mappings use uipath:mapping with direct input/output elements, not a jsonBody pattern",
7977
- bpmnElementNotes: "Also used on bpmn:StartEvent, bpmn:EndEvent, bpmn:ScriptTask, and bpmn:SubProcess for variable mappings. On bpmn:Task with no serviceType, defaults to BPMN.Variables.",
7978
- extensionTagNotes: "Uses uipath:mapping (not uipath:activity). BPMN.Variables mappings are supported on StartEvent, EndEvent, Task, ScriptTask, and SubProcess owners."
7979
- },
7980
- "BPMN.ScriptTask": {
7981
- extensionType: "BPMN.ScriptTask",
7982
- label: "Execute script",
7983
- bpmnElement: "bpmn:ScriptTask",
7984
- placements: {},
7985
- extensionTag: "uipath:mapping",
7986
- contextFields: [],
7987
- inputPattern: "scriptArgs",
7988
- inputName: "args",
7989
- inputTarget: "bodyField",
7990
- outputSource: null,
7991
- outputType: null,
9292
+ outputSource: "=caseState",
9293
+ outputType: "jsonSchema",
9294
+ outputName: "latestCaseState",
7992
9295
  bindingPattern: "none",
7993
9296
  requiresDiscovery: false,
7994
9297
  isDynamic: false,
7995
- xmlTemplate: `<bpmn:ScriptTask id="{id}" name="{name}">
9298
+ contractOutputMayBeCustom: true,
9299
+ xmlTemplate: `<bpmn:ServiceTask id="{id}" name="{name}">
7996
9300
  <bpmn:extensionElements>
7997
- <uipath:mapping version="v1">
7998
- <uipath:type value="BPMN.ScriptTask" version="v1" />
7999
- <uipath:input name="args" type="json" target="bodyField"><![CDATA[{}]]></uipath:input>
8000
- </uipath:mapping>
9301
+ <uipath:activity version="v1">
9302
+ <uipath:type value="Maestro.RetrieveCaseState" version="v2" />
9303
+ <uipath:output name="latestCaseState" type="jsonSchema" source="=caseState" var="{varId}" custom="true" />
9304
+ </uipath:activity>
8001
9305
  </bpmn:extensionElements>
8002
9306
  <bpmn:incoming>{incomingEdge}</bpmn:incoming>
8003
9307
  <bpmn:outgoing>{outgoingEdge}</bpmn:outgoing>
8004
- </bpmn:ScriptTask>`,
8005
- inputNotes: "Inputs are merged into a single json input named 'args' with target 'bodyField'. An inputSchema is created from the input variables.",
8006
- extensionTagNotes: "bpmn:ScriptTask is routed through createModdleExtensionVariableMapping (same as BPMN.Variables). Inputs are merged into a single 'args' JSON body with inputSchema."
9308
+ </bpmn:ServiceTask>`,
9309
+ inputNotes: "The design schema declares an empty body slot, but nothing fills it: generateRetrieveCaseStateNode passes outputs only, and the type is never offered in the canvas palette, so no properties panel can configure an input either. inputPattern none is deliberately stricter than the design schema - a uipath:input on this element did not come out of Studio Web.",
9310
+ outputNotes: `outputName is a fixed literal here, not a variable name. PO.Frontend's generateRetrieveCaseStateNode (BpmnCaseTaskNodeConverterUtils.ts) spreads the caller's variable info and overwrites source with =caseState, and both callers - the pre-scheduler and post-scheduler lifecycle utils - pass baseEventSubprocessLatestCaseStateVariableInfo(), which hardcodes name latestCaseState and var caseState. The diagram's own variable id lands in var, never in name. The post-scheduler caller (CaseManagementAdhocEventSubProcessPostSchedulerUtilsNewGlobals.ts, node EventSubProcessRetrieveCaseStateNodePostCaseManager) additionally spreads custom: true onto this output - a converter detail, not a panel narrowing - so contractOutputMayBeCustom tells the validator to still shape-check a custom="true" output here instead of dropping it as an unrelated custom addition. The pre-scheduler caller omits custom, so a file may show this output either way.`
8007
9311
  },
8008
- "ConversationalService.QueueServiceMessage": {
8009
- extensionType: "ConversationalService.QueueServiceMessage",
8010
- label: "Queue service message",
9312
+ "Maestro.NotificationService": {
9313
+ extensionType: "Maestro.NotificationService",
9314
+ label: "Notification service",
8011
9315
  bpmnElement: "bpmn:ServiceTask",
8012
- placements: {
8013
- activity: {
8014
- type: "bpmn:ServiceTask"
8015
- }
8016
- },
9316
+ placements: {},
8017
9317
  extensionTag: "uipath:activity",
8018
- contextFields: [
8019
- {
8020
- name: "_label",
8021
- type: "string",
8022
- required: false,
8023
- hidden: true,
8024
- isPrimaryKey: false,
8025
- binding: false,
8026
- defaultValue: null
8027
- }
8028
- ],
9318
+ contextFields: [],
8029
9319
  inputPattern: "mergedBody",
8030
9320
  inputName: "body",
8031
9321
  inputTarget: "body",
8032
- outputSource: "=response",
8033
- outputType: "jsonSchema",
8034
- outputName: "response",
8035
- additionalOutputs: [
8036
- {
8037
- name: "Error",
8038
- type: "jsonSchema",
8039
- source: "=Error",
8040
- required: false
8041
- }
8042
- ],
9322
+ outputSource: null,
9323
+ outputType: null,
8043
9324
  bindingPattern: "none",
8044
9325
  requiresDiscovery: false,
8045
9326
  isDynamic: false,
8046
9327
  xmlTemplate: `<bpmn:ServiceTask id="{id}" name="{name}">
8047
9328
  <bpmn:extensionElements>
8048
9329
  <uipath:activity version="v1">
8049
- <uipath:type value="ConversationalService.QueueServiceMessage" version="v1" />
8050
- <uipath:input name="body" type="json" target="body"><![CDATA[{"conversationId":"{conversationId}","userContent":"{userContent}","assistantContent":"{assistantContent}"}]]></uipath:input>
8051
- <uipath:output name="response" type="jsonSchema" source="=response" var="{varId}" />
8052
- <uipath:output name="Error" type="jsonSchema" source="=Error" var="{errorVarId}" />
9330
+ <uipath:type value="Maestro.NotificationService" version="v2" />
9331
+ <uipath:input name="body" type="json" target="body"><![CDATA[{"publisherName":"{publisherName}","topicName":"{topicName}","priority":"{priority}","messageParam":{messageParam},"recipients":{recipients}}]]></uipath:input>
8053
9332
  </uipath:activity>
8054
9333
  </bpmn:extensionElements>
8055
9334
  <bpmn:incoming>{incomingEdge}</bpmn:incoming>
8056
9335
  <bpmn:outgoing>{outgoingEdge}</bpmn:outgoing>
8057
9336
  </bpmn:ServiceTask>`,
8058
- inputNotes: "The custom Studio Web form seeds conversationId, userContent, and assistantContent as required fields. The generic FPS serializer merges them into the body JSON payload. It also writes a uipath:inputSchema built from those fields inside uipath:context; the template leaves it out because it is derived, not authored.",
8059
- contextFieldNotes: 'The design schema declares the three fields as context; the shipped custom form (ConversationalServiceFPSFormControl.tsx) declares them as inputs with target: "body", and the generic serializer merges them into the body.',
8060
- outputNotes: 'The response schema contains the queued message id, conversation and content fields, MIME types, pending state, and timestamps. Studio Web always writes the standard Error output. Validation also accepts files without it. Extra outputs that narrow the response carry custom="true".',
9337
+ inputNotes: `Generated case SLA notifications merge publisher, topic, priority, message parameters, and recipients into the body. The case SLA converter sends publisherName 'agenticorchestration', topicName 'CaseManagementAlert.Triggered', and priority 'High'; other callers pick their own. messageParam and recipients are JSON-typed tokens: fill with a JSON literal, or a quoted string for an =js:... expression. recipients is optional - drop its whole "recipients":{recipients} entry to omit it, not just its value. The generated helper does not bind the design-schema response.`,
8061
9338
  inputFields: [
8062
9339
  {
8063
- name: "conversationId",
8064
- displayName: "Conversation ID",
9340
+ name: "publisherName",
9341
+ displayName: "Publisher name",
8065
9342
  type: "string",
8066
9343
  required: true,
8067
9344
  hidden: false,
@@ -8071,8 +9348,8 @@ var bpmn_spec_default = {
8071
9348
  target: "body"
8072
9349
  },
8073
9350
  {
8074
- name: "userContent",
8075
- displayName: "User content",
9351
+ name: "topicName",
9352
+ displayName: "Topic name",
8076
9353
  type: "string",
8077
9354
  required: true,
8078
9355
  hidden: false,
@@ -8082,8 +9359,8 @@ var bpmn_spec_default = {
8082
9359
  target: "body"
8083
9360
  },
8084
9361
  {
8085
- name: "assistantContent",
8086
- displayName: "Assistant content",
9362
+ name: "priority",
9363
+ displayName: "Priority",
8087
9364
  type: "string",
8088
9365
  required: true,
8089
9366
  hidden: false,
@@ -8091,224 +9368,211 @@ var bpmn_spec_default = {
8091
9368
  binding: false,
8092
9369
  defaultValue: null,
8093
9370
  target: "body"
9371
+ },
9372
+ {
9373
+ name: "messageParam",
9374
+ displayName: "Message parameters",
9375
+ type: "json",
9376
+ required: true,
9377
+ hidden: false,
9378
+ isPrimaryKey: false,
9379
+ binding: false,
9380
+ defaultValue: null,
9381
+ target: "body"
9382
+ },
9383
+ {
9384
+ name: "recipients",
9385
+ displayName: "Recipients",
9386
+ type: "json",
9387
+ required: false,
9388
+ hidden: false,
9389
+ isPrimaryKey: false,
9390
+ binding: false,
9391
+ defaultValue: null,
9392
+ target: "body"
8094
9393
  }
8095
9394
  ]
8096
9395
  },
8097
- "Intsvc.TimerTrigger": {
8098
- extensionType: "Intsvc.TimerTrigger",
8099
- label: "Timer trigger",
8100
- bpmnElement: "bpmn:StartEvent",
9396
+ "Maestro.AcquireLock": {
9397
+ extensionType: "Maestro.AcquireLock",
9398
+ label: "Acquire lock",
9399
+ bpmnElement: "bpmn:ServiceTask",
8101
9400
  placements: {},
8102
9401
  extensionTag: "uipath:activity",
8103
9402
  contextFields: [],
8104
- inputPattern: "none",
8105
- outputSource: ".",
8106
- outputType: "custom",
8107
- outputName: "result",
8108
- useRelativeSource: false,
9403
+ inputPattern: "mergedBody",
9404
+ inputName: "body",
9405
+ inputTarget: "body",
9406
+ outputSource: null,
9407
+ outputType: null,
8109
9408
  bindingPattern: "none",
8110
9409
  requiresDiscovery: false,
8111
9410
  isDynamic: false,
8112
- xmlTemplate: `<bpmn:StartEvent id="{id}" name="{name}">
9411
+ xmlTemplate: `<bpmn:ServiceTask id="{id}" name="{name}">
8113
9412
  <bpmn:extensionElements>
8114
9413
  <uipath:activity version="v1">
8115
- <uipath:type value="Intsvc.TimerTrigger" version="v1" />
8116
- <uipath:output name="result" type="custom" source="." var="{varId}" />
9414
+ <uipath:type value="Maestro.AcquireLock" version="v2" />
9415
+ <uipath:input name="body" type="json" target="body"><![CDATA[{"lockKey":"{lockKey}","leaseSeconds":{leaseSeconds},"acquireTimeoutSeconds":{acquireTimeoutSeconds}}]]></uipath:input>
8117
9416
  </uipath:activity>
8118
9417
  </bpmn:extensionElements>
8119
- <bpmn:timerEventDefinition><bpmn:timeDuration xsi:type="bpmn:tFormalExpression">PT1H</bpmn:timeDuration></bpmn:timerEventDefinition>
8120
9418
  <bpmn:incoming>{incomingEdge}</bpmn:incoming>
8121
9419
  <bpmn:outgoing>{outgoingEdge}</bpmn:outgoing>
8122
- </bpmn:StartEvent>`,
8123
- inputNotes: "No jsonBody, no input fields, no isSplitInputs in design schema",
8124
- bpmnElementNotes: "Used via timer event definition on start events; not directly in FPS_TO_NODE_MAPPING",
8125
- extensionTagNotes: "NOT in isEvents array, uses uipath:activity. However, isIntsvcTriggerDesignSchemaType returns true.",
8126
- inputFields: []
8127
- },
8128
- "Maestro.ReceiveMessageEvent": {
8129
- extensionType: "Maestro.ReceiveMessageEvent",
8130
- label: "Receive internal message",
8131
- bpmnElement: "bpmn:IntermediateCatchEvent",
8132
- placements: {
8133
- startEvent: {
8134
- type: "bpmn:StartEvent",
8135
- eventDefinition: {
8136
- type: "bpmn:MessageEventDefinition"
8137
- }
8138
- },
8139
- intermediateEvent: {
8140
- type: "bpmn:IntermediateCatchEvent",
8141
- eventDefinition: {
8142
- type: "bpmn:MessageEventDefinition"
8143
- }
8144
- },
8145
- boundaryEvent: {
8146
- type: "bpmn:BoundaryEvent",
8147
- eventDefinition: {
8148
- type: "bpmn:MessageEventDefinition"
8149
- }
8150
- }
8151
- },
8152
- extensionTag: "uipath:event",
8153
- contextFields: [
9420
+ </bpmn:ServiceTask>`,
9421
+ inputNotes: "Generated SLA flows merge the lock key and timeout settings into the body. leaseSeconds and acquireTimeoutSeconds are tokens carrying their declared defaults (600 and 0); a caller can fill either with a different number. The generated helper does not bind the design-schema response.",
9422
+ inputFields: [
8154
9423
  {
8155
- name: "name",
8156
- displayName: "Message name",
9424
+ name: "lockKey",
9425
+ displayName: "Lock key",
8157
9426
  type: "string",
8158
9427
  required: true,
8159
9428
  hidden: false,
8160
9429
  isPrimaryKey: false,
8161
9430
  binding: false,
8162
- defaultValue: null
9431
+ defaultValue: null,
9432
+ target: "body"
8163
9433
  },
8164
9434
  {
8165
- name: "_label",
8166
- type: "string",
8167
- required: false,
8168
- hidden: true,
9435
+ name: "leaseSeconds",
9436
+ displayName: "Lease seconds",
9437
+ type: "number",
9438
+ required: true,
9439
+ hidden: false,
8169
9440
  isPrimaryKey: false,
8170
9441
  binding: false,
8171
- defaultValue: null
8172
- }
8173
- ],
8174
- inputPattern: "separateInputs",
8175
- inputName: "ItemData",
8176
- inputTarget: "body",
8177
- outputSource: null,
8178
- outputType: "Maestro.ReceiveMessageEvent",
8179
- outputName: "response",
8180
- useRelativeSource: true,
8181
- bindingPattern: "none",
8182
- requiresDiscovery: false,
8183
- isDynamic: false,
8184
- xmlTemplate: `<bpmn:IntermediateCatchEvent id="{id}" name="{name}">
8185
- <bpmn:extensionElements>
8186
- <uipath:event version="v1">
8187
- <uipath:type value="Maestro.ReceiveMessageEvent" version="v1" />
8188
- <uipath:context>
8189
- <uipath:input name="name" type="string" value="{name}" />
8190
- <uipath:input name="_label" type="string" value="{_label}" />
8191
- </uipath:context>
8192
- <uipath:input name="ItemData" type="json" target="body"><![CDATA[{}]]></uipath:input>
8193
- <uipath:output name="response" type="Maestro.ReceiveMessageEvent" var="{varId}" />
8194
- </uipath:event>
8195
- </bpmn:extensionElements>
8196
- <bpmn:messageEventDefinition />
8197
- <bpmn:incoming>{incomingEdge}</bpmn:incoming>
8198
- <bpmn:outgoing>{outgoingEdge}</bpmn:outgoing>
8199
- </bpmn:IntermediateCatchEvent>`,
8200
- inputNotes: "isSplitInputs=true in design schema but NOT in isSplitInputsEvents code array, so inputs are NOT merged into ItemData for this type. They remain separate.",
8201
- extensionTagNotes: "In isEvents array, uses uipath:event",
8202
- inputFields: [
9442
+ defaultValue: 600,
9443
+ target: "body"
9444
+ },
8203
9445
  {
8204
- name: "Reference",
8205
- displayName: "Reference",
8206
- type: "string",
9446
+ name: "acquireTimeoutSeconds",
9447
+ displayName: "Acquire timeout seconds",
9448
+ type: "number",
8207
9449
  required: true,
8208
9450
  hidden: false,
8209
9451
  isPrimaryKey: false,
8210
9452
  binding: false,
8211
- defaultValue: null,
8212
- target: "bodyField",
8213
- description: "Correlation reference to match this receive event to its sender"
9453
+ defaultValue: 0,
9454
+ target: "body"
8214
9455
  }
8215
9456
  ]
8216
9457
  },
8217
- "Maestro.SendMessageEvent": {
8218
- extensionType: "Maestro.SendMessageEvent",
8219
- label: "Send internal message",
8220
- bpmnElement: "bpmn:IntermediateThrowEvent",
8221
- placements: {
8222
- intermediateEvent: {
8223
- type: "bpmn:IntermediateThrowEvent",
8224
- eventDefinition: {
8225
- type: "bpmn:MessageEventDefinition"
8226
- }
8227
- },
8228
- endEvent: {
8229
- type: "bpmn:EndEvent",
8230
- eventDefinition: {
8231
- type: "bpmn:MessageEventDefinition"
8232
- }
8233
- }
8234
- },
8235
- extensionTag: "uipath:event",
8236
- contextFields: [
9458
+ "Maestro.ReleaseLock": {
9459
+ extensionType: "Maestro.ReleaseLock",
9460
+ label: "Release lock",
9461
+ bpmnElement: "bpmn:ServiceTask",
9462
+ placements: {},
9463
+ extensionTag: "uipath:activity",
9464
+ contextFields: [],
9465
+ inputPattern: "mergedBody",
9466
+ inputName: "body",
9467
+ inputTarget: "body",
9468
+ outputSource: null,
9469
+ outputType: null,
9470
+ bindingPattern: "none",
9471
+ requiresDiscovery: false,
9472
+ isDynamic: false,
9473
+ xmlTemplate: `<bpmn:ServiceTask id="{id}" name="{name}">
9474
+ <bpmn:extensionElements>
9475
+ <uipath:activity version="v1">
9476
+ <uipath:type value="Maestro.ReleaseLock" version="v2" />
9477
+ <uipath:input name="body" type="json" target="body"><![CDATA[{"lockKey":"{lockKey}"}]]></uipath:input>
9478
+ </uipath:activity>
9479
+ </bpmn:extensionElements>
9480
+ <bpmn:incoming>{incomingEdge}</bpmn:incoming>
9481
+ <bpmn:outgoing>{outgoingEdge}</bpmn:outgoing>
9482
+ </bpmn:ServiceTask>`,
9483
+ inputNotes: "Generated SLA flows merge the lock key into the body. The generated helper does not bind the design-schema response.",
9484
+ inputFields: [
8237
9485
  {
8238
- name: "name",
8239
- displayName: "Message name",
9486
+ name: "lockKey",
9487
+ displayName: "Lock key",
8240
9488
  type: "string",
8241
9489
  required: true,
8242
9490
  hidden: false,
8243
9491
  isPrimaryKey: false,
8244
9492
  binding: false,
8245
- defaultValue: null
8246
- },
9493
+ defaultValue: null,
9494
+ target: "body"
9495
+ }
9496
+ ]
9497
+ },
9498
+ "Maestro.CaseCyclePrepare": {
9499
+ extensionType: "Maestro.CaseCyclePrepare",
9500
+ label: "Prepare case decision cycle",
9501
+ bpmnElement: "bpmn:ServiceTask",
9502
+ placements: {},
9503
+ extensionTag: "uipath:activity",
9504
+ contextFields: [],
9505
+ inputPattern: "mergedBody",
9506
+ bindingPattern: "none",
9507
+ requiresDiscovery: false,
9508
+ isDynamic: false,
9509
+ generatedOutputs: true,
9510
+ xmlTemplate: `<bpmn:ServiceTask id="{id}" name="{name}">
9511
+ <bpmn:extensionElements>
9512
+ <uipath:activity version="v1">
9513
+ <uipath:type value="Maestro.CaseCyclePrepare" version="v2" />
9514
+ <uipath:input name="body" type="json" target="body"><![CDATA[{"CaseGlobalsLastPrimaryStageExited":"{CaseGlobalsLastPrimaryStageExited}"}]]></uipath:input>
9515
+ <uipath:output name="latestCaseState" type="jsonSchema" source="=caseState" var="{varId}" />
9516
+ </uipath:activity>
9517
+ </bpmn:extensionElements>
9518
+ <bpmn:incoming>{incomingEdge}</bpmn:incoming>
9519
+ <bpmn:outgoing>{outgoingEdge}</bpmn:outgoing>
9520
+ </bpmn:ServiceTask>`,
9521
+ inputFields: [
8247
9522
  {
8248
- name: "_label",
9523
+ name: "CaseGlobalsLastPrimaryStageExited",
8249
9524
  type: "string",
8250
9525
  required: false,
8251
- hidden: true,
8252
- isPrimaryKey: false,
8253
- binding: false,
8254
- defaultValue: null
8255
- },
8256
- {
8257
- name: "inputSchema",
8258
- displayName: "Input schema",
8259
- type: "jsonSchema",
8260
- required: true,
8261
- hidden: true,
9526
+ hidden: false,
8262
9527
  isPrimaryKey: false,
8263
9528
  binding: false,
8264
- defaultValue: null
9529
+ defaultValue: "=instanceglobals.CaseGlobalsLastPrimaryStageExited",
9530
+ target: "body",
9531
+ displayName: "Last primary stage exited global"
8265
9532
  }
8266
9533
  ],
8267
- inputPattern: "splitInputsItemData",
8268
- inputName: "ItemData",
8269
- inputTarget: "body",
8270
- outputSource: null,
8271
- outputType: "Maestro.SendMessageEvent",
8272
- outputName: "response",
8273
- useRelativeSource: true,
9534
+ inputNotes: "Generated by the case converter behind the canvas-caseBpmnConsolidatedCycle flag. The input reads the last-primary-stage-exited instance global, and its value is the read expression =instanceglobals.CaseGlobalsLastPrimaryStageExited (see defaultValue) - not the bare key, which is what the similarly named CaseCycleCommit input takes.",
9535
+ outputNotes: "The converter builds a diagram-specific output list (event vars off the message response, latestCaseState from =caseState, the globals copies, eventMetadata, overlays), so no specific output name, type or source can be pinned here. It always emits at least the latestCaseState, globals-copy and eventMetadata entries and every entry carries a nonblank name and binds a variable, so generatedOutputs tells the validator to require at least one uipath:output and to check each one for a nonblank name and a var attribute, and nothing else about it.",
9536
+ inputName: "body",
9537
+ inputTarget: "body"
9538
+ },
9539
+ "Maestro.CaseCycleCommit": {
9540
+ extensionType: "Maestro.CaseCycleCommit",
9541
+ label: "Commit case decision cycle",
9542
+ bpmnElement: "bpmn:ServiceTask",
9543
+ placements: {},
9544
+ extensionTag: "uipath:activity",
9545
+ contextFields: [],
9546
+ inputPattern: "mergedBody",
8274
9547
  bindingPattern: "none",
8275
9548
  requiresDiscovery: false,
8276
9549
  isDynamic: false,
8277
- xmlTemplate: `<bpmn:IntermediateThrowEvent id="{id}" name="{name}">
9550
+ generatedOutputs: true,
9551
+ xmlTemplate: `<bpmn:ServiceTask id="{id}" name="{name}">
8278
9552
  <bpmn:extensionElements>
8279
- <uipath:event version="v1">
8280
- <uipath:type value="Maestro.SendMessageEvent" version="v1" />
8281
- <uipath:context>
8282
- <uipath:input name="name" type="string" value="{name}" />
8283
- <uipath:input name="_label" type="string" value="{_label}" />
8284
- <uipath:input name="inputSchema" type="jsonSchema" value="{inputSchema}" />
8285
- </uipath:context>
8286
- <uipath:input name="ItemData" type="json" target="body"><![CDATA[{"Reference":"{Reference}","SpecificContent":{},"TimeToLive":""}]]></uipath:input>
8287
- <uipath:output name="response" type="Maestro.SendMessageEvent" var="{varId}" />
8288
- </uipath:event>
9553
+ <uipath:activity version="v1">
9554
+ <uipath:type value="Maestro.CaseCycleCommit" version="v2" />
9555
+ <uipath:input name="body" type="json" target="body"><![CDATA[{"decisions":{decisions},"sequentialTasksToResetByStageName":{sequentialTasksToResetByStageName},"lastPrimaryStageExitedGlobalKey":"{lastPrimaryStageExitedGlobalKey}"}]]></uipath:input>
9556
+ <uipath:output name="latestCaseState" type="jsonSchema" source="=caseState" var="{varId}" />
9557
+ </uipath:activity>
8289
9558
  </bpmn:extensionElements>
8290
- <bpmn:messageEventDefinition />
8291
9559
  <bpmn:incoming>{incomingEdge}</bpmn:incoming>
8292
9560
  <bpmn:outgoing>{outgoingEdge}</bpmn:outgoing>
8293
- </bpmn:IntermediateThrowEvent>`,
8294
- inputNotes: "In isSplitInputsEvents array. Inputs are merged into a single ItemData JSON body at serialization time. Uses SEND_MESSAGE_EVENT_INPUT_SCHEMA as the inputSchema.",
8295
- extensionTagNotes: "In isEvents array, uses uipath:event",
9561
+ </bpmn:ServiceTask>`,
8296
9562
  inputFields: [
8297
9563
  {
8298
- name: "Reference",
8299
- displayName: "Reference",
8300
- type: "string",
8301
- required: true,
9564
+ name: "decisions",
9565
+ type: "json",
9566
+ required: false,
8302
9567
  hidden: false,
8303
9568
  isPrimaryKey: false,
8304
9569
  binding: false,
8305
9570
  defaultValue: null,
8306
9571
  target: "body",
8307
- description: "Correlation reference to match this send event to its receiver"
9572
+ displayName: "Case manager decisions"
8308
9573
  },
8309
9574
  {
8310
- name: "SpecificContent",
8311
- displayName: "Item information",
9575
+ name: "sequentialTasksToResetByStageName",
8312
9576
  type: "json",
8313
9577
  required: false,
8314
9578
  hidden: false,
@@ -8316,21 +9580,24 @@ var bpmn_spec_default = {
8316
9580
  binding: false,
8317
9581
  defaultValue: null,
8318
9582
  target: "body",
8319
- description: "JSON payload with the message content"
9583
+ displayName: "Sequential task names to reset, keyed by stage name"
8320
9584
  },
8321
9585
  {
8322
- name: "TimeToLive",
8323
- displayName: "Time to live",
8324
- type: "duration",
9586
+ name: "lastPrimaryStageExitedGlobalKey",
9587
+ type: "string",
8325
9588
  required: false,
8326
9589
  hidden: false,
8327
9590
  isPrimaryKey: false,
8328
9591
  binding: false,
8329
- defaultValue: null,
9592
+ defaultValue: "CaseGlobalsLastPrimaryStageExited",
8330
9593
  target: "body",
8331
- description: "Duration after which the message expires if not consumed"
9594
+ displayName: "Instance-globals key for the last primary stage exited"
8332
9595
  }
8333
- ]
9596
+ ],
9597
+ inputNotes: 'Generated by the case converter. decisions is emitted only when a case-manager decisions variable exists; omitting it makes the engine derive an empty plan - decisions is a JSON-typed token, so omit it by dropping its whole "decisions":{decisions} entry, not by leaving the token empty, and fill it with a JSON literal or a quoted string for an =js:... expression. lastPrimaryStageExitedGlobalKey takes the bare globals key, not an expression - the similarly named CaseCyclePrepare input takes the =instanceglobals read expression instead.',
9598
+ outputNotes: "The converter's epilogue re-reads case state after the commit: it always emits latestCaseState from =caseState, plus one cleared-selected-stage entry per waiting stage. The names and the count are diagram-specific, so no specific output name, type or source can be pinned here, but every entry still carries a nonblank name. generatedOutputs is what tells the validator to require at least one uipath:output and to check each one for a nonblank name and a var attribute, and nothing else about it.",
9599
+ inputName: "body",
9600
+ inputTarget: "body"
8334
9601
  },
8335
9602
  "Maestro.CaseRulesEvaluator": {
8336
9603
  extensionType: "Maestro.CaseRulesEvaluator",
@@ -8895,7 +10162,7 @@ var bpmn_spec_default = {
8895
10162
  extensionTagResolution: {
8896
10163
  description: "How the frontend determines which XML extension tag to use",
8897
10164
  rules: [
8898
- "If serviceType is in isEvents array [Intsvc.WaitForEvent, Intsvc.EventTrigger, Maestro.ReceiveMessageEvent, Maestro.SendMessageEvent] => uipath:event",
10165
+ "If serviceType is in isEvents array [Intsvc.WaitForEvent, Intsvc.EventTrigger, Maestro.ReceiveMessageEvent, Maestro.SendMessageEvent, Queue.WaitForEvent] => uipath:event",
8899
10166
  "If serviceType is BPMN.Variables on bpmn:StartEvent, bpmn:EndEvent, or bpmn:Task => uipath:mapping",
8900
10167
  "If nodeType is bpmn:ScriptTask or bpmn:SubProcess => uipath:mapping",
8901
10168
  "Otherwise => uipath:activity"
@@ -8905,7 +10172,8 @@ var bpmn_spec_default = {
8905
10172
  "Intsvc.WaitForEvent",
8906
10173
  "Intsvc.EventTrigger",
8907
10174
  "Maestro.ReceiveMessageEvent",
8908
- "Maestro.SendMessageEvent"
10175
+ "Maestro.SendMessageEvent",
10176
+ "Queue.WaitForEvent"
8909
10177
  ],
8910
10178
  isExecutionArray: [
8911
10179
  "Intsvc.ActivityExecution",
@@ -8925,6 +10193,23 @@ var bpmn_spec_default = {
8925
10193
  // ../maestro-sdk/src/manifest/bpmn-spec.ts
8926
10194
  var BPMN_SPEC = bpmn_spec_default;
8927
10195
  var MERGED_INPUT_PATTERNS = new Set(["mergedBody", "splitInputsItemData", "scriptArgs"]);
10196
+ var STRUCTURAL_TEMPLATE_TOKENS = Object.freeze([
10197
+ "id",
10198
+ "name",
10199
+ "incomingEdge",
10200
+ "outgoingEdge",
10201
+ "varId",
10202
+ "errorVarId",
10203
+ "outputVarId",
10204
+ "hasItemVarId",
10205
+ "countVarId",
10206
+ "bindingId",
10207
+ "nameBindingId",
10208
+ "folderPathBindingId",
10209
+ "connectionBindingId",
10210
+ "folderBindingId",
10211
+ "fileRef"
10212
+ ]);
8928
10213
  var STATIC_UIPATH_EXTENSION_TAG_NAMES = [
8929
10214
  "binding",
8930
10215
  "bindings",
@@ -8972,6 +10257,12 @@ var CALL_ACTIVITY_TYPES = Object.entries(BPMN_SPEC.extensionTypes).filter(([, co
8972
10257
  var CALL_ACTIVITY_PAYLOAD_TAGS = new Set(Object.values(BPMN_SPEC.extensionTypes).filter((contract) => contract.bpmnElement === "bpmn:CallActivity").map((contract) => contract.extensionTag).filter((tag) => typeof tag === "string"));
8973
10258
  var FREE_TEXT_ELEMENTS = new Set(["documentation", "text"]);
8974
10259
  var VARIABLE_DECLARATION_NAMES = new Set(["input", "inputoutput", "output"]);
10260
+ var COLLAPSED_MULTI_INSTANCE_OUTPUT_CONTRACTS = new Set([
10261
+ "Orchestrator.GetTransactionItem",
10262
+ "Orchestrator.GetQueueItems",
10263
+ "Orchestrator.DeleteQueueItems",
10264
+ "Queue.WaitForEvent"
10265
+ ]);
8975
10266
  // ../maestro-sdk/src/registry/storage.ts
8976
10267
  var MAESTRO_REGISTRY_DIR = "maestro";
8977
10268
  var REGISTRY_FILE = "registry.json";
@@ -8998,6 +10289,14 @@ async function loadRegistry() {
8998
10289
  }
8999
10290
  return parsed;
9000
10291
  }
10292
+ // src/services/connector-request-buckets.ts
10293
+ var REQUEST_BUCKETS = [
10294
+ "bodyParameters",
10295
+ "queryParameters",
10296
+ "pathParameters",
10297
+ "eventParameters"
10298
+ ];
10299
+
9001
10300
  // src/services/inline-activity-service.ts
9002
10301
  import { randomUUID } from "node:crypto";
9003
10302
  var INLINE_ACTIVITY_TYPE_PREFIX = "uipath.connector.custom.";
@@ -9296,6 +10595,745 @@ function definitionConfigurationOf(definition) {
9296
10595
  return;
9297
10596
  }
9298
10597
 
9299
- export { parse3 as parse, loadRegistry, INLINE_ACTIVITY_TYPE_PREFIX, INLINE_ACTIVITY_SOURCE, InlineActivityError, collectScriptRefs, prepareInlineActivity, getInlineActivityConfiguration, definitionConfigurationOf };
10598
+ // src/services/packaging-utils.ts
10599
+ function fileNodesToPackagingNodes(nodes) {
10600
+ return nodes.map((node) => ({
10601
+ id: node.id,
10602
+ type: node.type,
10603
+ typeVersion: node.typeVersion ?? "1.0",
10604
+ display: node.display,
10605
+ inputs: node.inputs,
10606
+ outputs: node.outputs,
10607
+ ...node.model ? { model: node.model } : {}
10608
+ }));
10609
+ }
10610
+ function flowToPackagingNodes(workflow) {
10611
+ return fileNodesToPackagingNodes(bindingNodesOf(workflow));
10612
+ }
10613
+ function isRecord(value) {
10614
+ return typeof value === "object" && value !== null && !Array.isArray(value);
10615
+ }
10616
+ function toResourceList(value) {
10617
+ if (!Array.isArray(value))
10618
+ return;
10619
+ const resources = value.filter(isRecord);
10620
+ return resources.length === value.length ? resources : undefined;
10621
+ }
10622
+ function normalizePackagingBindingsJson(value) {
10623
+ if (!isRecord(value))
10624
+ return;
10625
+ const resources = toResourceList(value.resources);
10626
+ if (!resources)
10627
+ return;
10628
+ return {
10629
+ ...value,
10630
+ version: typeof value.version === "string" ? value.version : "2.0",
10631
+ resources
10632
+ };
10633
+ }
10634
+ function emptyPackagingBindingsJson() {
10635
+ return { version: "2.0", resources: [] };
10636
+ }
10637
+ function mergePackagingBindingsJson(bindingsJsons) {
10638
+ const first = bindingsJsons.find((bindingsJson) => bindingsJson !== undefined);
10639
+ return {
10640
+ ...first ?? emptyPackagingBindingsJson(),
10641
+ resources: mergeBindingResources(bindingsJsons.flatMap((bindingsJson) => bindingsJson?.resources ?? []))
10642
+ };
10643
+ }
10644
+ var inlineAgentPackagerLogger = {
10645
+ debug: (message) => logger.debug(message),
10646
+ info: (message) => logger.info(message),
10647
+ warn: (message) => logger.warn(message),
10648
+ error: (message) => logger.error(message),
10649
+ progress: (message) => logger.info(message),
10650
+ log: (message, level) => {
10651
+ if (level === "Error" /* Error */)
10652
+ logger.error(message);
10653
+ else if (level === "Warning" /* Warn */)
10654
+ logger.warn(message);
10655
+ else if (level === "Debug" /* Debug */)
10656
+ logger.debug(message);
10657
+ else
10658
+ logger.info(message);
10659
+ },
10660
+ logMessage: (message) => inlineAgentPackagerLogger.log(message.message, message.logLevel)
10661
+ };
10662
+ async function createInlineAgentContract(fs, agentDir) {
10663
+ const outputPath = fs.path.join(fs.env.tmpdir(), `.inline-agent-contract-${crypto.randomUUID()}`);
10664
+ await fs.mkdir(outputPath);
10665
+ try {
10666
+ const built = await buildInlineAgentContract({
10667
+ fileSystem: fs,
10668
+ logger: inlineAgentPackagerLogger,
10669
+ projectPath: agentDir,
10670
+ outputPath
10671
+ });
10672
+ const bindingsJson = normalizePackagingBindingsJson(built.bindingsJson);
10673
+ if (!bindingsJson) {
10674
+ throw new Error("Agent packager returned an invalid binding contract");
10675
+ }
10676
+ return { agentJson: built.agentJson, bindingsJson };
10677
+ } finally {
10678
+ const [cleanupError] = await catchError(fs.rm(outputPath, { recursive: true }));
10679
+ if (cleanupError) {
10680
+ logger.debug(`Could not remove inline-agent contract directory ${outputPath}: ${cleanupError.message}`);
10681
+ }
10682
+ }
10683
+ }
10684
+ async function inlineAgentExists(fs, projectDir, source) {
10685
+ const agentJsonPath = fs.path.join(projectDir, source, "agent.json");
10686
+ return fs.exists(agentJsonPath);
10687
+ }
10688
+ async function packageInlineAgents(fs, projectDir, nodes) {
10689
+ const result = [];
10690
+ for (const node of nodes) {
10691
+ if (!isInlineAgentNodeType(node.type))
10692
+ continue;
10693
+ const source = readInlineAgentSource(node);
10694
+ if (!source)
10695
+ continue;
10696
+ if (/[/\\.]/.test(source))
10697
+ continue;
10698
+ if (!await inlineAgentExists(fs, projectDir, source))
10699
+ continue;
10700
+ const contract = await createInlineAgentContract(fs, fs.path.join(projectDir, source));
10701
+ const inputSchema = contract.agentJson.inputSchema ?? {
10702
+ type: "object",
10703
+ properties: {}
10704
+ };
10705
+ const outputSchema = contract.agentJson.outputSchema ?? {
10706
+ type: "object",
10707
+ properties: {}
10708
+ };
10709
+ result.push({
10710
+ source,
10711
+ entryPoint: {
10712
+ filePath: `content/${source}/agent.json`,
10713
+ uniqueId: contract.agentJson.projectId ?? source,
10714
+ type: EntryPointType.Agent,
10715
+ input: inputSchema,
10716
+ output: outputSchema,
10717
+ displayName: contract.agentJson.name ?? "Agent"
10718
+ },
10719
+ agentJson: contract.agentJson,
10720
+ bindingsJson: contract.bindingsJson
10721
+ });
10722
+ logger.info(`Packaged inline agent "${source}" for entry-points`);
10723
+ }
10724
+ return result;
10725
+ }
10726
+ async function stageInlineAgentPackageFiles(fs, sourceProjectPath, stagingProjectDir, inlineAgents, formatLogMessage) {
10727
+ for (const agent of inlineAgents) {
10728
+ const srcDir = fs.path.join(sourceProjectPath, agent.source);
10729
+ const destDir = fs.path.join(stagingProjectDir, agent.source);
10730
+ if (fs.path.resolve(srcDir) !== fs.path.resolve(destDir) && await fs.exists(srcDir)) {
10731
+ await fs.copyDirectory(srcDir, destDir);
10732
+ }
10733
+ const agentBuilderDir = fs.path.join(destDir, ".agent-builder");
10734
+ await ensureDirectory(fs, agentBuilderDir);
10735
+ await fs.writeFile(fs.path.join(agentBuilderDir, "agent.json"), JSON.stringify({
10736
+ ...agent.agentJson,
10737
+ resources: agent.agentJson.resources ?? [],
10738
+ features: agent.agentJson.features ?? []
10739
+ }, null, 2));
10740
+ await fs.writeFile(fs.path.join(agentBuilderDir, "bindings.json"), `${JSON.stringify(agent.bindingsJson ?? emptyPackagingBindingsJson(), null, 2)}
10741
+ `);
10742
+ logger.info(formatLogMessage(agent.source));
10743
+ }
10744
+ }
10745
+ function buildInlineAgentDescriptors(nodes) {
10746
+ const out = [];
10747
+ for (const node of nodes) {
10748
+ if (!isInlineAgentNodeType(node.type))
10749
+ continue;
10750
+ const source = readInlineAgentSource(node);
10751
+ if (!source)
10752
+ continue;
10753
+ const label = node.display?.label ?? "Agent";
10754
+ out.push({
10755
+ name: label,
10756
+ agentProjectId: source,
10757
+ isConversational: isConversationalOrVoiceAgentNodeType(node.type),
10758
+ entryPointPath: `${source}/agent.json`
10759
+ });
10760
+ }
10761
+ return out;
10762
+ }
10763
+ async function writePackagingArtifacts(fs, projectDir, projectId, packagingNodes, bindings, variables, bpmnFileName, startEventId, flowFileName, definitions = [], options = {}) {
10764
+ const { entryPoints } = await writePackagingArtifactsDetailed(fs, projectDir, projectId, packagingNodes, bindings, variables, bpmnFileName, startEventId, flowFileName, definitions, options);
10765
+ return entryPoints;
10766
+ }
10767
+ async function writePackagingArtifactsDetailed(fs, projectDir, projectId, packagingNodes, bindings, variables, bpmnFileName, startEventId, flowFileName, definitions = [], options = {}) {
10768
+ const startNodes = options.entryPointNodes ?? packagingNodes;
10769
+ const flowEntryPoints = getEntryPoints(bpmnFileName, startNodes, variables, definitions, ProjectType.Flow);
10770
+ const entryPoints = [
10771
+ ...flowEntryPoints,
10772
+ ...options.additionalEntryPoints ?? []
10773
+ ];
10774
+ await fs.writeFile(fs.path.join(projectDir, "entry-points.json"), `${JSON.stringify(generateEntryPointsJson(entryPoints), null, 2)}
10775
+ `);
10776
+ const bindingResources = getBindingResources(packagingNodes, bindings, definitions);
10777
+ const bindingsJson = normalizePackagingBindingsJson(generateBindingsJson(bindingResources)) ?? emptyPackagingBindingsJson();
10778
+ const stagedBindingsJson = mergePackagingBindingsJson([
10779
+ bindingsJson,
10780
+ ...options.additionalBindingsJsons ?? []
10781
+ ]);
10782
+ await fs.writeFile(fs.path.join(projectDir, "bindings_v2.json"), `${JSON.stringify(stagedBindingsJson, null, 2)}
10783
+ `);
10784
+ const mainEntryPoint = `/${bpmnFileName}#${defaultEntryPointNodeId(startNodes) ?? startEventId}`;
10785
+ const operateJson = withRuntimeProfile(generateOperateJson(projectId, mainEntryPoint, operateRuntimeOptions(startNodes)), options.profile ?? "Standard" /* Standard */);
10786
+ await fs.writeFile(fs.path.join(projectDir, "operate.json"), `${JSON.stringify(operateJson, null, 2)}
10787
+ `);
10788
+ const packageDescriptorJson = options.packageDescriptorJson ?? {
10789
+ $schema: "https://cloud.uipath.com/draft/2024-12/package-descriptor",
10790
+ files: {
10791
+ "operate.json": "operate.json",
10792
+ "entry-points.json": "entry-points.json",
10793
+ "bindings.json": "bindings_v2.json",
10794
+ [bpmnFileName]: bpmnFileName,
10795
+ ...flowFileName ? { [flowFileName]: flowFileName } : {}
10796
+ }
10797
+ };
10798
+ await fs.writeFile(fs.path.join(projectDir, "package-descriptor.json"), `${JSON.stringify(packageDescriptorJson, null, 2)}
10799
+ `);
10800
+ return { entryPoints, bindingsJson: stagedBindingsJson };
10801
+ }
10802
+ function backfillNodeModelsFromDefinitions(nodes, definitions) {
10803
+ if (definitions.length === 0)
10804
+ return nodes;
10805
+ const definitionByType = new Map;
10806
+ for (const def of definitions) {
10807
+ if (def?.nodeType)
10808
+ definitionByType.set(def.nodeType, def);
10809
+ }
10810
+ return nodes.map((n) => {
10811
+ if (n.model)
10812
+ return n;
10813
+ const def = definitionByType.get(n.type);
10814
+ if (!def?.model)
10815
+ return n;
10816
+ return { ...n, model: def.model };
10817
+ });
10818
+ }
10819
+ async function regenerateBindingsFile(fs, flowFilePath) {
10820
+ const absolutePath = fs.path.resolve(flowFilePath);
10821
+ const projectDir = fs.path.dirname(absolutePath);
10822
+ const [readErr, read] = await catchError(readFlowWorkflow(absolutePath, fs));
10823
+ if (readErr) {
10824
+ throw new Error(`Failed to read .flow file at ${absolutePath}: ${readErr.message}`);
10825
+ }
10826
+ const flowData = read.workflow;
10827
+ const packagingNodes = backfillNodeModelsFromDefinitions(flowToPackagingNodes(flowData), flowData.definitions ?? []);
10828
+ const bindingResources = getBindingResources(packagingNodes, flowData.bindings ?? [], flowData.definitions ?? []);
10829
+ const flowBindingsJson = normalizePackagingBindingsJson(generateBindingsJson(bindingResources)) ?? emptyPackagingBindingsJson();
10830
+ const [agentErr, inlineAgents] = await catchError(packageInlineAgents(fs, projectDir, flowData.nodes ?? []));
10831
+ if (agentErr) {
10832
+ logger.warn(`Wrote bindings_v2.json without inline agent tool bindings: ${agentErr.message}`);
10833
+ }
10834
+ await fs.writeFile(fs.path.join(projectDir, "bindings_v2.json"), `${JSON.stringify(mergePackagingBindingsJson([
10835
+ flowBindingsJson,
10836
+ ...(inlineAgents ?? []).map((agent) => agent.bindingsJson)
10837
+ ]), null, 2)}
10838
+ `);
10839
+ }
10840
+ // src/services/node-service.ts
10841
+ class NodeTypeNotFoundError extends Error {
10842
+ code = "NodeTypeNotFound";
10843
+ instructions;
10844
+ constructor(message, instructions) {
10845
+ super(message);
10846
+ this.name = "NodeTypeNotFoundError";
10847
+ this.instructions = instructions;
10848
+ }
10849
+ }
10850
+
10851
+ class NodeTypeNotEnabledError extends Error {
10852
+ code = "NodeTypeNotEnabled";
10853
+ instructions;
10854
+ constructor(message, instructions) {
10855
+ super(message);
10856
+ this.name = "NodeTypeNotEnabledError";
10857
+ this.instructions = instructions;
10858
+ }
10859
+ }
10860
+
10861
+ class SourceRequiredError extends Error {
10862
+ code = "SourceRequired";
10863
+ instructions;
10864
+ constructor(message, instructions) {
10865
+ super(message);
10866
+ this.name = "SourceRequiredError";
10867
+ this.instructions = instructions;
10868
+ }
10869
+ }
10870
+ var listNodesInFlow = async (filePath) => {
10871
+ const { workflow } = await readFlowWorkflow(filePath);
10872
+ const nodes = workflow.nodes.map((n) => ({
10873
+ id: n.id,
10874
+ type: n.type,
10875
+ label: n.display.label ?? "",
10876
+ position: n.ui.position
10877
+ }));
10878
+ return { nodes, count: nodes.length };
10879
+ };
10880
+ var PROCESS_NODE_PREFIXES = [
10881
+ "uipath.core.rpa-workflow.",
10882
+ "uipath.agent.resource.tool.process.",
10883
+ "uipath.core.agent.",
10884
+ "uipath.core.api-workflow."
10885
+ ];
10886
+ function isProcessNode(manifest) {
10887
+ return PROCESS_NODE_PREFIXES.some((prefix) => manifest.nodeType?.startsWith(prefix));
10888
+ }
10889
+ function isEntityNode(manifest) {
10890
+ return isEntityNodeType(manifest.nodeType);
10891
+ }
10892
+ function createEntityBindings(node) {
10893
+ const entityConfig = node.inputs?.entityConfig;
10894
+ const entityName = entityConfig?.entityName;
10895
+ if (typeof entityName !== "string" || entityName === "")
10896
+ return [];
10897
+ const scopeKey = entityScopeKey(entityConfig);
10898
+ if (!scopeKey)
10899
+ return [];
10900
+ const bindings = [
10901
+ createBinding({
10902
+ name: entityName,
10903
+ value: entityName,
10904
+ resource: "Entity",
10905
+ resourceKey: scopeKey,
10906
+ propertyAttribute: "name"
10907
+ })
10908
+ ];
10909
+ const folderKey = entityConfig?._folderKey;
10910
+ if (typeof folderKey === "string" && folderKey !== "") {
10911
+ bindings.push(createBinding({
10912
+ name: `${entityName}Folder`,
10913
+ value: folderKey,
10914
+ resource: "Entity",
10915
+ resourceKey: scopeKey,
10916
+ propertyAttribute: "folderKey"
10917
+ }));
10918
+ }
10919
+ return bindings;
10920
+ }
10921
+ async function resolveEntityIdentity(filePath, node) {
10922
+ const entityConfig = node.inputs?.entityConfig;
10923
+ const entityName = entityConfig?.entityName;
10924
+ if (entityConfig == null || typeof entityName !== "string" || entityName === "") {
10925
+ return;
10926
+ }
10927
+ const entity = await resolveInlineEntity(getFileSystem(), filePath, entityName);
10928
+ if (entity === undefined) {
10929
+ return;
10930
+ }
10931
+ const current2 = entityScopeKey(entityConfig);
10932
+ if (current2 !== "" && current2 !== entity.resourceKey) {
10933
+ return;
10934
+ }
10935
+ entityConfig.entityName = entity.name;
10936
+ if (current2 === "") {
10937
+ entityConfig._resourceKey = entity.resourceKey;
10938
+ entityConfig._folderKey = entity.folderId;
10939
+ }
10940
+ }
10941
+ function resolveProcessTarget(node, definitions) {
10942
+ if (!isProcessNode({ nodeType: node.type }))
10943
+ return;
10944
+ let subType = "Process";
10945
+ if (definitions) {
10946
+ const def = findMatchingDefinition(node.type, node.typeVersion, definitions);
10947
+ const model = def?.model;
10948
+ const defBindings = model?.bindings;
10949
+ if (defBindings?.resourceSubType)
10950
+ subType = defBindings.resourceSubType;
10951
+ if (defBindings?.resourceKey) {
10952
+ return { key: defBindings.resourceKey, subType };
10953
+ }
10954
+ }
10955
+ return { key: extractProcessGuid(node.type), subType };
10956
+ }
10957
+ function resolveProcessTargetKey(node, definitions) {
10958
+ return resolveProcessTarget(node, definitions)?.key;
10959
+ }
10960
+ function resolveProcessBindingsInContext(node, nameBinding, folderBinding) {
10961
+ const model = node.model;
10962
+ if (!model?.context)
10963
+ return;
10964
+ for (const entry of model.context) {
10965
+ if (entry.name === "name" && typeof entry.value === "string") {
10966
+ entry.default = nameBinding.default;
10967
+ entry.value = `=bindings.${nameBinding.id}`;
10968
+ } else if (entry.name === "folderPath" && typeof entry.value === "string") {
10969
+ entry.default = folderBinding.default;
10970
+ entry.value = `=bindings.${folderBinding.id}`;
10971
+ }
10972
+ }
10973
+ }
10974
+ var UNRESOLVED_BINDING_PATTERN = /^<bindings\.\w+>$/;
10975
+ function ensureProcessBindings(workflow) {
10976
+ const nodes = workflow.nodes;
10977
+ const definitions = workflow.definitions ?? [];
10978
+ let bindingsCreated = 0;
10979
+ for (const node of nodes) {
10980
+ if (!isProcessNode({ nodeType: node.type }))
10981
+ continue;
10982
+ const nodeModel = node.model;
10983
+ const defModel = definitions.find((d) => d.nodeType === node.type)?.model;
10984
+ const hasUnresolved = [nodeModel, defModel].some((m) => m?.context?.some((entry) => typeof entry.value === "string" && UNRESOLVED_BINDING_PATTERN.test(entry.value)));
10985
+ if (!hasUnresolved)
10986
+ continue;
10987
+ const definition = definitions.find((d) => d.nodeType === node.type);
10988
+ if (!definition)
10989
+ continue;
10990
+ const [err, bindings] = catchError(() => createProcessBindings(definition));
10991
+ if (err) {
10992
+ logger.warn(`Skipping binding resolution for node "${node.id}": ${err.message}`);
10993
+ continue;
10994
+ }
10995
+ const { nameBinding, folderBinding } = bindings;
10996
+ const beforeCount = workflow.bindings?.length ?? 0;
10997
+ addBinding(workflow, nameBinding);
10998
+ addBinding(workflow, folderBinding);
10999
+ const storedBindings = workflow.bindings;
11000
+ const storedName = storedBindings.find((b) => b.resourceKey === nameBinding.resourceKey && b.propertyAttribute === nameBinding.propertyAttribute) ?? nameBinding;
11001
+ const storedFolder = storedBindings.find((b) => b.resourceKey === folderBinding.resourceKey && b.propertyAttribute === folderBinding.propertyAttribute) ?? folderBinding;
11002
+ resolveProcessBindingsInContext(node, storedName, storedFolder);
11003
+ if (defModel?.context) {
11004
+ for (const entry of defModel.context) {
11005
+ if (entry.name === "name" && typeof entry.value === "string" && UNRESOLVED_BINDING_PATTERN.test(entry.value)) {
11006
+ entry.default = storedName.default;
11007
+ entry.value = `=bindings.${storedName.id}`;
11008
+ } else if (entry.name === "folderPath" && typeof entry.value === "string" && UNRESOLVED_BINDING_PATTERN.test(entry.value)) {
11009
+ entry.default = storedFolder.default;
11010
+ entry.value = `=bindings.${storedFolder.id}`;
11011
+ }
11012
+ }
11013
+ }
11014
+ const added = (workflow.bindings?.length ?? 0) - beforeCount;
11015
+ bindingsCreated += added;
11016
+ logger.info(`Resolved process bindings for node "${node.id}" (${node.type})`);
11017
+ }
11018
+ if (bindingsCreated > 0) {
11019
+ logger.info(`ensureProcessBindings: created ${bindingsCreated} binding(s) for directly-authored nodes`);
11020
+ }
11021
+ return bindingsCreated;
11022
+ }
11023
+ var BINDING_REF_PATTERN = /^=bindings\.(.+)$/;
11024
+ function collectNodeBindingRefs(node) {
11025
+ const refs = new Set;
11026
+ const addRef = (value) => {
11027
+ if (typeof value !== "string")
11028
+ return;
11029
+ const match = value.match(BINDING_REF_PATTERN);
11030
+ if (match)
11031
+ refs.add(match[1]);
11032
+ };
11033
+ if (node.inputs) {
11034
+ const inputs = node.inputs;
11035
+ for (const value of Object.values(inputs))
11036
+ addRef(value);
11037
+ const detail = inputs.detail;
11038
+ for (const bucket of REQUEST_BUCKETS) {
11039
+ const values = detail?.[bucket];
11040
+ if (values !== null && typeof values === "object") {
11041
+ for (const value of Object.values(values))
11042
+ addRef(value);
11043
+ }
11044
+ }
11045
+ }
11046
+ return refs;
11047
+ }
11048
+ function collectNodeBindingResourceKeys(node, bindings, definitions) {
11049
+ const keys = new Set;
11050
+ const processKey = resolveProcessTargetKey(node, definitions);
11051
+ if (processKey) {
11052
+ keys.add(processKey);
11053
+ }
11054
+ const inputs = node.inputs;
11055
+ if (typeof inputs?.detail?.connectionResourceId === "string") {
11056
+ keys.add(inputs.detail.connectionResourceId);
11057
+ }
11058
+ const entityKey = entityScopeKey(inputs?.entityConfig);
11059
+ if (entityKey !== "") {
11060
+ keys.add(entityKey);
11061
+ }
11062
+ const refs = collectNodeBindingRefs(node);
11063
+ for (const binding of bindings) {
11064
+ if (refs.has(binding.id)) {
11065
+ keys.add(binding.resourceKey);
11066
+ }
11067
+ }
11068
+ return keys;
11069
+ }
11070
+ var addNodeToFlow = async (filePath, nodeType, options = {}) => {
11071
+ let inline;
11072
+ if (options.inlineActivity) {
11073
+ inline = await prepareInlineActivity(nodeType, options.inlineActivity);
11074
+ } else if (nodeType.startsWith("uipath.connector.custom.")) {
11075
+ throw new InlineActivityError(`Node type "${nodeType}" is a non-catalog activity, which the registry does not carry.`, "Pass --metadata <Name>.json and --scripts <dir> (the files `uip is activities metadata generate` and `script update` produced) so the definition is built locally.");
11076
+ }
11077
+ let manifest = inline?.manifest ?? null;
11078
+ let registryErr;
11079
+ if (!manifest) {
11080
+ const [err, registryManifest] = await catchError(getNode(nodeType));
11081
+ manifest = registryManifest ?? null;
11082
+ registryErr = err;
11083
+ if (err) {
11084
+ logger.debug(`Registry node lookup failed for ${nodeType}: ${err.message}`);
11085
+ }
11086
+ }
11087
+ let localErr = null;
11088
+ if (!manifest) {
11089
+ const [err, localManifest] = await catchError(getNode(nodeType, { local: true }));
11090
+ manifest = localManifest ?? null;
11091
+ if (err) {
11092
+ localErr = err;
11093
+ logger.warn(`In-solution node lookup failed for ${nodeType}: ${err.message}`);
11094
+ }
11095
+ }
11096
+ if (!manifest && isTenantManifestInvalidError(registryErr)) {
11097
+ throw registryErr;
11098
+ }
11099
+ if (!manifest) {
11100
+ if (isKnownSdkNodeType(nodeType)) {
11101
+ throw new NodeTypeNotEnabledError(`Node type '${nodeType}' is not enabled for this tenant.`, "Ask an admin to enable the feature flag for this node type, " + "or run `uip maestro flow registry list` to see every " + "known type with its `AvailableOnTenant` flag.");
11102
+ }
11103
+ const [, withoutProcessResource] = await catchError(explainNodeTypeWithoutProcessResource(nodeType));
11104
+ if (withoutProcessResource) {
11105
+ throw new NodeTypeNotFoundError(`Node type not found: ${nodeType}. ${withoutProcessResource.message}`, withoutProcessResource.instructions);
11106
+ }
11107
+ const details = [
11108
+ registryErr && `Registry lookup failed: ${registryErr.message}`,
11109
+ localErr && `In-solution lookup failed: ${localErr.message}`
11110
+ ].filter(Boolean).join(". ");
11111
+ const hint = details || "If this is an in-solution node, make sure you are running " + "from inside a solution directory (with a .uipx file in CWD, parent, or grandparent).";
11112
+ throw new NodeTypeNotFoundError(`Node type not found: ${nodeType}. ${hint}`, "Run `uip maestro flow registry search <keyword>` to find the " + "correct node type, or `uip maestro flow registry list` " + "to see every known type (including ones not enabled on this tenant).");
11113
+ }
11114
+ if (manifest.model?.source === true) {
11115
+ const fromFlag = typeof options.source === "string" && options.source.length > 0;
11116
+ const inputsSourceCandidate = options.inputs?.source;
11117
+ const fromInputs = typeof inputsSourceCandidate === "string" && inputsSourceCandidate.length > 0;
11118
+ if (!fromFlag && !fromInputs) {
11119
+ throw new SourceRequiredError(`Node type "${nodeType}" requires a source UUID at inputs.source. Pass --source <uuid>.`, "Use the agent's ProjectId (returned by " + '`uip agent init "<flow-dir>" --inline-in-flow`) for inline ' + "agent nodes, or the resource id declared in the parent " + "inline agent's `resources[]` for agent-tool resource nodes. " + '`--input \'{"source":"<uuid>"}\'` is also accepted.');
11120
+ }
11121
+ }
11122
+ const { workflow, refMap } = await readFlowWorkflow(filePath);
11123
+ if (inline) {
11124
+ const existing = workflow.definitions.find((d) => d.nodeType === manifest.nodeType && d.version === manifest.version);
11125
+ if (existing && definitionConfigurationOf(existing) !== definitionConfigurationOf(manifest)) {
11126
+ throw new InlineActivityError(`"${nodeType}" is already defined in this flow with different activity metadata.`, "Use a different activity slug for this node type, or remove the existing nodes of this type first so the definition is rebuilt from the new metadata.");
11127
+ }
11128
+ }
11129
+ const existingIds = new Set(workflow.nodes.map((n) => n.id));
11130
+ const existingDefCount = workflow.definitions.length;
11131
+ const { id, displayName } = generateNodeIdAndName(options.label ?? manifest.display.label, existingIds);
11132
+ const bindingsBefore = workflow.bindings?.length ?? 0;
11133
+ const node = addNode(workflow, manifest, id, options.position ?? { x: 0, y: 0 }, options.label ?? displayName);
11134
+ const schema = manifest.inputDefinition;
11135
+ if (manifest.inputDefaults === undefined && schema?.type === "object") {
11136
+ for (const schemaKey of Object.keys(schema)) {
11137
+ delete node.inputs[schemaKey];
11138
+ }
11139
+ }
11140
+ let bindingsCreated = 0;
11141
+ if (isProcessNode(manifest)) {
11142
+ const { nameBinding, folderBinding } = createProcessBindings(manifest);
11143
+ addBinding(workflow, nameBinding);
11144
+ addBinding(workflow, folderBinding);
11145
+ const storedBindings = workflow.bindings;
11146
+ const storedName = storedBindings.find((b) => b.resourceKey === nameBinding.resourceKey && b.propertyAttribute === nameBinding.propertyAttribute) ?? nameBinding;
11147
+ const storedFolder = storedBindings.find((b) => b.resourceKey === folderBinding.resourceKey && b.propertyAttribute === folderBinding.propertyAttribute) ?? folderBinding;
11148
+ if (folderBinding.default === "" && storedFolder.default === undefined) {
11149
+ storedFolder.default = "";
11150
+ }
11151
+ resolveProcessBindingsInContext(node, storedName, storedFolder);
11152
+ bindingsCreated = (workflow.bindings?.length ?? 0) - bindingsBefore;
11153
+ }
11154
+ if (options.inputs && Object.keys(options.inputs).length > 0) {
11155
+ node.inputs = { ...node.inputs ?? {}, ...options.inputs };
11156
+ }
11157
+ if (inline) {
11158
+ node.inputs = {
11159
+ ...node.inputs ?? {},
11160
+ inlineActivityConfiguration: inline.configuration
11161
+ };
11162
+ }
11163
+ if (isEntityNode(manifest)) {
11164
+ await resolveEntityIdentity(filePath, node);
11165
+ for (const entityBinding of createEntityBindings(node)) {
11166
+ addBinding(workflow, entityBinding);
11167
+ }
11168
+ bindingsCreated = (workflow.bindings?.length ?? 0) - bindingsBefore;
11169
+ }
11170
+ const manifestModel = manifest.model;
11171
+ if (manifestModel?.source === true) {
11172
+ if (typeof options.source === "string" && options.source.length > 0) {
11173
+ const inputs = node.inputs ?? {};
11174
+ inputs.source = options.source;
11175
+ node.inputs = inputs;
11176
+ }
11177
+ if (node.model) {
11178
+ delete node.model;
11179
+ }
11180
+ }
11181
+ if (typeof options.parent === "string" && options.parent.length > 0) {
11182
+ const allNodes = workflow.nodes;
11183
+ if (!allNodes.some((n) => n.id === options.parent)) {
11184
+ throw new Error(`--parent value "${options.parent}" is not an existing node id in this flow. ` + "Run 'uip maestro flow nodes list <file>' to see valid ids.");
11185
+ }
11186
+ node.parentId = options.parent;
11187
+ }
11188
+ await writeFlowWorkflow(filePath, workflow, refMap);
11189
+ if (isProcessNode(manifest) || isEntityNode(manifest)) {
11190
+ const fs = getFileSystem();
11191
+ const [regenErr] = await catchError(regenerateBindingsFile(fs, filePath));
11192
+ if (regenErr) {
11193
+ logger.warn(`Failed to regenerate bindings_v2.json after adding ${manifest.nodeType}: ${regenErr.message}`);
11194
+ }
11195
+ }
11196
+ const definitionAdded = workflow.definitions.length > existingDefCount;
11197
+ const variableCount = workflow.variables?.nodes?.length ?? 0;
11198
+ const inlineActivity = inline ? {
11199
+ scriptRef: inline.configuration.scriptRef,
11200
+ scripts: Object.keys(inline.configuration.scripts)
11201
+ } : undefined;
11202
+ if (isConnectorNode(manifest)) {
11203
+ const connInfo = getConnectorInfo(manifest);
11204
+ return {
11205
+ node,
11206
+ definitionAdded,
11207
+ bindingsCreated,
11208
+ variableCount,
11209
+ connectorInfo: connInfo ?? undefined,
11210
+ ...inlineActivity && { inlineActivity }
11211
+ };
11212
+ } else {
11213
+ return {
11214
+ node,
11215
+ definitionAdded,
11216
+ bindingsCreated,
11217
+ variableCount,
11218
+ ...inlineActivity && { inlineActivity }
11219
+ };
11220
+ }
11221
+ };
11222
+ function removeConnectedEdges(workflow, nodeId) {
11223
+ const edges = workflow.edges ?? [];
11224
+ const before = edges.length;
11225
+ workflow.edges = edges.filter((e) => e.sourceNodeId !== nodeId && e.targetNodeId !== nodeId);
11226
+ return before - workflow.edges.length;
11227
+ }
11228
+ function subflowNodes(workflow) {
11229
+ return Object.values(workflow.subflows ?? {}).flatMap((entry) => entry?.nodes ?? []);
11230
+ }
11231
+ function removeOrphanedBindings(workflow, deletedNodeKeys, remainingNodes, bindings) {
11232
+ if (deletedNodeKeys.size === 0 || bindings.length === 0)
11233
+ return 0;
11234
+ const defs = workflow.definitions ?? [];
11235
+ const remainingKeys = new Set;
11236
+ for (const node of remainingNodes) {
11237
+ for (const key of collectNodeBindingResourceKeys(node, bindings, defs)) {
11238
+ remainingKeys.add(key);
11239
+ }
11240
+ }
11241
+ const before = bindings.length;
11242
+ workflow.bindings = bindings.filter((b) => !deletedNodeKeys.has(b.resourceKey) || remainingKeys.has(b.resourceKey));
11243
+ return before - workflow.bindings.length;
11244
+ }
11245
+ function connectorConnectionBindingName(node, definitions) {
11246
+ if (!node.type.startsWith("uipath.connector"))
11247
+ return "";
11248
+ const def = definitions.find((d) => d.nodeType === node.type);
11249
+ const context = def?.model?.context;
11250
+ const connectorKey = context?.find((c) => c.name === "connectorKey")?.value;
11251
+ return typeof connectorKey === "string" && connectorKey.length > 0 ? `${connectorKey} connection` : "";
11252
+ }
11253
+ function removeOrphanedConnectorStub(workflow, deletedNode, remainingNodes, definitions) {
11254
+ const stubName = connectorConnectionBindingName(deletedNode, definitions);
11255
+ if (!stubName)
11256
+ return 0;
11257
+ const stillOwned = remainingNodes.some((n) => connectorConnectionBindingName(n, definitions) === stubName);
11258
+ if (stillOwned)
11259
+ return 0;
11260
+ const bindings = workflow.bindings ?? [];
11261
+ if (bindings.length === 0)
11262
+ return 0;
11263
+ const before = bindings.length;
11264
+ workflow.bindings = bindings.filter((b) => !(b.resource?.toLowerCase() === "connection" && b.propertyAttribute === "ConnectionId" && !b.resourceKey && !b.default && b.name === stubName));
11265
+ return before - workflow.bindings.length;
11266
+ }
11267
+ function removeOrphanedDefinitions(workflow, remainingNodes) {
11268
+ const definitions = workflow.definitions ?? [];
11269
+ const usedKeys = new Set(remainingNodes.map((n) => `${n.type}:${n.typeVersion}`));
11270
+ const before = definitions.length;
11271
+ workflow.definitions = definitions.filter((d) => usedKeys.has(`${d.nodeType}:${d.version}`));
11272
+ return before - workflow.definitions.length;
11273
+ }
11274
+ function removeVariableUpdates(workflow, nodeId) {
11275
+ const variables = workflow.variables;
11276
+ if (!variables?.variableUpdates)
11277
+ return 0;
11278
+ const updates = variables.variableUpdates[nodeId];
11279
+ if (!updates)
11280
+ return 0;
11281
+ const count = updates.length;
11282
+ delete variables.variableUpdates[nodeId];
11283
+ return count;
11284
+ }
11285
+ function removeNodeVariables(workflow, nodeId) {
11286
+ const variables = workflow.variables;
11287
+ if (!variables?.nodes)
11288
+ return 0;
11289
+ const before = variables.nodes.length;
11290
+ variables.nodes = variables.nodes.filter((v) => v.binding.nodeId !== nodeId);
11291
+ return before - variables.nodes.length;
11292
+ }
11293
+ var deleteNodeFromFlow = async (filePath, nodeId) => {
11294
+ const { workflow, refMap } = await readFlowWorkflow(filePath);
11295
+ const nodes = workflow.nodes;
11296
+ const nodeIndex = nodes.findIndex((n) => n.id === nodeId);
11297
+ if (nodeIndex === -1) {
11298
+ const available = nodes.map((n) => n.id).join(", ") || "(none)";
11299
+ throw new Error(`Node not found: "${nodeId}". Available node IDs: ${available}`);
11300
+ }
11301
+ const targetNode = nodes[nodeIndex];
11302
+ const deletedWasProcessNode = isProcessNode({ nodeType: targetNode.type });
11303
+ const deletedNode = {
11304
+ id: targetNode.id,
11305
+ type: targetNode.type,
11306
+ label: targetNode.display.label ?? "",
11307
+ position: targetNode.ui.position
11308
+ };
11309
+ const bindings = workflow.bindings ?? [];
11310
+ const definitions = workflow.definitions ?? [];
11311
+ const deletedNodeResourceKeys = collectNodeBindingResourceKeys(targetNode, bindings, definitions);
11312
+ nodes.splice(nodeIndex, 1);
11313
+ const edgesRemoved = removeConnectedEdges(workflow, nodeId);
11314
+ const remainingNodes = [...nodes, ...subflowNodes(workflow)];
11315
+ const bindingsRemoved = removeOrphanedBindings(workflow, deletedNodeResourceKeys, remainingNodes, bindings) + removeOrphanedConnectorStub(workflow, targetNode, remainingNodes, definitions);
11316
+ const definitionsRemoved = removeOrphanedDefinitions(workflow, remainingNodes);
11317
+ const variablesRemoved = removeNodeVariables(workflow, nodeId);
11318
+ const variableUpdatesRemoved = removeVariableUpdates(workflow, nodeId);
11319
+ await writeFlowWorkflow(filePath, workflow, refMap);
11320
+ if (deletedWasProcessNode || bindingsRemoved > 0) {
11321
+ const fs = getFileSystem();
11322
+ const [regenErr] = await catchError(regenerateBindingsFile(fs, filePath));
11323
+ if (regenErr) {
11324
+ logger.warn(`Failed to regenerate bindings_v2.json after deleting ${targetNode.type}: ${regenErr.message}`);
11325
+ }
11326
+ }
11327
+ return {
11328
+ deletedNode,
11329
+ edgesRemoved,
11330
+ bindingsRemoved,
11331
+ definitionsRemoved,
11332
+ variablesRemoved,
11333
+ variableUpdatesRemoved
11334
+ };
11335
+ };
11336
+
11337
+ export { parse3 as parse, loadRegistry, REQUEST_BUCKETS, INLINE_ACTIVITY_TYPE_PREFIX, INLINE_ACTIVITY_SOURCE, InlineActivityError, collectScriptRefs, getInlineActivityConfiguration, fileNodesToPackagingNodes, flowToPackagingNodes, packageInlineAgents, stageInlineAgentPackageFiles, buildInlineAgentDescriptors, writePackagingArtifacts, writePackagingArtifactsDetailed, regenerateBindingsFile, NodeTypeNotFoundError, NodeTypeNotEnabledError, SourceRequiredError, listNodesInFlow, PROCESS_NODE_PREFIXES, isProcessNode, isEntityNode, createEntityBindings, resolveEntityIdentity, resolveProcessTarget, resolveProcessTargetKey, ensureProcessBindings, collectNodeBindingResourceKeys, addNodeToFlow, deleteNodeFromFlow };
9300
11338
 
9301
- //# debugId=BAC50F3104FF6B2B64756E2164756E21
11339
+ //# debugId=62F4959BDDC99F5B64756E2164756E21