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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/dist/THIRD-PARTY-NOTICES.md +24 -11
  2. package/dist/{authoring-6ckkzfc9.js → authoring-kqh34zzm.js} +49 -30
  3. package/dist/{business-rule-export-kg5bk8aw.js → business-rule-export-ey588rv7.js} +2 -2
  4. package/dist/canvas-notes-86fxx1t8.js +19 -0
  5. package/dist/{case-api-rvamfn02.js → case-api-sme7esce.js} +6 -6
  6. package/dist/case-bindings-service-cht20gqt.js +430 -0
  7. package/dist/case-debug-solution-projects-h3w2nx0a.js +34 -0
  8. package/dist/{case-debug-studio-web-service-xxfesw4v.js → case-debug-studio-web-service-3mkrtaet.js} +16 -10
  9. package/dist/{case-described-io-service-14hdnqcc.js → case-described-io-service-dx1f4nxe.js} +37 -11
  10. package/dist/case-event-trigger-bindings-g9ftnm4x.js +16 -0
  11. package/dist/{case-format-service-yb48785t.js → case-format-service-6aew6tqc.js} +2 -2
  12. package/dist/{case-pack-service-9185h6ez.js → case-pack-service-pqq8wnfd.js} +6 -6
  13. package/dist/case-schema-version-h820ne16.js +20 -0
  14. package/dist/{case-shape-reader-mw58avr0.js → case-shape-reader-dsbraetf.js} +1 -1
  15. package/dist/{case-splice-service-tkmb7xjp.js → case-splice-service-s5gccctq.js} +53 -8
  16. package/dist/{case-validate-service-c84e2bhv.js → case-validate-service-rey6btew.js} +128 -42
  17. package/dist/{connector-enrichment-service-hfv0kwht.js → connector-enrichment-service-crqs2216.js} +23 -20
  18. package/dist/{connector-lookup-service-whgjceyj.js → connector-lookup-service-dwv8q5eh.js} +6 -6
  19. package/dist/connector-task-shape-mpazkf7s.js +14 -0
  20. package/dist/{connector-task-spec-k0cwavrm.js → connector-task-spec-trs4tcb3.js} +196 -40
  21. package/dist/{de-MUJPA4EB-dpg7t2rw.js → de-UZI7FJDO-mwvc4cxe.js} +29 -2
  22. package/dist/{de-FGHEJRCI-rv513mfh.js → de-WLW6KWOJ-2qnsqdtw.js} +238 -31
  23. package/dist/{debug-service-ch3v6jmm.js → debug-service-7q98j726.js} +3 -3
  24. package/dist/{embedded-file-reader-v8c2yj2a.js → embedded-file-reader-r66242ey.js} +2 -2
  25. package/dist/{en-FBPVNKFN-dqt573xn.js → en-EJCBA3LK-dtpdghgj.js} +12 -4
  26. package/dist/{en-BWGKA5OE-1qkvb9rn.js → en-M7GQYBV2-5nfmpnfz.js} +88 -6
  27. package/dist/{enrichment-service-3f1kygjs.js → enrichment-service-hv7ff88p.js} +56 -12
  28. package/dist/{es-7SE7HX2X-8yh1aj2y.js → es-4UBUTCQA-m1ytpyx2.js} +29 -2
  29. package/dist/{es-KR3ZSNMP-84zphx0x.js → es-5THCNRFN-tqwyrdgy.js} +235 -28
  30. package/dist/{es-MX-2MYFZU7X-3rek4r73.js → es-MX-5RELIXKI-9jhqtddc.js} +29 -2
  31. package/dist/{es-MX-XXZJGC4R-2mr8jtgm.js → es-MX-TWZBRAXK-gqd9swzw.js} +237 -30
  32. package/dist/filter-engine-7ep90g7f.js +11 -0
  33. package/dist/{fr-Y6NPVODW-8vr1ja4b.js → fr-CERONSRC-edpxhbmb.js} +237 -30
  34. package/dist/{fr-MDFKNZ4C-h4a122k9.js → fr-VBM5WRC2-63z7w4mh.js} +29 -2
  35. package/dist/index-332n0kxj.js +282 -0
  36. package/dist/{index-wmffgzmr.js → index-5dxh9z60.js} +21751 -11098
  37. package/dist/{index-aw2gqqat.js → index-a2fvrrth.js} +4 -4
  38. package/dist/{index-4yanx3rn.js → index-ekwtgx7y.js} +1089 -218
  39. package/dist/{index-ng2f77my.js → index-fyc0k5dd.js} +985 -617
  40. package/dist/index-n9qvnx4x.js +29 -0
  41. package/dist/{index-hhsf00x8.js → index-ngs0a2he.js} +1 -1
  42. package/dist/{index-j2r3jb6c.js → index-xq6ajhgq.js} +2 -2
  43. package/dist/index.js +12 -12
  44. package/dist/init-entry-points-hhpv3e3f.js +98 -0
  45. package/dist/{input-reader-1tcqt27f.js → input-reader-c7wz8ra2.js} +3 -3
  46. package/dist/{ja-UTQEAP34-8e0q6swp.js → ja-43QL7CGO-c3q8gre9.js} +29 -2
  47. package/dist/{ja-Q5PXKJ2V-p4msxzjd.js → ja-U2MCNHGT-gz0ap1jk.js} +235 -28
  48. package/dist/{known-types-0h9kqwyy.js → known-types-jvkdgmzz.js} +5 -4
  49. package/dist/{ko-AXCHW2OK-askct7f6.js → ko-TLL6Z6CD-wrt3n8a9.js} +29 -2
  50. package/dist/{ko-AYBDSRZG-41mdmsg1.js → ko-XAUYQWDR-zp81gjp4.js} +237 -30
  51. package/dist/localSolutionDiscovery-yyx234ak.js +13 -0
  52. package/dist/migration-diagnosis-ns5cw4e3.js +99 -0
  53. package/dist/{node-strategy-5pz40tee.js → node-strategy-v442hwgd.js} +1 -1
  54. package/dist/node-sync-service-1wkcyn1n.js +57 -0
  55. package/dist/out-target-wjgmna0r.js +111 -0
  56. package/dist/{packager-tool-85q4f3pq.js → packager-tool-1pcmxqny.js} +3 -3
  57. package/dist/{packager-tool-8a9yqfq7.js → packager-tool-1yfw674x.js} +4 -2
  58. package/dist/{packager-tool-pdhhzfr5.js → packager-tool-29x6vran.js} +296 -417
  59. package/dist/packager-tool-2sn7d8fd.js +41 -0
  60. package/dist/packager-tool-4p11fvf4.js +92 -0
  61. package/dist/{packager-tool-25hng8h4.js → packager-tool-4rtktkhv.js} +16211 -13084
  62. package/dist/{packager-tool-yfm83bzd.js → packager-tool-67vy1fz3.js} +4 -3
  63. package/dist/{packager-tool-d88rqwk8.js → packager-tool-6z1hsm2h.js} +13 -5
  64. package/dist/packager-tool-7hw344bt.js +107 -0
  65. package/dist/{packager-tool-3q3d1hk8.js → packager-tool-83v804p7.js} +56 -6
  66. package/dist/{packager-tool-00y70spr.js → packager-tool-87y6xw3a.js} +2 -1
  67. package/dist/packager-tool-93mdeqay.js +18 -0
  68. package/dist/{packager-tool-64rg5ekd.js → packager-tool-9e59z4d6.js} +75 -7
  69. package/dist/{packager-tool-vepqrsse.js → packager-tool-9kf3fqtr.js} +2 -2
  70. package/dist/packager-tool-9kvkzc05.js +74 -0
  71. package/dist/{packager-tool-s6619wtx.js → packager-tool-9sd483vs.js} +2 -2
  72. package/dist/{packager-tool-f78ntj5g.js → packager-tool-9y1w2wds.js} +51 -6
  73. package/dist/packager-tool-a17g0pj1.js +62 -0
  74. package/dist/{packager-tool-167qap9m.js → packager-tool-aagnvyba.js} +845 -38
  75. package/dist/{packager-tool-0p6dbsp0.js → packager-tool-c5q10254.js} +5 -5
  76. package/dist/{packager-tool-wj9d9mqe.js → packager-tool-e15kqpyh.js} +12 -13
  77. package/dist/{packager-tool-c31qx8kc.js → packager-tool-ezds6t5e.js} +2 -2
  78. package/dist/{packager-tool-d3zvghjd.js → packager-tool-f2z2dscy.js} +308 -120
  79. package/dist/{packager-tool-hvzjm2nk.js → packager-tool-f8vwy92w.js} +2093 -5805
  80. package/dist/{packager-tool-rgpdaxbx.js → packager-tool-gx2cer6a.js} +5385 -1098
  81. package/dist/{packager-tool-xdxr3ync.js → packager-tool-hdxtgckw.js} +11 -1
  82. package/dist/{packager-tool-mr149jsw.js → packager-tool-k5cpxdm4.js} +17 -7
  83. package/dist/packager-tool-k6jbedyc.js +69 -0
  84. package/dist/packager-tool-kdhey8gz.js +153 -0
  85. package/dist/{packager-tool-cenvh23g.js → packager-tool-kyrm4e5m.js} +718 -87
  86. package/dist/packager-tool-mqy97y5f.js +52 -0
  87. package/dist/{packager-tool-jfysbxdt.js → packager-tool-mzf4gmph.js} +4 -4
  88. package/dist/packager-tool-n7w9wx62.js +25 -0
  89. package/dist/{packager-tool-7q6z6npd.js → packager-tool-pcvhcn2k.js} +93 -11
  90. package/dist/packager-tool-r0x3qh59.js +307 -0
  91. package/dist/{packager-tool-w1b5pyj6.js → packager-tool-r6b5ktzb.js} +730 -14
  92. package/dist/{packager-tool-zbrda9sn.js → packager-tool-rk25wp3c.js} +1 -1
  93. package/dist/{packager-tool-xcd87qyx.js → packager-tool-v2kcgjbf.js} +2 -3
  94. package/dist/{case-bindings-service-d9vezn69.js → packager-tool-wekqkmgn.js} +20 -231
  95. package/dist/packager-tool-yct6zp4m.js +335 -0
  96. package/dist/{packager-tool-kpqr938m.js → packager-tool-ydyvtknp.js} +26 -3
  97. package/dist/{packager-tool-v99ygh9f.js → packager-tool-yn33pw57.js} +124 -58
  98. package/dist/{packager-tool-4rqd21wc.js → packager-tool-yn7r7zq2.js} +19 -5
  99. package/dist/{packager-tool-cmwets3m.js → packager-tool-zf8f9pmm.js} +1 -1
  100. package/dist/packager-tool.js +3 -3
  101. package/dist/{project-artifacts-rng5m6r2.js → project-artifacts-bgyyb0dm.js} +1 -1
  102. package/dist/{pt-BR-TKHNHMET-sn91xyq0.js → pt-BR-GNQNAAZ2-xadharv4.js} +237 -30
  103. package/dist/{pt-BR-Y6K6XHXK-mp3hwhw1.js → pt-BR-USP2T7GD-pedn77m1.js} +29 -2
  104. package/dist/{pt-3DIO5QWG-59b3f4bc.js → pt-RMIAKZB4-67enhx3m.js} +29 -2
  105. package/dist/{pt-ROXU257Y-2f6bxev4.js → pt-TO2DARY2-ftcce1bv.js} +237 -30
  106. package/dist/{resolved-check-p99hysaw.js → resolved-check-aqw7568y.js} +1 -1
  107. package/dist/{resourcesSyncService-zwjyp1qx.js → resourcesSyncService-d302jnap.js} +32 -170
  108. package/dist/{ro-BWR3ONRR-vzx3hy8a.js → ro-GHOBYW2S-mhnqsgaa.js} +29 -2
  109. package/dist/{ro-AVAWPKOO-b89pw79r.js → ro-WUYJV6OW-a8d9qy1n.js} +235 -28
  110. package/dist/{sdd-convert-service-vf0ps358.js → sdd-convert-service-8jpew7vz.js} +686 -445
  111. package/dist/{sdd-lookup-dwzpvvwn.js → sdd-lookup-fe900sdb.js} +2 -2
  112. package/dist/{sdd-resolve-service-mjqad2nn.js → sdd-resolve-service-qdtmxw9b.js} +38 -13
  113. package/dist/sdd-resolve-siblings-6kfxc2t6.js +53 -0
  114. package/dist/{solution-auth-kddmbm0p.js → solution-auth-30yycqtv.js} +3 -3
  115. package/dist/solution-discovery-g6ksnrg1.js +38 -0
  116. package/dist/{strict-case-rules-tz37bspw.js → strict-case-rules-4tjcaznr.js} +3 -2
  117. package/dist/{strict-entry-points-v14d7y50.js → strict-entry-points-g2pd4mf4.js} +29 -1
  118. package/dist/{strict-sdd-audit-4aqdeh59.js → strict-sdd-audit-q7tb9yj7.js} +7 -5
  119. package/dist/task-type-declaration-7a8fqdvs.js +46 -0
  120. package/dist/tool.js +12 -12
  121. package/dist/{tr-5IIHSFW5-hw4cewew.js → tr-GDTLECMM-k5fhmq13.js} +29 -2
  122. package/dist/{tr-JMIP7ZSL-c39b6pe4.js → tr-M3F5A6AU-bb0tg39m.js} +235 -28
  123. package/dist/{trigger-enrichment-service-g3vt051f.js → trigger-enrichment-service-sj0p2d1j.js} +23 -20
  124. package/dist/trigger-entry-point-id-yhqwnkx9.js +15 -0
  125. package/dist/{zh-CN-IFFXSEJS-9wm9gmrv.js → zh-CN-C5G4PC7C-ds9gkptg.js} +235 -28
  126. package/dist/{zh-CN-R2KU4U5L-tc1hat59.js → zh-CN-I5D7WHBD-sr5h0a98.js} +29 -2
  127. package/dist/{zh-TW-GNKMELBF-j674515r.js → zh-TW-2AVLM723-288pkc1z.js} +29 -2
  128. package/dist/{zh-TW-IYBNYAMG-8727c7v2.js → zh-TW-62HZIG6O-787kdwex.js} +234 -27
  129. package/package.json +2 -2
  130. package/dist/migration-diagnosis-ag2sgd1e.js +0 -71
  131. package/dist/node-sync-service-2tfrgbjs.js +0 -36
  132. package/dist/out-target-jakehnd3.js +0 -70
  133. package/dist/packager-tool-57pzrd0g.js +0 -32
  134. package/dist/packager-tool-dthjwajc.js +0 -13
  135. package/dist/packager-tool-xy04yy0v.js +0 -32
