lua-cli 3.46.0 → 3.47.0

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.
@@ -1005,9 +1005,9 @@ function validSecretOutcome(o) {
1005
1005
  function formatClientOutcomeTurns(outcomes) {
1006
1006
  return outcomes.map((outcome) => JSON.stringify(outcome)).join("\n");
1007
1007
  }
1008
- function parseClientOutcomeTurns(text) {
1009
- if (typeof text !== "string") return null;
1010
- const lines = text.split("\n").map((line) => line.trim()).filter(Boolean);
1008
+ function parseClientOutcomeTurns(text2) {
1009
+ if (typeof text2 !== "string") return null;
1010
+ const lines = text2.split("\n").map((line) => line.trim()).filter(Boolean);
1011
1011
  if (lines.length === 0 || lines.length > CLIENT_OUTCOME_TURNS_MAX) return null;
1012
1012
  const out = [];
1013
1013
  for (const line of lines) {
@@ -1324,9 +1324,9 @@ function idOrName(value3) {
1324
1324
  ].filter((v) => Boolean(v));
1325
1325
  return [];
1326
1326
  }
1327
- function addresses(text) {
1328
- if (typeof text !== "string") return [];
1329
- return (text.match(EMAIL_IN_TEXT) ?? []).map((address) => address.toLowerCase());
1327
+ function addresses(text2) {
1328
+ if (typeof text2 !== "string") return [];
1329
+ return (text2.match(EMAIL_IN_TEXT) ?? []).map((address) => address.toLowerCase());
1330
1330
  }
1331
1331
  function recordFacts(value3) {
1332
1332
  const senders = [];
@@ -1471,8 +1471,8 @@ function contentRecordExcluded(record, exclusions) {
1471
1471
  }
1472
1472
  function jsonLookingString(value3) {
1473
1473
  if (typeof value3 !== "string") return false;
1474
- const text = value3.trim();
1475
- return text.startsWith("{") && text.endsWith("}") || text.startsWith("[") && text.endsWith("]");
1474
+ const text2 = value3.trim();
1475
+ return text2.startsWith("{") && text2.endsWith("}") || text2.startsWith("[") && text2.endsWith("]");
1476
1476
  }
1477
1477
  function parseEmbeddedJson(value3) {
1478
1478
  try {
@@ -1492,11 +1492,11 @@ function applyContentExclusions(value3, exclusions) {
1492
1492
  };
1493
1493
  let removed = 0;
1494
1494
  let blocked = false;
1495
- const walkString = /* @__PURE__ */ __name3((text, depth) => {
1496
- const parsed = parseEmbeddedJson(text);
1497
- if (!parsed) return text;
1495
+ const walkString = /* @__PURE__ */ __name3((text2, depth) => {
1496
+ const parsed = parseEmbeddedJson(text2);
1497
+ if (!parsed) return text2;
1498
1498
  const next2 = walk22(parsed.value, depth);
1499
- return next2 === parsed.value ? text : JSON.stringify(next2);
1499
+ return next2 === parsed.value ? text2 : JSON.stringify(next2);
1500
1500
  }, "walkString");
1501
1501
  const walk22 = /* @__PURE__ */ __name3((node, depth) => {
1502
1502
  if (blocked) return node;
@@ -1590,8 +1590,8 @@ function contentProjectionParameters(params) {
1590
1590
  if (PROJECTION_PARAMETER_KEYS.has(name)) {
1591
1591
  found.push(key);
1592
1592
  } else if (name === "expand") {
1593
- const text = typeof value3 === "string" ? value3 : JSON.stringify(value3 ?? "");
1594
- if (/select/i.test(normaliseRequestParameterKey(text))) found.push(key);
1593
+ const text2 = typeof value3 === "string" ? value3 : JSON.stringify(value3 ?? "");
1594
+ if (/select/i.test(normaliseRequestParameterKey(text2))) found.push(key);
1595
1595
  }
1596
1596
  }
1597
1597
  return found;
@@ -1621,9 +1621,9 @@ function currencyMinorUnitExponent(currency) {
1621
1621
  return 2;
1622
1622
  }
1623
1623
  function majorToMinorUnits(amount, currency) {
1624
- const text = typeof amount === "number" ? Number.isFinite(amount) ? String(amount) : "" : typeof amount === "string" ? amount.trim() : "";
1625
- if (/e/i.test(text)) return void 0;
1626
- const match = DECIMAL_AMOUNT.exec(text);
1624
+ const text2 = typeof amount === "number" ? Number.isFinite(amount) ? String(amount) : "" : typeof amount === "string" ? amount.trim() : "";
1625
+ if (/e/i.test(text2)) return void 0;
1626
+ const match = DECIMAL_AMOUNT.exec(text2);
1627
1627
  if (!match) return void 0;
1628
1628
  const exponent = currencyMinorUnitExponent(currency);
1629
1629
  const whole = match[1];
@@ -1635,9 +1635,9 @@ function majorToMinorUnits(amount, currency) {
1635
1635
  return Number.isSafeInteger(minor) ? minor : void 0;
1636
1636
  }
1637
1637
  function readMinorUnits(amount) {
1638
- const text = typeof amount === "number" ? String(amount) : typeof amount === "string" ? amount.trim() : "";
1639
- if (!/^\d+$/.test(text)) return void 0;
1640
- const minor = Number(text);
1638
+ const text2 = typeof amount === "number" ? String(amount) : typeof amount === "string" ? amount.trim() : "";
1639
+ if (!/^\d+$/.test(text2)) return void 0;
1640
+ const minor = Number(text2);
1641
1641
  return Number.isSafeInteger(minor) ? minor : void 0;
1642
1642
  }
1643
1643
  function operationCapUtcDay(now = /* @__PURE__ */ new Date()) {
@@ -1654,8 +1654,8 @@ function groupCount(re) {
1654
1654
  function isWorkflowSecretKey(key) {
1655
1655
  return WORKFLOW_SECRET_KEY_RE.test(key);
1656
1656
  }
1657
- function applyPatterns(text, patterns, counter) {
1658
- let out = text;
1657
+ function applyPatterns(text2, patterns, counter) {
1658
+ let out = text2;
1659
1659
  for (const { re, suffix } of patterns) {
1660
1660
  re.lastIndex = 0;
1661
1661
  if (!re.test(out)) continue;
@@ -1675,30 +1675,30 @@ function applyPatterns(text, patterns, counter) {
1675
1675
  }
1676
1676
  return out;
1677
1677
  }
1678
- function scrubSecretText(text) {
1679
- if (typeof text !== "string" || text.length < 4) return text;
1680
- return applyPatterns(applyPatterns(text, SECRET_LITERAL_PATTERNS), SECRET_PAIR_PATTERNS);
1678
+ function scrubSecretText(text2) {
1679
+ if (typeof text2 !== "string" || text2.length < 4) return text2;
1680
+ return applyPatterns(applyPatterns(text2, SECRET_LITERAL_PATTERNS), SECRET_PAIR_PATTERNS);
1681
1681
  }
1682
- function scrubSecretTextCounted(text) {
1683
- if (typeof text !== "string" || text.length < 4) return {
1684
- text,
1682
+ function scrubSecretTextCounted(text2) {
1683
+ if (typeof text2 !== "string" || text2.length < 4) return {
1684
+ text: text2,
1685
1685
  redactions: 0
1686
1686
  };
1687
1687
  const counter = {
1688
1688
  redactions: 0
1689
1689
  };
1690
- const out = applyPatterns(applyPatterns(text, SECRET_LITERAL_PATTERNS, counter), SECRET_PAIR_PATTERNS, counter);
1690
+ const out = applyPatterns(applyPatterns(text2, SECRET_LITERAL_PATTERNS, counter), SECRET_PAIR_PATTERNS, counter);
1691
1691
  return {
1692
1692
  text: out,
1693
1693
  redactions: counter.redactions
1694
1694
  };
1695
1695
  }
1696
- function boundScrubInput(text, max = SCRUB_INPUT_MAX_CHARS) {
1697
- if (typeof text !== "string" || text.length <= max) return text;
1698
- const window = text.slice(Math.max(0, max - SCRUB_CUT_BACKOFF_CHARS), max);
1696
+ function boundScrubInput(text2, max = SCRUB_INPUT_MAX_CHARS) {
1697
+ if (typeof text2 !== "string" || text2.length <= max) return text2;
1698
+ const window = text2.slice(Math.max(0, max - SCRUB_CUT_BACKOFF_CHARS), max);
1699
1699
  const ws = window.search(/\s\S*$/);
1700
1700
  const cut2 = ws >= 0 ? max - window.length + ws : max;
1701
- return `${text.slice(0, cut2)}\u2026`;
1701
+ return `${text2.slice(0, cut2)}\u2026`;
1702
1702
  }
1703
1703
  function scrubSecretLines(lines) {
1704
1704
  return lines.map((l) => typeof l === "string" ? scrubSecretText(boundScrubInput(l)) : l);
@@ -1718,9 +1718,9 @@ function messageText(value3) {
1718
1718
  return value3 === void 0 || value3 === null ? "" : String(value3);
1719
1719
  }
1720
1720
  function scrubProviderMessage(raw, max = PROVIDER_MESSAGE_MAX_CHARS) {
1721
- const text = boundScrubInput(messageText(raw)).replace(/\s+/g, " ").trim();
1722
- if (!text) return void 0;
1723
- const out = scrubSecretText(text);
1721
+ const text2 = boundScrubInput(messageText(raw)).replace(/\s+/g, " ").trim();
1722
+ if (!text2) return void 0;
1723
+ const out = scrubSecretText(text2);
1724
1724
  return out.length > max ? `${out.slice(0, max - 1)}\u2026` : out;
1725
1725
  }
1726
1726
  function scrubStepErrorMessage(raw) {
@@ -1850,8 +1850,8 @@ function supervisionAccessBindingViolation(merged) {
1850
1850
  }
1851
1851
  return null;
1852
1852
  }
1853
- function hasFormatCharacters(text) {
1854
- return FORMAT_CHARS.test(text);
1853
+ function hasFormatCharacters(text2) {
1854
+ return FORMAT_CHARS.test(text2);
1855
1855
  }
1856
1856
  function normalizedHandoverName(name) {
1857
1857
  return oneLine(name.normalize("NFKC")).toLowerCase();
@@ -1914,8 +1914,8 @@ function normalizeConnectionHandoverArgs(raw) {
1914
1914
  function approvalPayloadCoversConnectionHandover(payload, stored) {
1915
1915
  const p = parseConnectionHandoverApprovalPayload(payload);
1916
1916
  if (!p) return false;
1917
- const text = describeConnectionHandoverApproval(payload) ?? "";
1918
- if (text.length > CONNECTION_HANDOVER_APPROVAL_CARD_MAX_CHARS || scrubSecretText(text) !== text) return false;
1917
+ const text2 = describeConnectionHandoverApproval(payload) ?? "";
1918
+ if (text2.length > CONNECTION_HANDOVER_APPROVAL_CARD_MAX_CHARS || scrubSecretText(text2) !== text2) return false;
1919
1919
  const storedAccount = stored.account?.trim() || void 0;
1920
1920
  return p.connectionId === stored.connectionId && p.agentId === stored.agentId && p.agentName === stored.agentName.trim() && p.supervisorName === stored.supervisorName.trim() && p.integration === stored.integration && p.account === storedAccount;
1921
1921
  }
@@ -2137,13 +2137,13 @@ function parseThreadFollowUpInput(input) {
2137
2137
  if (hasPrompt === hasMessage) return null;
2138
2138
  const raw = hasPrompt ? o.prompt : o.message;
2139
2139
  if (typeof raw !== "string") return null;
2140
- const text = raw.trim();
2140
+ const text2 = raw.trim();
2141
2141
  const max = hasPrompt ? THREAD_FOLLOW_UP_LIMITS.promptMax : THREAD_FOLLOW_UP_LIMITS.messageMax;
2142
- if (text.length === 0 || text.length > max) return null;
2142
+ if (text2.length === 0 || text2.length > max) return null;
2143
2143
  if (o.idempotencyKey !== void 0 && !isValidCallerDedupeKey(o.idempotencyKey)) return null;
2144
2144
  return {
2145
2145
  mode: hasPrompt ? "turn" : "message",
2146
- text,
2146
+ text: text2,
2147
2147
  ...o.idempotencyKey !== void 0 ? {
2148
2148
  idempotencyKey: o.idempotencyKey
2149
2149
  } : {}
@@ -2633,8 +2633,8 @@ function withOverride(def, override) {
2633
2633
  "effect",
2634
2634
  "confirm"
2635
2635
  ]) {
2636
- const text = stored[field];
2637
- if (typeof text === "string" && text.trim()) next[field] = text;
2636
+ const text2 = stored[field];
2637
+ if (typeof text2 === "string" && text2.trim()) next[field] = text2;
2638
2638
  }
2639
2639
  if (def.tunableDefault && stored.default !== void 0) {
2640
2640
  const check = validateChannelSettingValue(def, stored.default);
@@ -2743,26 +2743,26 @@ function validateChannelSettingValue(def, value3, channel) {
2743
2743
  ok: false,
2744
2744
  error: "Must not be empty"
2745
2745
  };
2746
- const text = value3.trim();
2747
- if (rules.maxLength !== void 0 && text.length > rules.maxLength) {
2746
+ const text2 = value3.trim();
2747
+ if (rules.maxLength !== void 0 && text2.length > rules.maxLength) {
2748
2748
  return {
2749
2749
  ok: false,
2750
2750
  error: `Must be at most ${rules.maxLength} characters`
2751
2751
  };
2752
2752
  }
2753
- if (UNSAFE_TEXT.test(text)) return {
2753
+ if (UNSAFE_TEXT.test(text2)) return {
2754
2754
  ok: false,
2755
2755
  error: 'Must not contain <, > or " characters'
2756
2756
  };
2757
- if (rules.format === "slackReaction" && resolveSlackReactionName(text) === void 0) {
2757
+ if (rules.format === "slackReaction" && resolveSlackReactionName(text2) === void 0) {
2758
2758
  return {
2759
2759
  ok: false,
2760
- error: `${text} is not an emoji Slack can react with; use a common emoji or a :shortcode:`
2760
+ error: `${text2} is not an emoji Slack can react with; use a common emoji or a :shortcode:`
2761
2761
  };
2762
2762
  }
2763
2763
  return {
2764
2764
  ok: true,
2765
- value: text
2765
+ value: text2
2766
2766
  };
2767
2767
  }
2768
2768
  case "enum": {
@@ -3123,11 +3123,11 @@ function transformChatHistoryContentParts(parts) {
3123
3123
  mediaType: videoMatch[1]
3124
3124
  });
3125
3125
  } else {
3126
- let text = rawText.replace(/\\\\\\n/g, "\n");
3127
- text = removeNavigateBlock(text);
3126
+ let text2 = rawText.replace(/\\\\\\n/g, "\n");
3127
+ text2 = removeNavigateBlock(text2);
3128
3128
  content.push({
3129
3129
  type: "text",
3130
- text
3130
+ text: text2
3131
3131
  });
3132
3132
  }
3133
3133
  } else if (part.type === "file") {
@@ -3246,6 +3246,83 @@ function foldRichPartsIntoMessages(messages, records, makeMessage, sameTurnGroup
3246
3246
  while (next < synthetic.length) combined.push(synthetic[next++].message);
3247
3247
  return mergeRichPartMirrorMessages(combined, sameTurnGroup);
3248
3248
  }
3249
+ function text(item, field, index, required) {
3250
+ const value3 = item[field];
3251
+ if (value3 === void 0 && !required) return void 0;
3252
+ if (typeof value3 !== "string" || required && value3.trim().length === 0) {
3253
+ throw new Error(`Work item ${index}: \`${field}\` must be a ${required ? "non-empty " : ""}string`);
3254
+ }
3255
+ if ([
3256
+ ...value3
3257
+ ].length > LIMITS[field]) {
3258
+ throw new Error(`Work item ${index}: \`${field}\` is longer than ${LIMITS[field]} characters`);
3259
+ }
3260
+ return value3;
3261
+ }
3262
+ function normalizeWorkItems(items) {
3263
+ if (!Array.isArray(items)) throw new Error("Work items must be an array");
3264
+ if (items.length > MAX_WORK_ITEMS) {
3265
+ throw new Error(`At most ${MAX_WORK_ITEMS} work items can be published (got ${items.length})`);
3266
+ }
3267
+ const seen = /* @__PURE__ */ new Set();
3268
+ return items.map((raw, index) => {
3269
+ if (!raw || typeof raw !== "object" || Array.isArray(raw)) {
3270
+ throw new Error(`Work item ${index} must be an object`);
3271
+ }
3272
+ const item = raw;
3273
+ const id2 = text(item, "id", index, true);
3274
+ if (seen.has(id2)) throw new Error(`Work item ${index}: \`id\` "${id2}" is used more than once`);
3275
+ seen.add(id2);
3276
+ const title = text(item, "title", index, true);
3277
+ const group = text(item, "group", index, true);
3278
+ const action = text(item, "action", index, true);
3279
+ const status = text(item, "status", index, false);
3280
+ if (item.needsAction !== void 0 && typeof item.needsAction !== "boolean") {
3281
+ throw new Error(`Work item ${index}: \`needsAction\` must be a boolean`);
3282
+ }
3283
+ const when = item.updatedAt;
3284
+ const date = when instanceof Date ? when : typeof when === "string" ? new Date(when) : null;
3285
+ if (!date || Number.isNaN(date.getTime())) {
3286
+ throw new Error(`Work item ${index}: \`updatedAt\` must be a valid date`);
3287
+ }
3288
+ return {
3289
+ id: id2,
3290
+ title,
3291
+ group,
3292
+ ...item.needsAction !== void 0 ? {
3293
+ needsAction: item.needsAction
3294
+ } : {},
3295
+ ...status !== void 0 ? {
3296
+ status
3297
+ } : {},
3298
+ updatedAt: date.toISOString(),
3299
+ action
3300
+ };
3301
+ });
3302
+ }
3303
+ function workItemsRecord(items, now = /* @__PURE__ */ new Date()) {
3304
+ return {
3305
+ v: 1,
3306
+ items: normalizeWorkItems(items),
3307
+ updatedAt: now.toISOString()
3308
+ };
3309
+ }
3310
+ function withoutWorkItems(data) {
3311
+ if (!data || typeof data !== "object" || !(WORK_ITEMS_KEY in data)) return data;
3312
+ const { [WORK_ITEMS_KEY]: _list, ...rest } = data;
3313
+ return rest;
3314
+ }
3315
+ function mutationWithoutWorkItems(mutation) {
3316
+ return {
3317
+ ...mutation,
3318
+ ...mutation.set ? {
3319
+ set: withoutWorkItems(mutation.set)
3320
+ } : {},
3321
+ ...mutation.unset ? {
3322
+ unset: mutation.unset.filter((field) => field !== WORK_ITEMS_KEY)
3323
+ } : {}
3324
+ };
3325
+ }
3249
3326
  function utf8WidthAt(value3, index) {
3250
3327
  const code = value3.charCodeAt(index);
3251
3328
  if (code < 128) return {
@@ -4752,15 +4829,15 @@ function normalizeWorkflowGoalJudge(judge) {
4752
4829
  } : {}
4753
4830
  };
4754
4831
  }
4755
- function cut(text, max) {
4756
- if (text.length <= max) return text;
4832
+ function cut(text2, max) {
4833
+ if (text2.length <= max) return text2;
4757
4834
  let end = Math.max(0, max - 1);
4758
- const last = text.charCodeAt(end - 1);
4835
+ const last = text2.charCodeAt(end - 1);
4759
4836
  if (last >= 55296 && last <= 56319) end -= 1;
4760
- return `${text.slice(0, end)}${ELLIPSIS}`;
4837
+ return `${text2.slice(0, end)}${ELLIPSIS}`;
4761
4838
  }
4762
- function scrubString(text, state3) {
4763
- const scrubbed = scrubSecretText(boundScrubInput(text, STRING_SCRUB_INPUT_MAX_CHARS));
4839
+ function scrubString(text2, state3) {
4840
+ const scrubbed = scrubSecretText(boundScrubInput(text2, STRING_SCRUB_INPUT_MAX_CHARS));
4764
4841
  if (scrubbed.length > APPROVAL_ARG_STRING_MAX_CHARS) state3.truncated = true;
4765
4842
  return cut(scrubbed, APPROVAL_ARG_STRING_MAX_CHARS);
4766
4843
  }
@@ -4845,10 +4922,10 @@ function walkObject(obj, depth, state3) {
4845
4922
  }
4846
4923
  return out;
4847
4924
  }
4848
- function fitString(text, room) {
4849
- let n2 = Math.min(text.length, room - 3);
4925
+ function fitString(text2, room) {
4926
+ let n2 = Math.min(text2.length, room - 3);
4850
4927
  while (n2 >= 16) {
4851
- const candidate = cut(text, n2);
4928
+ const candidate = cut(text2, n2);
4852
4929
  if (JSON.stringify(candidate).length <= room) return candidate;
4853
4930
  n2 = Math.floor(n2 * 0.8);
4854
4931
  }
@@ -4932,9 +5009,9 @@ function createPersistScrubber(maxChars = PERSIST_SCRUB_MAX_CHARS) {
4932
5009
  const bounded = boundScrubInput(value3, remaining);
4933
5010
  if (bounded !== value3) state3.truncated = true;
4934
5011
  remaining -= bounded.length;
4935
- const { text, redactions } = scrubSecretTextCounted(bounded);
5012
+ const { text: text2, redactions } = scrubSecretTextCounted(bounded);
4936
5013
  state3.redactions += redactions;
4937
- return text;
5014
+ return text2;
4938
5015
  }, "scrub");
4939
5016
  return {
4940
5017
  scrub,
@@ -4944,9 +5021,9 @@ function createPersistScrubber(maxChars = PERSIST_SCRUB_MAX_CHARS) {
4944
5021
  function scrubMessageContentForPersist(content, maxChars = PERSIST_SCRUB_MAX_CHARS) {
4945
5022
  const { scrub, state: state3 } = createPersistScrubber(maxChars);
4946
5023
  if (typeof content === "string") {
4947
- const text = scrub(content);
5024
+ const text2 = scrub(content);
4948
5025
  return {
4949
- content: text !== content ? text : content,
5026
+ content: text2 !== content ? text2 : content,
4950
5027
  ...state3
4951
5028
  };
4952
5029
  }
@@ -4958,19 +5035,19 @@ function scrubMessageContentForPersist(content, maxChars = PERSIST_SCRUB_MAX_CHA
4958
5035
  let changed = false;
4959
5036
  const parts = content.map((part) => {
4960
5037
  if (typeof part === "string") {
4961
- const text = scrub(part);
4962
- if (text === part) return part;
5038
+ const text2 = scrub(part);
5039
+ if (text2 === part) return part;
4963
5040
  changed = true;
4964
- return text;
5041
+ return text2;
4965
5042
  }
4966
5043
  if (part && typeof part === "object" && part.type === "text" && typeof part.text === "string") {
4967
5044
  const original = part.text;
4968
- const text = scrub(original);
4969
- if (text === original) return part;
5045
+ const text2 = scrub(original);
5046
+ if (text2 === original) return part;
4970
5047
  changed = true;
4971
5048
  return {
4972
5049
  ...part,
4973
- text
5050
+ text: text2
4974
5051
  };
4975
5052
  }
4976
5053
  return part;
@@ -5081,11 +5158,11 @@ function workflowApprovalDecisionOf(resumeData) {
5081
5158
  function workflowApprovalOutput(resumeData) {
5082
5159
  const decision = typeof resumeData.decision === "string" ? resumeData.decision : workflowApprovalDecisionOf(resumeData);
5083
5160
  const note = typeof resumeData.note === "string" && resumeData.note.trim() !== "" ? resumeData.note : void 0;
5084
- const text = typeof resumeData.text === "string" ? resumeData.text : note ?? decision;
5161
+ const text2 = typeof resumeData.text === "string" ? resumeData.text : note ?? decision;
5085
5162
  return {
5086
5163
  ...resumeData,
5087
5164
  decision,
5088
- text
5165
+ text: text2
5089
5166
  };
5090
5167
  }
5091
5168
  function isWorkflowApprovalOutput(value3) {
@@ -5093,8 +5170,8 @@ function isWorkflowApprovalOutput(value3) {
5093
5170
  const v = value3;
5094
5171
  return typeof v.approved === "boolean" && WORKFLOW_APPROVAL_OUTPUT_DECISIONS.includes(v.decision) && typeof v.text === "string";
5095
5172
  }
5096
- function extractSingleJsonValue(text) {
5097
- const trimmed = (text ?? "").trim();
5173
+ function extractSingleJsonValue(text2) {
5174
+ const trimmed = (text2 ?? "").trim();
5098
5175
  if (!trimmed) return {
5099
5176
  reason: "reply is empty"
5100
5177
  };
@@ -5252,8 +5329,8 @@ function isWebRouteInput(value3) {
5252
5329
  if (!app || typeof app.id !== "string" || typeof app.name !== "string" || typeof app.origin !== "string") return false;
5253
5330
  return true;
5254
5331
  }
5255
- function evidenceDisplayText(text) {
5256
- const raw = typeof text === "string" ? text : "";
5332
+ function evidenceDisplayText(text2) {
5333
+ const raw = typeof text2 === "string" ? text2 : "";
5257
5334
  if (!raw.trim()) return "";
5258
5335
  const lines = removeHiddenBlocks(raw).split(/\r?\n/).map((line) => {
5259
5336
  const t = line.trim();
@@ -5266,22 +5343,22 @@ function evidenceDisplayText(text) {
5266
5343
  const out = lines.join(" ").replace(/\s+/g, " ").trim();
5267
5344
  return out || "[Attachment]";
5268
5345
  }
5269
- function evidenceSnippet(text) {
5270
- const flat = evidenceDisplayText(text);
5346
+ function evidenceSnippet(text2) {
5347
+ const flat = evidenceDisplayText(text2);
5271
5348
  return flat.length <= EVIDENCE_SNIPPET_MAX_CHARS ? flat : `${flat.slice(0, EVIDENCE_SNIPPET_MAX_CHARS - 1)}\u2026`;
5272
5349
  }
5273
- function evidenceWordCount(text) {
5274
- if (typeof text !== "string") return 0;
5275
- const t = text.trim();
5350
+ function evidenceWordCount(text2) {
5351
+ if (typeof text2 !== "string") return 0;
5352
+ const t = text2.trim();
5276
5353
  return t ? t.split(/\s+/).length : 0;
5277
5354
  }
5278
5355
  function evidenceKey(label) {
5279
5356
  return label.toLowerCase().replace(/[_\-\s]+/g, " ").trim();
5280
5357
  }
5281
- function evidenceOpaqueKey(text) {
5358
+ function evidenceOpaqueKey(text2) {
5282
5359
  let h = 0xcbf29ce484222325n;
5283
5360
  const prime = 0x100000001b3n;
5284
- for (const ch of evidenceKey(text)) {
5361
+ for (const ch of evidenceKey(text2)) {
5285
5362
  h ^= BigInt(ch.codePointAt(0) ?? 0);
5286
5363
  h = h * prime & 0xffffffffffffffffn;
5287
5364
  }
@@ -5939,16 +6016,16 @@ function slashDecodedPath(path3) {
5939
6016
  }
5940
6017
  return out.join("/");
5941
6018
  }
5942
- function jsonHasDuplicateKey(text) {
6019
+ function jsonHasDuplicateKey(text2) {
5943
6020
  const stack = [];
5944
- for (let i = 0; i < text.length; i++) {
5945
- const c = text[i];
6021
+ for (let i = 0; i < text2.length; i++) {
6022
+ const c = text2[i];
5946
6023
  if (c === '"') {
5947
6024
  let j = i + 1;
5948
- while (j < text.length && text[j] !== '"') j += text[j] === "\\" ? 2 : 1;
6025
+ while (j < text2.length && text2[j] !== '"') j += text2[j] === "\\" ? 2 : 1;
5949
6026
  const top = stack[stack.length - 1];
5950
6027
  if (top && top.expectKey) {
5951
- const key = JSON.parse(text.slice(i, j + 1));
6028
+ const key = JSON.parse(text2.slice(i, j + 1));
5952
6029
  if (top.keys.has(key)) return true;
5953
6030
  top.keys.add(key);
5954
6031
  top.expectKey = false;
@@ -6212,7 +6289,7 @@ function maskMcpServerHeaders(server) {
6212
6289
  headersSet: headerNames.length > 0
6213
6290
  };
6214
6291
  }
6215
- var __defProp3, __name3, PLUMBING_THREAD_CHANNELS, CHANNEL_CONVERSATION_CHANNELS, HIDDEN_THREAD_CHANNELS, CHOICE_PERSON_TURN_CHANNELS, CHOICE_REPLAY_CLIENT_CAPABILITIES, CHOICE_REPLAY_CLIENT_SURFACES, INTEGRATION_PASSTHROUGH_READ_METHODS, URL_REINTERPRETED_PATH_CHARACTERS, PERCENT_ENCODED_DOT, PERCENT_ESCAPE, DECODED_PATH_SEPARATORS, DECODED_LEADING_SEPARATOR, MAX_PERCENT_DECODE_ROUNDS, URL_RESOLUTION_PROBE_BASE, PLATFORM_INVOCATION_CALLERS, SUPERVISION_OPS, SUPERVISION_OPS_WAVE2, SUPERVISION_WATCHDOG_OPS, SUPERVISION_WATCHDOG_ERRORS, SUPERVISION_ROLLBACK_REFUSAL_CODES, SUPERVISION_ROLLBACK_LINEAGE_MAX, SUPERVISION_UNTARGETED_OPS, SUPERVISED_WORKFLOW_VERSIONS_MAX, SUPERVISION_EVENT_KINDS, AGENT_PROVISIONING_LIMITS, AGENT_PROVISIONING_APPROVAL_PAYLOAD_KEY, AGENT_PROVISIONING_ERRORS, PROVISIONED_SUPERVISION_ACTIONS, isNonEmptyString, uniqueStrings, sameSet, AGENT_PROVISIONING_APPROVAL_CARD_MAX_CHARS, APPROVAL_PAYLOAD_MEMBERS, AGENT_CONNECTION_POLICIES, AGENT_CONNECTION_POLICY_DEFAULT, AGENT_CONNECTION_MOUNT_MODES, AGENT_CONNECTION_GOVERNANCE_ERRORS, AGENT_CONNECTION_OPERATION_RULES_MAX, AGENT_CONNECTION_OPERATION_PATTERN_MAX_LENGTH, OPERATION_RULE_METHODS, PATH_SEPARATOR, PATH_SINGLE_SEGMENT_WILDCARD, PATH_REST_WILDCARD, METHOD_OVERRIDE_HEADER_NAMES, METHOD_OVERRIDE_QUERY_NAMES, ODATA_BATCH_SEGMENT, GOOGLE_BATCH_FIRST_SEGMENT, CONNECTION_CHECK_RESULTS, CONNECTION_CHECK_CATALOGUE_V1, CONNECTION_CHECK_NAME_PATTERN, CONNECTION_CHECK_NAME_MAX, CONNECT_OUTCOME_STATUSES, SECRET_TEST_RESULTS, SECRET_DATADOG_REGIONS, SECRET_PROVIDER_CATALOGUE_V1, SECRET_TEST_MAX_RESPONSE_BYTES, SECRET_ENV_KEY_PATTERN, SECRET_REQUEST_ERRORS, SECRET_OUTCOME_STATUSES, CLIENT_OUTCOME_TURNS_MAX, SHORT_TEXT_MAX, SLUG_MAX, shortText, optionalShortText, CONNECTION_REQUEST_TERMINAL_STATES, CONNECTION_USE_ORIGINS, AGENT_CONNECTION_OPERATION_LIMITS_BOUNDS, CURRENCY_CODE, LIMITS_KEYS, CAPS_KEYS, EXCLUSIONS_KEYS, EMAIL_IN_TEXT, MAX_EXCLUSION_DEPTH, PROJECTION_PARAMETER_KEYS, CHANNEL_PARAMETER_KEYS, GMAIL_SYSTEM_LABEL_IDS, ZERO_DECIMAL_CURRENCIES, THREE_DECIMAL_CURRENCIES, DECIMAL_AMOUNT, REDACTED_PLACEHOLDER, PROVIDER_MESSAGE_MAX_CHARS, ERROR_MESSAGE_MAX_CHARS, SECRET_LITERAL_PATTERNS, SECRET_NAME, SECRET_PAIR_PATTERNS, GROUP_COUNT, WORKFLOW_SECRET_KEY_RE, WORKFLOW_RESERVED_SECRET_KEYS, SCRUB_INPUT_MAX_CHARS, SCRUB_CUT_BACKOFF_CHARS, TEST_SESSION_ID_PATTERN, TEST_SESSION_COLLECTION_PREFIX, TEST_EFFECT_BODY_MAX_BYTES, TEST_EFFECT_DROPPED_HEADERS, EVAL_CREDITS_PER_1K_TOKENS, EVAL_RESERVED_TOOL_ID_PREFIXES, CONNECTION_HANDOVER_APPROVAL_PAYLOAD_KEY, CONNECTION_HANDOVER_APPROVAL_CARD_MAX_CHARS, CONNECTION_HANDOVER_LIMITS, MEMBERS, FORMAT_CHARS, oneLine, boundedString, AGENT_METRIC_NAME_PATTERN, AGENT_METRIC_LIMITS, AGENT_OBJECTIVE_ERRORS, CHANGE_LEASE_TTL_MINUTES_MIN, CHANGE_LEASE_TTL_MINUTES_MAX, CHANGE_LEASE_REASON_MAX, CHANGE_LEASE_ERRORS, AGENT_CONFIG_SET_LIMITS, SECRET_ENV_KEY_SUFFIXES, DEFAULT_OWNER_DEPARTURE_POLICY, AGENT_LIFECYCLE_ERRORS, USER_COST_COUNTER_TTL_SECONDS, USER_COST_ATTRIBUTION_CHANNELS, CALLER_DEDUPE_KEY_MAX, FOLLOW_UP_IDEMPOTENCY_TTL_SECONDS, THREAD_FOLLOW_UP_LIMITS, THREAD_FOLLOW_UP_ERRORS, PROGRESS_UPDATE_LIMITS, PAUSABLE_CAPABILITY_KINDS, UNIFIED_CATCH_UP_MAX_WINDOW_HOURS, UNIFIED_CATCH_UP_EVENTS, UNIFIED_CATCH_UP_FILTERABLE_OBJECT_TYPES, AGENT_NEVER_RULES_MAX, AGENT_NEVER_RULE_FIELD_MAX, AGENT_NEVER_RULE_INPUT_MATCH_MAX, NEVER_RULE_ID_PATTERN, NEVER_RULE_HTTP_METHODS, TEMPLATE_DISTRIBUTION_MODES, CHANNEL_SEND_CHANNELS, TAKEOVER_MAX_IDLE_MINUTES, MINUTES_PER_DAY, DEFAULT_IDLE_RELEASE_MINUTES, FALLBACK_IDLE_RELEASE_MINUTES, VARIATION_SELECTORS, SLACK_EMOJI_NAMES, SLACK_SHORTCODE, PLAIN_EMAIL_ADDRESS, DOMAIN, UNSAFE_TEXT, SLACK_CONVERSATION_ID, CHANNEL_SETTING_GROUPS, THREAD_SCOPING_NOUN, TAKEOVER_CHANNEL_TYPES, EMAIL_SETTINGS, SLACK_SETTING_DEFAULTS, SLACK_REACTION_MAX, SLACK_INTRO_MAX, SLACK_EXAMPLE_PROMPTS_MAX, SLACK_EXAMPLE_PROMPT_MAX, SLACK_SUPPORT_CONTACT_MAX, SLACK_SETTINGS, CHANNEL_SETTINGS, REVIEWABLE_ACTION_EXECUTE_TOOL_ALLOWLIST, REVIEWABLE_STANDING_START_TOOLS, REVIEWABLE_MCP_SEND_TOOL_SUFFIX, MCP_TOOL_READ_VERB_RE, MCP_DRAFT_CREATE_VERBS, NON_INTERACTIVE_CHANNELS, RICH_PARTS_MESSAGE_ID_PREFIX, SCREENSHOT_MESSAGE_ID_PREFIX, BROWSER_COMMANDS, BROWSER_COMMAND_NAMES, LOG_FIELDS_MAX_KEYS, LOG_FIELD_MAX_VALUE_BYTES, LOG_FIELDS_MAX_BYTES, LOG_FIELD_KEY_PATTERN, LOG_FIELD_SECRET_SHAPED_KEY_PATTERNS, LOG_FIELDS_CLAMPED_KEY, LOG_FIELD_ARRAY_COUNT_SUFFIX, LuaLogFieldsError, DESKTOP_FILE_COMMANDS, DESKTOP_FILE_COMMAND_SET, WORKFLOW_RETRY_BACKOFFS, WORKFLOW_RETRY_MIN_ATTEMPTS, WORKFLOW_RETRY_POLICY_KEYS, WORKFLOW_RETRY_MAX_ATTEMPTS, WORKFLOW_RETRY_ENGINE_KEYS, WORKFLOW_JOB_RESOURCES, WORKFLOW_SIDE_EFFECTS, WORKFLOW_MODEL_CLASSES, WORKFLOW_DEFAULT_TASK_CLASS_MAP, WORKFLOW_MODELS_MAX_CLASS_DEFAULT, WORKFLOW_AUTONOMY_NUMERIC_KEYS, WORKFLOW_AUTONOMY_ENVELOPE_KEYS, WORKFLOW_AUTONOMY_DEFAULTS, WORKFLOW_AUTONOMY_CEILINGS, WORKFLOW_AUTONOMY_MAX_RUNS_PER_HOUR_ENV, WORKFLOW_AUTONOMY_MAX_RUNS_PER_HOUR_CEILING, WORKFLOW_AUTONOMY_FORMS_DEFAULT, WORKFLOW_AUTONOMY_MIN_VALUE, WORKFLOW_JOB_RANGES, WORKFLOW_JOB_RANGE_MEMBERS, WORKFLOW_SINGLE_STEP_TYPES, WORKFLOW_HITL_ENTRY_TYPES, WORKFLOW_ARM_ENTRY_TYPES, WORKFLOW_HITL_ARM_CONTAINERS, WORKFLOW_GRAPH_ENTRY_STEP_KINDS, WORKFLOW_ARM_ENTRY_STEP_KINDS, WORKFLOW_BUDGET_MAX_DURATION_SECONDS, MODEL_ID_BYOK_PROVIDERS, MODEL_CLASS_REF_PREFIX, MODEL_SNAPSHOT_SUFFIX, REASONING_EFFORT_VALUES, IMPLICIT_MODEL_SELECTION_SOURCES, PLATFORM_FALLBACK_MODEL_SOURCE, AGENT_NAME_TOKEN, DEFAULT_PERSONA_GUIDE, PERSONAL_SPACE_STARTING_PERSONA, AGENT_LOG_SOURCES, AGENT_LOG_FIELDS_MAX_WIRE_KEYS, LOG_DRAIN_TYPES_PHASE1, LOG_DRAIN_TYPES_PHASE2, LOG_DRAIN_TYPES_IMPLEMENTED, LOG_DRAIN_SOURCES, LOG_DRAIN_MAX_PER_ORG, LOG_DRAIN_MAX_PER_ORG_ENTERPRISE, LOG_DRAIN_DATADOG_SITES, LOG_DRAIN_NEWRELIC_SITES, LOG_DRAIN_ENDPOINT_TEMPLATES, LOG_DRAIN_PRESET_SITES, LOG_DRAIN_BUCKET_NAME_PATTERN, LOG_DRAIN_BUCKET_HOST_PATTERNS, LOG_DRAIN_PRESET_HOST_SUFFIXES, DRAIN_CONTENT_ACK_ERROR_CODE, DRAIN_CONTENT_ACK_FIELD, DrainContentAckRequiredError, LOG_DRAIN_PRESET_PATHS, PRESET_SEGMENT_RE, LOG_DRAIN_QUOTAS, LOG_DRAIN_QUOTA_WARN_RATIO, LOG_DRAIN_QUOTA_DROP_DEBUG_RATIO, LOG_DRAIN_QUOTA_DROP_INFO_RATIO, LOG_DRAIN_QUOTA_PAUSE_RATIO, LOG_EXPORT_SOURCES, LOG_EXPORT_MAX_WINDOW_DAYS, LOG_EXPORT_MAX_WINDOW_MS, LOG_EXPORT_URL_TTL_SECONDS, LOG_EXPORT_FILE_RETENTION_DAYS, LOG_EXPORT_FILE_RETENTION_MS, LOG_EXPORT_PART_MAX_BYTES, LOG_DRAIN_NOTICE_RATE_LIMIT_MS, LOG_DRAIN_VERIFICATION_STALE_MS, LOG_DRAIN_DIGEST_INTERVAL_MS, LOG_DRAIN_DIGEST_MAX_ENTRIES, LOG_DRAIN_NOTICE_ERROR_MAX_CHARS, LOG_DRAIN_USAGE_LINE_ITEM, LOG_DRAIN_BYTES_PER_GIB, DEFAULT_LOG_DRAIN_PLAN_CONFIG, TIERS, LOG_CURSOR_MAX_LENGTH, LOG_CURSOR_MAX_ID_LENGTH, LOG_RELATIVE_TIME_PATTERN, LOG_ISO_TIME_PATTERN, RELATIVE_UNIT_MS, CORE_DRAINING_CODE, CORE_DRAINING_DEFAULT_RETRY_MS, CORE_DRAINING_MAX_RETRY_MS, VoiceNameSchema, PluginProviderSchema, RealtimeProviderSchema, PluginClassSchema, ModelDescriptorSchema, InferenceModelSchema, PluginModelSchema, RealtimeModelSchema, LuaVoiceModelSchema, TurnDetectionSchema, InterruptionSchema, BuiltinAudioClipSchema, AudioConfigSchema, BackgroundAudioEntrySchema, BackgroundAudioSchema, LuaVoiceConfigInnerSchema, LuaVoiceConfigSchema, LuaVoiceRefSchema, LUA_JOB_DEFAULT_TIMEOUT_SECONDS, LUA_JOB_MIN_TIMEOUT_SECONDS, LUA_JOB_MAX_TIMEOUT_SECONDS, KEYS, MAX_BODY_BYTES, MAX_ID_LENGTH, UTC_ISO, TEMPLATE_TRIGGER_URL_ENV_PREFIX, TEMPLATE_INSTALL_POLICY_PER_WORKSPACE_VALUES, SUBJECT_TYPES, SubjectTypeSchema, CREDENTIAL_TYPES, CredentialTypeSchema, DEVICE_OPERATIONS, DeviceOperationSchema, DEVICE_SCOPE_BY_OPERATION, DeviceBindingSchema, IdSchema, SESSION_AUTH_TIME_MAX_S, PrincipalDescriptorSchema, ActorDescriptorSchema, PrincipalOwnerSchema, CredentialLifecycleSchema, GeneralCredentialDescriptorSchema, DeviceCredentialDescriptorSchema, GeneralPrincipalContextSchema, DeviceCredentialPrincipalContextSchema, RawPrincipalContextSchema, PrincipalContextSchema, DeviceCredentialClaimSchema, LUA_CLIENT_HEADER, LUA_CLIENT_APPS, SEMVER_PATTERN, WEB_RELEASE_PATTERN, CLIENT_HEADER_PATTERN, LUA_SESSION_ID_CLAIM, SESSION_REVOKED_CODE, AUTHZ_PROJECTION_VERSION, ProjectedScopeSchema, DisplayRoleSchema, AuthorizationPrincipalSchema, CredentialContextSchema, ProjectionAnomalySchema, ProjectedOrgSchema, ProjectedResourceSchema, CapabilityProfilesSchema, RoleCatalogSchema, EffectiveAuthorizationSchema, ResourcePageSchema, SYSTEM_USER_PREFIX, WORKFLOW_RUN_IN_FLIGHT, WORKFLOW_RUN_IDLE, WORKFLOW_RUN_TERMINAL, WORKFLOW_RUN_STATUSES, WORKFLOW_RUN_GATE_KINDS, WORKFLOW_STEP_STATUSES, WORKFLOW_STEP_IN_FLIGHT, WORKFLOW_SIGNAL_EVENT_SITES, ARCHIVE_WINDOW_MARGIN_DAYS, WORKFLOW_ORG_PURGING_TTL_S, WORKFLOW_ORG_PURGE_FORCE_AFTER_MS, IDEMPOTENCY_HOLDING_STATUSES, WORKFLOW_SCHEDULED_RUN_ID_PREFIX, CLOUD_TASK_RUN_ID_PREFIX, WORKFLOW_SCHEDULE_KEY_MAX, WORKFLOW_SCHEDULE_IDEMPOTENCY_KEY_PREFIX, WORKFLOW_OPERATION_ID_PREFIX, WORKFLOW_CONNECTION_KEY_RE, WORKFLOW_AGENT_APP_CONNECTION_PREFIX, WORKFLOW_JOB_MODEL_SOURCE_LABELS, WORKFLOW_SUSPEND_KINDS, WORKFLOW_RUN_NOTIFICATION_SUSPENDED_KINDS, WORKFLOW_SIGNAL_PAYLOAD_MAX_BYTES, WORKFLOW_SIGNAL_NAME_RE, WORKFLOW_SUSPEND_DEFAULT_TIMEOUT_HOURS, WORKFLOW_RESOLVE_OUTPUT_MAX_BYTES, SCHEDULE_HEALTH_NOTIFY_CHANNELS, SCHEDULE_HEALTH_DEFAULT_NOTIFY, SCHEDULE_HEALTH_LIMITS, KNOWN_KEYS, WORKFLOW_GOAL_JUDGE_SELF, APPROVAL_ARGS_MAX_CHARS, APPROVAL_ARG_STRING_MAX_CHARS, APPROVAL_ARGS_SUMMARY_MAX_CHARS, MAX_DEPTH, MAX_KEYS, MAX_ITEMS, MAX_NODES, MAX_KEY_CHARS, KEY_SCRUB_INPUT_MAX_CHARS, STRING_SCRUB_INPUT_MAX_CHARS, ELLIPSIS, SKIP, SCRUB_SECRETS_BEFORE_PERSIST_ENV, PERSIST_SCRUB_MAX_CHARS, PERSIST_SCRUB_REF_MAX_CHARS, WORKFLOW_AUDIT_EVENTS, WORKFLOW_AUDIT_METADATA_MAX_BYTES, INDENT, WRAP_WIDTH, NOUNS, GET_TOOL_NAMES, PREAMBLE, WORKFLOW_APPROVAL_OUTPUT_DECISIONS, WORKFLOW_APPROVAL_OUTPUT_SCHEMA, JSON_FENCE_RE, DEFAULT_ON_AGENT_FEATURES, SUBAGENT_PER_KEY_FLAG_ENV, PER_KEY_FLAG_VALUES, ONBOARDING_FLOW_KEY, ONBOARDING_SCHEMA_VERSION, id, copy, onboardingHeadingSchema, onboardingRichTextInlineSchema, onboardingRichTextSchema, onboardingDestinationSchema, onboardingArtworkSchema, onboardingAnswerSchema, onboardingQuestionSchema, onboardingTemplateSectionSchema, onboardingInstallScreenSchema, onboardingResultScreenSchema, onboardingConnectScreenSchema, onboardingTemplateContentSchema, onboardingUnavailableOutcomeSchema, onboardingFlowSchema, onboardingActorSchema, onboardingEditorSchema, onboardingPublicationSummarySchema, onboardingValidationIssueSchema, onboardingValidationResponseSchema, onboardingAssetSchema, onboardingPublicAssetSchema, getOnboardingConfigResponseSchema, saveOnboardingDraftRequestSchema, validateOnboardingRequestSchema, publishOnboardingRequestSchema, rollbackOnboardingRequestSchema, onboardingTemplateCatalogItemSchema, getPublishedOnboardingResponseSchema, WEB_ROUTE_PROTOCOL_VERSION, WEB_ROUTE_METHODS, WEB_ROUTE_REQUEST_HEADER_ALLOWLIST, WEB_ROUTE_RESPONSE_HEADER_ALLOWLIST, WEB_ROUTE_MAX_REQUEST_BODY_BYTES, WEB_ROUTE_MAX_RESPONSE_BYTES, WEB_APP_NAME_PATTERN, WEB_APP_ENTRY_HTML_MAX_CHARS, WEB_APP_MAX_ASSET_BYTES, EVIDENCE_SESSION_IDLE_MS, EVIDENCE_MIN_CONVERSATIONS, EVIDENCE_LOW_CONFIDENCE_N, EVIDENCE_SNIPPET_MAX_CHARS, EVIDENCE_EXAMPLES_PER_ITEM, EVIDENCE_SHOWN_ITEMS, EVIDENCE_LATENCY_BOUNDS_MS, EVIDENCE_WORD_BOUNDS, BAD_CONVERSATION_REASONS, ATTACHMENT_LINES, REVIEW_VERDICT_REASON_ORDER, ENV_TEMPLATE_SECRET_KEY_RE, CONNECTION_SEND_NOT_ALLOWED, CONNECTION_RECIPIENT_NOT_ALLOWED, NOT_SEND, PLAIN_ADDRESS, RecipientSet, MCP_MESSAGING_CREATE, MCP_CALENDAR_EVENT_WRITE, REPLY_KEYS, DEDICATED_MAIL_SLUGS, FULL_SUITE_SLUGS, WELL_KNOWN_MAIL_FOLDERS, MEMBER_KEYS, CANONICAL_ORIGIN, CANONICAL_PREFIX, STRICT_BASE64, GMAIL_PREFIX, GMAIL_MESSAGES_SEND, GMAIL_DRAFTS_SEND, GOOGLE_BATCH, GRAPH_VERSION, GRAPH_PRINCIPAL, GRAPH_SEND_MAIL, GRAPH_MESSAGE_ACTION, GRAPH_OWNER, GRAPH_EVENTS, GRAPH_EVENT_COLLECTION, GRAPH_EVENT_ID, GRAPH_EVENT_ITEM, GRAPH_EVENT_ACTION, GRAPH_BATCH, GRAPH_TEAMS_MESSAGE, GRAPH_ACTIVITY_NOTIFICATION, GRAPH_GROUP_CONVERSATION, GCAL_EVENTS, GRAPH_READ_KEYS, MALFORMED_POLICY, BILLING_REJECTION_TEXT_CREDITS, BILLING_REJECTION_TEXT_SEAT, BILLING_REJECTION_TEXT_USER_QUOTA, CUSTOM_MCP_CONNECTION_ID_PREFIX, CUSTOM_MCP_SOURCE, CUSTOM_MCP_TRANSPORT, CUSTOM_MCP_CONNECTION_ID_PATTERN, customMcpConnectionIdSchema, CONNECTION_BACKED_MCP_SOURCES, CUSTOM_MCP_REFERENCE_ID_PATTERN, customMcpReferenceIdSchema, CUSTOM_MCP_AUTH_KINDS, customMcpAuthKindSchema, CUSTOM_MCP_OAUTH_REGISTRATIONS, customMcpOAuthRegistrationSchema, CUSTOM_MCP_HEALTH_STATES, customMcpHealthStateSchema, CUSTOM_MCP_FAILURE_STEPS, customMcpFailureStepSchema, CUSTOM_MCP_CONNECT_STEPS, customMcpConnectStepSchema, customMcpFailureCodeSchema, WORKFLOW_KEY_MAX_LENGTH, CUSTOM_MCP_URL_MAX_LENGTH, CUSTOM_MCP_DISPLAY_NAME_MAX_LENGTH, CUSTOM_MCP_MAX_HEADERS, CUSTOM_MCP_HEADER_NAME_MAX_LENGTH, CUSTOM_MCP_HEADER_VALUE_MAX_LENGTH, CUSTOM_MCP_MAX_TOOLS, CUSTOM_MCP_TOOL_NAME_MAX_LENGTH, CUSTOM_MCP_TOOL_TEXT_MAX_LENGTH, CUSTOM_MCP_MIN_TIMEOUT_MS, CUSTOM_MCP_MAX_TIMEOUT_MS, CUSTOM_MCP_OAUTH_PENDING_TTL_MS, isoDateTime, agentId, nonNegativeInt, customMcpUrlInputSchema, customMcpDisplayNameSchema, customMcpTimeoutSchema, CUSTOM_MCP_RESERVED_HEADER_NAMES, HEADER_NAME, HEADER_VALUE_FORBIDDEN, customMcpHeaderNameSchema, headerValue, customMcpHeadersSchema, customMcpHeadersPatchSchema, customMcpToolNameSchema, customMcpToolSchema, customMcpServerInfoSchema, customMcpToolSelectionSchema, customMcpToolsResponseSchema, customMcpFailureSchema, customMcpHealthSchema, customMcpErrorBodySchema, customMcpConnectionBlockSchema, customMcpConnectionViewSchema, customMcpConnectionResponseSchema, customMcpProbeBodySchema, customMcpOAuthDiscoverySchema, customMcpProbeResponseSchema, createFields, mountAgentField, customMcpCreateAgentBodySchema, customMcpCreateUserBodySchema, customMcpOAuthClientSchema, startFields, customMcpOAuthStartAgentBodySchema, customMcpOAuthStartUserBodySchema, customMcpOAuthStartResponseSchema, nonce, customMcpOAuthSuccessRedirectQuerySchema, CUSTOM_MCP_OAUTH_CALLBACK_ERRORS, customMcpOAuthFailureRedirectQuerySchema, customMcpOAuthFinalizeBodySchema, customMcpCimdDocumentSchema, customMcpPatchBodySchema, customMcpCredentialRequestSchema, customMcpCredentialAuthSchema, customMcpCredentialResponseSchema, CUSTOM_MCP_CREDENTIAL_ERRORS, customMcpCredentialErrorBodySchema, customMcpHealthReportSchema, customMcpProbeRequestSchema, customMcpProbeResultSchema, customMcpOriginUrlSchema, customMcpServerProjectionSchema, customMcpMountUpsertBodySchema;
6292
+ var __defProp3, __name3, PLUMBING_THREAD_CHANNELS, CHANNEL_CONVERSATION_CHANNELS, HIDDEN_THREAD_CHANNELS, CHOICE_PERSON_TURN_CHANNELS, CHOICE_REPLAY_CLIENT_CAPABILITIES, CHOICE_REPLAY_CLIENT_SURFACES, INTEGRATION_PASSTHROUGH_READ_METHODS, URL_REINTERPRETED_PATH_CHARACTERS, PERCENT_ENCODED_DOT, PERCENT_ESCAPE, DECODED_PATH_SEPARATORS, DECODED_LEADING_SEPARATOR, MAX_PERCENT_DECODE_ROUNDS, URL_RESOLUTION_PROBE_BASE, PLATFORM_INVOCATION_CALLERS, SUPERVISION_OPS, SUPERVISION_OPS_WAVE2, SUPERVISION_WATCHDOG_OPS, SUPERVISION_WATCHDOG_ERRORS, SUPERVISION_ROLLBACK_REFUSAL_CODES, SUPERVISION_ROLLBACK_LINEAGE_MAX, SUPERVISION_UNTARGETED_OPS, SUPERVISED_WORKFLOW_VERSIONS_MAX, SUPERVISION_EVENT_KINDS, AGENT_PROVISIONING_LIMITS, AGENT_PROVISIONING_APPROVAL_PAYLOAD_KEY, AGENT_PROVISIONING_ERRORS, PROVISIONED_SUPERVISION_ACTIONS, isNonEmptyString, uniqueStrings, sameSet, AGENT_PROVISIONING_APPROVAL_CARD_MAX_CHARS, APPROVAL_PAYLOAD_MEMBERS, AGENT_CONNECTION_POLICIES, AGENT_CONNECTION_POLICY_DEFAULT, AGENT_CONNECTION_MOUNT_MODES, AGENT_CONNECTION_GOVERNANCE_ERRORS, AGENT_CONNECTION_OPERATION_RULES_MAX, AGENT_CONNECTION_OPERATION_PATTERN_MAX_LENGTH, OPERATION_RULE_METHODS, PATH_SEPARATOR, PATH_SINGLE_SEGMENT_WILDCARD, PATH_REST_WILDCARD, METHOD_OVERRIDE_HEADER_NAMES, METHOD_OVERRIDE_QUERY_NAMES, ODATA_BATCH_SEGMENT, GOOGLE_BATCH_FIRST_SEGMENT, CONNECTION_CHECK_RESULTS, CONNECTION_CHECK_CATALOGUE_V1, CONNECTION_CHECK_NAME_PATTERN, CONNECTION_CHECK_NAME_MAX, CONNECT_OUTCOME_STATUSES, SECRET_TEST_RESULTS, SECRET_DATADOG_REGIONS, SECRET_PROVIDER_CATALOGUE_V1, SECRET_TEST_MAX_RESPONSE_BYTES, SECRET_ENV_KEY_PATTERN, SECRET_REQUEST_ERRORS, SECRET_OUTCOME_STATUSES, CLIENT_OUTCOME_TURNS_MAX, SHORT_TEXT_MAX, SLUG_MAX, shortText, optionalShortText, CONNECTION_REQUEST_TERMINAL_STATES, CONNECTION_USE_ORIGINS, AGENT_CONNECTION_OPERATION_LIMITS_BOUNDS, CURRENCY_CODE, LIMITS_KEYS, CAPS_KEYS, EXCLUSIONS_KEYS, EMAIL_IN_TEXT, MAX_EXCLUSION_DEPTH, PROJECTION_PARAMETER_KEYS, CHANNEL_PARAMETER_KEYS, GMAIL_SYSTEM_LABEL_IDS, ZERO_DECIMAL_CURRENCIES, THREE_DECIMAL_CURRENCIES, DECIMAL_AMOUNT, REDACTED_PLACEHOLDER, PROVIDER_MESSAGE_MAX_CHARS, ERROR_MESSAGE_MAX_CHARS, SECRET_LITERAL_PATTERNS, SECRET_NAME, SECRET_PAIR_PATTERNS, GROUP_COUNT, WORKFLOW_SECRET_KEY_RE, WORKFLOW_RESERVED_SECRET_KEYS, SCRUB_INPUT_MAX_CHARS, SCRUB_CUT_BACKOFF_CHARS, TEST_SESSION_ID_PATTERN, TEST_SESSION_COLLECTION_PREFIX, TEST_EFFECT_BODY_MAX_BYTES, TEST_EFFECT_DROPPED_HEADERS, EVAL_CREDITS_PER_1K_TOKENS, EVAL_RESERVED_TOOL_ID_PREFIXES, CONNECTION_HANDOVER_APPROVAL_PAYLOAD_KEY, CONNECTION_HANDOVER_APPROVAL_CARD_MAX_CHARS, CONNECTION_HANDOVER_LIMITS, MEMBERS, FORMAT_CHARS, oneLine, boundedString, AGENT_METRIC_NAME_PATTERN, AGENT_METRIC_LIMITS, AGENT_OBJECTIVE_ERRORS, CHANGE_LEASE_TTL_MINUTES_MIN, CHANGE_LEASE_TTL_MINUTES_MAX, CHANGE_LEASE_REASON_MAX, CHANGE_LEASE_ERRORS, AGENT_CONFIG_SET_LIMITS, SECRET_ENV_KEY_SUFFIXES, DEFAULT_OWNER_DEPARTURE_POLICY, AGENT_LIFECYCLE_ERRORS, USER_COST_COUNTER_TTL_SECONDS, USER_COST_ATTRIBUTION_CHANNELS, CALLER_DEDUPE_KEY_MAX, FOLLOW_UP_IDEMPOTENCY_TTL_SECONDS, THREAD_FOLLOW_UP_LIMITS, THREAD_FOLLOW_UP_ERRORS, PROGRESS_UPDATE_LIMITS, PAUSABLE_CAPABILITY_KINDS, UNIFIED_CATCH_UP_MAX_WINDOW_HOURS, UNIFIED_CATCH_UP_EVENTS, UNIFIED_CATCH_UP_FILTERABLE_OBJECT_TYPES, AGENT_NEVER_RULES_MAX, AGENT_NEVER_RULE_FIELD_MAX, AGENT_NEVER_RULE_INPUT_MATCH_MAX, NEVER_RULE_ID_PATTERN, NEVER_RULE_HTTP_METHODS, TEMPLATE_DISTRIBUTION_MODES, CHANNEL_SEND_CHANNELS, TAKEOVER_MAX_IDLE_MINUTES, MINUTES_PER_DAY, DEFAULT_IDLE_RELEASE_MINUTES, FALLBACK_IDLE_RELEASE_MINUTES, VARIATION_SELECTORS, SLACK_EMOJI_NAMES, SLACK_SHORTCODE, PLAIN_EMAIL_ADDRESS, DOMAIN, UNSAFE_TEXT, SLACK_CONVERSATION_ID, CHANNEL_SETTING_GROUPS, THREAD_SCOPING_NOUN, TAKEOVER_CHANNEL_TYPES, EMAIL_SETTINGS, SLACK_SETTING_DEFAULTS, SLACK_REACTION_MAX, SLACK_INTRO_MAX, SLACK_EXAMPLE_PROMPTS_MAX, SLACK_EXAMPLE_PROMPT_MAX, SLACK_SUPPORT_CONTACT_MAX, SLACK_SETTINGS, CHANNEL_SETTINGS, REVIEWABLE_ACTION_EXECUTE_TOOL_ALLOWLIST, REVIEWABLE_STANDING_START_TOOLS, REVIEWABLE_MCP_SEND_TOOL_SUFFIX, MCP_TOOL_READ_VERB_RE, MCP_DRAFT_CREATE_VERBS, NON_INTERACTIVE_CHANNELS, RICH_PARTS_MESSAGE_ID_PREFIX, SCREENSHOT_MESSAGE_ID_PREFIX, WORK_ITEMS_KEY, MAX_WORK_ITEMS, LIMITS, BROWSER_COMMANDS, BROWSER_COMMAND_NAMES, LOG_FIELDS_MAX_KEYS, LOG_FIELD_MAX_VALUE_BYTES, LOG_FIELDS_MAX_BYTES, LOG_FIELD_KEY_PATTERN, LOG_FIELD_SECRET_SHAPED_KEY_PATTERNS, LOG_FIELDS_CLAMPED_KEY, LOG_FIELD_ARRAY_COUNT_SUFFIX, LuaLogFieldsError, DESKTOP_FILE_COMMANDS, DESKTOP_FILE_COMMAND_SET, WORKFLOW_RETRY_BACKOFFS, WORKFLOW_RETRY_MIN_ATTEMPTS, WORKFLOW_RETRY_POLICY_KEYS, WORKFLOW_RETRY_MAX_ATTEMPTS, WORKFLOW_RETRY_ENGINE_KEYS, WORKFLOW_JOB_RESOURCES, WORKFLOW_SIDE_EFFECTS, WORKFLOW_MODEL_CLASSES, WORKFLOW_DEFAULT_TASK_CLASS_MAP, WORKFLOW_MODELS_MAX_CLASS_DEFAULT, WORKFLOW_AUTONOMY_NUMERIC_KEYS, WORKFLOW_AUTONOMY_ENVELOPE_KEYS, WORKFLOW_AUTONOMY_DEFAULTS, WORKFLOW_AUTONOMY_CEILINGS, WORKFLOW_AUTONOMY_MAX_RUNS_PER_HOUR_ENV, WORKFLOW_AUTONOMY_MAX_RUNS_PER_HOUR_CEILING, WORKFLOW_AUTONOMY_FORMS_DEFAULT, WORKFLOW_AUTONOMY_MIN_VALUE, WORKFLOW_JOB_RANGES, WORKFLOW_JOB_RANGE_MEMBERS, WORKFLOW_SINGLE_STEP_TYPES, WORKFLOW_HITL_ENTRY_TYPES, WORKFLOW_ARM_ENTRY_TYPES, WORKFLOW_HITL_ARM_CONTAINERS, WORKFLOW_GRAPH_ENTRY_STEP_KINDS, WORKFLOW_ARM_ENTRY_STEP_KINDS, WORKFLOW_BUDGET_MAX_DURATION_SECONDS, MODEL_ID_BYOK_PROVIDERS, MODEL_CLASS_REF_PREFIX, MODEL_SNAPSHOT_SUFFIX, REASONING_EFFORT_VALUES, IMPLICIT_MODEL_SELECTION_SOURCES, PLATFORM_FALLBACK_MODEL_SOURCE, AGENT_NAME_TOKEN, DEFAULT_PERSONA_GUIDE, PERSONAL_SPACE_STARTING_PERSONA, AGENT_LOG_SOURCES, AGENT_LOG_FIELDS_MAX_WIRE_KEYS, LOG_DRAIN_TYPES_PHASE1, LOG_DRAIN_TYPES_PHASE2, LOG_DRAIN_TYPES_IMPLEMENTED, LOG_DRAIN_SOURCES, LOG_DRAIN_MAX_PER_ORG, LOG_DRAIN_MAX_PER_ORG_ENTERPRISE, LOG_DRAIN_DATADOG_SITES, LOG_DRAIN_NEWRELIC_SITES, LOG_DRAIN_ENDPOINT_TEMPLATES, LOG_DRAIN_PRESET_SITES, LOG_DRAIN_BUCKET_NAME_PATTERN, LOG_DRAIN_BUCKET_HOST_PATTERNS, LOG_DRAIN_PRESET_HOST_SUFFIXES, DRAIN_CONTENT_ACK_ERROR_CODE, DRAIN_CONTENT_ACK_FIELD, DrainContentAckRequiredError, LOG_DRAIN_PRESET_PATHS, PRESET_SEGMENT_RE, LOG_DRAIN_QUOTAS, LOG_DRAIN_QUOTA_WARN_RATIO, LOG_DRAIN_QUOTA_DROP_DEBUG_RATIO, LOG_DRAIN_QUOTA_DROP_INFO_RATIO, LOG_DRAIN_QUOTA_PAUSE_RATIO, LOG_EXPORT_SOURCES, LOG_EXPORT_MAX_WINDOW_DAYS, LOG_EXPORT_MAX_WINDOW_MS, LOG_EXPORT_URL_TTL_SECONDS, LOG_EXPORT_FILE_RETENTION_DAYS, LOG_EXPORT_FILE_RETENTION_MS, LOG_EXPORT_PART_MAX_BYTES, LOG_DRAIN_NOTICE_RATE_LIMIT_MS, LOG_DRAIN_VERIFICATION_STALE_MS, LOG_DRAIN_DIGEST_INTERVAL_MS, LOG_DRAIN_DIGEST_MAX_ENTRIES, LOG_DRAIN_NOTICE_ERROR_MAX_CHARS, LOG_DRAIN_USAGE_LINE_ITEM, LOG_DRAIN_BYTES_PER_GIB, DEFAULT_LOG_DRAIN_PLAN_CONFIG, TIERS, LOG_CURSOR_MAX_LENGTH, LOG_CURSOR_MAX_ID_LENGTH, LOG_RELATIVE_TIME_PATTERN, LOG_ISO_TIME_PATTERN, RELATIVE_UNIT_MS, CORE_DRAINING_CODE, CORE_DRAINING_DEFAULT_RETRY_MS, CORE_DRAINING_MAX_RETRY_MS, VoiceNameSchema, PluginProviderSchema, RealtimeProviderSchema, PluginClassSchema, ModelDescriptorSchema, InferenceModelSchema, PluginModelSchema, RealtimeModelSchema, LuaVoiceModelSchema, TurnDetectionSchema, InterruptionSchema, BuiltinAudioClipSchema, AudioConfigSchema, BackgroundAudioEntrySchema, BackgroundAudioSchema, LuaVoiceConfigInnerSchema, LuaVoiceConfigSchema, LuaVoiceRefSchema, LUA_JOB_DEFAULT_TIMEOUT_SECONDS, LUA_JOB_MIN_TIMEOUT_SECONDS, LUA_JOB_MAX_TIMEOUT_SECONDS, KEYS, MAX_BODY_BYTES, MAX_ID_LENGTH, UTC_ISO, TEMPLATE_TRIGGER_URL_ENV_PREFIX, TEMPLATE_INSTALL_POLICY_PER_WORKSPACE_VALUES, SUBJECT_TYPES, SubjectTypeSchema, CREDENTIAL_TYPES, CredentialTypeSchema, DEVICE_OPERATIONS, DeviceOperationSchema, DEVICE_SCOPE_BY_OPERATION, DeviceBindingSchema, IdSchema, SESSION_AUTH_TIME_MAX_S, PrincipalDescriptorSchema, ActorDescriptorSchema, PrincipalOwnerSchema, CredentialLifecycleSchema, GeneralCredentialDescriptorSchema, DeviceCredentialDescriptorSchema, GeneralPrincipalContextSchema, DeviceCredentialPrincipalContextSchema, RawPrincipalContextSchema, PrincipalContextSchema, DeviceCredentialClaimSchema, LUA_CLIENT_HEADER, LUA_CLIENT_APPS, SEMVER_PATTERN, WEB_RELEASE_PATTERN, CLIENT_HEADER_PATTERN, LUA_SESSION_ID_CLAIM, SESSION_REVOKED_CODE, AUTHZ_PROJECTION_VERSION, ProjectedScopeSchema, DisplayRoleSchema, AuthorizationPrincipalSchema, CredentialContextSchema, ProjectionAnomalySchema, ProjectedOrgSchema, ProjectedResourceSchema, CapabilityProfilesSchema, RoleCatalogSchema, EffectiveAuthorizationSchema, ResourcePageSchema, SYSTEM_USER_PREFIX, WORKFLOW_RUN_IN_FLIGHT, WORKFLOW_RUN_IDLE, WORKFLOW_RUN_TERMINAL, WORKFLOW_RUN_STATUSES, WORKFLOW_RUN_GATE_KINDS, WORKFLOW_STEP_STATUSES, WORKFLOW_STEP_IN_FLIGHT, WORKFLOW_SIGNAL_EVENT_SITES, ARCHIVE_WINDOW_MARGIN_DAYS, WORKFLOW_ORG_PURGING_TTL_S, WORKFLOW_ORG_PURGE_FORCE_AFTER_MS, IDEMPOTENCY_HOLDING_STATUSES, WORKFLOW_SCHEDULED_RUN_ID_PREFIX, CLOUD_TASK_RUN_ID_PREFIX, WORKFLOW_SCHEDULE_KEY_MAX, WORKFLOW_SCHEDULE_IDEMPOTENCY_KEY_PREFIX, WORKFLOW_OPERATION_ID_PREFIX, WORKFLOW_CONNECTION_KEY_RE, WORKFLOW_AGENT_APP_CONNECTION_PREFIX, WORKFLOW_JOB_MODEL_SOURCE_LABELS, WORKFLOW_SUSPEND_KINDS, WORKFLOW_RUN_NOTIFICATION_SUSPENDED_KINDS, WORKFLOW_SIGNAL_PAYLOAD_MAX_BYTES, WORKFLOW_SIGNAL_NAME_RE, WORKFLOW_SUSPEND_DEFAULT_TIMEOUT_HOURS, WORKFLOW_RESOLVE_OUTPUT_MAX_BYTES, SCHEDULE_HEALTH_NOTIFY_CHANNELS, SCHEDULE_HEALTH_DEFAULT_NOTIFY, SCHEDULE_HEALTH_LIMITS, KNOWN_KEYS, WORKFLOW_GOAL_JUDGE_SELF, APPROVAL_ARGS_MAX_CHARS, APPROVAL_ARG_STRING_MAX_CHARS, APPROVAL_ARGS_SUMMARY_MAX_CHARS, MAX_DEPTH, MAX_KEYS, MAX_ITEMS, MAX_NODES, MAX_KEY_CHARS, KEY_SCRUB_INPUT_MAX_CHARS, STRING_SCRUB_INPUT_MAX_CHARS, ELLIPSIS, SKIP, SCRUB_SECRETS_BEFORE_PERSIST_ENV, PERSIST_SCRUB_MAX_CHARS, PERSIST_SCRUB_REF_MAX_CHARS, WORKFLOW_AUDIT_EVENTS, WORKFLOW_AUDIT_METADATA_MAX_BYTES, INDENT, WRAP_WIDTH, NOUNS, GET_TOOL_NAMES, PREAMBLE, WORKFLOW_APPROVAL_OUTPUT_DECISIONS, WORKFLOW_APPROVAL_OUTPUT_SCHEMA, JSON_FENCE_RE, DEFAULT_ON_AGENT_FEATURES, SUBAGENT_PER_KEY_FLAG_ENV, PER_KEY_FLAG_VALUES, ONBOARDING_FLOW_KEY, ONBOARDING_SCHEMA_VERSION, id, copy, onboardingHeadingSchema, onboardingRichTextInlineSchema, onboardingRichTextSchema, onboardingDestinationSchema, onboardingArtworkSchema, onboardingAnswerSchema, onboardingQuestionSchema, onboardingTemplateSectionSchema, onboardingInstallScreenSchema, onboardingResultScreenSchema, onboardingConnectScreenSchema, onboardingTemplateContentSchema, onboardingUnavailableOutcomeSchema, onboardingFlowSchema, onboardingActorSchema, onboardingEditorSchema, onboardingPublicationSummarySchema, onboardingValidationIssueSchema, onboardingValidationResponseSchema, onboardingAssetSchema, onboardingPublicAssetSchema, getOnboardingConfigResponseSchema, saveOnboardingDraftRequestSchema, validateOnboardingRequestSchema, publishOnboardingRequestSchema, rollbackOnboardingRequestSchema, onboardingTemplateCatalogItemSchema, getPublishedOnboardingResponseSchema, WEB_ROUTE_PROTOCOL_VERSION, WEB_ROUTE_METHODS, WEB_ROUTE_REQUEST_HEADER_ALLOWLIST, WEB_ROUTE_RESPONSE_HEADER_ALLOWLIST, WEB_ROUTE_MAX_REQUEST_BODY_BYTES, WEB_ROUTE_MAX_RESPONSE_BYTES, WEB_APP_NAME_PATTERN, WEB_APP_ENTRY_HTML_MAX_CHARS, WEB_APP_MAX_ASSET_BYTES, EVIDENCE_SESSION_IDLE_MS, EVIDENCE_MIN_CONVERSATIONS, EVIDENCE_LOW_CONFIDENCE_N, EVIDENCE_SNIPPET_MAX_CHARS, EVIDENCE_EXAMPLES_PER_ITEM, EVIDENCE_SHOWN_ITEMS, EVIDENCE_LATENCY_BOUNDS_MS, EVIDENCE_WORD_BOUNDS, BAD_CONVERSATION_REASONS, ATTACHMENT_LINES, REVIEW_VERDICT_REASON_ORDER, ENV_TEMPLATE_SECRET_KEY_RE, CONNECTION_SEND_NOT_ALLOWED, CONNECTION_RECIPIENT_NOT_ALLOWED, NOT_SEND, PLAIN_ADDRESS, RecipientSet, MCP_MESSAGING_CREATE, MCP_CALENDAR_EVENT_WRITE, REPLY_KEYS, DEDICATED_MAIL_SLUGS, FULL_SUITE_SLUGS, WELL_KNOWN_MAIL_FOLDERS, MEMBER_KEYS, CANONICAL_ORIGIN, CANONICAL_PREFIX, STRICT_BASE64, GMAIL_PREFIX, GMAIL_MESSAGES_SEND, GMAIL_DRAFTS_SEND, GOOGLE_BATCH, GRAPH_VERSION, GRAPH_PRINCIPAL, GRAPH_SEND_MAIL, GRAPH_MESSAGE_ACTION, GRAPH_OWNER, GRAPH_EVENTS, GRAPH_EVENT_COLLECTION, GRAPH_EVENT_ID, GRAPH_EVENT_ITEM, GRAPH_EVENT_ACTION, GRAPH_BATCH, GRAPH_TEAMS_MESSAGE, GRAPH_ACTIVITY_NOTIFICATION, GRAPH_GROUP_CONVERSATION, GCAL_EVENTS, GRAPH_READ_KEYS, MALFORMED_POLICY, BILLING_REJECTION_TEXT_CREDITS, BILLING_REJECTION_TEXT_SEAT, BILLING_REJECTION_TEXT_USER_QUOTA, CUSTOM_MCP_CONNECTION_ID_PREFIX, CUSTOM_MCP_SOURCE, CUSTOM_MCP_TRANSPORT, CUSTOM_MCP_CONNECTION_ID_PATTERN, customMcpConnectionIdSchema, CONNECTION_BACKED_MCP_SOURCES, CUSTOM_MCP_REFERENCE_ID_PATTERN, customMcpReferenceIdSchema, CUSTOM_MCP_AUTH_KINDS, customMcpAuthKindSchema, CUSTOM_MCP_OAUTH_REGISTRATIONS, customMcpOAuthRegistrationSchema, CUSTOM_MCP_HEALTH_STATES, customMcpHealthStateSchema, CUSTOM_MCP_FAILURE_STEPS, customMcpFailureStepSchema, CUSTOM_MCP_CONNECT_STEPS, customMcpConnectStepSchema, customMcpFailureCodeSchema, WORKFLOW_KEY_MAX_LENGTH, CUSTOM_MCP_URL_MAX_LENGTH, CUSTOM_MCP_DISPLAY_NAME_MAX_LENGTH, CUSTOM_MCP_MAX_HEADERS, CUSTOM_MCP_HEADER_NAME_MAX_LENGTH, CUSTOM_MCP_HEADER_VALUE_MAX_LENGTH, CUSTOM_MCP_MAX_TOOLS, CUSTOM_MCP_TOOL_NAME_MAX_LENGTH, CUSTOM_MCP_TOOL_TEXT_MAX_LENGTH, CUSTOM_MCP_MIN_TIMEOUT_MS, CUSTOM_MCP_MAX_TIMEOUT_MS, CUSTOM_MCP_OAUTH_PENDING_TTL_MS, isoDateTime, agentId, nonNegativeInt, customMcpUrlInputSchema, customMcpDisplayNameSchema, customMcpTimeoutSchema, CUSTOM_MCP_RESERVED_HEADER_NAMES, HEADER_NAME, HEADER_VALUE_FORBIDDEN, customMcpHeaderNameSchema, headerValue, customMcpHeadersSchema, customMcpHeadersPatchSchema, customMcpToolNameSchema, customMcpToolSchema, customMcpServerInfoSchema, customMcpToolSelectionSchema, customMcpToolsResponseSchema, customMcpFailureSchema, customMcpHealthSchema, customMcpErrorBodySchema, customMcpConnectionBlockSchema, customMcpConnectionViewSchema, customMcpConnectionResponseSchema, customMcpProbeBodySchema, customMcpOAuthDiscoverySchema, customMcpProbeResponseSchema, createFields, mountAgentField, customMcpCreateAgentBodySchema, customMcpCreateUserBodySchema, customMcpOAuthClientSchema, startFields, customMcpOAuthStartAgentBodySchema, customMcpOAuthStartUserBodySchema, customMcpOAuthStartResponseSchema, nonce, customMcpOAuthSuccessRedirectQuerySchema, CUSTOM_MCP_OAUTH_CALLBACK_ERRORS, customMcpOAuthFailureRedirectQuerySchema, customMcpOAuthFinalizeBodySchema, customMcpCimdDocumentSchema, customMcpPatchBodySchema, customMcpCredentialRequestSchema, customMcpCredentialAuthSchema, customMcpCredentialResponseSchema, CUSTOM_MCP_CREDENTIAL_ERRORS, customMcpCredentialErrorBodySchema, customMcpHealthReportSchema, customMcpProbeRequestSchema, customMcpProbeResultSchema, customMcpOriginUrlSchema, customMcpServerProjectionSchema, customMcpMountUpsertBodySchema;
6216
6293
  var init_dist = __esm({
6217
6294
  "../shared-types/dist/index.mjs"() {
6218
6295
  "use strict";
@@ -7507,7 +7584,7 @@ var init_dist = __esm({
7507
7584
  FORMAT_CHARS = /[\p{Cf}\u200b-\u200d\u202a-\u202e\u2066-\u2069\ufeff]/u;
7508
7585
  __name(hasFormatCharacters, "hasFormatCharacters");
7509
7586
  __name3(hasFormatCharacters, "hasFormatCharacters");
7510
- oneLine = /* @__PURE__ */ __name3((text) => text.replace(/[\u0000-\u001f\u007f-\u009f\u2028\u2029"\u201c\u201d]/g, " ").replace(/\s+/g, " ").trim(), "oneLine");
7587
+ oneLine = /* @__PURE__ */ __name3((text2) => text2.replace(/[\u0000-\u001f\u007f-\u009f\u2028\u2029"\u201c\u201d]/g, " ").replace(/\s+/g, " ").trim(), "oneLine");
7511
7588
  __name(normalizedHandoverName, "normalizedHandoverName");
7512
7589
  __name3(normalizedHandoverName, "normalizedHandoverName");
7513
7590
  __name(handoverAgentIdSuffix, "handoverAgentIdSuffix");
@@ -8246,6 +8323,25 @@ var init_dist = __esm({
8246
8323
  __name3(citationDedupeKeys, "citationDedupeKeys");
8247
8324
  __name(foldRichPartsIntoMessages, "foldRichPartsIntoMessages");
8248
8325
  __name3(foldRichPartsIntoMessages, "foldRichPartsIntoMessages");
8326
+ WORK_ITEMS_KEY = "_luaWorkItems";
8327
+ MAX_WORK_ITEMS = 100;
8328
+ LIMITS = {
8329
+ id: 200,
8330
+ title: 120,
8331
+ group: 40,
8332
+ status: 40,
8333
+ action: 200
8334
+ };
8335
+ __name(text, "text");
8336
+ __name3(text, "text");
8337
+ __name(normalizeWorkItems, "normalizeWorkItems");
8338
+ __name3(normalizeWorkItems, "normalizeWorkItems");
8339
+ __name(workItemsRecord, "workItemsRecord");
8340
+ __name3(workItemsRecord, "workItemsRecord");
8341
+ __name(withoutWorkItems, "withoutWorkItems");
8342
+ __name3(withoutWorkItems, "withoutWorkItems");
8343
+ __name(mutationWithoutWorkItems, "mutationWithoutWorkItems");
8344
+ __name3(mutationWithoutWorkItems, "mutationWithoutWorkItems");
8249
8345
  BROWSER_COMMANDS = [
8250
8346
  // health + lifecycle / navigation
8251
8347
  {
@@ -13835,17 +13931,17 @@ function firstAskDeadline(node) {
13835
13931
  return void 0;
13836
13932
  }
13837
13933
  function liftRenderedApprover(row, rendered) {
13838
- const text = (rendered ?? "").trim();
13839
- if (!text) return null;
13934
+ const text2 = (rendered ?? "").trim();
13935
+ if (!text2) return null;
13840
13936
  if (row === "users") {
13841
13937
  let members = null;
13842
- if (text.startsWith("[")) {
13938
+ if (text2.startsWith("[")) {
13843
13939
  try {
13844
- members = JSON.parse(text);
13940
+ members = JSON.parse(text2);
13845
13941
  } catch {
13846
13942
  return null;
13847
13943
  }
13848
- } else members = text.split(",").map((s) => s.trim());
13944
+ } else members = text2.split(",").map((s) => s.trim());
13849
13945
  if (!Array.isArray(members) || members.length === 0 || members.length > APPROVER_SPEC_MAX_USERS) return null;
13850
13946
  if (!members.every((m) => typeof m === "string" && m.length > 0 && m.length <= 128)) return null;
13851
13947
  return {
@@ -13854,11 +13950,11 @@ function liftRenderedApprover(row, rendered) {
13854
13950
  ].sort()
13855
13951
  };
13856
13952
  }
13857
- if (text.length > 128 || text.startsWith("[") || text.startsWith("{")) return null;
13953
+ if (text2.length > 128 || text2.startsWith("[") || text2.startsWith("{")) return null;
13858
13954
  return row === "role" ? {
13859
- role: text
13955
+ role: text2
13860
13956
  } : {
13861
- group: text
13957
+ group: text2
13862
13958
  };
13863
13959
  }
13864
13960
  function approverUsersOf(users) {
@@ -14015,9 +14111,9 @@ function schemaAtPath(schema, path3) {
14015
14111
  }
14016
14112
  return cur;
14017
14113
  }
14018
- function templateStepRefs(text) {
14114
+ function templateStepRefs(text2) {
14019
14115
  const ids = [];
14020
- for (const m of text.matchAll(TEMPLATE_STEP_REF)) ids.push(m[1]);
14116
+ for (const m of text2.matchAll(TEMPLATE_STEP_REF)) ids.push(m[1]);
14021
14117
  return ids;
14022
14118
  }
14023
14119
  function readMapConfig(raw) {
@@ -19483,17 +19579,17 @@ var init_dist3 = __esm({
19483
19579
  body: body !== void 0 ? JSON.stringify(body) : void 0
19484
19580
  });
19485
19581
  if (!res.ok) {
19486
- let text2;
19582
+ let text22;
19487
19583
  try {
19488
- text2 = await res.text();
19584
+ text22 = await res.text();
19489
19585
  } catch {
19490
- text2 = void 0;
19586
+ text22 = void 0;
19491
19587
  }
19492
- throw new BackupHttpError(`Backup request failed: ${method} ${path3} \u2192 ${res.status} ${res.statusText}`, res.status, endpoint, text2);
19588
+ throw new BackupHttpError(`Backup request failed: ${method} ${path3} \u2192 ${res.status} ${res.statusText}`, res.status, endpoint, text22);
19493
19589
  }
19494
- const text = await res.text();
19495
- if (!text) return void 0;
19496
- return JSON.parse(text);
19590
+ const text2 = await res.text();
19591
+ if (!text2) return void 0;
19592
+ return JSON.parse(text2);
19497
19593
  }
19498
19594
  /**
19499
19595
  * `POST /backup/check-blobs` — returns existing vs missing partition.
@@ -21813,6 +21909,7 @@ var UserDataInstance;
21813
21909
  var init_user_instance = __esm({
21814
21910
  "src/instances/user.instance.ts"() {
21815
21911
  "use strict";
21912
+ init_dist();
21816
21913
  __name(omit, "omit");
21817
21914
  UserDataInstance = class {
21818
21915
  static {
@@ -21873,6 +21970,8 @@ var init_user_instance = __esm({
21873
21970
  "patch",
21874
21971
  "unset",
21875
21972
  "clear",
21973
+ "setWorkItems",
21974
+ "clearWorkItems",
21876
21975
  "toJSON",
21877
21976
  "_luaProfile"
21878
21977
  ];
@@ -21973,7 +22072,40 @@ var init_user_instance = __esm({
21973
22072
  });
21974
22073
  }
21975
22074
  /**
21976
- * Clears all user data for the current user
22075
+ * Publishes this user's My work list (LUA-1028): the open work they see in Frontline's "My work",
22076
+ * replacing the previous list. Publish whenever the work changes, for everyone it affects.
22077
+ * @param items - At most 100 items; each `action` is the message sent when the user taps it
22078
+ * @throws Error naming the first invalid item (nothing is sent), or if the write fails
22079
+ *
22080
+ * @example
22081
+ * const technician = await User.get({ phone: '+254700000000' });
22082
+ * await technician?.setWorkItems([
22083
+ * { id: 'MNT-00123', title: 'MNT-00123 · Fryer not heating', group: 'Assigned to you',
22084
+ * status: 'In progress', updatedAt: new Date(), action: 'Show MNT-00123' },
22085
+ * ]);
22086
+ */
22087
+ async setWorkItems(items) {
22088
+ normalizeWorkItems(items);
22089
+ try {
22090
+ this.data = await this.userAPI.setWorkItems(items);
22091
+ } catch (error) {
22092
+ throw new Error("Failed to set work items", {
22093
+ cause: error
22094
+ });
22095
+ }
22096
+ }
22097
+ /** Removes this user's My work list. */
22098
+ async clearWorkItems() {
22099
+ try {
22100
+ this.data = await this.userAPI.clearWorkItems();
22101
+ } catch (error) {
22102
+ throw new Error("Failed to clear work items", {
22103
+ cause: error
22104
+ });
22105
+ }
22106
+ }
22107
+ /**
22108
+ * Clears all user data for the current user (the My work list included)
21977
22109
  * @returns Promise resolving to `{ success: true }` if clearing was successful
21978
22110
  * @throws Error if the clear operation fails
21979
22111
  */
@@ -22040,6 +22172,7 @@ var init_user_data_api_service = __esm({
22040
22172
  init_http_client();
22041
22173
  init_user_instance();
22042
22174
  init_lazy_instances();
22175
+ init_dist();
22043
22176
  UserDataApi = class _UserDataApi extends HttpClient {
22044
22177
  static {
22045
22178
  __name(this, "UserDataApi");
@@ -22087,7 +22220,7 @@ var init_user_data_api_service = __esm({
22087
22220
  throw new Error(response.error?.message || "Failed to get user data");
22088
22221
  }
22089
22222
  const profile = response.data?._luaProfile;
22090
- const { _luaProfile, ...data } = response.data || {};
22223
+ const { _luaProfile, ...data } = withoutWorkItems(response.data || {});
22091
22224
  const scopedApi = userId ? new _UserDataApi(this.baseUrl, this.credential, this.agentId, userId) : this;
22092
22225
  return new UserDataInstance(scopedApi, data, profile);
22093
22226
  }
@@ -22126,19 +22259,41 @@ var init_user_data_api_service = __esm({
22126
22259
  * @throws Error if the update fails or the request is unsuccessful
22127
22260
  */
22128
22261
  async update(data) {
22129
- const response = await this.httpPut(this.dataPath, data, {});
22262
+ const response = await this.httpPut(this.dataPath, withoutWorkItems(data), {});
22130
22263
  if (!response.success) {
22131
22264
  throw new Error(response.error?.message || "Failed to update user data");
22132
22265
  }
22133
- const { _luaProfile, ...cleanData } = response.data || {};
22266
+ const { _luaProfile, ...cleanData } = withoutWorkItems(response.data || {});
22134
22267
  return cleanData;
22135
22268
  }
22136
22269
  async patch(mutation) {
22270
+ return this.sendPatch(mutationWithoutWorkItems(mutation));
22271
+ }
22272
+ /**
22273
+ * Publishes the user's My work list (LUA-1028), replacing the previous one. Validated first;
22274
+ * a wrong shape throws before anything is sent.
22275
+ */
22276
+ async setWorkItems(items) {
22277
+ return this.sendPatch({
22278
+ set: {
22279
+ [WORK_ITEMS_KEY]: workItemsRecord(items)
22280
+ }
22281
+ });
22282
+ }
22283
+ /** Removes the user's My work list. */
22284
+ async clearWorkItems() {
22285
+ return this.sendPatch({
22286
+ unset: [
22287
+ WORK_ITEMS_KEY
22288
+ ]
22289
+ });
22290
+ }
22291
+ async sendPatch(mutation) {
22137
22292
  const response = await this.httpPatch(this.dataPath, mutation, {});
22138
22293
  if (!response.success) {
22139
22294
  throw new Error(response.error?.message || "Failed to patch user data");
22140
22295
  }
22141
- const { _luaProfile, ...cleanData } = response.data || {};
22296
+ const { _luaProfile, ...cleanData } = withoutWorkItems(response.data || {});
22142
22297
  return cleanData;
22143
22298
  }
22144
22299
  /**
@@ -25878,10 +26033,10 @@ var log = Object.freeze({
25878
26033
  });
25879
26034
  function emitLocalLog(level, message, fields) {
25880
26035
  const normalized = normalizeLogFields(fields);
25881
- const text = typeof message === "object" && message !== null ? JSON.stringify(message) : String(message);
26036
+ const text2 = typeof message === "object" && message !== null ? JSON.stringify(message) : String(message);
25882
26037
  const write = level === "error" ? console.error : level === "warn" ? console.warn : level === "info" ? console.info : console.debug;
25883
- if (normalized) write(text, JSON.stringify(normalized));
25884
- else write(text);
26038
+ if (normalized) write(text2, JSON.stringify(normalized));
26039
+ else write(text2);
25885
26040
  }
25886
26041
  __name(emitLocalLog, "emitLocalLog");
25887
26042
  var ToolFlag = /* @__PURE__ */ (function(ToolFlag2) {