@uipath/maestro-builder-sdk 6.10.1 → 6.10.2

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.
@@ -187,16 +187,27 @@ export declare function candidateResolvesAllLine(label: string, lookups: number)
187
187
  export declare function candidateExhaustedLine(label: string, field: string, scanned: number): string;
188
188
  /** The terminal report's line for a candidate whose lookup failed for another reason: the error, verbatim. */
189
189
  export declare function candidateErrorLine(label: string, error: unknown): string;
190
+ /**
191
+ * The command that shows what a lookup's collection holds on one connection.
192
+ *
193
+ * Every refusal that ends in "check the value" carries it: the value the author
194
+ * wrote may be one the task never named (an invented Slack channel), and
195
+ * without this line the only way to learn the real values is to leave the
196
+ * documented loop. The skills eval customer-escalation dead-ended exactly
197
+ * there on 2026-09-25 (UiPath/flow-builder-sdk#817).
198
+ */
199
+ export declare function collectionListingHint(connectorKey: string, collection: string, connectionId: string): string;
190
200
  /**
191
201
  * An explicit `--connection-id` / `--connection` is the author's decision and
192
202
  * is not overridden. The alternatives are still named, because the whole cost
193
203
  * of this bug was not knowing they existed. `first` is the exhausted lookup's
194
- * own message; `others` the pasteable listing of the other candidates.
204
+ * own message; `others` the pasteable listing of the other candidates; `hint`
205
+ * the {@link collectionListingHint} for the pinned connection.
195
206
  */
196
- export declare function pinnedConnectionExhaustedMessage(first: string, connectorKey: string, othersCount: number, othersListing: string): string;
207
+ export declare function pinnedConnectionExhaustedMessage(first: string, connectorKey: string, othersCount: number, othersListing: string, hint: string): string;
197
208
  /** The listing of other connections itself failed; the original lookup failure is what the author asked about. */
198
209
  export declare function candidateListingFailedMessage(first: string, error: unknown): string;
199
- export declare function onlyConnectionMessage(first: string, connectorKey: string): string;
210
+ export declare function onlyConnectionMessage(first: string, connectorKey: string, hint: string): string;
200
211
  /** Two or more candidates resolve everything: reported, never chosen between. */
201
212
  export declare function severalConnectionsResolveMessage(count: number, connectorKey: string, listing: string): string;
202
213
  /**
@@ -443,13 +443,27 @@ export function candidateExhaustedLine(label, field, scanned) {
443
443
  export function candidateErrorLine(label, error) {
444
444
  return ` ${label} ${messageOf(error)}`;
445
445
  }
446
+ /**
447
+ * The command that shows what a lookup's collection holds on one connection.
448
+ *
449
+ * Every refusal that ends in "check the value" carries it: the value the author
450
+ * wrote may be one the task never named (an invented Slack channel), and
451
+ * without this line the only way to learn the real values is to leave the
452
+ * documented loop. The skills eval customer-escalation dead-ended exactly
453
+ * there on 2026-09-25 (UiPath/flow-builder-sdk#817).
454
+ */
455
+ export function collectionListingHint(connectorKey, collection, connectionId) {
456
+ return (`To see what ${pyRepr(collection)} holds on this connection:\n` +
457
+ ` uip is resources run list ${connectorKey} ${collection} --connection-id ${connectionId}`);
458
+ }
446
459
  /**
447
460
  * An explicit `--connection-id` / `--connection` is the author's decision and
448
461
  * is not overridden. The alternatives are still named, because the whole cost
449
462
  * of this bug was not knowing they existed. `first` is the exhausted lookup's
450
- * own message; `others` the pasteable listing of the other candidates.
463
+ * own message; `others` the pasteable listing of the other candidates; `hint`
464
+ * the {@link collectionListingHint} for the pinned connection.
451
465
  */