@@ -1,19 +1,22 @@
1
1
  import {
2
- resolveCaseSchemaVersion
3
- } from "./packager-tool-57pzrd0g.js";
2
+ resolveCaseSchemaWriteVersion
3
+ } from "./packager-tool-mqy97y5f.js";
4
+ import {
5
+ buildMinimalCaseDocument
6
+ } from "./packager-tool-v2kcgjbf.js";
4
7
  import {
5
8
  createTaskBindings
6
9
  } from "./packager-tool-sq931c23.js";
7
- import {
8
- CASE_PLAN_FILENAME,
9
- buildMinimalCaseDocument
10
- } from "./packager-tool-xcd87qyx.js";
11
10
  import {
12
11
  prefixedId
13
12
  } from "./packager-tool-mknccck5.js";
13
+ import {
14
+ GET_SEARCHABLE_TYPES,
15
+ RESOURCE_TYPES,
16
+ TYPECACHE_INDEX_TYPES
17
+ } from "./packager-tool-7nxppa3d.js";
14
18
  import {
15
19
  DEFAULT_TRIGGER_ID,
16
- DEFAULT_TRIGGER_LABEL,
17
20
  VALID_CASE_COMPLETION_RULE_TYPES,
18
21
  VALID_CASE_EXIT_RULE_TYPES,
19
22
  VALID_STAGE_COMPLETION_RULE_TYPES,
@@ -35,31 +38,27 @@ import {
35
38
  registerSharedInstanceCommands,
36
39
  registerSharedProcessCommands,
37
40
  registerSharedProcessesCommands
38
- } from "./packager-tool-167qap9m.js";
39
- import {
40
- GET_SEARCHABLE_TYPES,
41
- RESOURCE_TYPES,
42
- TYPECACHE_INDEX_TYPES
43
- } from "./packager-tool-7nxppa3d.js";
41
+ } from "./packager-tool-aagnvyba.js";
44
42
  import {
45
43
  VALID_PROJECT_NAME_REGEX,
46
44
  formatTraceLine
47
- } from "./packager-tool-vepqrsse.js";
45
+ } from "./packager-tool-9kf3fqtr.js";
48
46
  import {
49
47
  Option,
50
48
  OutputFormatter,
51
49
  RESULTS,
52
50
  catchError,
53
51
  createHiddenDeprecatedTenantOption,
52
+ extractErrorDetails,
54
53
  instructionsFor,
55
54
  logger,
56
55
  mapPackageMetadataOptions,
57
56
  processContext,
58
57
  registerPackageMetadataOptions
59
- } from "./packager-tool-3q3d1hk8.js";
58
+ } from "./packager-tool-83v804p7.js";
60
59
  import {
61
60
  getFileSystem
62
- } from "./packager-tool-xdxr3ync.js";
61
+ } from "./packager-tool-hdxtgckw.js";
63
62
  import {
64
63
  __require
65
64
  } from "./packager-tool-1yh8g550.js";
