react-semaphor 0.1.320 → 0.1.321
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/brand-studio/index.cjs +1 -1
- package/dist/brand-studio/index.js +4 -4
- package/dist/briefings/index.cjs +1 -1
- package/dist/briefings/index.js +278 -208
- package/dist/chunks/{braces-NfG5hX2c.js → braces-C7BeIXvM.js} +1 -1
- package/dist/chunks/{braces-CDPz6CF2.js → braces-Cy5NEBa8.js} +1 -1
- package/dist/chunks/{calendar-preferences-dialog-CFXQBJ4A.js → calendar-preferences-dialog-CzoSmQNw.js} +1 -1
- package/dist/chunks/{calendar-preferences-dialog-B7Z8OnuZ.js → calendar-preferences-dialog-D-0W76fR.js} +3 -3
- package/dist/chunks/{chevrons-up-down-DiWloubI.js → chevrons-up-down-Cuilz9aY.js} +1 -1
- package/dist/chunks/{chevrons-up-down-BsdQRmJL.js → chevrons-up-down-DZTs1oVD.js} +1 -1
- package/dist/chunks/{dashboard-briefing-launcher-DjDpGyD7.js → dashboard-briefing-launcher-Cqm8NnVb.js} +8 -8
- package/dist/chunks/{dashboard-briefing-launcher-DB16djcj.js → dashboard-briefing-launcher-D5z1kf6J.js} +932 -910
- package/dist/chunks/{dashboard-controls-DPStW1kd.js → dashboard-controls-CRIwHD59.js} +94 -94
- package/dist/chunks/{dashboard-controls-BisfskDD.js → dashboard-controls-DSt7iwFC.js} +1 -1
- package/dist/chunks/{dashboard-json-C8-kkiyT.js → dashboard-json-BRx9CbrK.js} +2 -2
- package/dist/chunks/{dashboard-json-2nyFJ_-w.js → dashboard-json-ezFjz7Fc.js} +1 -1
- package/dist/chunks/{edit-dashboard-visual-BP77bJFI.js → edit-dashboard-visual-Cw0KmT4i.js} +1 -1
- package/dist/chunks/{edit-dashboard-visual-D6oiTlXr.js → edit-dashboard-visual-sI6ds8MP.js} +616 -616
- package/dist/chunks/{index-Clw0hJzi.js → index-BZg7rVe-.js} +27161 -26641
- package/dist/chunks/{index-D8eouWYC.js → index-DX6Krdga.js} +215 -210
- package/dist/chunks/{palette-BlxLchHy.js → palette-Bc-vOLSt.js} +1 -1
- package/dist/chunks/{palette-CJTdBzJB.js → palette-CanPG11m.js} +1 -1
- package/dist/chunks/resource-management-panel-CRRUcnVu.js +6 -0
- package/dist/chunks/{resource-management-panel-HcRJRZHO.js → resource-management-panel-pN81x7Gw.js} +451 -369
- package/dist/chunks/{save-DVRQBMeb.js → save-CXa6cKaY.js} +1 -1
- package/dist/chunks/{save-B8x5Vi0W.js → save-CqrBQKG6.js} +1 -1
- package/dist/chunks/{switch-DPaKnsb8.js → switch-BXICAlvS.js} +2 -2
- package/dist/chunks/{switch-sauemjyY.js → switch-DdTUsWgd.js} +127 -127
- package/dist/chunks/{use-create-flow-overlay-state-75l5mrVp.js → use-create-flow-overlay-state-B9ujZUon.js} +104 -104
- package/dist/chunks/{use-create-flow-overlay-state-CdCldE6J.js → use-create-flow-overlay-state-BfV5187a.js} +1 -1
- package/dist/chunks/{use-visual-utils-CMdEUnM5.js → use-visual-utils-D_uHFfTn.js} +1 -1
- package/dist/chunks/{use-visual-utils-Bd4Cf9_B.js → use-visual-utils-PxijRlpS.js} +2 -2
- package/dist/dashboard/index.cjs +1 -1
- package/dist/dashboard/index.js +1 -1
- package/dist/dashboard-authoring/index.cjs +3 -0
- package/dist/dashboard-authoring/index.js +532 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +7 -7
- package/dist/style.css +1 -1
- package/dist/surfboard/index.cjs +1 -1
- package/dist/surfboard/index.js +2 -2
- package/dist/types/briefings.d.ts +15 -0
- package/dist/types/dashboard-authoring.d.ts +2703 -0
- package/package.json +6 -1
- package/dist/chunks/resource-management-panel-DTvY5OIq.js +0 -6
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),m=require("react"),d=require("../chunks/switch-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),m=require("react"),d=require("../chunks/switch-BXICAlvS.js"),A=require("../chunks/index-DRlMUglg.js"),V=require("../chunks/palette-CanPG11m.js"),ge=require("../chunks/braces-C7BeIXvM.js"),be=require("../chunks/save-CqrBQKG6.js");/**
|
|
2
2
|
* @license lucide-react v0.453.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
@@ -1,10 +1,10 @@
|
|
|
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 $, a as K, P as ge, b as be, B as C, d as fe, U as De, C as Ie, R as me, f as le, X as Je, S as se, e as je, T as Le, J as $e, K as M, M as _e, N as G, O as Ve, Q as Ue, V as Me, W as Ge, L as E, Y as Q, Z as ee, _ as re, $ as he, a0 as oe, a1 as ae, a2 as xe, a3 as ye, a4 as ke, a5 as ve, a6 as Ce, a7 as We } from "../chunks/switch-
|
|
3
|
+
import { c as $, a as K, P as ge, b as be, B as C, d as fe, U as De, C as Ie, R as me, f as le, X as Je, S as se, e as je, T as Le, J as $e, K as M, M as _e, N as G, O as Ve, Q as Ue, V as Me, W as Ge, L as E, Y as Q, Z as ee, _ as re, $ as he, a0 as oe, a1 as ae, a2 as xe, a3 as ye, a4 as ke, a5 as ve, a6 as Ce, a7 as We } from "../chunks/switch-DdTUsWgd.js";
|
|
4
4
|
import { r as He, v as Ye, A as Xe, a as Ze, p as qe } from "../chunks/index-CJdxSyQq.js";
|
|
5
|
-
import { P as W } from "../chunks/palette-
|
|
6
|
-
import { B as Ke } from "../chunks/braces-
|
|
7
|
-
import { S as Qe } from "../chunks/save-
|
|
5
|
+
import { P as W } from "../chunks/palette-Bc-vOLSt.js";
|
|
6
|
+
import { B as Ke } from "../chunks/braces-Cy5NEBa8.js";
|
|
7
|
+
import { S as Qe } from "../chunks/save-CXa6cKaY.js";
|
|
8
8
|
/**
|
|
9
9
|
* @license lucide-react v0.453.0 - ISC
|
|
10
10
|
*
|
package/dist/briefings/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var J=Object.defineProperty;var X=(n,t,e)=>t in n?J(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e;var z=(n,t,e)=>X(n,typeof t!="symbol"?t+"":t,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const S="BRIEFING",N=["markdown","html"],k=["markdown"],x=20,l={name:500,description:2e3,instruction:5e4,customMessage:5e4,contentTitle:500,contentSummary:2e4,contentText:5e3,contentItem:2e3,contentCell:500,attachmentTitle:500,presentationAudience:1e3,presentationTone:500,presentationFormat:2e3,id:500},g={maxBlocks:50,maxTableRows:100,maxTableColumns:20,maxTableCellCharacters:l.contentCell,maxParagraphCharacters:l.contentText,maxFindingCharacters:l.contentText,maxListItems:100},O=new Set(N),W=new Set(["EMAIL","WEBHOOK","SLACK","IN_APP","TELEGRAM"]),B={maxToolCalls:{min:1,max:100},maxRows:{min:1,max:1e5},timeoutMs:{min:1e3,max:30*6e4}},Y=new Set(["letter","legal","a4","a3","tabloid"]),Z=new Set(["portrait","landscape"]),Q=new Set([",",";"," "]),ee=new Set(["current","all"]),te=new Set(["concise","balanced","detailed"]),ne=new Set(["info","positive","warning","critical"]),re=new Set(["text","number","currency","percent","date","boolean"]),oe=new Set(["left","center","right"]),ie=["pageSize","orientation","includeFilters","includeTimestamp","delimiter","includeHeaders","useFormattedValues","sheetSelection","currentSheetId","currentSheetName","filterValues","inlineFilterValues","sheetFilterValues","filterLine","controlValues","controlDefinitions","cardControlDefinitions","controlBindings","tablePreferences","dashboardInputExecutionSnapshot","selectedSheetId","cardType","theme"];class C extends Error{constructor(e){super(e.map(r=>`${r.field}: ${r.message}`).join("; "));z(this,"issues");this.name="BriefingContractError",this.issues=e}}function V(n){return typeof n=="object"&&n!==null&&!Array.isArray(n)}function c(n,t,e){n.push({field:t,message:e})}function h(n,t,e){return V(n)?n:(c(e,t,"Expected an object."),{})}function s(n,t,e,r){const o=new Set(e);Object.keys(n).forEach(i=>{o.has(i)||c(r,t?`${t}.${i}`:i,`Unexpected field "${i}".`)})}function u(n,t,e,r){if(typeof n!="string")return c(r,t,"Expected a string."),"";const o=n.trim();return o?(o.length>e&&c(r,t,`Must be ${e} characters or fewer.`),o):(c(r,t,"Required value cannot be empty."),"")}function y(n,t,e,r){if(n==null)return;if(typeof n!="string"){c(r,t,"Expected a string.");return}const o=n.trim();if(o)return o.length>e&&c(r,t,`Must be ${e} characters or fewer.`),o}function ae(n,t,e){if(n!=null){if(!Number.isInteger(n)||Number(n)<0){c(e,t,"Expected a non-negative integer.");return}return Number(n)}}function b(n,t,e,r={}){if(n==null)return r.required?(c(e,t,"Expected at least one evidence id."),[]):void 0;if(!Array.isArray(n))return c(e,t,"Expected an array."),r.required?[]:void 0;const o=[];return n.forEach((i,a)=>{const d=u(i,`${t}.${a}`,l.id,e);d&&!o.includes(d)&&o.push(d)}),r.required&&o.length===0&&c(e,t,"Expected at least one evidence id."),o.length>0||r.required?o:void 0}function $(n,t,e,r){return n==null?t:typeof n!="boolean"?(c(r,e,"Expected a boolean."),t):n}function ce(n,t){return n==null?"ACTIVE":n==="ACTIVE"||n==="PAUSED"||n==="DISABLED"?n:(c(t,"status","Expected ACTIVE, PAUSED, or DISABLED."),"ACTIVE")}function de(n){return n.includes("@")&&n.includes(".")&&!n.includes(" ")}function M(n,t){if(n==null)return{type:"project"};const e=h(n,"source",t),r=e.type;return r==="project"?(s(e,"source",["type"],t),{type:"project"}):r==="dashboard"?(s(e,"source",["type","dashboardId"],t),{type:"dashboard",dashboardId:u(e.dashboardId,"source.dashboardId",l.id,t)}):(c(t,"source.type","Expected project or dashboard."),{type:"project"})}function P(n,t){const e=h(n,"body",t),r=e.type;return r==="generated_analysis"?(s(e,"body",["type","instruction"],t),{type:"generated_analysis",instruction:u(e.instruction,"body.instruction",l.instruction,t)}):r==="custom_message"?(s(e,"body",["type","message"],t),{type:"custom_message",message:u(e.message,"body.message",l.customMessage,t)}):r==="none"?(s(e,"body",["type"],t),{type:"none"}):(c(t,"body.type","Expected generated_analysis, custom_message, or none."),{type:"none"})}function le(n,t){if(n==null)return[...k];if(!Array.isArray(n))return c(t,"presentation.artifactFormats","Expected an array."),[...k];if(n.length===0)return c(t,"presentation.artifactFormats","Choose at least one artifact format."),[];const e=[];return n.forEach((r,o)=>{if(typeof r!="string"||!O.has(r)){c(t,`presentation.artifactFormats.${o}`,"Expected markdown or html.");return}e.includes(r)||e.push(r)}),e}function j(n,t){if(n==null)return{artifactFormats:[...k],includeEvidence:!0,includeSql:!0};const e=h(n,"presentation",t);s(e,"presentation",["artifactFormats","includeEvidence","includeSql","audience","tone","format"],t);const r={artifactFormats:le(e.artifactFormats,t),includeEvidence:$(e.includeEvidence,!0,"presentation.includeEvidence",t),includeSql:$(e.includeSql,!0,"presentation.includeSql",t)},o=y(e.audience,"presentation.audience",l.presentationAudience,t),i=y(e.tone,"presentation.tone",l.presentationTone,t),a=y(e.format,"presentation.format",l.presentationFormat,t);return o&&(r.audience=o),i&&(r.tone=i),a&&(r.format=a),r}function fe(n,t,e){return Array.isArray(n)?(n.length===0&&c(e,t,"Expected at least one item."),n.length>g.maxListItems&&c(e,t,`Must have ${g.maxListItems} items or fewer.`),n.slice(0,g.maxListItems).map((r,o)=>u(r,`${t}.${o}`,l.contentItem,e)).filter(Boolean)):(c(e,t,"Expected an array."),[])}function se(n,t,e){return n===null||typeof n=="string"||typeof n=="number"||typeof n=="boolean"?typeof n=="string"&&n.length>l.contentCell?(c(e,t,`Must be ${l.contentCell} characters or fewer.`),n.slice(0,l.contentCell)):typeof n=="number"&&!Number.isFinite(n)?(c(e,t,"Expected a finite number."),null):n:(c(e,t,"Expected a string, number, boolean, or null."),null)}function me(n,t,e){if(!Array.isArray(n))return c(e,t,"Expected an array."),[];n.length===0&&c(e,t,"Expected at least one column."),n.length>g.maxTableColumns&&c(e,t,`Must have ${g.maxTableColumns} columns or fewer.`);const r=new Set;return n.slice(0,g.maxTableColumns).map((o,i)=>{const a=`${t}.${i}`,d=h(o,a,e);s(d,a,["key","label","kind","align"],e);const m=u(d.key,`${a}.key`,l.id,e);m&&(r.has(m)&&c(e,`${a}.key`,"Column key must be unique."),r.add(m));const f=u(d.label,`${a}.label`,l.contentTitle,e),p=v(d.kind,`${a}.kind`,re,"text, number, currency, percent, date, or boolean",e),I=v(d.align,`${a}.align`,oe,"left, center, or right",e);return{key:m,label:f,...p?{kind:p}:{},...I?{align:I}:{}}})}function pe(n,t,e,r){if(!Array.isArray(n))return c(r,t,"Expected an array."),[];n.length>g.maxTableRows&&c(r,t,`Must have ${g.maxTableRows} rows or fewer.`);const o=new Set(e.map(i=>i.key).filter(Boolean));return n.slice(0,g.maxTableRows).map((i,a)=>{const d=`${t}.${a}`,m=h(i,d,r);return Object.keys(m).forEach(f=>{o.has(f)||c(r,`${d}.${f}`,`Unexpected table cell "${f}".`)}),Object.fromEntries(e.map(f=>[f.key,se(m[f.key]??null,`${d}.${f.key}`,r)]))})}function ue(n,t,e){const r=`content.blocks.${t}`,o=h(n,r,e),i=o.type;if(i==="heading"){s(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&&c(e,`${r}.level`,"Expected 2 or 3.");const d=b(o.evidenceIds,`${r}.evidenceIds`,e);return{type:"heading",text:u(o.text,`${r}.text`,l.contentTitle,e),...a?{level:a}:{},...d?{evidenceIds:d}:{}}}if(i==="paragraph"){s(o,r,["type","text","evidenceIds"],e);const a=b(o.evidenceIds,`${r}.evidenceIds`,e);return{type:"paragraph",text:u(o.text,`${r}.text`,l.contentText,e),...a?{evidenceIds:a}:{}}}if(i==="finding"){s(o,r,["type","title","text","severity","evidenceIds"],e);const a=y(o.title,`${r}.title`,l.contentTitle,e),d=v(o.severity,`${r}.severity`,ne,"info, positive, warning, or critical",e);return{type:"finding",...a?{title:a}:{},text:u(o.text,`${r}.text`,l.contentText,e),...d?{severity:d}:{},evidenceIds:b(o.evidenceIds,`${r}.evidenceIds`,e,{required:!0})??[]}}if(i==="bullets"||i==="actions"||i==="limitations"){s(o,r,["type","title","items","evidenceIds"],e);const a=y(o.title,`${r}.title`,l.contentTitle,e),d=b(o.evidenceIds,`${r}.evidenceIds`,e);return{type:i,...a?{title:a}:{},items:fe(o.items,`${r}.items`,e),...d?{evidenceIds:d}:{}}}if(i==="metric"){s(o,r,["type","label","value","previousValue","delta","unit","evidenceIds"],e);const a=typeof o.value=="string"||typeof o.value=="number"?o.value:"";a===""&&c(e,`${r}.value`,"Expected a string or number.");const d=o.previousValue===void 0||o.previousValue===null||typeof o.previousValue=="string"||typeof o.previousValue=="number"?o.previousValue:void 0;o.previousValue!==void 0&&o.previousValue!==null&&d===void 0&&c(e,`${r}.previousValue`,"Expected a string, number, or null.");const m=o.delta===void 0||o.delta===null||typeof o.delta=="string"||typeof o.delta=="number"?o.delta:void 0;o.delta!==void 0&&o.delta!==null&&m===void 0&&c(e,`${r}.delta`,"Expected a string, number, or null.");const f=y(o.unit,`${r}.unit`,l.contentTitle,e),p=b(o.evidenceIds,`${r}.evidenceIds`,e);return{type:"metric",label:u(o.label,`${r}.label`,l.contentTitle,e),value:a,...d!==void 0?{previousValue:d}:{},...m!==void 0?{delta:m}:{},...f?{unit:f}:{},...p?{evidenceIds:p}:{}}}if(i==="table"){s(o,r,["type","id","title","columns","rows","caption","totalRows","evidenceIds"],e);const a=me(o.columns,`${r}.columns`,e),d=y(o.title,`${r}.title`,l.contentTitle,e),m=y(o.id,`${r}.id`,l.id,e),f=y(o.caption,`${r}.caption`,l.contentItem,e),p=ae(o.totalRows,`${r}.totalRows`,e),I=b(o.evidenceIds,`${r}.evidenceIds`,e);return{type:"table",...m?{id:m}:{},...d?{title:d}:{},columns:a,rows:pe(o.rows,`${r}.rows`,a,e),...f?{caption:f}:{},...p!==void 0?{totalRows:p}:{},...I?{evidenceIds:I}:{}}}if(i==="evidence_appendix"){s(o,r,["type","title","evidenceIds"],e);const a=y(o.title,`${r}.title`,l.contentTitle,e);return{type:"evidence_appendix",...a?{title:a}:{},evidenceIds:b(o.evidenceIds,`${r}.evidenceIds`,e,{required:!0})??[]}}return c(e,`${r}.type`,"Expected heading, paragraph, finding, bullets, metric, table, actions, limitations, or evidence_appendix."),{type:"paragraph",text:""}}function q(n){const t=[],e=h(n,"content",t);s(e,"content",["version","title","summary","blocks"],t),e.version!==1&&c(t,"content.version","Expected version 1.");const r=y(e.title,"content.title",l.contentTitle,t),o=y(e.summary,"content.summary",l.contentSummary,t);Array.isArray(e.blocks)||c(t,"content.blocks","Expected an array.");const i=Array.isArray(e.blocks)?e.blocks:[];i.length===0&&c(t,"content.blocks","Expected at least one block."),i.length>g.maxBlocks&&c(t,"content.blocks",`Must have ${g.maxBlocks} blocks or fewer.`);const a=i.slice(0,g.maxBlocks).map((d,m)=>ue(d,m,t));return L(t),{version:1,...r?{title:r}:{},...o?{summary:o}:{},blocks:a}}function ye(n){try{return{valid:!0,value:q(n),issues:[]}}catch(t){if(t instanceof C)return{valid:!1,issues:t.issues};throw t}}function E(n,t,e,r){return typeof n=="string"&&e.includes(n)?n:(c(r,t,`Expected ${e.join(" or ")}.`),e[0])}function v(n,t,e,r,o){if(n!=null){if(typeof n=="string"&&e.has(n))return n;c(o,t,`Expected ${r}.`)}}function he(n,t,e){if(n!=null){if(!Array.isArray(n)){c(e,t,"Expected an array.");return}return n}}function ge(n,t,e){if(n!=null){if(!V(n)){c(e,t,"Expected an object.");return}return n}}function Ie(n,t,e){if(n==null)return;const r=h(n,t,e);s(r,t,ie,e);const o={},i=v(r.pageSize,`${t}.pageSize`,Y,"letter, legal, a4, a3, or tabloid",e),a=v(r.orientation,`${t}.orientation`,Z,"portrait or landscape",e),d=v(r.delimiter,`${t}.delimiter`,Q,"comma, semicolon, or tab",e),m=v(r.sheetSelection,`${t}.sheetSelection`,ee,"current or all",e);i&&(o.pageSize=i),a&&(o.orientation=a),d&&(o.delimiter=d),m&&(o.sheetSelection=m);for(const f of["includeFilters","includeTimestamp","includeHeaders","useFormattedValues"])if(!(r[f]===void 0||r[f]===null)){if(typeof r[f]!="boolean"){c(e,`${t}.${f}`,"Expected a boolean.");continue}o[f]=r[f]}for(const f of["currentSheetId","currentSheetName","filterLine","selectedSheetId","cardType","theme"]){const p=y(r[f],`${t}.${f}`,l.id,e);p&&(o[f]=p)}for(const f of["filterValues","inlineFilterValues","sheetFilterValues","controlDefinitions","cardControlDefinitions","controlBindings"]){const p=he(r[f],`${t}.${f}`,e);p&&(o[f]=p)}for(const f of["controlValues","tablePreferences","dashboardInputExecutionSnapshot"]){const p=ge(r[f],`${t}.${f}`,e);p&&(o[f]=p)}return Object.keys(o).length>0?o:void 0}function T(n,t,e,r){const o=y(t,e,l.attachmentTitle,r);return o&&(n.title=o),n}function A(n,t,e,r){const o=Ie(t,e,r);return o&&(n.settings=o),n}function ve(n,t,e){const r=`attachments.${t}`,o=h(n,r,e),i=o.type;if(i==="dashboard"){s(o,r,["type","dashboardId","format","title","settings"],e);const a=T({type:"dashboard",dashboardId:u(o.dashboardId,`${r}.dashboardId`,l.id,e),format:E(o.format,`${r}.format`,["pdf"],e)},o.title,`${r}.title`,e);return A(a,o.settings,`${r}.settings`,e)}if(i==="dashboard_sheet"||i==="document_sheet"){s(o,r,["type","dashboardId","sheetId","format","title","settings"],e);const a=T({type:i,dashboardId:u(o.dashboardId,`${r}.dashboardId`,l.id,e),sheetId:u(o.sheetId,`${r}.sheetId`,l.id,e),format:E(o.format,`${r}.format`,["pdf"],e)},o.title,`${r}.title`,e);return A(a,o.settings,`${r}.settings`,e)}if(i==="visual"){s(o,r,["type","dashboardId","visualId","format","title","settings"],e);const a=T({type:"visual",dashboardId:u(o.dashboardId,`${r}.dashboardId`,l.id,e),visualId:u(o.visualId,`${r}.visualId`,l.id,e),format:E(o.format,`${r}.format`,["pdf","png"],e)},o.title,`${r}.title`,e);return A(a,o.settings,`${r}.settings`,e)}if(i==="card"){s(o,r,["type","dashboardId","cardId","format","title","settings"],e);const a=T({type:"card",dashboardId:u(o.dashboardId,`${r}.dashboardId`,l.id,e),cardId:u(o.cardId,`${r}.cardId`,l.id,e),format:E(o.format,`${r}.format`,["csv","pdf","png"],e)},o.title,`${r}.title`,e);return A(a,o.settings,`${r}.settings`,e)}return c(e,`${r}.type`,"Expected dashboard, dashboard_sheet, document_sheet, visual, or card."),{type:"dashboard",dashboardId:"",format:"pdf"}}function be(n){switch(n.type){case"dashboard":return`${n.type}:${n.dashboardId}:${n.format}`;case"dashboard_sheet":case"document_sheet":return`${n.type}:${n.dashboardId}:${n.sheetId}:${n.format}`;case"visual":return`${n.type}:${n.dashboardId}:${n.visualId}:${n.format}`;case"card":return`${n.type}:${n.dashboardId}:${n.cardId}:${n.format}`}}function K(n,t){if(n==null)return[];if(!Array.isArray(n))return c(t,"attachments","Expected an array."),[];n.length>x&&c(t,"attachments",`Choose ${x} attachments or fewer.`);const e=n.slice(0,x).map((o,i)=>ve(o,i,t)),r=new Set;return e.forEach((o,i)=>{const a=be(o);r.has(a)&&c(t,`attachments.${i}`,"Duplicate attachment."),r.add(a)}),e}function G(n,t){if(n==null)return;const e=h(n,"limits",t);s(e,"limits",Object.keys(B),t);const r={};return Object.keys(B).forEach(o=>{const i=e[o];if(i==null)return;const a=B[o];if(typeof i!="number"||!Number.isInteger(i)||i<a.min||i>a.max){c(t,`limits.${o}`,`Expected an integer between ${a.min} and ${a.max}.`);return}r[o]=i}),Object.keys(r).length>0?r:void 0}function L(n){if(n.length>0)throw new C(n)}function U(n,t,e){n.type==="none"&&t.length===0&&c(e,"body","Add briefing instructions, a custom message, or at least one attachment.")}function R(n){const t=[],e=h(n,"jobConfig",t);s(e,"jobConfig",["kind","source","body","attachments","presentation","limits"],t),e.kind!==S&&c(t,"kind","Expected BRIEFING.");const r=M(e.source,t),o=P(e.body,t),i=K(e.attachments,t),a=j(e.presentation,t),d=G(e.limits,t);return U(o,i,t),L(t),{kind:S,source:r,body:o,attachments:i,presentation:a,...d?{limits:d}:{}}}function $e(n){return R({...n,kind:S})}function w(n,t,e,r="deliveryConfig.recipients"){const o=`${r}.${t}`,i=h(n,o,e),a=i.type;if(a==="email"){s(i,o,["type","address","name"],e);const d=u(i.address,`${o}.address`,l.id,e),m=y(i.name,`${o}.name`,l.attachmentTitle,e);return d&&!de(d)&&c(e,`${o}.address`,"Email address is invalid."),{type:"email",address:d,...m?{name:m}:{}}}return a==="user"?(s(i,o,["type","userId"],e),{type:"user",userId:u(i.userId,`${o}.userId`,l.id,e)}):a==="tenant_user"?(s(i,o,["type","tenantUserId"],e),{type:"tenant_user",tenantUserId:u(i.tenantUserId,`${o}.tenantUserId`,l.id,e)}):a==="group"?(s(i,o,["type","groupId"],e),{type:"group",groupId:u(i.groupId,`${o}.groupId`,l.id,e)}):(c(e,`${o}.type`,"Expected email, user, tenant_user, or group."),{type:"email",address:""})}function Ee(n,t){return n==null?[]:Array.isArray(n)?n.map((e,r)=>w(e,r,t)):(c(t,"deliveryConfig.recipients","Expected an array."),[])}function Ce(n,t){if(!Array.isArray(n))return c(t,"deliveryConfig.channels","Expected an array."),[];const e=[];return n.forEach((r,o)=>{if(!D(r)){c(t,`deliveryConfig.channels.${o}`,"Expected EMAIL, WEBHOOK, SLACK, IN_APP, or TELEGRAM.");return}e.includes(r)||e.push(r)}),e}function Te(n,t,e){if(n==null)return;const r=h(n,t,e),o={};return Object.entries(r).forEach(([i,a])=>{if(typeof a!="string"){c(e,`${t}.${i}`,"Expected a string.");return}o[i]=a.trim()}),Object.keys(o).length>0?o:void 0}function Ae(n,t,e){if(n==null)return;const r=h(n,t,e);s(r,t,["url","method","headers","secretEncrypted"],e);const o=r.method===void 0||r.method===null?void 0:E(r.method,`${t}.method`,["POST","PUT"],e),i=Te(r.headers,`${t}.headers`,e),a=y(r.secretEncrypted,`${t}.secretEncrypted`,2e3,e);return{url:u(r.url,`${t}.url`,2e3,e),...o?{method:o}:{},...i?{headers:i}:{},...a?{secretEncrypted:a}:{}}}function xe(n,t,e){const r=h(n,t,e),o=r.type;if(o==="channel"){s(r,t,["type","channelId","channelName","isPrivate"],e);const i=y(r.channelName,`${t}.channelName`,l.attachmentTitle,e),a=r.isPrivate===void 0||r.isPrivate===null?void 0:$(r.isPrivate,!1,`${t}.isPrivate`,e);return{type:"channel",channelId:u(r.channelId,`${t}.channelId`,l.id,e),...i?{channelName:i}:{},...a!==void 0?{isPrivate:a}:{}}}return o==="dm"?(s(r,t,["type","recipient"],e),c(e,`${t}.type`,"Slack DM delivery is not supported in V1."),{type:"dm",recipient:w(r.recipient,0,e,`${t}.recipient`)}):(c(e,`${t}.type`,"Expected channel."),{type:"channel",channelId:""})}function Se(n,t,e){if(n==null)return;if(!Array.isArray(n)){c(e,t,"Expected an array.");return}const r=n.map((o,i)=>w(o,i,e,t));return r.length>0?r:void 0}function ke(n,t,e){if(n==null)return;const r=h(n,t,e);s(r,t,["destination","threadMentions","postThreadDetail","includeDashboardLink","includeBriefingLink"],e);const o=Se(r.threadMentions,`${t}.threadMentions`,e),i=$(r.postThreadDetail,!0,`${t}.postThreadDetail`,e),a=$(r.includeDashboardLink,!0,`${t}.includeDashboardLink`,e),d=$(r.includeBriefingLink,!0,`${t}.includeBriefingLink`,e);return{destination:xe(r.destination,`${t}.destination`,e),...o?{threadMentions:o}:{},...r.postThreadDetail!==void 0?{postThreadDetail:i}:{},...r.includeDashboardLink!==void 0?{includeDashboardLink:a}:{},...r.includeBriefingLink!==void 0?{includeBriefingLink:d}:{}}}function _e(n,t,e){const r=h(n,t,e);s(r,t,["subjectOverride","titleOverride","summaryOverride","actionBlockVisible","formatProfile","slackConfig","webhookConfig"],e);const o=v(r.formatProfile,`${t}.formatProfile`,te,"concise, balanced, or detailed",e),i=y(r.subjectOverride,`${t}.subjectOverride`,500,e),a=y(r.titleOverride,`${t}.titleOverride`,500,e),d=y(r.summaryOverride,`${t}.summaryOverride`,2e3,e),m=$(r.actionBlockVisible,!0,`${t}.actionBlockVisible`,e),f=Ae(r.webhookConfig,`${t}.webhookConfig`,e),p=ke(r.slackConfig,`${t}.slackConfig`,e);return{...o?{formatProfile:o}:{},...i?{subjectOverride:i}:{},...a?{titleOverride:a}:{},...d?{summaryOverride:d}:{},...r.actionBlockVisible!==void 0?{actionBlockVisible:m}:{},...p?{slackConfig:p}:{},...f?{webhookConfig:f}:{}}}function Be(n,t){if(n==null)return;const e=h(n,"deliveryConfig.channelConfigs",t),r={};return Object.entries(e).forEach(([o,i])=>{if(!D(o)){c(t,`deliveryConfig.channelConfigs.${o}`,"Expected a supported delivery channel.");return}r[o]=_e(i,`deliveryConfig.channelConfigs.${o}`,t)}),Object.keys(r).length>0?r:void 0}function Le(n,t){var m,f,p;if(n==null)return null;const e=h(n,"deliveryConfig",t);s(e,"deliveryConfig",["recipients","channels","channelConfigs"],t);const r=Be(e.channelConfigs,t),o=Ee(e.recipients,t),i=Ce(e.channels,t),a=((f=(m=r==null?void 0:r.SLACK)==null?void 0:m.slackConfig)==null?void 0:f.destination.type)==="channel"&&!!r.SLACK.slackConfig.destination.channelId.trim();return i.some(I=>I!=="SLACK")&&o.length===0&&c(t,"deliveryConfig.recipients","Add at least one recipient or remove delivery config."),i.length===0&&c(t,"deliveryConfig.channels","Choose at least one delivery channel or remove delivery config."),i.includes("SLACK")&&!a&&c(t,"deliveryConfig.channelConfigs.SLACK.slackConfig.destination.channelId","Choose a Slack channel destination."),!i.includes("SLACK")&&((p=r==null?void 0:r.SLACK)!=null&&p.slackConfig)&&c(t,"deliveryConfig.channelConfigs.SLACK","Slack config requires SLACK in deliveryConfig.channels."),{recipients:o,channels:i,...r?{channelConfigs:r}:{}}}function _(n){const t=[],e=h(n,"draft",t);s(e,"draft",["name","description","status","scheduleExpr","timezone","source","body","attachments","presentation","limits","deliveryConfig"],t);const r=u(e.name,"name",l.name,t),o=y(e.description,"description",l.description,t)??null,i=y(e.scheduleExpr,"scheduleExpr",500,t)??null,a=y(e.timezone,"timezone",200,t)??"UTC",d=ce(e.status,t),m=M(e.source,t),f=P(e.body,t),p=K(e.attachments,t),I=j(e.presentation,t),F=G(e.limits,t),H=Le(e.deliveryConfig,t);return U(f,p,t),L(t),{name:r,description:o,status:d,scheduleExpr:i,timezone:a,source:m,body:f,attachments:p,presentation:I,...F?{limits:F}:{},deliveryConfig:H}}function Re(n){return _(n)}function we(n){return _(n)}function De(n){try{return{valid:!0,value:_(n),issues:[]}}catch(t){if(t instanceof C)return{valid:!1,issues:t.issues};throw t}}function Fe(n){try{return{valid:!0,value:R(n),issues:[]}}catch(t){if(t instanceof C)return{valid:!1,issues:t.issues};throw t}}function ze(n){return typeof n=="string"&&O.has(n)}function D(n){return typeof n=="string"&&W.has(n)}exports.BRIEFING_ARTIFACT_FORMATS=N;exports.BRIEFING_CONTENT_LIMITS=g;exports.BRIEFING_KIND=S;exports.BRIEFING_TEXT_LIMITS=l;exports.BriefingContractError=C;exports.DEFAULT_BRIEFING_ARTIFACT_FORMATS=k;exports.MAX_BRIEFING_ATTACHMENTS=x;exports.buildBriefingJobConfig=$e;exports.buildCreateBriefingRequest=Re;exports.buildUpdateBriefingRequest=we;exports.isBriefingArtifactFormat=ze;exports.isBriefingDeliveryChannel=D;exports.normalizeBriefingContentDocument=q;exports.normalizeBriefingDraft=_;exports.normalizeBriefingJobConfig=R;exports.validateBriefingContentDocument=ye;exports.validateBriefingDraft=De;exports.validateBriefingJobConfig=Fe;
|
|
1
|
+
"use strict";var Q=Object.defineProperty;var ee=(n,t,e)=>t in n?Q(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e;var j=(n,t,e)=>ee(n,typeof t!="symbol"?t+"":t,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const _="BRIEFING",K=["markdown","html"],B=["markdown"],k=20,l={name:500,description:2e3,instruction:5e4,customMessage:5e4,contentTitle:500,contentSummary:2e4,contentText:5e3,contentItem:2e3,contentCell:500,attachmentTitle:500,presentationAudience:1e3,presentationTone:500,presentationFormat:2e3,id:500},g={maxBlocks:50,maxTableRows:100,maxTableColumns:20,maxTableCellCharacters:l.contentCell,maxParagraphCharacters:l.contentText,maxFindingCharacters:l.contentText,maxListItems:100,maxKpiTiles:8},q=new Set(K),te=new Set(["EMAIL","WEBHOOK","SLACK","IN_APP","TELEGRAM"]),D={maxToolCalls:{min:1,max:100},maxRows:{min:1,max:1e5},timeoutMs:{min:1e3,max:30*6e4}},ne=new Set(["letter","legal","a4","a3","tabloid"]),re=new Set(["portrait","landscape"]),oe=new Set([",",";"," "]),ie=new Set(["current","all"]),ae=new Set(["concise","balanced","detailed"]),ce=new Set(["info","positive","warning","critical"]),de=new Set(["text","number","currency","percent","date","boolean"]),le=new Set(["left","center","right"]),fe=["pageSize","orientation","includeFilters","includeTimestamp","delimiter","includeHeaders","useFormattedValues","sheetSelection","currentSheetId","currentSheetName","filterValues","inlineFilterValues","sheetFilterValues","filterLine","controlValues","controlDefinitions","cardControlDefinitions","controlBindings","tablePreferences","dashboardInputExecutionSnapshot","selectedSheetId","cardType","theme"];class x extends Error{constructor(e){super(e.map(r=>`${r.field}: ${r.message}`).join("; "));j(this,"issues");this.name="BriefingContractError",this.issues=e}}function G(n){return typeof n=="object"&&n!==null&&!Array.isArray(n)}function c(n,t,e){n.push({field:t,message:e})}function v(n,t,e){return G(n)?n:(c(e,t,"Expected an object."),{})}function s(n,t,e,r){const o=new Set(e);Object.keys(n).forEach(i=>{o.has(i)||c(r,t?`${t}.${i}`:i,`Unexpected field "${i}".`)})}function p(n,t,e,r){if(typeof n!="string")return c(r,t,"Expected a string."),"";const o=n.trim();return o?(o.length>e&&c(r,t,`Must be ${e} characters or fewer.`),o):(c(r,t,"Required value cannot be empty."),"")}function y(n,t,e,r){if(n==null)return;if(typeof n!="string"){c(r,t,"Expected a string.");return}const o=n.trim();if(o)return o.length>e&&c(r,t,`Must be ${e} characters or fewer.`),o}function se(n,t,e){if(n!=null){if(!Number.isInteger(n)||Number(n)<0){c(e,t,"Expected a non-negative integer.");return}return Number(n)}}function $(n,t,e,r={}){if(n==null)return r.required?(c(e,t,"Expected at least one evidence id."),[]):void 0;if(!Array.isArray(n))return c(e,t,"Expected an array."),r.required?[]:void 0;const o=[];return n.forEach((i,a)=>{const d=p(i,`${t}.${a}`,l.id,e);d&&!o.includes(d)&&o.push(d)}),r.required&&o.length===0&&c(e,t,"Expected at least one evidence id."),o.length>0||r.required?o:void 0}function C(n,t,e,r){return n==null?t:typeof n!="boolean"?(c(r,e,"Expected a boolean."),t):n}function me(n,t){return n==null?"ACTIVE":n==="ACTIVE"||n==="PAUSED"||n==="DISABLED"?n:(c(t,"status","Expected ACTIVE, PAUSED, or DISABLED."),"ACTIVE")}function ue(n){return n.includes("@")&&n.includes(".")&&!n.includes(" ")}function U(n,t){if(n==null)return{type:"project"};const e=v(n,"source",t),r=e.type;return r==="project"?(s(e,"source",["type"],t),{type:"project"}):r==="dashboard"?(s(e,"source",["type","dashboardId"],t),{type:"dashboard",dashboardId:p(e.dashboardId,"source.dashboardId",l.id,t)}):(c(t,"source.type","Expected project or dashboard."),{type:"project"})}function H(n,t){const e=v(n,"body",t),r=e.type;return r==="generated_analysis"?(s(e,"body",["type","instruction"],t),{type:"generated_analysis",instruction:p(e.instruction,"body.instruction",l.instruction,t)}):r==="custom_message"?(s(e,"body",["type","message"],t),{type:"custom_message",message:p(e.message,"body.message",l.customMessage,t)}):r==="none"?(s(e,"body",["type"],t),{type:"none"}):(c(t,"body.type","Expected generated_analysis, custom_message, or none."),{type:"none"})}function pe(n,t){if(n==null)return[...B];if(!Array.isArray(n))return c(t,"presentation.artifactFormats","Expected an array."),[...B];if(n.length===0)return c(t,"presentation.artifactFormats","Choose at least one artifact format."),[];const e=[];return n.forEach((r,o)=>{if(typeof r!="string"||!q.has(r)){c(t,`presentation.artifactFormats.${o}`,"Expected markdown or html.");return}e.includes(r)||e.push(r)}),e}function J(n,t){if(n==null)return{artifactFormats:[...B],includeEvidence:!0,includeSql:!0};const e=v(n,"presentation",t);s(e,"presentation",["artifactFormats","includeEvidence","includeSql","audience","tone","format"],t);const r={artifactFormats:pe(e.artifactFormats,t),includeEvidence:C(e.includeEvidence,!0,"presentation.includeEvidence",t),includeSql:C(e.includeSql,!0,"presentation.includeSql",t)},o=y(e.audience,"presentation.audience",l.presentationAudience,t),i=y(e.tone,"presentation.tone",l.presentationTone,t),a=y(e.format,"presentation.format",l.presentationFormat,t);return o&&(r.audience=o),i&&(r.tone=i),a&&(r.format=a),r}function ye(n,t,e){return Array.isArray(n)?(n.length===0&&c(e,t,"Expected at least one item."),n.length>g.maxListItems&&c(e,t,`Must have ${g.maxListItems} items or fewer.`),n.slice(0,g.maxListItems).map((r,o)=>p(r,`${t}.${o}`,l.contentItem,e)).filter(Boolean)):(c(e,t,"Expected an array."),[])}function he(n,t,e){return n===null||typeof n=="string"||typeof n=="number"||typeof n=="boolean"?typeof n=="string"&&n.length>l.contentCell?(c(e,t,`Must be ${l.contentCell} characters or fewer.`),n.slice(0,l.contentCell)):typeof n=="number"&&!Number.isFinite(n)?(c(e,t,"Expected a finite number."),null):n:(c(e,t,"Expected a string, number, boolean, or null."),null)}function ve(n,t,e){if(!Array.isArray(n))return c(e,t,"Expected an array."),[];n.length===0&&c(e,t,"Expected at least one column."),n.length>g.maxTableColumns&&c(e,t,`Must have ${g.maxTableColumns} columns or fewer.`);const r=new Set;return n.slice(0,g.maxTableColumns).map((o,i)=>{const a=`${t}.${i}`,d=v(o,a,e);s(d,a,["key","label","kind","align"],e);const m=p(d.key,`${a}.key`,l.id,e);m&&(r.has(m)&&c(e,`${a}.key`,"Column key must be unique."),r.add(m));const f=p(d.label,`${a}.label`,l.contentTitle,e),u=E(d.kind,`${a}.kind`,de,"text, number, currency, percent, date, or boolean",e),I=E(d.align,`${a}.align`,le,"left, center, or right",e);return{key:m,label:f,...u?{kind:u}:{},...I?{align:I}:{}}})}function ge(n,t,e,r){if(!Array.isArray(n))return c(r,t,"Expected an array."),[];n.length>g.maxTableRows&&c(r,t,`Must have ${g.maxTableRows} rows or fewer.`);const o=new Set(e.map(i=>i.key).filter(Boolean));return n.slice(0,g.maxTableRows).map((i,a)=>{const d=`${t}.${a}`,m=v(i,d,r);return Object.keys(m).forEach(f=>{o.has(f)||c(r,`${d}.${f}`,`Unexpected table cell "${f}".`)}),Object.fromEntries(e.map(f=>[f.key,he(m[f.key]??null,`${d}.${f.key}`,r)]))})}function Ie(n,t,e){const r=`content.blocks.${t}`,o=v(n,r,e),i=o.type;if(i==="heading"){s(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&&c(e,`${r}.level`,"Expected 2 or 3.");const d=$(o.evidenceIds,`${r}.evidenceIds`,e);return{type:"heading",text:p(o.text,`${r}.text`,l.contentTitle,e),...a?{level:a}:{},...d?{evidenceIds:d}:{}}}if(i==="paragraph"){s(o,r,["type","text","evidenceIds"],e);const a=$(o.evidenceIds,`${r}.evidenceIds`,e);return{type:"paragraph",text:p(o.text,`${r}.text`,l.contentText,e),...a?{evidenceIds:a}:{}}}if(i==="finding"){s(o,r,["type","title","text","severity","evidenceIds"],e);const a=y(o.title,`${r}.title`,l.contentTitle,e),d=E(o.severity,`${r}.severity`,ce,"info, positive, warning, or critical",e);return{type:"finding",...a?{title:a}:{},text:p(o.text,`${r}.text`,l.contentText,e),...d?{severity:d}:{},evidenceIds:$(o.evidenceIds,`${r}.evidenceIds`,e,{required:!0})??[]}}if(i==="bullets"||i==="actions"||i==="limitations"){s(o,r,["type","title","items","evidenceIds"],e);const a=y(o.title,`${r}.title`,l.contentTitle,e),d=$(o.evidenceIds,`${r}.evidenceIds`,e);return{type:i,...a?{title:a}:{},items:ye(o.items,`${r}.items`,e),...d?{evidenceIds:d}:{}}}if(i==="metric"){s(o,r,["type","label","value","previousValue","delta","unit","evidenceIds"],e);const a=typeof o.value=="string"||typeof o.value=="number"?o.value:"";a===""&&c(e,`${r}.value`,"Expected a string or number.");const d=o.previousValue===void 0||o.previousValue===null||typeof o.previousValue=="string"||typeof o.previousValue=="number"?o.previousValue:void 0;o.previousValue!==void 0&&o.previousValue!==null&&d===void 0&&c(e,`${r}.previousValue`,"Expected a string, number, or null.");const m=o.delta===void 0||o.delta===null||typeof o.delta=="string"||typeof o.delta=="number"?o.delta:void 0;o.delta!==void 0&&o.delta!==null&&m===void 0&&c(e,`${r}.delta`,"Expected a string, number, or null.");const f=y(o.unit,`${r}.unit`,l.contentTitle,e),u=$(o.evidenceIds,`${r}.evidenceIds`,e);return{type:"metric",label:p(o.label,`${r}.label`,l.contentTitle,e),value:a,...d!==void 0?{previousValue:d}:{},...m!==void 0?{delta:m}:{},...f?{unit:f}:{},...u?{evidenceIds:u}:{}}}if(i==="kpi_grid"){s(o,r,["type","title","tiles","evidenceIds"],e);const a=y(o.title,`${r}.title`,l.contentTitle,e),d=Array.isArray(o.tiles)?o.tiles:[];Array.isArray(o.tiles)||c(e,`${r}.tiles`,"Expected an array."),d.length===0&&c(e,`${r}.tiles`,"Expected at least one tile."),d.length>g.maxKpiTiles&&c(e,`${r}.tiles`,`Must have ${g.maxKpiTiles} tiles or fewer.`);const m=d.slice(0,g.maxKpiTiles).map((u,I)=>{const b=`${r}.tiles.${I}`,h=v(u,b,e);s(h,b,["label","value","previousValue","delta","unit","evidenceIds"],e);const O=typeof h.value=="string"||typeof h.value=="number"?h.value:"";O===""&&c(e,`${b}.value`,"Expected a string or number.");const R=h.previousValue===void 0||h.previousValue===null||typeof h.previousValue=="string"||typeof h.previousValue=="number"?h.previousValue:void 0;h.previousValue!==void 0&&h.previousValue!==null&&R===void 0&&c(e,`${b}.previousValue`,"Expected a string, number, or null.");const w=h.delta===void 0||h.delta===null||typeof h.delta=="string"||typeof h.delta=="number"?h.delta:void 0;h.delta!==void 0&&h.delta!==null&&w===void 0&&c(e,`${b}.delta`,"Expected a string, number, or null.");const M=y(h.unit,`${b}.unit`,l.contentTitle,e),P=$(h.evidenceIds,`${b}.evidenceIds`,e);return{label:p(h.label,`${b}.label`,l.contentTitle,e),value:O,...R!==void 0?{previousValue:R}:{},...w!==void 0?{delta:w}:{},...M?{unit:M}:{},...P?{evidenceIds:P}:{}}}),f=$(o.evidenceIds,`${r}.evidenceIds`,e);return{type:"kpi_grid",...a?{title:a}:{},tiles:m,...f?{evidenceIds:f}:{}}}if(i==="table"){s(o,r,["type","id","title","columns","rows","caption","totalRows","evidenceIds"],e);const a=ve(o.columns,`${r}.columns`,e),d=y(o.title,`${r}.title`,l.contentTitle,e),m=y(o.id,`${r}.id`,l.id,e),f=y(o.caption,`${r}.caption`,l.contentItem,e),u=se(o.totalRows,`${r}.totalRows`,e),I=$(o.evidenceIds,`${r}.evidenceIds`,e);return{type:"table",...m?{id:m}:{},...d?{title:d}:{},columns:a,rows:ge(o.rows,`${r}.rows`,a,e),...f?{caption:f}:{},...u!==void 0?{totalRows:u}:{},...I?{evidenceIds:I}:{}}}if(i==="evidence_appendix"){s(o,r,["type","title","evidenceIds"],e);const a=y(o.title,`${r}.title`,l.contentTitle,e);return{type:"evidence_appendix",...a?{title:a}:{},evidenceIds:$(o.evidenceIds,`${r}.evidenceIds`,e,{required:!0})??[]}}return c(e,`${r}.type`,"Expected heading, paragraph, finding, bullets, metric, kpi_grid, table, actions, limitations, or evidence_appendix."),{type:"paragraph",text:""}}function X(n){const t=[],e=v(n,"content",t);s(e,"content",["version","title","summary","blocks"],t),e.version!==1&&c(t,"content.version","Expected version 1.");const r=y(e.title,"content.title",l.contentTitle,t),o=y(e.summary,"content.summary",l.contentSummary,t);Array.isArray(e.blocks)||c(t,"content.blocks","Expected an array.");const i=Array.isArray(e.blocks)?e.blocks:[];i.length===0&&c(t,"content.blocks","Expected at least one block."),i.length>g.maxBlocks&&c(t,"content.blocks",`Must have ${g.maxBlocks} blocks or fewer.`);const a=i.slice(0,g.maxBlocks).map((d,m)=>Ie(d,m,t));return V(t),{version:1,...r?{title:r}:{},...o?{summary:o}:{},blocks:a}}function be(n){try{return{valid:!0,value:X(n),issues:[]}}catch(t){if(t instanceof x)return{valid:!1,issues:t.issues};throw t}}function T(n,t,e,r){return typeof n=="string"&&e.includes(n)?n:(c(r,t,`Expected ${e.join(" or ")}.`),e[0])}function E(n,t,e,r,o){if(n!=null){if(typeof n=="string"&&e.has(n))return n;c(o,t,`Expected ${r}.`)}}function $e(n,t,e){if(n!=null){if(!Array.isArray(n)){c(e,t,"Expected an array.");return}return n}}function Ee(n,t,e){if(n!=null){if(!G(n)){c(e,t,"Expected an object.");return}return n}}function Ce(n,t,e){if(n==null)return;const r=v(n,t,e);s(r,t,fe,e);const o={},i=E(r.pageSize,`${t}.pageSize`,ne,"letter, legal, a4, a3, or tabloid",e),a=E(r.orientation,`${t}.orientation`,re,"portrait or landscape",e),d=E(r.delimiter,`${t}.delimiter`,oe,"comma, semicolon, or tab",e),m=E(r.sheetSelection,`${t}.sheetSelection`,ie,"current or all",e);i&&(o.pageSize=i),a&&(o.orientation=a),d&&(o.delimiter=d),m&&(o.sheetSelection=m);for(const f of["includeFilters","includeTimestamp","includeHeaders","useFormattedValues"])if(!(r[f]===void 0||r[f]===null)){if(typeof r[f]!="boolean"){c(e,`${t}.${f}`,"Expected a boolean.");continue}o[f]=r[f]}for(const f of["currentSheetId","currentSheetName","filterLine","selectedSheetId","cardType","theme"]){const u=y(r[f],`${t}.${f}`,l.id,e);u&&(o[f]=u)}for(const f of["filterValues","inlineFilterValues","sheetFilterValues","controlDefinitions","cardControlDefinitions","controlBindings"]){const u=$e(r[f],`${t}.${f}`,e);u&&(o[f]=u)}for(const f of["controlValues","tablePreferences","dashboardInputExecutionSnapshot"]){const u=Ee(r[f],`${t}.${f}`,e);u&&(o[f]=u)}return Object.keys(o).length>0?o:void 0}function A(n,t,e,r){const o=y(t,e,l.attachmentTitle,r);return o&&(n.title=o),n}function S(n,t,e,r){const o=Ce(t,e,r);return o&&(n.settings=o),n}function Te(n,t,e){const r=`attachments.${t}`,o=v(n,r,e),i=o.type;if(i==="dashboard"){s(o,r,["type","dashboardId","format","title","settings"],e);const a=A({type:"dashboard",dashboardId:p(o.dashboardId,`${r}.dashboardId`,l.id,e),format:T(o.format,`${r}.format`,["pdf"],e)},o.title,`${r}.title`,e);return S(a,o.settings,`${r}.settings`,e)}if(i==="dashboard_sheet"||i==="document_sheet"){s(o,r,["type","dashboardId","sheetId","format","title","settings"],e);const a=A({type:i,dashboardId:p(o.dashboardId,`${r}.dashboardId`,l.id,e),sheetId:p(o.sheetId,`${r}.sheetId`,l.id,e),format:T(o.format,`${r}.format`,["pdf"],e)},o.title,`${r}.title`,e);return S(a,o.settings,`${r}.settings`,e)}if(i==="visual"){s(o,r,["type","dashboardId","visualId","format","title","settings"],e);const a=A({type:"visual",dashboardId:p(o.dashboardId,`${r}.dashboardId`,l.id,e),visualId:p(o.visualId,`${r}.visualId`,l.id,e),format:T(o.format,`${r}.format`,["pdf","png"],e)},o.title,`${r}.title`,e);return S(a,o.settings,`${r}.settings`,e)}if(i==="card"){s(o,r,["type","dashboardId","cardId","format","title","settings"],e);const a=A({type:"card",dashboardId:p(o.dashboardId,`${r}.dashboardId`,l.id,e),cardId:p(o.cardId,`${r}.cardId`,l.id,e),format:T(o.format,`${r}.format`,["csv","pdf","png"],e)},o.title,`${r}.title`,e);return S(a,o.settings,`${r}.settings`,e)}return c(e,`${r}.type`,"Expected dashboard, dashboard_sheet, document_sheet, visual, or card."),{type:"dashboard",dashboardId:"",format:"pdf"}}function xe(n){switch(n.type){case"dashboard":return`${n.type}:${n.dashboardId}:${n.format}`;case"dashboard_sheet":case"document_sheet":return`${n.type}:${n.dashboardId}:${n.sheetId}:${n.format}`;case"visual":return`${n.type}:${n.dashboardId}:${n.visualId}:${n.format}`;case"card":return`${n.type}:${n.dashboardId}:${n.cardId}:${n.format}`}}function W(n,t){if(n==null)return[];if(!Array.isArray(n))return c(t,"attachments","Expected an array."),[];n.length>k&&c(t,"attachments",`Choose ${k} attachments or fewer.`);const e=n.slice(0,k).map((o,i)=>Te(o,i,t)),r=new Set;return e.forEach((o,i)=>{const a=xe(o);r.has(a)&&c(t,`attachments.${i}`,"Duplicate attachment."),r.add(a)}),e}function Y(n,t){if(n==null)return;const e=v(n,"limits",t);s(e,"limits",Object.keys(D),t);const r={};return Object.keys(D).forEach(o=>{const i=e[o];if(i==null)return;const a=D[o];if(typeof i!="number"||!Number.isInteger(i)||i<a.min||i>a.max){c(t,`limits.${o}`,`Expected an integer between ${a.min} and ${a.max}.`);return}r[o]=i}),Object.keys(r).length>0?r:void 0}function V(n){if(n.length>0)throw new x(n)}function Z(n,t,e){n.type==="none"&&t.length===0&&c(e,"body","Add briefing instructions, a custom message, or at least one attachment.")}function F(n){const t=[],e=v(n,"jobConfig",t);s(e,"jobConfig",["kind","source","body","attachments","presentation","limits"],t),e.kind!==_&&c(t,"kind","Expected BRIEFING.");const r=U(e.source,t),o=H(e.body,t),i=W(e.attachments,t),a=J(e.presentation,t),d=Y(e.limits,t);return Z(o,i,t),V(t),{kind:_,source:r,body:o,attachments:i,presentation:a,...d?{limits:d}:{}}}function Ae(n){return F({...n,kind:_})}function z(n,t,e,r="deliveryConfig.recipients"){const o=`${r}.${t}`,i=v(n,o,e),a=i.type;if(a==="email"){s(i,o,["type","address","name"],e);const d=p(i.address,`${o}.address`,l.id,e),m=y(i.name,`${o}.name`,l.attachmentTitle,e);return d&&!ue(d)&&c(e,`${o}.address`,"Email address is invalid."),{type:"email",address:d,...m?{name:m}:{}}}return a==="user"?(s(i,o,["type","userId"],e),{type:"user",userId:p(i.userId,`${o}.userId`,l.id,e)}):a==="tenant_user"?(s(i,o,["type","tenantUserId"],e),{type:"tenant_user",tenantUserId:p(i.tenantUserId,`${o}.tenantUserId`,l.id,e)}):a==="group"?(s(i,o,["type","groupId"],e),{type:"group",groupId:p(i.groupId,`${o}.groupId`,l.id,e)}):(c(e,`${o}.type`,"Expected email, user, tenant_user, or group."),{type:"email",address:""})}function Se(n,t){return n==null?[]:Array.isArray(n)?n.map((e,r)=>z(e,r,t)):(c(t,"deliveryConfig.recipients","Expected an array."),[])}function ke(n,t){if(!Array.isArray(n))return c(t,"deliveryConfig.channels","Expected an array."),[];const e=[];return n.forEach((r,o)=>{if(!N(r)){c(t,`deliveryConfig.channels.${o}`,"Expected EMAIL, WEBHOOK, SLACK, IN_APP, or TELEGRAM.");return}e.includes(r)||e.push(r)}),e}function _e(n,t,e){if(n==null)return;const r=v(n,t,e),o={};return Object.entries(r).forEach(([i,a])=>{if(typeof a!="string"){c(e,`${t}.${i}`,"Expected a string.");return}o[i]=a.trim()}),Object.keys(o).length>0?o:void 0}function Be(n,t,e){if(n==null)return;const r=v(n,t,e);s(r,t,["url","method","headers","secretEncrypted"],e);const o=r.method===void 0||r.method===null?void 0:T(r.method,`${t}.method`,["POST","PUT"],e),i=_e(r.headers,`${t}.headers`,e),a=y(r.secretEncrypted,`${t}.secretEncrypted`,2e3,e);return{url:p(r.url,`${t}.url`,2e3,e),...o?{method:o}:{},...i?{headers:i}:{},...a?{secretEncrypted:a}:{}}}function Le(n,t,e){const r=v(n,t,e),o=r.type;if(o==="channel"){s(r,t,["type","channelId","channelName","isPrivate"],e);const i=y(r.channelName,`${t}.channelName`,l.attachmentTitle,e),a=r.isPrivate===void 0||r.isPrivate===null?void 0:C(r.isPrivate,!1,`${t}.isPrivate`,e);return{type:"channel",channelId:p(r.channelId,`${t}.channelId`,l.id,e),...i?{channelName:i}:{},...a!==void 0?{isPrivate:a}:{}}}return o==="dm"?(s(r,t,["type","recipient"],e),c(e,`${t}.type`,"Slack DM delivery is not supported in V1."),{type:"dm",recipient:z(r.recipient,0,e,`${t}.recipient`)}):(c(e,`${t}.type`,"Expected channel."),{type:"channel",channelId:""})}function Re(n,t,e){if(n==null)return;if(!Array.isArray(n)){c(e,t,"Expected an array.");return}const r=n.map((o,i)=>z(o,i,e,t));return r.length>0?r:void 0}function we(n,t,e){if(n==null)return;const r=v(n,t,e);s(r,t,["destination","threadMentions","postThreadDetail","includeDashboardLink","includeBriefingLink"],e);const o=Re(r.threadMentions,`${t}.threadMentions`,e),i=C(r.postThreadDetail,!0,`${t}.postThreadDetail`,e),a=C(r.includeDashboardLink,!0,`${t}.includeDashboardLink`,e),d=C(r.includeBriefingLink,!0,`${t}.includeBriefingLink`,e);return{destination:Le(r.destination,`${t}.destination`,e),...o?{threadMentions:o}:{},...r.postThreadDetail!==void 0?{postThreadDetail:i}:{},...r.includeDashboardLink!==void 0?{includeDashboardLink:a}:{},...r.includeBriefingLink!==void 0?{includeBriefingLink:d}:{}}}function De(n,t,e){const r=v(n,t,e);s(r,t,["subjectOverride","titleOverride","summaryOverride","actionBlockVisible","formatProfile","slackConfig","webhookConfig"],e);const o=E(r.formatProfile,`${t}.formatProfile`,ae,"concise, balanced, or detailed",e),i=y(r.subjectOverride,`${t}.subjectOverride`,500,e),a=y(r.titleOverride,`${t}.titleOverride`,500,e),d=y(r.summaryOverride,`${t}.summaryOverride`,2e3,e),m=C(r.actionBlockVisible,!0,`${t}.actionBlockVisible`,e),f=Be(r.webhookConfig,`${t}.webhookConfig`,e),u=we(r.slackConfig,`${t}.slackConfig`,e);return{...o?{formatProfile:o}:{},...i?{subjectOverride:i}:{},...a?{titleOverride:a}:{},...d?{summaryOverride:d}:{},...r.actionBlockVisible!==void 0?{actionBlockVisible:m}:{},...u?{slackConfig:u}:{},...f?{webhookConfig:f}:{}}}function Ve(n,t){if(n==null)return;const e=v(n,"deliveryConfig.channelConfigs",t),r={};return Object.entries(e).forEach(([o,i])=>{if(!N(o)){c(t,`deliveryConfig.channelConfigs.${o}`,"Expected a supported delivery channel.");return}r[o]=De(i,`deliveryConfig.channelConfigs.${o}`,t)}),Object.keys(r).length>0?r:void 0}function Fe(n,t){var m,f,u;if(n==null)return null;const e=v(n,"deliveryConfig",t);s(e,"deliveryConfig",["recipients","channels","channelConfigs"],t);const r=Ve(e.channelConfigs,t),o=Se(e.recipients,t),i=ke(e.channels,t),a=((f=(m=r==null?void 0:r.SLACK)==null?void 0:m.slackConfig)==null?void 0:f.destination.type)==="channel"&&!!r.SLACK.slackConfig.destination.channelId.trim();return i.some(I=>I!=="SLACK")&&o.length===0&&c(t,"deliveryConfig.recipients","Add at least one recipient or remove delivery config."),i.length===0&&c(t,"deliveryConfig.channels","Choose at least one delivery channel or remove delivery config."),i.includes("SLACK")&&!a&&c(t,"deliveryConfig.channelConfigs.SLACK.slackConfig.destination.channelId","Choose a Slack channel destination."),!i.includes("SLACK")&&((u=r==null?void 0:r.SLACK)!=null&&u.slackConfig)&&c(t,"deliveryConfig.channelConfigs.SLACK","Slack config requires SLACK in deliveryConfig.channels."),{recipients:o,channels:i,...r?{channelConfigs:r}:{}}}function L(n){const t=[],e=v(n,"draft",t);s(e,"draft",["name","description","status","scheduleExpr","timezone","source","body","attachments","presentation","limits","deliveryConfig"],t);const r=p(e.name,"name",l.name,t),o=y(e.description,"description",l.description,t)??null,i=y(e.scheduleExpr,"scheduleExpr",500,t)??null,a=y(e.timezone,"timezone",200,t)??"UTC",d=me(e.status,t),m=U(e.source,t),f=H(e.body,t),u=W(e.attachments,t),I=J(e.presentation,t),b=Y(e.limits,t),h=Fe(e.deliveryConfig,t);return Z(f,u,t),V(t),{name:r,description:o,status:d,scheduleExpr:i,timezone:a,source:m,body:f,attachments:u,presentation:I,...b?{limits:b}:{},deliveryConfig:h}}function ze(n){return L(n)}function Ne(n){return L(n)}function Oe(n){try{return{valid:!0,value:L(n),issues:[]}}catch(t){if(t instanceof x)return{valid:!1,issues:t.issues};throw t}}function Me(n){try{return{valid:!0,value:F(n),issues:[]}}catch(t){if(t instanceof x)return{valid:!1,issues:t.issues};throw t}}function Pe(n){return typeof n=="string"&&q.has(n)}function N(n){return typeof n=="string"&&te.has(n)}exports.BRIEFING_ARTIFACT_FORMATS=K;exports.BRIEFING_CONTENT_LIMITS=g;exports.BRIEFING_KIND=_;exports.BRIEFING_TEXT_LIMITS=l;exports.BriefingContractError=x;exports.DEFAULT_BRIEFING_ARTIFACT_FORMATS=B;exports.MAX_BRIEFING_ATTACHMENTS=k;exports.buildBriefingJobConfig=Ae;exports.buildCreateBriefingRequest=ze;exports.buildUpdateBriefingRequest=Ne;exports.isBriefingArtifactFormat=Pe;exports.isBriefingDeliveryChannel=N;exports.normalizeBriefingContentDocument=X;exports.normalizeBriefingDraft=L;exports.normalizeBriefingJobConfig=F;exports.validateBriefingContentDocument=be;exports.validateBriefingDraft=Oe;exports.validateBriefingJobConfig=Me;
|