452
- export function pinnedConnectionExhaustedMessage(first, connectorKey, othersCount, othersListing) {
466
+ export function pinnedConnectionExhaustedMessage(first, connectorKey, othersCount, othersListing, hint) {
453
467
  let extra = "";
454
468
  if (othersCount > 0) {
455
469
  extra =
@@ -457,14 +471,16 @@ export function pinnedConnectionExhaustedMessage(first, connectorKey, othersCoun
457
471
  `${othersListing}\n` +
458
472
  "Re-run against one of those, or check the value. This run kept the connection you named.";
459
473
  }
460
- return `${PREFIX}${first}${extra}`;
474
+ return `${PREFIX}${first}${extra}\n${hint}`;
461
475
  }
462
476
  /** The listing of other connections itself failed; the original lookup failure is what the author asked about. */
463
477
  export function candidateListingFailedMessage(first, error) {
464
478
  return `${PREFIX}${first}\n(could not list other connections: ${messageOf(error)})`;
465
479
  }
466
- export function onlyConnectionMessage(first, connectorKey) {
467
- return (`${PREFIX}${first}\n` + `This is the only enabled ${connectorKey} connection on the tenant, so the value is what to check.`);
480
+ export function onlyConnectionMessage(first, connectorKey, hint) {
481
+ return (`${PREFIX}${first}\n` +
482
+ `This is the only enabled ${connectorKey} connection on the tenant, so the value is what to check.\n` +
483
+ hint);
468
484
  }
469
485
  /** Two or more candidates resolve everything: reported, never chosen between. */
470
486
  export function severalConnectionsResolveMessage(count, connectorKey, listing) {
@@ -484,9 +500,7 @@ export function noConnectionResolvesMessage(connectorKey, first, lines, connecti
484
500
  `${first.field}: ${first.by}=${pyRepr(first.value)}\n` +
485
501
  `${lines.join("\n")}\n` +
486
502
  "Every candidate was read to the end, so the value is what to check now. " +
487
- `To see what ${pyRepr(first.collection)} holds:\n` +
488
- ` uip is resources run list ${connectorKey} ${first.collection} ` +
489
- `--connection-id ${connectionId}`);
503
+ collectionListingHint(connectorKey, first.collection, connectionId));
490
504
  }
491
505
  // ---------------------------------------------------------------------------
492
506
  // The event path
@@ -1,5 +1,5 @@
1
1
  import { ConnectionRefusal, candidateConnections, candidateListing } from "./connections.js";
2
- import { PrepareRefusal, candidateErrorLine, candidateExhaustedLine, candidateLabel, candidateListingFailedMessage, candidateResolvesAllLine, noConnectionResolvesMessage, onlyConnectionMessage, pinnedConnectionExhaustedMessage, severalConnectionsResolveMessage, tryingOtherConnectionsLine, } from "./messages.js";
2
+ import { PrepareRefusal, candidateErrorLine, candidateExhaustedLine, candidateLabel, candidateListingFailedMessage, candidateResolvesAllLine, collectionListingHint, noConnectionResolvesMessage, onlyConnectionMessage, pinnedConnectionExhaustedMessage, severalConnectionsResolveMessage, tryingOtherConnectionsLine, } from "./messages.js";
3
3
  import { LookupExhausted, ResolutionRefusal, resolveOne } from "./resolve.js";
4
4
  import { pyGet, pyStrAny } from "./support.js";
5
5
  /**
@@ -61,7 +61,7 @@ export async function retryOtherConnections(ctx, plan, first) {
61
61
  throw error;
62
62
  throw new PrepareRefusal(candidateListingFailedMessage(first.message, error), "LOOKUP_EXHAUSTED_PINNED");
63
63
  }
64
- throw new PrepareRefusal(pinnedConnectionExhaustedMessage(first.message, ctx.connectorKey, others.length, candidateListing(others)), "LOOKUP_EXHAUSTED_PINNED");
64
+ throw new PrepareRefusal(pinnedConnectionExhaustedMessage(first.message, ctx.connectorKey, others.length, candidateListing(others), collectionListingHint(ctx.connectorKey, first.collection, ctx.connectionId)), "LOOKUP_EXHAUSTED_PINNED");
65
65
  }
66
66
  let candidates;
67
67
  try {
@@ -76,7 +76,7 @@ export async function retryOtherConnections(ctx, plan, first) {
76
76
  }
77
77
  const others = candidates.filter((row) => !sameId(row));
78
78
  if (others.length === 0) {
79
- throw new PrepareRefusal(onlyConnectionMessage(first.message, ctx.connectorKey), "LOOKUP_EXHAUSTED_ONLY_CONNECTION");
79
+ throw new PrepareRefusal(onlyConnectionMessage(first.message, ctx.connectorKey, collectionListingHint(ctx.connectorKey, first.collection, ctx.connectionId)), "LOOKUP_EXHAUSTED_ONLY_CONNECTION");
80
80
  }
81
81
  ctx.reporter.info(tryingOtherConnectionsLine(first.field, others.length, ctx.connectorKey));
82
82
  const winners = [];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uipath/maestro-builder-sdk",
3
- "version": "6.10.1",
3
+ "version": "6.10.2",
4
4
  "description": "Build UiPath Flow, Case, and BPMN artifacts by writing TypeScript.",
5
5
  "license": "MIT",
6
6
  "homepage": "https://docs.uipath.com/maestro",
@@ -92,5 +92,5 @@
92
92
  "@types/node": "^22.7.0",
93
93
  "esbuild": "^0.28.1"
94
94
  },
95
- "gitref": "388e366bc878b0b6701b2842d56479125f6a9edd"
95
+ "gitref": "0c68e2f56257719fc7db812ce8cdb3e097c5444c"
96
96
  }