@opencxh/domain 1.176.0 → 1.183.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
@@ -423,6 +423,19 @@ const m = {
423
423
  icon: "user",
424
424
  snippet: () => "Taak toegewezen",
425
425
  timeline: (e, t) => `Assigned by ${t}`
426
+ },
427
+ /**
428
+ * `triggerable`, unlike the two above: this is the event a playbook hangs off — "record the
429
+ * outcome once it is done". Filter on `payload.toCategory`, not on the status key.
430
+ */
431
+ WORK_ITEM_STATUS_CHANGED: {
432
+ shape: "event",
433
+ triggerable: !0,
434
+ icon: "circle-dot",
435
+ // Static strings, unlike the interaction variant above: work rows have no arm in the
436
+ // `Activity` union (they carry no `interactionId`), so `a.payload` is `never` here.
437
+ snippet: () => "Status gewijzigd",
438
+ timeline: (e, t) => `Status changed by ${t}`
426
439
  }
427
440
  };
428
441
  function R(e) {
@@ -432,10 +445,10 @@ function R(e) {
432
445
  function d(e) {
433
446
  return m[e];
434
447
  }
435
- function vn(e) {
448
+ function On(e) {
436
449
  return d(e)?.icon ?? "circle";
437
450
  }
438
- function On(e) {
451
+ function vn(e) {
439
452
  return d(e)?.channelKind;
440
453
  }
441
454
  function ae(e) {
@@ -450,10 +463,10 @@ function $n(e) {
450
463
  function Rn(e) {
451
464
  return d(e)?.carriesText === !0;
452
465
  }
453
- function Ln(e) {
466
+ function Dn(e) {
454
467
  return d(e)?.countsAs;
455
468
  }
456
- function Dn(e) {
469
+ function Ln(e) {
457
470
  return d(e)?.playbookAuthored === !0;
458
471
  }
459
472
  function Pn(e) {
@@ -501,10 +514,10 @@ function ke(e, t) {
501
514
  n[r] = C(t, i);
502
515
  return { key: e.key, params: n };
503
516
  }
504
- const L = 140;
517
+ const D = 140;
505
518
  function Ce(e) {
506
519
  const t = e.trim();
507
- return t.length <= L ? t : `${t.slice(0, L - 1).trimEnd()}…`;
520
+ return t.length <= D ? t : `${t.slice(0, D - 1).trimEnd()}…`;
508
521
  }
509
522
  function Gn(e, t) {
510
523
  const n = ke(t?.text, e), r = t ? N(t.text, e, (i) => i) : null;
@@ -519,7 +532,7 @@ function Gn(e, t) {
519
532
  };
520
533
  }
521
534
  const Ne = (e) => e;
522
- function D(e) {
535
+ function L(e) {
523
536
  const t = m[e];
524
537
  return {
525
538
  type: e,
@@ -550,7 +563,7 @@ function P(e) {
550
563
  displayNameKey: e.displayNameKey
551
564
  };
552
565
  }
553
- class ve {
566
+ class Oe {
554
567
  constructor(t = [], n = Ne) {
555
568
  this.translate = n;
556
569
  for (const r of t)
@@ -558,13 +571,13 @@ class ve {
558
571
  }
559
572
  declared = /* @__PURE__ */ new Map();
560
573
  get(t) {
561
- if (t in m) return D(t);
574
+ if (t in m) return L(t);
562
575
  const n = this.declared.get(t);
563
576
  return n ? P(n) : void 0;
564
577
  }
565
578
  /** Everything that may be offered as a trigger, built-in and declared. */
566
579
  triggerable() {
567
- const t = Object.keys(m).filter((r) => m[r].triggerable).map(D), n = [...this.declared.values()].map(P).filter((r) => r.triggerable);
580
+ const t = Object.keys(m).filter((r) => m[r].triggerable).map(L), n = [...this.declared.values()].map(P).filter((r) => r.triggerable);
568
581
  return [...t, ...n];
569
582
  }
570
583
  /**
@@ -636,7 +649,7 @@ class ve {
636
649
  return this.translate;
637
650
  }
638
651
  }
639
- const Bn = new ve();
652
+ const Bn = new Oe();
640
653
  function Fn(e, t, n = []) {
641
654
  const r = e.createdAt;
642
655
  if (!r) return [];
@@ -646,10 +659,10 @@ function Fn(e, t, n = []) {
646
659
  function Hn(e) {
647
660
  return e.createdAt ?? 0;
648
661
  }
649
- function Vn(e) {
662
+ function Wn(e) {
650
663
  return e.type === "EMAIL_RECEIVED" || e.type === "EMAIL_SENT";
651
664
  }
652
- function Wn(e) {
665
+ function Vn(e) {
653
666
  return e.type === "CHAT_MESSAGE_SENT" || e.type === "CHAT_MESSAGE_RECEIVED";
654
667
  }
655
668
  const oe = [
@@ -769,12 +782,12 @@ function Zn(e, t) {
769
782
  function K(e) {
770
783
  return typeof e == "number" ? e : void 0;
771
784
  }
772
- function Oe(e, t = "month") {
785
+ function ve(e, t = "month") {
773
786
  const n = new Date(e);
774
787
  return Date.UTC(n.getUTCFullYear(), n.getUTCMonth(), 1);
775
788
  }
776
789
  function Qn(e, t = "month") {
777
- const n = new Date(Oe(e, t));
790
+ const n = new Date(ve(e, t));
778
791
  return `${n.getUTCFullYear()}-${String(n.getUTCMonth() + 1).padStart(2, "0")}`;
779
792
  }
780
793
  function er(e) {
@@ -808,17 +821,17 @@ function $e(e, t) {
808
821
  const n = new Date(e);
809
822
  return n.setUTCMinutes(0, 0, 0), t === "day" && n.setUTCHours(0), n.getTime();
810
823
  }
811
- const Re = 36e5, Le = 864e5;
824
+ const Re = 36e5, De = 864e5;
812
825
  function rr(e, t, n) {
813
- const r = n === "hour" ? Re : Le, i = [];
826
+ const r = n === "hour" ? Re : De, i = [];
814
827
  for (let a = $e(e, n); a <= t; a += r)
815
828
  i.push(xe(a, n));
816
829
  return i;
817
830
  }
818
- const De = [
831
+ const Le = [
819
832
  { id: "resource", label: "Resource", labelSource: "raw" },
820
833
  { id: "origin", label: "Herkomst", labelSource: "raw" }
821
- ], Pe = De.map((e) => e.id);
834
+ ], Pe = Le.map((e) => e.id);
822
835
  function Ke(e, t) {
823
836
  return `${e}.usage.${t}`;
824
837
  }
@@ -900,10 +913,10 @@ function He(e) {
900
913
  function u(e, t = ce) {
901
914
  return typeof e == "string" ? He(e).slice(0, t) : "";
902
915
  }
903
- function Ve(e, t = ce) {
916
+ function We(e, t = ce) {
904
917
  return typeof e == "string" ? e.slice(0, t) : "";
905
918
  }
906
- function We(e, t = "info") {
919
+ function Ve(e, t = "info") {
907
920
  return typeof e == "string" && se.has(e) ? e : t;
908
921
  }
909
922
  function or(e, t = () => {
@@ -952,7 +965,7 @@ function or(e, t = () => {
952
965
  break;
953
966
  }
954
967
  case "code": {
955
- const o = Ve(i.text);
968
+ const o = We(i.text);
956
969
  if (!o) {
957
970
  t("a code block without text");
958
971
  continue;
@@ -1048,7 +1061,7 @@ function or(e, t = () => {
1048
1061
  n.push({
1049
1062
  ...a,
1050
1063
  type: "callout",
1051
- tone: We(i.tone),
1064
+ tone: Ve(i.tone),
1052
1065
  ...s ? { title: s } : {},
1053
1066
  text: o
1054
1067
  });
@@ -1068,15 +1081,15 @@ function cr(e) {
1068
1081
  headings: e.flatMap((t) => t.type === "heading" ? [t.text] : [])
1069
1082
  };
1070
1083
  }
1071
- function V(e) {
1084
+ function W(e) {
1072
1085
  return e.replace(/\|/g, "\\|").replace(/\r?\n/g, " ").trim();
1073
1086
  }
1074
- function W(e, t, n) {
1087
+ function V(e, t, n) {
1075
1088
  const r = e.map((i, a) => n?.[a] === "right" ? "---:" : "---");
1076
1089
  return [
1077
- `| ${e.map(V).join(" | ")} |`,
1090
+ `| ${e.map(W).join(" | ")} |`,
1078
1091
  `| ${r.join(" | ")} |`,
1079
- ...t.map((i) => `| ${i.map(V).join(" | ")} |`)
1092
+ ...t.map((i) => `| ${i.map(W).join(" | ")} |`)
1080
1093
  ];
1081
1094
  }
1082
1095
  function ze(e) {
@@ -1097,7 +1110,7 @@ function ze(e) {
1097
1110
  return t.lead ? `${r} **${t.lead}** ${t.text}` : `${r} ${t.text}`;
1098
1111
  });
1099
1112
  case "table": {
1100
- const t = W(
1113
+ const t = V(
1101
1114
  e.columns.map((n) => n.label),
1102
1115
  e.rows,
1103
1116
  e.columns.map((n) => n.align ?? "left")
@@ -1105,7 +1118,7 @@ function ze(e) {
1105
1118
  return e.caption ? [...t, "", `*${e.caption}*`] : t;
1106
1119
  }
1107
1120
  case "kpi":
1108
- return W(
1121
+ return V(
1109
1122
  e.items.map((t) => t.value),
1110
1123
  [e.items.map((t) => t.label)]
1111
1124
  );
@@ -1242,7 +1255,7 @@ function Ze(e, t) {
1242
1255
  }
1243
1256
  return r;
1244
1257
  }
1245
- function vr(e, t, n) {
1258
+ function Or(e, t, n) {
1246
1259
  if (!e) return !0;
1247
1260
  if (e === t) return !1;
1248
1261
  const r = new Map(n.map((o) => [o.id, o]));
@@ -1270,7 +1283,7 @@ const et = "en";
1270
1283
  function tt(e) {
1271
1284
  return e.defaultLocale || e.locale || et;
1272
1285
  }
1273
- function Or(e) {
1286
+ function vr(e) {
1274
1287
  const t = /* @__PURE__ */ new Set(), n = [];
1275
1288
  for (const r of [tt(e), ...e.locales ?? []])
1276
1289
  !r || t.has(r) || (t.add(r), n.push(r));
@@ -1313,15 +1326,16 @@ function $r(e, t) {
1313
1326
  function Rr(e) {
1314
1327
  return e.credentialScope ? e.credentialScope : (e.authMode ?? "header") === "header" || e.oauth?.scope === "org" ? "shared" : "per-user";
1315
1328
  }
1316
- function Lr(e) {
1329
+ function Dr(e) {
1317
1330
  return `mcp__${e}__`;
1318
1331
  }
1319
- const Dr = 1e3, Pr = 2e3, Kr = 500, Ur = 12e3, jr = 4e3, rt = ["contact", "company"];
1332
+ const Lr = 1e3, Pr = 2e3, Kr = 500, Ur = 12e3, jr = 4e3, rt = ["contact", "company", "work_item"];
1320
1333
  function Gr(e) {
1321
1334
  if (!e) return !1;
1322
1335
  const t = e.slice(0, e.indexOf(":"));
1323
1336
  return rt.includes(t);
1324
1337
  }
1338
+ const Br = "onboarding-source", Fr = ["support", "billing", "availability", "sales", "onboarding"], Hr = ["keep", "replace"];
1325
1339
  function it(e) {
1326
1340
  switch (e.kind) {
1327
1341
  case "user":
@@ -1332,7 +1346,7 @@ function it(e) {
1332
1346
  return "org";
1333
1347
  }
1334
1348
  }
1335
- function Br(e) {
1349
+ function Wr(e) {
1336
1350
  if (typeof e != "string") return;
1337
1351
  const t = e.trim();
1338
1352
  if (t === "org") return { kind: "org" };
@@ -1358,13 +1372,13 @@ function ot(e) {
1358
1372
  }
1359
1373
  }
1360
1374
  const st = ot;
1361
- function Fr(e) {
1375
+ function Vr(e) {
1362
1376
  return e.agentId ? { kind: "user", userId: e.agentId } : st(e.ownerScope);
1363
1377
  }
1364
- function Hr(e) {
1378
+ function zr(e) {
1365
1379
  return at(e);
1366
1380
  }
1367
- function Vr(e, t) {
1381
+ function Xr(e, t) {
1368
1382
  if (!t) return;
1369
1383
  let n = e;
1370
1384
  for (const r of t.split(".")) {
@@ -1373,24 +1387,24 @@ function Vr(e, t) {
1373
1387
  }
1374
1388
  return n;
1375
1389
  }
1376
- function Wr(e, t) {
1390
+ function Yr(e, t) {
1377
1391
  return e.targets.find((n) => n.activityTypes.includes(t));
1378
1392
  }
1379
- function zr(e, t) {
1393
+ function qr(e, t) {
1380
1394
  if (t)
1381
1395
  return e.targets.find((n) => n.id === t);
1382
1396
  }
1383
1397
  function ct(e) {
1384
1398
  return e?.kind === "assignment";
1385
1399
  }
1386
- function Xr(e) {
1400
+ function Jr(e) {
1387
1401
  const { trigger: t, agentId: n, target: r, activityType: i, assigneeUserId: a, authorUserId: o } = e;
1388
1402
  return ct(t) ? n ? r ? r.activityTypes.includes(i) ? a ? a !== n ? "assigned to someone else" : o && o === 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";
1389
1403
  }
1390
- function Yr(e) {
1404
+ function Zr(e) {
1391
1405
  return (e.startsWith("tool:") ? e.slice(5) : e).replace(/__/g, " · ").replace(/\./g, " · ").replace(/_/g, " ");
1392
1406
  }
1393
- const qr = [
1407
+ const Qr = [
1394
1408
  { name: "text", type: "string" },
1395
1409
  { name: "subject", type: "string" },
1396
1410
  { name: "from", type: "string" },
@@ -1409,6 +1423,10 @@ const qr = [
1409
1423
  // the trigger for "remember this when closing".
1410
1424
  { name: "fromStatus", type: "string" },
1411
1425
  { name: "toStatus", type: "string" },
1426
+ // Only on WORK_ITEM_STATUS_CHANGED: the *category* of the new status (`todo`/`in_progress`/
1427
+ // `done`). A filter must key on this and not on `toStatus`, because status keys are the
1428
+ // organisation's own — a template shipping `"done"` as a key fits exactly one ladder.
1429
+ { name: "toCategory", type: "string" },
1412
1430
  // Who this conversation is with. The identity layer records the resolution as
1413
1431
  // `contact:<id>`/`company:<id>` in `Interaction.partyKeys`, so this is a recorded fact and not a
1414
1432
  // guess via `remoteParty`. Empty while the identity is unresolved (an unknown number, a first
@@ -1420,7 +1438,7 @@ const qr = [
1420
1438
  // `buildTriggerVars` cannot fill it itself: the job does that with the catalog in hand, before
1421
1439
  // the trigger filter runs — like contactId/companyId above.
1422
1440
  { name: "assigneeUserId", type: "string" }
1423
- ], Jr = {
1441
+ ], ei = {
1424
1442
  topics: [
1425
1443
  { name: "topicId", type: "string" },
1426
1444
  { name: "topic", type: "string" },
@@ -1442,60 +1460,60 @@ function dt(e) {
1442
1460
  return e?.type === ut ? e.id : void 0;
1443
1461
  }
1444
1462
  const pt = 64, ft = 8e3;
1445
- function Zr(e) {
1463
+ function ti(e) {
1446
1464
  const t = typeof e == "number" ? e : Number(String(e ?? "").trim());
1447
1465
  if (!(!Number.isFinite(t) || t <= 0))
1448
1466
  return Math.min(Math.max(Math.round(t), pt), ft);
1449
1467
  }
1450
- const Qr = { kind: "workflow", steps: [] };
1451
- function ei(e) {
1468
+ const ni = { kind: "workflow", steps: [] };
1469
+ function ri(e) {
1452
1470
  return e?.kind === "workflow" ? e.steps : [];
1453
1471
  }
1454
- function ti(e) {
1472
+ function ii(e) {
1455
1473
  return e?.kind === "procedure" ? e.procedure : void 0;
1456
1474
  }
1457
1475
  const mt = ["done", "escalated", "failed", "stopped"];
1458
- function ni(e) {
1476
+ function ai(e) {
1459
1477
  return mt.includes(e);
1460
1478
  }
1461
1479
  function gt(e) {
1462
1480
  return e === "waiting";
1463
1481
  }
1464
- function ri(e) {
1482
+ function oi(e) {
1465
1483
  return e === "running" || gt(e);
1466
1484
  }
1467
1485
  function ge(e) {
1468
1486
  return e.subjectKind && e.subjectId ? { type: e.subjectKind, id: e.subjectId } : void 0;
1469
1487
  }
1470
- function ii(e) {
1488
+ function si(e) {
1471
1489
  const t = ge(e);
1472
1490
  return t ? lt(t) : void 0;
1473
1491
  }
1474
- function ai(e) {
1492
+ function ci(e) {
1475
1493
  return dt(ge(e));
1476
1494
  }
1477
- function oi(e, t) {
1495
+ function li(e, t) {
1478
1496
  const n = e.accumulatedSeconds || 0;
1479
1497
  return e.runningSince ? n + Math.max(0, Math.floor((t - e.runningSince) / 1e3)) : n;
1480
1498
  }
1481
- function si(e, t) {
1499
+ function ui(e, t) {
1482
1500
  const n = Math.max(1, Math.ceil(Math.max(0, e) / 60));
1483
1501
  if (!t || t === "exact") return n * 60;
1484
1502
  const r = Number(t);
1485
1503
  return !Number.isFinite(r) || r <= 0 ? n * 60 : Math.ceil(n / r) * r * 60;
1486
1504
  }
1487
- function ci(e) {
1505
+ function di(e) {
1488
1506
  const t = Math.max(0, Math.round(e / 60));
1489
1507
  return `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
1490
1508
  }
1491
- function li(e) {
1509
+ function pi(e) {
1492
1510
  const t = Math.max(0, Math.floor(e)), n = (a) => String(a).padStart(2, "0"), r = Math.floor(t / 60) % 60, i = Math.floor(t / 3600);
1493
1511
  return i > 0 ? `${i}:${n(r)}:${n(t % 60)}` : `${n(r)}:${n(t % 60)}`;
1494
1512
  }
1495
1513
  function ht(e) {
1496
1514
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^a-z0-9]+/g, "-").slice(0, 48).replace(/^-+|-+$/g, "");
1497
1515
  }
1498
- function ui(e, t) {
1516
+ function fi(e, t) {
1499
1517
  const n = ht(e) || "werksoort", r = new Set(t);
1500
1518
  if (!r.has(n)) return n;
1501
1519
  for (let i = 2; i < 500; i++) {
@@ -1504,11 +1522,11 @@ function ui(e, t) {
1504
1522
  }
1505
1523
  return `${n}-${r.size + 1}`;
1506
1524
  }
1507
- function di(e, t) {
1525
+ function mi(e, t) {
1508
1526
  const n = e.ownerScope;
1509
1527
  return !n || n.kind === "org" ? !0 : t.includes(n.teamId);
1510
1528
  }
1511
- function pi(e) {
1529
+ function gi(e) {
1512
1530
  return e.filter((t) => !t.archived).sort(yt);
1513
1531
  }
1514
1532
  function yt(e, t) {
@@ -1525,7 +1543,7 @@ function Et(e) {
1525
1543
  const n = t.slice(0, k), r = Math.max(n.lastIndexOf(". "), n.lastIndexOf("! "), n.lastIndexOf("? "));
1526
1544
  return r > k * 0.6 ? n.slice(0, r + 1) : `${n.trimEnd()}…`;
1527
1545
  }
1528
- function fi(e, t) {
1546
+ function hi(e, t) {
1529
1547
  const n = Et(t.text), r = g(n);
1530
1548
  if (!r || (e.examples ?? []).some((o) => g(o) === r)) return null;
1531
1549
  const i = e.exampleCandidates ?? [], a = i.findIndex((o) => g(o.text) === r);
@@ -1541,7 +1559,7 @@ function q(e) {
1541
1559
  (t, n) => Number(n.corrected) - Number(t.corrected) || n.addedAt - t.addedAt
1542
1560
  );
1543
1561
  }
1544
- function mi(e, t) {
1562
+ function yi(e, t) {
1545
1563
  const n = g(t), r = (e.examples ?? []).filter((a) => a.trim());
1546
1564
  return { examples: r.some((a) => g(a) === n) ? r : [...r, t].slice(-At), exampleCandidates: St(e, t) };
1547
1565
  }
@@ -1553,24 +1571,24 @@ function _t(e, t) {
1553
1571
  const n = e.ownerScope;
1554
1572
  return n ? n.kind === "org" ? !0 : n.kind === "team" ? !!t && n.teamId === t : !1 : !1;
1555
1573
  }
1556
- function gi(e, t) {
1574
+ function Ai(e, t) {
1557
1575
  return e.filter((n) => _t(n, t));
1558
1576
  }
1559
- function hi(e) {
1577
+ function bi(e) {
1560
1578
  return e.type === "agent";
1561
1579
  }
1562
- const yi = "WORK_COMMENT_ADDED", Ai = "WORK_ITEM_ASSIGNED", Tt = "work_item", It = "work_project";
1580
+ const Ei = "WORK_COMMENT_ADDED", Si = "WORK_ITEM_ASSIGNED", _i = "WORK_ITEM_STATUS_CHANGED", Tt = "work_item", It = "work_project";
1563
1581
  function wt(e) {
1564
1582
  return `${Tt}:${e}`;
1565
1583
  }
1566
1584
  function he(e) {
1567
1585
  return `${It}:${e}`;
1568
1586
  }
1569
- function bi(e, t, n) {
1587
+ function Ti(e, t, n) {
1570
1588
  const r = `${e}-${t}`;
1571
1589
  return n ? `${r}-${n}` : r;
1572
1590
  }
1573
- function Ei(e) {
1591
+ function Ii(e) {
1574
1592
  const t = /^([A-Za-z0-9]{2,8})-(\d+)(?:-(\d+))?$/.exec((e || "").trim());
1575
1593
  return t ? {
1576
1594
  projectKey: t[1].toUpperCase(),
@@ -1578,36 +1596,36 @@ function Ei(e) {
1578
1596
  ...t[3] ? { subSequence: Number(t[3]) } : {}
1579
1597
  } : null;
1580
1598
  }
1581
- function Si(e) {
1599
+ function wi(e) {
1582
1600
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toUpperCase().replace(/[^A-Z0-9]/g, "").slice(0, 3) || "PRJ";
1583
1601
  }
1584
- function _i(e, t = 25) {
1602
+ function Mi(e, t = 25) {
1585
1603
  const n = /* @__PURE__ */ new Set([wt(e.id)]);
1586
1604
  e.projectId && n.add(he(e.projectId));
1587
1605
  for (const r of e.ancestorKeys ?? []) n.add(r);
1588
1606
  for (const r of e.partyKeys ?? []) n.add(r);
1589
1607
  return Array.from(n).slice(0, t);
1590
1608
  }
1591
- function Ti(e) {
1609
+ function ki(e) {
1592
1610
  return [he(e.id)];
1593
1611
  }
1594
- const v = [
1612
+ const O = [
1595
1613
  { key: "open", label: "status_open", category: "todo", order: 0 },
1596
1614
  { key: "in_progress", label: "status_in_progress", category: "in_progress", order: 1 },
1597
1615
  { key: "done", label: "status_done", category: "done", order: 2 }
1598
- ], ye = v.map((e) => e.key);
1616
+ ], ye = O.map((e) => e.key);
1599
1617
  function Mt(e) {
1600
- return e?.statuses?.length ? e.statuses : v;
1618
+ return e?.statuses?.length ? e.statuses : O;
1601
1619
  }
1602
1620
  function kt(e, t) {
1603
1621
  return t.find((n) => n.key === e)?.category ?? "todo";
1604
1622
  }
1605
- function Ii(e, t) {
1623
+ function Ci(e, t) {
1606
1624
  return t.find((n) => n.key === e);
1607
1625
  }
1608
- function wi(e) {
1626
+ function Ni(e) {
1609
1627
  const t = Mt(e), n = e?.defaultStatusKey;
1610
- return n && t.some((r) => r.key === n) ? n : Ct(t)[0]?.key ?? v[0].key;
1628
+ return n && t.some((r) => r.key === n) ? n : Ct(t)[0]?.key ?? O[0].key;
1611
1629
  }
1612
1630
  function Ct(e) {
1613
1631
  return [...e].sort((t, n) => {
@@ -1615,13 +1633,13 @@ function Ct(e) {
1615
1633
  return r !== 0 ? r : (t.label || "").localeCompare(n.label || "");
1616
1634
  });
1617
1635
  }
1618
- function Mi(e, t) {
1636
+ function Oi(e, t) {
1619
1637
  return kt(e, t) === "done";
1620
1638
  }
1621
1639
  function Nt(e) {
1622
1640
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^a-z0-9]+/g, "-").slice(0, 48).replace(/^-+|-+$/g, "");
1623
1641
  }
1624
- function ki(e, t) {
1642
+ function vi(e, t) {
1625
1643
  const n = Nt(e) || "status", r = /* @__PURE__ */ new Set([...t, ...ye]);
1626
1644
  if (!r.has(n)) return n;
1627
1645
  for (let i = 2; i < 500; i++) {
@@ -1630,7 +1648,7 @@ function ki(e, t) {
1630
1648
  }
1631
1649
  return `${n}-${r.size + 1}`;
1632
1650
  }
1633
- function Ci(e) {
1651
+ function xi(e) {
1634
1652
  const t = [];
1635
1653
  if (!e.length) return [{ index: -1, reason: "empty" }];
1636
1654
  const n = /* @__PURE__ */ new Set();
@@ -1642,7 +1660,7 @@ function Ci(e) {
1642
1660
  ye.includes(r.key) && t.push({ index: i, reason: "reserved_key", key: r.key }), n.has(r.key) && t.push({ index: i, reason: "duplicate_key", key: r.key }), n.add(r.key);
1643
1661
  }), e.some((r) => r.category === "todo" || r.category === "in_progress") || t.push({ index: -1, reason: "no_open" }), e.some((r) => r.category === "done") || t.push({ index: -1, reason: "no_done" }), t;
1644
1662
  }
1645
- const vt = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "image/gif", "image/webp"]), Ot = /* @__PURE__ */ new Set([
1663
+ const Ot = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "image/gif", "image/webp"]), vt = /* @__PURE__ */ new Set([
1646
1664
  "text/plain",
1647
1665
  "text/markdown",
1648
1666
  "text/csv",
@@ -1653,22 +1671,22 @@ const vt = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "ima
1653
1671
  ]);
1654
1672
  function xt(e) {
1655
1673
  const t = (e ?? "").trim().toLowerCase().split(";")[0];
1656
- return t ? vt.has(t) ? "image" : t === "application/pdf" ? "pdf" : Ot.has(t) ? "text" : t.startsWith("audio/") ? "audio" : "unsupported" : "unsupported";
1674
+ return t ? Ot.has(t) ? "image" : t === "application/pdf" ? "pdf" : vt.has(t) ? "text" : t.startsWith("audio/") ? "audio" : "unsupported" : "unsupported";
1657
1675
  }
1658
1676
  const h = 1024 * 1024, $t = {
1659
1677
  image: 5 * h,
1660
1678
  pdf: 20 * h,
1661
1679
  text: 1 * h,
1662
1680
  audio: 20 * h
1663
- }, Ni = 25 * h, vi = 5;
1664
- function Oi(e, t) {
1681
+ }, $i = 25 * h, Ri = 5;
1682
+ function Di(e, t) {
1665
1683
  const n = xt(e);
1666
1684
  return n === "unsupported" ? "unsupported" : t > $t[n] ? "too-large" : null;
1667
1685
  }
1668
1686
  function Rt(e) {
1669
1687
  return `${e.kind}:${e.id || e.url || e.title}`;
1670
1688
  }
1671
- function xi(e, t = []) {
1689
+ function Li(e, t = []) {
1672
1690
  const n = new Set(t), r = [], i = [];
1673
1691
  for (const a of e) {
1674
1692
  const o = Rt(a);
@@ -1676,22 +1694,22 @@ function xi(e, t = []) {
1676
1694
  }
1677
1695
  return { sources: r, keys: i };
1678
1696
  }
1679
- function $i(e) {
1697
+ function Pi(e) {
1680
1698
  return e.sessions.filter(
1681
1699
  (t) => t.id !== e.exceptSessionId && t.state === "connected" && e.canHold(t.providerId)
1682
1700
  );
1683
1701
  }
1684
- function Ri(e) {
1702
+ function Ki(e) {
1685
1703
  return e.sessions.filter(
1686
1704
  (t) => t.id !== e.exceptSessionId && t.state === "connected" && !e.canHold(t.providerId)
1687
1705
  );
1688
1706
  }
1689
- function Li(e) {
1707
+ function Ui(e) {
1690
1708
  return e.sessions.some(
1691
1709
  (n) => n.id !== e.exceptSessionId && (n.state === "connected" || n.state === "on_hold")
1692
1710
  ) ? { admit: !1, reason: "busy" } : { admit: !0 };
1693
1711
  }
1694
- function Lt(e, t) {
1712
+ function Dt(e, t) {
1695
1713
  const n = new Set(e.disabledIntents ?? []), r = e.intentOverrides ?? {}, i = t.intents.filter((o) => !n.has(o.intent)).map((o) => Pt(o, r[o.intent]));
1696
1714
  if (!e.extraIntents || e.extraIntents.length === 0) return i;
1697
1715
  const a = new Set(i.map((o) => o.intent));
@@ -1699,7 +1717,7 @@ function Lt(e, t) {
1699
1717
  a.has(o.intent) || (i.push(o), a.add(o.intent));
1700
1718
  return i;
1701
1719
  }
1702
- function Dt(e, t) {
1720
+ function Lt(e, t) {
1703
1721
  const n = {};
1704
1722
  for (const r of e.intents) {
1705
1723
  if (!r.togglable) continue;
@@ -1708,8 +1726,8 @@ function Dt(e, t) {
1708
1726
  }
1709
1727
  return n;
1710
1728
  }
1711
- function Di(e, t) {
1712
- const n = Dt(e, t);
1729
+ function ji(e, t) {
1730
+ const n = Lt(e, t);
1713
1731
  return Object.entries(n).filter(([, r]) => !r).map(([r]) => r);
1714
1732
  }
1715
1733
  function Pt(e, t) {
@@ -1719,27 +1737,27 @@ function Pt(e, t) {
1719
1737
  transport: t.transport ?? e.transport
1720
1738
  } : e;
1721
1739
  }
1722
- function Pi(e, t) {
1740
+ function Gi(e, t) {
1723
1741
  const n = [];
1724
1742
  for (const r of e) {
1725
1743
  if (!r.enabled) continue;
1726
1744
  const i = t[r.providerId];
1727
1745
  if (i)
1728
- for (const a of Lt(r, i))
1746
+ for (const a of Dt(r, i))
1729
1747
  n.push({ channel: r, description: i, capability: a });
1730
1748
  }
1731
1749
  return n;
1732
1750
  }
1733
- function Ki(e, t) {
1751
+ function Bi(e, t) {
1734
1752
  return t.filter((n) => n.capability.intent === e);
1735
1753
  }
1736
1754
  function Kt(e, t) {
1737
1755
  return t.filter((n) => n.capability.targetSchemes.includes(e));
1738
1756
  }
1739
- function Ui(e, t) {
1757
+ function Fi(e, t) {
1740
1758
  return Kt(e.scheme, t);
1741
1759
  }
1742
- function ji(e, t, n) {
1760
+ function Hi(e, t, n) {
1743
1761
  const r = [];
1744
1762
  for (const i of e)
1745
1763
  for (const a of n)
@@ -1768,10 +1786,10 @@ const jt = {
1768
1786
  id: "note",
1769
1787
  custom: "note"
1770
1788
  };
1771
- function Gi(e) {
1789
+ function Wi(e) {
1772
1790
  return e ? jt[e] ?? "note" : "note";
1773
1791
  }
1774
- const Bi = "message_window", Fi = "message_templates", Hi = {
1792
+ const Vi = "message_window", zi = "message_templates", Xi = {
1775
1793
  // E-mail
1776
1794
  FROM: "from",
1777
1795
  TO: "to",
@@ -1788,11 +1806,11 @@ const Bi = "message_window", Fi = "message_templates", Hi = {
1788
1806
  // Voice/conference
1789
1807
  HOST: "host",
1790
1808
  PARTICIPANT: "participant"
1791
- }, Vi = (e, t) => ({ intent: e, ...t }), Wi = "folder_management", zi = "remote_search", Xi = {
1809
+ }, Yi = (e, t) => ({ intent: e, ...t }), qi = "folder_management", Ji = "remote_search", Zi = {
1792
1810
  ok: !1,
1793
1811
  code: "UNSUPPORTED",
1794
1812
  message: "Provider does not support this op"
1795
- }, Yi = "installation-id", qi = {
1813
+ }, Qi = "installation-id", ea = {
1796
1814
  ai: [
1797
1815
  "account.read",
1798
1816
  "account.write",
@@ -1926,24 +1944,24 @@ const Bi = "message_window", Fi = "message_templates", Hi = {
1926
1944
  user: ["user.read", "user.write"],
1927
1945
  work: ["item.read", "item.write", "project.read", "project.write"]
1928
1946
  }, Ae = 9e4, Gt = ["out_of_office"], be = (e) => Gt.includes(e);
1929
- function Ji(e, t, n) {
1947
+ function ta(e, t, n) {
1930
1948
  const r = n - e < Ae, i = t?.status && (!t.expiresAt || t.expiresAt > n) ? t : void 0;
1931
1949
  if (!i?.status) return { online: r, status: r ? "available" : "offline" };
1932
1950
  const a = i.status;
1933
1951
  return !r && !be(a) ? { online: !1, status: "offline" } : { online: r, status: a, message: i.message };
1934
1952
  }
1935
- function Zi(e, t) {
1953
+ function na(e, t) {
1936
1954
  const n = t - e.lastSeenAt < Ae, r = n || be(e.status) ? e.status : "offline";
1937
1955
  return n === e.online && r === e.status ? e : { ...e, online: n, status: r };
1938
1956
  }
1939
- function Qi(e, t) {
1957
+ function ra(e, t) {
1940
1958
  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 };
1941
1959
  }
1942
- function ea(e) {
1960
+ function ia(e) {
1943
1961
  return e.providerAvailable && e.allowed;
1944
1962
  }
1945
- const ta = "resources.describe", na = "resources.search", ra = "resources.resolve";
1946
- function ia(e) {
1963
+ const aa = "resources.describe", oa = "resources.search", sa = "resources.resolve";
1964
+ function ca(e) {
1947
1965
  const t = e.indexOf(":");
1948
1966
  return t === -1 ? e : e.slice(0, t);
1949
1967
  }
@@ -1952,11 +1970,11 @@ function Se(e) {
1952
1970
  const t = typeof e == "string" ? e.match(/apps\/([^/?#]+)/) : null;
1953
1971
  return t ? t[1] : null;
1954
1972
  }
1955
- function aa(e) {
1973
+ function la(e) {
1956
1974
  const t = Se(e);
1957
1975
  return t ? t !== Ee : typeof e == "string" && e.startsWith("/wake");
1958
1976
  }
1959
- function oa(e) {
1977
+ function ua(e) {
1960
1978
  return typeof e != "string" || e === "" || e === "/" ? !0 : Se(e) === Ee;
1961
1979
  }
1962
1980
  function Bt(e) {
@@ -1975,14 +1993,14 @@ function Ht(e, t) {
1975
1993
  }
1976
1994
  }), i;
1977
1995
  }
1978
- function Vt(e) {
1996
+ function Wt(e) {
1979
1997
  return e.publicBasePath ?? `/apps/${e.name}`;
1980
1998
  }
1981
- function sa(e) {
1999
+ function da(e) {
1982
2000
  const t = [];
1983
2001
  for (const n of e) {
1984
2002
  if (!n?.name) continue;
1985
- const r = Vt(n);
2003
+ const r = Wt(n);
1986
2004
  for (const i of n.routes ?? []) {
1987
2005
  if (!i.public) continue;
1988
2006
  const a = i.path === "/" ? "" : i.path;
@@ -1996,7 +2014,7 @@ function sa(e) {
1996
2014
  }
1997
2015
  return t;
1998
2016
  }
1999
- function Wt(e, t) {
2017
+ function Vt(e, t) {
2000
2018
  const n = e.split("/").filter(Boolean), r = t.split("/").filter(Boolean);
2001
2019
  for (let i = 0; i < Math.min(n.length, r.length); i++) {
2002
2020
  const a = n[i].startsWith(":"), o = r[i].startsWith(":");
@@ -2008,13 +2026,13 @@ function zt(e, t) {
2008
2026
  if (typeof e != "string") return null;
2009
2027
  let n = null;
2010
2028
  for (const r of t)
2011
- Ft(r.pattern).test(e) && (!n || Wt(r.pattern, n.pattern)) && (n = r);
2029
+ Ft(r.pattern).test(e) && (!n || Vt(r.pattern, n.pattern)) && (n = r);
2012
2030
  return n ? { ...n, params: { ...n.props, ...Ht(n.pattern, e) } } : null;
2013
2031
  }
2014
- function ca(e, t) {
2032
+ function pa(e, t) {
2015
2033
  return zt(e, t) !== null;
2016
2034
  }
2017
- const la = "sync-source", ua = "sync-target", da = 20, Xt = {
2035
+ const fa = "sync-source", ma = "sync-target", ga = 20, Xt = {
2018
2036
  afrikaans: [
2019
2037
  "[Muziek]",
2020
2038
  "(C) TV GELDERLAND 2021",
@@ -2305,13 +2323,13 @@ function an(e, t = qt) {
2305
2323
  return { text: n.filter((o) => (o.endedAt ?? 0) >= i).map((o) => Yt(o.text).trim()).filter(Boolean).join(" ").replace(/\s+/g, " ").trim(), segmentCount: n.length };
2306
2324
  }
2307
2325
  const on = 60;
2308
- function pa(e, t, n = on) {
2326
+ function ha(e, t, n = on) {
2309
2327
  const r = new Set(e), i = [...e];
2310
2328
  for (const a of t)
2311
2329
  !a || r.has(a) || (r.add(a), i.push(a));
2312
2330
  return i.slice(-n);
2313
2331
  }
2314
- function fa(e) {
2332
+ function ya(e) {
2315
2333
  const { segments: t, now: n, state: r } = e;
2316
2334
  if (r.lastTriggerAt && n - r.lastTriggerAt < Jt)
2317
2335
  return { trigger: !1, reason: "too_soon" };
@@ -2323,7 +2341,7 @@ function fa(e) {
2323
2341
  const o = nn(i.text);
2324
2342
  return o.length ? r.lastQueryTerms?.length && rn(o, r.lastQueryTerms) < Qt ? { trigger: !1, reason: "same_topic" } : { trigger: !0, text: i.text, terms: o, segmentCount: i.segmentCount } : { trigger: !1, reason: "no_speech" };
2325
2343
  }
2326
- const O = {
2344
+ const v = {
2327
2345
  // The lower bounds are deliberately generous: service ranges (0800/0900) are
2328
2346
  // shorter than geographic numbers, and a too-strict minimum silently drops them.
2329
2347
  // An over-permissive key is harmless — it simply matches nothing.
@@ -2347,11 +2365,11 @@ const O = {
2347
2365
  US: { callingCode: "1", nsnMin: 10, nsnMax: 10 },
2348
2366
  CA: { callingCode: "1", nsnMin: 10, nsnMax: 10 }
2349
2367
  }, sn = "NL", cn = 15, ln = 8, un = Array.from(
2350
- new Set(Object.values(O).map((e) => e.callingCode))
2368
+ new Set(Object.values(v).map((e) => e.callingCode))
2351
2369
  ).sort((e, t) => t.length - e.length);
2352
2370
  function J(e) {
2353
2371
  if (e)
2354
- return O[e.trim().toUpperCase()];
2372
+ return v[e.trim().toUpperCase()];
2355
2373
  }
2356
2374
  function E(e, t) {
2357
2375
  return e.length >= t.nsnMin && e.length <= t.nsnMax;
@@ -2361,7 +2379,7 @@ function Z(e) {
2361
2379
  for (const t of un) {
2362
2380
  if (!e.startsWith(t)) continue;
2363
2381
  const n = e.slice(t.length);
2364
- for (const r of Object.values(O)) {
2382
+ for (const r of Object.values(v)) {
2365
2383
  if (r.callingCode !== t) continue;
2366
2384
  const i = r.trunkPrefix, a = i && n.startsWith(i) ? n.slice(i.length) : n;
2367
2385
  if (E(a, r)) return `+${t}${a}`;
@@ -2377,7 +2395,7 @@ function dn(e) {
2377
2395
  const r = t.indexOf("@");
2378
2396
  return r >= 0 && (t = t.slice(0, r)), t.trim();
2379
2397
  }
2380
- function ma(e) {
2398
+ function Aa(e) {
2381
2399
  if (!e) return !1;
2382
2400
  const t = e.indexOf("@");
2383
2401
  if (t <= 0) return !1;
@@ -2405,7 +2423,7 @@ function Q(e, t) {
2405
2423
  }
2406
2424
  return !o && E(i, a) ? `+${a.callingCode}${i}` : null;
2407
2425
  }
2408
- function ga(e, t = 9) {
2426
+ function ba(e, t = 9) {
2409
2427
  const n = (e ?? "").replace(/\D/g, "");
2410
2428
  return n.length < t ? null : n.slice(-t);
2411
2429
  }
@@ -2416,7 +2434,7 @@ function _e(e) {
2416
2434
  const r = t.slice(0, n).split("+")[0], i = t.slice(n + 1);
2417
2435
  return !r || !i.includes(".") ? null : `${r}@${i}`;
2418
2436
  }
2419
- function ha(e) {
2437
+ function Ea(e) {
2420
2438
  const t = _e(e);
2421
2439
  return t ? t.slice(t.lastIndexOf("@") + 1) : null;
2422
2440
  }
@@ -2482,16 +2500,16 @@ const mn = /* @__PURE__ */ new Set([
2482
2500
  "proximus.be",
2483
2501
  "scarlet.be"
2484
2502
  ]);
2485
- function ya(e) {
2503
+ function Sa(e) {
2486
2504
  const t = fn(e);
2487
2505
  return t ? mn.has(t) : !1;
2488
2506
  }
2489
- function Aa(e) {
2507
+ function _a(e) {
2490
2508
  if (!e) return !1;
2491
2509
  const t = e.trim().toLowerCase();
2492
2510
  return t === "tel" || t === "sms" || t === "whatsapp" || t === "fax";
2493
2511
  }
2494
- function ba(e, t, n) {
2512
+ function Ta(e, t, n) {
2495
2513
  if (!e || !t) return null;
2496
2514
  const r = e.trim().toLowerCase();
2497
2515
  if (r === "tel" || r === "sms" || r === "whatsapp") {
@@ -2510,7 +2528,7 @@ function ba(e, t, n) {
2510
2528
  return i ? `${r}:${i}` : null;
2511
2529
  }
2512
2530
  const gn = /(\*\*|__)(?=\S)([\s\S]*?\S)\1/g, hn = /(\*|_)(?=\S)([^*_\n]*?\S)\1/g;
2513
- function Ea(e) {
2531
+ function Ia(e) {
2514
2532
  if (typeof e != "string" || !e) return "";
2515
2533
  let t = e;
2516
2534
  return t = t.replace(/```[a-z]*\n?/gi, "").replace(/~~~[a-z]*\n?/gi, ""), t = t.replace(/!\[([^\]]*)\]\([^)]*\)/g, "$1"), t = t.replace(/\[([^\]]*)\]\([^)]*\)/g, "$1"), t = t.replace(/\[([^\]]*)\]\[[^\]]*\]/g, "$1"), t = t.replace(/<((?:https?|mailto):[^>\s]+)>/gi, "$1"), t = t.split(`
@@ -2563,10 +2581,10 @@ function ie(e) {
2563
2581
  `).trim();
2564
2582
  }
2565
2583
  const En = /<\s*(html|body|div|p|table|br|span)\b/i;
2566
- function Sa(e) {
2584
+ function wa(e) {
2567
2585
  return En.test(e);
2568
2586
  }
2569
- function _a(e) {
2587
+ function Ma(e) {
2570
2588
  if (typeof e != "string" || !e) return "";
2571
2589
  let t = e.length;
2572
2590
  for (const a of yn) {
@@ -2578,21 +2596,21 @@ function _a(e) {
2578
2596
  return r || (r = ie(re(te(e)))), bn(r) || r;
2579
2597
  }
2580
2598
  const Sn = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i, _n = /\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;
2581
- function Ta(e, t) {
2599
+ function ka(e, t) {
2582
2600
  return !!(e && Sn.test(e) || t && _n.test(t));
2583
2601
  }
2584
2602
  const Tn = 3, In = 600;
2585
- function Ia(e, t) {
2603
+ function Ca(e, t) {
2586
2604
  return e >= Tn || t >= In;
2587
2605
  }
2588
2606
  export {
2589
2607
  m as ACTIVITY_CATALOG,
2590
2608
  $t as AI_ATTACHMENT_LIMITS,
2591
- vi as AI_ATTACHMENT_MAX_PER_TURN,
2592
- Ni as AI_ATTACHMENT_TURN_BUDGET,
2609
+ Ri as AI_ATTACHMENT_MAX_PER_TURN,
2610
+ $i as AI_ATTACHMENT_TURN_BUDGET,
2593
2611
  oe as AI_VENDORS,
2594
2612
  je as ALLOWED_LINK_SCHEMES,
2595
- qi as APP_PERMISSIONS,
2613
+ ea as APP_PERMISSIONS,
2596
2614
  U as ARTIFACT_MAX_BLOCKS,
2597
2615
  ar as ARTIFACT_MAX_BODY_BYTES,
2598
2616
  M as ARTIFACT_MAX_CELL_LEN,
@@ -2603,34 +2621,34 @@ export {
2603
2621
  ce as ARTIFACT_MAX_TEXT_LEN,
2604
2622
  Ye as ASSIGNMENT_SCOPE_KIND,
2605
2623
  Ee as AUTH_APP_NAME,
2606
- ve as ActivityTypeRegistry,
2624
+ Oe as ActivityTypeRegistry,
2607
2625
  Bn as BUILT_IN_ONLY,
2608
2626
  Jt as CADENCE_FLOOR_MS,
2609
2627
  Zt as CADENCE_MIN_NEW_SEGMENTS,
2610
2628
  Qt as CADENCE_MIN_NOVELTY,
2611
2629
  qt as CADENCE_WINDOW_MS,
2612
- Jr as CLASSIFY_VARS,
2630
+ ei as CLASSIFY_VARS,
2613
2631
  nr as CORE_DIMENSIONS,
2614
2632
  Ut as CommunicationScheme,
2615
2633
  jr as DEFAULT_MEMORY_BUDGET,
2616
2634
  sn as DEFAULT_PHONE_REGION,
2617
- Qr as EMPTY_WORKFLOW,
2618
- Wi as FEATURE_FOLDER_MANAGEMENT,
2619
- zi as FEATURE_REMOTE_SEARCH,
2635
+ ni as EMPTY_WORKFLOW,
2636
+ qi as FEATURE_FOLDER_MANAGEMENT,
2637
+ Ji as FEATURE_REMOTE_SEARCH,
2620
2638
  En as HTML_BODY_RE,
2621
- Yi as INSTALLATION_HEADER,
2639
+ Qi as INSTALLATION_HEADER,
2622
2640
  ut as INTERACTION_KIND,
2623
- Hi as InteractionParticipantRole,
2641
+ Xi as InteractionParticipantRole,
2624
2642
  et as KB_FALLBACK_LOCALE,
2625
2643
  z as KB_LOCALES,
2626
- v as LOOSE_STATUSES,
2644
+ O as LOOSE_STATUSES,
2627
2645
  Cn as MAX_ACTIONS,
2628
2646
  qe as MAX_ASSIGNMENT_TURNS,
2629
2647
  wn as MAX_BLOCKS,
2630
2648
  fe as MAX_COLLECTION_DEPTH,
2631
2649
  Mn as MAX_FIELDS,
2632
2650
  kn as MAX_LIST_ITEMS,
2633
- Dr as MAX_MEMORY_BROWSE,
2651
+ Lr as MAX_MEMORY_BROWSE,
2634
2652
  Ur as MAX_MEMORY_BUDGET,
2635
2653
  Pr as MAX_MEMORY_CHARS,
2636
2654
  on as MAX_SHOWN_KEYS,
@@ -2638,54 +2656,58 @@ export {
2638
2656
  At as MAX_TOPIC_EXAMPLES,
2639
2657
  k as MAX_TOPIC_EXAMPLE_CHARS,
2640
2658
  Kr as MIN_MEMORY_BUDGET,
2641
- O as PHONE_REGIONS,
2659
+ Br as ONBOARDING_SOURCE_PROVIDER_GROUP,
2660
+ v as PHONE_REGIONS,
2642
2661
  Ae as PRESENCE_ONLINE_WINDOW_MS,
2643
2662
  Gt as PRESENCE_SURVIVES_OFFLINE,
2644
- Fi as PROVIDER_FEATURE_MESSAGE_TEMPLATES,
2645
- Bi as PROVIDER_FEATURE_MESSAGE_WINDOW,
2663
+ Hr as PROFILE_TOOL_DISPOSITIONS,
2664
+ zi as PROVIDER_FEATURE_MESSAGE_TEMPLATES,
2665
+ Vi as PROVIDER_FEATURE_MESSAGE_WINDOW,
2646
2666
  mn as PUBLIC_EMAIL_DOMAINS,
2647
2667
  X as READ_STEP_TYPES,
2648
2668
  rt as RELATED_SUBJECT_KINDS,
2649
2669
  ye as RESERVED_STATUS_KEYS,
2650
- ta as RESOURCE_DESCRIBE_SERVICE,
2651
- ra as RESOURCE_RESOLVE_SERVICE,
2652
- na as RESOURCE_SEARCH_SERVICE,
2670
+ aa as RESOURCE_DESCRIBE_SERVICE,
2671
+ sa as RESOURCE_RESOLVE_SERVICE,
2672
+ oa as RESOURCE_SEARCH_SERVICE,
2653
2673
  Ar as SIGNATURE_INTENTS,
2654
2674
  ft as STEP_MAX_TOKENS_MAX,
2655
2675
  pt as STEP_MAX_TOKENS_MIN,
2656
2676
  In as SUMMARY_MIN_LAST_CHARS,
2657
2677
  Tn as SUMMARY_MIN_MESSAGES,
2658
- da as SYNC_RUN_MAX_ERRORS,
2659
- la as SYNC_SOURCE_PROVIDER_GROUP,
2660
- ua as SYNC_TARGET_PROVIDER_GROUP,
2678
+ ga as SYNC_RUN_MAX_ERRORS,
2679
+ fa as SYNC_SOURCE_PROVIDER_GROUP,
2680
+ ma as SYNC_TARGET_PROVIDER_GROUP,
2661
2681
  Xe as TERMINAL_ASSIGNMENT_STATUSES,
2662
2682
  mt as TERMINAL_RUN_STATUSES,
2663
- qr as TRIGGER_VARS,
2664
- Xi as UNSUPPORTED,
2665
- De as USAGE_DIMENSIONS,
2683
+ Qr as TRIGGER_VARS,
2684
+ Zi as UNSUPPORTED,
2685
+ Le as USAGE_DIMENSIONS,
2666
2686
  Pe as USAGE_DIMENSION_IDS,
2667
- yi as WORK_COMMENT_ADDED,
2668
- Ai as WORK_ITEM_ASSIGNED,
2687
+ Fr as WORK_AREAS,
2688
+ Ei as WORK_COMMENT_ADDED,
2689
+ Si as WORK_ITEM_ASSIGNED,
2669
2690
  Tt as WORK_ITEM_SCOPE_KIND,
2691
+ _i as WORK_ITEM_STATUS_CHANGED,
2670
2692
  It as WORK_PROJECT_SCOPE_KIND,
2671
- mi as acceptExampleCandidate,
2693
+ yi as acceptExampleCandidate,
2672
2694
  at as actingIdentityKey,
2673
- pi as activeWorkTypes,
2674
- vn as activityIconOf,
2695
+ gi as activeWorkTypes,
2696
+ On as activityIconOf,
2675
2697
  jn as activityJoinUrl,
2676
2698
  Me as activitySnippet,
2677
2699
  ke as activityTextParams,
2678
2700
  Un as activityTimelineText,
2679
2701
  Hn as activityTimestamp,
2680
2702
  d as activityTypeInfo,
2681
- Hr as actorKey,
2682
- fi as addExampleCandidate,
2683
- Zi as agePresenceEntry,
2703
+ zr as actorKey,
2704
+ hi as addExampleCandidate,
2705
+ na as agePresenceEntry,
2684
2706
  xt as aiAttachmentKind,
2685
- Oi as aiAttachmentRejection,
2707
+ Di as aiAttachmentRejection,
2686
2708
  K as aiBudgetLimit,
2687
2709
  Qn as aiBudgetPeriodKey,
2688
- Oe as aiBudgetPeriodStart,
2710
+ ve as aiBudgetPeriodStart,
2689
2711
  Zn as aiBudgetState,
2690
2712
  Jn as aiVendorAcceptsAttachment,
2691
2713
  Xn as aiVendorDefaultModel,
@@ -2693,165 +2715,165 @@ export {
2693
2715
  qn as aiVendorNeedsBaseUrl,
2694
2716
  Yn as aiVendorsWith,
2695
2717
  Se as appNameFromPath,
2696
- si as applyRounding,
2718
+ ui as applyRounding,
2697
2719
  br as applySignature,
2698
2720
  sr as artifactBodyBytes,
2699
2721
  cr as artifactOutline,
2700
2722
  lr as artifactToMarkdown,
2701
- Xr as assignmentMismatch,
2723
+ Jr as assignmentMismatch,
2702
2724
  mr as assignmentScopeKey,
2703
2725
  hr as assignmentSubject,
2704
2726
  Gn as buildActivityPreview,
2705
- Pi as buildChannelIntents,
2727
+ Gi as buildChannelIntents,
2706
2728
  ur as buildShareKeys,
2707
2729
  an as buildWindow,
2708
- vr as canNestUnder,
2730
+ Or as canNestUnder,
2709
2731
  Rn as carriesText,
2710
2732
  xr as categoryLabel,
2711
2733
  kt as categoryOf,
2712
- Gi as channelKindForScheme,
2713
- On as channelKindOf,
2714
- Zr as clampStepMaxTokens,
2715
- _a as cleanMessageText,
2734
+ Wi as channelKindForScheme,
2735
+ vn as channelKindOf,
2736
+ ti as clampStepMaxTokens,
2737
+ Ma as cleanMessageText,
2716
2738
  yt as compareWorkTypes,
2717
2739
  yr as decideAssignmentState,
2718
- fa as decideCadence,
2719
- Li as decideIncomingCall,
2740
+ ya as decideCadence,
2741
+ Ui as decideIncomingCall,
2720
2742
  tt as defaultLocaleOf,
2721
- wi as defaultStatusKey,
2722
- Vi as defineIntent,
2743
+ Ni as defaultStatusKey,
2744
+ Yi as defineIntent,
2723
2745
  Ze as depthOf,
2724
- Ji as derivePresence,
2725
- Di as disabledIntentsFromCapabilities,
2726
- oi as elapsedSeconds,
2727
- ha as emailDomain,
2728
- ba as endpointKey,
2746
+ ta as derivePresence,
2747
+ ji as disabledIntentsFromCapabilities,
2748
+ li as elapsedSeconds,
2749
+ Ea as emailDomain,
2750
+ Ta as endpointKey,
2729
2751
  Ht as extractParams,
2730
2752
  nn as extractTerms,
2731
- Ui as filterByEndpoint,
2732
- Ki as filterByIntent,
2753
+ Fi as filterByEndpoint,
2754
+ Bi as filterByIntent,
2733
2755
  Kt as filterByTargetScheme,
2734
2756
  S as findAiVendor,
2735
2757
  tr as flattenLocales,
2736
2758
  $e as floorToPeriod,
2737
2759
  it as formatActingIdentity,
2738
- li as formatClock,
2739
- ci as formatHm,
2740
- bi as formatItemKey,
2760
+ pi as formatClock,
2761
+ di as formatHm,
2762
+ Ti as formatItemKey,
2741
2763
  xe as formatPeriod,
2742
- xi as freshSources,
2764
+ Li as freshSources,
2743
2765
  Fn as getActivitySeenUserIds,
2744
2766
  Er as getContactEndpoints,
2745
2767
  Ir as getShortTitle,
2746
2768
  Tr as getUrgencyScore,
2747
2769
  me as heightOf,
2748
2770
  kr as helpCenterText,
2749
- Yr as humanizeAction,
2771
+ Zr as humanizeAction,
2750
2772
  dt as interactionIdOf,
2751
- hi as isAgentUser,
2773
+ bi as isAgentUser,
2752
2774
  Sr as isAssigned,
2753
2775
  fr as isAssignmentTerminal,
2754
2776
  ct as isAssignmentTrigger,
2755
- Wn as isChatMessageActivity,
2777
+ Vn as isChatMessageActivity,
2756
2778
  _r as isClosed,
2757
2779
  Pn as isConnectedType,
2758
- aa as isDeepLink,
2780
+ la as isDeepLink,
2759
2781
  Qe as isDescendant,
2760
- Vn as isEmailActivity,
2761
- Sa as isHtmlBody,
2762
- ri as isInFlight,
2782
+ Wn as isEmailActivity,
2783
+ wa as isHtmlBody,
2784
+ oi as isInFlight,
2763
2785
  wr as isInteractionUnseen,
2764
- oa as isLandingPath,
2765
- Ta as isLikelyBulk,
2786
+ ua as isLandingPath,
2787
+ ka as isLikelyBulk,
2766
2788
  ae as isMessageShape,
2767
2789
  xn as isMessageType,
2768
- Wt as isMoreSpecificPattern,
2790
+ Vt as isMoreSpecificPattern,
2769
2791
  gt as isPaused,
2770
- Dn as isPlaybookAuthoredType,
2771
- ya as isPublicEmailDomain,
2772
- ca as isPublicPath,
2792
+ Ln as isPlaybookAuthoredType,
2793
+ Sa as isPublicEmailDomain,
2794
+ pa as isPublicPath,
2773
2795
  $n as isReplyableType,
2774
- ni as isTerminal,
2775
- Ia as isThreadLongEnough,
2796
+ ai as isTerminal,
2797
+ Ca as isThreadLongEnough,
2776
2798
  Kn as isTranscriptType,
2777
- Mi as isWorkClosed,
2778
- di as isWorkTypeVisible,
2779
- _i as itemDossierKeys,
2799
+ Oi as isWorkClosed,
2800
+ mi as isWorkTypeVisible,
2801
+ Mi as itemDossierKeys,
2780
2802
  Mt as ladderFor,
2781
2803
  Mr as linkLabel,
2782
2804
  er as listeningAllowed,
2783
2805
  Nr as localeInstruction,
2784
2806
  Cr as localeName,
2785
- Or as localesOf,
2786
- ma as looksLikeEmail,
2787
- ji as matchContactToIntents,
2807
+ vr as localesOf,
2808
+ Aa as looksLikeEmail,
2809
+ Hi as matchContactToIntents,
2788
2810
  zt as matchPublicRoute,
2789
2811
  Rr as mcpCredentialScope,
2790
- Lr as mcpToolPrefix,
2791
- pa as mergeShownKeys,
2792
- Ln as messageCountsAs,
2793
- Aa as needsPhoneRegion,
2812
+ Dr as mcpToolPrefix,
2813
+ ha as mergeShownKeys,
2814
+ Dn as messageCountsAs,
2815
+ _a as needsPhoneRegion,
2794
2816
  or as normalizeArtifactBlocks,
2795
2817
  Nn as normalizeBlocks,
2796
2818
  _e as normalizeEmail,
2797
2819
  g as normalizeExample,
2798
2820
  rn as novelty,
2799
- Br as parseActingIdentity,
2800
- Ei as parseItemKey,
2821
+ Wr as parseActingIdentity,
2822
+ Ii as parseItemKey,
2801
2823
  Ft as pathToRegex,
2802
2824
  rr as periodsInRange,
2803
- ga as phoneSuffix,
2804
- Ea as plainTextFromMarkdown,
2825
+ ba as phoneSuffix,
2826
+ Ia as plainTextFromMarkdown,
2805
2827
  st as playbookActor,
2806
- ti as procedureOf,
2807
- Ti as projectDossierKeys,
2808
- Vt as publicBasePathFor,
2809
- sa as publicRoutePatterns,
2828
+ ii as procedureOf,
2829
+ ki as projectDossierKeys,
2830
+ Wt as publicBasePathFor,
2831
+ da as publicRoutePatterns,
2810
2832
  C as readPath,
2811
2833
  Y as readStepError,
2812
2834
  lt as refKey,
2813
2835
  fn as registrableDomain,
2814
2836
  St as rejectExampleCandidate,
2815
2837
  Gr as relatedByDefault,
2816
- Dt as resolveAccountCapabilities,
2838
+ Lt as resolveAccountCapabilities,
2817
2839
  N as resolveActivityText,
2818
- Lt as resolveChannelIntents,
2840
+ Dt as resolveChannelIntents,
2819
2841
  Je as resolveSignature,
2820
- Qi as resolveWorkMode,
2821
- ia as resourceKindOf,
2822
- Fr as runActor,
2823
- ai as runInteractionId,
2842
+ ra as resolveWorkMode,
2843
+ ca as resourceKindOf,
2844
+ Vr as runActor,
2845
+ ci as runInteractionId,
2824
2846
  He as sanitizeInline,
2825
2847
  Yt as sanitizeTranscript,
2826
2848
  $r as selectLenses,
2827
- Ri as sessionsHoldCannotReach,
2828
- $i as sessionsToHold,
2849
+ Ki as sessionsHoldCannotReach,
2850
+ Pi as sessionsToHold,
2829
2851
  de as shareKeyForTeam,
2830
2852
  ue as shareKeyForUser,
2831
2853
  dr as shareKeysForViewer,
2832
- ea as shouldRunAudioPipeline,
2854
+ ia as shouldRunAudioPipeline,
2833
2855
  Ct as sortStatuses,
2834
2856
  Rt as sourceKey,
2835
- Ii as statusIn,
2836
- ei as stepsOf,
2857
+ Ci as statusIn,
2858
+ ri as stepsOf,
2837
2859
  we as stripHtml,
2838
- ii as subjectKeyOf,
2860
+ si as subjectKeyOf,
2839
2861
  ge as subjectOf,
2840
- Si as suggestProjectKey,
2841
- zr as targetById,
2842
- Wr as targetForActivityType,
2862
+ wi as suggestProjectKey,
2863
+ qr as targetById,
2864
+ Yr as targetForActivityType,
2843
2865
  ot as toActingIdentity,
2844
2866
  Q as toE164,
2845
2867
  pr as toolSourceKinds,
2846
2868
  _t as topicOfferedForTeam,
2847
- gi as topicsForTeam,
2869
+ Ai as topicsForTeam,
2848
2870
  Et as truncateExample,
2849
- ki as uniqueWorkStatusKey,
2850
- ui as uniqueWorkTypeKey,
2871
+ vi as uniqueWorkStatusKey,
2872
+ fi as uniqueWorkTypeKey,
2851
2873
  Ke as usageMetricId,
2852
2874
  ir as usageMetrics,
2853
- Ci as validateStatuses,
2854
- Vr as valueAtPath,
2875
+ xi as validateStatuses,
2876
+ Xr as valueAtPath,
2855
2877
  gr as wakesAssignment,
2856
2878
  wt as workItemScopeKey,
2857
2879
  he as workProjectScopeKey,