@opencxh/domain 1.278.0 → 1.279.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
@@ -70,7 +70,7 @@ function pa(e, t = () => {
70
70
  return n;
71
71
  }
72
72
  const Nn = /(\*\*|__)(?=\S)([\s\S]*?\S)\1/g, xn = /(\*|_)(?=\S)([^*_\n]*?\S)\1/g;
73
- function Dn(e) {
73
+ function $n(e) {
74
74
  if (typeof e != "string" || !e) return "";
75
75
  let t = e;
76
76
  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(`
@@ -79,7 +79,7 @@ function Dn(e) {
79
79
  ).join(`
80
80
  `), t = t.replace(Nn, "$2"), t = t.replace(xn, "$2"), t = t.replace(/~~(?=\S)([\s\S]*?\S)~~/g, "$1"), t = t.replace(/`([^`\n]+)`/g, "$1"), t.replace(/\s+/g, " ").trim();
81
81
  }
82
- function Rn(e) {
82
+ function Dn(e) {
83
83
  return e.replace(/<style[\s\S]*?<\/style>/gi, " ").replace(/<script[\s\S]*?<\/script>/gi, " ").replace(/<[^>]+>/g, " ").replace(/&nbsp;/g, " ").replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&quot;/g, '"').replace(/&#39;/g, "'").replace(/\s+/g, " ").trim();
84
84
  }
85
85
  function Q(e) {
@@ -99,7 +99,7 @@ function J(e) {
99
99
  function Qe(e) {
100
100
  return e === "meeting" ? "Meeting" : e === "video" ? "Video call" : "Audio call";
101
101
  }
102
- const R = {
102
+ const D = {
103
103
  /* ---- voice ---- */
104
104
  VOICE_CALL_STARTED: {
105
105
  shape: "event",
@@ -478,11 +478,11 @@ const R = {
478
478
  }
479
479
  };
480
480
  function Je(e) {
481
- const t = e.payload, n = Dn(t.bodyText).trim() || t.bodySnippet?.trim() || Rn(t.body ?? "");
481
+ const t = e.payload, n = $n(t.bodyText).trim() || t.bodySnippet?.trim() || Dn(t.body ?? "");
482
482
  return t.subject ? `${t.subject} — ${n}` : n;
483
483
  }
484
484
  function v(e) {
485
- return R[e];
485
+ return D[e];
486
486
  }
487
487
  function ma(e) {
488
488
  return v(e)?.icon ?? "circle";
@@ -505,13 +505,13 @@ function ya(e) {
505
505
  function ba(e) {
506
506
  return v(e)?.replyable === !0;
507
507
  }
508
- function _a(e) {
508
+ function Aa(e) {
509
509
  return v(e)?.carriesText === !0;
510
510
  }
511
- function $n(e) {
511
+ function Rn(e) {
512
512
  return v(e)?.countsAs;
513
513
  }
514
- function Aa(e) {
514
+ function _a(e) {
515
515
  return v(e)?.playbookAuthored === !0;
516
516
  }
517
517
  function Ea(e) {
@@ -533,7 +533,7 @@ function Ia(e) {
533
533
  const t = v(e.type)?.joinUrl;
534
534
  return t ? t(e) : void 0;
535
535
  }
536
- function Ae(e, t) {
536
+ function _e(e, t) {
537
537
  let n = e;
538
538
  for (const r of t.split(".")) {
539
539
  if (n == null || typeof n != "object") return "";
@@ -545,10 +545,10 @@ function Ee(e, t, n) {
545
545
  if (e === void 0) return null;
546
546
  if (typeof e == "string") return e || null;
547
547
  if ("value" in e)
548
- return Ae(t, e.value) || null;
548
+ return _e(t, e.value) || null;
549
549
  const r = {};
550
550
  for (const [i, s] of Object.entries(e.params ?? {}))
551
- r[i] = Ae(t, s);
551
+ r[i] = _e(t, s);
552
552
  const o = n(e.key, r);
553
553
  return o === e.key ? null : o;
554
554
  }
@@ -556,7 +556,7 @@ function Pn(e, t) {
556
556
  if (!e || typeof e == "string" || "value" in e) return null;
557
557
  const n = {};
558
558
  for (const [r, o] of Object.entries(e.params ?? {}))
559
- n[r] = Ae(t, o);
559
+ n[r] = _e(t, o);
560
560
  return { key: e.key, params: n };
561
561
  }
562
562
  const Ze = 140;
@@ -578,7 +578,7 @@ function va(e, t) {
578
578
  }
579
579
  const Un = (e) => e;
580
580
  function et(e) {
581
- const t = R[e];
581
+ const t = D[e];
582
582
  return {
583
583
  type: e,
584
584
  shape: t.shape,
@@ -612,17 +612,17 @@ class Fn {
612
612
  constructor(t = [], n = Un) {
613
613
  this.translate = n;
614
614
  for (const r of t)
615
- r?.type && (r.type in R || this.declared.has(r.type) || this.declared.set(r.type, r));
615
+ r?.type && (r.type in D || this.declared.has(r.type) || this.declared.set(r.type, r));
616
616
  }
617
617
  declared = /* @__PURE__ */ new Map();
618
618
  get(t) {
619
- if (t in R) return et(t);
619
+ if (t in D) return et(t);
620
620
  const n = this.declared.get(t);
621
621
  return n ? tt(n) : void 0;
622
622
  }
623
623
  /** Everything that may be offered as a trigger, built-in and declared. */
624
624
  triggerable() {
625
- const t = Object.keys(R).filter((r) => R[r].triggerable).map(et), n = [...this.declared.values()].map(tt).filter((r) => r.triggerable);
625
+ const t = Object.keys(D).filter((r) => D[r].triggerable).map(et), n = [...this.declared.values()].map(tt).filter((r) => r.triggerable);
626
626
  return [...t, ...n];
627
627
  }
628
628
  /**
@@ -631,14 +631,14 @@ class Fn {
631
631
  * the feed always showed for unknown types.
632
632
  */
633
633
  timelineText(t, n) {
634
- const r = R[t.type];
634
+ const r = D[t.type];
635
635
  if (r?.timeline) return r.timeline(t, n);
636
636
  const o = this.declared.get(t.type);
637
637
  return Ee(o?.text, t, this.translate) ?? t.type.replace(/_/g, " ").toLowerCase();
638
638
  }
639
639
  /** The line for the inbox list. Empty when the type has nothing to show. */
640
640
  snippet(t) {
641
- const n = R[t.type];
641
+ const n = D[t.type];
642
642
  if (n?.snippet) return n.snippet(t);
643
643
  const r = this.declared.get(t.type);
644
644
  return Ee(r?.text, t, this.translate) ?? "";
@@ -756,7 +756,7 @@ const Bn = {
756
756
  audio: "audio",
757
757
  video: "video"
758
758
  };
759
- function Da(e, t) {
759
+ function $a(e, t) {
760
760
  if (t === "text") return !0;
761
761
  if (!e?.in?.length) return;
762
762
  const n = Bn[t];
@@ -771,7 +771,7 @@ function Hn(e) {
771
771
  let n;
772
772
  return e.expectsSchema ? (n = "fast", t.push("schema-antwoord")) : (e.mode ?? "agent") === "ask" && !e.toolCount ? (n = "fast", t.push("vraag zonder tools")) : e.toolCount || e.hasAttachments ? (n = "standard", t.push(e.hasAttachments ? "bijlagen" : "tools beschikbaar")) : (n = "standard", t.push("standaard")), e.repair && (n = nt(n, 1), t.push("herstelbeurt: een tier omhoog")), e.budgetPressure === "soft" && n !== "fast" && (n = nt(n, -1), t.push("budget bijna op: een tier omlaag in plaats van weigeren")), e.maxTier && Se(n) > Se(e.maxTier) && (n = e.maxTier, t.push(`plafond van de rol: ${e.maxTier}`)), { tier: n, reasons: t };
773
773
  }
774
- function Ra(e, t, n) {
774
+ function Da(e, t, n) {
775
775
  const r = Hn(t);
776
776
  if (!e) return { ...r, ...n, routed: !1 };
777
777
  for (let o = Se(r.tier); o >= 0; o--) {
@@ -788,7 +788,7 @@ function Ra(e, t, n) {
788
788
  };
789
789
  }
790
790
  const rt = 255, ot = 2, it = 10;
791
- function $a(e) {
791
+ function Ra(e) {
792
792
  const t = Object.keys(e);
793
793
  if (!t.length) return "geen vragen gesteld";
794
794
  for (const n of t) {
@@ -1518,8 +1518,8 @@ function bc(e, t, n, r) {
1518
1518
  const i = Math.max(0, o.length - 1);
1519
1519
  return i >= dr ? `er zijn al ${i} agents ingeschakeld voor deze vraag; dieper delegeren mag niet` : null;
1520
1520
  }
1521
- const _c = "organization.business-entities.list";
1522
- function Ac(e, t, n) {
1521
+ const Ac = "organization.business-entities.list";
1522
+ function _c(e, t, n) {
1523
1523
  return e ? e === t : n;
1524
1524
  }
1525
1525
  function Ec(e) {
@@ -1562,7 +1562,7 @@ function mr(e, t) {
1562
1562
  o[s[l].index] += a, i -= a;
1563
1563
  return o;
1564
1564
  }
1565
- function $(e, t = {}) {
1565
+ function R(e, t = {}) {
1566
1566
  const n = t.decimal ?? ",", r = t.group ?? ".", o = e < 0, i = Math.abs(Math.trunc(e)).toString().padStart(3, "0"), s = i.slice(0, -2), a = i.slice(-2);
1567
1567
  let l = "";
1568
1568
  for (let c = 0; c < s.length; c++)
@@ -1639,10 +1639,10 @@ function yr(e, t, n) {
1639
1639
  function br(e, t) {
1640
1640
  return e.unitPriceCents != null ? e.unitPriceCents : e.discountPercent != null ? z(t * (1 - e.discountPercent / 100)) : t;
1641
1641
  }
1642
- const _r = "manual";
1642
+ const Ar = "manual";
1643
1643
  function kc(e, t, n, r) {
1644
1644
  return e.map((o) => {
1645
- if (o.kind !== "product" || o.priceSourceKey === _r) return o;
1645
+ if (o.kind !== "product" || o.priceSourceKey === Ar) return o;
1646
1646
  const i = t.find((a) => a.id === o.productId);
1647
1647
  if (!i) return o;
1648
1648
  const s = yr(i, { ...r, quantity: o.quantity }, n);
@@ -1650,13 +1650,13 @@ function kc(e, t, n, r) {
1650
1650
  });
1651
1651
  }
1652
1652
  const wc = ["piece", "hour", "day", "month", "km", "license"], Mc = /* @__PURE__ */ new Set(["mail", "message"]);
1653
- function Ar(e, t) {
1653
+ function _r(e, t) {
1654
1654
  const n = e.settings?.signatures?.[t];
1655
1655
  return !n?.enabled || !n.body || n.body.trim() === "" ? null : n;
1656
1656
  }
1657
1657
  function Oc(e, t, n, r = "html") {
1658
1658
  if (!e) return n;
1659
- const o = Ar(e, t);
1659
+ const o = _r(e, t);
1660
1660
  return o ? `${n}${r === "text" ? `
1661
1661
 
1662
1662
  ` : t === "mail" ? "<br><br>-- <br>" : "<br><br>"}${o.body}` : n;
@@ -1665,7 +1665,7 @@ function Cc(e) {
1665
1665
  return e.endpoints ?? [];
1666
1666
  }
1667
1667
  const Nc = ["lead", "opportunity", "customer", "former"], xc = ["new", "working", "unqualified"];
1668
- function Dc(e) {
1668
+ function $c(e) {
1669
1669
  return [e.firstName, e.lastName].filter(Boolean).join(" ").trim();
1670
1670
  }
1671
1671
  const Er = [
@@ -1675,10 +1675,10 @@ const Er = [
1675
1675
  "scopes",
1676
1676
  "cities",
1677
1677
  "parentCompanyIds"
1678
- ], Sr = ["openDeal", "hasContacts"], Rc = {
1678
+ ], Sr = ["openDeal", "hasContacts"], Dc = {
1679
1679
  contact: ["stages", "leadStatuses", "sources", "scopes", "cities", "openDeal"],
1680
- company: ["sources", "scopes", "cities", "parentCompanyIds", "hasContacts"]
1681
- }, $c = ["updatedAt", "createdAt", "name"], Lc = ["list"];
1680
+ company: ["stages", "sources", "scopes", "cities", "parentCompanyIds", "hasContacts"]
1681
+ }, Rc = ["updatedAt", "createdAt", "name"], Lc = ["list"];
1682
1682
  function Pc(e) {
1683
1683
  return e.search?.trim() || e.createdWithinDays || Sr.some((t) => e[t]) || Er.some((t) => e[t]?.length) ? !1 : !Object.values(e.fields ?? {}).some((t) => t.length);
1684
1684
  }
@@ -1887,11 +1887,11 @@ const Nr = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieu
1887
1887
  function xr(e, t) {
1888
1888
  return !!(e && Nr.test(e) || t && Qt.test(t));
1889
1889
  }
1890
- const Dr = 3, Rr = 600;
1890
+ const $r = 3, Dr = 600;
1891
1891
  function Vc(e, t) {
1892
- return e >= Dr || t >= Rr;
1892
+ return e >= $r || t >= Dr;
1893
1893
  }
1894
- const $r = [
1894
+ const Rr = [
1895
1895
  "list-unsubscribe",
1896
1896
  "list-unsubscribe-post",
1897
1897
  "list-id",
@@ -1905,7 +1905,7 @@ function zc(e) {
1905
1905
  const t = {};
1906
1906
  for (const n of e) {
1907
1907
  const r = n.name?.toLowerCase();
1908
- r && n.value !== void 0 && $r.includes(r) && (t[r] = n.value);
1908
+ r && n.value !== void 0 && Rr.includes(r) && (t[r] = n.value);
1909
1909
  }
1910
1910
  return t;
1911
1911
  }
@@ -1931,7 +1931,7 @@ function Hr(e, t) {
1931
1931
  function Gr(e, t, n) {
1932
1932
  return !e || e.remindAt <= n ? !1 : !((t.lastActivityAt ?? 0) > e.parkedAt && t.lastActivityPreview?.direction === "inbound");
1933
1933
  }
1934
- const Jt = (e) => $n(e) === "outbound_message", Zt = (e) => Ur.includes(e);
1934
+ const Jt = (e) => Rn(e) === "outbound_message", Zt = (e) => Ur.includes(e);
1935
1935
  function je(e, t) {
1936
1936
  return Math.max(0, (t - Br(e)) / Or);
1937
1937
  }
@@ -2104,7 +2104,7 @@ function bl(e) {
2104
2104
  const t = e.slice(0, e.indexOf(":"));
2105
2105
  return Jr.includes(t);
2106
2106
  }
2107
- const _l = [
2107
+ const Al = [
2108
2108
  { key: "high", label: "tax_high", percent: 21, kind: "standard" },
2109
2109
  { key: "low", label: "tax_low", percent: 9, kind: "reduced" },
2110
2110
  { key: "zero", label: "tax_zero", percent: 0, kind: "zero" },
@@ -2124,7 +2124,7 @@ function eo(e) {
2124
2124
  const t = 1 - (e.discountPercent ?? 0) / 100;
2125
2125
  return z(e.quantity * e.unitPriceCents * t);
2126
2126
  }
2127
- function Al(e, t, n) {
2127
+ function _l(e, t, n) {
2128
2128
  const r = e.map((c) => ({ ...c, netCents: eo(c), taxCents: 0 })), o = /* @__PURE__ */ new Map();
2129
2129
  for (let c = 0; c < r.length; c++) {
2130
2130
  if (r[c].kind !== "product" || r[c].optional) continue;
@@ -2243,7 +2243,7 @@ const El = "onboarding-source", Sl = ["support", "billing", "availability", "sal
2243
2243
  productive: !1,
2244
2244
  absent: !1
2245
2245
  };
2246
- function D(e, t = Be) {
2246
+ function $(e, t = Be) {
2247
2247
  return t.find((n) => n.key === e) ?? { ...to, key: e };
2248
2248
  }
2249
2249
  function Y(e) {
@@ -2251,12 +2251,12 @@ function Y(e) {
2251
2251
  }
2252
2252
  function rn(e, t, n = Be) {
2253
2253
  if (e.workstreamId !== t) return !1;
2254
- const r = D(e.kindKey, n);
2254
+ const r = $(e.kindKey, n);
2255
2255
  return r.absent ? !1 : r.productive || r.capacity;
2256
2256
  }
2257
2257
  function Il(e, t = Be) {
2258
2258
  if (!e.userId || !Y(e.status)) return !1;
2259
- const n = D(e.kindKey, t);
2259
+ const n = $(e.kindKey, t);
2260
2260
  return n.capacity || n.productive || n.absent;
2261
2261
  }
2262
2262
  const no = 864e5;
@@ -2298,9 +2298,9 @@ function Ie(e, t, n, r) {
2298
2298
  const bt = { interval: 0, day: 1, week: 2 };
2299
2299
  function vl(e, t) {
2300
2300
  const { entries: n, patterns: r = [], terms: o = [] } = t, i = n.filter(
2301
- (u) => u.userId && Y(u.status) && D(u.kindKey).capacity
2301
+ (u) => u.userId && Y(u.status) && $(u.kindKey).capacity
2302
2302
  ), s = n.filter(
2303
- (u) => u.userId && Y(u.status) && D(u.kindKey).absent
2303
+ (u) => u.userId && Y(u.status) && $(u.kindKey).absent
2304
2304
  ), a = t.userIds ?? [
2305
2305
  .../* @__PURE__ */ new Set([
2306
2306
  ...i.map((u) => u.userId),
@@ -2371,12 +2371,12 @@ function kl(e, t) {
2371
2371
  }
2372
2372
  function wl(e, t, n, r) {
2373
2373
  const o = e.filter(
2374
- (s) => s.userId && Y(s.status) && !D(s.kindKey).absent
2374
+ (s) => s.userId && Y(s.status) && !$(s.kindKey).absent
2375
2375
  ), i = Object.entries(r.byUser).map(
2376
2376
  ([s, a]) => {
2377
2377
  let l = 0, c = 0;
2378
2378
  for (const d of o) {
2379
- if (d.userId !== s || D(d.kindKey).capacity && !d.workstreamId) continue;
2379
+ if (d.userId !== s || $(d.kindKey).capacity && !d.workstreamId) continue;
2380
2380
  const u = Ie(d.start, d.end, n.from, n.to);
2381
2381
  u <= 0 || (rn(d, t) ? l += u : c += u);
2382
2382
  }
@@ -2391,7 +2391,7 @@ function wl(e, t, n, r) {
2391
2391
  );
2392
2392
  return i.sort((s, a) => a.freeSeconds - s.freeSeconds), i;
2393
2393
  }
2394
- const Ml = "demand-source", _t = 1e3;
2394
+ const Ml = "demand-source", At = 1e3;
2395
2395
  function so(e, t) {
2396
2396
  let n = 1;
2397
2397
  for (let r = 1; r <= e; r++)
@@ -2416,10 +2416,10 @@ function uo(e, t, n, r) {
2416
2416
  const o = lo(e, t, n);
2417
2417
  if (o <= 0) return 0;
2418
2418
  const i = r.serviceLevelPercent / 100, s = r.maxOccupancyPercent ? r.maxOccupancyPercent / 100 : void 0;
2419
- for (let a = Math.max(1, Math.ceil(o)); a <= _t; a++)
2419
+ for (let a = Math.max(1, Math.ceil(o)); a <= At; a++)
2420
2420
  if (!(a <= o) && !(co(a, o, r.targetSeconds, t) < i) && !(s && o / a > s))
2421
2421
  return a;
2422
- return _t;
2422
+ return At;
2423
2423
  }
2424
2424
  const fo = 36e5, po = 864e5;
2425
2425
  function mo(e) {
@@ -2443,7 +2443,7 @@ function ho(e, t, n) {
2443
2443
  return { seconds: o, headcount: o / n * s };
2444
2444
  }
2445
2445
  function Cl(e) {
2446
- const { entries: t, workstreamId: n, staffing: r, demand: o, range: i } = e, s = e.grain ?? "hour", a = mo(s), l = a / 1e3, c = e.kinds, d = t.filter((m) => Y(m.status)), u = d.filter((m) => rn(m, n, c)), f = d.filter((m) => D(m.kindKey, c).capacity), p = d.filter((m) => D(m.kindKey, c).absent), y = [];
2446
+ const { entries: t, workstreamId: n, staffing: r, demand: o, range: i } = e, s = e.grain ?? "hour", a = mo(s), l = a / 1e3, c = e.kinds, d = t.filter((m) => Y(m.status)), u = d.filter((m) => rn(m, n, c)), f = d.filter((m) => $(m.kindKey, c).capacity), p = d.filter((m) => $(m.kindKey, c).absent), y = [];
2447
2447
  for (let m = V(i.from, s); m < i.to; m += a) {
2448
2448
  const S = m + a, g = W(m, s);
2449
2449
  let h = 0;
@@ -2479,7 +2479,7 @@ function xl(e) {
2479
2479
  (t) => t.netHeadcount < 0 && t.requiredHeadcount > 0
2480
2480
  );
2481
2481
  }
2482
- const yo = 36e5, ve = 6048e5, bo = 8, _o = 0.5, Ao = 2;
2482
+ const yo = 36e5, ve = 6048e5, bo = 8, Ao = 0.5, _o = 2;
2483
2483
  function Eo(e) {
2484
2484
  const t = Number(e.slice(0, 4)), n = Number(e.slice(5, 7)), r = Number(e.slice(8, 10)), o = e.length > 10 ? Number(e.slice(11, 13)) : 0;
2485
2485
  return Date.UTC(t, n - 1, r, o);
@@ -2495,7 +2495,7 @@ function So(e, t, n) {
2495
2495
  }
2496
2496
  if (r.length < 2) return 1;
2497
2497
  const o = r.reduce((i, s) => i + s, 0) / r.length;
2498
- return o <= 0 ? 1 : Math.min(Ao, Math.max(_o, r[0] / o));
2498
+ return o <= 0 ? 1 : Math.min(_o, Math.max(Ao, r[0] / o));
2499
2499
  }
2500
2500
  function To(e, t) {
2501
2501
  if (!e?.length) return;
@@ -2504,7 +2504,7 @@ function To(e, t) {
2504
2504
  t >= r.from && t < r.to && (n = r);
2505
2505
  return n;
2506
2506
  }
2507
- function Dl(e, t, n) {
2507
+ function $l(e, t, n) {
2508
2508
  const r = Math.max(1, n?.weeks ?? bo), o = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Set();
2509
2509
  for (const l of e)
2510
2510
  o.set(Eo(l.period), l.value), i.add(l.period.slice(0, 10));
@@ -2524,10 +2524,10 @@ function Dl(e, t, n) {
2524
2524
  return a;
2525
2525
  }
2526
2526
  const Io = "schedule_entry", vo = "workstream";
2527
- function Rl(e) {
2527
+ function Dl(e) {
2528
2528
  return `${Io}:${e}`;
2529
2529
  }
2530
- function $l(e) {
2530
+ function Rl(e) {
2531
2531
  return `${vo}:${e}`;
2532
2532
  }
2533
2533
  const ke = 36e5, F = 864e5;
@@ -2536,7 +2536,7 @@ function ko(e, t) {
2536
2536
  for (let o = V(e.from, t); o < e.to; o += n) r.push(o);
2537
2537
  return r;
2538
2538
  }
2539
- function At(e) {
2539
+ function _t(e) {
2540
2540
  const t = Math.max(1, Math.round((e.to - e.from) / F));
2541
2541
  return Array.from({ length: t }, (n, r) => e.from + r * F);
2542
2542
  }
@@ -2545,14 +2545,14 @@ function pe(e, t, n, r) {
2545
2545
  return o > 0 ? o / 1e3 : 0;
2546
2546
  }
2547
2547
  function Ll(e, t, n = {}) {
2548
- const r = n.grain ?? "hour", o = ko(t, r), i = r === "day" ? F : ke, s = new Map(o.map((u) => [u, 0])), a = e.filter((u) => u.userId && D(u.kindKey).capacity), l = n.userIds?.length ? new Set(n.userIds) : null, c = /* @__PURE__ */ new Set();
2548
+ const r = n.grain ?? "hour", o = ko(t, r), i = r === "day" ? F : ke, s = new Map(o.map((u) => [u, 0])), a = e.filter((u) => u.userId && $(u.kindKey).capacity), l = n.userIds?.length ? new Set(n.userIds) : null, c = /* @__PURE__ */ new Set();
2549
2549
  for (const u of a)
2550
2550
  if (!(l && u.userId && !l.has(u.userId))) {
2551
2551
  for (const f of o) {
2552
2552
  const p = pe(u.start, u.end, f, f + i);
2553
2553
  p > 0 && s.set(f, (s.get(f) ?? 0) + p);
2554
2554
  }
2555
- for (const f of At(t))
2555
+ for (const f of _t(t))
2556
2556
  pe(u.start, u.end, f, f + F) > 0 && c.add(`${u.userId}:${f}`);
2557
2557
  }
2558
2558
  const d = n.userIds ?? [
@@ -2564,7 +2564,7 @@ function Ll(e, t, n = {}) {
2564
2564
  if (n.patterns?.length)
2565
2565
  for (const u of d) {
2566
2566
  const f = n.teamIdsOf?.(u) ?? [];
2567
- for (const p of At(t)) {
2567
+ for (const p of _t(t)) {
2568
2568
  if (c.has(`${u}:${p}`)) continue;
2569
2569
  const y = cn(n.patterns, u, f, p);
2570
2570
  if (!y) continue;
@@ -2674,12 +2674,12 @@ function Wl(e, t) {
2674
2674
  if (t)
2675
2675
  return e.targets.find((n) => n.id === t);
2676
2676
  }
2677
- function Do(e) {
2677
+ function $o(e) {
2678
2678
  return e?.kind === "assignment";
2679
2679
  }
2680
2680
  function Vl(e) {
2681
2681
  const { trigger: t, agentId: n, target: r, activityType: o, assigneeUserId: i, authorUserId: s } = e;
2682
- return Do(t) ? n ? r ? r.activityTypes.includes(o) ? i ? i !== n ? "assigned to someone else" : s && s === n ? "the agent assigned this to itself, which would restart its own run" : null : `no assignee found at ${r.assigneePath}` : `activity type ${o} 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";
2682
+ return $o(t) ? n ? r ? r.activityTypes.includes(o) ? i ? i !== n ? "assigned to someone else" : s && s === n ? "the agent assigned this to itself, which would restart its own run" : null : `no assignee found at ${r.assigneePath}` : `activity type ${o} 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";
2683
2683
  }
2684
2684
  const we = ["suggest", "outward", "auto"];
2685
2685
  function zl(e) {
@@ -2696,12 +2696,12 @@ function Xl(e, t) {
2696
2696
  function ql(e) {
2697
2697
  return e.replace(/__/g, " · ").replace(/\./g, " · ").replace(/_/g, " ");
2698
2698
  }
2699
- function Ro(e) {
2699
+ function Do(e) {
2700
2700
  const t = e.split("__");
2701
2701
  return t[t.length - 1] || e;
2702
2702
  }
2703
2703
  function Ql(e) {
2704
- const t = Ro(e).replace(/[_.]+/g, " ").trim();
2704
+ const t = Do(e).replace(/[_.]+/g, " ").trim();
2705
2705
  return t ? t.charAt(0).toUpperCase() + t.slice(1) : e;
2706
2706
  }
2707
2707
  const Jl = [
@@ -2762,7 +2762,7 @@ const eu = {
2762
2762
  // Deliberately empty: the fields come from `ClassifyStep.fields` and so differ per step.
2763
2763
  extract: []
2764
2764
  };
2765
- function $o(e) {
2765
+ function Ro(e) {
2766
2766
  return `${e.type}:${e.id}`;
2767
2767
  }
2768
2768
  const Lo = "interaction";
@@ -2820,7 +2820,7 @@ function ln(e) {
2820
2820
  }
2821
2821
  function uu(e) {
2822
2822
  const t = ln(e);
2823
- return t ? $o(t) : void 0;
2823
+ return t ? Ro(t) : void 0;
2824
2824
  }
2825
2825
  function du(e) {
2826
2826
  return Po(ln(e));
@@ -3075,10 +3075,10 @@ function ni(e, t, n) {
3075
3075
  }
3076
3076
  return { matched: s, skipped: r };
3077
3077
  }
3078
- function _u(e, t) {
3078
+ function Au(e, t) {
3079
3079
  return { causedByRule: t, depth: (e.depth ?? 0) + 1 };
3080
3080
  }
3081
- function Au(e, t) {
3081
+ function _u(e, t) {
3082
3082
  const { event: n, rules: r } = e.input, { matched: o, skipped: i } = ni(n, r, t), s = o.flatMap((c) => c.rule.then.map((d) => d.action)), a = e.expected?.actions ?? [];
3083
3083
  if (s.length === a.length && s.every((c, d) => c === a[d]))
3084
3084
  return { caseId: e.id, ok: !0 };
@@ -3177,9 +3177,9 @@ function ku(e) {
3177
3177
  const t = /^([01]\d|2[0-3]):([0-5]\d)$/.exec(e);
3178
3178
  return t ? Number(t[1]) * 60 + Number(t[2]) : null;
3179
3179
  }
3180
- const De = 1, Re = 2, $e = 4;
3180
+ const $e = 1, De = 2, Re = 4;
3181
3181
  function wu(e) {
3182
- return e === "snoozed" ? De : Re;
3182
+ return e === "snoozed" ? $e : De;
3183
3183
  }
3184
3184
  function Ge(e) {
3185
3185
  const t = e.calendar;
@@ -3253,11 +3253,11 @@ function Cu({ event: e, at: t, now: n, clocks: r, profile: o }) {
3253
3253
  d("speed_of_answer");
3254
3254
  break;
3255
3255
  case "outbound": {
3256
- d("first_response"), d("next_response"), o.pauseOn.includes("waiting_for_customer") && f(Re);
3256
+ d("first_response"), d("next_response"), o.pauseOn.includes("waiting_for_customer") && f(De);
3257
3257
  break;
3258
3258
  }
3259
3259
  case "inbound": {
3260
- p(Re), !m("first_response") && !m("next_response") && S("next_response", s);
3260
+ p(De), !m("first_response") && !m("next_response") && S("next_response", s);
3261
3261
  break;
3262
3262
  }
3263
3263
  case "resolved":
@@ -3270,19 +3270,19 @@ function Cu({ event: e, at: t, now: n, clocks: r, profile: o }) {
3270
3270
  m("resolution") || S("resolution", s), m("close") || S("close", s);
3271
3271
  break;
3272
3272
  case "snoozed":
3273
- o.pauseOn.includes("snoozed") && f(De);
3273
+ o.pauseOn.includes("snoozed") && f($e);
3274
3274
  break;
3275
3275
  case "unsnoozed":
3276
- p(De);
3276
+ p($e);
3277
3277
  break;
3278
3278
  // Not gated on `profile.pauseOn`, unlike the two above: this is a person deciding about
3279
3279
  // one conversation, not a profile setting. `resumeAll` only lifts the bit it is given, so
3280
3280
  // an `inbound` arriving meanwhile clears `waiting_for_customer` and the clock stays held.
3281
3281
  case "hold":
3282
- f($e);
3282
+ f(Re);
3283
3283
  break;
3284
3284
  case "unhold":
3285
- p($e);
3285
+ p(Re);
3286
3286
  break;
3287
3287
  case "discarded":
3288
3288
  u(li);
@@ -3294,7 +3294,7 @@ function pi(e) {
3294
3294
  return e.state === "running" || e.state === "paused";
3295
3295
  }
3296
3296
  function Nu(e) {
3297
- return (e.pauseBits & $e) !== 0;
3297
+ return (e.pauseBits & Re) !== 0;
3298
3298
  }
3299
3299
  function Le(e, t) {
3300
3300
  const n = Ge(e);
@@ -3303,7 +3303,7 @@ function Le(e, t) {
3303
3303
  function xu(e, t) {
3304
3304
  return e.state === "paused" ? He(t, e.remainingMs, Ge(e)) : e.dueAt;
3305
3305
  }
3306
- function Du(e, t) {
3306
+ function $u(e, t) {
3307
3307
  const n = e.filter(pi);
3308
3308
  if (!n.length) return;
3309
3309
  const r = n.filter((i) => i.state === "running");
@@ -3311,7 +3311,7 @@ function Du(e, t) {
3311
3311
  (i, s) => Le(s, t) < Le(i, t) ? s : i
3312
3312
  );
3313
3313
  }
3314
- function Ru(e, t) {
3314
+ function Du(e, t) {
3315
3315
  if (e.state === "missed") return "breached";
3316
3316
  if (e.state === "hit") return "met";
3317
3317
  if (e.state === "paused") return "paused";
@@ -3319,7 +3319,7 @@ function Ru(e, t) {
3319
3319
  const n = Le(e, t);
3320
3320
  return n <= 0 ? "breached" : n <= e.targetMs / 5 ? "urgent" : "running";
3321
3321
  }
3322
- function $u(e) {
3322
+ function Ru(e) {
3323
3323
  const t = Math.floor(Math.abs(e) / 1e3), n = Math.floor(t / 86400), r = Math.floor(t % 86400 / 3600), o = Math.floor(t % 3600 / 60);
3324
3324
  return n ? r ? `${n}d ${r}u` : `${n}d` : r ? o ? `${r}u ${o}m` : `${r}u` : o ? `${o}m` : `${t % 60}s`;
3325
3325
  }
@@ -3386,12 +3386,12 @@ function Gu(e, t) {
3386
3386
  if (!(typeof n != "number" || typeof r != "number") && !(r <= n))
3387
3387
  return se((t - n) / (r - n));
3388
3388
  }
3389
- const _i = 0.1, Ai = 0.25;
3389
+ const Ai = 0.1, _i = 0.25;
3390
3390
  function Wu(e, t) {
3391
3391
  if (typeof e != "number" || typeof t != "number") return;
3392
3392
  if (e >= 1) return "achieved";
3393
3393
  const n = t - e;
3394
- return n >= Ai ? "off_track" : n >= _i ? "at_risk" : "on_track";
3394
+ return n >= _i ? "off_track" : n >= Ai ? "at_risk" : "on_track";
3395
3395
  }
3396
3396
  function Vu(e, t) {
3397
3397
  if (t)
@@ -3411,28 +3411,45 @@ function Yu(e, t) {
3411
3411
  function Xu(e) {
3412
3412
  return e.targetDate ?? Number.MAX_SAFE_INTEGER;
3413
3413
  }
3414
- function qu(e, t) {
3414
+ function qu(e) {
3415
+ const t = /* @__PURE__ */ new Map(), n = [...e].sort((r, o) => r.startedAt - o.startedAt);
3416
+ for (const r of n) {
3417
+ const o = `${r.workType ?? ""}|${r.scopeKey ?? ""}`, i = t.get(o) ?? {
3418
+ workType: r.workType,
3419
+ scopeKey: r.scopeKey,
3420
+ scopeLabel: r.scopeLabel,
3421
+ seconds: 0,
3422
+ hours: 0,
3423
+ entryIds: [],
3424
+ from: r.startedAt,
3425
+ to: r.startedAt
3426
+ };
3427
+ i.seconds += r.durationSeconds ?? 0, i.hours = Math.round(i.seconds / 3600 * 100) / 100, i.entryIds.push(r.id), i.to = r.startedAt, t.set(o, i);
3428
+ }
3429
+ return [...t.values()];
3430
+ }
3431
+ function Qu(e, t) {
3415
3432
  const n = e.accumulatedSeconds || 0;
3416
3433
  return e.runningSince ? n + Math.max(0, Math.floor((t - e.runningSince) / 1e3)) : n;
3417
3434
  }
3418
- function Qu(e, t) {
3435
+ function Ju(e, t) {
3419
3436
  const n = Math.max(1, Math.ceil(Math.max(0, e) / 60));
3420
3437
  if (!t || t === "exact") return n * 60;
3421
3438
  const r = Number(t);
3422
3439
  return !Number.isFinite(r) || r <= 0 ? n * 60 : Math.ceil(n / r) * r * 60;
3423
3440
  }
3424
- function Ju(e) {
3441
+ function Zu(e) {
3425
3442
  const t = Math.max(0, Math.round(e / 60));
3426
3443
  return `${Math.floor(t / 60)}:${String(t % 60).padStart(2, "0")}`;
3427
3444
  }
3428
- function Zu(e) {
3445
+ function ed(e) {
3429
3446
  const t = Math.max(0, Math.floor(e)), n = (i) => String(i).padStart(2, "0"), r = Math.floor(t / 60) % 60, o = Math.floor(t / 3600);
3430
3447
  return o > 0 ? `${o}:${n(r)}:${n(t % 60)}` : `${n(r)}:${n(t % 60)}`;
3431
3448
  }
3432
3449
  function Ei(e) {
3433
3450
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^a-z0-9]+/g, "-").slice(0, 48).replace(/^-+|-+$/g, "");
3434
3451
  }
3435
- function ed(e, t) {
3452
+ function td(e, t) {
3436
3453
  const n = Ei(e) || "werksoort", r = new Set(t);
3437
3454
  if (!r.has(n)) return n;
3438
3455
  for (let o = 2; o < 500; o++) {
@@ -3441,11 +3458,11 @@ function ed(e, t) {
3441
3458
  }
3442
3459
  return `${n}-${r.size + 1}`;
3443
3460
  }
3444
- function td(e, t) {
3461
+ function nd(e, t) {
3445
3462
  const n = e.ownerScope;
3446
3463
  return !n || n.kind === "org" ? !0 : t.includes(n.teamId);
3447
3464
  }
3448
- function nd(e) {
3465
+ function rd(e) {
3449
3466
  return e.filter((t) => !t.archived).sort(Si);
3450
3467
  }
3451
3468
  function Si(e, t) {
@@ -3462,7 +3479,7 @@ function vi(e) {
3462
3479
  const n = t.slice(0, ye), r = Math.max(n.lastIndexOf(". "), n.lastIndexOf("! "), n.lastIndexOf("? "));
3463
3480
  return r > ye * 0.6 ? n.slice(0, r + 1) : `${n.trimEnd()}…`;
3464
3481
  }
3465
- function rd(e, t) {
3482
+ function od(e, t) {
3466
3483
  const n = vi(t.text), r = K(n);
3467
3484
  if (!r || (e.examples ?? []).some((s) => K(s) === r)) return null;
3468
3485
  const o = e.exampleCandidates ?? [], i = o.findIndex((s) => K(s.text) === r);
@@ -3478,7 +3495,7 @@ function kt(e) {
3478
3495
  (t, n) => Number(n.corrected) - Number(t.corrected) || n.addedAt - t.addedAt
3479
3496
  );
3480
3497
  }
3481
- function od(e, t) {
3498
+ function id(e, t) {
3482
3499
  const n = K(t), r = (e.examples ?? []).filter((i) => i.trim());
3483
3500
  return { examples: r.some((i) => K(i) === n) ? r : [...r, t].slice(-Ti), exampleCandidates: ki(e, t) };
3484
3501
  }
@@ -3490,7 +3507,7 @@ function wi(e, t) {
3490
3507
  const n = e.ownerScope;
3491
3508
  return n ? n.kind === "org" ? !0 : n.kind === "team" ? !!t && n.teamId === t : !1 : !1;
3492
3509
  }
3493
- function id(e, t) {
3510
+ function sd(e, t) {
3494
3511
  return e.filter((n) => wi(n, t));
3495
3512
  }
3496
3513
  const We = [
@@ -3571,7 +3588,7 @@ const We = [
3571
3588
  "invoice",
3572
3589
  "credit_note"
3573
3590
  ];
3574
- function sd() {
3591
+ function ad() {
3575
3592
  const e = /* @__PURE__ */ new Map();
3576
3593
  for (const t of We)
3577
3594
  bn.includes(t.key) && (e.has(t.path) || e.set(t.path, t));
@@ -3591,7 +3608,7 @@ function O(e) {
3591
3608
  convertsTo: []
3592
3609
  };
3593
3610
  }
3594
- const ad = {
3611
+ const cd = {
3595
3612
  draft: "Concept",
3596
3613
  sent: "Verstuurd",
3597
3614
  accepted: "Geaccepteerd",
@@ -3609,13 +3626,13 @@ const ad = {
3609
3626
  function Mi(e, t) {
3610
3627
  return O(e).transitions[t] ?? [];
3611
3628
  }
3612
- function cd(e, t, n) {
3629
+ function ld(e, t, n) {
3613
3630
  return Mi(e, t).includes(n);
3614
3631
  }
3615
3632
  function Oi(e) {
3616
3633
  return e.issuedAt != null;
3617
3634
  }
3618
- const ld = [
3635
+ const ud = [
3619
3636
  "status",
3620
3637
  "fileRef",
3621
3638
  "number",
@@ -3623,7 +3640,7 @@ const ld = [
3623
3640
  "postedAt",
3624
3641
  "dunning",
3625
3642
  "updatedAt"
3626
- ], ud = [
3643
+ ], dd = [
3627
3644
  "companyId",
3628
3645
  "contactId",
3629
3646
  "dealItemId",
@@ -3639,7 +3656,7 @@ const ld = [
3639
3656
  "periodTo",
3640
3657
  "paymentTerm",
3641
3658
  "lines"
3642
- ], dd = [
3659
+ ], fd = [
3643
3660
  "contactId",
3644
3661
  "dealItemId",
3645
3662
  "title",
@@ -3652,15 +3669,15 @@ const ld = [
3652
3669
  "periodFrom",
3653
3670
  "periodTo"
3654
3671
  ];
3655
- function fd(e, t) {
3672
+ function pd(e, t) {
3656
3673
  if (!bn.includes(t) || !O(e.kindKey).convertsTo.includes(t)) return !1;
3657
3674
  const n = O(t);
3658
3675
  return !n.credits || n.credits === e.kindKey && Oi(e);
3659
3676
  }
3660
3677
  function Ci(e, t) {
3661
- const n = O(t).signFlip !== O(e.kindKey).signFlip, r = e.lines.map((o) => ({
3662
- ...o,
3663
- quantity: n ? -o.quantity : o.quantity,
3678
+ const n = O(t).signFlip !== O(e.kindKey).signFlip, r = e.lines.map(({ timeEntryIds: o, ...i }) => ({
3679
+ ...i,
3680
+ quantity: n ? -i.quantity : i.quantity,
3664
3681
  netCents: 0,
3665
3682
  taxCents: 0
3666
3683
  }));
@@ -3696,17 +3713,18 @@ function Ci(e, t) {
3696
3713
  source: e.source
3697
3714
  };
3698
3715
  }
3699
- function pd(e) {
3716
+ function md(e) {
3700
3717
  return {
3701
3718
  ...Ci(e, e.kindKey),
3702
3719
  sourceTransactionId: e.sourceTransactionId,
3703
3720
  previousVersionId: e.id,
3704
3721
  version: e.version + 1,
3705
- lines: e.lines.map((n) => ({ ...n })),
3722
+ // Hours stay stamped on the version they were billed on; claiming them again would conflict.
3723
+ lines: e.lines.map(({ timeEntryIds: n, ...r }) => ({ ...r })),
3706
3724
  totals: e.totals
3707
3725
  };
3708
3726
  }
3709
- function md(e, t = {}) {
3727
+ function hd(e, t = {}) {
3710
3728
  const n = O(e.kindKey), r = e.totals ?? { netCents: 0, taxCents: 0, grossCents: 0 };
3711
3729
  return {
3712
3730
  customer: {
@@ -3715,7 +3733,7 @@ function md(e, t = {}) {
3715
3733
  // One token per line of the address, plus `street` on its own for a template that wants
3716
3734
  // the house number elsewhere. Empty stays empty: `fillText` reports it as a hole, and a
3717
3735
  // recipient block missing its street is exactly what the issue gate has to refuse.
3718
- address: Di(t.companyAddress),
3736
+ address: $i(t.companyAddress),
3719
3737
  street: t.companyAddress?.street ?? "",
3720
3738
  house_number: t.companyAddress?.houseNumber ?? "",
3721
3739
  postal_code: t.companyAddress?.postalCode ?? "",
@@ -3747,13 +3765,13 @@ function md(e, t = {}) {
3747
3765
  terms: e.termsText ?? ""
3748
3766
  },
3749
3767
  totals: {
3750
- net: $(r.netCents),
3751
- tax: $(r.taxCents),
3752
- gross: $(r.grossCents)
3768
+ net: R(r.netCents),
3769
+ tax: R(r.taxCents),
3770
+ gross: R(r.grossCents)
3753
3771
  }
3754
3772
  };
3755
3773
  }
3756
- function hd(e, t = [], n = Ni) {
3774
+ function gd(e, t = [], n = Ni) {
3757
3775
  const r = e.totals ?? { netCents: 0, grossCents: 0, byRate: [] }, o = (a) => t.find((l) => l.key === a)?.percent ?? 0, i = {
3758
3776
  block_id: "lines",
3759
3777
  type: "table",
@@ -3769,21 +3787,21 @@ function hd(e, t = [], n = Ni) {
3769
3787
  [a.name, "", "", ""]
3770
3788
  ) : [
3771
3789
  xi(a.name, a.description, a.optional, n.optional),
3772
- Ri(a.quantity),
3773
- $(a.unitPriceCents),
3774
- $(a.netCents)
3790
+ Di(a.quantity),
3791
+ R(a.unitPriceCents),
3792
+ R(a.netCents)
3775
3793
  ]
3776
3794
  )
3777
3795
  }, s = {
3778
3796
  block_id: "totals",
3779
3797
  type: "totals",
3780
3798
  rows: [
3781
- { label: n.net, amount: $(r.netCents) },
3782
- { label: n.gross, amount: $(r.grossCents), emphasis: !0 }
3799
+ { label: n.net, amount: R(r.netCents) },
3800
+ { label: n.gross, amount: R(r.grossCents), emphasis: !0 }
3783
3801
  ],
3784
3802
  taxRows: r.byRate.map((a) => ({
3785
3803
  label: `${n.tax} ${a.percent ?? o(a.taxRateKey)}%`,
3786
- amount: $(a.taxCents)
3804
+ amount: R(a.taxCents)
3787
3805
  }))
3788
3806
  };
3789
3807
  return { lines: [i], totals: [s] };
@@ -3801,10 +3819,10 @@ function xi(e, t, n, r) {
3801
3819
  const o = t ? `${e} — ${t}` : e;
3802
3820
  return n ? `${o} (${r})` : o;
3803
3821
  }
3804
- function Di(e) {
3822
+ function $i(e) {
3805
3823
  return e?.street ? [e.street, e.houseNumber].filter(Boolean).join(" ") : "";
3806
3824
  }
3807
- function Ri(e) {
3825
+ function Di(e) {
3808
3826
  return Number.isInteger(e) ? String(e) : String(e).replace(".", ",");
3809
3827
  }
3810
3828
  function U(e) {
@@ -3812,7 +3830,7 @@ function U(e) {
3812
3830
  const t = new Date(e), n = (r) => String(r).padStart(2, "0");
3813
3831
  return `${n(t.getDate())}-${n(t.getMonth() + 1)}-${t.getFullYear()}`;
3814
3832
  }
3815
- function $i(e) {
3833
+ function Ri(e) {
3816
3834
  const t = O(e), n = t.key, r = t.numbered;
3817
3835
  return [
3818
3836
  {
@@ -3868,7 +3886,7 @@ function $i(e) {
3868
3886
  { block_id: "terms", type: "paragraph", text: Mt[n] ?? Mt.quote }
3869
3887
  ];
3870
3888
  }
3871
- const gd = (e) => ({
3889
+ const yd = (e) => ({
3872
3890
  note: { key: `${O(e).key}.note`, exists: !0 },
3873
3891
  // Keyed on the start: a range without one is not a range, and `period_to` alone says nothing.
3874
3892
  period: { key: `${O(e).key}.period_from`, exists: !0 }
@@ -3893,11 +3911,11 @@ Hierbij onze creditnota. De onderstaande bedragen worden met u verrekend.`
3893
3911
  order: "Genoemde bedragen zijn exclusief btw tenzij anders vermeld.",
3894
3912
  invoice: "Genoemde bedragen zijn exclusief btw tenzij anders vermeld.",
3895
3913
  credit_note: "Genoemde bedragen zijn exclusief btw tenzij anders vermeld."
3896
- }, yd = $i("quote"), Pi = We.map((e) => e.key), Ki = "product";
3914
+ }, bd = Ri("quote"), Pi = We.map((e) => e.key), Ki = "product";
3897
3915
  function Ui(e, t) {
3898
3916
  return `${e}:${t}`;
3899
3917
  }
3900
- function bd(e) {
3918
+ function Ad(e) {
3901
3919
  return `${Ki}:${e}`;
3902
3920
  }
3903
3921
  function _d(e, t) {
@@ -3905,42 +3923,42 @@ function _d(e, t) {
3905
3923
  if (n)
3906
3924
  return `/apps/sales/${n}/${O(e.kindKey).path}/${e.id}`;
3907
3925
  }
3908
- function Ad(e, t) {
3926
+ function Ed(e, t) {
3909
3927
  const n = e.businessEntityId || t;
3910
3928
  return n ? `/apps/sales/${n}/product/${e.id}` : void 0;
3911
3929
  }
3912
- function Ed(e) {
3930
+ function Sd(e) {
3913
3931
  const t = e.indexOf(":");
3914
3932
  if (t < 0) return;
3915
3933
  const n = e.slice(0, t);
3916
3934
  return Pi.includes(n) ? e.slice(t + 1) : void 0;
3917
3935
  }
3918
- function Sd(e) {
3936
+ function Td(e) {
3919
3937
  const t = /* @__PURE__ */ new Set([Ui(e.kindKey, e.id)]);
3920
3938
  return e.companyId && t.add(`company:${e.companyId}`), e.contactId && t.add(`contact:${e.contactId}`), e.dealItemId && t.add(`work_item:${e.dealItemId}`), Array.from(t);
3921
3939
  }
3922
- const Td = 4;
3923
- function Id(e, t) {
3940
+ const Id = 4;
3941
+ function vd(e, t) {
3924
3942
  const n = String(t).padStart(Math.max(1, e.padding), "0");
3925
3943
  return `${e.prefix}${e.period ? `${e.period}-` : ""}${n}`;
3926
3944
  }
3927
- function vd(e, t = Date.now()) {
3945
+ function kd(e, t = Date.now()) {
3928
3946
  return e === "year" ? String(new Date(t).getFullYear()) : "";
3929
3947
  }
3930
- const kd = [
3948
+ const wd = [
3931
3949
  "cash",
3932
3950
  "credit",
3933
3951
  "direct_debit",
3934
3952
  "card",
3935
3953
  "other"
3936
3954
  ];
3937
- function wd(e, t) {
3955
+ function Md(e, t) {
3938
3956
  return e + Math.max(0, Math.round(t)) * 24 * 60 * 60 * 1e3;
3939
3957
  }
3940
- function Md(e) {
3958
+ function Od(e) {
3941
3959
  return { code: e.code, label: e.label, method: e.method, dueDays: e.dueDays };
3942
3960
  }
3943
- const Od = [
3961
+ const Cd = [
3944
3962
  {
3945
3963
  code: "14D",
3946
3964
  label: "Binnen 14 dagen",
@@ -3952,7 +3970,7 @@ const Od = [
3952
3970
  { code: "30D", label: "Binnen 30 dagen", method: "credit", dueDays: 30, order: 1 },
3953
3971
  { code: "CONTANT", label: "Contant", method: "cash", dueDays: 0, order: 2 }
3954
3972
  ];
3955
- function Cd(e) {
3973
+ function Nd(e) {
3956
3974
  return e.type === "agent";
3957
3975
  }
3958
3976
  const Fi = [
@@ -3961,10 +3979,10 @@ const Fi = [
3961
3979
  "communication:activities:created",
3962
3980
  "communication:activities:updated"
3963
3981
  ];
3964
- function Nd(e) {
3982
+ function xd(e) {
3965
3983
  return Fi.includes(e);
3966
3984
  }
3967
- const xd = "WORK_COMMENT_ADDED", Dd = "WORK_ITEM_ASSIGNED", Rd = "WORK_ITEM_STATUS_CHANGED";
3985
+ const $d = "WORK_COMMENT_ADDED", Dd = "WORK_ITEM_ASSIGNED", Rd = "WORK_ITEM_STATUS_CHANGED";
3968
3986
  function ji(e, t) {
3969
3987
  const n = (r) => {
3970
3988
  const o = new Date(r);
@@ -3972,7 +3990,7 @@ function ji(e, t) {
3972
3990
  };
3973
3991
  return Math.round((n(e) - n(t)) / Cr);
3974
3992
  }
3975
- function $d(e, t) {
3993
+ function Ld(e, t) {
3976
3994
  if (e.closedAt != null) return { score: P, reasons: [] };
3977
3995
  const n = t.remindersById?.[e.id];
3978
3996
  if (n && n.remindAt > t.now) return { score: P, reasons: [] };
@@ -3994,35 +4012,35 @@ const Ve = [
3994
4012
  { key: "deal", label: "type_deal" },
3995
4013
  /** A date others lead up to: what blocks it, or sits under it, is its progress. No duration. */
3996
4014
  { key: "milestone", label: "type_milestone" }
3997
- ], Ld = Ve.map((e) => e.key);
3998
- function Pd(e) {
4015
+ ], Pd = Ve.map((e) => e.key);
4016
+ function Kd(e) {
3999
4017
  return e?.types?.length ? e.types : Ve;
4000
4018
  }
4001
- function Kd(e, t) {
4019
+ function Ud(e, t) {
4002
4020
  return t.find((n) => n.key === e);
4003
4021
  }
4004
- function Ud(e) {
4022
+ function Fd(e) {
4005
4023
  const t = e.trim().toLowerCase();
4006
4024
  return t ? t.includes("sub-task") || t.includes("subtask") || t.includes("sub task") ? "subtask" : t.includes("bug") || t.includes("defect") ? "bug" : t.includes("epic") ? "epic" : t.includes("story") ? "story" : t.includes("incident") || t.includes("problem") || t.includes("service request") || t.includes("change") ? "case" : t.includes("milestone") || t.includes("mijlpaal") ? "milestone" : t.includes("task") ? "task" : null : null;
4007
4025
  }
4008
- function Fd(...e) {
4026
+ function jd(...e) {
4009
4027
  return e.map((t) => Ve.find((n) => n.key === t)).filter((t) => !!t);
4010
4028
  }
4011
- const Bi = "work_item", Hi = "work_project", Gi = "work_activity", jd = "work_cycle";
4029
+ const Bi = "work_item", Hi = "work_project", Gi = "work_activity", Bd = "work_cycle";
4012
4030
  function Wi(e) {
4013
4031
  return `${Bi}:${e}`;
4014
4032
  }
4015
- function _n(e) {
4033
+ function An(e) {
4016
4034
  return `${Hi}:${e}`;
4017
4035
  }
4018
- function Bd(e) {
4036
+ function Hd(e) {
4019
4037
  return `${Gi}:${e}`;
4020
4038
  }
4021
- function Hd(e, t, n) {
4039
+ function Gd(e, t, n) {
4022
4040
  const r = `${e}-${t}`;
4023
4041
  return n ? `${r}-${n}` : r;
4024
4042
  }
4025
- function Gd(e) {
4043
+ function Wd(e) {
4026
4044
  const t = /^([A-Za-z0-9]{2,8})-(\d+)(?:-(\d+))?$/.exec((e || "").trim());
4027
4045
  return t ? {
4028
4046
  projectKey: t[1].toUpperCase(),
@@ -4030,35 +4048,35 @@ function Gd(e) {
4030
4048
  ...t[3] ? { subSequence: Number(t[3]) } : {}
4031
4049
  } : null;
4032
4050
  }
4033
- function Wd(e) {
4051
+ function Vd(e) {
4034
4052
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toUpperCase().replace(/[^A-Z0-9]/g, "").slice(0, 3) || "PRJ";
4035
4053
  }
4036
- function Vd(e, t = 25) {
4054
+ function zd(e, t = 25) {
4037
4055
  const n = /* @__PURE__ */ new Set([Wi(e.id)]);
4038
- e.projectId && n.add(_n(e.projectId));
4056
+ e.projectId && n.add(An(e.projectId));
4039
4057
  for (const r of e.ancestorKeys ?? []) n.add(r);
4040
4058
  for (const r of e.partyKeys ?? []) n.add(r);
4041
4059
  return Array.from(n).slice(0, t);
4042
4060
  }
4043
- function zd(e) {
4044
- return [_n(e.id)];
4061
+ function Yd(e) {
4062
+ return [An(e.id)];
4045
4063
  }
4046
4064
  const ze = [
4047
4065
  { key: "open", label: "status_open", category: "todo", order: 0 },
4048
4066
  { key: "in_progress", label: "status_in_progress", category: "in_progress", order: 1 },
4049
4067
  { key: "done", label: "status_done", category: "done", order: 2 },
4050
4068
  { key: "cancelled", label: "status_cancelled", category: "done", order: 3 }
4051
- ], An = ze.map((e) => e.key);
4069
+ ], _n = ze.map((e) => e.key);
4052
4070
  function Vi(e) {
4053
4071
  return e?.statuses?.length ? e.statuses : ze;
4054
4072
  }
4055
4073
  function zi(e, t) {
4056
4074
  return t.find((n) => n.key === e)?.category ?? "todo";
4057
4075
  }
4058
- function Yd(e, t) {
4076
+ function Xd(e, t) {
4059
4077
  return t.find((n) => n.key === e);
4060
4078
  }
4061
- function Xd(e) {
4079
+ function qd(e) {
4062
4080
  const t = Vi(e), n = e?.defaultStatusKey;
4063
4081
  return n && t.some((r) => r.key === n) ? n : Yi(t)[0]?.key ?? ze[0].key;
4064
4082
  }
@@ -4068,14 +4086,14 @@ function Yi(e) {
4068
4086
  return r !== 0 ? r : (t.label || "").localeCompare(n.label || "");
4069
4087
  });
4070
4088
  }
4071
- function qd(e, t) {
4089
+ function Qd(e, t) {
4072
4090
  return zi(e, t) === "done";
4073
4091
  }
4074
4092
  function Xi(e) {
4075
4093
  return (e || "").normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^a-z0-9]+/g, "-").slice(0, 48).replace(/^-+|-+$/g, "");
4076
4094
  }
4077
- function Qd(e, t) {
4078
- const n = Xi(e) || "status", r = /* @__PURE__ */ new Set([...t, ...An]);
4095
+ function Jd(e, t) {
4096
+ const n = Xi(e) || "status", r = /* @__PURE__ */ new Set([...t, ..._n]);
4079
4097
  if (!r.has(n)) return n;
4080
4098
  for (let o = 2; o < 500; o++) {
4081
4099
  const i = `${n}-${o}`;
@@ -4083,7 +4101,7 @@ function Qd(e, t) {
4083
4101
  }
4084
4102
  return `${n}-${r.size + 1}`;
4085
4103
  }
4086
- function Jd(e) {
4104
+ function Zd(e) {
4087
4105
  const t = [];
4088
4106
  if (!e.length) return [{ index: -1, reason: "empty" }];
4089
4107
  const n = /* @__PURE__ */ new Set();
@@ -4092,38 +4110,38 @@ function Jd(e) {
4092
4110
  t.push({ index: o, reason: "missing_key" });
4093
4111
  return;
4094
4112
  }
4095
- An.includes(r.key) && t.push({ index: o, reason: "reserved_key", key: r.key }), n.has(r.key) && t.push({ index: o, reason: "duplicate_key", key: r.key }), n.add(r.key);
4113
+ _n.includes(r.key) && t.push({ index: o, reason: "reserved_key", key: r.key }), n.has(r.key) && t.push({ index: o, reason: "duplicate_key", key: r.key }), n.add(r.key);
4096
4114
  }), 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;
4097
4115
  }
4098
- function Zd(e, t) {
4116
+ function ef(e, t) {
4099
4117
  return t.find((n) => n.key === e)?.requiresApproval === !0;
4100
4118
  }
4101
- function ef(e, t) {
4119
+ function tf(e, t) {
4102
4120
  if (!e) return;
4103
4121
  const n = t?.resolutions?.find((r) => r.key === e)?.positive;
4104
4122
  return n === void 0 ? void 0 : n ? "won" : "lost";
4105
4123
  }
4106
- function tf(e) {
4124
+ function nf(e) {
4107
4125
  return e.startDate ?? Number.MAX_SAFE_INTEGER;
4108
4126
  }
4109
- function nf(e) {
4127
+ function rf(e) {
4110
4128
  return e.completedAt ? "completed" : e.startedAt ? "active" : "planned";
4111
4129
  }
4112
- const rf = [
4130
+ const of = [
4113
4131
  "statusKeys",
4114
4132
  "typeKeys",
4115
4133
  "labels",
4116
4134
  "priority",
4117
4135
  "assignees"
4118
- ], of = ["blockedOnly", "watchingOnly", "reportedByMe"], sf = [
4136
+ ], sf = ["blockedOnly", "watchingOnly", "reportedByMe"], af = [
4119
4137
  "priority",
4120
4138
  "dueDate",
4121
4139
  "updatedAt",
4122
4140
  "createdAt",
4123
4141
  "title",
4124
4142
  "estimateSeconds"
4125
- ], af = ["list", "board", "calendar", "workload"], qi = ["day", "week", "month"];
4126
- function cf(e) {
4143
+ ], cf = ["list", "board", "calendar", "workload"], qi = ["day", "week", "month"];
4144
+ function lf(e) {
4127
4145
  const t = e;
4128
4146
  if (!t || !qi.includes(t.every)) return;
4129
4147
  const n = Math.floor(Number(t.interval ?? 1));
@@ -4140,7 +4158,7 @@ function Qi(e, t) {
4140
4158
  }
4141
4159
  return n.getTime();
4142
4160
  }
4143
- function lf(e, t, n) {
4161
+ function uf(e, t, n) {
4144
4162
  const r = Qi(e.dueDate ?? n, t);
4145
4163
  return e.startDate === void 0 || e.dueDate === void 0 ? { dueDate: r } : { dueDate: r, startDate: r - (e.dueDate - e.startDate) };
4146
4164
  }
@@ -4162,13 +4180,13 @@ const B = 1024 * 1024, ts = {
4162
4180
  pdf: 20 * B,
4163
4181
  text: 1 * B,
4164
4182
  audio: 20 * B
4165
- }, uf = 25 * B, df = 5;
4166
- function ff(e, t) {
4183
+ }, df = 25 * B, ff = 5;
4184
+ function pf(e, t) {
4167
4185
  const n = es(e);
4168
4186
  return n === "unsupported" ? "unsupported" : t > ts[n] ? "too-large" : null;
4169
4187
  }
4170
- const pf = "ai-tool";
4171
- function mf(e) {
4188
+ const mf = "ai-tool";
4189
+ function hf(e) {
4172
4190
  return e.access === "read" ? "idempotent" : e.reversible ?? "none";
4173
4191
  }
4174
4192
  function En(e) {
@@ -4177,7 +4195,7 @@ function En(e) {
4177
4195
  function ns(e) {
4178
4196
  return `${e.kind}:${e.id || e.url || e.title}`;
4179
4197
  }
4180
- function hf(e, t = []) {
4198
+ function gf(e, t = []) {
4181
4199
  const n = new Set(t), r = [], o = [];
4182
4200
  for (const i of e) {
4183
4201
  const s = ns(i);
@@ -4185,8 +4203,8 @@ function hf(e, t = []) {
4185
4203
  }
4186
4204
  return { sources: r, keys: o };
4187
4205
  }
4188
- const gf = "assist-source", yf = ["blocking", "due", "open"];
4189
- function bf(e, t) {
4206
+ const yf = "assist-source", bf = ["blocking", "due", "open"];
4207
+ function Af(e, t) {
4190
4208
  const [n, r] = (e.subjectKey ?? "").split(":");
4191
4209
  return n === t && r ? r : void 0;
4192
4210
  }
@@ -4194,17 +4212,17 @@ const Ot = { blocking: 0, due: 1, open: 2 };
4194
4212
  function _f(e, t) {
4195
4213
  return Ot[e.band ?? "open"] - Ot[t.band ?? "open"] || (t.priority ?? 0) - (e.priority ?? 0) || e.id.localeCompare(t.id);
4196
4214
  }
4197
- function Af(e) {
4215
+ function Ef(e) {
4198
4216
  return e.sessions.filter(
4199
4217
  (t) => t.id !== e.exceptSessionId && t.state === "connected" && e.canHold(t.providerId)
4200
4218
  );
4201
4219
  }
4202
- function Ef(e) {
4220
+ function Sf(e) {
4203
4221
  return e.sessions.filter(
4204
4222
  (t) => t.id !== e.exceptSessionId && t.state === "connected" && !e.canHold(t.providerId)
4205
4223
  );
4206
4224
  }
4207
- function Sf(e) {
4225
+ function Tf(e) {
4208
4226
  return e.sessions.some(
4209
4227
  (n) => n.id !== e.exceptSessionId && (n.state === "connected" || n.state === "on_hold")
4210
4228
  ) ? { admit: !1, reason: "busy" } : { admit: !0 };
@@ -4226,7 +4244,7 @@ function os(e, t) {
4226
4244
  }
4227
4245
  return n;
4228
4246
  }
4229
- function Tf(e, t) {
4247
+ function If(e, t) {
4230
4248
  const n = os(e, t);
4231
4249
  return Object.entries(n).filter(([, r]) => !r).map(([r]) => r);
4232
4250
  }
@@ -4237,7 +4255,7 @@ function is(e, t) {
4237
4255
  transport: t.transport ?? e.transport
4238
4256
  } : e;
4239
4257
  }
4240
- function If(e, t) {
4258
+ function vf(e, t) {
4241
4259
  const n = [];
4242
4260
  for (const r of e) {
4243
4261
  if (!r.enabled) continue;
@@ -4248,16 +4266,16 @@ function If(e, t) {
4248
4266
  }
4249
4267
  return n;
4250
4268
  }
4251
- function vf(e, t) {
4269
+ function kf(e, t) {
4252
4270
  return t.filter((n) => n.capability.intent === e);
4253
4271
  }
4254
4272
  function ss(e, t) {
4255
4273
  return t.filter((n) => n.capability.targetSchemes.includes(e));
4256
4274
  }
4257
- function kf(e, t) {
4275
+ function wf(e, t) {
4258
4276
  return ss(e.scheme, t);
4259
4277
  }
4260
- function wf(e, t, n) {
4278
+ function Mf(e, t, n) {
4261
4279
  const r = [];
4262
4280
  for (const o of e)
4263
4281
  for (const i of n)
@@ -4286,10 +4304,10 @@ const cs = {
4286
4304
  id: "note",
4287
4305
  custom: "note"
4288
4306
  };
4289
- function Mf(e) {
4307
+ function Of(e) {
4290
4308
  return e ? cs[e] ?? "note" : "note";
4291
4309
  }
4292
- const Of = "message_window", Cf = "message_templates", Nf = {
4310
+ const Cf = "message_window", Nf = "message_templates", xf = {
4293
4311
  // E-mail
4294
4312
  FROM: "from",
4295
4313
  TO: "to",
@@ -4306,11 +4324,11 @@ const Of = "message_window", Cf = "message_templates", Nf = {
4306
4324
  // Voice/conference
4307
4325
  HOST: "host",
4308
4326
  PARTICIPANT: "participant"
4309
- }, xf = (e, t) => ({ intent: e, ...t }), Df = "folder_management", Rf = "remote_search", $f = "message_reactions", Lf = {
4327
+ }, $f = (e, t) => ({ intent: e, ...t }), Df = "folder_management", Rf = "remote_search", Lf = "message_reactions", Pf = {
4310
4328
  ok: !1,
4311
4329
  code: "UNSUPPORTED",
4312
4330
  message: "Provider does not support this op"
4313
- }, Pf = "connector", Kf = "context.collect", A = (e) => ({ type: "string", description: e }), _ = (e) => ({ type: "number", description: e }), ee = (e) => ({ type: "boolean", description: e }), M = A("Sheet name. Omit for the sheet the user is looking at."), Ct = A("Slide id, as `inspect` reports it.");
4331
+ }, Kf = "connector", Uf = "context.collect", _ = (e) => ({ type: "string", description: e }), A = (e) => ({ type: "number", description: e }), ee = (e) => ({ type: "boolean", description: e }), M = _("Sheet name. Omit for the sheet the user is looking at."), Ct = _("Slide id, as `inspect` reports it.");
4314
4332
  function b(e, t, n, r, o, i) {
4315
4333
  return {
4316
4334
  op: e,
@@ -4326,7 +4344,7 @@ const G = { undoable: !1, visible: !0 }, T = { undoable: !0, visible: !0 }, Nt =
4326
4344
  "pdf.goToPage",
4327
4345
  ["pdf"],
4328
4346
  "Scroll the viewer to a page.",
4329
- { page: _("1-based page number.") },
4347
+ { page: A("1-based page number.") },
4330
4348
  ["page"],
4331
4349
  G
4332
4350
  ),
@@ -4334,7 +4352,7 @@ const G = { undoable: !1, visible: !0 }, T = { undoable: !0, visible: !0 }, Nt =
4334
4352
  "pdf.search",
4335
4353
  ["pdf"],
4336
4354
  "Search the document and highlight the matches, as the find bar does.",
4337
- { query: A("Text to find."), next: ee("Jump to the next match instead of the first.") },
4355
+ { query: _("Text to find."), next: ee("Jump to the next match instead of the first.") },
4338
4356
  ["query"],
4339
4357
  G
4340
4358
  ),
@@ -4357,7 +4375,7 @@ const G = { undoable: !1, visible: !0 }, T = { undoable: !0, visible: !0 }, Nt =
4357
4375
  ["pdf"],
4358
4376
  "Fill one form field of a fillable PDF.",
4359
4377
  {
4360
- field: A("Field name, exactly as `inspect` reports it under `fields`."),
4378
+ field: _("Field name, exactly as `inspect` reports it under `fields`."),
4361
4379
  value: {
4362
4380
  type: ["string", "boolean"],
4363
4381
  description: "Text for a text field, true/false for a checkbox or radio."
@@ -4393,13 +4411,13 @@ const G = { undoable: !1, visible: !0 }, T = { undoable: !0, visible: !0 }, Nt =
4393
4411
  ["pdf"],
4394
4412
  "Place a text note on a page. Written on save; not visible before that.",
4395
4413
  {
4396
- page: _("1-based page number."),
4397
- text: A("The note's text."),
4398
- left: _("Distance from the left edge, in PDF points (72 per inch)."),
4399
- top: _("Distance from the top edge, in PDF points."),
4400
- width: _("Box width in points. Omit for a sensible default."),
4401
- height: _("Box height in points. Omit for a sensible default."),
4402
- fontSize: _("Font size in points. Omit for 12.")
4414
+ page: A("1-based page number."),
4415
+ text: _("The note's text."),
4416
+ left: A("Distance from the left edge, in PDF points (72 per inch)."),
4417
+ top: A("Distance from the top edge, in PDF points."),
4418
+ width: A("Box width in points. Omit for a sensible default."),
4419
+ height: A("Box height in points. Omit for a sensible default."),
4420
+ fontSize: A("Font size in points. Omit for 12.")
4403
4421
  },
4404
4422
  ["page", "text", "left", "top"],
4405
4423
  re
@@ -4409,9 +4427,9 @@ const G = { undoable: !1, visible: !0 }, T = { undoable: !0, visible: !0 }, Nt =
4409
4427
  ["pdf"],
4410
4428
  "Highlight a phrase on a page. Written on save; not visible before that.",
4411
4429
  {
4412
- page: _("1-based page number."),
4413
- text: A("The exact phrase to highlight, as it appears in the page's text."),
4414
- occurrence: _("Which occurrence on that page, 1-based. Omit for the first.")
4430
+ page: A("1-based page number."),
4431
+ text: _("The exact phrase to highlight, as it appears in the page's text."),
4432
+ occurrence: A("Which occurrence on that page, 1-based. Omit for the first.")
4415
4433
  },
4416
4434
  ["page", "text"],
4417
4435
  re
@@ -4423,7 +4441,7 @@ const G = { undoable: !1, visible: !0 }, T = { undoable: !0, visible: !0 }, Nt =
4423
4441
  "Write a block of values. The block's shape must match the range.",
4424
4442
  {
4425
4443
  sheet: M,
4426
- range: A("A1 notation, e.g. `B2:D5` or a single `A1`."),
4444
+ range: _("A1 notation, e.g. `B2:D5` or a single `A1`."),
4427
4445
  values: {
4428
4446
  type: "array",
4429
4447
  items: { type: "array", items: { type: ["string", "number", "boolean", "null"] } },
@@ -4437,7 +4455,7 @@ const G = { undoable: !1, visible: !0 }, T = { undoable: !0, visible: !0 }, Nt =
4437
4455
  "sheet.setFormula",
4438
4456
  ["sheet"],
4439
4457
  "Put a formula in every cell of a range.",
4440
- { sheet: M, range: A("A1 notation."), formula: A("Including the leading `=`.") },
4458
+ { sheet: M, range: _("A1 notation."), formula: _("Including the leading `=`.") },
4441
4459
  ["range", "formula"],
4442
4460
  T
4443
4461
  ),
@@ -4447,18 +4465,18 @@ const G = { undoable: !1, visible: !0 }, T = { undoable: !0, visible: !0 }, Nt =
4447
4465
  "Change the look of a range. Only the properties you pass are touched.",
4448
4466
  {
4449
4467
  sheet: M,
4450
- range: A("A1 notation."),
4468
+ range: _("A1 notation."),
4451
4469
  bold: ee("Bold on or off."),
4452
4470
  italic: ee("Italic on or off."),
4453
- fontSize: _("Point size."),
4454
- fontColor: A("CSS colour, e.g. `#b91c1c`."),
4455
- background: A("CSS colour for the cell fill."),
4471
+ fontSize: A("Point size."),
4472
+ fontColor: _("CSS colour, e.g. `#b91c1c`."),
4473
+ background: _("CSS colour for the cell fill."),
4456
4474
  horizontalAlignment: {
4457
4475
  type: "string",
4458
4476
  enum: ["left", "center", "right"],
4459
4477
  description: "Horizontal alignment."
4460
4478
  },
4461
- numberFormat: A("Number format pattern, e.g. `#,##0.00` or `0%`.")
4479
+ numberFormat: _("Number format pattern, e.g. `#,##0.00` or `0%`.")
4462
4480
  },
4463
4481
  ["range"],
4464
4482
  T
@@ -4469,8 +4487,8 @@ const G = { undoable: !1, visible: !0 }, T = { undoable: !0, visible: !0 }, Nt =
4469
4487
  "Insert empty rows, pushing the rest down.",
4470
4488
  {
4471
4489
  sheet: M,
4472
- at: _("1-based row number to insert before."),
4473
- count: _("How many. Omit for 1.")
4490
+ at: A("1-based row number to insert before."),
4491
+ count: A("How many. Omit for 1.")
4474
4492
  },
4475
4493
  ["at"],
4476
4494
  T
@@ -4479,7 +4497,7 @@ const G = { undoable: !1, visible: !0 }, T = { undoable: !0, visible: !0 }, Nt =
4479
4497
  "sheet.deleteRows",
4480
4498
  ["sheet"],
4481
4499
  "Delete rows, pulling the rest up.",
4482
- { sheet: M, at: _("1-based first row to delete."), count: _("How many. Omit for 1.") },
4500
+ { sheet: M, at: A("1-based first row to delete."), count: A("How many. Omit for 1.") },
4483
4501
  ["at"],
4484
4502
  T
4485
4503
  ),
@@ -4489,8 +4507,8 @@ const G = { undoable: !1, visible: !0 }, T = { undoable: !0, visible: !0 }, Nt =
4489
4507
  "Insert empty columns, pushing the rest right.",
4490
4508
  {
4491
4509
  sheet: M,
4492
- at: _("1-based column number to insert before."),
4493
- count: _("How many. Omit for 1.")
4510
+ at: A("1-based column number to insert before."),
4511
+ count: A("How many. Omit for 1.")
4494
4512
  },
4495
4513
  ["at"],
4496
4514
  T
@@ -4501,8 +4519,8 @@ const G = { undoable: !1, visible: !0 }, T = { undoable: !0, visible: !0 }, Nt =
4501
4519
  "Delete columns, pulling the rest left.",
4502
4520
  {
4503
4521
  sheet: M,
4504
- at: _("1-based first column to delete."),
4505
- count: _("How many. Omit for 1.")
4522
+ at: A("1-based first column to delete."),
4523
+ count: A("How many. Omit for 1.")
4506
4524
  },
4507
4525
  ["at"],
4508
4526
  T
@@ -4511,7 +4529,7 @@ const G = { undoable: !1, visible: !0 }, T = { undoable: !0, visible: !0 }, Nt =
4511
4529
  "sheet.merge",
4512
4530
  ["sheet"],
4513
4531
  "Merge a range into one cell.",
4514
- { sheet: M, range: A("A1 notation.") },
4532
+ { sheet: M, range: _("A1 notation.") },
4515
4533
  ["range"],
4516
4534
  T
4517
4535
  ),
@@ -4519,7 +4537,7 @@ const G = { undoable: !1, visible: !0 }, T = { undoable: !0, visible: !0 }, Nt =
4519
4537
  "sheet.unmerge",
4520
4538
  ["sheet"],
4521
4539
  "Break merged cells in a range apart.",
4522
- { sheet: M, range: A("A1 notation.") },
4540
+ { sheet: M, range: _("A1 notation.") },
4523
4541
  ["range"],
4524
4542
  T
4525
4543
  ),
@@ -4529,8 +4547,8 @@ const G = { undoable: !1, visible: !0 }, T = { undoable: !0, visible: !0 }, Nt =
4529
4547
  "Sort a range on one of its columns.",
4530
4548
  {
4531
4549
  sheet: M,
4532
- range: A("A1 notation covering the rows to sort, header excluded."),
4533
- column: _("1-based column *within the range*, not within the sheet."),
4550
+ range: _("A1 notation covering the rows to sort, header excluded."),
4551
+ column: A("1-based column *within the range*, not within the sheet."),
4534
4552
  ascending: ee("Ascending. Omit for ascending.")
4535
4553
  },
4536
4554
  ["range", "column"],
@@ -4540,7 +4558,7 @@ const G = { undoable: !1, visible: !0 }, T = { undoable: !0, visible: !0 }, Nt =
4540
4558
  "sheet.insertSheet",
4541
4559
  ["sheet"],
4542
4560
  "Add a new sheet.",
4543
- { name: A("Name for the new sheet.") },
4561
+ { name: _("Name for the new sheet.") },
4544
4562
  ["name"],
4545
4563
  T
4546
4564
  ),
@@ -4548,7 +4566,7 @@ const G = { undoable: !1, visible: !0 }, T = { undoable: !0, visible: !0 }, Nt =
4548
4566
  "sheet.renameSheet",
4549
4567
  ["sheet"],
4550
4568
  "Rename a sheet.",
4551
- { sheet: A("Current name."), name: A("New name.") },
4569
+ { sheet: _("Current name."), name: _("New name.") },
4552
4570
  ["sheet", "name"],
4553
4571
  T
4554
4572
  ),
@@ -4556,7 +4574,7 @@ const G = { undoable: !1, visible: !0 }, T = { undoable: !0, visible: !0 }, Nt =
4556
4574
  "sheet.deleteSheet",
4557
4575
  ["sheet"],
4558
4576
  "Remove a sheet and everything on it.",
4559
- { sheet: A("Name of the sheet to delete.") },
4577
+ { sheet: _("Name of the sheet to delete.") },
4560
4578
  ["sheet"],
4561
4579
  T
4562
4580
  ),
@@ -4564,7 +4582,7 @@ const G = { undoable: !1, visible: !0 }, T = { undoable: !0, visible: !0 }, Nt =
4564
4582
  "sheet.activate",
4565
4583
  ["sheet"],
4566
4584
  "Show the user a sheet and select a range on it.",
4567
- { sheet: M, range: A("A1 notation to select. Omit to only switch sheets.") },
4585
+ { sheet: M, range: _("A1 notation to select. Omit to only switch sheets.") },
4568
4586
  [],
4569
4587
  G
4570
4588
  )
@@ -4574,8 +4592,8 @@ const G = { undoable: !1, visible: !0 }, T = { undoable: !0, visible: !0 }, Nt =
4574
4592
  ["word"],
4575
4593
  "Rewrite one whole paragraph, keeping its style. This is the verb for shortening or rephrasing something; call it once per paragraph.",
4576
4594
  {
4577
- at: _("The offset the paragraph starts at, exactly as `inspect` prints it."),
4578
- text: A("The new text for that paragraph. A newline starts a further paragraph.")
4595
+ at: A("The offset the paragraph starts at, exactly as `inspect` prints it."),
4596
+ text: _("The new text for that paragraph. A newline starts a further paragraph.")
4579
4597
  },
4580
4598
  ["at", "text"],
4581
4599
  T
@@ -4585,9 +4603,9 @@ const G = { undoable: !1, visible: !0 }, T = { undoable: !0, visible: !0 }, Nt =
4585
4603
  ["word"],
4586
4604
  "Replace a stretch of text inside a paragraph - a sentence, a phrase. To rewrite whole paragraphs use word.replaceParagraph: a range covering several paragraph styles is refused, because a replacement carries one style and would set the whole span in the first.",
4587
4605
  {
4588
- start: _("Character offset where the replaced text starts, as `inspect` reports offsets."),
4589
- end: _("Character offset just past the last character to replace."),
4590
- text: A("The replacement text. A newline starts a new paragraph.")
4606
+ start: A("Character offset where the replaced text starts, as `inspect` reports offsets."),
4607
+ end: A("Character offset just past the last character to replace."),
4608
+ text: _("The replacement text. A newline starts a new paragraph.")
4591
4609
  },
4592
4610
  ["start", "end", "text"],
4593
4611
  T
@@ -4597,8 +4615,8 @@ const G = { undoable: !1, visible: !0 }, T = { undoable: !0, visible: !0 }, Nt =
4597
4615
  ["word"],
4598
4616
  "Insert text at a character offset, without removing anything.",
4599
4617
  {
4600
- index: _("Character offset, as `inspect` reports offsets."),
4601
- text: A("The text to insert.")
4618
+ index: A("Character offset, as `inspect` reports offsets."),
4619
+ text: _("The text to insert.")
4602
4620
  },
4603
4621
  ["index", "text"],
4604
4622
  T
@@ -4607,7 +4625,7 @@ const G = { undoable: !1, visible: !0 }, T = { undoable: !0, visible: !0 }, Nt =
4607
4625
  "word.appendText",
4608
4626
  ["word"],
4609
4627
  "Add text at the end of the document.",
4610
- { text: A("The text to append.") },
4628
+ { text: _("The text to append.") },
4611
4629
  ["text"],
4612
4630
  T
4613
4631
  ),
@@ -4616,8 +4634,8 @@ const G = { undoable: !1, visible: !0 }, T = { undoable: !0, visible: !0 }, Nt =
4616
4634
  ["word"],
4617
4635
  "Start a new paragraph, optionally with text in it.",
4618
4636
  {
4619
- text: A("Paragraph text. Newlines start further paragraphs."),
4620
- index: _("Character offset to insert at. Omit for the end of the document.")
4637
+ text: _("Paragraph text. Newlines start further paragraphs."),
4638
+ index: A("Character offset to insert at. Omit for the end of the document.")
4621
4639
  },
4622
4640
  [],
4623
4641
  T
@@ -4626,7 +4644,7 @@ const G = { undoable: !1, visible: !0 }, T = { undoable: !0, visible: !0 }, Nt =
4626
4644
  "word.setSelection",
4627
4645
  ["word"],
4628
4646
  "Put the user's cursor on a stretch of text, and move the reading window there: the page context carries one window of a long document, and the text around this offset arrives in the next turn.",
4629
- { start: _("Start character offset."), end: _("End character offset. Omit for a caret.") },
4647
+ { start: A("Start character offset."), end: A("End character offset. Omit for a caret.") },
4630
4648
  ["start"],
4631
4649
  G
4632
4650
  )
@@ -4637,8 +4655,8 @@ const G = { undoable: !1, visible: !0 }, T = { undoable: !0, visible: !0 }, Nt =
4637
4655
  "Replace the text of one shape. Written on save; not visible before that, and not undoable.",
4638
4656
  {
4639
4657
  slide: Ct,
4640
- element: A("Element id, as `inspect` reports it."),
4641
- text: A("The new text.")
4658
+ element: _("Element id, as `inspect` reports it."),
4659
+ text: _("The new text.")
4642
4660
  },
4643
4661
  ["slide", "element", "text"],
4644
4662
  re
@@ -4649,11 +4667,11 @@ const G = { undoable: !1, visible: !0 }, T = { undoable: !0, visible: !0 }, Nt =
4649
4667
  "Move or resize one shape. Only the values you pass change. Written on save; not visible before that, and not undoable.",
4650
4668
  {
4651
4669
  slide: Ct,
4652
- element: A("Element id."),
4653
- left: _("Distance from the left edge, in pixels."),
4654
- top: _("Distance from the top edge, in pixels."),
4655
- width: _("Width in pixels."),
4656
- height: _("Height in pixels.")
4670
+ element: _("Element id."),
4671
+ left: A("Distance from the left edge, in pixels."),
4672
+ top: A("Distance from the top edge, in pixels."),
4673
+ width: A("Width in pixels."),
4674
+ height: A("Height in pixels.")
4657
4675
  },
4658
4676
  ["slide", "element"],
4659
4677
  re
@@ -4664,18 +4682,18 @@ const G = { undoable: !1, visible: !0 }, T = { undoable: !0, visible: !0 }, Nt =
4664
4682
  ...ds,
4665
4683
  ...fs
4666
4684
  ];
4667
- function Uf(e) {
4685
+ function Ff(e) {
4668
4686
  return Sn.filter((t) => t.kinds.includes(e));
4669
4687
  }
4670
- function Ff(e) {
4688
+ function jf(e) {
4671
4689
  return Sn.find((t) => t.op === e);
4672
4690
  }
4673
4691
  const xt = /(?: {2,}|\\)$/, ps = /^\*\*([^*]+)\*\*\s+(.*)$/;
4674
- function Dt(e) {
4692
+ function $t(e) {
4675
4693
  const t = ps.exec(e);
4676
4694
  return t ? { lead: t[1], text: t[2] } : { text: e };
4677
4695
  }
4678
- function jf(e) {
4696
+ function Bf(e) {
4679
4697
  const t = (e ?? "").replace(/\r\n/g, `
4680
4698
  `).split(`
4681
4699
  `), n = [];
@@ -4683,7 +4701,7 @@ function jf(e) {
4683
4701
  const o = () => {
4684
4702
  r && n.push({ type: "list", style: r.style, items: r.items }), r = null;
4685
4703
  }, i = (f, p) => {
4686
- r && r.style !== f && o(), r ? r.items.push(Dt(p)) : r = { style: f, items: [Dt(p)] };
4704
+ r && r.style !== f && o(), r ? r.items.push($t(p)) : r = { style: f, items: [$t(p)] };
4687
4705
  };
4688
4706
  let s = [], a = [];
4689
4707
  const l = () => {
@@ -4754,27 +4772,27 @@ function jf(e) {
4754
4772
  }
4755
4773
  return d(), n;
4756
4774
  }
4757
- function Bf(e, t) {
4775
+ function Hf(e, t) {
4758
4776
  return ar(e, t).replace(/^```.*$/gm, "").replace(/^\|[\s:|-]*\|$/gm, "").replace(/[ \t]*\|[ \t]*/g, " ").replace(/^[ \t]*(#{1,6}|>|[-*+]|\d+\.)[ \t]+/gm, "").replace(/!\[([^\]]*)\]\([^)]*\)/g, "$1").replace(/\[([^\]]+)\]\([^)]*\)/g, "$1").replace(/(\*\*|__|\*|_|`|~~)/g, "").replace(/[ \t]+$/gm, "").replace(/\n{3,}/g, `
4759
4777
 
4760
4778
  `).trim();
4761
4779
  }
4762
- const Hf = "documents.describe", Gf = "documents.inspect", Wf = "documents.apply";
4763
- function Vf(e) {
4780
+ const Gf = "documents.describe", Wf = "documents.inspect", Vf = "documents.apply";
4781
+ function zf(e) {
4764
4782
  const t = e.indexOf(":");
4765
4783
  if (t !== -1) return e.slice(0, t);
4766
4784
  const n = e.indexOf(".");
4767
4785
  return n === -1 ? e : e.slice(0, n);
4768
4786
  }
4769
- const zf = "installation-id";
4770
- function Yf(e) {
4787
+ const Yf = "installation-id";
4788
+ function Xf(e) {
4771
4789
  const t = [];
4772
4790
  for (const n of Object.keys(e))
4773
4791
  for (const r of Object.keys(e[n]))
4774
4792
  t.push({ lang: n, key: r, value: e[n][r] });
4775
4793
  return t;
4776
4794
  }
4777
- const Xf = "notification-source", qf = (e, t) => `${e}.pref.${t}`, Qf = {
4795
+ const qf = "notification-source", Qf = (e, t) => `${e}.pref.${t}`, Jf = {
4778
4796
  ai: [
4779
4797
  "account.read",
4780
4798
  "account.write",
@@ -4915,37 +4933,37 @@ const Xf = "notification-source", qf = (e, t) => `${e}.pref.${t}`, Qf = {
4915
4933
  user: ["user.read", "user.write"],
4916
4934
  work: ["item.read", "item.write", "project.read", "project.write"]
4917
4935
  }, Tn = 9e4, ms = ["out_of_office"], In = (e) => ms.includes(e);
4918
- function Jf(e, t, n) {
4936
+ function Zf(e, t, n) {
4919
4937
  const r = n - e < Tn, o = t?.status && (!t.expiresAt || t.expiresAt > n) ? t : void 0;
4920
4938
  if (!o?.status) return { online: r, status: r ? "available" : "offline" };
4921
4939
  const i = o.status;
4922
4940
  return !r && !In(i) ? { online: !1, status: "offline" } : { online: r, status: i, message: o.message };
4923
4941
  }
4924
- function Zf(e, t) {
4942
+ function ep(e, t) {
4925
4943
  const n = t - e.lastSeenAt < Tn, r = n || In(e.status) ? e.status : "offline";
4926
4944
  return n === e.online && r === e.status ? e : { ...e, online: n, status: r };
4927
4945
  }
4928
- function ep(e, t) {
4946
+ function tp(e, t) {
4929
4947
  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 };
4930
4948
  }
4931
- function tp(e) {
4949
+ function np(e) {
4932
4950
  return e.providerAvailable && e.allowed;
4933
4951
  }
4934
- const np = "resources.describe", rp = "resources.search", op = "resources.resolve", ip = "resources.attached";
4935
- function sp(e) {
4952
+ const rp = "resources.describe", op = "resources.search", ip = "resources.resolve", sp = "resources.attached";
4953
+ function ap(e) {
4936
4954
  const t = e.indexOf(":");
4937
4955
  return t === -1 ? e : e.slice(0, t);
4938
4956
  }
4939
- const ap = "/provider/scope/related", cp = "/provider/scope/read", lp = "/provider/scope/acts", vn = "auth";
4957
+ const cp = "/provider/scope/related", lp = "/provider/scope/read", up = "/provider/scope/acts", vn = "auth";
4940
4958
  function kn(e) {
4941
4959
  const t = typeof e == "string" ? e.match(/apps\/([^/?#]+)/) : null;
4942
4960
  return t ? t[1] : null;
4943
4961
  }
4944
- function up(e) {
4962
+ function dp(e) {
4945
4963
  const t = kn(e);
4946
4964
  return t ? t !== vn : typeof e == "string" && e.startsWith("/wake");
4947
4965
  }
4948
- function dp(e) {
4966
+ function fp(e) {
4949
4967
  return typeof e != "string" || e === "" || e === "/" ? !0 : kn(e) === vn;
4950
4968
  }
4951
4969
  function hs(e) {
@@ -4967,7 +4985,7 @@ function ys(e, t) {
4967
4985
  function bs(e) {
4968
4986
  return e.publicBasePath ?? `/apps/${e.name}`;
4969
4987
  }
4970
- function fp(e) {
4988
+ function pp(e) {
4971
4989
  const t = [];
4972
4990
  for (const n of e) {
4973
4991
  if (!n?.name) continue;
@@ -4985,7 +5003,7 @@ function fp(e) {
4985
5003
  }
4986
5004
  return t;
4987
5005
  }
4988
- function _s(e, t) {
5006
+ function As(e, t) {
4989
5007
  const n = e.split("/").filter(Boolean), r = t.split("/").filter(Boolean);
4990
5008
  for (let o = 0; o < Math.min(n.length, r.length); o++) {
4991
5009
  const i = n[o].startsWith(":"), s = r[o].startsWith(":");
@@ -4993,17 +5011,17 @@ function _s(e, t) {
4993
5011
  }
4994
5012
  return n.length > r.length;
4995
5013
  }
4996
- function As(e, t) {
5014
+ function _s(e, t) {
4997
5015
  if (typeof e != "string") return null;
4998
5016
  let n = null;
4999
5017
  for (const r of t)
5000
- gs(r.pattern).test(e) && (!n || _s(r.pattern, n.pattern)) && (n = r);
5018
+ gs(r.pattern).test(e) && (!n || As(r.pattern, n.pattern)) && (n = r);
5001
5019
  return n ? { ...n, params: { ...n.props, ...ys(n.pattern, e) } } : null;
5002
5020
  }
5003
- function pp(e, t) {
5004
- return As(e, t) !== null;
5021
+ function mp(e, t) {
5022
+ return _s(e, t) !== null;
5005
5023
  }
5006
- const mp = 10 * 1024 * 1024, hp = 25 * 1024 * 1024, gp = "sync-target", yp = 20;
5024
+ const hp = 10 * 1024 * 1024, gp = 25 * 1024 * 1024, yp = "sync-target", bp = 20;
5007
5025
  function wn(e, t) {
5008
5026
  const n = Array.isArray(t) ? t.find((r) => r.name === e.name)?.policy : void 0;
5009
5027
  return n ? n !== "read" : e.access ? e.access !== "read" : !0;
@@ -5014,7 +5032,7 @@ function Es(e, t, n) {
5014
5032
  function Ss(e) {
5015
5033
  return e.produces === "draft";
5016
5034
  }
5017
- function bp(e, t) {
5035
+ function Ap(e, t) {
5018
5036
  if (t.allowed) {
5019
5037
  const n = t.personalTools === "allow" && e.personal === !0;
5020
5038
  if (!t.allowed.has(e.name) && !n) return "hidden";
@@ -5305,24 +5323,24 @@ function xs(e, t) {
5305
5323
  for (const i of r) n.has(i) || (o += 1);
5306
5324
  return o / r.size;
5307
5325
  }
5308
- function Ds(e, t = vs) {
5326
+ function $s(e, t = vs) {
5309
5327
  const n = e.filter((s) => !s.partial && typeof s.text == "string");
5310
5328
  if (!n.length) return { text: "", segmentCount: 0 };
5311
5329
  const o = n.reduce((s, a) => Math.max(s, a.endedAt ?? 0), 0) - t;
5312
5330
  return { text: n.filter((s) => (s.endedAt ?? 0) >= o).map((s) => Is(s.text).trim()).filter(Boolean).join(" ").replace(/\s+/g, " ").trim(), segmentCount: n.length };
5313
5331
  }
5314
- const Rs = 60;
5315
- function _p(e, t, n = Rs) {
5332
+ const Ds = 60;
5333
+ function _p(e, t, n = Ds) {
5316
5334
  const r = new Set(e), o = [...e];
5317
5335
  for (const i of t)
5318
5336
  !i || r.has(i) || (r.add(i), o.push(i));
5319
5337
  return o.slice(-n);
5320
5338
  }
5321
- function Ap(e) {
5339
+ function Ep(e) {
5322
5340
  const { segments: t, now: n, state: r } = e;
5323
5341
  if (r.lastTriggerAt && n - r.lastTriggerAt < ks)
5324
5342
  return { trigger: !1, reason: "too_soon" };
5325
- const o = Ds(t, e.windowMs);
5343
+ const o = $s(t, e.windowMs);
5326
5344
  if (!o.text) return { trigger: !1, reason: "no_speech" };
5327
5345
  const i = o.segmentCount - (r.lastSegmentCount ?? 0);
5328
5346
  if (r.lastQueryTerms && i < ws)
@@ -5330,7 +5348,7 @@ function Ap(e) {
5330
5348
  const s = Ns(o.text);
5331
5349
  return s.length ? r.lastQueryTerms?.length && xs(s, r.lastQueryTerms) < Ms ? { trigger: !1, reason: "same_topic" } : { trigger: !0, text: o.text, terms: s, segmentCount: o.segmentCount } : { trigger: !1, reason: "no_speech" };
5332
5350
  }
5333
- const Ep = [
5351
+ const Sp = [
5334
5352
  "personal",
5335
5353
  "organization",
5336
5354
  "connections",
@@ -5338,7 +5356,7 @@ const Ep = [
5338
5356
  "work",
5339
5357
  "administration",
5340
5358
  "ai"
5341
- ], Sp = "navNotice", Ye = {
5359
+ ], Tp = "navNotice", Ye = {
5342
5360
  // The lower bounds are deliberately generous: service ranges (0800/0900) are
5343
5361
  // shorter than geographic numbers, and a too-strict minimum silently drops them.
5344
5362
  // An over-permissive key is harmless — it simply matches nothing.
@@ -5361,17 +5379,17 @@ const Ep = [
5361
5379
  PL: { callingCode: "48", nsnMin: 9, nsnMax: 9 },
5362
5380
  US: { callingCode: "1", nsnMin: 10, nsnMax: 10 },
5363
5381
  CA: { callingCode: "1", nsnMin: 10, nsnMax: 10 }
5364
- }, $s = "NL", Ls = 15, Ps = 8, Ks = Array.from(
5382
+ }, Rs = "NL", Ls = 15, Ps = 8, Ks = Array.from(
5365
5383
  new Set(Object.values(Ye).map((e) => e.callingCode))
5366
5384
  ).sort((e, t) => t.length - e.length);
5367
- function Rt(e) {
5385
+ function Dt(e) {
5368
5386
  if (e)
5369
5387
  return Ye[e.trim().toUpperCase()];
5370
5388
  }
5371
5389
  function te(e, t) {
5372
5390
  return e.length >= t.nsnMin && e.length <= t.nsnMax;
5373
5391
  }
5374
- function $t(e) {
5392
+ function Rt(e) {
5375
5393
  if (e.length > Ls) return null;
5376
5394
  for (const t of Ks) {
5377
5395
  if (!e.startsWith(t)) continue;
@@ -5392,7 +5410,7 @@ function Us(e) {
5392
5410
  const r = t.indexOf("@");
5393
5411
  return r >= 0 && (t = t.slice(0, r)), t.trim();
5394
5412
  }
5395
- function Tp(e) {
5413
+ function Ip(e) {
5396
5414
  if (!e) return !1;
5397
5415
  const t = e.indexOf("@");
5398
5416
  if (t <= 0) return !1;
@@ -5405,9 +5423,9 @@ function Lt(e, t) {
5405
5423
  if (!n) return null;
5406
5424
  const r = n.startsWith("+"), o = n.replace(/\D/g, "");
5407
5425
  if (!o) return null;
5408
- if (r) return $t(o);
5409
- if (o.startsWith("00")) return $t(o.slice(2));
5410
- const i = Rt(t) ?? Rt($s);
5426
+ if (r) return Rt(o);
5427
+ if (o.startsWith("00")) return Rt(o.slice(2));
5428
+ const i = Dt(t) ?? Dt(Rs);
5411
5429
  if (!i) return null;
5412
5430
  const s = i.trunkPrefix;
5413
5431
  if (s && o.startsWith(s)) {
@@ -5420,7 +5438,7 @@ function Lt(e, t) {
5420
5438
  }
5421
5439
  return !s && te(o, i) ? `+${i.callingCode}${o}` : null;
5422
5440
  }
5423
- function Ip(e, t = 9) {
5441
+ function vp(e, t = 9) {
5424
5442
  const n = (e ?? "").replace(/\D/g, "");
5425
5443
  return n.length < t ? null : n.slice(-t);
5426
5444
  }
@@ -5431,7 +5449,7 @@ function Mn(e) {
5431
5449
  const r = t.slice(0, n).split("+")[0], o = t.slice(n + 1);
5432
5450
  return !r || !o.includes(".") ? null : `${r}@${o}`;
5433
5451
  }
5434
- function vp(e) {
5452
+ function kp(e) {
5435
5453
  const t = Mn(e);
5436
5454
  return t ? t.slice(t.lastIndexOf("@") + 1) : null;
5437
5455
  }
@@ -5497,16 +5515,16 @@ const Bs = /* @__PURE__ */ new Set([
5497
5515
  "proximus.be",
5498
5516
  "scarlet.be"
5499
5517
  ]);
5500
- function kp(e) {
5518
+ function wp(e) {
5501
5519
  const t = js(e);
5502
5520
  return t ? Bs.has(t) : !1;
5503
5521
  }
5504
- function wp(e) {
5522
+ function Mp(e) {
5505
5523
  if (!e) return !1;
5506
5524
  const t = e.trim().toLowerCase();
5507
5525
  return t === "tel" || t === "sms" || t === "whatsapp" || t === "fax";
5508
5526
  }
5509
- function Mp(e, t, n) {
5527
+ function Op(e, t, n) {
5510
5528
  if (!e || !t) return null;
5511
5529
  const r = e.trim().toLowerCase();
5512
5530
  if (r === "tel" || r === "sms" || r === "whatsapp") {
@@ -5556,7 +5574,7 @@ const Ys = /(!\[[^\]]*\]\([^)]*\))/;
5556
5574
  function Kt(e) {
5557
5575
  return e.replace(/\s+/g, " ").trim().split(Ys).map((t, n) => n % 2 === 1 ? t : t.replace(/[[\]]/g, "\\$&")).join("");
5558
5576
  }
5559
- function _e(e) {
5577
+ function Ae(e) {
5560
5578
  return e.replace(
5561
5579
  /[()\s<>"]/g,
5562
5580
  (t) => `%${t.charCodeAt(0).toString(16).toUpperCase().padStart(2, "0")}`
@@ -5565,12 +5583,12 @@ function _e(e) {
5565
5583
  function Xs(e) {
5566
5584
  return e.replace(/<img\b([^>]*?)\/?>/gi, (n, r) => {
5567
5585
  const o = be(r, "src");
5568
- return zs.test(o) ? `![${Kt(be(r, "alt"))}](${_e(o)})` : "";
5586
+ return zs.test(o) ? `![${Kt(be(r, "alt"))}](${Ae(o)})` : "";
5569
5587
  }).replace(
5570
5588
  /<a\b([^>]*)>([\s\S]*?)<\/a\s*>/gi,
5571
5589
  (n, r, o) => {
5572
5590
  const i = Kt(o.replace(/<[^>]*>/g, "")), s = be(r, "href");
5573
- return Vs.test(s) ? `[${i || _e(s)}](${_e(s)})` : i;
5591
+ return Vs.test(s) ? `[${i || Ae(s)}](${Ae(s)})` : i;
5574
5592
  }
5575
5593
  );
5576
5594
  }
@@ -5673,13 +5691,13 @@ function Bt(e) {
5673
5691
  `).trim();
5674
5692
  }
5675
5693
  const ca = /<\s*(html|body|div|p|table|br|span)\b/i;
5676
- function Op(e) {
5694
+ function Cp(e) {
5677
5695
  return ca.test(e);
5678
5696
  }
5679
- function Cp(e) {
5697
+ function Np(e) {
5680
5698
  return On(e, !1);
5681
5699
  }
5682
- function Np(e) {
5700
+ function xp(e) {
5683
5701
  return On(e, !0);
5684
5702
  }
5685
5703
  function On(e, t) {
@@ -5695,15 +5713,15 @@ function On(e, t) {
5695
5713
  }
5696
5714
  export {
5697
5715
  dc as ACTIVE_ASSIGNMENT_STATUSES,
5698
- R as ACTIVITY_CATALOG,
5716
+ D as ACTIVITY_CATALOG,
5699
5717
  ts as AI_ATTACHMENT_LIMITS,
5700
- df as AI_ATTACHMENT_MAX_PER_TURN,
5701
- uf as AI_ATTACHMENT_TURN_BUDGET,
5718
+ ff as AI_ATTACHMENT_MAX_PER_TURN,
5719
+ df as AI_ATTACHMENT_TURN_BUDGET,
5702
5720
  Ue as AI_CAPABILITIES,
5703
- pf as AI_TOOL_PROVIDER_GROUP,
5721
+ mf as AI_TOOL_PROVIDER_GROUP,
5704
5722
  Wt as AI_VENDORS,
5705
5723
  Zn as ALLOWED_LINK_SCHEMES,
5706
- Qf as APP_PERMISSIONS,
5724
+ Jf as APP_PERMISSIONS,
5707
5725
  ol as ARTICLE_SCOPE_KIND,
5708
5726
  at as ARTIFACT_MAX_BLOCKS,
5709
5727
  oc as ARTIFACT_MAX_BODY_BYTES,
@@ -5714,39 +5732,39 @@ export {
5714
5732
  lt as ARTIFACT_MAX_TABLE_ROWS,
5715
5733
  zt as ARTIFACT_MAX_TEXT_LEN,
5716
5734
  lr as ASSIGNMENT_SCOPE_KIND,
5717
- yf as ASSIST_BANDS,
5718
- gf as ASSIST_SOURCE_PROVIDER_GROUP,
5735
+ bf as ASSIST_BANDS,
5736
+ yf as ASSIST_SOURCE_PROVIDER_GROUP,
5719
5737
  Ur as ATTENTION_STATUSES,
5720
- _i as AT_RISK_GAP,
5738
+ Ai as AT_RISK_GAP,
5721
5739
  vn as AUTH_APP_NAME,
5722
5740
  jo as AUTO_READY_MIN_PROPOSALS,
5723
5741
  Bo as AUTO_READY_RATE,
5724
5742
  Fn as ActivityTypeRegistry,
5725
5743
  ka as BUILT_IN_ONLY,
5726
5744
  Fr as BULK_PENALTY,
5727
- _c as BUSINESS_ENTITY_LIST_SERVICE,
5745
+ Ac as BUSINESS_ENTITY_LIST_SERVICE,
5728
5746
  ks as CADENCE_FLOOR_MS,
5729
5747
  ws as CADENCE_MIN_NEW_SEGMENTS,
5730
5748
  Ms as CADENCE_MIN_NOVELTY,
5731
5749
  vs as CADENCE_WINDOW_MS,
5732
5750
  eu as CLASSIFY_VARS,
5733
- dd as CLEARABLE_FIELDS,
5734
- Pf as CONNECTOR_PROVIDER_GROUP,
5735
- Kf as CONTEXT_COLLECT_SERVICE,
5751
+ fd as CLEARABLE_FIELDS,
5752
+ Kf as CONNECTOR_PROVIDER_GROUP,
5753
+ Uf as CONTEXT_COLLECT_SERVICE,
5736
5754
  za as CORE_DIMENSIONS,
5737
5755
  as as CommunicationScheme,
5738
5756
  Cr as DAY_MS,
5739
5757
  gi as DEFAULT_CHECK_IN_DAYS,
5740
5758
  bo as DEFAULT_FORECAST_WEEKS,
5741
5759
  yl as DEFAULT_MEMORY_BUDGET,
5742
- Td as DEFAULT_NUMBER_PADDING,
5743
- $s as DEFAULT_PHONE_REGION,
5744
- yd as DEFAULT_QUOTE_TEMPLATE_BLOCKS,
5745
- gd as DEFAULT_TEMPLATE_CONDITIONS,
5760
+ Id as DEFAULT_NUMBER_PADDING,
5761
+ Rs as DEFAULT_PHONE_REGION,
5762
+ bd as DEFAULT_QUOTE_TEMPLATE_BLOCKS,
5763
+ yd as DEFAULT_TEMPLATE_CONDITIONS,
5746
5764
  Ml as DEMAND_SOURCE_PROVIDER_GROUP,
5747
- Wf as DOCUMENT_APPLY_SERVICE,
5748
- Hf as DOCUMENT_DESCRIBE_SERVICE,
5749
- Gf as DOCUMENT_INSPECT_SERVICE,
5765
+ Vf as DOCUMENT_APPLY_SERVICE,
5766
+ Gf as DOCUMENT_DESCRIBE_SERVICE,
5767
+ Wf as DOCUMENT_INSPECT_SERVICE,
5750
5768
  at as DOCUMENT_MAX_BLOCKS,
5751
5769
  oc as DOCUMENT_MAX_BODY_BYTES,
5752
5770
  Z as DOCUMENT_MAX_CELL_LEN,
@@ -5759,40 +5777,40 @@ export {
5759
5777
  zt as DOCUMENT_MAX_TEXT_LEN,
5760
5778
  pt as DOCUMENT_MAX_TOTALS_ROWS,
5761
5779
  Sn as DOCUMENT_OPERATIONS,
5762
- ud as DRAFT_FIELDS,
5780
+ dd as DRAFT_FIELDS,
5763
5781
  Ni as DUTCH_SLOT_LABELS,
5764
5782
  ru as EMPTY_WORKFLOW,
5765
5783
  bn as ENABLED_TRANSACTION_KINDS,
5766
5784
  Df as FEATURE_FOLDER_MANAGEMENT,
5767
- $f as FEATURE_MESSAGE_REACTIONS,
5785
+ Lf as FEATURE_MESSAGE_REACTIONS,
5768
5786
  Rf as FEATURE_REMOTE_SEARCH,
5769
5787
  Be as FIXED_KINDS,
5770
5788
  ie as FIXED_LEVELS,
5771
5789
  Ve as FIXED_TYPES,
5772
5790
  wc as FIXED_UNITS,
5773
5791
  jr as FOLLOW_UP_HOURS,
5774
- ld as FROZEN_WRITABLE_FIELDS,
5792
+ ud as FROZEN_WRITABLE_FIELDS,
5775
5793
  Or as HOUR_MS,
5776
5794
  ca as HTML_BODY_RE,
5777
5795
  P as INELIGIBLE,
5778
- zf as INSTALLATION_HEADER,
5796
+ Yf as INSTALLATION_HEADER,
5779
5797
  Lo as INTERACTION_KIND,
5780
- Nf as InteractionParticipantRole,
5798
+ xf as InteractionParticipantRole,
5781
5799
  Xr as KB_FALLBACK_LOCALE,
5782
5800
  gt as KB_LOCALES,
5783
5801
  xc as LEAD_STATUSES,
5784
5802
  Nc as LIFECYCLE_STAGES,
5785
5803
  gt as LOCALES,
5786
5804
  ze as LOOSE_STATUSES,
5787
- $r as MAIL_HINT_HEADERS,
5788
- _r as MANUAL_PRICE_SOURCE,
5805
+ Rr as MAIL_HINT_HEADERS,
5806
+ Ar as MANUAL_PRICE_SOURCE,
5789
5807
  fa as MAX_ACTIONS,
5790
5808
  ur as MAX_ASSIGNMENT_TURNS,
5791
5809
  la as MAX_BLOCKS,
5792
5810
  rt as MAX_CHOICE_OPTIONS,
5793
5811
  tn as MAX_COLLECTION_DEPTH,
5794
5812
  dr as MAX_DELEGATION_DEPTH,
5795
- mp as MAX_EDITABLE_FILE_BYTES,
5813
+ hp as MAX_EDITABLE_FILE_BYTES,
5796
5814
  ua as MAX_FIELDS,
5797
5815
  da as MAX_LIST_ITEMS,
5798
5816
  pl as MAX_MEMORY_BROWSE,
@@ -5800,24 +5818,24 @@ export {
5800
5818
  ml as MAX_MEMORY_CHARS,
5801
5819
  Tt as MAX_RULE_DEPTH,
5802
5820
  it as MAX_SCORE_LEVELS,
5803
- Rs as MAX_SHOWN_KEYS,
5821
+ Ds as MAX_SHOWN_KEYS,
5804
5822
  Ii as MAX_TOPIC_CANDIDATES,
5805
5823
  Ti as MAX_TOPIC_EXAMPLES,
5806
5824
  ye as MAX_TOPIC_EXAMPLE_CHARS,
5807
- hp as MAX_VIEWABLE_FILE_BYTES,
5825
+ gp as MAX_VIEWABLE_FILE_BYTES,
5808
5826
  hl as MIN_MEMORY_BUDGET,
5809
5827
  ot as MIN_SCORE_LEVELS,
5810
5828
  H as MODEL_TIERS,
5811
- Sp as NAV_NOTICE_SLOT,
5812
- Od as NL_PAYMENT_TERMS,
5813
- _l as NL_TAX_RATES,
5814
- Xf as NOTIFICATION_SOURCE_PROVIDER_GROUP,
5815
- Ai as OFF_TRACK_GAP,
5829
+ Tp as NAV_NOTICE_SLOT,
5830
+ Cd as NL_PAYMENT_TERMS,
5831
+ Al as NL_TAX_RATES,
5832
+ qf as NOTIFICATION_SOURCE_PROVIDER_GROUP,
5833
+ _i as OFF_TRACK_GAP,
5816
5834
  El as ONBOARDING_SOURCE_PROVIDER_GROUP,
5817
- $e as PAUSE_HOLD,
5818
- De as PAUSE_SNOOZED,
5819
- Re as PAUSE_WAITING_FOR_CUSTOMER,
5820
- kd as PAYMENT_TERM_METHODS,
5835
+ Re as PAUSE_HOLD,
5836
+ $e as PAUSE_SNOOZED,
5837
+ De as PAUSE_WAITING_FOR_CUSTOMER,
5838
+ wd as PAYMENT_TERM_METHODS,
5821
5839
  Ye as PHONE_REGIONS,
5822
5840
  jl as PLAYBOOK_RUN_APPROVAL_ACT,
5823
5841
  No as PLAYBOOK_RUN_SCOPE_KIND,
@@ -5825,40 +5843,40 @@ export {
5825
5843
  ms as PRESENCE_SURVIVES_OFFLINE,
5826
5844
  Ki as PRODUCT_SCOPE_KIND,
5827
5845
  Tl as PROFILE_TOOL_DISPOSITIONS,
5828
- Cf as PROVIDER_FEATURE_MESSAGE_TEMPLATES,
5829
- Of as PROVIDER_FEATURE_MESSAGE_WINDOW,
5846
+ Nf as PROVIDER_FEATURE_MESSAGE_TEMPLATES,
5847
+ Cf as PROVIDER_FEATURE_MESSAGE_WINDOW,
5830
5848
  Bs as PUBLIC_EMAIL_DOMAINS,
5831
5849
  yt as READ_STEP_TYPES,
5832
5850
  Jr as RELATED_SUBJECT_KINDS,
5833
- An as RESERVED_STATUS_KEYS,
5834
- Ld as RESERVED_TYPE_KEYS,
5835
- ip as RESOURCE_ATTACHED_SERVICE,
5836
- np as RESOURCE_DESCRIBE_SERVICE,
5837
- op as RESOURCE_RESOLVE_SERVICE,
5838
- rp as RESOURCE_SEARCH_SERVICE,
5851
+ _n as RESERVED_STATUS_KEYS,
5852
+ Pd as RESERVED_TYPE_KEYS,
5853
+ sp as RESOURCE_ATTACHED_SERVICE,
5854
+ rp as RESOURCE_DESCRIBE_SERVICE,
5855
+ ip as RESOURCE_RESOLVE_SERVICE,
5856
+ op as RESOURCE_SEARCH_SERVICE,
5839
5857
  Io as SCHEDULE_ENTRY_SCOPE_KIND,
5840
5858
  ti as SCHEDULE_EVENT,
5841
- lp as SCOPE_ACTS_ROUTE,
5842
- cp as SCOPE_READ_ROUTE,
5843
- ap as SCOPE_RELATED_ROUTE,
5844
- Rc as SEGMENT_FILTER_KEYS,
5859
+ up as SCOPE_ACTS_ROUTE,
5860
+ lp as SCOPE_READ_ROUTE,
5861
+ cp as SCOPE_RELATED_ROUTE,
5862
+ Dc as SEGMENT_FILTER_KEYS,
5845
5863
  Lc as SEGMENT_LAYOUTS,
5846
5864
  Er as SEGMENT_LIST_FILTERS,
5847
5865
  Sr as SEGMENT_PRESENCE_FILTERS,
5848
- $c as SEGMENT_SORT_FIELDS,
5849
- Ep as SETTINGS_CATEGORIES,
5866
+ Rc as SEGMENT_SORT_FIELDS,
5867
+ Sp as SETTINGS_CATEGORIES,
5850
5868
  Mc as SIGNATURE_INTENTS,
5851
5869
  Mu as SLA_METRICS,
5852
5870
  Ou as SLA_PAUSE_REASONS,
5853
- ad as STATUS_NAMES,
5871
+ cd as STATUS_NAMES,
5854
5872
  Uo as STEP_MAX_TOKENS_MAX,
5855
5873
  Ko as STEP_MAX_TOKENS_MIN,
5856
5874
  nu as STEP_TYPES,
5857
5875
  mi as STRATEGY_ITEM_SCOPE_KIND,
5858
- Rr as SUMMARY_MIN_LAST_CHARS,
5859
- Dr as SUMMARY_MIN_MESSAGES,
5860
- yp as SYNC_RUN_MAX_ERRORS,
5861
- gp as SYNC_TARGET_PROVIDER_GROUP,
5876
+ Dr as SUMMARY_MIN_LAST_CHARS,
5877
+ $r as SUMMARY_MIN_MESSAGES,
5878
+ bp as SYNC_RUN_MAX_ERRORS,
5879
+ yp as SYNC_TARGET_PROVIDER_GROUP,
5862
5880
  Pa as SYSTEM_ONE_NON_GOALS,
5863
5881
  cr as TERMINAL_ASSIGNMENT_STATUSES,
5864
5882
  Ho as TERMINAL_RUN_STATUSES,
@@ -5868,7 +5886,7 @@ export {
5868
5886
  hu as UNARY_OPS,
5869
5887
  to as UNKNOWN_KIND,
5870
5888
  hi as UNKNOWN_LEVEL_ORDER,
5871
- Lf as UNSUPPORTED,
5889
+ Pf as UNSUPPORTED,
5872
5890
  Yn as USAGE_DIMENSIONS,
5873
5891
  Xn as USAGE_DIMENSION_IDS,
5874
5892
  un as UnresolvedRefError,
@@ -5876,20 +5894,20 @@ export {
5876
5894
  vo as WORKSTREAM_SCOPE_KIND,
5877
5895
  Gi as WORK_ACTIVITY_SCOPE_KIND,
5878
5896
  Sl as WORK_AREAS,
5879
- xd as WORK_COMMENT_ADDED,
5880
- jd as WORK_CYCLE_SYNC_KIND,
5897
+ $d as WORK_COMMENT_ADDED,
5898
+ Bd as WORK_CYCLE_SYNC_KIND,
5881
5899
  Dd as WORK_ITEM_ASSIGNED,
5882
5900
  Bi as WORK_ITEM_SCOPE_KIND,
5883
5901
  Rd as WORK_ITEM_STATUS_CHANGED,
5884
5902
  Hi as WORK_PROJECT_SCOPE_KIND,
5885
- sf as WORK_SORT_FIELDS,
5886
- of as WORK_VIEW_FLAGS,
5887
- af as WORK_VIEW_LAYOUTS,
5888
- rf as WORK_VIEW_LIST_FILTERS,
5903
+ af as WORK_SORT_FIELDS,
5904
+ sf as WORK_VIEW_FLAGS,
5905
+ cf as WORK_VIEW_LAYOUTS,
5906
+ of as WORK_VIEW_LIST_FILTERS,
5889
5907
  ne as W_PRIORITY,
5890
- od as acceptExampleCandidate,
5908
+ id as acceptExampleCandidate,
5891
5909
  Oo as actingIdentityKey,
5892
- nd as activeWorkTypes,
5910
+ rd as activeWorkTypes,
5893
5911
  ma as activityIconOf,
5894
5912
  Ia as activityJoinUrl,
5895
5913
  Ln as activitySnippet,
@@ -5898,11 +5916,11 @@ export {
5898
5916
  jn as activityTimestamp,
5899
5917
  v as activityTypeInfo,
5900
5918
  Fl as actorKey,
5901
- rd as addExampleCandidate,
5919
+ od as addExampleCandidate,
5902
5920
  He as addWorkingMs,
5903
- Zf as agePresenceEntry,
5921
+ ep as agePresenceEntry,
5904
5922
  es as aiAttachmentKind,
5905
- ff as aiAttachmentRejection,
5923
+ pf as aiAttachmentRejection,
5906
5924
  st as aiBudgetLimit,
5907
5925
  Ga as aiBudgetPeriodKey,
5908
5926
  Gn as aiBudgetPeriodStart,
@@ -5915,7 +5933,7 @@ export {
5915
5933
  mr as allocate,
5916
5934
  kn as appNameFromPath,
5917
5935
  rc as applyApprovalDecision,
5918
- Qu as applyRounding,
5936
+ Ju as applyRounding,
5919
5937
  Oc as applySignature,
5920
5938
  Fo as approvalRate,
5921
5939
  sc as artifactBodyBytes,
@@ -5926,76 +5944,77 @@ export {
5926
5944
  gc as assignmentSubject,
5927
5945
  wl as availabilityByPerson,
5928
5946
  Il as belongsOnCalendar,
5929
- Ac as belongsToEntity,
5947
+ _c as belongsToEntity,
5948
+ qu as billableTimeGroups,
5930
5949
  mu as bindParams,
5931
5950
  Me as bindValue,
5932
5951
  va as buildActivityPreview,
5933
- If as buildChannelIntents,
5952
+ vf as buildChannelIntents,
5934
5953
  cc as buildShareKeys,
5935
- Ds as buildWindow,
5954
+ $s as buildWindow,
5936
5955
  wr as businessEntitySender,
5937
5956
  ro as calendarDaysBetween,
5938
5957
  Ge as calendarOf,
5939
- fd as canConvert,
5958
+ pd as canConvert,
5940
5959
  al as canNestUnder,
5941
5960
  Ku as canParent,
5942
- cd as canTransition,
5961
+ ld as canTransition,
5943
5962
  Ca as capabilityDefaultFlag,
5944
5963
  vl as capacityTotal,
5945
5964
  Ll as capacityWeights,
5946
- _a as carriesText,
5965
+ Aa as carriesText,
5947
5966
  ll as categoryLabel,
5948
5967
  zi as categoryOf,
5949
- _u as causedBy,
5950
- Mf as channelKindForScheme,
5968
+ Au as causedBy,
5969
+ Of as channelKindForScheme,
5951
5970
  ha as channelKindOf,
5952
5971
  Yu as checkInOverdueMs,
5953
5972
  tu as clampStepMaxTokens,
5954
5973
  Yc as classifyMail,
5955
- Np as cleanMessageMarkdown,
5956
- Cp as cleanMessageText,
5974
+ xp as cleanMessageMarkdown,
5975
+ Np as cleanMessageText,
5957
5976
  Tc as codeQuery,
5958
5977
  _f as compareAssistRank,
5959
5978
  Si as compareWorkTypes,
5960
5979
  kr as conditionHolds,
5961
- Dc as contactName,
5980
+ $c as contactName,
5962
5981
  Ci as copyFrom,
5963
5982
  Y as countsAsPlanned,
5964
5983
  kl as coverageByPerson,
5965
5984
  Cl as coverageFor,
5966
5985
  rn as coversWorkstream,
5967
5986
  ei as cronMatches,
5968
- vd as currentPeriod,
5987
+ kd as currentPeriod,
5969
5988
  on as cycleDayIndex,
5970
- tf as cycleOrder,
5971
- nf as cycleState,
5989
+ nf as cycleOrder,
5990
+ rf as cycleState,
5972
5991
  yc as decideAssignmentState,
5973
- Ap as decideCadence,
5992
+ Ep as decideCadence,
5974
5993
  Za as decideEach,
5975
- Sf as decideIncomingCall,
5994
+ Tf as decideIncomingCall,
5976
5995
  La as decisionBand,
5977
5996
  qr as defaultLocaleOf,
5978
- Xd as defaultStatusKey,
5979
- $i as defaultTemplateBlocks,
5980
- xf as defineIntent,
5997
+ qd as defaultStatusKey,
5998
+ Ri as defaultTemplateBlocks,
5999
+ $f as defineIntent,
5981
6000
  bc as delegationRefusal,
5982
6001
  zr as depthOf,
5983
- Jf as derivePresence,
6002
+ Zf as derivePresence,
5984
6003
  qa as describeClause,
5985
6004
  yu as describeExpression,
5986
- Tf as disabledIntentsFromCapabilities,
6005
+ If as disabledIntentsFromCapabilities,
5987
6006
  sc as documentBodyBytes,
5988
- Vf as documentKindOf,
6007
+ zf as documentKindOf,
5989
6008
  ac as documentOutline,
5990
6009
  ar as documentToMarkdown,
5991
- Bf as documentToText,
6010
+ Hf as documentToText,
5992
6011
  oi as driftedFields,
5993
6012
  xu as dueAtOf,
5994
- wd as dueDateFrom,
5995
- qu as elapsedSeconds,
5996
- vp as emailDomain,
6013
+ Md as dueDateFrom,
6014
+ Qu as elapsedSeconds,
6015
+ kp as emailDomain,
5997
6016
  gu as emptyConditionLeaf,
5998
- Mp as endpointKey,
6017
+ Op as endpointKey,
5999
6018
  Ec as entityOwnerIds,
6000
6019
  ao as erlangC,
6001
6020
  ys as extractParams,
@@ -6004,27 +6023,27 @@ export {
6004
6023
  Tu as fieldVarPath,
6005
6024
  Fc as fillDocument,
6006
6025
  vr as fillText,
6007
- kf as filterByEndpoint,
6008
- vf as filterByIntent,
6026
+ wf as filterByEndpoint,
6027
+ kf as filterByIntent,
6009
6028
  ss as filterByTargetScheme,
6010
6029
  Xa as filterableDimensions,
6011
6030
  oe as findAiVendor,
6012
6031
  Iu as findEvent,
6013
6032
  Fu as fixedLevelForName,
6014
- Ud as fixedTypeForName,
6015
- Fd as fixedTypes,
6016
- Yf as flattenLocales,
6033
+ Fd as fixedTypeForName,
6034
+ jd as fixedTypes,
6035
+ Xf as flattenLocales,
6017
6036
  V as floorToPeriod,
6018
- Dl as forecastIntervals,
6037
+ $l as forecastIntervals,
6019
6038
  Mo as formatActingIdentity,
6020
- $ as formatCents,
6021
- Zu as formatClock,
6022
- Ju as formatHm,
6023
- Hd as formatItemKey,
6039
+ R as formatCents,
6040
+ ed as formatClock,
6041
+ Zu as formatHm,
6042
+ Gd as formatItemKey,
6024
6043
  W as formatPeriod,
6025
- Id as formatSeriesNumber,
6026
- $u as formatSlaDuration,
6027
- hf as freshSources,
6044
+ vd as formatSeriesNumber,
6045
+ Ru as formatSlaDuration,
6046
+ gf as freshSources,
6028
6047
  wa as getActivitySeenUserIds,
6029
6048
  Cc as getContactEndpoints,
6030
6049
  tl as getShortTitle,
@@ -6036,10 +6055,10 @@ export {
6036
6055
  rl as helpCenterText,
6037
6056
  ql as humanizeAction,
6038
6057
  Po as interactionIdOf,
6039
- Cd as isAgentUser,
6058
+ Nd as isAgentUser,
6040
6059
  Jc as isAssigned,
6041
6060
  fc as isAssignmentTerminal,
6042
- Do as isAssignmentTrigger,
6061
+ $o as isAssignmentTrigger,
6043
6062
  Wa as isAssistantMode,
6044
6063
  au as isAutoReady,
6045
6064
  zl as isAutonomy,
@@ -6047,28 +6066,28 @@ export {
6047
6066
  Oa as isChatMessageActivity,
6048
6067
  Zc as isClosed,
6049
6068
  Ea as isConnectedType,
6050
- up as isDeepLink,
6069
+ dp as isDeepLink,
6051
6070
  Yr as isDescendant,
6052
6071
  Gc as isEligible,
6053
6072
  Ma as isEmailActivity,
6054
6073
  Oi as isFrozen,
6055
6074
  Nu as isHeldClock,
6056
- Op as isHtmlBody,
6075
+ Cp as isHtmlBody,
6057
6076
  lu as isInFlight,
6058
6077
  Kr as isInteractionUnseen,
6059
- dp as isLandingPath,
6078
+ fp as isLandingPath,
6060
6079
  xr as isLikelyBulk,
6061
6080
  Ht as isMessageShape,
6062
6081
  ga as isMessageType,
6063
- _s as isMoreSpecificPattern,
6082
+ As as isMoreSpecificPattern,
6064
6083
  Gt as isNoteShape,
6065
6084
  pi as isOpenClock,
6066
6085
  En as isOutwardTool,
6067
6086
  Hr as isParked,
6068
6087
  Go as isPaused,
6069
- Aa as isPlaybookAuthoredType,
6070
- kp as isPublicEmailDomain,
6071
- pp as isPublicPath,
6088
+ _a as isPlaybookAuthoredType,
6089
+ wp as isPublicEmailDomain,
6090
+ mp as isPublicPath,
6072
6091
  Gr as isReminderActive,
6073
6092
  ba as isReplyableType,
6074
6093
  qc as isSlaAtRisk,
@@ -6076,63 +6095,63 @@ export {
6076
6095
  cu as isTerminal,
6077
6096
  Vc as isThreadLongEnough,
6078
6097
  Sa as isTranscriptType,
6079
- Nd as isWebhookEvent,
6080
- qd as isWorkClosed,
6081
- td as isWorkTypeVisible,
6098
+ xd as isWebhookEvent,
6099
+ Qd as isWorkClosed,
6100
+ nd as isWorkTypeVisible,
6082
6101
  wn as isWriteTool,
6083
- Vd as itemDossierKeys,
6084
- Au as judgeRuleCase,
6085
- D as kindFor,
6102
+ zd as itemDossierKeys,
6103
+ _u as judgeRuleCase,
6104
+ $ as kindFor,
6086
6105
  Vi as ladderFor,
6087
6106
  yi as levelIn,
6088
6107
  Pe as levelOrder,
6089
6108
  eo as lineNet,
6090
6109
  nl as linkLabel,
6091
- sd as listedTransactionKinds,
6110
+ ad as listedTransactionKinds,
6092
6111
  Va as listeningAllowed,
6093
6112
  sl as localeInstruction,
6094
6113
  il as localeName,
6095
6114
  cl as localesOf,
6096
- Tp as looksLikeEmail,
6115
+ Ip as looksLikeEmail,
6097
6116
  qt as lookup,
6098
6117
  vc as marginCents,
6099
- jf as markdownToDocument,
6118
+ Bf as markdownToDocument,
6100
6119
  tc as matchApprovalPolicy,
6101
- wf as matchContactToIntents,
6102
- As as matchPublicRoute,
6120
+ Mf as matchContactToIntents,
6121
+ _s as matchPublicRoute,
6103
6122
  ni as matchRules,
6104
6123
  dl as mcpCredentialScope,
6105
6124
  fl as mcpToolPrefix,
6106
6125
  Hu as measureRatio,
6107
6126
  xa as mergeDefaultFlags,
6108
6127
  _p as mergeShownKeys,
6109
- $n as messageCountsAs,
6128
+ Rn as messageCountsAs,
6110
6129
  Qa as metricOption,
6111
6130
  sn as minutesOn,
6112
6131
  vu as missingFieldPaths,
6113
- Da as modelAcceptsAttachment,
6132
+ $a as modelAcceptsAttachment,
6114
6133
  Es as mustAsk,
6115
6134
  Xl as narrowAutonomy,
6116
- wp as needsPhoneRegion,
6135
+ Mp as needsPhoneRegion,
6117
6136
  ya as nestsUnderParent,
6118
6137
  Uu as nextLevelBelow,
6119
- lf as nextOccurrenceDates,
6120
- Du as nextSlaClock,
6138
+ uf as nextOccurrenceDates,
6139
+ $u as nextSlaClock,
6121
6140
  Mi as nextStatuses,
6122
- pd as nextVersion,
6141
+ md as nextVersion,
6123
6142
  ic as normalizeArtifactBlocks,
6124
6143
  pa as normalizeBlocks,
6125
6144
  ic as normalizeDocumentBlocks,
6126
6145
  Mn as normalizeEmail,
6127
6146
  K as normalizeExample,
6128
6147
  fr as normalizeGtin,
6129
- qf as notificationPrefKey,
6148
+ Qf as notificationPrefKey,
6130
6149
  xs as novelty,
6131
- Ff as operationDescriptor,
6132
- Uf as operationsForKind,
6150
+ jf as operationDescriptor,
6151
+ Ff as operationsForKind,
6133
6152
  Su as opsForFieldType,
6134
6153
  jc as organizationSender,
6135
- ef as outcomeOf,
6154
+ tf as outcomeOf,
6136
6155
  fe as overlapSeconds,
6137
6156
  Ol as overlaps,
6138
6157
  Gu as paceRatio,
@@ -6142,36 +6161,36 @@ export {
6142
6161
  Ic as parseAmount,
6143
6162
  ku as parseClockMinutes,
6144
6163
  dn as parseCron,
6145
- Gd as parseItemKey,
6146
- cf as parseRecurrence,
6164
+ Wd as parseItemKey,
6165
+ lf as parseRecurrence,
6147
6166
  gs as pathToRegex,
6148
6167
  cn as patternFor,
6149
6168
  an as patternStartTime,
6150
6169
  wu as pauseBitFor,
6151
6170
  nc as pendingApprovers,
6152
6171
  Ya as periodsInRange,
6153
- Ip as phoneSuffix,
6172
+ vp as phoneSuffix,
6154
6173
  zc as pickMailHeaders,
6155
6174
  Uc as pickTemplate,
6156
6175
  Pl as placeLumps,
6157
- Dn as plainTextFromMarkdown,
6176
+ $n as plainTextFromMarkdown,
6158
6177
  Cu as planSlaEvent,
6159
6178
  Nl as plannedBillable,
6160
6179
  go as plannedWorkTypeKey,
6161
6180
  iu as procedureOf,
6162
- Ad as productHref,
6163
- bd as productScopeKey,
6164
- zd as projectDossierKeys,
6181
+ Ed as productHref,
6182
+ Ad as productScopeKey,
6183
+ Yd as projectDossierKeys,
6165
6184
  ec as proposalRequestIds,
6166
6185
  bs as publicBasePathFor,
6167
- fp as publicRoutePatterns,
6186
+ pp as publicRoutePatterns,
6168
6187
  hc as reactionWakesAssignment,
6169
6188
  Na as readDefaultFlags,
6170
- Ae as readPath,
6189
+ _e as readPath,
6171
6190
  de as readStepError,
6172
6191
  Br as recencyOf,
6173
6192
  Kc as recipientLocale,
6174
- $o as refKey,
6193
+ Ro as refKey,
6175
6194
  js as registrableDomain,
6176
6195
  ki as rejectExampleCandidate,
6177
6196
  bl as relatedByDefault,
@@ -6184,11 +6203,11 @@ export {
6184
6203
  Yl as resolveAutonomy,
6185
6204
  rs as resolveChannelIntents,
6186
6205
  yr as resolvePrice,
6187
- Ra as resolveRoute,
6188
- Ar as resolveSignature,
6206
+ Da as resolveRoute,
6207
+ _r as resolveSignature,
6189
6208
  Hn as resolveTier,
6190
- ep as resolveWorkMode,
6191
- sp as resourceKindOf,
6209
+ tp as resolveWorkMode,
6210
+ ap as resourceKindOf,
6192
6211
  zu as rollupChildren,
6193
6212
  z as roundHalfUp,
6194
6213
  Ul as runActor,
@@ -6200,39 +6219,39 @@ export {
6200
6219
  Eu as runOutcome,
6201
6220
  rr as sanitizeInline,
6202
6221
  Is as sanitizeTranscript,
6203
- Rl as scheduleEntryScopeKey,
6222
+ Dl as scheduleEntryScopeKey,
6204
6223
  Qc as scoreInteraction,
6205
- $d as scoreWorkItem,
6224
+ Ld as scoreWorkItem,
6206
6225
  Pc as segmentIsEmpty,
6207
6226
  ul as selectLenses,
6208
6227
  he as serialize,
6209
6228
  co as serviceLevel,
6210
- Ef as sessionsHoldCannotReach,
6211
- Af as sessionsToHold,
6229
+ Sf as sessionsHoldCannotReach,
6230
+ Ef as sessionsToHold,
6212
6231
  Sc as shadowByKey,
6213
6232
  Xt as shareKeyForTeam,
6214
6233
  Yt as shareKeyForUser,
6215
6234
  lc as shareKeysForViewer,
6216
6235
  xl as shortfalls,
6217
- tp as shouldRunAudioPipeline,
6218
- Ru as slaBadgeTone,
6236
+ np as shouldRunAudioPipeline,
6237
+ Du as slaBadgeTone,
6219
6238
  Xc as slaHoursByInbox,
6220
6239
  Wr as slaHoursFor,
6221
6240
  Yi as sortStatuses,
6222
6241
  ns as sourceKey,
6223
6242
  wo as spreadOverWeights,
6224
- Yd as statusIn,
6225
- Zd as statusRequiresApproval,
6243
+ Xd as statusIn,
6244
+ ef as statusRequiresApproval,
6226
6245
  Qi as stepDate,
6227
6246
  ou as stepsOf,
6228
6247
  Pu as strategyAncestorKeysFor,
6229
6248
  Lu as strategyDossierKeys,
6230
6249
  yn as strategyItemScopeKey,
6231
- Rn as stripHtml,
6250
+ Dn as stripHtml,
6232
6251
  uu as subjectKeyOf,
6233
6252
  ln as subjectOf,
6234
- bf as subjectRef,
6235
- Wd as suggestProjectKey,
6253
+ Af as subjectRef,
6254
+ Vd as suggestProjectKey,
6236
6255
  Wu as suggestedHealth,
6237
6256
  Mr as summariseEval,
6238
6257
  fu as summarizeReactions,
@@ -6243,42 +6262,42 @@ export {
6243
6262
  oo as termsFor,
6244
6263
  Co as toActingIdentity,
6245
6264
  Lt as toE164,
6246
- Md as toTransactionTerm,
6247
- Ro as toolBareName,
6265
+ Od as toTransactionTerm,
6266
+ Do as toolBareName,
6248
6267
  Ql as toolDisplayName,
6249
- mf as toolReversible,
6268
+ hf as toolReversible,
6250
6269
  uc as toolSourceKinds,
6251
- bp as toolVerdict,
6270
+ Ap as toolVerdict,
6252
6271
  wi as topicOfferedForTeam,
6253
- id as topicsForTeam,
6272
+ sd as topicsForTeam,
6254
6273
  lo as trafficIntensity,
6255
- md as transactionContext,
6256
- Sd as transactionDossierKeys,
6274
+ hd as transactionContext,
6275
+ Td as transactionDossierKeys,
6257
6276
  _d as transactionHref,
6258
- Ed as transactionIdFromScope,
6277
+ Sd as transactionIdFromScope,
6259
6278
  O as transactionKind,
6260
6279
  Ui as transactionScopeKey,
6261
- hd as transactionSlots,
6262
- Al as transactionTotals,
6280
+ gd as transactionSlots,
6281
+ _l as transactionTotals,
6263
6282
  Zl as triggerFillsVar,
6264
6283
  vi as truncateExample,
6265
- Kd as typeIn,
6266
- Pd as typesFor,
6267
- Qd as uniqueWorkStatusKey,
6268
- ed as uniqueWorkTypeKey,
6284
+ Ud as typeIn,
6285
+ Kd as typesFor,
6286
+ Jd as uniqueWorkStatusKey,
6287
+ td as uniqueWorkTypeKey,
6269
6288
  qn as usageMetricId,
6270
6289
  Ja as usageMetrics,
6271
- $a as validateQuestions,
6272
- Jd as validateStatuses,
6290
+ Ra as validateQuestions,
6291
+ Zd as validateStatuses,
6273
6292
  xo as valueAtPath,
6274
6293
  je as waitHoursOf,
6275
6294
  mc as wakesAssignment,
6276
- Bd as workActivityScopeKey,
6295
+ Hd as workActivityScopeKey,
6277
6296
  Wi as workItemScopeKey,
6278
- _n as workProjectScopeKey,
6297
+ An as workProjectScopeKey,
6279
6298
  Vu as workRatio,
6280
6299
  Xi as workStatusKey,
6281
6300
  Ei as workTypeKey,
6282
6301
  xe as workingMsBetween,
6283
- $l as workstreamScopeKey
6302
+ Rl as workstreamScopeKey
6284
6303
  };