@opencxh/domain 1.222.0 → 1.224.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.
package/dist/index.js CHANGED
@@ -1176,17 +1176,21 @@ const Tt = "assignment";
1176
1176
  function Mi(e) {
1177
1177
  return `${Tt}:${e}`;
1178
1178
  }
1179
- function Ci(e, t, n) {
1179
+ function Ci(e, t, n, r) {
1180
1180
  if (e.direction === "inbound") return !0;
1181
1181
  if (e.author?.type === "user" && e.author.id === t) return !1;
1182
- const r = e.payload?.mentions;
1183
- return Array.isArray(r) && r.includes(t) ? !0 : n === "reply";
1182
+ const i = e.payload?.mentions;
1183
+ return Array.isArray(i) && i.includes(t) || r && r === t ? !0 : n === "reply";
1184
1184
  }
1185
1185
  function ki(e) {
1186
+ const { targetAuthorId: t, reactorId: n, agentId: r, on: i } = e;
1187
+ return !i || !t || t !== r ? !1 : n !== r;
1188
+ }
1189
+ function Oi(e) {
1186
1190
  return e.subjectKind && e.subjectId ? { type: e.subjectKind, id: e.subjectId } : void 0;
1187
1191
  }
1188
1192
  const wt = 12;
1189
- function Oi(e, t, n = wt) {
1193
+ function vi(e, t, n = wt) {
1190
1194
  const r = t + 1;
1191
1195
  return e ? e.kind === "done" ? { status: "done", waitingOn: null, turns: r, reason: e.note } : e.kind === "escalate" ? { status: "escalated", waitingOn: null, turns: r, reason: e.reason } : r >= n ? {
1192
1196
  status: "escalated",
@@ -1200,28 +1204,28 @@ function Oi(e, t, n = wt) {
1200
1204
  reason: "de agent rondde zijn beurt af zonder te zeggen wat er moet gebeuren (wachten, afronden of overdragen)"
1201
1205
  };
1202
1206
  }
1203
- const vi = /* @__PURE__ */ new Set(["mail", "message"]);
1207
+ const xi = /* @__PURE__ */ new Set(["mail", "message"]);
1204
1208
  function It(e, t) {
1205
1209
  const n = e.settings?.signatures?.[t];
1206
1210
  return !n?.enabled || !n.body || n.body.trim() === "" ? null : n;
1207
1211
  }
1208
- function xi(e, t, n, r = "html") {
1212
+ function Ni(e, t, n, r = "html") {
1209
1213
  if (!e) return n;
1210
1214
  const i = It(e, t);
1211
1215
  return i ? `${n}${r === "text" ? `
1212
1216
 
1213
1217
  ` : t === "mail" ? "<br><br>-- <br>" : "<br><br>"}${i.body}` : n;
1214
1218
  }
1215
- function Ni(e) {
1219
+ function Ri(e) {
1216
1220
  return e.endpoints ?? [];
1217
1221
  }
1218
- const Mt = 36e5, Ct = 864e5, E = -1 / 0, Ri = (e) => e.score > E, O = {
1222
+ const Mt = 36e5, Ct = 864e5, E = -1 / 0, Di = (e) => e.score > E, O = {
1219
1223
  urgent: 40,
1220
1224
  high: 25,
1221
1225
  normal: 10,
1222
1226
  low: 0
1223
1227
  };
1224
- function Di(e) {
1228
+ function $i(e) {
1225
1229
  return Object.fromEntries(e.map((t) => [t.resourceId, t]));
1226
1230
  }
1227
1231
  const kt = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i, ve = /\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;
@@ -1229,7 +1233,7 @@ function Ot(e, t) {
1229
1233
  return !!(e && kt.test(e) || t && ve.test(t));
1230
1234
  }
1231
1235
  const vt = 3, xt = 600;
1232
- function $i(e, t) {
1236
+ function Li(e, t) {
1233
1237
  return e >= vt || t >= xt;
1234
1238
  }
1235
1239
  const Nt = [
@@ -1242,7 +1246,7 @@ const Nt = [
1242
1246
  "feedback-id",
1243
1247
  "x-mailer"
1244
1248
  ];
1245
- function Li(e) {
1249
+ function Pi(e) {
1246
1250
  const t = {};
1247
1251
  for (const n of e) {
1248
1252
  const r = n.name?.toLowerCase();
@@ -1251,7 +1255,7 @@ function Li(e) {
1251
1255
  return t;
1252
1256
  }
1253
1257
  const Rt = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|notifications?|bounce|postmaster|mailer)@/i, Dt = /(^|[._+-])(newsletter|nieuwsbrief|marketing|mailing)@/i;
1254
- function Pi(e) {
1258
+ function Ui(e) {
1255
1259
  const t = e.headers ?? {}, n = e.from?.email, r = t["auto-submitted"]?.toLowerCase();
1256
1260
  if (r && r !== "no" || t["x-auto-response-suppress"] || n && Rt.test(n))
1257
1261
  return "automated";
@@ -1285,20 +1289,20 @@ function Gt(e, t) {
1285
1289
  const n = e.assignedInboxId ? t?.[e.assignedInboxId] : void 0;
1286
1290
  return typeof n == "number" && n > 0 ? n : Ut[e.priority ?? "normal"];
1287
1291
  }
1288
- function Ui(e) {
1292
+ function Ki(e) {
1289
1293
  const t = {};
1290
1294
  for (const n of e)
1291
1295
  typeof n.slaHours == "number" && n.slaHours > 0 && (t[n.id] = n.slaHours);
1292
1296
  return t;
1293
1297
  }
1294
- function Ki(e, t, n) {
1298
+ function ji(e, t, n) {
1295
1299
  return !Ne(e.status) || e.firstResponseAt ? !1 : H(e, t) > Gt(e, n);
1296
1300
  }
1297
1301
  function Ft(e, t) {
1298
1302
  const n = e.lastActivityPreview;
1299
1303
  return n?.direction !== "outbound" || !xe(n.type) ? !1 : H(e, t) < Kt;
1300
1304
  }
1301
- function ji(e, t) {
1305
+ function Bi(e, t) {
1302
1306
  if (!Ne(e.status)) return { score: E, reasons: [] };
1303
1307
  if (e.snoozedTill && e.snoozedTill > t.now) return { score: E, reasons: [] };
1304
1308
  if (Ft(e, t.now)) return { score: E, reasons: [] };
@@ -1314,17 +1318,17 @@ function ji(e, t) {
1314
1318
  const a = e.lastActivityPreview;
1315
1319
  return a?.type === "AI_ACTION_PROPOSED" && (n += 30, r.push("awaiting-approval")), a?.direction === "outbound" && xe(a.type) && (n += 10, r.push("no-reply")), !e.firstResponseAt && e.lastActivityPreview?.direction === "inbound" && (n += 10, r.push("awaiting-reply")), (e.tags?.some((d) => d === "marketing" || d === "automated") || Ot(e.remoteParty?.resource, e.lastActivityPreview?.snippet)) && (n -= Pt, r.push("bulk")), { score: n, reasons: r };
1316
1320
  }
1317
- const Bi = (e) => !!e.assignedUserId || !!e.assignedInboxId, Hi = (e) => e.status === "closed", Gi = (e) => ({
1321
+ const Hi = (e) => !!e.assignedUserId || !!e.assignedInboxId, Gi = (e) => e.status === "closed", Fi = (e) => ({
1318
1322
  urgent: 10,
1319
1323
  high: 5,
1320
1324
  normal: 2,
1321
1325
  low: 1
1322
- })[e.priority] || 0, Fi = (e, t = 30) => e.title?.length <= t ? e.title : `${e.title.substring(0, t)}...`;
1323
- function Wi(e, t) {
1326
+ })[e.priority] || 0, Wi = (e, t = 30) => e.title?.length <= t ? e.title : `${e.title.substring(0, t)}...`;
1327
+ function Vi(e, t) {
1324
1328
  const n = e.labels ?? [];
1325
1329
  return n.find((r) => r.locale === t)?.label ?? n[0]?.label ?? e.url;
1326
1330
  }
1327
- function Vi(e, t, n) {
1331
+ function zi(e, t, n) {
1328
1332
  const r = e.translations ?? [];
1329
1333
  return r.find((i) => i.locale === t) ?? (n ? r.find((i) => i.locale === n) : void 0) ?? { locale: t };
1330
1334
  }
@@ -1347,10 +1351,10 @@ function Re(e) {
1347
1351
  const t = (e ?? "").toLowerCase();
1348
1352
  return ae.find((n) => n.code === t) ?? ae.find((n) => n.code === t.split("-")[0]);
1349
1353
  }
1350
- function zi(e) {
1354
+ function Xi(e) {
1351
1355
  return Re(e)?.label ?? e;
1352
1356
  }
1353
- function Xi(e) {
1357
+ function Yi(e) {
1354
1358
  const t = Re(e);
1355
1359
  return t ? t.english === t.label ? `${t.english} (${t.code})` : `${t.english} — ${t.label} (${t.code})` : e;
1356
1360
  }
@@ -1364,7 +1368,7 @@ function Wt(e, t) {
1364
1368
  }
1365
1369
  return r;
1366
1370
  }
1367
- function Yi(e, t, n) {
1371
+ function qi(e, t, n) {
1368
1372
  if (!e) return !0;
1369
1373
  if (e === t) return !1;
1370
1374
  const r = new Map(n.map((a) => [a.id, a]));
@@ -1392,13 +1396,13 @@ const zt = "en";
1392
1396
  function Xt(e) {
1393
1397
  return e.defaultLocale || e.locale || zt;
1394
1398
  }
1395
- function qi(e) {
1399
+ function Ji(e) {
1396
1400
  const t = /* @__PURE__ */ new Set(), n = [];
1397
1401
  for (const r of [Xt(e), ...e.locales ?? []])
1398
1402
  !r || t.has(r) || (t.add(r), n.push(r));
1399
1403
  return n;
1400
1404
  }
1401
- function Ji(e, t, n) {
1405
+ function Zi(e, t, n) {
1402
1406
  const r = e.translations ?? [];
1403
1407
  return r.find((i) => i.locale === t)?.name ?? (n ? r.find((i) => i.locale === n)?.name : void 0) ?? e.name;
1404
1408
  }
@@ -1429,22 +1433,22 @@ function Yt(e, t) {
1429
1433
  return e.userId === t.userId;
1430
1434
  }
1431
1435
  }
1432
- function Zi(e, t) {
1436
+ function Qi(e, t) {
1433
1437
  return e.filter((n) => n.enabled && Yt(n.ownerScope, t));
1434
1438
  }
1435
- function Qi(e) {
1439
+ function eo(e) {
1436
1440
  return e.credentialScope ? e.credentialScope : (e.authMode ?? "header") === "header" || e.oauth?.scope === "org" ? "shared" : "per-user";
1437
1441
  }
1438
- function eo(e) {
1442
+ function to(e) {
1439
1443
  return `mcp__${e}__`;
1440
1444
  }
1441
- const to = 1e3, no = 2e3, ro = 500, io = 12e3, oo = 4e3, qt = ["contact", "company", "work_item"];
1442
- function ao(e) {
1445
+ const no = 1e3, ro = 2e3, io = 500, oo = 12e3, ao = 4e3, qt = ["contact", "company", "work_item"];
1446
+ function so(e) {
1443
1447
  if (!e) return !1;
1444
1448
  const t = e.slice(0, e.indexOf(":"));
1445
1449
  return qt.includes(t);
1446
1450
  }
1447
- const so = "onboarding-source", co = ["support", "billing", "availability", "sales", "onboarding"], lo = ["keep", "replace"];
1451
+ const co = "onboarding-source", lo = ["support", "billing", "availability", "sales", "onboarding"], uo = ["keep", "replace"];
1448
1452
  function Jt(e) {
1449
1453
  switch (e.kind) {
1450
1454
  case "user":
@@ -1455,7 +1459,7 @@ function Jt(e) {
1455
1459
  return "org";
1456
1460
  }
1457
1461
  }
1458
- function uo(e) {
1462
+ function po(e) {
1459
1463
  if (typeof e != "string") return;
1460
1464
  const t = e.trim();
1461
1465
  if (t === "org") return { kind: "org" };
@@ -1481,13 +1485,13 @@ function Qt(e) {
1481
1485
  }
1482
1486
  }
1483
1487
  const en = Qt;
1484
- function po(e) {
1488
+ function fo(e) {
1485
1489
  return e.agentId ? { kind: "user", userId: e.agentId } : en(e.ownerScope);
1486
1490
  }
1487
- function fo(e) {
1491
+ function mo(e) {
1488
1492
  return Zt(e);
1489
1493
  }
1490
- function mo(e, t) {
1494
+ function go(e, t) {
1491
1495
  if (!t) return;
1492
1496
  let n = e;
1493
1497
  for (const r of t.split(".")) {
@@ -1496,24 +1500,24 @@ function mo(e, t) {
1496
1500
  }
1497
1501
  return n;
1498
1502
  }
1499
- function go(e, t) {
1503
+ function ho(e, t) {
1500
1504
  return e.targets.find((n) => n.activityTypes.includes(t));
1501
1505
  }
1502
- function ho(e, t) {
1506
+ function yo(e, t) {
1503
1507
  if (t)
1504
1508
  return e.targets.find((n) => n.id === t);
1505
1509
  }
1506
1510
  function tn(e) {
1507
1511
  return e?.kind === "assignment";
1508
1512
  }
1509
- function yo(e) {
1513
+ function bo(e) {
1510
1514
  const { trigger: t, agentId: n, target: r, activityType: i, assigneeUserId: o, authorUserId: a } = e;
1511
1515
  return tn(t) ? n ? r ? r.activityTypes.includes(i) ? o ? o !== n ? "assigned to someone else" : a && a === n ? "the agent assigned this to itself, which would restart its own run" : null : `no assignee found at ${r.assigneePath}` : `activity type ${i} does not announce an assignment for ${r.id}` : `assignment target kind "${t.targetKind}" is not declared by any installed app` : "this playbook has no agent, so an assignment can never be for it" : "trigger is not an assignment trigger";
1512
1516
  }
1513
- function bo(e) {
1517
+ function Ao(e) {
1514
1518
  return (e.startsWith("tool:") ? e.slice(5) : e).replace(/__/g, " · ").replace(/\./g, " · ").replace(/_/g, " ");
1515
1519
  }
1516
- const Ao = [
1520
+ const Eo = [
1517
1521
  { name: "text", type: "string" },
1518
1522
  { name: "subject", type: "string" },
1519
1523
  { name: "from", type: "string" },
@@ -1547,7 +1551,7 @@ const Ao = [
1547
1551
  // `buildTriggerVars` cannot fill it itself: the job does that with the catalog in hand, before
1548
1552
  // the trigger filter runs — like contactId/companyId above.
1549
1553
  { name: "assigneeUserId", type: "string" }
1550
- ], Eo = {
1554
+ ], So = {
1551
1555
  topics: [
1552
1556
  { name: "topicId", type: "string" },
1553
1557
  { name: "topic", type: "string" },
@@ -1569,16 +1573,16 @@ function on(e) {
1569
1573
  return e?.type === rn ? e.id : void 0;
1570
1574
  }
1571
1575
  const an = 64, sn = 8e3;
1572
- function So(e) {
1576
+ function _o(e) {
1573
1577
  const t = typeof e == "number" ? e : Number(String(e ?? "").trim());
1574
1578
  if (!(!Number.isFinite(t) || t <= 0))
1575
1579
  return Math.min(Math.max(Math.round(t), an), sn);
1576
1580
  }
1577
- const _o = { kind: "workflow", steps: [] };
1578
- function To(e) {
1581
+ const To = { kind: "workflow", steps: [] };
1582
+ function wo(e) {
1579
1583
  return e?.kind === "workflow" ? e.steps : [];
1580
1584
  }
1581
- function wo(e) {
1585
+ function Io(e) {
1582
1586
  return e?.kind === "procedure" ? e.procedure : void 0;
1583
1587
  }
1584
1588
  function cn(e) {
@@ -1586,31 +1590,31 @@ function cn(e) {
1586
1590
  return { total: n, rate: n ? t / n : 0 };
1587
1591
  }
1588
1592
  const ln = 10, un = 0.9;
1589
- function Io(e) {
1593
+ function Mo(e) {
1590
1594
  const { total: t, rate: n } = cn(e);
1591
1595
  return t >= ln && n >= un;
1592
1596
  }
1593
1597
  const dn = ["done", "escalated", "failed", "stopped"];
1594
- function Mo(e) {
1598
+ function Co(e) {
1595
1599
  return dn.includes(e);
1596
1600
  }
1597
1601
  function pn(e) {
1598
1602
  return e === "waiting";
1599
1603
  }
1600
- function Co(e) {
1604
+ function ko(e) {
1601
1605
  return e === "running" || pn(e);
1602
1606
  }
1603
1607
  function Le(e) {
1604
1608
  return e.subjectKind && e.subjectId ? { type: e.subjectKind, id: e.subjectId } : void 0;
1605
1609
  }
1606
- function ko(e) {
1610
+ function Oo(e) {
1607
1611
  const t = Le(e);
1608
1612
  return t ? nn(t) : void 0;
1609
1613
  }
1610
- function Oo(e) {
1614
+ function vo(e) {
1611
1615
  return on(Le(e));
1612
1616
  }
1613
- function vo(e) {
1617
+ function xo(e) {
1614
1618
  const t = [], n = /* @__PURE__ */ new Map();
1615
1619
  for (const r of [...e].sort(fn)) {
1616
1620
  const i = n.get(r.emoji);
@@ -1626,31 +1630,31 @@ function vo(e) {
1626
1630
  }).sort((r, i) => i.count - r.count || t.indexOf(r.emoji) - t.indexOf(i.emoji));
1627
1631
  }
1628
1632
  const fn = (e, t) => (e.createdAt ?? 0) - (t.createdAt ?? 0);
1629
- function xo(e, t) {
1633
+ function No(e, t) {
1630
1634
  return t ? e.actors.some((n) => n.type === "user" && n.id === t) : !1;
1631
1635
  }
1632
- function No(e, t) {
1636
+ function Ro(e, t) {
1633
1637
  const n = e.accumulatedSeconds || 0;
1634
1638
  return e.runningSince ? n + Math.max(0, Math.floor((t - e.runningSince) / 1e3)) : n;
1635
1639
  }
1636
- function Ro(e, t) {
1640
+ function Do(e, t) {
1637
1641
  const n = Math.max(1, Math.ceil(Math.max(0, e) / 60));
1638
1642
  if (!t || t === "exact") return n * 60;
1639
1643
  const r = Number(t);
1640
1644
  return !Number.isFinite(r) || r <= 0 ? n * 60 : Math.ceil(n / r) * r * 60;
1641
1645
  }
1642
- function Do(e) {
1646
+ function $o(e) {
1643
1647
  const t = Math.max(0, Math.round(e / 60));
1644
1648
  return `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
1645
1649
  }
1646
- function $o(e) {
1650
+ function Lo(e) {
1647
1651
  const t = Math.max(0, Math.floor(e)), n = (o) => String(o).padStart(2, "0"), r = Math.floor(t / 60) % 60, i = Math.floor(t / 3600);
1648
1652
  return i > 0 ? `${i}:${n(r)}:${n(t % 60)}` : `${n(r)}:${n(t % 60)}`;
1649
1653
  }
1650
1654
  function mn(e) {
1651
1655
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^a-z0-9]+/g, "-").slice(0, 48).replace(/^-+|-+$/g, "");
1652
1656
  }
1653
- function Lo(e, t) {
1657
+ function Po(e, t) {
1654
1658
  const n = mn(e) || "werksoort", r = new Set(t);
1655
1659
  if (!r.has(n)) return n;
1656
1660
  for (let i = 2; i < 500; i++) {
@@ -1659,11 +1663,11 @@ function Lo(e, t) {
1659
1663
  }
1660
1664
  return `${n}-${r.size + 1}`;
1661
1665
  }
1662
- function Po(e, t) {
1666
+ function Uo(e, t) {
1663
1667
  const n = e.ownerScope;
1664
1668
  return !n || n.kind === "org" ? !0 : t.includes(n.teamId);
1665
1669
  }
1666
- function Uo(e) {
1670
+ function Ko(e) {
1667
1671
  return e.filter((t) => !t.archived).sort(gn);
1668
1672
  }
1669
1673
  function gn(e, t) {
@@ -1680,7 +1684,7 @@ function bn(e) {
1680
1684
  const n = t.slice(0, P), r = Math.max(n.lastIndexOf(". "), n.lastIndexOf("! "), n.lastIndexOf("? "));
1681
1685
  return r > P * 0.6 ? n.slice(0, r + 1) : `${n.trimEnd()}…`;
1682
1686
  }
1683
- function Ko(e, t) {
1687
+ function jo(e, t) {
1684
1688
  const n = bn(t.text), r = S(n);
1685
1689
  if (!r || (e.examples ?? []).some((a) => S(a) === r)) return null;
1686
1690
  const i = e.exampleCandidates ?? [], o = i.findIndex((a) => S(a.text) === r);
@@ -1696,7 +1700,7 @@ function le(e) {
1696
1700
  (t, n) => Number(n.corrected) - Number(t.corrected) || n.addedAt - t.addedAt
1697
1701
  );
1698
1702
  }
1699
- function jo(e, t) {
1703
+ function Bo(e, t) {
1700
1704
  const n = S(t), r = (e.examples ?? []).filter((o) => o.trim());
1701
1705
  return { examples: r.some((o) => S(o) === n) ? r : [...r, t].slice(-hn), exampleCandidates: An(e, t) };
1702
1706
  }
@@ -1708,13 +1712,13 @@ function En(e, t) {
1708
1712
  const n = e.ownerScope;
1709
1713
  return n ? n.kind === "org" ? !0 : n.kind === "team" ? !!t && n.teamId === t : !1 : !1;
1710
1714
  }
1711
- function Bo(e, t) {
1715
+ function Ho(e, t) {
1712
1716
  return e.filter((n) => En(n, t));
1713
1717
  }
1714
- function Ho(e) {
1718
+ function Go(e) {
1715
1719
  return e.type === "agent";
1716
1720
  }
1717
- const Go = "WORK_COMMENT_ADDED", Fo = "WORK_ITEM_ASSIGNED", Wo = "WORK_ITEM_STATUS_CHANGED";
1721
+ const Fo = "WORK_COMMENT_ADDED", Wo = "WORK_ITEM_ASSIGNED", Vo = "WORK_ITEM_STATUS_CHANGED";
1718
1722
  function Sn(e, t) {
1719
1723
  const n = (r) => {
1720
1724
  const i = new Date(r);
@@ -1722,7 +1726,7 @@ function Sn(e, t) {
1722
1726
  };
1723
1727
  return Math.round((n(e) - n(t)) / Ct);
1724
1728
  }
1725
- function Vo(e, t) {
1729
+ function zo(e, t) {
1726
1730
  if (e.closedAt != null) return { score: E, reasons: [] };
1727
1731
  const n = t.remindersById?.[e.id];
1728
1732
  if (n && n.remindAt > t.now) return { score: E, reasons: [] };
@@ -1741,14 +1745,14 @@ function In(e) {
1741
1745
  function Pe(e) {
1742
1746
  return `${Tn}:${e}`;
1743
1747
  }
1744
- function zo(e) {
1748
+ function Xo(e) {
1745
1749
  return `${wn}:${e}`;
1746
1750
  }
1747
- function Xo(e, t, n) {
1751
+ function Yo(e, t, n) {
1748
1752
  const r = `${e}-${t}`;
1749
1753
  return n ? `${r}-${n}` : r;
1750
1754
  }
1751
- function Yo(e) {
1755
+ function qo(e) {
1752
1756
  const t = /^([A-Za-z0-9]{2,8})-(\d+)(?:-(\d+))?$/.exec((e || "").trim());
1753
1757
  return t ? {
1754
1758
  projectKey: t[1].toUpperCase(),
@@ -1756,17 +1760,17 @@ function Yo(e) {
1756
1760
  ...t[3] ? { subSequence: Number(t[3]) } : {}
1757
1761
  } : null;
1758
1762
  }
1759
- function qo(e) {
1763
+ function Jo(e) {
1760
1764
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toUpperCase().replace(/[^A-Z0-9]/g, "").slice(0, 3) || "PRJ";
1761
1765
  }
1762
- function Jo(e, t = 25) {
1766
+ function Zo(e, t = 25) {
1763
1767
  const n = /* @__PURE__ */ new Set([In(e.id)]);
1764
1768
  e.projectId && n.add(Pe(e.projectId));
1765
1769
  for (const r of e.ancestorKeys ?? []) n.add(r);
1766
1770
  for (const r of e.partyKeys ?? []) n.add(r);
1767
1771
  return Array.from(n).slice(0, t);
1768
1772
  }
1769
- function Zo(e) {
1773
+ function Qo(e) {
1770
1774
  return [Pe(e.id)];
1771
1775
  }
1772
1776
  const G = [
@@ -1781,10 +1785,10 @@ function Mn(e) {
1781
1785
  function Cn(e, t) {
1782
1786
  return t.find((n) => n.key === e)?.category ?? "todo";
1783
1787
  }
1784
- function Qo(e, t) {
1788
+ function ea(e, t) {
1785
1789
  return t.find((n) => n.key === e);
1786
1790
  }
1787
- function ea(e) {
1791
+ function ta(e) {
1788
1792
  const t = Mn(e), n = e?.defaultStatusKey;
1789
1793
  return n && t.some((r) => r.key === n) ? n : kn(t)[0]?.key ?? G[0].key;
1790
1794
  }
@@ -1794,13 +1798,13 @@ function kn(e) {
1794
1798
  return r !== 0 ? r : (t.label || "").localeCompare(n.label || "");
1795
1799
  });
1796
1800
  }
1797
- function ta(e, t) {
1801
+ function na(e, t) {
1798
1802
  return Cn(e, t) === "done";
1799
1803
  }
1800
1804
  function On(e) {
1801
1805
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^a-z0-9]+/g, "-").slice(0, 48).replace(/^-+|-+$/g, "");
1802
1806
  }
1803
- function na(e, t) {
1807
+ function ra(e, t) {
1804
1808
  const n = On(e) || "status", r = /* @__PURE__ */ new Set([...t, ...Ue]);
1805
1809
  if (!r.has(n)) return n;
1806
1810
  for (let i = 2; i < 500; i++) {
@@ -1809,7 +1813,7 @@ function na(e, t) {
1809
1813
  }
1810
1814
  return `${n}-${r.size + 1}`;
1811
1815
  }
1812
- function ra(e) {
1816
+ function ia(e) {
1813
1817
  const t = [];
1814
1818
  if (!e.length) return [{ index: -1, reason: "empty" }];
1815
1819
  const n = /* @__PURE__ */ new Set();
@@ -1839,18 +1843,18 @@ const _ = 1024 * 1024, Rn = {
1839
1843
  pdf: 20 * _,
1840
1844
  text: 1 * _,
1841
1845
  audio: 20 * _
1842
- }, ia = 25 * _, oa = 5;
1843
- function aa(e, t) {
1846
+ }, oa = 25 * _, aa = 5;
1847
+ function sa(e, t) {
1844
1848
  const n = Nn(e);
1845
1849
  return n === "unsupported" ? "unsupported" : t > Rn[n] ? "too-large" : null;
1846
1850
  }
1847
- function sa(e) {
1851
+ function ca(e) {
1848
1852
  return e.access !== "read" && e.effect !== "internal";
1849
1853
  }
1850
1854
  function Dn(e) {
1851
1855
  return `${e.kind}:${e.id || e.url || e.title}`;
1852
1856
  }
1853
- function ca(e, t = []) {
1857
+ function la(e, t = []) {
1854
1858
  const n = new Set(t), r = [], i = [];
1855
1859
  for (const o of e) {
1856
1860
  const a = Dn(o);
@@ -1858,26 +1862,26 @@ function ca(e, t = []) {
1858
1862
  }
1859
1863
  return { sources: r, keys: i };
1860
1864
  }
1861
- const la = "assist-source", ua = ["blocking", "due", "open"];
1862
- function da(e, t) {
1865
+ const ua = "assist-source", da = ["blocking", "due", "open"];
1866
+ function pa(e, t) {
1863
1867
  const [n, r] = (e.subjectKey ?? "").split(":");
1864
1868
  return n === t && r ? r : void 0;
1865
1869
  }
1866
1870
  const ue = { blocking: 0, due: 1, open: 2 };
1867
- function pa(e, t) {
1871
+ function fa(e, t) {
1868
1872
  return ue[e.band ?? "open"] - ue[t.band ?? "open"] || (t.priority ?? 0) - (e.priority ?? 0) || e.id.localeCompare(t.id);
1869
1873
  }
1870
- function fa(e) {
1874
+ function ma(e) {
1871
1875
  return e.sessions.filter(
1872
1876
  (t) => t.id !== e.exceptSessionId && t.state === "connected" && e.canHold(t.providerId)
1873
1877
  );
1874
1878
  }
1875
- function ma(e) {
1879
+ function ga(e) {
1876
1880
  return e.sessions.filter(
1877
1881
  (t) => t.id !== e.exceptSessionId && t.state === "connected" && !e.canHold(t.providerId)
1878
1882
  );
1879
1883
  }
1880
- function ga(e) {
1884
+ function ha(e) {
1881
1885
  return e.sessions.some(
1882
1886
  (n) => n.id !== e.exceptSessionId && (n.state === "connected" || n.state === "on_hold")
1883
1887
  ) ? { admit: !1, reason: "busy" } : { admit: !0 };
@@ -1899,7 +1903,7 @@ function Ln(e, t) {
1899
1903
  }
1900
1904
  return n;
1901
1905
  }
1902
- function ha(e, t) {
1906
+ function ya(e, t) {
1903
1907
  const n = Ln(e, t);
1904
1908
  return Object.entries(n).filter(([, r]) => !r).map(([r]) => r);
1905
1909
  }
@@ -1910,7 +1914,7 @@ function Pn(e, t) {
1910
1914
  transport: t.transport ?? e.transport
1911
1915
  } : e;
1912
1916
  }
1913
- function ya(e, t) {
1917
+ function ba(e, t) {
1914
1918
  const n = [];
1915
1919
  for (const r of e) {
1916
1920
  if (!r.enabled) continue;
@@ -1921,16 +1925,16 @@ function ya(e, t) {
1921
1925
  }
1922
1926
  return n;
1923
1927
  }
1924
- function ba(e, t) {
1928
+ function Aa(e, t) {
1925
1929
  return t.filter((n) => n.capability.intent === e);
1926
1930
  }
1927
1931
  function Un(e, t) {
1928
1932
  return t.filter((n) => n.capability.targetSchemes.includes(e));
1929
1933
  }
1930
- function Aa(e, t) {
1934
+ function Ea(e, t) {
1931
1935
  return Un(e.scheme, t);
1932
1936
  }
1933
- function Ea(e, t, n) {
1937
+ function Sa(e, t, n) {
1934
1938
  const r = [];
1935
1939
  for (const i of e)
1936
1940
  for (const o of n)
@@ -1959,10 +1963,10 @@ const jn = {
1959
1963
  id: "note",
1960
1964
  custom: "note"
1961
1965
  };
1962
- function Sa(e) {
1966
+ function _a(e) {
1963
1967
  return e ? jn[e] ?? "note" : "note";
1964
1968
  }
1965
- const _a = "message_window", Ta = "message_templates", wa = {
1969
+ const Ta = "message_window", wa = "message_templates", Ia = {
1966
1970
  // E-mail
1967
1971
  FROM: "from",
1968
1972
  TO: "to",
@@ -1979,11 +1983,11 @@ const _a = "message_window", Ta = "message_templates", wa = {
1979
1983
  // Voice/conference
1980
1984
  HOST: "host",
1981
1985
  PARTICIPANT: "participant"
1982
- }, Ia = (e, t) => ({ intent: e, ...t }), Ma = "folder_management", Ca = "remote_search", ka = "message_reactions", Oa = {
1986
+ }, Ma = (e, t) => ({ intent: e, ...t }), Ca = "folder_management", ka = "remote_search", Oa = "message_reactions", va = {
1983
1987
  ok: !1,
1984
1988
  code: "UNSUPPORTED",
1985
1989
  message: "Provider does not support this op"
1986
- }, va = "context.collect", u = (e) => ({ type: "string", description: e }), l = (e) => ({ type: "number", description: e }), C = (e) => ({ type: "boolean", description: e }), y = u("Sheet name. Omit for the sheet the user is looking at."), de = u("Slide id, as `inspect` reports it.");
1990
+ }, xa = "context.collect", u = (e) => ({ type: "string", description: e }), l = (e) => ({ type: "number", description: e }), C = (e) => ({ type: "boolean", description: e }), y = u("Sheet name. Omit for the sheet the user is looking at."), de = u("Slide id, as `inspect` reports it.");
1987
1991
  function c(e, t, n, r, i, o) {
1988
1992
  return {
1989
1993
  op: e,
@@ -2337,28 +2341,28 @@ const T = { undoable: !1, visible: !0 }, p = { undoable: !0, visible: !0 }, pe =
2337
2341
  ...Gn,
2338
2342
  ...Fn
2339
2343
  ];
2340
- function xa(e) {
2344
+ function Na(e) {
2341
2345
  return Ke.filter((t) => t.kinds.includes(e));
2342
2346
  }
2343
- function Na(e) {
2347
+ function Ra(e) {
2344
2348
  return Ke.find((t) => t.op === e);
2345
2349
  }
2346
- const Ra = "documents.describe", Da = "documents.inspect", $a = "documents.apply";
2347
- function La(e) {
2350
+ const Da = "documents.describe", $a = "documents.inspect", La = "documents.apply";
2351
+ function Pa(e) {
2348
2352
  const t = e.indexOf(":");
2349
2353
  if (t !== -1) return e.slice(0, t);
2350
2354
  const n = e.indexOf(".");
2351
2355
  return n === -1 ? e : e.slice(0, n);
2352
2356
  }
2353
- const Pa = "installation-id";
2354
- function Ua(e) {
2357
+ const Ua = "installation-id";
2358
+ function Ka(e) {
2355
2359
  const t = [];
2356
2360
  for (const n of Object.keys(e))
2357
2361
  for (const r of Object.keys(e[n]))
2358
2362
  t.push({ lang: n, key: r, value: e[n][r] });
2359
2363
  return t;
2360
2364
  }
2361
- const Ka = "notification-source", ja = (e, t) => `${e}.pref.${t}`, Ba = {
2365
+ const ja = "notification-source", Ba = (e, t) => `${e}.pref.${t}`, Ha = {
2362
2366
  ai: [
2363
2367
  "account.read",
2364
2368
  "account.write",
@@ -2494,37 +2498,37 @@ const Ka = "notification-source", ja = (e, t) => `${e}.pref.${t}`, Ba = {
2494
2498
  user: ["user.read", "user.write"],
2495
2499
  work: ["item.read", "item.write", "project.read", "project.write"]
2496
2500
  }, je = 9e4, Wn = ["out_of_office"], Be = (e) => Wn.includes(e);
2497
- function Ha(e, t, n) {
2501
+ function Ga(e, t, n) {
2498
2502
  const r = n - e < je, i = t?.status && (!t.expiresAt || t.expiresAt > n) ? t : void 0;
2499
2503
  if (!i?.status) return { online: r, status: r ? "available" : "offline" };
2500
2504
  const o = i.status;
2501
2505
  return !r && !Be(o) ? { online: !1, status: "offline" } : { online: r, status: o, message: i.message };
2502
2506
  }
2503
- function Ga(e, t) {
2507
+ function Fa(e, t) {
2504
2508
  const n = t - e.lastSeenAt < je, r = n || Be(e.status) ? e.status : "offline";
2505
2509
  return n === e.online && r === e.status ? e : { ...e, online: n, status: r };
2506
2510
  }
2507
- function Fa(e, t) {
2511
+ function Wa(e, t) {
2508
2512
  return e?.teamId && t.includes(e.teamId) ? { teamId: e.teamId, mustChoose: !1 } : t.length === 1 ? { teamId: t[0], mustChoose: !1 } : { teamId: void 0, mustChoose: t.length > 1 };
2509
2513
  }
2510
- function Wa(e) {
2514
+ function Va(e) {
2511
2515
  return e.providerAvailable && e.allowed;
2512
2516
  }
2513
- const Va = "resources.describe", za = "resources.search", Xa = "resources.resolve", Ya = "resources.attached";
2514
- function qa(e) {
2517
+ const za = "resources.describe", Xa = "resources.search", Ya = "resources.resolve", qa = "resources.attached";
2518
+ function Ja(e) {
2515
2519
  const t = e.indexOf(":");
2516
2520
  return t === -1 ? e : e.slice(0, t);
2517
2521
  }
2518
- const Ja = "/provider/scope/related", Za = "/provider/scope/read", He = "auth";
2522
+ const Za = "/provider/scope/related", Qa = "/provider/scope/read", He = "auth";
2519
2523
  function Ge(e) {
2520
2524
  const t = typeof e == "string" ? e.match(/apps\/([^/?#]+)/) : null;
2521
2525
  return t ? t[1] : null;
2522
2526
  }
2523
- function Qa(e) {
2527
+ function es(e) {
2524
2528
  const t = Ge(e);
2525
2529
  return t ? t !== He : typeof e == "string" && e.startsWith("/wake");
2526
2530
  }
2527
- function es(e) {
2531
+ function ts(e) {
2528
2532
  return typeof e != "string" || e === "" || e === "/" ? !0 : Ge(e) === He;
2529
2533
  }
2530
2534
  function Vn(e) {
@@ -2546,7 +2550,7 @@ function Xn(e, t) {
2546
2550
  function Yn(e) {
2547
2551
  return e.publicBasePath ?? `/apps/${e.name}`;
2548
2552
  }
2549
- function ts(e) {
2553
+ function ns(e) {
2550
2554
  const t = [];
2551
2555
  for (const n of e) {
2552
2556
  if (!n?.name) continue;
@@ -2579,10 +2583,10 @@ function Jn(e, t) {
2579
2583
  zn(r.pattern).test(e) && (!n || qn(r.pattern, n.pattern)) && (n = r);
2580
2584
  return n ? { ...n, params: { ...n.props, ...Xn(n.pattern, e) } } : null;
2581
2585
  }
2582
- function ns(e, t) {
2586
+ function rs(e, t) {
2583
2587
  return Jn(e, t) !== null;
2584
2588
  }
2585
- const rs = 10 * 1024 * 1024, is = 25 * 1024 * 1024, os = "sync-source", as = "sync-target", ss = 20, Zn = {
2589
+ const is = 10 * 1024 * 1024, os = 25 * 1024 * 1024, as = "sync-source", ss = "sync-target", cs = 20, Zn = {
2586
2590
  afrikaans: [
2587
2591
  "[Muziek]",
2588
2592
  "(C) TV GELDERLAND 2021",
@@ -2873,13 +2877,13 @@ function cr(e, t = er) {
2873
2877
  return { text: n.filter((a) => (a.endedAt ?? 0) >= i).map((a) => Qn(a.text).trim()).filter(Boolean).join(" ").replace(/\s+/g, " ").trim(), segmentCount: n.length };
2874
2878
  }
2875
2879
  const lr = 60;
2876
- function cs(e, t, n = lr) {
2880
+ function ls(e, t, n = lr) {
2877
2881
  const r = new Set(e), i = [...e];
2878
2882
  for (const o of t)
2879
2883
  !o || r.has(o) || (r.add(o), i.push(o));
2880
2884
  return i.slice(-n);
2881
2885
  }
2882
- function ls(e) {
2886
+ function us(e) {
2883
2887
  const { segments: t, now: n, state: r } = e;
2884
2888
  if (r.lastTriggerAt && n - r.lastTriggerAt < tr)
2885
2889
  return { trigger: !1, reason: "too_soon" };
@@ -2891,13 +2895,13 @@ function ls(e) {
2891
2895
  const a = ar(i.text);
2892
2896
  return a.length ? r.lastQueryTerms?.length && sr(a, r.lastQueryTerms) < rr ? { trigger: !1, reason: "same_topic" } : { trigger: !0, text: i.text, terms: a, segmentCount: i.segmentCount } : { trigger: !1, reason: "no_speech" };
2893
2897
  }
2894
- const us = [
2898
+ const ds = [
2895
2899
  "personal",
2896
2900
  "workspace",
2897
2901
  "connections",
2898
2902
  "work",
2899
2903
  "ai"
2900
- ], ds = "navNotice", F = {
2904
+ ], ps = "navNotice", F = {
2901
2905
  // The lower bounds are deliberately generous: service ranges (0800/0900) are
2902
2906
  // shorter than geographic numbers, and a too-strict minimum silently drops them.
2903
2907
  // An over-permissive key is harmless — it simply matches nothing.
@@ -2951,7 +2955,7 @@ function mr(e) {
2951
2955
  const r = t.indexOf("@");
2952
2956
  return r >= 0 && (t = t.slice(0, r)), t.trim();
2953
2957
  }
2954
- function ps(e) {
2958
+ function fs(e) {
2955
2959
  if (!e) return !1;
2956
2960
  const t = e.indexOf("@");
2957
2961
  if (t <= 0) return !1;
@@ -2979,7 +2983,7 @@ function ge(e, t) {
2979
2983
  }
2980
2984
  return !a && k(i, o) ? `+${o.callingCode}${i}` : null;
2981
2985
  }
2982
- function fs(e, t = 9) {
2986
+ function ms(e, t = 9) {
2983
2987
  const n = (e ?? "").replace(/\D/g, "");
2984
2988
  return n.length < t ? null : n.slice(-t);
2985
2989
  }
@@ -2990,7 +2994,7 @@ function Fe(e) {
2990
2994
  const r = t.slice(0, n).split("+")[0], i = t.slice(n + 1);
2991
2995
  return !r || !i.includes(".") ? null : `${r}@${i}`;
2992
2996
  }
2993
- function ms(e) {
2997
+ function gs(e) {
2994
2998
  const t = Fe(e);
2995
2999
  return t ? t.slice(t.lastIndexOf("@") + 1) : null;
2996
3000
  }
@@ -3056,16 +3060,16 @@ const yr = /* @__PURE__ */ new Set([
3056
3060
  "proximus.be",
3057
3061
  "scarlet.be"
3058
3062
  ]);
3059
- function gs(e) {
3063
+ function hs(e) {
3060
3064
  const t = hr(e);
3061
3065
  return t ? yr.has(t) : !1;
3062
3066
  }
3063
- function hs(e) {
3067
+ function ys(e) {
3064
3068
  if (!e) return !1;
3065
3069
  const t = e.trim().toLowerCase();
3066
3070
  return t === "tel" || t === "sms" || t === "whatsapp" || t === "fax";
3067
3071
  }
3068
- function ys(e, t, n) {
3072
+ function bs(e, t, n) {
3069
3073
  if (!e || !t) return null;
3070
3074
  const r = e.trim().toLowerCase();
3071
3075
  if (r === "tel" || r === "sms" || r === "whatsapp") {
@@ -3232,13 +3236,13 @@ function Se(e) {
3232
3236
  `).trim();
3233
3237
  }
3234
3238
  const Pr = /<\s*(html|body|div|p|table|br|span)\b/i;
3235
- function bs(e) {
3239
+ function As(e) {
3236
3240
  return Pr.test(e);
3237
3241
  }
3238
- function As(e) {
3242
+ function Es(e) {
3239
3243
  return We(e, !1);
3240
3244
  }
3241
- function Es(e) {
3245
+ function Ss(e) {
3242
3246
  return We(e, !0);
3243
3247
  }
3244
3248
  function We(e, t) {
@@ -3256,11 +3260,11 @@ export {
3256
3260
  wi as ACTIVE_ASSIGNMENT_STATUSES,
3257
3261
  A as ACTIVITY_CATALOG,
3258
3262
  Rn as AI_ATTACHMENT_LIMITS,
3259
- oa as AI_ATTACHMENT_MAX_PER_TURN,
3260
- ia as AI_ATTACHMENT_TURN_BUDGET,
3263
+ aa as AI_ATTACHMENT_MAX_PER_TURN,
3264
+ oa as AI_ATTACHMENT_TURN_BUDGET,
3261
3265
  we as AI_VENDORS,
3262
3266
  mt as ALLOWED_LINK_SCHEMES,
3263
- Ba as APP_PERMISSIONS,
3267
+ Ha as APP_PERMISSIONS,
3264
3268
  Z as ARTIFACT_MAX_BLOCKS,
3265
3269
  hi as ARTIFACT_MAX_BODY_BYTES,
3266
3270
  L as ARTIFACT_MAX_CELL_LEN,
@@ -3270,8 +3274,8 @@ export {
3270
3274
  ee as ARTIFACT_MAX_TABLE_ROWS,
3271
3275
  Me as ARTIFACT_MAX_TEXT_LEN,
3272
3276
  Tt as ASSIGNMENT_SCOPE_KIND,
3273
- ua as ASSIST_BANDS,
3274
- la as ASSIST_SOURCE_PROVIDER_GROUP,
3277
+ da as ASSIST_BANDS,
3278
+ ua as ASSIST_SOURCE_PROVIDER_GROUP,
3275
3279
  Lt as ATTENTION_STATUSES,
3276
3280
  He as AUTH_APP_NAME,
3277
3281
  ln as AUTO_READY_MIN_PROPOSALS,
@@ -3283,28 +3287,28 @@ export {
3283
3287
  nr as CADENCE_MIN_NEW_SEGMENTS,
3284
3288
  rr as CADENCE_MIN_NOVELTY,
3285
3289
  er as CADENCE_WINDOW_MS,
3286
- Eo as CLASSIFY_VARS,
3287
- va as CONTEXT_COLLECT_SERVICE,
3290
+ So as CLASSIFY_VARS,
3291
+ xa as CONTEXT_COLLECT_SERVICE,
3288
3292
  fi as CORE_DIMENSIONS,
3289
3293
  Kn as CommunicationScheme,
3290
3294
  Ct as DAY_MS,
3291
- oo as DEFAULT_MEMORY_BUDGET,
3295
+ ao as DEFAULT_MEMORY_BUDGET,
3292
3296
  ur as DEFAULT_PHONE_REGION,
3293
- $a as DOCUMENT_APPLY_SERVICE,
3294
- Ra as DOCUMENT_DESCRIBE_SERVICE,
3295
- Da as DOCUMENT_INSPECT_SERVICE,
3297
+ La as DOCUMENT_APPLY_SERVICE,
3298
+ Da as DOCUMENT_DESCRIBE_SERVICE,
3299
+ $a as DOCUMENT_INSPECT_SERVICE,
3296
3300
  Ke as DOCUMENT_OPERATIONS,
3297
- _o as EMPTY_WORKFLOW,
3298
- Ma as FEATURE_FOLDER_MANAGEMENT,
3299
- ka as FEATURE_MESSAGE_REACTIONS,
3300
- Ca as FEATURE_REMOTE_SEARCH,
3301
+ To as EMPTY_WORKFLOW,
3302
+ Ca as FEATURE_FOLDER_MANAGEMENT,
3303
+ Oa as FEATURE_MESSAGE_REACTIONS,
3304
+ ka as FEATURE_REMOTE_SEARCH,
3301
3305
  Kt as FOLLOW_UP_HOURS,
3302
3306
  Mt as HOUR_MS,
3303
3307
  Pr as HTML_BODY_RE,
3304
3308
  E as INELIGIBLE,
3305
- Pa as INSTALLATION_HEADER,
3309
+ Ua as INSTALLATION_HEADER,
3306
3310
  rn as INTERACTION_KIND,
3307
- wa as InteractionParticipantRole,
3311
+ Ia as InteractionParticipantRole,
3308
3312
  zt as KB_FALLBACK_LOCALE,
3309
3313
  ae as KB_LOCALES,
3310
3314
  G as LOOSE_STATUSES,
@@ -3313,64 +3317,64 @@ export {
3313
3317
  wt as MAX_ASSIGNMENT_TURNS,
3314
3318
  Ur as MAX_BLOCKS,
3315
3319
  De as MAX_COLLECTION_DEPTH,
3316
- rs as MAX_EDITABLE_FILE_BYTES,
3320
+ is as MAX_EDITABLE_FILE_BYTES,
3317
3321
  Kr as MAX_FIELDS,
3318
3322
  jr as MAX_LIST_ITEMS,
3319
- to as MAX_MEMORY_BROWSE,
3320
- io as MAX_MEMORY_BUDGET,
3321
- no as MAX_MEMORY_CHARS,
3323
+ no as MAX_MEMORY_BROWSE,
3324
+ oo as MAX_MEMORY_BUDGET,
3325
+ ro as MAX_MEMORY_CHARS,
3322
3326
  lr as MAX_SHOWN_KEYS,
3323
3327
  yn as MAX_TOPIC_CANDIDATES,
3324
3328
  hn as MAX_TOPIC_EXAMPLES,
3325
3329
  P as MAX_TOPIC_EXAMPLE_CHARS,
3326
- is as MAX_VIEWABLE_FILE_BYTES,
3327
- ro as MIN_MEMORY_BUDGET,
3328
- ds as NAV_NOTICE_SLOT,
3329
- Ka as NOTIFICATION_SOURCE_PROVIDER_GROUP,
3330
- so as ONBOARDING_SOURCE_PROVIDER_GROUP,
3330
+ os as MAX_VIEWABLE_FILE_BYTES,
3331
+ io as MIN_MEMORY_BUDGET,
3332
+ ps as NAV_NOTICE_SLOT,
3333
+ ja as NOTIFICATION_SOURCE_PROVIDER_GROUP,
3334
+ co as ONBOARDING_SOURCE_PROVIDER_GROUP,
3331
3335
  F as PHONE_REGIONS,
3332
3336
  je as PRESENCE_ONLINE_WINDOW_MS,
3333
3337
  Wn as PRESENCE_SURVIVES_OFFLINE,
3334
- lo as PROFILE_TOOL_DISPOSITIONS,
3335
- Ta as PROVIDER_FEATURE_MESSAGE_TEMPLATES,
3336
- _a as PROVIDER_FEATURE_MESSAGE_WINDOW,
3338
+ uo as PROFILE_TOOL_DISPOSITIONS,
3339
+ wa as PROVIDER_FEATURE_MESSAGE_TEMPLATES,
3340
+ Ta as PROVIDER_FEATURE_MESSAGE_WINDOW,
3337
3341
  yr as PUBLIC_EMAIL_DOMAINS,
3338
3342
  se as READ_STEP_TYPES,
3339
3343
  qt as RELATED_SUBJECT_KINDS,
3340
3344
  Ue as RESERVED_STATUS_KEYS,
3341
- Ya as RESOURCE_ATTACHED_SERVICE,
3342
- Va as RESOURCE_DESCRIBE_SERVICE,
3343
- Xa as RESOURCE_RESOLVE_SERVICE,
3344
- za as RESOURCE_SEARCH_SERVICE,
3345
- Za as SCOPE_READ_ROUTE,
3346
- Ja as SCOPE_RELATED_ROUTE,
3347
- us as SETTINGS_CATEGORIES,
3348
- vi as SIGNATURE_INTENTS,
3345
+ qa as RESOURCE_ATTACHED_SERVICE,
3346
+ za as RESOURCE_DESCRIBE_SERVICE,
3347
+ Ya as RESOURCE_RESOLVE_SERVICE,
3348
+ Xa as RESOURCE_SEARCH_SERVICE,
3349
+ Qa as SCOPE_READ_ROUTE,
3350
+ Za as SCOPE_RELATED_ROUTE,
3351
+ ds as SETTINGS_CATEGORIES,
3352
+ xi as SIGNATURE_INTENTS,
3349
3353
  Ut as SLA_HOURS_BY_PRIORITY,
3350
3354
  sn as STEP_MAX_TOKENS_MAX,
3351
3355
  an as STEP_MAX_TOKENS_MIN,
3352
3356
  xt as SUMMARY_MIN_LAST_CHARS,
3353
3357
  vt as SUMMARY_MIN_MESSAGES,
3354
- ss as SYNC_RUN_MAX_ERRORS,
3355
- os as SYNC_SOURCE_PROVIDER_GROUP,
3356
- as as SYNC_TARGET_PROVIDER_GROUP,
3358
+ cs as SYNC_RUN_MAX_ERRORS,
3359
+ as as SYNC_SOURCE_PROVIDER_GROUP,
3360
+ ss as SYNC_TARGET_PROVIDER_GROUP,
3357
3361
  _t as TERMINAL_ASSIGNMENT_STATUSES,
3358
3362
  dn as TERMINAL_RUN_STATUSES,
3359
- Ao as TRIGGER_VARS,
3360
- Oa as UNSUPPORTED,
3363
+ Eo as TRIGGER_VARS,
3364
+ va as UNSUPPORTED,
3361
3365
  ut as USAGE_DIMENSIONS,
3362
3366
  dt as USAGE_DIMENSION_IDS,
3363
3367
  wn as WORK_ACTIVITY_SCOPE_KIND,
3364
- co as WORK_AREAS,
3365
- Go as WORK_COMMENT_ADDED,
3366
- Fo as WORK_ITEM_ASSIGNED,
3368
+ lo as WORK_AREAS,
3369
+ Fo as WORK_COMMENT_ADDED,
3370
+ Wo as WORK_ITEM_ASSIGNED,
3367
3371
  _n as WORK_ITEM_SCOPE_KIND,
3368
- Wo as WORK_ITEM_STATUS_CHANGED,
3372
+ Vo as WORK_ITEM_STATUS_CHANGED,
3369
3373
  Tn as WORK_PROJECT_SCOPE_KIND,
3370
3374
  O as W_PRIORITY,
3371
- jo as acceptExampleCandidate,
3375
+ Bo as acceptExampleCandidate,
3372
3376
  Zt as actingIdentityKey,
3373
- Uo as activeWorkTypes,
3377
+ Ko as activeWorkTypes,
3374
3378
  Gr as activityIconOf,
3375
3379
  Qr as activityJoinUrl,
3376
3380
  Qe as activitySnippet,
@@ -3378,11 +3382,11 @@ export {
3378
3382
  Zr as activityTimelineText,
3379
3383
  it as activityTimestamp,
3380
3384
  m as activityTypeInfo,
3381
- fo as actorKey,
3382
- Ko as addExampleCandidate,
3383
- Ga as agePresenceEntry,
3385
+ mo as actorKey,
3386
+ jo as addExampleCandidate,
3387
+ Fa as agePresenceEntry,
3384
3388
  Nn as aiAttachmentKind,
3385
- aa as aiAttachmentRejection,
3389
+ sa as aiAttachmentRejection,
3386
3390
  J as aiBudgetLimit,
3387
3391
  di as aiBudgetPeriodKey,
3388
3392
  ot as aiBudgetPeriodStart,
@@ -3393,195 +3397,196 @@ export {
3393
3397
  ci as aiVendorNeedsBaseUrl,
3394
3398
  si as aiVendorsWith,
3395
3399
  Ge as appNameFromPath,
3396
- Ro as applyRounding,
3397
- xi as applySignature,
3400
+ Do as applyRounding,
3401
+ Ni as applySignature,
3398
3402
  cn as approvalRate,
3399
3403
  bi as artifactBodyBytes,
3400
3404
  Ai as artifactOutline,
3401
3405
  Ei as artifactToMarkdown,
3402
- yo as assignmentMismatch,
3406
+ bo as assignmentMismatch,
3403
3407
  Mi as assignmentScopeKey,
3404
- ki as assignmentSubject,
3408
+ Oi as assignmentSubject,
3405
3409
  ei as buildActivityPreview,
3406
- ya as buildChannelIntents,
3410
+ ba as buildChannelIntents,
3407
3411
  Si as buildShareKeys,
3408
3412
  cr as buildWindow,
3409
- Yi as canNestUnder,
3413
+ qi as canNestUnder,
3410
3414
  Xr as carriesText,
3411
- Ji as categoryLabel,
3415
+ Zi as categoryLabel,
3412
3416
  Cn as categoryOf,
3413
- Sa as channelKindForScheme,
3417
+ _a as channelKindForScheme,
3414
3418
  Fr as channelKindOf,
3415
- So as clampStepMaxTokens,
3416
- Pi as classifyMail,
3417
- Es as cleanMessageMarkdown,
3418
- As as cleanMessageText,
3419
- pa as compareAssistRank,
3419
+ _o as clampStepMaxTokens,
3420
+ Ui as classifyMail,
3421
+ Ss as cleanMessageMarkdown,
3422
+ Es as cleanMessageText,
3423
+ fa as compareAssistRank,
3420
3424
  gn as compareWorkTypes,
3421
- Oi as decideAssignmentState,
3422
- ls as decideCadence,
3423
- ga as decideIncomingCall,
3425
+ vi as decideAssignmentState,
3426
+ us as decideCadence,
3427
+ ha as decideIncomingCall,
3424
3428
  Xt as defaultLocaleOf,
3425
- ea as defaultStatusKey,
3426
- Ia as defineIntent,
3429
+ ta as defaultStatusKey,
3430
+ Ma as defineIntent,
3427
3431
  Wt as depthOf,
3428
- Ha as derivePresence,
3429
- ha as disabledIntentsFromCapabilities,
3430
- La as documentKindOf,
3431
- No as elapsedSeconds,
3432
- ms as emailDomain,
3433
- ys as endpointKey,
3432
+ Ga as derivePresence,
3433
+ ya as disabledIntentsFromCapabilities,
3434
+ Pa as documentKindOf,
3435
+ Ro as elapsedSeconds,
3436
+ gs as emailDomain,
3437
+ bs as endpointKey,
3434
3438
  Xn as extractParams,
3435
3439
  ar as extractTerms,
3436
- Aa as filterByEndpoint,
3437
- ba as filterByIntent,
3440
+ Ea as filterByEndpoint,
3441
+ Aa as filterByIntent,
3438
3442
  Un as filterByTargetScheme,
3439
3443
  x as findAiVendor,
3440
- Ua as flattenLocales,
3444
+ Ka as flattenLocales,
3441
3445
  st as floorToPeriod,
3442
3446
  Jt as formatActingIdentity,
3443
- $o as formatClock,
3444
- Do as formatHm,
3445
- Xo as formatItemKey,
3447
+ Lo as formatClock,
3448
+ $o as formatHm,
3449
+ Yo as formatItemKey,
3446
3450
  at as formatPeriod,
3447
- ca as freshSources,
3451
+ la as freshSources,
3448
3452
  ni as getActivitySeenUserIds,
3449
- Ni as getContactEndpoints,
3450
- Fi as getShortTitle,
3451
- Gi as getUrgencyScore,
3452
- xo as hasReacted,
3453
+ Ri as getContactEndpoints,
3454
+ Wi as getShortTitle,
3455
+ Fi as getUrgencyScore,
3456
+ No as hasReacted,
3453
3457
  $e as heightOf,
3454
- Vi as helpCenterText,
3455
- bo as humanizeAction,
3458
+ zi as helpCenterText,
3459
+ Ao as humanizeAction,
3456
3460
  on as interactionIdOf,
3457
- Ho as isAgentUser,
3458
- Bi as isAssigned,
3461
+ Go as isAgentUser,
3462
+ Hi as isAssigned,
3459
3463
  Ii as isAssignmentTerminal,
3460
3464
  tn as isAssignmentTrigger,
3461
- Io as isAutoReady,
3465
+ Mo as isAutoReady,
3462
3466
  Ft as isAwaitingThem,
3463
3467
  ii as isChatMessageActivity,
3464
- Hi as isClosed,
3468
+ Gi as isClosed,
3465
3469
  qr as isConnectedType,
3466
- Qa as isDeepLink,
3470
+ es as isDeepLink,
3467
3471
  Vt as isDescendant,
3468
- Ri as isEligible,
3472
+ Di as isEligible,
3469
3473
  ri as isEmailActivity,
3470
- bs as isHtmlBody,
3471
- Co as isInFlight,
3474
+ As as isHtmlBody,
3475
+ ko as isInFlight,
3472
3476
  $t as isInteractionUnseen,
3473
- es as isLandingPath,
3477
+ ts as isLandingPath,
3474
3478
  Ot as isLikelyBulk,
3475
3479
  _e as isMessageShape,
3476
3480
  Wr as isMessageType,
3477
3481
  qn as isMoreSpecificPattern,
3478
3482
  Te as isNoteShape,
3479
- sa as isOutwardTool,
3483
+ ca as isOutwardTool,
3480
3484
  Bt as isParked,
3481
3485
  pn as isPaused,
3482
3486
  Yr as isPlaybookAuthoredType,
3483
- gs as isPublicEmailDomain,
3484
- ns as isPublicPath,
3487
+ hs as isPublicEmailDomain,
3488
+ rs as isPublicPath,
3485
3489
  Ht as isReminderActive,
3486
3490
  zr as isReplyableType,
3487
- Ki as isSlaAtRisk,
3488
- Mo as isTerminal,
3489
- $i as isThreadLongEnough,
3491
+ ji as isSlaAtRisk,
3492
+ Co as isTerminal,
3493
+ Li as isThreadLongEnough,
3490
3494
  Jr as isTranscriptType,
3491
- ta as isWorkClosed,
3492
- Po as isWorkTypeVisible,
3493
- Jo as itemDossierKeys,
3495
+ na as isWorkClosed,
3496
+ Uo as isWorkTypeVisible,
3497
+ Zo as itemDossierKeys,
3494
3498
  Mn as ladderFor,
3495
- Wi as linkLabel,
3499
+ Vi as linkLabel,
3496
3500
  pi as listeningAllowed,
3497
- Xi as localeInstruction,
3498
- zi as localeName,
3499
- qi as localesOf,
3500
- ps as looksLikeEmail,
3501
- Ea as matchContactToIntents,
3501
+ Yi as localeInstruction,
3502
+ Xi as localeName,
3503
+ Ji as localesOf,
3504
+ fs as looksLikeEmail,
3505
+ Sa as matchContactToIntents,
3502
3506
  Jn as matchPublicRoute,
3503
- Qi as mcpCredentialScope,
3504
- eo as mcpToolPrefix,
3505
- cs as mergeShownKeys,
3507
+ eo as mcpCredentialScope,
3508
+ to as mcpToolPrefix,
3509
+ ls as mergeShownKeys,
3506
3510
  Ze as messageCountsAs,
3507
- hs as needsPhoneRegion,
3511
+ ys as needsPhoneRegion,
3508
3512
  Vr as nestsUnderParent,
3509
3513
  yi as normalizeArtifactBlocks,
3510
3514
  Hr as normalizeBlocks,
3511
3515
  Fe as normalizeEmail,
3512
3516
  S as normalizeExample,
3513
- ja as notificationPrefKey,
3517
+ Ba as notificationPrefKey,
3514
3518
  sr as novelty,
3515
- Na as operationDescriptor,
3516
- xa as operationsForKind,
3517
- Di as parkMarksById,
3518
- uo as parseActingIdentity,
3519
- Yo as parseItemKey,
3519
+ Ra as operationDescriptor,
3520
+ Na as operationsForKind,
3521
+ $i as parkMarksById,
3522
+ po as parseActingIdentity,
3523
+ qo as parseItemKey,
3520
3524
  zn as pathToRegex,
3521
3525
  mi as periodsInRange,
3522
- fs as phoneSuffix,
3523
- Li as pickMailHeaders,
3526
+ ms as phoneSuffix,
3527
+ Pi as pickMailHeaders,
3524
3528
  qe as plainTextFromMarkdown,
3525
3529
  en as playbookActor,
3526
- wo as procedureOf,
3527
- Zo as projectDossierKeys,
3530
+ Io as procedureOf,
3531
+ Qo as projectDossierKeys,
3528
3532
  Yn as publicBasePathFor,
3529
- ts as publicRoutePatterns,
3533
+ ns as publicRoutePatterns,
3534
+ ki as reactionWakesAssignment,
3530
3535
  j as readPath,
3531
3536
  ce as readStepError,
3532
3537
  jt as recencyOf,
3533
3538
  nn as refKey,
3534
3539
  hr as registrableDomain,
3535
3540
  An as rejectExampleCandidate,
3536
- ao as relatedByDefault,
3541
+ so as relatedByDefault,
3537
3542
  Ln as resolveAccountCapabilities,
3538
3543
  B as resolveActivityText,
3539
3544
  $n as resolveChannelIntents,
3540
3545
  It as resolveSignature,
3541
- Fa as resolveWorkMode,
3542
- qa as resourceKindOf,
3543
- po as runActor,
3544
- Oo as runInteractionId,
3546
+ Wa as resolveWorkMode,
3547
+ Ja as resourceKindOf,
3548
+ fo as runActor,
3549
+ vo as runInteractionId,
3545
3550
  bt as sanitizeInline,
3546
3551
  Qn as sanitizeTranscript,
3547
- ji as scoreInteraction,
3548
- Vo as scoreWorkItem,
3549
- Zi as selectLenses,
3550
- ma as sessionsHoldCannotReach,
3551
- fa as sessionsToHold,
3552
+ Bi as scoreInteraction,
3553
+ zo as scoreWorkItem,
3554
+ Qi as selectLenses,
3555
+ ga as sessionsHoldCannotReach,
3556
+ ma as sessionsToHold,
3552
3557
  Oe as shareKeyForTeam,
3553
3558
  ke as shareKeyForUser,
3554
3559
  _i as shareKeysForViewer,
3555
- Wa as shouldRunAudioPipeline,
3556
- Ui as slaHoursByInbox,
3560
+ Va as shouldRunAudioPipeline,
3561
+ Ki as slaHoursByInbox,
3557
3562
  Gt as slaHoursFor,
3558
3563
  kn as sortStatuses,
3559
3564
  Dn as sourceKey,
3560
- Qo as statusIn,
3561
- To as stepsOf,
3565
+ ea as statusIn,
3566
+ wo as stepsOf,
3562
3567
  Je as stripHtml,
3563
- ko as subjectKeyOf,
3568
+ Oo as subjectKeyOf,
3564
3569
  Le as subjectOf,
3565
- da as subjectRef,
3566
- qo as suggestProjectKey,
3567
- vo as summarizeReactions,
3568
- ho as targetById,
3569
- go as targetForActivityType,
3570
+ pa as subjectRef,
3571
+ Jo as suggestProjectKey,
3572
+ xo as summarizeReactions,
3573
+ yo as targetById,
3574
+ ho as targetForActivityType,
3570
3575
  Qt as toActingIdentity,
3571
3576
  ge as toE164,
3572
3577
  Ti as toolSourceKinds,
3573
3578
  En as topicOfferedForTeam,
3574
- Bo as topicsForTeam,
3579
+ Ho as topicsForTeam,
3575
3580
  bn as truncateExample,
3576
- na as uniqueWorkStatusKey,
3577
- Lo as uniqueWorkTypeKey,
3581
+ ra as uniqueWorkStatusKey,
3582
+ Po as uniqueWorkTypeKey,
3578
3583
  pt as usageMetricId,
3579
3584
  gi as usageMetrics,
3580
- ra as validateStatuses,
3581
- mo as valueAtPath,
3585
+ ia as validateStatuses,
3586
+ go as valueAtPath,
3582
3587
  H as waitHoursOf,
3583
3588
  Ci as wakesAssignment,
3584
- zo as workActivityScopeKey,
3589
+ Xo as workActivityScopeKey,
3585
3590
  In as workItemScopeKey,
3586
3591
  Pe as workProjectScopeKey,
3587
3592
  On as workStatusKey,