@@ -68,7 +67,7 @@ var package_default = {
68
67
  name: "@uipath/case-tool",
69
68
  author: "UiPath",
70
69
  license: "SEE LICENSE IN LICENSE.txt",
71
- version: "1.204.0",
70
+ version: "1.205.0-preview.258",
72
71
  description: "Manage Case Management instances, processes, and incidents.",
73
72
  private: false,
74
73
  repository: {
@@ -106,8 +105,9 @@ var package_default = {
106
105
  devDependencies: {
107
106
  "@uipath/auth": "workspace:*",
108
107
  "@uipath/builder-sdk": "workspace:*",
109
- "@uipath/case-schema": "0.1147.0",
108
+ "@uipath/case-schema": "0.1199.0",
110
109
  "@uipath/common": "workspace:*",
110
+ "@uipath/dmn-editor-utils": "0.1201.7",
111
111
  "@uipath/filesystem": "workspace:*",
112
112
  "@uipath/integrationservice-sdk": "workspace:*",
113
113
  "@uipath/maestro-sdk": "workspace:*",
@@ -155,7 +155,7 @@ invisible to 'uip solution resources refresh'.
155
155
  Subcommands:
156
156
  sync Write 'bindings_v2.json' next to a case plan.`);
157
157
  bindings.command("sync").description("Derive bindings_v2.json from a case plan and write it into the same directory.").argument("<file>", "Path to the case plan JSON file. The output 'bindings_v2.json' is written next to it, overwriting any existing file.").examples(CASE_BINDINGS_SYNC_EXAMPLES).trackedAction(processContext, async (file) => {
158
- const { syncCaseBindings } = await import("./case-bindings-service-d9vezn69.js");
158
+ const { syncCaseBindings } = await import("./case-bindings-service-cht20gqt.js");
159
159
  const [error, result] = await catchError(syncCaseBindings(file));
160
160
  if (error) {
161
161
  OutputFormatter.error({
@@ -627,7 +627,7 @@ var registerCasesCommand = (program) => {
627
627
  }
628
628
  const schema = buildMinimalCaseDocument({
629
629
  ...options,
630
- schemaVersion: await resolveCaseSchemaVersion()
630
+ schemaVersion: await resolveCaseSchemaWriteVersion()
631
631
  });
632
632
  const triggerId = schema.nodes.find(isAnyTriggerNode)?.id;
633
633
  const [writeError] = await catchError(writeSchema(options.file, schema));
@@ -759,7 +759,7 @@ var CASE_DEBUG_EXAMPLES = [
759
759
  ];
760
760
  function registerDebugCommand(program) {
761
761
  program.command("debug").description("Debug a case project by uploading to Studio Web and running a debug session").argument("<project-path>", "Path to the case project directory (must contain project.uiproj)").option("--folder-id <id>", "Orchestrator folder ID (OrganizationUnitId). Auto-detected if not provided.").option("--poll-interval <ms>", "Polling interval in milliseconds", "2000").option("--login-validity <minutes>", "Minimum minutes before token expiration to trigger a refresh (default: 10)", parseInt, 10).examples(CASE_DEBUG_EXAMPLES).trackedAction(processContext, async (projectPath, options) => {
762
- const { getLoginStatusAsync } = await import("./index-j2r3jb6c.js");
762
+ const { getLoginStatusAsync } = await import("./index-xq6ajhgq.js");
763
763
  const [loginError, loginStatus] = await catchError(getLoginStatusAsync({
764
764
  ensureTokenValidityMinutes: options.loginValidity
765
765
  }));
@@ -862,8 +862,8 @@ function registerDebugCommand(program) {
862
862
  logger.info(` Tenant: ${tenantName} (${tenantId})`);
863
863
  logger.info(` Base URL: ${baseUrl}`);
864
864
  const pollInterval = parseInt(options.pollInterval || "2000", 10);
865
- const { CaseDebugStudioWebService } = await import("./case-debug-studio-web-service-xxfesw4v.js");
866
- const { DebugPollTimeoutError, buildPollTimeoutFailureOutput } = await import("./debug-service-ch3v6jmm.js");
865
+ const { CaseDebugStudioWebService } = await import("./case-debug-studio-web-service-3mkrtaet.js");
866
+ const { DebugPollTimeoutError, buildPollTimeoutFailureOutput } = await import("./debug-service-7q98j726.js");
867
867
  const service = new CaseDebugStudioWebService;
868
868
  logger.info(`Starting Studio Web debug session for: ${projectPath}`);
869
869
  const [executeError, result] = await catchError(service.executeProjectViaStudioWeb(projectPath, studioWebConfig, {
@@ -889,7 +889,7 @@ function registerDebugCommand(program) {
889
889
  const {
890
890
  buildSolutionUploadFailureOutput,
891
891
  isSolutionUploadHttpError
892
- } = await import("./index-aw2gqqat.js");
892
+ } = await import("./index-a2fvrrth.js");
893
893
  if (isSolutionUploadHttpError(executeError)) {
894
894
  OutputFormatter.error(buildSolutionUploadFailureOutput(executeError, {
895
895
  subject: "case",
@@ -1235,7 +1235,7 @@ var CASE_FORMAT_EXAMPLES = [
1235
1235
  ];
1236
1236
  var registerFormatCommand = (program) => {
1237
1237
  program.command("format").description("Rewrite a case plan JSON file pretty-printed (2-space indent, one key per line) so it can be patched with a file-edit tool.").argument("<file>", "Path to the case plan JSON file, rewritten in place").examples(CASE_FORMAT_EXAMPLES).trackedAction(processContext, async (file) => {
1238
- const { formatCasePlan } = await import("./case-format-service-yb48785t.js");
1238
+ const { formatCasePlan } = await import("./case-format-service-6aew6tqc.js");
1239
1239
  const [error, result] = await catchError(formatCasePlan(file));
1240
1240
  if (error) {
1241
1241
  OutputFormatter.error({
@@ -1287,7 +1287,7 @@ var CASE_INIT_EXAMPLES = [
1287
1287
  Data: {
1288
1288
  Status: "Created successfully",
1289
1289
  Path: "/workspace/my-case-project",
1290
- CasePlan: "/workspace/my-case-project/caseplan.json",
1290
+ CasePlan: "/workspace/my-case-project/caseplan.case",
1291
1291
  CasePlanStatus: "Created"
1292
1292
  }
1293
1293
  }
@@ -1298,7 +1298,7 @@ var initCaseProject = async (name, options) => {
1298
1298
  throw new Error(`Invalid project name "${name}". Name can only contain letters, numbers, underscores (_), and hyphens (-).`);
1299
1299
  }
1300
1300
  const fs = getFileSystem();
1301
- const { prepareProjectLocation, tryRegisterProjectInParentSolution } = await import("./index-aw2gqqat.js");
1301
+ const { prepareProjectLocation, tryRegisterProjectInParentSolution } = await import("./index-a2fvrrth.js");
1302
1302
  const { projectDir, autoCreatedSolution } = await prepareProjectLocation(fs, fs.path.resolve(name), name, { skipRegistration: options.skipSolutionRegistration === true });
1303
1303
  const projectDirExists = await fs.stat(projectDir).then(() => true).catch((err) => {
1304
1304
  const code = err instanceof Error ? err.code : undefined;
@@ -1323,6 +1323,13 @@ var initCaseProject = async (name, options) => {
1323
1323
  }
1324
1324
  };
1325
1325
  await safeMkdir(projectDir);
1326
+ const { CasePlanFileNames, casePlanSidecarName, findCasePlanFileName } = await import("./index-n9qvnx4x.js");
1327
+ const [readError, entries] = await catchError(fs.readdir(projectDir));
1328
+ if (readError || entries === undefined) {
1329
+ throw new Error(`Could not read "${projectDir}" to find an existing case plan (${readError?.message ?? "no entries returned"}), so no plan was written: a new one could shadow a plan already there.`);
1330
+ }
1331
+ const casePlanFileName = findCasePlanFileName(entries) ?? CasePlanFileNames[0];
1332
+ const sidecarFileName = casePlanSidecarName(casePlanFileName);
1326
1333
  const projectId = crypto.randomUUID();
1327
1334
  const operateJson = {
1328
1335
  $schema: "https://cloud.uipath.com/draft/2024-12/operate",
@@ -1334,26 +1341,32 @@ var initCaseProject = async (name, options) => {
1334
1341
  isAttended: false
1335
1342
  }
1336
1343
  };
1337
- const entryPointsJson = {
1344
+ const casePlanPath = fs.path.join(projectDir, casePlanFileName);
1345
+ const casePlanExists = await fs.exists(casePlanPath);
1346
+ const entryPointsPath = fs.path.join(projectDir, "entry-points.json");
1347
+ const readIfThere = async (path) => {
1348
+ if (!await fs.exists(path))
1349
+ return;
1350
+ const [error, text] = await catchError(fs.readFile(path, "utf-8"));
1351
+ if (error || text === null) {
1352
+ throw new Error(`Could not read "${path}" (${error?.message ?? "no content returned"}), so the project's entry points were not rewritten: they have to follow what that file says.`);
1353
+ }
1354
+ return String(text);
1355
+ };
1356
+ const { initEntryPoints } = await import("./init-entry-points-hhpv3e3f.js");
1357
+ const entryPoints = initEntryPoints({
1358
+ sidecarFileName,
1359
+ ...casePlanExists && {
1360
+ keptPlan: await readIfThere(casePlanPath) ?? ""
1361
+ },
1362
+ existingEntryPoints: await readIfThere(entryPointsPath),
1363
+ newId: () => crypto.randomUUID()
1364
+ });
1365
+ const entryPointsJson = "write" in entryPoints ? {
1338
1366
  $schema: "https://cloud.uipath.com/draft/2024-12/entry-point",
1339
1367
  $id: "entry-points.json",
1340
- entryPoints: [
1341
- {
1342
- filePath: `/content/caseplan.json.bpmn#${DEFAULT_TRIGGER_ID}`,
1343
- uniqueId: crypto.randomUUID(),
1344
- type: "CaseManagement",
1345
- input: {
1346
- type: "object",
1347
- properties: {}
1348
- },
1349
- output: {
1350
- type: "object",
1351
- properties: {}
1352
- },
1353
- displayName: DEFAULT_TRIGGER_LABEL
1354
- }
1355
- ]
1356
- };
1368
+ entryPoints: entryPoints.write
1369
+ } : undefined;
1357
1370
  const bindingsJson = {
1358
1371
  version: "2.0",
1359
1372
  resources: []
@@ -1364,8 +1377,8 @@ var initCaseProject = async (name, options) => {
1364
1377
  "operate.json": "content/operate.json",
1365
1378
  "entry-points.json": "content/entry-points.json",
1366
1379
  "bindings.json": "content/bindings_v2.json",
1367
- "caseplan.json": "content/caseplan.json",
1368
- "caseplan.json.bpmn": "content/caseplan.json.bpmn"
1380
+ [casePlanFileName]: `content/${casePlanFileName}`,
1381
+ [sidecarFileName]: `content/${sidecarFileName}`
1369
1382
  }
1370
1383
  };
1371
1384
  const projectUiproj = {
@@ -1376,25 +1389,36 @@ var initCaseProject = async (name, options) => {
1376
1389
  `);
1377
1390
  await fs.writeFile(fs.path.join(projectDir, "operate.json"), `${JSON.stringify(operateJson, null, 2)}
1378
1391
  `);
1379
- await fs.writeFile(fs.path.join(projectDir, "entry-points.json"), `${JSON.stringify(entryPointsJson, null, 2)}
1392
+ if (entryPointsJson !== undefined) {
1393
+ await fs.writeFile(entryPointsPath, `${JSON.stringify(entryPointsJson, null, 2)}
1380
1394
  `);
1395
+ }
1381
1396
  await fs.writeFile(fs.path.join(projectDir, "bindings_v2.json"), `${JSON.stringify(bindingsJson, null, 2)}
1382
1397
  `);
1383
1398
  await fs.writeFile(fs.path.join(projectDir, "package-descriptor.json"), `${JSON.stringify(packageDescriptorJson, null, 2)}
1384
1399
  `);
1385
- const casePlanPath = fs.path.join(projectDir, CASE_PLAN_FILENAME);
1386
- const casePlanExists = await fs.exists(casePlanPath);
1387
- if (!casePlanExists) {
1388
- await fs.writeFile(casePlanPath, `${JSON.stringify(buildMinimalCaseDocument({
1400
+ const newCasePlan = async () => {
1401
+ const document = buildMinimalCaseDocument({
1389
1402
  name,
1390
- schemaVersion: await resolveCaseSchemaVersion()
1391
- }), null, 4)}
1403
+ schemaVersion: await resolveCaseSchemaWriteVersion()
1404
+ });
1405
+ if ("write" in entryPoints) {
1406
+ const [{ entryPointIdsByNode }, { stampEntryPointIds }] = await Promise.all([
1407
+ import("./case-event-trigger-bindings-g9ftnm4x.js"),
1408
+ import("./trigger-entry-point-id-yhqwnkx9.js")
1409
+ ]);
1410
+ stampEntryPointIds(document, entryPointIdsByNode({ entryPoints: entryPoints.write }));
1411
+ }
1412
+ return document;
1413
+ };
1414
+ if (!casePlanExists) {
1415
+ await fs.writeFile(casePlanPath, `${JSON.stringify(await newCasePlan(), null, 4)}
1392
1416
  `);
1393
1417
  }
1394
1418
  const solutionRegistration = await tryRegisterProjectInParentSolution(fs, projectDir, { skipRegistration: options.skipSolutionRegistration === true });
1395
1419
  let projectArtifacts;
1396
1420
  if ((solutionRegistration.Status === "Registered" || solutionRegistration.Status === "AlreadyRegistered") && solutionRegistration.Solution && solutionRegistration.ProjectId) {
1397
- const { ensureProjectArtifacts } = await import("./project-artifacts-rng5m6r2.js");
1421
+ const { ensureProjectArtifacts } = await import("./project-artifacts-bgyyb0dm.js");
1398
1422
  projectArtifacts = await ensureProjectArtifacts({
1399
1423
  solutionDir: fs.path.dirname(solutionRegistration.Solution),
1400
1424
  projectId: solutionRegistration.ProjectId,
@@ -1449,8 +1473,8 @@ var registerInstancesCommand = (program) => {
1449
1473
  };
1450
1474
 
1451
1475
  // src/commands/job.ts
1452
- var loadAuth = () => import("./index-j2r3jb6c.js");
1453
- var loadCaseApi = () => import("./case-api-rvamfn02.js");
1476
+ var loadAuth = () => import("./index-xq6ajhgq.js");
1477
+ var loadCaseApi = () => import("./case-api-sme7esce.js");
1454
1478
  var CASE_JOB_STATUS_EXAMPLES = [
1455
1479
  {
1456
1480
  Description: "Get detailed status of a case job",
@@ -1696,7 +1720,7 @@ var CASE_PACK_EXAMPLES = [
1696
1720
  var registerPackCommand = (program) => {
1697
1721
  const command = program.command("pack").description("Pack a Case project into a .nupkg file").argument("<project-path>", "Path to the Case project directory").argument("<output-path>", "Output directory where the .nupkg will be saved").option("-n, --name <name>", "Package name (default: project folder name)").option("-v, --version <version>", "Package version (default: 1.0.0)", "1.0.0");
1698
1722
  registerPackageMetadataOptions(command).examples(CASE_PACK_EXAMPLES).trackedAction(processContext, async (projectPath, outputPath, options) => {
1699
- const { CasePackService } = await import("./case-pack-service-9185h6ez.js");
1723
+ const { CasePackService } = await import("./case-pack-service-pqq8wnfd.js");
1700
1724
  const service = new CasePackService;
1701
1725
  const [error, result] = await catchError(service.execute(projectPath, {
1702
1726
  output: outputPath,
@@ -1778,8 +1802,8 @@ var CASE_PROCESS_RUN_EXAMPLES = [
1778
1802
  }
1779
1803
  }
1780
1804
  ];
1781
- var loadAuth2 = () => import("./index-j2r3jb6c.js");
1782
- var loadCaseApi2 = () => import("./case-api-rvamfn02.js");
1805
+ var loadAuth2 = () => import("./index-xq6ajhgq.js");
1806
+ var loadCaseApi2 = () => import("./case-api-sme7esce.js");
1783
1807
  function registerProcessCommand(program) {
1784
1808
  const processCmd = program.command("process").description("Manage Case processes");
1785
1809
  registerSharedProcessCommands(processCmd, { toolLabel: "Case" });
@@ -2017,7 +2041,7 @@ function registerProcessCommand(program) {
2017
2041
  }
2018
2042
  inputs = parsed;
2019
2043
  } else {
2020
- const { readStdin } = await import("./input-reader-1tcqt27f.js");
2044
+ const { readStdin } = await import("./input-reader-c7wz8ra2.js");
2021
2045
  const [stdinError, stdinData] = await catchError(readStdin());
2022
2046
  if (!stdinError && stdinData) {
2023
2047
  const [parseError, parsed] = await catchError(parseCaseInputs(stdinData));
@@ -2320,6 +2344,18 @@ var REGISTRY_GET_CONNECTION_EXAMPLES = [
2320
2344
  }
2321
2345
  }
2322
2346
  ];
2347
+ async function reportSearchError(error) {
2348
+ const details = await extractErrorDetails(error);
2349
+ OutputFormatter.error({
2350
+ Result: RESULTS.Failure,
2351
+ Message: "Error searching resources",
2352
+ Instructions: details.message,
2353
+ ErrorCode: details.errorCode,
2354
+ Retry: details.retry,
2355
+ Context: details.context
2356
+ });
2357
+ processContext.exit(1);
2358
+ }
2323
2359
  var registerRegistryCommand = (program) => {
2324
2360
  const registry = program.command("registry").description("Manage the Case management registry").addHelpText("after", `
2325
2361
  Typical workflow:
@@ -2333,7 +2369,7 @@ Subcommands:
2333
2369
  search Find resources by keyword and/or field filters
2334
2370
  get Get full schema for a single resource`);
2335
2371
  registry.command("pull").description("Pull and sync data from Case registry").option("-f, --force", "Force refresh, ignore cache").option("-s, --solution-id <solutionId>", "Include the registry of the solution").examples(REGISTRY_PULL_EXAMPLES).trackedAction(processContext, async (options) => {
2336
- const { pullResources } = await import("./resourcesSyncService-zwjyp1qx.js");
2372
+ const { pullResources } = await import("./resourcesSyncService-d302jnap.js");
2337
2373
  const [mapError, promises] = catchError(() => RESOURCE_TYPES.map((type) => pullResources({
2338
2374
  force: options.force,
2339
2375
  solutionId: options.solutionId
@@ -2385,7 +2421,7 @@ Subcommands:
2385
2421
  processContext.exit(1);
2386
2422
  return;
2387
2423
  }
2388
- const { searchResources, searchResourcesWithFilters } = await import("./resourcesSyncService-zwjyp1qx.js");
2424
+ const { searchResources, searchResourcesWithFilters } = await import("./resourcesSyncService-d302jnap.js");
2389
2425
  let searchResult;
2390
2426
  if (options.filter) {
2391
2427
  const [parseError, filters] = catchError(() => parseFilterString(options.filter));
@@ -2402,12 +2438,7 @@ Subcommands:
2402
2438
  local: options.local
2403
2439
  }));
2404
2440
  if (searchError) {
2405
- OutputFormatter.error({
2406
- Result: RESULTS.Failure,
2407
- Message: "Error searching resources",
2408
- Instructions: searchError.message
2409
- });
2410
- processContext.exit(1);
2441
+ await reportSearchError(searchError);
2411
2442
  return;
2412
2443
  }
2413
2444
  searchResult = searchResults;
@@ -2416,12 +2447,7 @@ Subcommands:
2416
2447
  local: options.local
2417
2448
  }));
2418
2449
  if (searchError) {
2419
- OutputFormatter.error({
2420
- Result: RESULTS.Failure,
2421
- Message: "Error searching resources",
2422
- Instructions: searchError.message
2423
- });
2424
- processContext.exit(1);
2450
+ await reportSearchError(searchError);
2425
2451
  return;
2426
2452
  }
2427
2453
  searchResult = searchResults;
@@ -2443,7 +2469,7 @@ Subcommands:
2443
2469
  });
2444
2470
  });
2445
2471
  registry.command("list").description("List all resources (use pull to update list)").option("--local", "List only in-solution sibling project resources (requires a .uipx in the current directory, its parent, or grandparent). Skips the tenant cache.").examples(REGISTRY_LIST_EXAMPLES).trackedAction(processContext, async (options) => {
2446
- const { listLocalResources, listResources } = await import("./resourcesSyncService-zwjyp1qx.js");
2472
+ const { listLocalResources, listResources } = await import("./resourcesSyncService-d302jnap.js");
2447
2473
  let grouped;
2448
2474
  if (options.local) {
2449
2475
  const [localError, localGrouped] = await catchError(listLocalResources());
@@ -2490,7 +2516,7 @@ Subcommands:
2490
2516
  });
2491
2517
  });
2492
2518
  registry.command("get").description("Get resource(s) by identifier (entityKey or id)").argument("<identifier>", "The entityKey (process-types) or id (action-apps) of the resource").addOption(new Option("-t, --type <type>", `Limit search to a specific resource type (${GET_SEARCHABLE_TYPES.map((t) => t.type).join(", ")})`).choices(GET_SEARCHABLE_TYPES.map((t) => t.type))).option("--connection-id <id>", "Connection ID for connector-specific IS field metadata (custom fields). Only applies to typecache-* activity / trigger results.").option("--local", "Resolve the identifier against in-solution sibling project resources (requires a .uipx in the current directory, its parent, or grandparent). Skips the tenant cache. The identifier is the sibling's resource key or .uipx project Id.").examples(REGISTRY_GET_EXAMPLES).trackedAction(processContext, async (identifier, options) => {
2493
- const { getResources } = await import("./resourcesSyncService-zwjyp1qx.js");
2519
+ const { getResources } = await import("./resourcesSyncService-d302jnap.js");
2494
2520
  const [error, matches] = await catchError(getResources(identifier, options.type, {
2495
2521
  local: options.local
2496
2522
  }));
@@ -2527,11 +2553,11 @@ Subcommands:
2527
2553
  const id = m.resource.uiPathActivityTypeId;
2528
2554
  if (typeof id !== "string")
2529
2555
  return m;
2530
- const { lookupTypeCacheEntry } = await import("./connector-lookup-service-whgjceyj.js");
2556
+ const { lookupTypeCacheEntry } = await import("./connector-lookup-service-dwv8q5eh.js");
2531
2557
  const [lookupError, lookupResult] = await catchError(lookupTypeCacheEntry(id, m.resourceType));
2532
2558
  if (lookupError)
2533
2559
  return m;
2534
- const { enrichConnectorRegistryEntry } = await import("./connector-enrichment-service-hfv0kwht.js");
2560
+ const { enrichConnectorRegistryEntry } = await import("./connector-enrichment-service-crqs2216.js");
2535
2561
  const [enrichError, definitions] = await catchError(enrichConnectorRegistryEntry(lookupResult.config, options.connectionId));
2536
2562
  if (enrichError || definitions === null)
2537
2563
  return m;
@@ -2557,7 +2583,7 @@ Subcommands:
2557
2583
  });
2558
2584
  });
2559
2585
  registry.command("get-connector").description(`Look up a connector activity/trigger from the local TypeCache index. ${OUTPUT_CASING_HINT}`).addOption(new Option("-t, --type <type>", "Resource type").choices([...TYPECACHE_INDEX_TYPES]).makeOptionMandatory()).requiredOption("--activity-type-id <id>", "The uiPathActivityTypeId to look up").examples(REGISTRY_GET_CONNECTOR_EXAMPLES).trackedAction(processContext, async (options) => {
2560
- const { lookupTypeCacheEntry } = await import("./connector-lookup-service-whgjceyj.js");
2586
+ const { lookupTypeCacheEntry } = await import("./connector-lookup-service-dwv8q5eh.js");
2561
2587
  const [error, result] = await catchError(lookupTypeCacheEntry(options.activityTypeId, options.type));
2562
2588
  if (error) {
2563
2589
  OutputFormatter.error({
@@ -2578,7 +2604,7 @@ Subcommands:
2578
2604
  }, { preserveDataKeys: VERBATIM_REGISTRY_FIELDS });
2579
2605
  });
2580
2606
  registry.command("get-connection").description(`Look up a connector and fetch available connections from Integration Service. ${OUTPUT_CASING_HINT}`).addOption(new Option("-t, --type <type>", "Resource type").choices([...TYPECACHE_INDEX_TYPES]).makeOptionMandatory()).requiredOption("--activity-type-id <id>", "The uiPathActivityTypeId to look up").examples(REGISTRY_GET_CONNECTION_EXAMPLES).trackedAction(processContext, async (options) => {
2581
- const { fetchConnectorConnections, lookupTypeCacheEntry } = await import("./connector-lookup-service-whgjceyj.js");
2607
+ const { fetchConnectorConnections, lookupTypeCacheEntry } = await import("./connector-lookup-service-dwv8q5eh.js");
2582
2608
  const [lookupError, lookupResult] = await catchError(lookupTypeCacheEntry(options.activityTypeId, options.type));
2583
2609
  if (lookupError) {
2584
2610
  OutputFormatter.error({
@@ -2628,7 +2654,7 @@ var reportParseFailure = (file, error) => {
2628
2654
  ErrorCode: "invalid_argument",
2629
2655
  Retry: "RetryWillNotFix",
2630
2656
  Message: `Could not parse ${file}: ${error.message}`,
2631
- Instructions: "The document is read as Markdown. Check that its tables are well formed."
2657
+ Instructions: error.name === "SddNameCollisionError" ? `Rename one variable of each pair named above in ${file}, then run the command again.` : "The document is read as Markdown. Check that its tables are well formed."
2632
2658
  });
2633
2659
  processContext.exit(1);
2634
2660
  };
@@ -2686,12 +2712,12 @@ var SDD_RESOLVE_EXAMPLES = [
2686
2712
  var SDD_CONVERT_EXAMPLES = [
2687
2713
  {
2688
2714
  Description: "Emit a case plan from an SDD, and list what the SDD does not determine",
2689
- Command: "uip maestro case sdd convert sdd.md --out caseplan.json",
2715
+ Command: "uip maestro case sdd convert sdd.md --out caseplan.case",
2690
2716
  Output: {
2691
2717
  Code: "SddConvert",
2692
2718
  Data: {
2693
2719
  File: "sdd.md",
2694
- Out: "caseplan.json",
2720
+ Out: "caseplan.case",
2695
2721
  Derived: { stages: 8, tasks: 15, conditions: 11, variables: 0 },
2696
2722
  Unresolved: [
2697
2723
  {
@@ -2707,7 +2733,7 @@ var SDD_CONVERT_EXAMPLES = [
2707
2733
  var registerSddCommand = (program) => {
2708
2734
  const sdd = program.command("sdd").description("Read and inspect a Solution Design Document (sdd.md) — the document `validate --sdd` audits a case plan against.");
2709
2735
  sdd.command("parse").description("Print the structured model parsed out of an sdd.md, as JSON. Reads the document only: it audits nothing and needs no case plan. Fields under `intake` describe the read (row counts, whether a section was seen, parser notes) rather than the document.").argument("<file>", "Path to the sdd.md to read").examples(SDD_PARSE_EXAMPLES).trackedAction(processContext, async (file) => {
2710
- const { getFileSystemAsync } = await import("./index-hhsf00x8.js");
2736
+ const { getFileSystemAsync } = await import("./index-ngs0a2he.js");
2711
2737
  const fs = await getFileSystemAsync();
2712
2738
  if (!await fs.exists(file)) {
2713
2739
  OutputFormatter.error({
@@ -2725,7 +2751,7 @@ var registerSddCommand = (program) => {
2725
2751
  reportReadFailure(file, readError);
2726
2752
  return;
2727
2753
  }
2728
- const { parseSddToJson } = await import("./strict-sdd-audit-4aqdeh59.js");
2754
+ const { parseSddToJson } = await import("./strict-sdd-audit-q7tb9yj7.js");
2729
2755
  const [parseError, model] = catchError(() => parseSddToJson(text));
2730
2756
  if (parseError) {
2731
2757
  reportParseFailure(file, parseError);
@@ -2738,7 +2764,7 @@ var registerSddCommand = (program) => {
2738
2764
  }, { preserveDataKeys: ["model"] });
2739
2765
  });
2740
2766
  sdd.command("resolve").description("Resolve an sdd.md's task resources against the caches `registry pull` wrote. Does the part of the registry gate that has one right answer — which index a task type uses, the exact-name search, the folder narrowing — and reports the part that does not: a name matching several resources is left for a person to choose between, and a name matching none is grouped for one batched question. Reads caches only: no tenant, no network.").argument("<file>", "Path to the sdd.md to resolve").option("--out <file>", "Write the resolved file to this path instead of printing it").examples(SDD_RESOLVE_EXAMPLES).trackedAction(processContext, async (file, options) => {
2741
- const { getFileSystemAsync } = await import("./index-hhsf00x8.js");
2767
+ const { getFileSystemAsync } = await import("./index-ngs0a2he.js");
2742
2768
  const fs = await getFileSystemAsync();
2743
2769
  if (!await fs.exists(file)) {
2744
2770
  OutputFormatter.error({
@@ -2756,14 +2782,26 @@ var registerSddCommand = (program) => {
2756
2782
  reportReadFailure(file, readError);
2757
2783
  return;
2758
2784
  }
2759
- const { parseSddToJson } = await import("./strict-sdd-audit-4aqdeh59.js");
2760
- const { resolveSddResources } = await import("./sdd-resolve-service-mjqad2nn.js");
2785
+ const { parseSddToJson } = await import("./strict-sdd-audit-q7tb9yj7.js");
2786
+ const { resolveCacheFiles, resolveSddResources } = await import("./sdd-resolve-service-qdtmxw9b.js");
2787
+ const { loadSiblings } = await import("./sdd-resolve-siblings-6kfxc2t6.js");
2761
2788
  const [parseError, model] = catchError(() => parseSddToJson(text));
2762
2789
  if (parseError) {
2763
2790
  reportParseFailure(file, parseError);
2764
2791
  return;
2765
2792
  }
2766
- const result = await resolveSddResources(model);
2793
+ const [siblingError, siblings] = await catchError(loadSiblings(resolveCacheFiles()));
2794
+ if (siblingError) {
2795
+ OutputFormatter.error({
2796
+ Result: RESULTS.Failure,
2797
+ ErrorCode: "unknown_error",
2798
+ Message: `Could not read the solution's projects: ${siblingError.message}`,
2799
+ Instructions: "Check that the .uipx and its project folders are readable, or run outside the solution to resolve against the tenant caches only."
2800
+ });
2801
+ processContext.exit(1);
2802
+ return;
2803
+ }
2804
+ const result = await resolveSddResources(model, { siblings });
2767
2805
  const counts = {
2768
2806
  tasks: result.resolved.length,
2769
2807
  selected: result.resolved.filter((one) => one.selected !== null).length,
@@ -2789,7 +2827,7 @@ var registerSddCommand = (program) => {
2789
2827
  return;
2790
2828
  }
2791
2829
  }
2792
- const { staleCacheWarning } = await import("./sdd-resolve-service-mjqad2nn.js");
2830
+ const { staleCacheWarning } = await import("./sdd-resolve-service-qdtmxw9b.js");
2793
2831
  const warnings = [
2794
2832
  ...result.scope.missingIndexes.map((missing) => `The \`${missing}\` index is not pulled, so tasks needing it were not searched. Run \`uip maestro case registry pull\`.`),
2795
2833
  staleCacheWarning(result.scope.cache)
@@ -2826,7 +2864,7 @@ var registerSddCommand = (program) => {
2826
2864
  });
2827
2865
  });
