react-semaphor 0.1.449 → 0.1.454

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.
Files changed (147) hide show
  1. package/dist/analytics-protocol/index.cjs +1 -1
  2. package/dist/analytics-protocol/index.js +119 -112
  3. package/dist/appearance/index.cjs +1 -1
  4. package/dist/appearance/index.js +1 -1
  5. package/dist/brand-studio/index.cjs +4 -4
  6. package/dist/brand-studio/index.js +15 -13
  7. package/dist/briefings/index.cjs +1 -1
  8. package/dist/briefings/index.js +39 -2131
  9. package/dist/chunks/{analyze-result-contract-T-0Ntzys.js → analyze-result-contract-BbRJ-C06.js} +1 -1
  10. package/dist/chunks/{analyze-result-contract-BHb7sUUW.cjs → analyze-result-contract-LPDNldic.cjs} +1 -1
  11. package/dist/chunks/canonical-result-keys-BA0HCP4e.cjs +1 -0
  12. package/dist/chunks/canonical-result-keys-D6avdjpA.js +467 -0
  13. package/dist/chunks/color-CJvdlFM_.js +2162 -0
  14. package/dist/chunks/color-CyB5o13F.cjs +4 -0
  15. package/dist/chunks/{common-types-CQ6SHfLk.cjs → common-types-C57kJ59w.cjs} +1 -1
  16. package/dist/chunks/{common-types-B7Jk3Rtj.js → common-types-H51FLKB7.js} +1 -1
  17. package/dist/chunks/contracts-CoCOpd_i.js +11 -0
  18. package/dist/chunks/contracts-CtB2VONT.cjs +1 -0
  19. package/dist/chunks/dashboard-briefing-launcher-Dwj1i7lr.cjs +26 -0
  20. package/dist/chunks/{dashboard-briefing-launcher-DCHiEkLE.js → dashboard-briefing-launcher-SYroFdae.js} +86 -84
  21. package/dist/chunks/{dashboard-controls-DwRFCcHV.js → dashboard-controls-1LpeU2sz.js} +15 -13
  22. package/dist/chunks/{dashboard-controls-CaFioayc.cjs → dashboard-controls-CpFoh7-A.cjs} +1 -1
  23. package/dist/chunks/dashboard-date-comparison-definition-Ces4alFm.cjs +1 -0
  24. package/dist/chunks/{dashboard-date-comparison-definition-Ba-clViK.js → dashboard-date-comparison-definition-DC3ekV2S.js} +1 -1
  25. package/dist/chunks/{dashboard-json-WoILbfTe.js → dashboard-json-D-T-sQxU.js} +25 -23
  26. package/dist/chunks/dashboard-json-DwSQopc_.cjs +1 -0
  27. package/dist/chunks/edit-dashboard-visual-BEmoQAET.cjs +172 -0
  28. package/dist/chunks/{edit-dashboard-visual-ciFhxqaI.js → edit-dashboard-visual-DqxUq4Bs.js} +6925 -6947
  29. package/dist/chunks/editor-action-buttons-18r2xwei.cjs +16 -0
  30. package/dist/chunks/{editor-action-buttons-BPo_45pM.js → editor-action-buttons-B2l3WIRC.js} +41 -39
  31. package/dist/chunks/format-types-CFHQoIuk.js +1350 -0
  32. package/dist/chunks/format-types-PSZZ7hG8.cjs +1 -0
  33. package/dist/chunks/index-Bn5wlkHt.cjs +4 -0
  34. package/dist/chunks/index-ByFbacH7.cjs +1 -0
  35. package/dist/chunks/index-CACdoqu3.js +318 -0
  36. package/dist/chunks/index-CLB_NGZ8.cjs +1392 -0
  37. package/dist/chunks/index-Ca784dpx.js +3714 -0
  38. package/dist/chunks/{index-CPuawpXJ.js → index-DAoS4BNU.js} +48514 -48484
  39. package/dist/chunks/index-DSKR3nKn.js +421 -0
  40. package/dist/chunks/index-F25jnH0p.cjs +1 -0
  41. package/dist/chunks/matrix-result-contract-CofATICL.js +437 -0
  42. package/dist/chunks/matrix-result-contract-zamd9euI.cjs +1 -0
  43. package/dist/chunks/pivot-header-presentation-DhyQXxKq.cjs +4 -0
  44. package/dist/chunks/pivot-header-presentation-ckYOQ4aZ.js +557 -0
  45. package/dist/chunks/{pivot-result-identity-CDLRT-YG.cjs → pivot-result-identity-Bb4EixVN.cjs} +1 -1
  46. package/dist/chunks/{pivot-result-identity-CwJWpKI7.js → pivot-result-identity-DU1v-5Xk.js} +1 -1
  47. package/dist/chunks/pivot-result-lifecycle-DmcF1ris.cjs +1 -0
  48. package/dist/chunks/pivot-result-lifecycle-sjzIOpvp.js +1641 -0
  49. package/dist/chunks/raw-temporal-contract-BtjH_G-d.cjs +1 -0
  50. package/dist/chunks/raw-temporal-contract-CxncLze5.js +64 -0
  51. package/dist/chunks/report-preferences-dialog-BgSvlDXa.cjs +1 -0
  52. package/dist/chunks/report-preferences-dialog-DDc2WUa0.js +723 -0
  53. package/dist/chunks/{report-runtime-context-C8LZFsqV.cjs → report-runtime-context-DqxS4wbi.cjs} +1 -1
  54. package/dist/chunks/{report-runtime-context-bCy3CVzK.js → report-runtime-context-SM6YO61_.js} +5 -5
  55. package/dist/chunks/saved-temporal-bucket-format-CFfWXRl9.cjs +1 -0
  56. package/dist/chunks/saved-temporal-bucket-format-SGAV0ivR.js +922 -0
  57. package/dist/chunks/{switch-BXet-Sno.js → switch-BeZW-HnS.js} +4350 -5249
  58. package/dist/chunks/switch-D-CCcfhc.cjs +138 -0
  59. package/dist/chunks/temporal-bucket-5UYEotyQ.js +810 -0
  60. package/dist/chunks/temporal-bucket-DHY1y9lq.cjs +1 -0
  61. package/dist/chunks/temporal-bucket-authoring-K1kE6R_z.js +222 -0
  62. package/dist/chunks/temporal-bucket-authoring-o3Emn05L.cjs +1 -0
  63. package/dist/chunks/{temporal-bucket-contract-ChDBWX8I.cjs → temporal-bucket-contract-D2-93DGr.cjs} +1 -1
  64. package/dist/chunks/{temporal-bucket-contract-_F6vNhhH.js → temporal-bucket-contract-D5d-xEl3.js} +1 -1
  65. package/dist/chunks/{token-types-BdQ8kHBm.cjs → token-types-D7CaaI80.cjs} +1 -1
  66. package/dist/chunks/{token-types-BHR58aTy.js → token-types-GbxRUozo.js} +1 -1
  67. package/dist/chunks/{update-policy-BxvYMYz0.cjs → update-policy-BmiOd0PB.cjs} +1 -1
  68. package/dist/chunks/{update-policy-g0rCQ9BM.js → update-policy-hednMF-0.js} +1 -1
  69. package/dist/chunks/validators-BDYprKI9.cjs +1 -0
  70. package/dist/chunks/{validators-Cs74WVie.js → validators-DEmd8Sin.js} +1561 -1197
  71. package/dist/dashboard/index.cjs +1 -1
  72. package/dist/dashboard/index.js +2 -2
  73. package/dist/dashboard-authoring/index.cjs +3 -3
  74. package/dist/dashboard-authoring/index.js +35 -32
  75. package/dist/data-app-builder/index.cjs +1 -1
  76. package/dist/data-app-builder/index.js +2 -2
  77. package/dist/data-app-codegen/index.cjs +1 -1
  78. package/dist/data-app-codegen/index.js +2 -2
  79. package/dist/data-app-codegen-node/index.cjs +1 -1
  80. package/dist/data-app-codegen-node/index.js +3 -3
  81. package/dist/data-app-sdk/index.cjs +1 -1
  82. package/dist/data-app-sdk/index.js +78 -77
  83. package/dist/data-app-sdk-adapters/index.cjs +1 -1
  84. package/dist/data-app-sdk-adapters/index.js +29 -30
  85. package/dist/data-app-sdk-validation/index.cjs +1 -1
  86. package/dist/data-app-sdk-validation/index.js +21 -21
  87. package/dist/format-utils/index.cjs +3 -3
  88. package/dist/format-utils/index.js +156 -140
  89. package/dist/index.cjs +1 -1
  90. package/dist/index.js +157 -155
  91. package/dist/report-runtime-context/index.cjs +1 -1
  92. package/dist/report-runtime-context/index.js +2 -2
  93. package/dist/style.css +1 -1
  94. package/dist/surfboard/index.cjs +1 -1
  95. package/dist/surfboard/index.js +3 -3
  96. package/dist/types/analytics-protocol.d.ts +81 -11
  97. package/dist/types/briefings.d.ts +727 -19
  98. package/dist/types/dashboard-assistant.d.ts +37 -17
  99. package/dist/types/dashboard-authoring.d.ts +61 -14
  100. package/dist/types/dashboard.d.ts +137 -12
  101. package/dist/types/data-app-builder.d.ts +28 -2
  102. package/dist/types/data-app-codegen-node.d.ts +29 -3
  103. package/dist/types/data-app-codegen.d.ts +29 -3
  104. package/dist/types/data-app-sdk-adapters.d.ts +28 -2
  105. package/dist/types/data-app-sdk-validation.d.ts +51 -7
  106. package/dist/types/data-app-sdk.d.ts +55 -10
  107. package/dist/types/format-utils.d.ts +190 -3
  108. package/dist/types/index.cjs +1 -1
  109. package/dist/types/index.js +4 -4
  110. package/dist/types/main.d.ts +128 -33
  111. package/dist/types/shared.d.ts +14 -12
  112. package/dist/types/surfboard.d.ts +138 -13
  113. package/dist/types/types.d.ts +117 -23
  114. package/dist/types/value-format-preferences.d.ts +3 -0
  115. package/package.json +2 -1
  116. package/dist/chunks/card-config-utils-15sRtebL.cjs +0 -1
  117. package/dist/chunks/card-config-utils-BYZ5MJOh.js +0 -16
  118. package/dist/chunks/catalog-field-grounding-Bnx-3tE0.cjs +0 -1
  119. package/dist/chunks/catalog-field-grounding-S2jKwKGD.js +0 -100
  120. package/dist/chunks/dashboard-briefing-launcher-DDgDr2s3.cjs +0 -26
  121. package/dist/chunks/dashboard-date-comparison-definition-DZq0htjG.cjs +0 -1
  122. package/dist/chunks/dashboard-input-contract-DSt8dGzP.js +0 -18
  123. package/dist/chunks/dashboard-input-contract-DV3cshjz.cjs +0 -1
  124. package/dist/chunks/dashboard-json-CYtvwtvj.cjs +0 -1
  125. package/dist/chunks/edit-dashboard-visual-DwKcvlsF.cjs +0 -177
  126. package/dist/chunks/editor-action-buttons-BVmsk0Aj.cjs +0 -16
  127. package/dist/chunks/format-types-CSv0V7mm.cjs +0 -1
  128. package/dist/chunks/format-types-DZGgYj39.js +0 -1663
  129. package/dist/chunks/index-CJdxSyQq.js +0 -2578
  130. package/dist/chunks/index-DPv8_Ild.cjs +0 -1395
  131. package/dist/chunks/index-DRlMUglg.cjs +0 -4
  132. package/dist/chunks/metric-comparison-97zHGEx5.js +0 -387
  133. package/dist/chunks/metric-comparison-CUAJ8n4y.cjs +0 -1
  134. package/dist/chunks/pivot-result-lifecycle-BBabQ_da.js +0 -914
  135. package/dist/chunks/pivot-result-lifecycle-DPc0ANwk.cjs +0 -4
  136. package/dist/chunks/presentation-execution-BLfPTGX_.js +0 -637
  137. package/dist/chunks/presentation-execution-BTV-Q43g.cjs +0 -1
  138. package/dist/chunks/report-preferences-dialog-D9ZCGh9l.js +0 -691
  139. package/dist/chunks/report-preferences-dialog-DaqTEcac.cjs +0 -1
  140. package/dist/chunks/switch-Cjk6G06r.cjs +0 -138
  141. package/dist/chunks/temporal-bucket-BnPxGrAi.js +0 -446
  142. package/dist/chunks/temporal-bucket-authoring-CPTwHzvs.cjs +0 -1
  143. package/dist/chunks/temporal-bucket-authoring-CgOuakGW.js +0 -205
  144. package/dist/chunks/temporal-bucket-pMnV-4Nj.cjs +0 -1
  145. package/dist/chunks/temporal-result-owner-6peubmhU.js +0 -443
  146. package/dist/chunks/temporal-result-owner-f6-i65Fb.cjs +0 -1
  147. package/dist/chunks/validators-9D4KBqKD.cjs +0 -1
@@ -1,11 +1,13 @@
1
1
  import { jsxs as d, jsx as r, Fragment as ce } from "react/jsx-runtime";
2
2
  import m from "react";
3
- import { c as q, P as ge, a as be, B as C, b as fe, U as De, C as Ie, R as me, L as le, S as se, d as Je, T as je, F as Le, G as U, H as $e, I as M, J as _e, K as Ve, M as Ue, N as Me, O as E, Q as K, V as Q, W as ee, X as he, Y as re, Z as oe, _ as ke, $ as xe, a0 as ye, a1 as ve, a2 as Ce, a3 as Ge } from "../chunks/switch-BXet-Sno.js";
4
- import { r as We, v as He, A as Xe, a as Ye, p as Ze } from "../chunks/index-CJdxSyQq.js";
5
- import { c as ae, X as qe } from "../chunks/x-CXDkqdur.js";
6
- import "../chunks/validators-Cs74WVie.js";
7
- import "../chunks/analyze-result-contract-T-0Ntzys.js";
3
+ import { c as q, P as ge, a as be, B as C, b as fe, U as De, C as Ie, R as me, L as le, S as se, d as Je, T as je, F as Le, G as U, H as $e, I as M, J as _e, K as Ve, M as Ue, N as Me, O as E, Q as K, V as Q, W as ee, X as he, Y as re, Z as oe, _ as ke, $ as xe, a0 as ye, a1 as ve, a2 as Ce, a3 as Ge } from "../chunks/switch-BeZW-HnS.js";
4
+ import { A as We, p as He } from "../chunks/color-CJvdlFM_.js";
5
+ import { c as ae, X as Xe } from "../chunks/x-CXDkqdur.js";
6
+ import "../chunks/saved-temporal-bucket-format-SGAV0ivR.js";
7
+ import "../chunks/validators-DEmd8Sin.js";
8
+ import "../chunks/analyze-result-contract-BbRJ-C06.js";
8
9
  import "../value-format-preferences/index.js";
10
+ import { r as Ye, v as Ze, A as qe } from "../chunks/index-DSKR3nKn.js";
9
11
  import { P as G } from "../chunks/palette-Cp1hqZtm.js";
10
12
  import { B as Ke } from "../chunks/braces-8TRlDwDw.js";
11
13
  import { S as Qe } from "../chunks/save-DgMfP0j8.js";
@@ -202,17 +204,17 @@ const ar = ae("Pipette", [
202
204
  }
203
205
  ];