2828
2866
  sdd.command("convert").description("Emit a case plan from an sdd.md. Writes only what the document determines and reports what it does not — a resource that has to be resolved against a tenant, a cross-task reference, a connector's connection. The result is checked with `case validate`, not here.").argument("<file>", "Path to the sdd.md to convert").option("--out <file>", "Write the case plan to this path instead of printing it").option("--resolved <file>", "Read a `sdd resolve` file and use it to fill a resource name or folder the document left out").examples(SDD_CONVERT_EXAMPLES).trackedAction(processContext, async (file, options) => {
2829
- const { getFileSystemAsync } = await import("./index-hhsf00x8.js");
2867
+ const { getFileSystemAsync } = await import("./index-ngs0a2he.js");
2830
2868
  const fs = await getFileSystemAsync();
2831
2869
  if (!await fs.exists(file)) {
2832
2870
  OutputFormatter.error({
@@ -2844,8 +2882,8 @@ var registerSddCommand = (program) => {
2844
2882
  reportReadFailure(file, readError);
2845
2883
  return;
2846
2884
  }
2847
- const { parseSddToJson } = await import("./strict-sdd-audit-4aqdeh59.js");
2848
- const { convertSddToCasePlan } = await import("./sdd-convert-service-vf0ps358.js");
2885
+ const { parseSddToJson } = await import("./strict-sdd-audit-q7tb9yj7.js");
2886
+ const { convertSddToCasePlan } = await import("./sdd-convert-service-8jpew7vz.js");
2849
2887
  let resolved;
2850
2888
  let resolvedEntries = [];
2851
2889
  if (options.resolved !== undefined) {
@@ -2909,7 +2947,7 @@ var registerSddCommand = (program) => {
2909
2947
  processContext.exit(1);
2910
2948
  return;
2911
2949
  }
2912
- const { isDeferredEntry } = await import("./resolved-check-p99hysaw.js");
2950
+ const { isDeferredEntry } = await import("./resolved-check-aqw7568y.js");
2913
2951
  const deferred = new Set;
2914
2952
  for (const entry of entries ?? []) {
2915
2953
  if (isDeferredEntry(entry)) {
@@ -2935,7 +2973,7 @@ var registerSddCommand = (program) => {
2935
2973
  reportParseFailure(file, parseError);
2936
2974
  return;
2937
2975
  }
2938
- const { staleResolvedEntry } = await import("./resolved-check-p99hysaw.js");
2976
+ const { staleResolvedEntry } = await import("./resolved-check-aqw7568y.js");
2939
2977
  const stale = staleResolvedEntry(model, resolvedEntries);
2940
2978
  if (stale !== undefined) {
2941
2979
  OutputFormatter.error({
@@ -2952,14 +2990,18 @@ var registerSddCommand = (program) => {
2952
2990
  const fallback = fromFile === "" ? "case" : fromFile;
2953
2991
  const result = convertSddToCasePlan(model, {
2954
2992
  name: model.caseName ?? fallback,
2955
- schemaVersion: await resolveCaseSchemaVersion(),
2993
+ schemaVersion: await resolveCaseSchemaWriteVersion(),
2956
2994
  ...model.caseDescription !== undefined && {
2957
2995
  description: model.caseDescription
2958
2996
  },
2959
2997
  ...resolved !== undefined && { resolved }
2960
2998
  });
2961
2999
  if (options.out !== undefined) {
2962
- const { correctedConvert, projectsBelowOut } = await import("./out-target-jakehnd3.js");
3000
+ const {
3001
+ correctedConvert,
3002
+ otherPlanInProject,
3003
+ projectsBelowOut
3004
+ } = await import("./out-target-wjgmna0r.js");
2963
3005
  const meant = await projectsBelowOut(fs, options.out);
2964
3006
  if (meant.length > 0) {
2965
3007
  const corrected = meant.length === 1 ? correctedConvert(file, meant[0], options.resolved) : undefined;
@@ -2968,7 +3010,57 @@ var registerSddCommand = (program) => {
2968
3010
  ErrorCode: "invalid_argument",
2969
3011
  Retry: "RetryWillNotFix",
2970
3012
  Message: `${options.out} is not in a case project, and the folder holding it contains ${meant.length === 1 ? "one" : `${meant.length}`}: ${meant.join(", ")}. Writing here leaves a second case plan beside the project's.`,
2971
- Instructions: meant.length === 1 ? corrected === undefined ? `Pass \`--out\` as ${meant[0]}, the caseplan.json inside the project.` : `Write into the project: \`${corrected}\`.` : `Pass \`--out\` as the caseplan.json path inside the project you mean — one of ${meant.join(", ")}.`
3013
+ Instructions: meant.length === 1 ? corrected === undefined ? `Pass \`--out\` as ${meant[0]}, the ${fs.path.basename(meant[0])} inside the project.` : `Write into the project: \`${corrected}\`.` : `Pass \`--out\` as the case plan inside the project you mean — one of ${meant.join(", ")}.`
3014
+ });
3015
+ processContext.exit(1);
3016
+ return;
3017
+ }
3018
+ const [listError, plan] = await catchError(otherPlanInProject(fs, options.out));
3019
+ if (listError) {
3020
+ OutputFormatter.error({
3021
+ Result: RESULTS.Failure,
3022
+ ErrorCode: "unknown_error",
3023
+ Retry: "RetryWillNotFix",
3024
+ Message: listError.message,
3025
+ Instructions: `Make the project folder readable and its project.uiproj readable, valid JSON, so convert can see which plan it holds, then re-run. ${options.out} was not written.`
3026
+ });
3027
+ processContext.exit(1);
3028
+ return;
3029
+ }
3030
+ if (plan !== undefined) {
3031
+ const corrected = correctedConvert(file, plan, options.resolved);
3032
+ OutputFormatter.error({
3033
+ Result: RESULTS.Failure,
3034
+ ErrorCode: "invalid_argument",
3035
+ Retry: "RetryWillNotFix",
3036
+ Message: `${options.out} is in a case project whose plan is ${plan}. \`pack\` reads ${fs.path.basename(plan)}, so writing here leaves a second case plan it never reads.`,
3037
+ Instructions: corrected === undefined ? `Pass \`--out\` as ${plan}, the project's own plan.` : `Write the project's own plan: \`${corrected}\`.`
3038
+ });
3039
+ processContext.exit(1);
3040
+ return;
3041
+ }
3042
+ const { stampFromEntryPointsBeside } = await import("./trigger-entry-point-id-yhqwnkx9.js");
3043
+ const stamped = await stampFromEntryPointsBeside(result.document, options.out);
3044
+ if ("error" in stamped) {
3045
+ OutputFormatter.error({
3046
+ Result: RESULTS.Failure,
3047
+ ErrorCode: "unknown_error",
3048
+ Retry: "RetryWillNotFix",
3049
+ Message: stamped.error,
3050
+ Instructions: `Fix or remove the project's entry-points.json, then re-run. ${options.out} was not written: its triggers take their entryPointId from that file.`
3051
+ });
3052
+ processContext.exit(1);
3053
+ return;
3054
+ }
3055
+ const { carryCanvasNotesFrom } = await import("./canvas-notes-86fxx1t8.js");
3056
+ const carried = await carryCanvasNotesFrom(result.document, options.out, result.unresolved);
3057
+ if (typeof carried !== "number") {
3058
+ OutputFormatter.error({
3059
+ Result: RESULTS.Failure,
3060
+ ErrorCode: "unknown_error",
3061
+ Retry: "RetryWillNotFix",
3062
+ Message: carried.error,
3063
+ Instructions: `Fix ${options.out}, or move it aside to convert from scratch, then re-run. ${options.out} was not written: its sticky notes may hold edits made in the Case Designer.`
2972
3064
  });
2973
3065
  processContext.exit(1);
2974
3066
  return;
@@ -3686,7 +3778,8 @@ var registerSlaCommand = (program) => {
3686
3778
  var VERBATIM_SPEC_FIELDS = [
3687
3779
  "caseShape",
3688
3780
  "typecacheEntry",
3689
- "essentialConfiguration"
3781
+ "essentialConfiguration",
3782
+ "resourceBindings"
3690
3783
  ];
3691
3784
  var SPEC_EXAMPLES = [
3692
3785
  {
@@ -3744,7 +3837,7 @@ var SPEC_EXAMPLES = [
3744
3837
  }
3745
3838
  ];
3746
3839
  var registerSpecCommand = (program) => {
3747
- program.command("spec").description(`Generate a normalized ConnectorTaskSpec — a one-stop description of everything a consumer needs to construct a runnable Integration Service activity or trigger task. Looks up the typeId in the local TypeCache, lists IS connections for the connector, and fetches IS metadata. ${OUTPUT_CASING_HINT}`).addOption(new Option("--type <type>", "TypeCache to look up").choices(["activity", "trigger"]).makeOptionMandatory()).requiredOption("--activity-type-id <uuid>", "Studio Web uiPathActivityTypeId — found via 'uip maestro case registry pull' + reading typecache-{activities,triggers}-index.json or 'uip maestro case registry get-connector'").requiredOption("--connection-id <id>", "Connection UUID. List candidates with `uip maestro case registry get-connection --type typecache-{activities,triggers} --activity-type-id <uuid>` and pick one before invoking spec.").option("--object-name <name>", "Override the typecache objectName. Required for entity-typed Curated triggers whose typecache stores a placeholder (e.g. Data Service `{tenantEntityName|folderEntityName}` — pick a real entity name).").addOption(new Option("--trigger-kind <kind>", "With --type trigger: 'start' for a case start trigger (Intsvc.EventTrigger on a trigger node, runtime type CuratedTrigger) or 'wait-for' for a wait-for-connector task or condition rule (runtime type CuratedWaitFor). Ignored for --type activity.").choices(["start", "wait-for"]).default("wait-for")).option("--skip-case-shape", "Omit `caseShape` (`inputs[]`, `outputs[]`, `context[]`) from the response. Use during the planning phase when the caller only needs the connector contract (`inputs.*[?required]`, `references[*].discoverCommand`, `outputs.responseFields`). Re-run without the flag during implementation to get the full caseShape scaffold. Mutually exclusive with --input-details.").option("--input-details <json>", "JSON values to fold into the generated `caseShape`. Activity accepts {bodyParameters, queryParameters, pathParameters, filter}; trigger accepts {eventParameters, queryParameters, pathParameters, filter}. See `packages/case-tool/docs/spec-input-details.md` for the full reference. Mutually exclusive with --skip-case-shape.").examples(SPEC_EXAMPLES).trackedAction(processContext, async (options) => {
3840
+ program.command("spec").description(`Generate a normalized ConnectorTaskSpec — a one-stop description of everything a consumer needs to construct a runnable Integration Service activity or trigger task. Looks up the typeId in the local TypeCache, lists IS connections for the connector, and fetches IS metadata. ${OUTPUT_CASING_HINT}`).addOption(new Option("--type <type>", "TypeCache to look up").choices(["activity", "trigger"]).makeOptionMandatory()).requiredOption("--activity-type-id <uuid>", "Studio Web uiPathActivityTypeId — found via 'uip maestro case registry pull' + reading typecache-{activities,triggers}-index.json or 'uip maestro case registry get-connector'").requiredOption("--connection-id <id>", "Connection UUID. List candidates with `uip maestro case registry get-connection --type typecache-{activities,triggers} --activity-type-id <uuid>` and pick one before invoking spec.").option("--object-name <name>", "Override the typecache objectName. Required for entity-typed Curated triggers whose typecache stores a placeholder (e.g. Data Service `{tenantEntityName|folderEntityName}` — pick a real entity name).").addOption(new Option("--trigger-kind <kind>", "With --type trigger: 'start' for a case start trigger (Intsvc.EventTrigger on a trigger node, runtime type CuratedTrigger) or 'wait-for' for a wait-for-connector task or condition rule (runtime type CuratedWaitFor). Ignored for --type activity.").choices(["start", "wait-for"]).default("wait-for")).option("--skip-case-shape", "Omit `caseShape` (`inputs[]`, `outputs[]`, `context[]`) from the response. Use during the planning phase when the caller only needs the connector contract (`inputs.*[?required]`, `references[*].discoverCommand`, `outputs.responseFields`). Re-run without the flag during implementation to get the full caseShape scaffold. Mutually exclusive with --input-details.").option("--input-details <json>", "JSON values to fold into the generated `caseShape`. Activity accepts {bodyParameters, queryParameters, pathParameters, filter}; trigger accepts {eventParameters, queryParameters, pathParameters, filter}. See `packages/case-tool/docs/spec-input-details.md` for the full reference. Mutually exclusive with --skip-case-shape.").option("--solution-folder <path>", "Solution root that resource-picker values (such as a Data Fabric entity) in --input-details are referenced into. Defaults to the solution containing the current folder.").examples(SPEC_EXAMPLES).trackedAction(processContext, async (options) => {
3748
3841
  logger.info(`Fetching ${options.type} spec for typeId ${options.activityTypeId} (connection: ${options.connectionId})`);
3749
3842
  let parsedInputDetails;
3750
3843
  if (options.inputDetails !== undefined) {
@@ -3773,9 +3866,10 @@ var registerSpecCommand = (program) => {
3773
3866
  objectNameOverride: options.objectName,
3774
3867
  skipCaseShape: options.skipCaseShape === true,
3775
3868
  triggerKind: options.triggerKind,
3869
+ solutionFolder: options.solutionFolder,
3776
3870
  inputDetails: parsedInputDetails
3777
3871
  };
3778
- const { fetchConnectorTaskSpec } = await import("./connector-task-spec-k0cwavrm.js");
3872
+ const { fetchConnectorTaskSpec } = await import("./connector-task-spec-trs4tcb3.js");
3779
3873
  const [error, spec] = await catchError(fetchConnectorTaskSpec(options.type, options.activityTypeId, options.connectionId, fetchOpts));
3780
3874
  if (error) {
3781
3875
  OutputFormatter.error({
@@ -3820,7 +3914,7 @@ var SPLICE_EXAMPLES = [
3820
3914
  ];
3821
3915
  var registerSpliceCommand = (program) => {
3822
3916
  program.command("splice").description("Write a connector task's `caseShape` from a `case spec` result into the task that runs it: `data.context` with the binding references resolved, `data.inputs`/`data.outputs` with their ids minted, the matching `serviceType`, and the connection's root bindings. Does the transport by hand-carrying nothing — the shape comes from the spec, the bindings from the binding builder, the service type from the task's own type. Offline: it reads the spec you hand it and never fetches one.").argument("<file>", "Path to the case plan to splice into").option("--task-id <task-id>", "Id of the connector task to write into, from `nodes[].data.tasks[][].id`. Pass this or --task-name.").option("--task-name <task-name>", "Display name of the task to write into, exactly as the plan spells it — same case and spacing, the way the SDD audit compares it. Pass this or --task-id.").option("--described <file>", "A `uip maestro case tasks describe` result saved as JSON. Writes a resource task's inputs and outputs from the resource's own contract — types, schemas and options — keeping the ids the plan already carries. Use instead of --spec for a process, rpa, business-rule, api-workflow, agent, action, function or child-case task.").option("--spec <file>", "A `uip maestro case spec` result saved as JSON — the envelope as written, `Data.CaseShape` and all. A bare shape or an older PascalCased save is read too. Must carry the shape: run spec without `--skip-case-shape`.").option("--connection-id <id>", "Connection UUID the task runs against. Optional: it defaults to the connection the spec was fetched for, which the spec's own `caseShape.context.resourceKey` states. Pass it to override, and a value that disagrees with the spec is refused. The root bindings are keyed on it, so splicing twice for the same connection reuses them rather than appending a second pair.").option("--folder-key <key>", "Folder key for the connection. Optional: it defaults to the folder the spec's own `Data.Connection.FolderKey` states, and a value that disagrees with the spec is refused. When the connection has no folder, `case spec` returns a shape with no `folderKey` entry, and this drops any folder binding left over for that connection rather than leaving one with no `default`. If the shape asks for a folder binding and neither this nor the spec gives one, that is refused rather than written.").option("--out <file>", "Write the spliced plan here instead of in place").examples(SPLICE_EXAMPLES).trackedAction(processContext, async (file, options) => {
3823
- const { getFileSystemAsync } = await import("./index-hhsf00x8.js");
3917
+ const { getFileSystemAsync } = await import("./index-ngs0a2he.js");
3824
3918
  const fs = await getFileSystemAsync();
3825
3919
  const mode = options.described !== undefined ? "described" : "spec";
3826
3920
  if (options.described === undefined === (options.spec === undefined)) {
@@ -3887,7 +3981,7 @@ var registerSpliceCommand = (program) => {
3887
3981
  }
3888
3982
  const taskId = selected.id;
3889
3983
  if (mode === "described") {
3890
- const { applyDescribedIo, isDescribedIoFailure } = await import("./case-described-io-service-14hdnqcc.js");
3984
+ const { applyDescribedIo, isDescribedIoFailure } = await import("./case-described-io-service-dx1f4nxe.js");
3891
3985
  const applied = applyDescribedIo(plan, specDocument, {
3892
3986
  taskId
3893
3987
  });
@@ -3915,14 +4009,15 @@ var registerSpliceCommand = (program) => {
3915
4009
  TaskId: applied.summary.taskId,
3916
4010
  InputsUpdated: applied.summary.inputsUpdated,
3917
4011
  OutputsUpdated: applied.summary.outputsUpdated,
3918
- Unmatched: applied.summary.unmatched
4012
+ Unmatched: applied.summary.unmatched,
4013
+ Skipped: applied.summary.skipped
3919
4014
  },
3920
4015
  NextSteps: "Run `uip maestro case validate <file> --strict` to check the task."
3921
4016
  }
3922
4017
  });
3923
4018
  return;
3924
4019
  }
3925
- const { readCaseShape, readSpecFolderKey } = await import("./case-shape-reader-mw58avr0.js");
4020
+ const { readCaseShape, readSpecFolderKey } = await import("./case-shape-reader-dsbraetf.js");
3926
4021
  const caseShape = readCaseShape(specDocument);
3927
4022
  if (caseShape === undefined) {
3928
4023
  OutputFormatter.error({
@@ -3935,7 +4030,7 @@ var registerSpliceCommand = (program) => {
3935
4030
  processContext.exit(1);
3936
4031
  return;
3937
4032
  }
3938
- const { spliceConnectorShape, isSpliceFailure } = await import("./case-splice-service-tkmb7xjp.js");
4033
+ const { spliceConnectorShape, isSpliceFailure } = await import("./case-splice-service-s5gccctq.js");
3939
4034
  const result = spliceConnectorShape(plan, caseShape, {
3940
4035
  taskId,
3941
4036
  connectionId: options.connectionId,
@@ -3953,6 +4048,8 @@ var registerSpliceCommand = (program) => {
3953
4048
  processContext.exit(1);
3954
4049
  return;
3955
4050
  }
4051
+ const { designerShapeConnectorTasks } = await import("./connector-task-shape-mpazkf7s.js");
4052
+ designerShapeConnectorTasks(result.document, (task) => task.id === taskId);
3956
4053
  const target = options.out ?? file;
3957
4054
  await fs.writeFile(target, `${JSON.stringify(result.document, null, 4)}
3958
4055
  `);
@@ -5088,6 +5185,30 @@ var registerStagesCommand = (program) => {
5088
5185
  };
5089
5186
 
5090
5187
  // src/commands/sticky-notes.ts
5188
+ var STICKY_NOTES_GET_EXAMPLES = [
5189
+ {
5190
+ Description: "Read one sticky note on the case canvas",
5191
+ Command: "uip maestro case sticky-notes get caseplan.case StickyNote_a1b2c3",
5192
+ Output: {
5193
+ Code: "StickyNoteFound",
5194
+ Data: {
5195
+ StickyNote: {
5196
+ Id: "StickyNote_a1b2c3",
5197
+ Type: "case-management:StickyNote",
5198
+ Position: { X: 400, Y: 120 },
5199
+ Data: {
5200
+ ParentElement: {
5201
+ Id: "root",
5202
+ Type: "case-management:root"
5203
+ },
5204
+ Color: "yellow",
5205
+ Content: "Confirm the breach SLA with ops."
5206
+ }
5207
+ }
5208
+ }
5209
+ }
5210
+ }
5211
+ ];
5091
5212
  function requireStickyNoteNode(schema, noteId) {
5092
5213
  const node = schema.nodes.find((n) => n.id === noteId);
5093
5214
  if (!node) {
@@ -5241,7 +5362,7 @@ var registerStickyNotesCommand = (program) => {
5241
5362
  }
5242
5363
  });
5243
5364
  });
5244
- stickyNotes.command("get").description("Print a sticky note from a case management definition").argument("<file>", "Path to the case management JSON file").argument("<note-id>", "ID of the sticky note to retrieve").trackedAction(processContext, async (file, noteId) => {
5365
+ stickyNotes.command("get").description("Print a sticky note from a case management definition").argument("<file>", "Path to the case management JSON file").argument("<note-id>", "ID of the sticky note to retrieve").examples(STICKY_NOTES_GET_EXAMPLES).trackedAction(processContext, async (file, noteId) => {
5245
5366
  const [readError, schema] = await catchError(readSchema(file));
5246
5367
  if (readError) {
5247
5368
  OutputFormatter.error({
@@ -5715,6 +5836,63 @@ var registerTaskEntryConditionsCommand = (program) => {
5715
5836
  });
5716
5837
  };
5717
5838
 
5839
+ // src/commands/task-types.ts
5840
+ var TASK_TYPES_LIST_EXAMPLES = [
5841
+ {
5842
+ Description: "List the task types an SDD may declare, the ones only Studio Web authors, and the spellings that are not task types",
5843
+ Command: "uip maestro case task-types list --output json",
5844
+ Output: {
5845
+ Code: "TaskTypeList",
5846
+ Data: {
5847
+ WriteSchemaVersion: "<the case plan schema version sdd convert stamps>",
5848
+ ReadSchemaVersion: "<the newest case plan schema version this CLI reads>",
5849
+ Authorable: [{ Type: "action" }, { Type: "wait-for-timer" }],
5850
+ StudioWebOnly: [{ Type: "script" }],
5851
+ NotTaskTypes: [
5852
+ {
5853
+ Spelling: "connector-activity",
5854
+ Layer: "uip maestro case tasks describe --type",
5855
+ PlanType: "execute-connector-activity"
5856
+ }
5857
+ ]
5858
+ }
5859
+ }
5860
+ }
5861
+ ];
5862
+ var caseSchemaVersions = async () => {
5863
+ const { resolveCaseSchemaVersion, resolveCaseSchemaWriteVersion: resolveCaseSchemaWriteVersion2 } = await import("./case-schema-version-h820ne16.js");
5864
+ const [writeSchemaVersion, readSchemaVersion] = await Promise.all([
5865
+ resolveCaseSchemaWriteVersion2(),
5866
+ resolveCaseSchemaVersion()
5867
+ ]);
5868
+ return { writeSchemaVersion, readSchemaVersion };
5869
+ };
5870
+ var registerTaskTypesCommand = (program, sources = { load: caseSchemaVersions }) => {
5871
+ const taskTypes = program.command("task-types").description("The case task types: which an SDD may declare, which only Studio Web authors, and which spellings are not task types.");
5872
+ taskTypes.command("list").description("List the case task types an SDD may declare (`Authorable`), the real types only Studio Web authors (`StudioWebOnly`), and spellings that name the right concept in another layer but are not task types (`NotTaskTypes`, each with the plan type to write). `WriteSchemaVersion` is what `sdd convert` stamps; `ReadSchemaVersion` is the newest a plan may declare and still validate. Reads nothing from the tenant.").examples(TASK_TYPES_LIST_EXAMPLES).trackedAction(processContext, async () => {
5873
+ const [error, declaration] = await catchError((async () => {
5874
+ const { taskTypeDeclaration } = await import("./task-type-declaration-7a8fqdvs.js");
5875
+ return taskTypeDeclaration(await sources.load());
5876
+ })());
5877
+ if (error) {
5878
+ OutputFormatter.error({
5879
+ Result: RESULTS.Failure,
5880
+ ErrorCode: "unknown_error",
5881
+ Retry: "RetryWillNotFix",
5882
+ Message: `Could not read the case schema versions: ${error.message}`,
5883
+ Instructions: "The installed case tool carries a broken schema package or floor file. Run `uip tools update maestro`, then re-run."
5884
+ });
5885
+ processContext.exit(1);
5886
+ return;
5887
+ }
5888
+ OutputFormatter.success({
5889
+ Result: RESULTS.Success,
5890
+ Code: "TaskTypeList",
5891
+ Data: declaration
5892
+ });
5893
+ });
5894
+ };
5895
+
5718
5896
  // src/commands/tasks.ts
5719
5897
  var TASKS_ADD_EXAMPLES = [
5720
5898
  {
@@ -5831,9 +6009,9 @@ var TASKS_DESCRIBE_EXAMPLES = [
5831
6009
  }
5832
6010
  }
5833
6011
  ];
5834
- var loadConnectorEnrichment = () => import("./connector-enrichment-service-hfv0kwht.js");
5835
- var loadTriggerEnrichment = () => import("./trigger-enrichment-service-g3vt051f.js");
5836
- var loadEnrichment = () => import("./enrichment-service-3f1kygjs.js");
6012
+ var loadConnectorEnrichment = () => import("./connector-enrichment-service-crqs2216.js");
6013
+ var loadTriggerEnrichment = () => import("./trigger-enrichment-service-sj0p2d1j.js");
6014
+ var loadEnrichment = () => import("./enrichment-service-hv7ff88p.js");
5837
6015
  var TASK_TYPES = [
5838
6016
  "process",
5839
6017
  "action",
@@ -5989,6 +6167,8 @@ async function saveConnectorTask(params) {
5989
6167
  const taskData = params.task.data;
5990
6168
  taskData.bindings = usedBindings;
5991
6169
  params.stageNode.data.tasks[params.laneIndex].push(params.task);
6170
+ const { designerConnectorShape } = await import("./connector-task-shape-mpazkf7s.js");
6171
+ designerConnectorShape(params.task);
5992
6172
  const [writeError] = await catchError(writeSchema(params.file, params.schema));
5993
6173
  if (writeError)
5994
6174
  throw writeError;
@@ -6092,7 +6272,11 @@ async function describeConnectorTrigger(id, connectionId) {
6092
6272
  async function describeEnrichableTask(type, id) {
6093
6273
  const { enrichTask } = await loadEnrichment();
6094
6274
  const result = await enrichTask(type, id);
6095
- return { inputs: result.inputs, outputs: result.outputs };
6275
+ return {
6276
+ inputs: result.inputs,
6277
+ outputs: result.outputs,
6278
+ ...result.version !== undefined && { version: result.version }
6279
+ };
6096
6280
  }
6097
6281
  async function runDescribeTask(options) {
6098
6282
  const normalizedType = options.type.toLowerCase();
@@ -6565,6 +6749,9 @@ var registerTasksCommand = (program) => {
6565
6749
  Data: {
6566
6750
  inputs: result.inputs,
6567
6751
  outputs: result.outputs,
6752
+ ...result.version !== undefined && {
6753
+ version: result.version
6754
+ },
6568
6755
  ...result.enrichment ? { enrichment: result.enrichment } : {}
6569
6756
  }
6570
6757
  }, { preserveDataKeys: VERBATIM_TASK_IO_FIELDS });
@@ -6868,7 +7055,7 @@ var registerTriggersCommand = (program) => {
6868
7055
  const result = await readAndBuildTrigger(file, options.displayName, options.position, options.description);
6869
7056
  if (result.error)
6870
7057
  return;
6871
- const { enrichConnectorTrigger } = await import("./trigger-enrichment-service-g3vt051f.js");
7058
+ const { enrichConnectorTrigger } = await import("./trigger-enrichment-service-sj0p2d1j.js");
6872
7059
  const [enrichError, enrichment] = await catchError(enrichConnectorTrigger("start", options.typeId, options.connectionId, parsedEventParams));
6873
7060
  if (enrichError) {
6874
7061
  OutputFormatter.error({
@@ -7001,11 +7188,11 @@ var toIssueData = (issues) => issues.map((issue) => ({
7001
7188
  Severity: issue.severity
7002
7189
  }));
7003
7190
  var suppressedAudit = async (file, shown) => {
7004
- const { findAdjacentSdd } = await import("./sdd-lookup-dwzpvvwn.js");
7191
+ const { findAdjacentSdd } = await import("./sdd-lookup-fe900sdb.js");
7005
7192
  const [lookupError, sdd] = await catchError(Promise.resolve(findAdjacentSdd(file)));
7006
7193
  if (lookupError || sdd === undefined)
7007
7194
  return;
7008
- const { CaseValidateService } = await import("./case-validate-service-c84e2bhv.js");
7195
+ const { CaseValidateService } = await import("./case-validate-service-rey6btew.js");
7009
7196
  const [auditError, audited] = await catchError(new CaseValidateService().validateFileUsingSDK(file, {
7010
7197
  profile: "strict",
7011
7198
  sddPath: sdd
@@ -7021,7 +7208,7 @@ var suppressedAudit = async (file, shown) => {
7021
7208
  };
7022
7209
  };
7023
7210
  var executeCaseValidate = async (file, options = {}) => {
7024
- const { CaseValidateService } = await import("./case-validate-service-c84e2bhv.js");
7211
+ const { CaseValidateService } = await import("./case-validate-service-rey6btew.js");
7025
7212
  const service = new CaseValidateService;
7026
7213
  const [error, result] = await catchError(service.validateFileUsingSDK(file, {
7027
7214
  profile: resolveProfile(options),
@@ -7354,8 +7541,8 @@ var DEPRECATED_CASE_AUTHORING_MUTATORS = [
7354
7541
  ["sla", "rules", "add"],
7355
7542
  ["sla", "rules", "remove"]
7356
7543
  ];
7357
- var DIRECT_EDIT_REPLACEMENT = "Edit caseplan.json directly, then run `uip maestro case validate <file>`." + " See the uipath-maestro-case skill (references/plugins/) for the stage and task JSON shapes.";
7358
- var EDGE_REPLACEMENT = "Keep caseplan.json edges as []; model transitions with stage entry/exit conditions, then run `uip maestro case validate <file>`." + " See the uipath-maestro-case skill (references/plugins/) for the stage and task JSON shapes.";
7544
+ var DIRECT_EDIT_REPLACEMENT = "Edit the case plan (caseplan.case, or caseplan.json in an older project) directly, then run `uip maestro case validate <file>`." + " See the uipath-maestro-case skill (references/plugins/) for the stage and task JSON shapes.";
7545
+ var EDGE_REPLACEMENT = "Keep the case plan's edges as []; model transitions with stage entry/exit conditions, then run `uip maestro case validate <file>`." + " See the uipath-maestro-case skill (references/plugins/) for the stage and task JSON shapes.";
7359
7546
  function findCommand(program, commandParts) {
7360
7547
  let parent = program;
7361
7548
  for (const part of commandParts) {
@@ -7412,7 +7599,7 @@ var metadata = {
7412
7599
  commandPrefix: "case"
7413
7600
  };
7414
7601
  var registerCommands = async (program) => {
7415
- const { registerCaseAuthoringCommands } = await import("./authoring-6ckkzfc9.js");
7602
+ const { registerCaseAuthoringCommands } = await import("./authoring-kqh34zzm.js");
7416
7603
  registerCaseAuthoringCommands(program);
7417
7604
  registerInitCommand(program);
7418
7605
  registerSddCommand(program);
@@ -7429,6 +7616,7 @@ var registerCommands = async (program) => {
7429
7616
  registerCasesCommand(program);
7430
7617
  registerStagesCommand(program);
7431
7618
  registerTasksCommand(program);
7619
+ registerTaskTypesCommand(program);
7432
7620
  registerSlaCommand(program);
7433
7621
  registerSpecCommand(program);
7434
7622
  registerSpliceCommand(program);
@@ -7446,4 +7634,4 @@ var registerCommands = async (program) => {
7446
7634
 
7447
7635
  export { metadata, registerCommands };
7448
7636
 
7449
- //# debugId=7FFA1FBAE112407464756E2164756E21
7637
+ //# debugId=3FBF33D826E0E6A264756E2164756E21