204
206
  function j(e) {
205
- const n = We({
207
+ const n = Ye({
206
208
  organizationAppearance: e ?? void 0
207
209
  });
208
210
  return tr(O(n));
209
211
  }
210
212
  function L(e) {
211
213
  const n = O({
212
- version: Xe,
214
+ version: qe,
213
215
  mode: e.mode,
214
216
  schemes: e.schemes
215
- }), t = He(n);
217
+ }), t = Ze(n);
216
218
  if (!t.success) {
217
219
  const u = t.issues[0];
218
220
  throw new Error(
@@ -436,7 +438,7 @@ const dr = [
436
438
  ["negative", "Negative"],
437
439
  ["warning", "Warning"],
438
440
  ["info", "Info"]
439
- ], ir = [0, 1, 2, 3, 4, 5], H = Ye, cr = [
441
+ ], ir = [0, 1, 2, 3, 4, 5], H = We, cr = [
440
442
  "#ffffff",
441
443
  "#f8fafc",
442
444
  "#f4f4f5",
@@ -450,7 +452,7 @@ const dr = [
450
452
  "#dc2626",
451
453
  "#7c3aed"
452
454
  ];
453
- function Tr({
455
+ function Pr({
454
456
  appearance: e,
455
457
  previewTitle: n,
456
458
  isLoading: t = !1,
@@ -731,7 +733,7 @@ function Tr({
731
733
  "aria-label": "Close Brand Studio",
732
734
  className: "flex h-7 w-7 items-center justify-center rounded-control text-muted-foreground hover:bg-muted hover:text-foreground",
733
735
  onClick: S,
734
- children: /* @__PURE__ */ r(qe, { className: "h-3.5 w-3.5" })
736
+ children: /* @__PURE__ */ r(Xe, { className: "h-3.5 w-3.5" })
735
737
  }
736
738
  )
737
739
  ] }),
@@ -1349,7 +1351,7 @@ function v({
1349
1351
  ] });
1350
1352
  }
1351
1353
  function sr(e) {
1352
- const n = Ze(e);
1354
+ const n = He(e);
1353
1355
  return n ? `#${X(n.r)}${X(n.g)}${X(n.b)}` : "#000000";
1354
1356
  }
1355
1357
  function X(e) {
@@ -1446,7 +1448,7 @@ function gr(e) {
1446
1448
  }
1447
1449
  export {
1448
1450
  Ne as BRAND_STUDIO_PRESETS,
1449
- Tr as BrandStudioEditor,
1451
+ Pr as BrandStudioEditor,
1450
1452
  nr as applyBrandStudioPreset,
1451
1453
  L as buildAppearanceSpecFromDraft,
1452
1454
  j as createBrandStudioDraft,
@@ -1 +1 @@
1
- "use strict";var be=Object.defineProperty;var $e=(t,n,e)=>n in t?be(t,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[n]=e;var Z=(t,n,e)=>$e(t,typeof n!="symbol"?n+"":n,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const R=require("../chunks/presentation-execution-BTV-Q43g.cjs");require("../value-format-preferences/index.cjs");require("../chunks/validators-9D4KBqKD.cjs");require("../chunks/analyze-result-contract-BHb7sUUW.cjs");const Ie=require("../chunks/report-runtime-context-C8LZFsqV.cjs"),Ee=require("../chunks/card-config-utils-15sRtebL.cjs");function Ce(t){return!!t&&typeof t=="object"&&!Array.isArray(t)}function E(t,n,e){return Ce(t)?t:(e.push({field:n,message:"Expected an object."}),{})}function C(t,n,e,r){const o=new Set(e);Object.keys(t).forEach(i=>{o.has(i)||r.push({field:`${n}.${i}`,message:"Unexpected property."})})}function x(t,n,e,r,o={}){if(t==null)return;if(typeof t!="string"){r.push({field:n,message:"Expected a string."});return}const i=o.trim===!1?t:t.trim();if(!o.allowEmpty&&i.length===0){r.push({field:n,message:"Expected a non-empty string."});return}if(i.length>e){r.push({field:n,message:`Expected ${e} characters or fewer.`});return}return i}function V(t,n,e){const r=x(t,n,2e3,e);if(r)try{return new URL(r),r}catch{e.push({field:n,message:"Expected an absolute URL."});return}}function J(t,n,e){const r=E(t,n,e);C(r,n,["tokens","components"],e);const o={};if(r.tokens!==void 0){const i=E(r.tokens,`${n}.tokens`,e);C(i,`${n}.tokens`,["color","typography"],e);const a={};if(i.color!==void 0){const c=E(i.color,`${n}.tokens.color`,e),d=["background","foreground","muted","mutedForeground","border","primary","primaryForeground","positive","negative","warning","info"];C(c,`${n}.tokens.color`,d,e);const s={};d.forEach(f=>{const v=x(c[f],`${n}.tokens.color.${f}`,120,e);v!==void 0&&(s[f]=v)}),a.color=s}if(i.typography!==void 0){const c=E(i.typography,`${n}.tokens.typography`,e);C(c,`${n}.tokens.typography`,["fontFamily","monoFontFamily"],e);const d=x(c.fontFamily,`${n}.tokens.typography.fontFamily`,500,e,{allowEmpty:!0}),s=x(c.monoFontFamily,`${n}.tokens.typography.monoFontFamily`,500,e,{allowEmpty:!0});a.typography={...d!==void 0?{fontFamily:d}:{},...s!==void 0?{monoFontFamily:s}:{}}}o.tokens=a}if(r.components!==void 0){const i=E(r.components,`${n}.components`,e);if(C(i,`${n}.components`,["chart"],e),i.chart!==void 0){const a=E(i.chart,`${n}.components.chart`,e);C(a,`${n}.components.chart`,["palette"],e);let c;a.palette!==void 0&&(Array.isArray(a.palette)?a.palette.length>20?e.push({field:`${n}.components.chart.palette`,message:"Expected 20 colors or fewer."}):c=a.palette.map((d,s)=>x(d,`${n}.components.chart.palette.${s}`,120,e)).filter(d=>d!==void 0):e.push({field:`${n}.components.chart.palette`,message:"Expected an array."})),o.components={chart:c?{palette:c}:{}}}}return o}function Te(t,n){const e="presentation.appearance",r=E(t,e,n);C(r,e,["version","schemes"],n);const o={};if(r.version!==void 0&&(typeof r.version!="number"||!Number.isFinite(r.version)?n.push({field:`${e}.version`,message:"Expected a number."}):o.version=r.version),r.schemes!==void 0){const i=E(r.schemes,`${e}.schemes`,n);C(i,`${e}.schemes`,["light","dark"],n),o.schemes={...i.light!==void 0?{light:J(i.light,`${e}.schemes.light`,n)}:{},...i.dark!==void 0?{dark:J(i.dark,`${e}.schemes.dark`,n)}:{}}}return o}function ke(t,n){const e="presentation.brandOverrides",r=E(t,e,n);C(r,e,["brandName","logoUrl","link"],n);const o=x(r.brandName,`${e}.brandName`,200,n),i=V(r.logoUrl,`${e}.logoUrl`,n),a=x(r.link,`${e}.link`,120,n);return{...o!==void 0?{brandName:o}:{},...i!==void 0?{logoUrl:i}:{},...a!==void 0?{link:a}:{}}}function xe(t,n){const e="presentation.fragments",r=E(t,e,n),o=["preHeaderText","headerBannerHtml","signatureHtml","footerHtml","disclaimerHtml","unsubscribeUrl"];C(r,e,o,n);const i={};return o.forEach(a=>{const c=a==="unsubscribeUrl"?V(r[a],`${e}.${a}`,n):x(r[a],`${e}.${a}`,a==="preHeaderText"?200:5e3,n,{trim:a==="preHeaderText"});c!==void 0&&(i[a]=c)}),i}function Ae(t){const n=[],e={};if(t.appearance!==void 0&&(e.appearance=Te(t.appearance,n)),t.brandOverrides!==void 0&&(e.brandOverrides=ke(t.brandOverrides,n)),t.fragments!==void 0&&(e.fragments=xe(t.fragments,n)),t.viewUrl!==void 0){const r=V(t.viewUrl,"presentation.viewUrl",n);r!==void 0&&(e.viewUrl=r)}return{value:e,issues:n}}const Y=["SUN","MON","TUE","WED","THU","FRI","SAT"],Se=new Map(Y.map((t,n)=>[t,n])),Be={cadence:"weekly",hour:9,minute:0,weekdays:[1]};function we(t){if(typeof t!="string"||t.length===0||t!==t.trim()||/^(?:(?:UTC|GMT)[+-]|[+-]\d{2}:\d{2}$)/.test(t))return!1;try{return new Intl.DateTimeFormat("en-US",{timeZone:t}).format(),!0}catch{return!1}}function Fe(t){return Number.isInteger(t.minute)&&t.minute>=0&&t.minute<=59&&Number.isInteger(t.hour)&&t.hour>=0&&t.hour<=23}function X(t){if(t.length===0)return null;const n=[...t].sort((e,r)=>e-r);return n.some((e,r)=>!Number.isInteger(e)||e<0||e>6||r>0&&e===n[r-1])?null:n}function De(t){if(!Fe(t))throw new Error("Choose a valid schedule time.");const n=`${t.minute} ${t.hour}`;switch(t.cadence){case"daily":return`${n} * * *`;case"weekly":{const e=X(t.weekdays);if(!e)throw new Error("Choose at least one weekday.");return`${n} * * ${e.map(r=>Y[r]).join(",")}`}case"twice_monthly":return`${n} 1,15 * *`;case"monthly":return`${n} 1 * *`}}function Q(t){if(typeof t!="string"||t.length===0)return{ok:!1,issue:"Choose a supported schedule."};if(t!==t.trim()||t.includes(" "))return{ok:!1,issue:"Choose a supported schedule."};const n=t.split(" ");if(n.length!==5)return{ok:!1,issue:"Choose a supported schedule."};const[e,r,o,i,a]=n;if(!/^(0|[1-9]\d?)$/.test(e)||!/^(0|[1-9]\d?)$/.test(r))return{ok:!1,issue:"Choose a supported schedule."};const c=Number(e),d=Number(r);if(c>59||d>23||i!=="*")return{ok:!1,issue:"Choose a supported schedule."};if(o==="*"&&a==="*")return{ok:!0,value:{cadence:"daily",hour:d,minute:c,weekdays:[]}};if(o==="*"&&a!=="*"){const f=a.split(",").map(g=>Se.get(g));if(f.some(g=>g===void 0))return{ok:!1,issue:"Choose a supported schedule."};const v=f,b=X(v);return!b||b.some((g,T)=>g!==v[T])?{ok:!1,issue:"Choose a supported schedule."}:{ok:!0,value:{cadence:"weekly",hour:d,minute:c,weekdays:b}}}return o==="1,15"&&a==="*"?{ok:!0,value:{cadence:"twice_monthly",hour:d,minute:c,weekdays:[]}}:o==="1"&&a==="*"?{ok:!0,value:{cadence:"monthly",hour:d,minute:c,weekdays:[]}}:{ok:!1,issue:"Choose a supported schedule."}}function _e(t,n,e){return new Intl.DateTimeFormat(e,{hour:"numeric",minute:"2-digit",timeZone:"UTC"}).format(new Date(Date.UTC(2020,0,1,t,n)))}function Re(t,n){var e;if(t==="UTC")return"UTC";try{return((e=new Intl.DateTimeFormat(n,{timeZone:t,timeZoneName:"longGeneric"}).formatToParts(new Date(Date.UTC(2020,0,1))).find(o=>o.type==="timeZoneName"))==null?void 0:e.value)??t}catch{return null}}function Ne(t,n,e="en-US"){const r=Q(t);if(!r.ok)return null;try{const o=_e(r.value.hour,r.value.minute,e),i=Re(n,e);if(!i)return null;switch(r.value.cadence){case"daily":return`Daily at ${o} ${i}`;case"weekly":{const a=new Intl.DateTimeFormat(e,{weekday:"long",timeZone:"UTC"});return`${r.value.weekdays.map(d=>a.format(new Date(Date.UTC(2023,0,1+d)))).join(" and ")} at ${o} ${i}`}case"twice_monthly":return`On the 1st and 15th at ${o} ${i}`;case"monthly":return`Monthly on the 1st at ${o} ${i}`}}catch{return null}}const Oe=new Set(["table","aggregateTable","pivotTable","detailTable"]),Le=new Set(["bar","horizontalBar","line","area","stackedArea","combo","pie","doughnut","radar","polarArea","bubble","scatter","stackedBar","stackedLine","table","pivotTable","aggregateTable","matrixTable","detailTable","kpi","pyramid","tornado","range","map","funnel","bullet","heatmap","treemap","custom"]);function ze(t){var r,o,i;const n=Le.has(t.type)&&(t.type!=="custom"||!!((r=t.customCardPreferences)!=null&&r.url));return t.type==="text"||!n||Ee.isCardUnconfigured(t)?{formats:[],defaultFormat:null}:{formats:ee({cardType:t.type,allowDownload:(o=t.preferences)==null?void 0:o.allowDownload}),defaultFormat:te({cardType:t.type,allowDownload:(i=t.preferences)==null?void 0:i.allowDownload})}}function ee(t){return t.allowDownload===!1?["pdf"]:["pdf","csv"]}function te(t){return Oe.has(t.cardType)&&t.allowDownload!==!1?"csv":"pdf"}function Ve(t){return t!=null&&t.role?t.type==="tenant"?t.role==="POWER_USER":["AUTHOR","ADMIN","SUPER_ADMIN"].includes(t.role):!1}function Ue(t){return t.canCreate?[...t.scheduledReportAvailable?["scheduled_report"]:[],...t.analyticalBriefingsEnabled?["analytical_briefing"]:[]]:[]}function ne(t){const n=(t==null?void 0:t.channels)??[];return n.length===1&&n[0]==="EMAIL"}function re(t){return t.body.type==="generated_analysis"?"Analytical briefing":t.body.type==="custom_message"&&t.attachments.length>0&&ne(t.deliveryConfig)?t.scheduleExpr?"Scheduled report":"On-demand report":"Plain briefing"}function Me(t){const n=re(t),e=n==="Scheduled report"||n==="On-demand report"?"report":"briefing";return{typeLabel:n,noun:e,pluralNoun:e==="report"?"reports":"briefings"}}const D="BRIEFING",oe=["markdown","html"],_=["markdown"],w=20,m={name:500,description:2e3,instruction:5e4,customMessage:5e4,contentTitle:500,contentSummary:2e4,contentText:5e3,contentSql:5e4,contentItem:2e3,contentCell:500,attachmentTitle:500,presentationAudience:1e3,presentationTone:500,presentationFormat:2e3,id:500},$={maxBlocks:50,maxTableRows:100,maxTableColumns:20,maxTableCellCharacters:m.contentCell,maxParagraphCharacters:m.contentText,maxFindingCharacters:m.contentText,maxListItems:100,maxKpiTiles:8};function ie(t){if(t===null||typeof t!="object"||Array.isArray(t))return!1;const n=t;if(typeof n.value!="number"||!Number.isFinite(n.value))return!1;const e=n.target;if(e===null||typeof e!="object"||Array.isArray(e))return!1;const r=e;return(r.kind==="metric"&&typeof r.metricId=="string"&&!!r.metricId.trim()||r.kind==="column"&&typeof r.columnKey=="string"&&!!r.columnKey.trim()||r.kind==="matrix_measure"&&typeof r.measureId=="string"&&!!r.measureId.trim())&&R.parseResolvedNumericCanonicalFormat(n.format).ok}function ae(t){return t==null?"":ie(t)?R.formatNumericCanonical(t.value,t.format):String(t)}function Pe(t){return[t.delta,t.percentChange].filter(n=>n!=null).map(ae).filter(Boolean).join(" / ")}const ce=new Set(oe),je=new Set(["EMAIL","WEBHOOK","SLACK","IN_APP","TELEGRAM"]),O={maxToolCalls:{min:1,max:100},maxPlanningIterations:{min:1,max:10},maxRows:{min:1,max:1e5},timeoutMs:{min:1e3,max:30*6e4}},qe=new Set(["letter","legal","a4","a3","tabloid"]),Ke=new Set(["portrait","landscape"]),Ge=new Set([",",";"," "]),He=new Set(["current","all"]),We=new Set(["concise","balanced","detailed"]),Ze=new Set(["info","positive","warning","critical"]),Je=new Set(["text","number","currency","percent","date","boolean"]),Ye=new Set(["left","center","right"]),Xe=["pageSize","orientation","includeFilters","includeTimestamp","delimiter","includeHeaders","useFormattedValues","sheetSelection","currentSheetId","currentSheetName","filterValues","inlineFilterValues","sheetFilterValues","filterLine","controlValues","controlDefinitions","cardControlDefinitions","controlBindings","tablePreferences","dashboardInputExecutionSnapshot","selectedSheetId","cardType","allowDownload","theme"];class B extends Error{constructor(e){super(e.map(r=>`${r.field}: ${r.message}`).join("; "));Z(this,"issues");this.name="BriefingContractError",this.issues=e}}function le(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function l(t,n,e){t.push({field:n,message:e})}function y(t,n,e){return le(t)?t:(l(e,n,"Expected an object."),{})}function u(t,n,e,r){const o=new Set(e);Object.keys(t).forEach(i=>{o.has(i)||l(r,n?`${n}.${i}`:i,`Unexpected field "${i}".`)})}function p(t,n,e,r){if(typeof t!="string")return l(r,n,"Expected a string."),"";const o=t.trim();return o?(o.length>e&&l(r,n,`Must be ${e} characters or fewer.`),o):(l(r,n,"Required value cannot be empty."),"")}function h(t,n,e,r){if(t==null)return;if(typeof t!="string"){l(r,n,"Expected a string.");return}const o=t.trim();if(o)return o.length>e&&l(r,n,`Must be ${e} characters or fewer.`),o}function Qe(t,n,e,r){if(typeof t!="string")return l(r,n,"Expected a string."),"";const o=t.trim();return o.length>e&&l(r,n,`Must be ${e} characters or fewer.`),o}function et(t,n,e){if(t!=null){if(!Number.isInteger(t)||Number(t)<0){l(e,n,"Expected a non-negative integer.");return}return Number(t)}}function I(t,n,e,r={}){if(t==null)return r.required?(l(e,n,"Expected at least one evidence id."),[]):void 0;if(!Array.isArray(t))return l(e,n,"Expected an array."),r.required?[]:void 0;const o=[];return t.forEach((i,a)=>{const c=p(i,`${n}.${a}`,m.id,e);c&&!o.includes(c)&&o.push(c)}),r.required&&o.length===0&&l(e,n,"Expected at least one evidence id."),o.length>0||r.required?o:void 0}function S(t,n,e,r){return t==null?n:typeof t!="boolean"?(l(r,e,"Expected a boolean."),n):t}function tt(t,n){return t==null?"ACTIVE":t==="ACTIVE"||t==="PAUSED"||t==="DISABLED"?t:(l(n,"status","Expected ACTIVE, PAUSED, or DISABLED."),"ACTIVE")}function nt(t){return t.includes("@")&&t.includes(".")&&!t.includes(" ")}function de(t,n){if(t==null)return{type:"project"};const e=y(t,"source",n),r=e.type;return r==="project"?(u(e,"source",["type"],n),{type:"project"}):r==="dashboard"?(u(e,"source",["type","dashboardId"],n),{type:"dashboard",dashboardId:p(e.dashboardId,"source.dashboardId",m.id,n)}):(l(n,"source.type","Expected project or dashboard."),{type:"project"})}function se(t,n){const e=y(t,"body",n),r=e.type;return r==="generated_analysis"?(u(e,"body",["type","instruction"],n),{type:"generated_analysis",instruction:p(e.instruction,"body.instruction",m.instruction,n)}):r==="custom_message"?(u(e,"body",["type","message"],n),{type:"custom_message",message:Qe(e.message,"body.message",m.customMessage,n)}):r==="none"?(u(e,"body",["type"],n),{type:"none"}):(l(n,"body.type","Expected generated_analysis, custom_message, or none."),{type:"none"})}function rt(t,n){if(t==null)return[..._];if(!Array.isArray(t))return l(n,"presentation.artifactFormats","Expected an array."),[..._];if(t.length===0)return l(n,"presentation.artifactFormats","Choose at least one artifact format."),[];const e=[];return t.forEach((r,o)=>{if(typeof r!="string"||!ce.has(r)){l(n,`presentation.artifactFormats.${o}`,"Expected markdown or html.");return}e.includes(r)||e.push(r)}),e}function me(t,n){if(t==null)return{artifactFormats:[..._],includeEvidence:!0,includeSql:!0};const e=y(t,"presentation",n);u(e,"presentation",["artifactFormats","includeEvidence","includeSql","audience","tone","format","appearance","brandOverrides","fragments","viewUrl"],n);const r={artifactFormats:rt(e.artifactFormats,n),includeEvidence:S(e.includeEvidence,!0,"presentation.includeEvidence",n),includeSql:S(e.includeSql,!0,"presentation.includeSql",n)},o=h(e.audience,"presentation.audience",m.presentationAudience,n),i=h(e.tone,"presentation.tone",m.presentationTone,n),a=h(e.format,"presentation.format",m.presentationFormat,n);o&&(r.audience=o),i&&(r.tone=i),a&&(r.format=a);const c=Ae(e);return c.issues.forEach(d=>l(n,d.field,d.message)),Object.assign(r,c.value),r}function ot(t,n,e){return Array.isArray(t)?(t.length===0&&l(e,n,"Expected at least one item."),t.length>$.maxListItems&&l(e,n,`Must have ${$.maxListItems} items or fewer.`),t.slice(0,$.maxListItems).map((r,o)=>p(r,`${n}.${o}`,m.contentItem,e)).filter(Boolean)):(l(e,n,"Expected an array."),[])}function it(t,n,e){const r=y(t,n,e);if(r.kind==="metric")return u(r,n,["kind","metricId"],e),{kind:"metric",metricId:p(r.metricId,`${n}.metricId`,m.id,e)};if(r.kind==="column")return u(r,n,["kind","columnKey"],e),{kind:"column",columnKey:p(r.columnKey,`${n}.columnKey`,m.id,e)};if(r.kind==="matrix_measure")return u(r,n,["kind","measureId"],e),{kind:"matrix_measure",measureId:p(r.measureId,`${n}.measureId`,m.id,e)};l(e,`${n}.kind`,"Expected metric, column, or matrix_measure.")}function fe(t,n,e){if(t===null||typeof t!="object"||Array.isArray(t))return;const r=y(t,n,e);if(!Object.prototype.hasOwnProperty.call(r,"target")&&!Object.prototype.hasOwnProperty.call(r,"format"))return;u(r,n,["value","target","format"],e),(typeof r.value!="number"||!Number.isFinite(r.value))&&l(e,`${n}.value`,"Expected a finite number.");const o=it(r.target,`${n}.target`,e),i=R.parseResolvedNumericCanonicalFormat(r.format);if(i.ok||i.issues.forEach(a=>l(e,a.path==="$"?`${n}.format`:`${n}.format.${a.path}`,a.message)),!(typeof r.value!="number"||!Number.isFinite(r.value)||!o||!i.ok))return{value:r.value,target:o,format:i.value}}function k(t,n,e){if(typeof t=="string")return t;if(typeof t=="number"){if(!Number.isFinite(t)){l(e,n,"Expected a finite number.");return}return t}const r=fe(t,n,e);if(r)return r;l(e,n,"Expected a string, number, or structured numeric value.")}function at(t,n,e){if(t===null||typeof t=="string"||typeof t=="number"||typeof t=="boolean")return typeof t=="string"&&t.length>m.contentCell?(l(e,n,`Must be ${m.contentCell} characters or fewer.`),t.slice(0,m.contentCell)):typeof t=="number"&&!Number.isFinite(t)?(l(e,n,"Expected a finite number."),null):t;const r=fe(t,n,e);return r||(l(e,n,"Expected a string, number, boolean, structured numeric value, or null."),null)}function ct(t,n,e){if(!Array.isArray(t))return l(e,n,"Expected an array."),[];t.length===0&&l(e,n,"Expected at least one column."),t.length>$.maxTableColumns&&l(e,n,`Must have ${$.maxTableColumns} columns or fewer.`);const r=new Set;return t.slice(0,$.maxTableColumns).map((o,i)=>{const a=`${n}.${i}`,c=y(o,a,e);u(c,a,["key","label","kind","align"],e);const d=p(c.key,`${a}.key`,m.id,e);d&&(r.has(d)&&l(e,`${a}.key`,"Column key must be unique."),r.add(d));const s=p(c.label,`${a}.label`,m.contentTitle,e),f=A(c.kind,`${a}.kind`,Je,"text, number, currency, percent, date, or boolean",e),v=A(c.align,`${a}.align`,Ye,"left, center, or right",e);return{key:d,label:s,...f?{kind:f}:{},...v?{align:v}:{}}})}function lt(t,n,e,r){if(!Array.isArray(t))return l(r,n,"Expected an array."),[];t.length>$.maxTableRows&&l(r,n,`Must have ${$.maxTableRows} rows or fewer.`);const o=new Set(e.map(i=>i.key).filter(Boolean));return t.slice(0,$.maxTableRows).map((i,a)=>{const c=`${n}.${a}`,d=y(i,c,r);return Object.keys(d).forEach(s=>{o.has(s)||l(r,`${c}.${s}`,`Unexpected table cell "${s}".`)}),Object.fromEntries(e.map(s=>[s.key,at(d[s.key]??null,`${c}.${s.key}`,r)]))})}function dt(t,n,e){const r=`content.blocks.${n}`,o=y(t,r,e),i=o.type;if(i==="heading"){u(o,r,["type","text","level","evidenceIds"],e);const a=o.level===void 0||o.level===null?void 0:o.level===2||o.level===3?o.level:void 0;o.level!==void 0&&o.level!==null&&a===void 0&&l(e,`${r}.level`,"Expected 2 or 3.");const c=I(o.evidenceIds,`${r}.evidenceIds`,e);return{type:"heading",text:p(o.text,`${r}.text`,m.contentTitle,e),...a?{level:a}:{},...c?{evidenceIds:c}:{}}}if(i==="paragraph"){u(o,r,["type","text","evidenceIds"],e);const a=I(o.evidenceIds,`${r}.evidenceIds`,e);return{type:"paragraph",text:p(o.text,`${r}.text`,m.contentText,e),...a?{evidenceIds:a}:{}}}if(i==="finding"){u(o,r,["type","title","text","severity","evidenceIds"],e);const a=h(o.title,`${r}.title`,m.contentTitle,e),c=A(o.severity,`${r}.severity`,Ze,"info, positive, warning, or critical",e);return{type:"finding",...a?{title:a}:{},text:p(o.text,`${r}.text`,m.contentText,e),...c?{severity:c}:{},evidenceIds:I(o.evidenceIds,`${r}.evidenceIds`,e,{required:!0})??[]}}if(i==="bullets"||i==="actions"||i==="limitations"){u(o,r,["type","title","items","evidenceIds"],e);const a=h(o.title,`${r}.title`,m.contentTitle,e),c=I(o.evidenceIds,`${r}.evidenceIds`,e);return{type:i,...a?{title:a}:{},items:ot(o.items,`${r}.items`,e),...c?{evidenceIds:c}:{}}}if(i==="metric"){u(o,r,["type","label","value","previousValue","delta","percentChange","unit","evidenceIds"],e);const a=k(o.value,`${r}.value`,e)??"";a===""&&l(e,`${r}.value`,"Expected a non-empty string, number, or structured numeric value.");const c=o.previousValue===void 0||o.previousValue===null?o.previousValue:k(o.previousValue,`${r}.previousValue`,e),d=o.delta===void 0||o.delta===null?o.delta:k(o.delta,`${r}.delta`,e),s=o.percentChange===void 0||o.percentChange===null?o.percentChange:k(o.percentChange,`${r}.percentChange`,e),f=h(o.unit,`${r}.unit`,m.contentTitle,e),v=I(o.evidenceIds,`${r}.evidenceIds`,e);return{type:"metric",label:p(o.label,`${r}.label`,m.contentTitle,e),value:a,...c!==void 0?{previousValue:c}:{},...d!==void 0?{delta:d}:{},...s!==void 0?{percentChange:s}:{},...f?{unit:f}:{},...v?{evidenceIds:v}:{}}}if(i==="kpi_grid"){u(o,r,["type","title","tiles","evidenceIds"],e);const a=h(o.title,`${r}.title`,m.contentTitle,e),c=Array.isArray(o.tiles)?o.tiles:[];Array.isArray(o.tiles)||l(e,`${r}.tiles`,"Expected an array."),c.length===0&&l(e,`${r}.tiles`,"Expected at least one tile."),c.length>$.maxKpiTiles&&l(e,`${r}.tiles`,`Must have ${$.maxKpiTiles} tiles or fewer.`);const d=c.slice(0,$.maxKpiTiles).map((f,v)=>{const b=`${r}.tiles.${v}`,g=y(f,b,e);u(g,b,["label","value","previousValue","delta","percentChange","unit","evidenceIds"],e);const T=k(g.value,`${b}.value`,e)??"";T===""&&l(e,`${b}.value`,"Expected a non-empty string, number, or structured numeric value.");const q=g.previousValue===void 0||g.previousValue===null?g.previousValue:k(g.previousValue,`${b}.previousValue`,e),K=g.delta===void 0||g.delta===null?g.delta:k(g.delta,`${b}.delta`,e),G=g.percentChange===void 0||g.percentChange===null?g.percentChange:k(g.percentChange,`${b}.percentChange`,e),H=h(g.unit,`${b}.unit`,m.contentTitle,e),W=I(g.evidenceIds,`${b}.evidenceIds`,e);return{label:p(g.label,`${b}.label`,m.contentTitle,e),value:T,...q!==void 0?{previousValue:q}:{},...K!==void 0?{delta:K}:{},...G!==void 0?{percentChange:G}:{},...H?{unit:H}:{},...W?{evidenceIds:W}:{}}}),s=I(o.evidenceIds,`${r}.evidenceIds`,e);return{type:"kpi_grid",...a?{title:a}:{},tiles:d,...s?{evidenceIds:s}:{}}}if(i==="progress"){u(o,r,["type","label","value","detail","evidenceIds"],e);const a=typeof o.value=="number"&&Number.isFinite(o.value)?o.value:0;(typeof o.value!="number"||!Number.isFinite(o.value))&&l(e,`${r}.value`,"Expected a finite number.");const c=h(o.detail,`${r}.detail`,m.contentText,e),d=I(o.evidenceIds,`${r}.evidenceIds`,e);return{type:"progress",label:p(o.label,`${r}.label`,m.contentTitle,e),value:a,...c?{detail:c}:{},...d?{evidenceIds:d}:{}}}if(i==="table"){u(o,r,["type","id","title","columns","rows","caption","totalRows","evidenceIds"],e);const a=ct(o.columns,`${r}.columns`,e),c=h(o.title,`${r}.title`,m.contentTitle,e),d=h(o.id,`${r}.id`,m.id,e),s=h(o.caption,`${r}.caption`,m.contentItem,e),f=et(o.totalRows,`${r}.totalRows`,e),v=I(o.evidenceIds,`${r}.evidenceIds`,e);return{type:"table",...d?{id:d}:{},...c?{title:c}:{},columns:a,rows:lt(o.rows,`${r}.rows`,a,e),...s?{caption:s}:{},...f!==void 0?{totalRows:f}:{},...v?{evidenceIds:v}:{}}}if(i==="evidence_appendix"){u(o,r,["type","title","evidenceIds"],e);const a=h(o.title,`${r}.title`,m.contentTitle,e);return{type:"evidence_appendix",...a?{title:a}:{},evidenceIds:I(o.evidenceIds,`${r}.evidenceIds`,e,{required:!0})??[]}}if(i==="sql"){u(o,r,["type","title","sql","evidenceIds"],e);const a=h(o.title,`${r}.title`,m.contentTitle,e),c=p(o.sql,`${r}.sql`,m.contentSql,e),d=I(o.evidenceIds,`${r}.evidenceIds`,e);return{type:"sql",...a?{title:a}:{},sql:c,...d?{evidenceIds:d}:{}}}return l(e,`${r}.type`,"Expected heading, paragraph, finding, bullets, metric, kpi_grid, progress, table, actions, limitations, sql, or evidence_appendix."),{type:"paragraph",text:""}}function ue(t){const n=[],e=y(t,"content",n);u(e,"content",["version","title","summary","blocks"],n),e.version!==1&&l(n,"content.version","Expected version 1.");const r=h(e.title,"content.title",m.contentTitle,n),o=h(e.summary,"content.summary",m.contentSummary,n);Array.isArray(e.blocks)||l(n,"content.blocks","Expected an array.");const i=Array.isArray(e.blocks)?e.blocks:[];i.length===0&&l(n,"content.blocks","Expected at least one block."),i.length>$.maxBlocks&&l(n,"content.blocks",`Must have ${$.maxBlocks} blocks or fewer.`);const a=i.slice(0,$.maxBlocks).map((c,d)=>dt(c,d,n));return U(n),{version:1,...r?{title:r}:{},...o?{summary:o}:{},blocks:a}}function st(t){try{return{valid:!0,value:ue(t),issues:[]}}catch(n){if(n instanceof B)return{valid:!1,issues:n.issues};throw n}}function F(t,n,e,r){return typeof t=="string"&&e.includes(t)?t:(l(r,n,`Expected ${e.join(" or ")}.`),e[0])}function A(t,n,e,r,o){if(t!=null){if(typeof t=="string"&&e.has(t))return t;l(o,n,`Expected ${r}.`)}}function mt(t,n,e){if(t!=null){if(!Array.isArray(t)){l(e,n,"Expected an array.");return}return t}}function ft(t,n,e){if(t!=null){if(!le(t)){l(e,n,"Expected an object.");return}return t}}function ut(t,n,e){if(t==null)return;const r=y(t,n,e);u(r,n,Xe,e);const o={},i=A(r.pageSize,`${n}.pageSize`,qe,"letter, legal, a4, a3, or tabloid",e),a=A(r.orientation,`${n}.orientation`,Ke,"portrait or landscape",e),c=A(r.delimiter,`${n}.delimiter`,Ge,"comma, semicolon, or tab",e),d=A(r.sheetSelection,`${n}.sheetSelection`,He,"current or all",e);i&&(o.pageSize=i),a&&(o.orientation=a),c&&(o.delimiter=c),d&&(o.sheetSelection=d);for(const s of["includeFilters","includeTimestamp","includeHeaders","useFormattedValues","allowDownload"])if(!(r[s]===void 0||r[s]===null)){if(typeof r[s]!="boolean"){l(e,`${n}.${s}`,"Expected a boolean.");continue}o[s]=r[s]}for(const s of["currentSheetId","currentSheetName","filterLine","selectedSheetId","cardType","theme"]){const f=h(r[s],`${n}.${s}`,m.id,e);f&&(o[s]=f)}for(const s of["filterValues","inlineFilterValues","sheetFilterValues","controlDefinitions","cardControlDefinitions","controlBindings"]){const f=mt(r[s],`${n}.${s}`,e);f&&(o[s]=f)}for(const s of["controlValues","tablePreferences","dashboardInputExecutionSnapshot"]){const f=ft(r[s],`${n}.${s}`,e);f&&(o[s]=f)}return Object.keys(o).length>0?o:void 0}function L(t,n,e,r){const o=h(n,e,m.attachmentTitle,r);return o&&(t.title=o),t}function z(t,n,e,r){const o=ut(n,e,r);return o&&(t.settings=o),t}function pt(t,n,e){const r=`attachments.${n}`,o=y(t,r,e),i=o.type;if(i==="dashboard"){u(o,r,["type","dashboardId","format","title","settings"],e);const a=L({type:"dashboard",dashboardId:p(o.dashboardId,`${r}.dashboardId`,m.id,e),format:F(o.format,`${r}.format`,["pdf"],e)},o.title,`${r}.title`,e);return z(a,o.settings,`${r}.settings`,e)}if(i==="dashboard_sheet"||i==="document_sheet"){u(o,r,["type","dashboardId","sheetId","format","title","settings"],e);const a=L({type:i,dashboardId:p(o.dashboardId,`${r}.dashboardId`,m.id,e),sheetId:p(o.sheetId,`${r}.sheetId`,m.id,e),format:F(o.format,`${r}.format`,["pdf"],e)},o.title,`${r}.title`,e);return z(a,o.settings,`${r}.settings`,e)}if(i==="card"){u(o,r,["type","dashboardId","cardId","format","title","settings"],e);const a=L({type:"card",dashboardId:p(o.dashboardId,`${r}.dashboardId`,m.id,e),cardId:p(o.cardId,`${r}.cardId`,m.id,e),format:F(o.format,`${r}.format`,["csv","pdf"],e)},o.title,`${r}.title`,e);return z(a,o.settings,`${r}.settings`,e)}return l(e,`${r}.type`,"Expected dashboard, dashboard_sheet, document_sheet, or card."),{type:"dashboard",dashboardId:"",format:"pdf"}}function ht(t){switch(t.type){case"dashboard":return`${t.type}:${t.dashboardId}:${t.format}`;case"dashboard_sheet":case"document_sheet":return`${t.type}:${t.dashboardId}:${t.sheetId}:${t.format}`;case"card":return`${t.type}:${t.dashboardId}:${t.cardId}:${t.format}`}}function pe(t,n){if(t==null)return[];if(!Array.isArray(t))return l(n,"attachments","Expected an array."),[];t.length>w&&l(n,"attachments",`Choose ${w} attachments or fewer.`);const e=t.slice(0,w).map((o,i)=>pt(o,i,n)),r=new Set;return e.forEach((o,i)=>{const a=ht(o);r.has(a)&&l(n,`attachments.${i}`,"Duplicate attachment."),r.add(a)}),e}function he(t,n){if(t==null)return;const e=y(t,"limits",n);u(e,"limits",Object.keys(O),n);const r={};return Object.keys(O).forEach(o=>{const i=e[o];if(i==null)return;const a=O[o];if(typeof i!="number"||!Number.isInteger(i)||i<a.min||i>a.max){l(n,`limits.${o}`,`Expected an integer between ${a.min} and ${a.max}.`);return}r[o]=i}),Object.keys(r).length>0?r:void 0}function U(t){if(t.length>0)throw new B(t)}function ge(t,n,e){!(t.type==="generated_analysis"||t.type==="custom_message"&&!!t.message.trim())&&n.length===0&&l(e,"body","Add briefing instructions, a custom message, or at least one attachment.")}function ye(t,n,e){if(t!==void 0)try{return R.parseResolvedPresentationEntries(t)}catch(r){l(e,n,r instanceof Error?r.message:"Invalid resolved formats.");return}}function ve(t,n,e,r){t==null||t.forEach((o,i)=>{const a=`${e}.${i}.scope`,c=o.scope.attachmentIndex;if(c===void 0){l(r,`${a}.attachmentIndex`,"Expected the index of the attachment that owns this presentation entry.");return}const d=n[c];if(!d){l(r,`${a}.attachmentIndex`,"Expected an index for an existing attachment.");return}o.scope.dashboardId!==d.dashboardId&&l(r,`${a}.dashboardId`,"Expected the dashboard selected by the referenced attachment."),d.type==="card"&&o.scope.cardId!==d.cardId&&l(r,`${a}.cardId`,"Expected the card selected by the referenced attachment.")})}function M(t){const n=[],e=y(t,"jobConfig",n);u(e,"jobConfig",["kind","reportContext","resolvedFormats","source","body","attachments","presentation","limits"],n),e.kind!==D&&l(n,"kind","Expected BRIEFING.");const r=Ie.parseReportRuntimeContext(e.reportContext);r.ok||r.issues.forEach(f=>l(n,f.path==="$"?"jobConfig.reportContext":`jobConfig.reportContext.${f.path}`,f.message));const o=de(e.source,n),i=ye(e.resolvedFormats,"jobConfig.resolvedFormats",n),a=se(e.body,n),c=pe(e.attachments,n),d=me(e.presentation,n),s=he(e.limits,n);return ge(a,c,n),ve(i,c,"jobConfig.resolvedFormats",n),U(n),{kind:D,reportContext:r.ok?r.value:e.reportContext,...i?{resolvedFormats:i}:{},source:o,body:a,attachments:c,presentation:d,...s?{limits:s}:{}}}function gt(t){return M({...t,kind:D})}function P(t,n,e,r="deliveryConfig.recipients"){const o=`${r}.${n}`,i=y(t,o,e),a=i.type;if(a==="email"){u(i,o,["type","address","name"],e);const c=p(i.address,`${o}.address`,m.id,e),d=h(i.name,`${o}.name`,m.attachmentTitle,e);return c&&!nt(c)&&l(e,`${o}.address`,"Email address is invalid."),{type:"email",address:c,...d?{name:d}:{}}}return a==="user"?(u(i,o,["type","userId"],e),{type:"user",userId:p(i.userId,`${o}.userId`,m.id,e)}):a==="tenant_user"?(u(i,o,["type","tenantUserId"],e),{type:"tenant_user",tenantUserId:p(i.tenantUserId,`${o}.tenantUserId`,m.id,e)}):a==="group"?(u(i,o,["type","groupId"],e),{type:"group",groupId:p(i.groupId,`${o}.groupId`,m.id,e)}):(l(e,`${o}.type`,"Expected email, user, tenant_user, or group."),{type:"email",address:""})}function yt(t,n){return t==null?[]:Array.isArray(t)?t.map((e,r)=>P(e,r,n)):(l(n,"deliveryConfig.recipients","Expected an array."),[])}function vt(t,n){if(!Array.isArray(t))return l(n,"deliveryConfig.channels","Expected an array."),[];const e=[];return t.forEach((r,o)=>{if(!j(r)){l(n,`deliveryConfig.channels.${o}`,"Expected EMAIL, WEBHOOK, SLACK, IN_APP, or TELEGRAM.");return}e.includes(r)||e.push(r)}),e}function bt(t,n,e){if(t==null)return;const r=y(t,n,e),o={};return Object.entries(r).forEach(([i,a])=>{if(typeof a!="string"){l(e,`${n}.${i}`,"Expected a string.");return}o[i]=a.trim()}),Object.keys(o).length>0?o:void 0}function $t(t,n,e){if(t==null)return;const r=y(t,n,e);u(r,n,["url","method","headers","secretEncrypted"],e);const o=r.method===void 0||r.method===null?void 0:F(r.method,`${n}.method`,["POST","PUT"],e),i=bt(r.headers,`${n}.headers`,e),a=h(r.secretEncrypted,`${n}.secretEncrypted`,2e3,e);return{url:p(r.url,`${n}.url`,2e3,e),...o?{method:o}:{},...i?{headers:i}:{},...a?{secretEncrypted:a}:{}}}function It(t,n,e){const r=y(t,n,e),o=r.type;if(o==="channel"){u(r,n,["type","channelId","channelName","isPrivate"],e);const i=h(r.channelName,`${n}.channelName`,m.attachmentTitle,e),a=r.isPrivate===void 0||r.isPrivate===null?void 0:S(r.isPrivate,!1,`${n}.isPrivate`,e);return{type:"channel",channelId:p(r.channelId,`${n}.channelId`,m.id,e),...i?{channelName:i}:{},...a!==void 0?{isPrivate:a}:{}}}return o==="dm"?(u(r,n,["type","recipient"],e),l(e,`${n}.type`,"Slack DM delivery is not supported in V1."),{type:"dm",recipient:P(r.recipient,0,e,`${n}.recipient`)}):(l(e,`${n}.type`,"Expected channel."),{type:"channel",channelId:""})}function Et(t,n,e){if(t==null)return;if(!Array.isArray(t)){l(e,n,"Expected an array.");return}const r=t.map((o,i)=>P(o,i,e,n));return r.length>0?r:void 0}function Ct(t,n,e){if(t==null)return;const r=y(t,n,e);u(r,n,["destination","threadMentions","postThreadDetail","includeDashboardLink","includeBriefingLink"],e);const o=Et(r.threadMentions,`${n}.threadMentions`,e),i=S(r.postThreadDetail,!0,`${n}.postThreadDetail`,e),a=S(r.includeDashboardLink,!0,`${n}.includeDashboardLink`,e),c=S(r.includeBriefingLink,!0,`${n}.includeBriefingLink`,e);return{destination:It(r.destination,`${n}.destination`,e),...o?{threadMentions:o}:{},...r.postThreadDetail!==void 0?{postThreadDetail:i}:{},...r.includeDashboardLink!==void 0?{includeDashboardLink:a}:{},...r.includeBriefingLink!==void 0?{includeBriefingLink:c}:{}}}function Tt(t,n,e){const r=y(t,n,e);u(r,n,["subjectOverride","titleOverride","summaryOverride","actionBlockVisible","formatProfile","slackConfig","webhookConfig"],e);const o=A(r.formatProfile,`${n}.formatProfile`,We,"concise, balanced, or detailed",e),i=h(r.subjectOverride,`${n}.subjectOverride`,500,e),a=h(r.titleOverride,`${n}.titleOverride`,500,e),c=h(r.summaryOverride,`${n}.summaryOverride`,2e3,e),d=S(r.actionBlockVisible,!0,`${n}.actionBlockVisible`,e),s=$t(r.webhookConfig,`${n}.webhookConfig`,e),f=Ct(r.slackConfig,`${n}.slackConfig`,e);return{...o?{formatProfile:o}:{},...i?{subjectOverride:i}:{},...a?{titleOverride:a}:{},...c?{summaryOverride:c}:{},...r.actionBlockVisible!==void 0?{actionBlockVisible:d}:{},...f?{slackConfig:f}:{},...s?{webhookConfig:s}:{}}}function kt(t,n){if(t==null)return;const e=y(t,"deliveryConfig.channelConfigs",n),r={};return Object.entries(e).forEach(([o,i])=>{if(!j(o)){l(n,`deliveryConfig.channelConfigs.${o}`,"Expected a supported delivery channel.");return}r[o]=Tt(i,`deliveryConfig.channelConfigs.${o}`,n)}),Object.keys(r).length>0?r:void 0}function xt(t,n){var d,s,f;if(t==null)return null;const e=y(t,"deliveryConfig",n);u(e,"deliveryConfig",["recipients","channels","channelConfigs"],n);const r=kt(e.channelConfigs,n),o=yt(e.recipients,n),i=vt(e.channels,n),a=((s=(d=r==null?void 0:r.SLACK)==null?void 0:d.slackConfig)==null?void 0:s.destination.type)==="channel"&&!!r.SLACK.slackConfig.destination.channelId.trim();return i.some(v=>v!=="SLACK")&&o.length===0&&l(n,"deliveryConfig.recipients","Add at least one recipient or remove delivery config."),i.length===0&&l(n,"deliveryConfig.channels","Choose at least one delivery channel or remove delivery config."),i.includes("SLACK")&&!a&&l(n,"deliveryConfig.channelConfigs.SLACK.slackConfig.destination.channelId","Choose a Slack channel destination."),!i.includes("SLACK")&&((f=r==null?void 0:r.SLACK)!=null&&f.slackConfig)&&l(n,"deliveryConfig.channelConfigs.SLACK","Slack config requires SLACK in deliveryConfig.channels."),{recipients:o,channels:i,...r?{channelConfigs:r}:{}}}function N(t){const n=[],e=y(t,"draft",n);u(e,"draft",["name","description","status","scheduleExpr","timezone","source","body","attachments","presentation","limits","deliveryConfig","resolvedFormats"],n);const r=p(e.name,"name",m.name,n),o=h(e.description,"description",m.description,n)??null,i=h(e.scheduleExpr,"scheduleExpr",500,n)??null,a=h(e.timezone,"timezone",200,n)??"UTC",c=tt(e.status,n),d=de(e.source,n),s=se(e.body,n),f=pe(e.attachments,n),v=me(e.presentation,n),b=he(e.limits,n),g=xt(e.deliveryConfig,n),T=ye(e.resolvedFormats,"resolvedFormats",n);return ge(s,f,n),ve(T,f,"resolvedFormats",n),U(n),{name:r,description:o,status:c,scheduleExpr:i,timezone:a,source:d,body:s,attachments:f,presentation:v,...b?{limits:b}:{},deliveryConfig:g,...T?{resolvedFormats:T}:{}}}function At(t){return N(t)}function St(t){return N(t)}function Bt(t){try{return{valid:!0,value:N(t),issues:[]}}catch(n){if(n instanceof B)return{valid:!1,issues:n.issues};throw n}}function wt(t){try{return{valid:!0,value:M(t),issues:[]}}catch(n){if(n instanceof B)return{valid:!1,issues:n.issues};throw n}}function Ft(t){return typeof t=="string"&&ce.has(t)}function j(t){return typeof t=="string"&&je.has(t)}exports.BRIEFING_ARTIFACT_FORMATS=oe;exports.BRIEFING_CONTENT_LIMITS=$;exports.BRIEFING_KIND=D;exports.BRIEFING_TEXT_LIMITS=m;exports.BriefingContractError=B;exports.DEFAULT_BRIEFING_ARTIFACT_FORMATS=_;exports.DEFAULT_BRIEFING_SCHEDULE=Be;exports.MAX_BRIEFING_ATTACHMENTS=w;exports.buildBriefingJobConfig=gt;exports.buildBriefingScheduleExpr=De;exports.buildCreateBriefingRequest=At;exports.buildUpdateBriefingRequest=St;exports.canCreateBriefingForUser=Ve;exports.describeBriefingSchedule=Ne;exports.formatBriefingComparisonValues=Pe;exports.formatBriefingDisplayValue=ae;exports.getBriefingCardAttachmentCapability=ze;exports.getBriefingCardAttachmentFormats=ee;exports.getBriefingCreationIntents=Ue;exports.getBriefingDisplayTypeLabel=re;exports.getBriefingPresentation=Me;exports.getDefaultBriefingCardAttachmentFormat=te;exports.isBriefingArtifactFormat=Ft;exports.isBriefingDeliveryChannel=j;exports.isBriefingNumericValue=ie;exports.isEmailOnlyBriefingDelivery=ne;exports.isValidBriefingTimezone=we;exports.normalizeBriefingContentDocument=ue;exports.normalizeBriefingDraft=N;exports.normalizeBriefingJobConfig=M;exports.parseBriefingScheduleExpr=Q;exports.validateBriefingContentDocument=st;exports.validateBriefingDraft=Bt;exports.validateBriefingJobConfig=wt;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("../chunks/pivot-result-lifecycle-DmcF1ris.cjs");require("../value-format-preferences/index.cjs");require("../chunks/validators-BDYprKI9.cjs");require("../chunks/analyze-result-contract-LPDNldic.cjs");const e=require("../chunks/index-Bn5wlkHt.cjs");exports.BRIEFING_ARTIFACT_FORMATS=e.BRIEFING_ARTIFACT_FORMATS;exports.BRIEFING_CONTENT_LIMITS=e.BRIEFING_CONTENT_LIMITS;exports.BRIEFING_KIND=e.BRIEFING_KIND;exports.BRIEFING_TEXT_LIMITS=e.BRIEFING_TEXT_LIMITS;exports.BriefingContractError=e.BriefingContractError;exports.DEFAULT_BRIEFING_ARTIFACT_FORMATS=e.DEFAULT_BRIEFING_ARTIFACT_FORMATS;exports.DEFAULT_BRIEFING_SCHEDULE=e.DEFAULT_BRIEFING_SCHEDULE;exports.MAX_BRIEFING_ATTACHMENTS=e.MAX_BRIEFING_ATTACHMENTS;exports.buildBriefingJobConfig=e.buildBriefingJobConfig;exports.buildBriefingScheduleExpr=e.buildBriefingScheduleExpr;exports.buildCreateBriefingRequest=e.buildCreateBriefingRequest;exports.buildDashboardTemporalSnapshotEntries=e.buildDashboardTemporalSnapshotEntries;exports.buildUpdateBriefingRequest=e.buildUpdateBriefingRequest;exports.canCreateBriefingForUser=e.canCreateBriefingForUser;exports.describeBriefingSchedule=e.describeBriefingSchedule;exports.formatBriefingComparisonValues=e.formatBriefingComparisonValues;exports.formatBriefingDisplayValue=e.formatBriefingDisplayValue;exports.getBriefingCardAttachmentCapability=e.getBriefingCardAttachmentCapability;exports.getBriefingCardAttachmentFormats=e.getBriefingCardAttachmentFormats;exports.getBriefingCreationIntents=e.getBriefingCreationIntents;exports.getBriefingDisplayTypeLabel=e.getBriefingDisplayTypeLabel;exports.getBriefingPresentation=e.getBriefingPresentation;exports.getDefaultBriefingCardAttachmentFormat=e.getDefaultBriefingCardAttachmentFormat;exports.isBriefingArtifactFormat=e.isBriefingArtifactFormat;exports.isBriefingDeliveryChannel=e.isBriefingDeliveryChannel;exports.isBriefingNumericValue=e.isBriefingNumericValue;exports.isEmailOnlyBriefingDelivery=e.isEmailOnlyBriefingDelivery;exports.isValidBriefingTimezone=e.isValidBriefingTimezone;exports.normalizeBriefingContentDocument=e.normalizeBriefingContentDocument;exports.normalizeBriefingDraft=e.normalizeBriefingDraft;exports.normalizeBriefingJobConfig=e.normalizeBriefingJobConfig;exports.parseBriefingScheduleExpr=e.parseBriefingScheduleExpr;exports.validateBriefingContentDocument=e.validateBriefingContentDocument;exports.validateBriefingDraft=e.validateBriefingDraft;exports.validateBriefingJobConfig=e.validateBriefingJobConfig;