react-semaphor 0.1.421 → 0.1.423
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/analytics-protocol/index.cjs +1 -1
- package/dist/analytics-protocol/index.js +2 -2
- package/dist/brand-studio/index.cjs +1 -1
- package/dist/brand-studio/index.js +2 -2
- package/dist/briefings/index.cjs +1 -1
- package/dist/briefings/index.js +913 -712
- package/dist/chunks/{analyze-result-contract-sWcmvBOA.js → analyze-result-contract-D7pjjYPy.js} +45 -46
- package/dist/chunks/{analyze-result-contract-B5Eeu7vD.js → analyze-result-contract-DpDcImgk.js} +1 -1
- package/dist/chunks/{calendar-preferences-dialog-CscmhyuZ.js → calendar-preferences-dialog-CTmeASaM.js} +1 -1
- package/dist/chunks/{calendar-preferences-dialog-cN3_2C-u.js → calendar-preferences-dialog-t5ET6MON.js} +3 -3
- package/dist/chunks/card-config-utils-15sRtebL.js +1 -0
- package/dist/chunks/card-config-utils-BYZ5MJOh.js +16 -0
- package/dist/chunks/dashboard-briefing-launcher-Cavd0QJb.js +3401 -0
- package/dist/chunks/dashboard-briefing-launcher-S2akO-ub.js +26 -0
- package/dist/chunks/dashboard-controls-BJLrErjW.js +2322 -0
- package/dist/chunks/dashboard-controls-DzbP8AXA.js +52 -0
- package/dist/chunks/dashboard-json-5tWb5KD6.js +1 -0
- package/dist/chunks/{dashboard-json-Cxhw2TZc.js → dashboard-json-Do2-pdPZ.js} +12 -11
- package/dist/chunks/{edit-dashboard-visual-BigSJ3-x.js → edit-dashboard-visual-Cw6bq4_w.js} +7058 -6989
- package/dist/chunks/edit-dashboard-visual-Yh5YFgMF.js +178 -0
- package/dist/chunks/index-BPM3gDRw.js +1406 -0
- package/dist/chunks/{index-CH2ZzQo4.js → index-yHe0SeLO.js} +81534 -75430
- package/dist/chunks/{switch-TbCsyhv9.js → switch-2bh3Hka1.js} +620 -633
- package/dist/chunks/{switch-CiOjVyVI.js → switch-DMT7qf_R.js} +24 -24
- package/dist/chunks/{update-policy-2MZ-Vf7v.js → update-policy-BCJc0oI5.js} +1 -1
- package/dist/chunks/{update-policy-qpyAkOyO.js → update-policy-C1pmhLz9.js} +1 -1
- package/dist/chunks/{use-create-flow-overlay-state-BzcJWNzh.js → use-create-flow-overlay-state-5MDbZcs1.js} +515 -544
- package/dist/chunks/use-create-flow-overlay-state-BNczg9Gj.js +11 -0
- package/dist/chunks/{validators-Dj1Y-46V.js → validators-DMlVbd1p.js} +1 -1
- package/dist/chunks/{validators-D0pfj3jJ.js → validators-PXkij33j.js} +1 -1
- package/dist/dashboard/index.cjs +1 -1
- package/dist/dashboard/index.js +1 -1
- package/dist/dashboard-authoring/index.cjs +1 -1
- package/dist/dashboard-authoring/index.js +2 -2
- package/dist/data-app-builder/index.cjs +1 -1
- package/dist/data-app-builder/index.js +108 -108
- package/dist/data-app-codegen/index.cjs +1 -1
- package/dist/data-app-codegen/index.js +2 -2
- package/dist/data-app-codegen-node/index.cjs +165 -340
- package/dist/data-app-codegen-node/index.js +761 -952
- package/dist/data-app-sdk/index.cjs +2 -2
- package/dist/data-app-sdk/index.js +91 -95
- package/dist/data-app-sdk-adapters/index.cjs +1 -1
- package/dist/data-app-sdk-adapters/index.js +1 -1
- package/dist/data-app-sdk-validation/index.cjs +1 -1
- package/dist/data-app-sdk-validation/index.js +2 -2
- package/dist/index.cjs +1 -1
- package/dist/index.js +168 -164
- package/dist/style.css +1 -1
- package/dist/surfboard/index.cjs +1 -1
- package/dist/surfboard/index.js +2 -2
- package/dist/types/analytics-protocol.d.ts +0 -4
- package/dist/types/briefings.d.ts +2388 -7
- package/dist/types/dashboard-assistant.d.ts +0 -1
- package/dist/types/data-app-sdk-validation.d.ts +0 -1
- package/dist/types/data-app-sdk.d.ts +0 -2
- package/dist/types/main.d.ts +70 -10
- package/dist/types/types.d.ts +4 -8
- package/package.json +1 -1
- package/dist/chunks/dashboard-briefing-launcher-BYTBNetR.js +0 -9077
- package/dist/chunks/dashboard-briefing-launcher-DmZkzIC3.js +0 -80
- package/dist/chunks/dashboard-controls-9DFeKIP4.js +0 -52
- package/dist/chunks/dashboard-controls-PhzuaTBj.js +0 -2280
- package/dist/chunks/dashboard-json-DyRHI3mL.js +0 -1
- package/dist/chunks/edit-dashboard-visual-3_jiBXsu.js +0 -178
- package/dist/chunks/index-BKDQw0aK.js +0 -1346
- package/dist/chunks/use-create-flow-overlay-state-DUQmgb9H.js +0 -21
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("../chunks/operators-DrTQsJXv.js"),o=require("../chunks/validators-Dj1Y-46V.js"),e=require("../chunks/analyze-result-contract-B5Eeu7vD.js"),t=require("../chunks/catalog-field-grounding-Bnx-3tE0.js");function d(a,r={}){const i=c(a),s={connectionId:r.connectionId,connectionType:a,path:["database","schema","table"],labels:{database:"Database",schema:"Schema",table:"Table"},prefixLevels:["database","schema","table"],dialect:"postgres",supportsFilterClause:!0};return i.includes("postgres")?{...s,prefixLevels:["schema","table"],dialect:"postgres"}:i.includes("mysql")?{...s,prefixLevels:["database","table"],dialect:"mysql",supportsFilterClause:!1}:i.includes("mssql")||i.includes("sqlserver")?{...s,dialect:"mssql",supportsFilterClause:!1}:i.includes("redshift")?{...s,prefixLevels:["schema","table"],dialect:"redshift"}:i.includes("snowflake")?{...s,dialect:"snowflake"}:i.includes("clickhouse")?{connectionId:r.connectionId,connectionType:a,path:["database","table"],labels:{database:"Database",table:"Table"},prefixLevels:["database","table"],dialect:"clickhouse",supportsFilterClause:!1}:i==="s3"||i==="api"?{connectionId:r.connectionId,connectionType:a,path:["table"],labels:{table:i==="api"?"API Table":"File Table"},prefixLevels:["table"],dialect:"duckdb",supportsFilterClause:!0}:i==="googlesheets"||i==="fileupload"?{connectionId:r.connectionId,connectionType:a,path:["table"],labels:{table:"Table"},prefixLevels:["table"],dialect:"postgres",supportsFilterClause:!0}:i==="s3tables"?{...s,labels:{database:"Database",schema:"Namespace",table:"Table"},dialect:"duckdb"}:i==="bigquery"?{...s,labels:{database:"Project",schema:"Dataset",table:"Table"},prefixLevels:["schema","table"],dialect:"bigquery",supportsFilterClause:!1}:s}function u(a){const r=c(a);switch(r){case"mysql":case"bigquery":case"redshift":case"snowflake":case"clickhouse":case"duckdb":case"sqlite":return r;case"mssql":case"sqlserver":return"mssql";case"postgres":case"postgresql":return"postgres";default:return"unknown"}}function p(a){return a.capabilities.prefixLevels.every(r=>!!m(a.source,r))}function h(a){const r=a.quoteIdentifier??S;return a.capabilities.prefixLevels.map(i=>m(a.source,i)).filter(i=>!!i).map(i=>r(i,a.capabilities.dialect)).join(".")}function m(a,r){return r==="database"?a.databaseName:r==="schema"?a.schemaName:a.tableName}function S(a,r){return r==="mysql"||r==="bigquery"||r==="clickhouse"||r==="duckdb"?`\`${a.replace(/`/g,"``")}\``:r==="mssql"?`[${a.replace(/]/g,"]]")}]`:`"${a.replace(/"/g,'""')}"`}function c(a){if(typeof a!="string")return"";const r=[];for(const i of a.trim().toLowerCase())y(i)&&r.push(i);return r.join("")}function y(a){const r=a.charCodeAt(0);return r>=48&&r<=57||r>=97&&r<=122}const n={kind:"semantic",domainId:"domain_sales",datasetName:"orders",connectionId:"conn_sales",label:"Orders"},A={revenueKpi:{version:1,kind:"metric",id:"revenue-kpi",label:"Revenue",source:n,measures:[{name:"revenue",role:"measure"}],primaryMeasure:{name:"revenue",role:"measure"},comparison:{kind:"previous_period"},limit:1},revenueTrend:{version:1,kind:"records",id:"revenue-trend",label:"Revenue trend",source:n,fields:[{name:"order_date",role:"date",dataType:"date",label:"Order Date"},{name:"revenue",role:"measure",dataType:"number"}],dateField:{name:"order_date",role:"date",dataType:"date"},timeGrain:"month",limit:100},topCustomersRecords:{version:1,kind:"records",id:"top-customers",label:"Top customers",source:n,fields:[{name:"customer_name",role:"dimension",dataType:"string"},{name:"segment",role:"dimension",dataType:"string"},{name:"revenue",role:"measure",dataType:"number"}],orderBy:{field:{name:"revenue",role:"measure"},direction:"desc"},limit:20},regionInputOptions:{version:1,kind:"inputOptions",id:"region-options",label:"Region options",inputId:"region",source:n,labelField:{name:"region",role:"dimension",dataType:"string"},valueField:{name:"region",role:"dimension",dataType:"string"},limit:100},previousPeriodRevenueComparison:{version:1,kind:"metric",id:"revenue-previous-period",label:"Revenue previous period comparison",source:n,measures:[{name:"revenue",role:"measure"}],primaryMeasure:{name:"revenue",role:"measure"},dateField:{name:"order_date",role:"date",dataType:"date"},timeGrain:"week",comparison:{kind:"previous_period"},limit:100},inboundSupplierConcentration:{version:1,kind:"metric",id:"inbound-supplier-concentration",label:"Inbound supplier concentration",source:n,measures:[{name:"net_tons",role:"measure"},{name:"ticket_value",role:"measure"}],primaryMeasure:{name:"net_tons",role:"measure"},dateField:{name:"ticket_date",role:"date",dataType:"date"},timeWindow:{unit:"month",value:6,anchor:"latest_available"},dimensions:[{name:"supplier_id",role:"dimension",dataType:"number"}],filters:[{field:{name:"direction",role:"dimension",dataType:"string"},operator:"=",values:["Inbound"]}],limit:15},boundedSqlRanking:{version:1,kind:"sql",id:"top-customer-ranking-sql",label:"Top customer ranking SQL",source:{kind:"sql",connectionId:"conn_sales",dialect:"postgres"},sql:"SELECT customer_name, SUM(revenue) AS revenue FROM public.orders GROUP BY customer_name ORDER BY revenue DESC LIMIT 20",limit:20,rationale:"Ranking is SQL-natural because it requires ordering grouped aggregate rows.",fields:[{name:"customer_name",role:"dimension",dataType:"string"},{name:"revenue",role:"measure",dataType:"number"}]}};exports.normalizeSemaphorAnalyticsFilterOperator=l.normalizeSemaphorAnalyticsFilterOperator;exports.normalizeSemaphorInputOperator=l.normalizeSemaphorInputOperator;exports.parseSemaphorIsoTimeWindowBoundary=o.parseSemaphorIsoTimeWindowBoundary;exports.validateSemaphorAnalyticsIntent=o.validateSemaphorAnalyticsIntent;exports.validateSemaphorAnalyticsRecoveryPlan=o.validateSemaphorAnalyticsRecoveryPlan;exports.validateSemaphorDashboardIntent=o.validateSemaphorDashboardIntent;exports.validateSemaphorDerivedFieldDefinition=o.validateSemaphorDerivedFieldDefinition;exports.validateSemaphorOperationIntent=o.validateSemaphorOperationIntent;exports.validateSemaphorResultCalculation=o.validateSemaphorResultCalculation;exports.SEMAPHOR_ANALYZE_RESULT_FIELD_CONTRACT=e.SEMAPHOR_ANALYZE_RESULT_FIELD_CONTRACT;exports.SEMAPHOR_DATA_APP_CODEGEN_SUMMARY_SCHEMA_VERSION=e.SEMAPHOR_DATA_APP_CODEGEN_SUMMARY_SCHEMA_VERSION;exports.SEMAPHOR_DATA_APP_CODEGEN_SUMMARY_VALIDATOR_VERSION=e.SEMAPHOR_DATA_APP_CODEGEN_SUMMARY_VALIDATOR_VERSION;exports.getSemaphorAnalyzeResultFieldNames=e.getSemaphorAnalyzeResultFieldNames;exports.isSemaphorAnalyzeResultFieldName=e.isSemaphorAnalyzeResultFieldName;exports.isSemaphorDataAppCodegenSummary=e.isSemaphorDataAppCodegenSummary;exports.mergeSemaphorSourcesByIdentity=e.mergeSemaphorSourcesByIdentity;exports.parseSemaphorAnalyzeResult=e.parseSemaphorAnalyzeResult;exports.preferSemaphorFieldRefMetadata=e.preferSemaphorFieldRefMetadata;exports.preferSemaphorSourceMetadata=e.preferSemaphorSourceMetadata;exports.semaphorAnalyticsCoverageSchema=e.semaphorAnalyticsCoverageSchema;exports.semaphorAnalyticsDiagnosticFeedbackSchema=e.semaphorAnalyticsDiagnosticFeedbackSchema;exports.semaphorAnalyticsExecutionResultSchema=e.semaphorAnalyticsExecutionResultSchema;exports.semaphorAnalyticsPopulationSchema=e.semaphorAnalyticsPopulationSchema;exports.semaphorAnalyticsResultSchema=e.semaphorAnalyticsResultSchema;exports.semaphorAnalyticsValidationIssueSchema=e.semaphorAnalyticsValidationIssueSchema;exports.semaphorAnalyticsValidationResultSchema=e.semaphorAnalyticsValidationResultSchema;exports.semaphorAnalyzeResultSchema=e.semaphorAnalyzeResultSchema;exports.semaphorAnalyzeResultShape=e.semaphorAnalyzeResultShape;exports.semaphorDataAppCodegenSummarySchema=e.semaphorDataAppCodegenSummarySchema;exports.semaphorDerivedFieldDefinitionSchema=e.semaphorDerivedFieldDefinitionSchema;exports.semaphorExecutionFieldRefSchema=e.semaphorExecutionFieldRefSchema;exports.semaphorFieldRefSchema=e.semaphorFieldRefSchema;exports.semaphorFieldRefsMatch=e.semaphorFieldRefsMatch;exports.semaphorInputOptionsResultSchema=e.semaphorInputOptionsResultSchema;exports.semaphorMatrixResultSchema=e.semaphorMatrixResultSchema;exports.semaphorMetricAggregate=e.semaphorMetricAggregate;exports.semaphorMetricMeasureBindingKey=e.semaphorMetricMeasureBindingKey;exports.semaphorMetricResultSchema=e.semaphorMetricResultSchema;exports.semaphorPhysicalSourceRefSchema=e.semaphorPhysicalSourceRefSchema;exports.semaphorRecordsResultSchema=e.semaphorRecordsResultSchema;exports.semaphorRelationshipDiagnosticsSchema=e.semaphorRelationshipDiagnosticsSchema;exports.semaphorResultColumnSchema=e.semaphorResultColumnSchema;exports.semaphorSemanticSourceRefSchema=e.semaphorSemanticSourceRefSchema;exports.semaphorSourceIdentityKey=e.semaphorSourceIdentityKey;exports.semaphorSourceRefSchema=e.semaphorSourceRefSchema;exports.semaphorSourcesReferToSameDataset=e.semaphorSourcesReferToSameDataset;exports.semaphorSqlResultSchema=e.semaphorSqlResultSchema;exports.semaphorSqlSourceRefSchema=e.semaphorSqlSourceRefSchema;exports.validateSemaphorDataAppCodegenSummary=e.validateSemaphorDataAppCodegenSummary;exports.buildAnalyticsCatalogFieldSummary=t.buildAnalyticsCatalogFieldSummary;exports.getAnalyticsCatalogFieldCandidates=t.getAnalyticsCatalogFieldCandidates;exports.getAnalyticsCatalogFieldName=t.getAnalyticsCatalogFieldName;exports.isAnalyticsCatalogDateField=t.isAnalyticsCatalogDateField;exports.isAnalyticsCatalogDimensionField=t.isAnalyticsCatalogDimensionField;exports.isAnalyticsCatalogMetricField=t.isAnalyticsCatalogMetricField;exports.isAnalyticsDateLikeDataType=t.isAnalyticsDateLikeDataType;exports.isAnalyticsMetricIdentifierField=t.isAnalyticsMetricIdentifierField;exports.isAnalyticsTechnicalIdentifierField=t.isAnalyticsTechnicalIdentifierField;exports.normalizeAnalyticsCatalogDataType=t.normalizeAnalyticsCatalogDataType;exports.normalizeAnalyticsCatalogName=t.normalizeAnalyticsCatalogName;exports.SEMAPHOR_ANALYTICS_INTENT_FIXTURES=A;exports.buildSemaphorQualifiedSourcePath=h;exports.getSemaphorConnectionCapabilities=d;exports.normalizeSemaphorDialect=u;exports.semaphorSourceHasRequiredCoordinates=p;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("../chunks/operators-DrTQsJXv.js"),o=require("../chunks/validators-DMlVbd1p.js"),e=require("../chunks/analyze-result-contract-DpDcImgk.js"),t=require("../chunks/catalog-field-grounding-Bnx-3tE0.js");function d(a,r={}){const i=c(a),s={connectionId:r.connectionId,connectionType:a,path:["database","schema","table"],labels:{database:"Database",schema:"Schema",table:"Table"},prefixLevels:["database","schema","table"],dialect:"postgres",supportsFilterClause:!0};return i.includes("postgres")?{...s,prefixLevels:["schema","table"],dialect:"postgres"}:i.includes("mysql")?{...s,prefixLevels:["database","table"],dialect:"mysql",supportsFilterClause:!1}:i.includes("mssql")||i.includes("sqlserver")?{...s,dialect:"mssql",supportsFilterClause:!1}:i.includes("redshift")?{...s,prefixLevels:["schema","table"],dialect:"redshift"}:i.includes("snowflake")?{...s,dialect:"snowflake"}:i.includes("clickhouse")?{connectionId:r.connectionId,connectionType:a,path:["database","table"],labels:{database:"Database",table:"Table"},prefixLevels:["database","table"],dialect:"clickhouse",supportsFilterClause:!1}:i==="s3"||i==="api"?{connectionId:r.connectionId,connectionType:a,path:["table"],labels:{table:i==="api"?"API Table":"File Table"},prefixLevels:["table"],dialect:"duckdb",supportsFilterClause:!0}:i==="googlesheets"||i==="fileupload"?{connectionId:r.connectionId,connectionType:a,path:["table"],labels:{table:"Table"},prefixLevels:["table"],dialect:"postgres",supportsFilterClause:!0}:i==="s3tables"?{...s,labels:{database:"Database",schema:"Namespace",table:"Table"},dialect:"duckdb"}:i==="bigquery"?{...s,labels:{database:"Project",schema:"Dataset",table:"Table"},prefixLevels:["schema","table"],dialect:"bigquery",supportsFilterClause:!1}:s}function u(a){const r=c(a);switch(r){case"mysql":case"bigquery":case"redshift":case"snowflake":case"clickhouse":case"duckdb":case"sqlite":return r;case"mssql":case"sqlserver":return"mssql";case"postgres":case"postgresql":return"postgres";default:return"unknown"}}function p(a){return a.capabilities.prefixLevels.every(r=>!!m(a.source,r))}function h(a){const r=a.quoteIdentifier??S;return a.capabilities.prefixLevels.map(i=>m(a.source,i)).filter(i=>!!i).map(i=>r(i,a.capabilities.dialect)).join(".")}function m(a,r){return r==="database"?a.databaseName:r==="schema"?a.schemaName:a.tableName}function S(a,r){return r==="mysql"||r==="bigquery"||r==="clickhouse"||r==="duckdb"?`\`${a.replace(/`/g,"``")}\``:r==="mssql"?`[${a.replace(/]/g,"]]")}]`:`"${a.replace(/"/g,'""')}"`}function c(a){if(typeof a!="string")return"";const r=[];for(const i of a.trim().toLowerCase())y(i)&&r.push(i);return r.join("")}function y(a){const r=a.charCodeAt(0);return r>=48&&r<=57||r>=97&&r<=122}const n={kind:"semantic",domainId:"domain_sales",datasetName:"orders",connectionId:"conn_sales",label:"Orders"},A={revenueKpi:{version:1,kind:"metric",id:"revenue-kpi",label:"Revenue",source:n,measures:[{name:"revenue",role:"measure"}],primaryMeasure:{name:"revenue",role:"measure"},comparison:{kind:"previous_period"},limit:1},revenueTrend:{version:1,kind:"records",id:"revenue-trend",label:"Revenue trend",source:n,fields:[{name:"order_date",role:"date",dataType:"date",label:"Order Date"},{name:"revenue",role:"measure",dataType:"number"}],dateField:{name:"order_date",role:"date",dataType:"date"},timeGrain:"month",limit:100},topCustomersRecords:{version:1,kind:"records",id:"top-customers",label:"Top customers",source:n,fields:[{name:"customer_name",role:"dimension",dataType:"string"},{name:"segment",role:"dimension",dataType:"string"},{name:"revenue",role:"measure",dataType:"number"}],orderBy:{field:{name:"revenue",role:"measure"},direction:"desc"},limit:20},regionInputOptions:{version:1,kind:"inputOptions",id:"region-options",label:"Region options",inputId:"region",source:n,labelField:{name:"region",role:"dimension",dataType:"string"},valueField:{name:"region",role:"dimension",dataType:"string"},limit:100},previousPeriodRevenueComparison:{version:1,kind:"metric",id:"revenue-previous-period",label:"Revenue previous period comparison",source:n,measures:[{name:"revenue",role:"measure"}],primaryMeasure:{name:"revenue",role:"measure"},dateField:{name:"order_date",role:"date",dataType:"date"},timeGrain:"week",comparison:{kind:"previous_period"},limit:100},inboundSupplierConcentration:{version:1,kind:"metric",id:"inbound-supplier-concentration",label:"Inbound supplier concentration",source:n,measures:[{name:"net_tons",role:"measure"},{name:"ticket_value",role:"measure"}],primaryMeasure:{name:"net_tons",role:"measure"},dateField:{name:"ticket_date",role:"date",dataType:"date"},timeWindow:{unit:"month",value:6,anchor:"latest_available"},dimensions:[{name:"supplier_id",role:"dimension",dataType:"number"}],filters:[{field:{name:"direction",role:"dimension",dataType:"string"},operator:"=",values:["Inbound"]}],limit:15},boundedSqlRanking:{version:1,kind:"sql",id:"top-customer-ranking-sql",label:"Top customer ranking SQL",source:{kind:"sql",connectionId:"conn_sales",dialect:"postgres"},sql:"SELECT customer_name, SUM(revenue) AS revenue FROM public.orders GROUP BY customer_name ORDER BY revenue DESC LIMIT 20",limit:20,rationale:"Ranking is SQL-natural because it requires ordering grouped aggregate rows.",fields:[{name:"customer_name",role:"dimension",dataType:"string"},{name:"revenue",role:"measure",dataType:"number"}]}};exports.normalizeSemaphorAnalyticsFilterOperator=l.normalizeSemaphorAnalyticsFilterOperator;exports.normalizeSemaphorInputOperator=l.normalizeSemaphorInputOperator;exports.parseSemaphorIsoTimeWindowBoundary=o.parseSemaphorIsoTimeWindowBoundary;exports.validateSemaphorAnalyticsIntent=o.validateSemaphorAnalyticsIntent;exports.validateSemaphorAnalyticsRecoveryPlan=o.validateSemaphorAnalyticsRecoveryPlan;exports.validateSemaphorDashboardIntent=o.validateSemaphorDashboardIntent;exports.validateSemaphorDerivedFieldDefinition=o.validateSemaphorDerivedFieldDefinition;exports.validateSemaphorOperationIntent=o.validateSemaphorOperationIntent;exports.validateSemaphorResultCalculation=o.validateSemaphorResultCalculation;exports.SEMAPHOR_ANALYZE_RESULT_FIELD_CONTRACT=e.SEMAPHOR_ANALYZE_RESULT_FIELD_CONTRACT;exports.SEMAPHOR_DATA_APP_CODEGEN_SUMMARY_SCHEMA_VERSION=e.SEMAPHOR_DATA_APP_CODEGEN_SUMMARY_SCHEMA_VERSION;exports.SEMAPHOR_DATA_APP_CODEGEN_SUMMARY_VALIDATOR_VERSION=e.SEMAPHOR_DATA_APP_CODEGEN_SUMMARY_VALIDATOR_VERSION;exports.getSemaphorAnalyzeResultFieldNames=e.getSemaphorAnalyzeResultFieldNames;exports.isSemaphorAnalyzeResultFieldName=e.isSemaphorAnalyzeResultFieldName;exports.isSemaphorDataAppCodegenSummary=e.isSemaphorDataAppCodegenSummary;exports.mergeSemaphorSourcesByIdentity=e.mergeSemaphorSourcesByIdentity;exports.parseSemaphorAnalyzeResult=e.parseSemaphorAnalyzeResult;exports.preferSemaphorFieldRefMetadata=e.preferSemaphorFieldRefMetadata;exports.preferSemaphorSourceMetadata=e.preferSemaphorSourceMetadata;exports.semaphorAnalyticsCoverageSchema=e.semaphorAnalyticsCoverageSchema;exports.semaphorAnalyticsDiagnosticFeedbackSchema=e.semaphorAnalyticsDiagnosticFeedbackSchema;exports.semaphorAnalyticsExecutionResultSchema=e.semaphorAnalyticsExecutionResultSchema;exports.semaphorAnalyticsPopulationSchema=e.semaphorAnalyticsPopulationSchema;exports.semaphorAnalyticsResultSchema=e.semaphorAnalyticsResultSchema;exports.semaphorAnalyticsValidationIssueSchema=e.semaphorAnalyticsValidationIssueSchema;exports.semaphorAnalyticsValidationResultSchema=e.semaphorAnalyticsValidationResultSchema;exports.semaphorAnalyzeResultSchema=e.semaphorAnalyzeResultSchema;exports.semaphorAnalyzeResultShape=e.semaphorAnalyzeResultShape;exports.semaphorDataAppCodegenSummarySchema=e.semaphorDataAppCodegenSummarySchema;exports.semaphorDerivedFieldDefinitionSchema=e.semaphorDerivedFieldDefinitionSchema;exports.semaphorExecutionFieldRefSchema=e.semaphorExecutionFieldRefSchema;exports.semaphorFieldRefSchema=e.semaphorFieldRefSchema;exports.semaphorFieldRefsMatch=e.semaphorFieldRefsMatch;exports.semaphorInputOptionsResultSchema=e.semaphorInputOptionsResultSchema;exports.semaphorMatrixResultSchema=e.semaphorMatrixResultSchema;exports.semaphorMetricAggregate=e.semaphorMetricAggregate;exports.semaphorMetricMeasureBindingKey=e.semaphorMetricMeasureBindingKey;exports.semaphorMetricResultSchema=e.semaphorMetricResultSchema;exports.semaphorPhysicalSourceRefSchema=e.semaphorPhysicalSourceRefSchema;exports.semaphorRecordsResultSchema=e.semaphorRecordsResultSchema;exports.semaphorRelationshipDiagnosticsSchema=e.semaphorRelationshipDiagnosticsSchema;exports.semaphorResultColumnSchema=e.semaphorResultColumnSchema;exports.semaphorSemanticSourceRefSchema=e.semaphorSemanticSourceRefSchema;exports.semaphorSourceIdentityKey=e.semaphorSourceIdentityKey;exports.semaphorSourceRefSchema=e.semaphorSourceRefSchema;exports.semaphorSourcesReferToSameDataset=e.semaphorSourcesReferToSameDataset;exports.semaphorSqlResultSchema=e.semaphorSqlResultSchema;exports.semaphorSqlSourceRefSchema=e.semaphorSqlSourceRefSchema;exports.validateSemaphorDataAppCodegenSummary=e.validateSemaphorDataAppCodegenSummary;exports.buildAnalyticsCatalogFieldSummary=t.buildAnalyticsCatalogFieldSummary;exports.getAnalyticsCatalogFieldCandidates=t.getAnalyticsCatalogFieldCandidates;exports.getAnalyticsCatalogFieldName=t.getAnalyticsCatalogFieldName;exports.isAnalyticsCatalogDateField=t.isAnalyticsCatalogDateField;exports.isAnalyticsCatalogDimensionField=t.isAnalyticsCatalogDimensionField;exports.isAnalyticsCatalogMetricField=t.isAnalyticsCatalogMetricField;exports.isAnalyticsDateLikeDataType=t.isAnalyticsDateLikeDataType;exports.isAnalyticsMetricIdentifierField=t.isAnalyticsMetricIdentifierField;exports.isAnalyticsTechnicalIdentifierField=t.isAnalyticsTechnicalIdentifierField;exports.normalizeAnalyticsCatalogDataType=t.normalizeAnalyticsCatalogDataType;exports.normalizeAnalyticsCatalogName=t.normalizeAnalyticsCatalogName;exports.SEMAPHOR_ANALYTICS_INTENT_FIXTURES=A;exports.buildSemaphorQualifiedSourcePath=h;exports.getSemaphorConnectionCapabilities=d;exports.normalizeSemaphorDialect=u;exports.semaphorSourceHasRequiredCoordinates=p;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { a as S, n as f } from "../chunks/operators-C8TxpM4C.js";
|
|
2
|
-
import { p as g, b as v, d as A, e as R, v as C, c as I, a as T } from "../chunks/validators-
|
|
3
|
-
import { e as F, S as k, a as D, g as q, c as M, i as E, L, d as O, p as N, K as x, D as P, B as z, E as w, C as B, z as H, q as G, r as U, G as Y, F as j, H as V, m as K, n as Q, l as $, s as W, w as J, y as X, b as Z, M as ee, t as ae, h as se, u as re, A as ie, o as te, f as ne, I as oe, k as le, J as me, x as de, j as ce, v as ue } from "../chunks/analyze-result-contract-
|
|
2
|
+
import { p as g, b as v, d as A, e as R, v as C, c as I, a as T } from "../chunks/validators-PXkij33j.js";
|
|
3
|
+
import { e as F, S as k, a as D, g as q, c as M, i as E, L, d as O, p as N, K as x, D as P, B as z, E as w, C as B, z as H, q as G, r as U, G as Y, F as j, H as V, m as K, n as Q, l as $, s as W, w as J, y as X, b as Z, M as ee, t as ae, h as se, u as re, A as ie, o as te, f as ne, I as oe, k as le, J as me, x as de, j as ce, v as ue } from "../chunks/analyze-result-contract-D7pjjYPy.js";
|
|
4
4
|
import { j as he, a as be, g as Se, c as fe, h as ye, f as ge, i as ve, e as Ae, d as Re, b as Ce, n as Ie } from "../chunks/catalog-field-grounding-CJKAqtiC.js";
|
|
5
5
|
function m(e, a = {}) {
|
|
6
6
|
const s = n(e), r = {
|
|
@@ -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-DMT7qf_R.js"),A=require("../chunks/index-DRlMUglg.js"),J=require("../chunks/x-B6ghREd2.js");require("../chunks/analyze-result-contract-DpDcImgk.js");const U=require("../chunks/palette-C4KTXOug.js"),be=require("../chunks/braces-D2tStQjF.js"),fe=require("../chunks/save-C__QggEE.js"),me=require("../chunks/layout-grid-C0OI-MRn.js");/**
|
|
2
2
|
* @license lucide-react v0.453.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
@@ -1,9 +1,9 @@
|
|
|
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, e as le, S as se, d as Je, T as je, G as Le, H as U, I as $e, J as M, K as _e, M as Ve, N as Ue, O as Me, L 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-
|
|
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, e as le, S as se, d as Je, T as je, G as Le, H as U, I as $e, J as M, K as _e, M as Ve, N as Ue, O as Me, L 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-2bh3Hka1.js";
|
|
4
4
|
import { r as We, v as He, A as Xe, a as Ye, p as Ze } from "../chunks/index-CJdxSyQq.js";
|
|
5
5
|
import { c as ae, X as qe } from "../chunks/x-CXDkqdur.js";
|
|
6
|
-
import "../chunks/analyze-result-contract-
|
|
6
|
+
import "../chunks/analyze-result-contract-D7pjjYPy.js";
|
|
7
7
|
import { P as G } from "../chunks/palette-Cp1hqZtm.js";
|
|
8
8
|
import { B as Ke } from "../chunks/braces-8TRlDwDw.js";
|
|
9
9
|
import { S as Qe } from "../chunks/save-DgMfP0j8.js";
|
package/dist/briefings/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var Q=Object.defineProperty;var ee=(r,t,e)=>t in r?Q(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e;var q=(r,t,e)=>ee(r,typeof t!="symbol"?t+"":t,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const _="BRIEFING",j=["markdown","html"],B=["markdown"],k=20,l={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},g={maxBlocks:50,maxTableRows:100,maxTableColumns:20,maxTableCellCharacters:l.contentCell,maxParagraphCharacters:l.contentText,maxFindingCharacters:l.contentText,maxListItems:100,maxKpiTiles:8},K=new Set(j),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(n=>`${n.field}: ${n.message}`).join("; "));q(this,"issues");this.name="BriefingContractError",this.issues=e}}function G(r){return typeof r=="object"&&r!==null&&!Array.isArray(r)}function c(r,t,e){r.push({field:t,message:e})}function h(r,t,e){return G(r)?r:(c(e,t,"Expected an object."),{})}function m(r,t,e,n){const o=new Set(e);Object.keys(r).forEach(i=>{o.has(i)||c(n,t?`${t}.${i}`:i,`Unexpected field "${i}".`)})}function u(r,t,e,n){if(typeof r!="string")return c(n,t,"Expected a string."),"";const o=r.trim();return o?(o.length>e&&c(n,t,`Must be ${e} characters or fewer.`),o):(c(n,t,"Required value cannot be empty."),"")}function y(r,t,e,n){if(r==null)return;if(typeof r!="string"){c(n,t,"Expected a string.");return}const o=r.trim();if(o)return o.length>e&&c(n,t,`Must be ${e} characters or fewer.`),o}function se(r,t,e){if(r!=null){if(!Number.isInteger(r)||Number(r)<0){c(e,t,"Expected a non-negative integer.");return}return Number(r)}}function $(r,t,e,n={}){if(r==null)return n.required?(c(e,t,"Expected at least one evidence id."),[]):void 0;if(!Array.isArray(r))return c(e,t,"Expected an array."),n.required?[]:void 0;const o=[];return r.forEach((i,a)=>{const d=u(i,`${t}.${a}`,l.id,e);d&&!o.includes(d)&&o.push(d)}),n.required&&o.length===0&&c(e,t,"Expected at least one evidence id."),o.length>0||n.required?o:void 0}function C(r,t,e,n){return r==null?t:typeof r!="boolean"?(c(n,e,"Expected a boolean."),t):r}function me(r,t){return r==null?"ACTIVE":r==="ACTIVE"||r==="PAUSED"||r==="DISABLED"?r:(c(t,"status","Expected ACTIVE, PAUSED, or DISABLED."),"ACTIVE")}function pe(r){return r.includes("@")&&r.includes(".")&&!r.includes(" ")}function U(r,t){if(r==null)return{type:"project"};const e=h(r,"source",t),n=e.type;return n==="project"?(m(e,"source",["type"],t),{type:"project"}):n==="dashboard"?(m(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 H(r,t){const e=h(r,"body",t),n=e.type;return n==="generated_analysis"?(m(e,"body",["type","instruction"],t),{type:"generated_analysis",instruction:u(e.instruction,"body.instruction",l.instruction,t)}):n==="custom_message"?(m(e,"body",["type","message"],t),{type:"custom_message",message:u(e.message,"body.message",l.customMessage,t)}):n==="none"?(m(e,"body",["type"],t),{type:"none"}):(c(t,"body.type","Expected generated_analysis, custom_message, or none."),{type:"none"})}function ue(r,t){if(r==null)return[...B];if(!Array.isArray(r))return c(t,"presentation.artifactFormats","Expected an array."),[...B];if(r.length===0)return c(t,"presentation.artifactFormats","Choose at least one artifact format."),[];const e=[];return r.forEach((n,o)=>{if(typeof n!="string"||!K.has(n)){c(t,`presentation.artifactFormats.${o}`,"Expected markdown or html.");return}e.includes(n)||e.push(n)}),e}function J(r,t){if(r==null)return{artifactFormats:[...B],includeEvidence:!0,includeSql:!0};const e=h(r,"presentation",t);m(e,"presentation",["artifactFormats","includeEvidence","includeSql","audience","tone","format"],t);const n={artifactFormats:ue(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&&(n.audience=o),i&&(n.tone=i),a&&(n.format=a),n}function ye(r,t,e){return Array.isArray(r)?(r.length===0&&c(e,t,"Expected at least one item."),r.length>g.maxListItems&&c(e,t,`Must have ${g.maxListItems} items or fewer.`),r.slice(0,g.maxListItems).map((n,o)=>u(n,`${t}.${o}`,l.contentItem,e)).filter(Boolean)):(c(e,t,"Expected an array."),[])}function ve(r,t,e){return r===null||typeof r=="string"||typeof r=="number"||typeof r=="boolean"?typeof r=="string"&&r.length>l.contentCell?(c(e,t,`Must be ${l.contentCell} characters or fewer.`),r.slice(0,l.contentCell)):typeof r=="number"&&!Number.isFinite(r)?(c(e,t,"Expected a finite number."),null):r:(c(e,t,"Expected a string, number, boolean, or null."),null)}function he(r,t,e){if(!Array.isArray(r))return c(e,t,"Expected an array."),[];r.length===0&&c(e,t,"Expected at least one column."),r.length>g.maxTableColumns&&c(e,t,`Must have ${g.maxTableColumns} columns or fewer.`);const n=new Set;return r.slice(0,g.maxTableColumns).map((o,i)=>{const a=`${t}.${i}`,d=h(o,a,e);m(d,a,["key","label","kind","align"],e);const s=u(d.key,`${a}.key`,l.id,e);s&&(n.has(s)&&c(e,`${a}.key`,"Column key must be unique."),n.add(s));const f=u(d.label,`${a}.label`,l.contentTitle,e),p=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:s,label:f,...p?{kind:p}:{},...I?{align:I}:{}}})}function ge(r,t,e,n){if(!Array.isArray(r))return c(n,t,"Expected an array."),[];r.length>g.maxTableRows&&c(n,t,`Must have ${g.maxTableRows} rows or fewer.`);const o=new Set(e.map(i=>i.key).filter(Boolean));return r.slice(0,g.maxTableRows).map((i,a)=>{const d=`${t}.${a}`,s=h(i,d,n);return Object.keys(s).forEach(f=>{o.has(f)||c(n,`${d}.${f}`,`Unexpected table cell "${f}".`)}),Object.fromEntries(e.map(f=>[f.key,ve(s[f.key]??null,`${d}.${f.key}`,n)]))})}function Ie(r,t,e){const n=`content.blocks.${t}`,o=h(r,n,e),i=o.type;if(i==="heading"){m(o,n,["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,`${n}.level`,"Expected 2 or 3.");const d=$(o.evidenceIds,`${n}.evidenceIds`,e);return{type:"heading",text:u(o.text,`${n}.text`,l.contentTitle,e),...a?{level:a}:{},...d?{evidenceIds:d}:{}}}if(i==="paragraph"){m(o,n,["type","text","evidenceIds"],e);const a=$(o.evidenceIds,`${n}.evidenceIds`,e);return{type:"paragraph",text:u(o.text,`${n}.text`,l.contentText,e),...a?{evidenceIds:a}:{}}}if(i==="finding"){m(o,n,["type","title","text","severity","evidenceIds"],e);const a=y(o.title,`${n}.title`,l.contentTitle,e),d=E(o.severity,`${n}.severity`,ce,"info, positive, warning, or critical",e);return{type:"finding",...a?{title:a}:{},text:u(o.text,`${n}.text`,l.contentText,e),...d?{severity:d}:{},evidenceIds:$(o.evidenceIds,`${n}.evidenceIds`,e,{required:!0})??[]}}if(i==="bullets"||i==="actions"||i==="limitations"){m(o,n,["type","title","items","evidenceIds"],e);const a=y(o.title,`${n}.title`,l.contentTitle,e),d=$(o.evidenceIds,`${n}.evidenceIds`,e);return{type:i,...a?{title:a}:{},items:ye(o.items,`${n}.items`,e),...d?{evidenceIds:d}:{}}}if(i==="metric"){m(o,n,["type","label","value","previousValue","delta","unit","evidenceIds"],e);const a=typeof o.value=="string"||typeof o.value=="number"?o.value:"";a===""&&c(e,`${n}.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,`${n}.previousValue`,"Expected a string, number, or null.");const s=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&&s===void 0&&c(e,`${n}.delta`,"Expected a string, number, or null.");const f=y(o.unit,`${n}.unit`,l.contentTitle,e),p=$(o.evidenceIds,`${n}.evidenceIds`,e);return{type:"metric",label:u(o.label,`${n}.label`,l.contentTitle,e),value:a,...d!==void 0?{previousValue:d}:{},...s!==void 0?{delta:s}:{},...f?{unit:f}:{},...p?{evidenceIds:p}:{}}}if(i==="kpi_grid"){m(o,n,["type","title","tiles","evidenceIds"],e);const a=y(o.title,`${n}.title`,l.contentTitle,e),d=Array.isArray(o.tiles)?o.tiles:[];Array.isArray(o.tiles)||c(e,`${n}.tiles`,"Expected an array."),d.length===0&&c(e,`${n}.tiles`,"Expected at least one tile."),d.length>g.maxKpiTiles&&c(e,`${n}.tiles`,`Must have ${g.maxKpiTiles} tiles or fewer.`);const s=d.slice(0,g.maxKpiTiles).map((p,I)=>{const b=`${n}.tiles.${I}`,v=h(p,b,e);m(v,b,["label","value","previousValue","delta","unit","evidenceIds"],e);const O=typeof v.value=="string"||typeof v.value=="number"?v.value:"";O===""&&c(e,`${b}.value`,"Expected a string or number.");const R=v.previousValue===void 0||v.previousValue===null||typeof v.previousValue=="string"||typeof v.previousValue=="number"?v.previousValue:void 0;v.previousValue!==void 0&&v.previousValue!==null&&R===void 0&&c(e,`${b}.previousValue`,"Expected a string, number, or null.");const w=v.delta===void 0||v.delta===null||typeof v.delta=="string"||typeof v.delta=="number"?v.delta:void 0;v.delta!==void 0&&v.delta!==null&&w===void 0&&c(e,`${b}.delta`,"Expected a string, number, or null.");const M=y(v.unit,`${b}.unit`,l.contentTitle,e),P=$(v.evidenceIds,`${b}.evidenceIds`,e);return{label:u(v.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,`${n}.evidenceIds`,e);return{type:"kpi_grid",...a?{title:a}:{},tiles:s,...f?{evidenceIds:f}:{}}}if(i==="progress"){m(o,n,["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))&&c(e,`${n}.value`,"Expected a finite number.");const d=y(o.detail,`${n}.detail`,l.contentText,e),s=$(o.evidenceIds,`${n}.evidenceIds`,e);return{type:"progress",label:u(o.label,`${n}.label`,l.contentTitle,e),value:a,...d?{detail:d}:{},...s?{evidenceIds:s}:{}}}if(i==="table"){m(o,n,["type","id","title","columns","rows","caption","totalRows","evidenceIds"],e);const a=he(o.columns,`${n}.columns`,e),d=y(o.title,`${n}.title`,l.contentTitle,e),s=y(o.id,`${n}.id`,l.id,e),f=y(o.caption,`${n}.caption`,l.contentItem,e),p=se(o.totalRows,`${n}.totalRows`,e),I=$(o.evidenceIds,`${n}.evidenceIds`,e);return{type:"table",...s?{id:s}:{},...d?{title:d}:{},columns:a,rows:ge(o.rows,`${n}.rows`,a,e),...f?{caption:f}:{},...p!==void 0?{totalRows:p}:{},...I?{evidenceIds:I}:{}}}if(i==="evidence_appendix"){m(o,n,["type","title","evidenceIds"],e);const a=y(o.title,`${n}.title`,l.contentTitle,e);return{type:"evidence_appendix",...a?{title:a}:{},evidenceIds:$(o.evidenceIds,`${n}.evidenceIds`,e,{required:!0})??[]}}if(i==="sql"){m(o,n,["type","title","sql","evidenceIds"],e);const a=y(o.title,`${n}.title`,l.contentTitle,e),d=u(o.sql,`${n}.sql`,l.contentSql,e),s=$(o.evidenceIds,`${n}.evidenceIds`,e);return{type:"sql",...a?{title:a}:{},sql:d,...s?{evidenceIds:s}:{}}}return c(e,`${n}.type`,"Expected heading, paragraph, finding, bullets, metric, kpi_grid, progress, table, actions, limitations, sql, or evidence_appendix."),{type:"paragraph",text:""}}function X(r){const t=[],e=h(r,"content",t);m(e,"content",["version","title","summary","blocks"],t),e.version!==1&&c(t,"content.version","Expected version 1.");const n=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,s)=>Ie(d,s,t));return F(t),{version:1,...n?{title:n}:{},...o?{summary:o}:{},blocks:a}}function be(r){try{return{valid:!0,value:X(r),issues:[]}}catch(t){if(t instanceof x)return{valid:!1,issues:t.issues};throw t}}function T(r,t,e,n){return typeof r=="string"&&e.includes(r)?r:(c(n,t,`Expected ${e.join(" or ")}.`),e[0])}function E(r,t,e,n,o){if(r!=null){if(typeof r=="string"&&e.has(r))return r;c(o,t,`Expected ${n}.`)}}function $e(r,t,e){if(r!=null){if(!Array.isArray(r)){c(e,t,"Expected an array.");return}return r}}function Ee(r,t,e){if(r!=null){if(!G(r)){c(e,t,"Expected an object.");return}return r}}function Ce(r,t,e){if(r==null)return;const n=h(r,t,e);m(n,t,fe,e);const o={},i=E(n.pageSize,`${t}.pageSize`,ne,"letter, legal, a4, a3, or tabloid",e),a=E(n.orientation,`${t}.orientation`,re,"portrait or landscape",e),d=E(n.delimiter,`${t}.delimiter`,oe,"comma, semicolon, or tab",e),s=E(n.sheetSelection,`${t}.sheetSelection`,ie,"current or all",e);i&&(o.pageSize=i),a&&(o.orientation=a),d&&(o.delimiter=d),s&&(o.sheetSelection=s);for(const f of["includeFilters","includeTimestamp","includeHeaders","useFormattedValues"])if(!(n[f]===void 0||n[f]===null)){if(typeof n[f]!="boolean"){c(e,`${t}.${f}`,"Expected a boolean.");continue}o[f]=n[f]}for(const f of["currentSheetId","currentSheetName","filterLine","selectedSheetId","cardType","theme"]){const p=y(n[f],`${t}.${f}`,l.id,e);p&&(o[f]=p)}for(const f of["filterValues","inlineFilterValues","sheetFilterValues","controlDefinitions","cardControlDefinitions","controlBindings"]){const p=$e(n[f],`${t}.${f}`,e);p&&(o[f]=p)}for(const f of["controlValues","tablePreferences","dashboardInputExecutionSnapshot"]){const p=Ee(n[f],`${t}.${f}`,e);p&&(o[f]=p)}return Object.keys(o).length>0?o:void 0}function A(r,t,e,n){const o=y(t,e,l.attachmentTitle,n);return o&&(r.title=o),r}function S(r,t,e,n){const o=Ce(t,e,n);return o&&(r.settings=o),r}function Te(r,t,e){const n=`attachments.${t}`,o=h(r,n,e),i=o.type;if(i==="dashboard"){m(o,n,["type","dashboardId","format","title","settings"],e);const a=A({type:"dashboard",dashboardId:u(o.dashboardId,`${n}.dashboardId`,l.id,e),format:T(o.format,`${n}.format`,["pdf"],e)},o.title,`${n}.title`,e);return S(a,o.settings,`${n}.settings`,e)}if(i==="dashboard_sheet"||i==="document_sheet"){m(o,n,["type","dashboardId","sheetId","format","title","settings"],e);const a=A({type:i,dashboardId:u(o.dashboardId,`${n}.dashboardId`,l.id,e),sheetId:u(o.sheetId,`${n}.sheetId`,l.id,e),format:T(o.format,`${n}.format`,["pdf"],e)},o.title,`${n}.title`,e);return S(a,o.settings,`${n}.settings`,e)}if(i==="visual"){m(o,n,["type","dashboardId","visualId","format","title","settings"],e);const a=A({type:"visual",dashboardId:u(o.dashboardId,`${n}.dashboardId`,l.id,e),visualId:u(o.visualId,`${n}.visualId`,l.id,e),format:T(o.format,`${n}.format`,["pdf","png"],e)},o.title,`${n}.title`,e);return S(a,o.settings,`${n}.settings`,e)}if(i==="card"){m(o,n,["type","dashboardId","cardId","format","title","settings"],e);const a=A({type:"card",dashboardId:u(o.dashboardId,`${n}.dashboardId`,l.id,e),cardId:u(o.cardId,`${n}.cardId`,l.id,e),format:T(o.format,`${n}.format`,["csv","pdf","png"],e)},o.title,`${n}.title`,e);return S(a,o.settings,`${n}.settings`,e)}return c(e,`${n}.type`,"Expected dashboard, dashboard_sheet, document_sheet, visual, or card."),{type:"dashboard",dashboardId:"",format:"pdf"}}function xe(r){switch(r.type){case"dashboard":return`${r.type}:${r.dashboardId}:${r.format}`;case"dashboard_sheet":case"document_sheet":return`${r.type}:${r.dashboardId}:${r.sheetId}:${r.format}`;case"visual":return`${r.type}:${r.dashboardId}:${r.visualId}:${r.format}`;case"card":return`${r.type}:${r.dashboardId}:${r.cardId}:${r.format}`}}function W(r,t){if(r==null)return[];if(!Array.isArray(r))return c(t,"attachments","Expected an array."),[];r.length>k&&c(t,"attachments",`Choose ${k} attachments or fewer.`);const e=r.slice(0,k).map((o,i)=>Te(o,i,t)),n=new Set;return e.forEach((o,i)=>{const a=xe(o);n.has(a)&&c(t,`attachments.${i}`,"Duplicate attachment."),n.add(a)}),e}function Y(r,t){if(r==null)return;const e=h(r,"limits",t);m(e,"limits",Object.keys(D),t);const n={};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}n[o]=i}),Object.keys(n).length>0?n:void 0}function F(r){if(r.length>0)throw new x(r)}function Z(r,t,e){r.type==="none"&&t.length===0&&c(e,"body","Add briefing instructions, a custom message, or at least one attachment.")}function V(r){const t=[],e=h(r,"jobConfig",t);m(e,"jobConfig",["kind","source","body","attachments","presentation","limits"],t),e.kind!==_&&c(t,"kind","Expected BRIEFING.");const n=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),F(t),{kind:_,source:n,body:o,attachments:i,presentation:a,...d?{limits:d}:{}}}function Ae(r){return V({...r,kind:_})}function N(r,t,e,n="deliveryConfig.recipients"){const o=`${n}.${t}`,i=h(r,o,e),a=i.type;if(a==="email"){m(i,o,["type","address","name"],e);const d=u(i.address,`${o}.address`,l.id,e),s=y(i.name,`${o}.name`,l.attachmentTitle,e);return d&&!pe(d)&&c(e,`${o}.address`,"Email address is invalid."),{type:"email",address:d,...s?{name:s}:{}}}return a==="user"?(m(i,o,["type","userId"],e),{type:"user",userId:u(i.userId,`${o}.userId`,l.id,e)}):a==="tenant_user"?(m(i,o,["type","tenantUserId"],e),{type:"tenant_user",tenantUserId:u(i.tenantUserId,`${o}.tenantUserId`,l.id,e)}):a==="group"?(m(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 Se(r,t){return r==null?[]:Array.isArray(r)?r.map((e,n)=>N(e,n,t)):(c(t,"deliveryConfig.recipients","Expected an array."),[])}function ke(r,t){if(!Array.isArray(r))return c(t,"deliveryConfig.channels","Expected an array."),[];const e=[];return r.forEach((n,o)=>{if(!z(n)){c(t,`deliveryConfig.channels.${o}`,"Expected EMAIL, WEBHOOK, SLACK, IN_APP, or TELEGRAM.");return}e.includes(n)||e.push(n)}),e}function _e(r,t,e){if(r==null)return;const n=h(r,t,e),o={};return Object.entries(n).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(r,t,e){if(r==null)return;const n=h(r,t,e);m(n,t,["url","method","headers","secretEncrypted"],e);const o=n.method===void 0||n.method===null?void 0:T(n.method,`${t}.method`,["POST","PUT"],e),i=_e(n.headers,`${t}.headers`,e),a=y(n.secretEncrypted,`${t}.secretEncrypted`,2e3,e);return{url:u(n.url,`${t}.url`,2e3,e),...o?{method:o}:{},...i?{headers:i}:{},...a?{secretEncrypted:a}:{}}}function Le(r,t,e){const n=h(r,t,e),o=n.type;if(o==="channel"){m(n,t,["type","channelId","channelName","isPrivate"],e);const i=y(n.channelName,`${t}.channelName`,l.attachmentTitle,e),a=n.isPrivate===void 0||n.isPrivate===null?void 0:C(n.isPrivate,!1,`${t}.isPrivate`,e);return{type:"channel",channelId:u(n.channelId,`${t}.channelId`,l.id,e),...i?{channelName:i}:{},...a!==void 0?{isPrivate:a}:{}}}return o==="dm"?(m(n,t,["type","recipient"],e),c(e,`${t}.type`,"Slack DM delivery is not supported in V1."),{type:"dm",recipient:N(n.recipient,0,e,`${t}.recipient`)}):(c(e,`${t}.type`,"Expected channel."),{type:"channel",channelId:""})}function Re(r,t,e){if(r==null)return;if(!Array.isArray(r)){c(e,t,"Expected an array.");return}const n=r.map((o,i)=>N(o,i,e,t));return n.length>0?n:void 0}function we(r,t,e){if(r==null)return;const n=h(r,t,e);m(n,t,["destination","threadMentions","postThreadDetail","includeDashboardLink","includeBriefingLink"],e);const o=Re(n.threadMentions,`${t}.threadMentions`,e),i=C(n.postThreadDetail,!0,`${t}.postThreadDetail`,e),a=C(n.includeDashboardLink,!0,`${t}.includeDashboardLink`,e),d=C(n.includeBriefingLink,!0,`${t}.includeBriefingLink`,e);return{destination:Le(n.destination,`${t}.destination`,e),...o?{threadMentions:o}:{},...n.postThreadDetail!==void 0?{postThreadDetail:i}:{},...n.includeDashboardLink!==void 0?{includeDashboardLink:a}:{},...n.includeBriefingLink!==void 0?{includeBriefingLink:d}:{}}}function De(r,t,e){const n=h(r,t,e);m(n,t,["subjectOverride","titleOverride","summaryOverride","actionBlockVisible","formatProfile","slackConfig","webhookConfig"],e);const o=E(n.formatProfile,`${t}.formatProfile`,ae,"concise, balanced, or detailed",e),i=y(n.subjectOverride,`${t}.subjectOverride`,500,e),a=y(n.titleOverride,`${t}.titleOverride`,500,e),d=y(n.summaryOverride,`${t}.summaryOverride`,2e3,e),s=C(n.actionBlockVisible,!0,`${t}.actionBlockVisible`,e),f=Be(n.webhookConfig,`${t}.webhookConfig`,e),p=we(n.slackConfig,`${t}.slackConfig`,e);return{...o?{formatProfile:o}:{},...i?{subjectOverride:i}:{},...a?{titleOverride:a}:{},...d?{summaryOverride:d}:{},...n.actionBlockVisible!==void 0?{actionBlockVisible:s}:{},...p?{slackConfig:p}:{},...f?{webhookConfig:f}:{}}}function Fe(r,t){if(r==null)return;const e=h(r,"deliveryConfig.channelConfigs",t),n={};return Object.entries(e).forEach(([o,i])=>{if(!z(o)){c(t,`deliveryConfig.channelConfigs.${o}`,"Expected a supported delivery channel.");return}n[o]=De(i,`deliveryConfig.channelConfigs.${o}`,t)}),Object.keys(n).length>0?n:void 0}function Ve(r,t){var s,f,p;if(r==null)return null;const e=h(r,"deliveryConfig",t);m(e,"deliveryConfig",["recipients","channels","channelConfigs"],t);const n=Fe(e.channelConfigs,t),o=Se(e.recipients,t),i=ke(e.channels,t),a=((f=(s=n==null?void 0:n.SLACK)==null?void 0:s.slackConfig)==null?void 0:f.destination.type)==="channel"&&!!n.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=n==null?void 0:n.SLACK)!=null&&p.slackConfig)&&c(t,"deliveryConfig.channelConfigs.SLACK","Slack config requires SLACK in deliveryConfig.channels."),{recipients:o,channels:i,...n?{channelConfigs:n}:{}}}function L(r){const t=[],e=h(r,"draft",t);m(e,"draft",["name","description","status","scheduleExpr","timezone","source","body","attachments","presentation","limits","deliveryConfig"],t);const n=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=me(e.status,t),s=U(e.source,t),f=H(e.body,t),p=W(e.attachments,t),I=J(e.presentation,t),b=Y(e.limits,t),v=Ve(e.deliveryConfig,t);return Z(f,p,t),F(t),{name:n,description:o,status:d,scheduleExpr:i,timezone:a,source:s,body:f,attachments:p,presentation:I,...b?{limits:b}:{},deliveryConfig:v}}function Ne(r){return L(r)}function ze(r){return L(r)}function Oe(r){try{return{valid:!0,value:L(r),issues:[]}}catch(t){if(t instanceof x)return{valid:!1,issues:t.issues};throw t}}function Me(r){try{return{valid:!0,value:V(r),issues:[]}}catch(t){if(t instanceof x)return{valid:!1,issues:t.issues};throw t}}function Pe(r){return typeof r=="string"&&K.has(r)}function z(r){return typeof r=="string"&&te.has(r)}exports.BRIEFING_ARTIFACT_FORMATS=j;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=Ne;exports.buildUpdateBriefingRequest=ze;exports.isBriefingArtifactFormat=Pe;exports.isBriefingDeliveryChannel=z;exports.normalizeBriefingContentDocument=X;exports.normalizeBriefingDraft=L;exports.normalizeBriefingJobConfig=V;exports.validateBriefingContentDocument=be;exports.validateBriefingDraft=Oe;exports.validateBriefingJobConfig=Me;
|
|
1
|
+
"use strict";var ae=Object.defineProperty;var ce=(t,n,e)=>n in t?ae(t,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[n]=e;var U=(t,n,e)=>ce(t,typeof n!="symbol"?n+"":n,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const le=require("../chunks/card-config-utils-15sRtebL.js"),q=["SUN","MON","TUE","WED","THU","FRI","SAT"],de=new Map(q.map((t,n)=>[t,n])),se={cadence:"weekly",hour:9,minute:0,weekdays:[1]};function fe(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 ue(t){return Number.isInteger(t.minute)&&t.minute>=0&&t.minute<=59&&Number.isInteger(t.hour)&&t.hour>=0&&t.hour<=23}function j(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 me(t){if(!ue(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=j(t.weekdays);if(!e)throw new Error("Choose at least one weekday.");return`${n} * * ${e.map(r=>q[r]).join(",")}`}case"twice_monthly":return`${n} 1,15 * *`;case"monthly":return`${n} 1 * *`}}function K(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 l=Number(e),f=Number(r);if(l>59||f>23||i!=="*")return{ok:!1,issue:"Choose a supported schedule."};if(o==="*"&&a==="*")return{ok:!0,value:{cadence:"daily",hour:f,minute:l,weekdays:[]}};if(o==="*"&&a!=="*"){const m=a.split(",").map(p=>de.get(p));if(m.some(p=>p===void 0))return{ok:!1,issue:"Choose a supported schedule."};const I=m,v=j(I);return!v||v.some((p,A)=>p!==I[A])?{ok:!1,issue:"Choose a supported schedule."}:{ok:!0,value:{cadence:"weekly",hour:f,minute:l,weekdays:v}}}return o==="1,15"&&a==="*"?{ok:!0,value:{cadence:"twice_monthly",hour:f,minute:l,weekdays:[]}}:o==="1"&&a==="*"?{ok:!0,value:{cadence:"monthly",hour:f,minute:l,weekdays:[]}}:{ok:!1,issue:"Choose a supported schedule."}}function pe(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 he(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 ye(t,n,e="en-US"){const r=K(t);if(!r.ok)return null;try{const o=pe(r.value.hour,r.value.minute,e),i=he(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(f=>a.format(new Date(Date.UTC(2023,0,1+f)))).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 ge=new Set(["table","aggregateTable","pivotTable","detailTable"]),be=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 ve(t){var r,o,i;const n=be.has(t.type)&&(t.type!=="custom"||!!((r=t.customCardPreferences)!=null&&r.url));return t.type==="text"||!n||le.isCardUnconfigured(t)?{formats:[],defaultFormat:null}:{formats:G({cardType:t.type,allowDownload:(o=t.preferences)==null?void 0:o.allowDownload}),defaultFormat:H({cardType:t.type,allowDownload:(i=t.preferences)==null?void 0:i.allowDownload})}}function G(t){return t.allowDownload===!1?["pdf"]:["pdf","csv"]}function H(t){return ge.has(t.cardType)&&t.allowDownload!==!1?"csv":"pdf"}function Ie(t){return t!=null&&t.role?t.type==="tenant"?t.role==="POWER_USER":["AUTHOR","ADMIN","SUPER_ADMIN"].includes(t.role):!1}function Ee(t){return t.canCreate?[...t.scheduledReportAvailable?["scheduled_report"]:[],...t.analyticalBriefingsEnabled?["analytical_briefing"]:[]]:[]}function W(t){const n=(t==null?void 0:t.channels)??[];return n.length===1&&n[0]==="EMAIL"}function Z(t){return t.body.type==="generated_analysis"?"Analytical briefing":t.body.type==="custom_message"&&t.attachments.length>0&&W(t.deliveryConfig)?t.scheduleExpr?"Scheduled report":"On-demand report":"Plain briefing"}function $e(t){const n=Z(t),e=n==="Scheduled report"||n==="On-demand report"?"report":"briefing";return{typeLabel:n,noun:e,pluralNoun:e==="report"?"reports":"briefings"}}const x="BRIEFING",J=["markdown","html"],B=["markdown"],S=20,d={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},b={maxBlocks:50,maxTableRows:100,maxTableColumns:20,maxTableCellCharacters:d.contentCell,maxParagraphCharacters:d.contentText,maxFindingCharacters:d.contentText,maxListItems:100,maxKpiTiles:8},Y=new Set(J),Te=new Set(["EMAIL","WEBHOOK","SLACK","IN_APP","TELEGRAM"]),F={maxToolCalls:{min:1,max:100},maxRows:{min:1,max:1e5},timeoutMs:{min:1e3,max:30*6e4}},Ce=new Set(["letter","legal","a4","a3","tabloid"]),Ae=new Set(["portrait","landscape"]),Se=new Set([",",";"," "]),ke=new Set(["current","all"]),xe=new Set(["concise","balanced","detailed"]),Be=new Set(["info","positive","warning","critical"]),we=new Set(["text","number","currency","percent","date","boolean"]),De=new Set(["left","center","right"]),_e=["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 C extends Error{constructor(e){super(e.map(r=>`${r.field}: ${r.message}`).join("; "));U(this,"issues");this.name="BriefingContractError",this.issues=e}}function X(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function c(t,n,e){t.push({field:n,message:e})}function g(t,n,e){return X(t)?t:(c(e,n,"Expected an object."),{})}function u(t,n,e,r){const o=new Set(e);Object.keys(t).forEach(i=>{o.has(i)||c(r,n?`${n}.${i}`:i,`Unexpected field "${i}".`)})}function y(t,n,e,r){if(typeof t!="string")return c(r,n,"Expected a string."),"";const o=t.trim();return o?(o.length>e&&c(r,n,`Must be ${e} characters or fewer.`),o):(c(r,n,"Required value cannot be empty."),"")}function h(t,n,e,r){if(t==null)return;if(typeof t!="string"){c(r,n,"Expected a string.");return}const o=t.trim();if(o)return o.length>e&&c(r,n,`Must be ${e} characters or fewer.`),o}function Fe(t,n,e,r){if(typeof t!="string")return c(r,n,"Expected a string."),"";const o=t.trim();return o.length>e&&c(r,n,`Must be ${e} characters or fewer.`),o}function Le(t,n,e){if(t!=null){if(!Number.isInteger(t)||Number(t)<0){c(e,n,"Expected a non-negative integer.");return}return Number(t)}}function E(t,n,e,r={}){if(t==null)return r.required?(c(e,n,"Expected at least one evidence id."),[]):void 0;if(!Array.isArray(t))return c(e,n,"Expected an array."),r.required?[]:void 0;const o=[];return t.forEach((i,a)=>{const l=y(i,`${n}.${a}`,d.id,e);l&&!o.includes(l)&&o.push(l)}),r.required&&o.length===0&&c(e,n,"Expected at least one evidence id."),o.length>0||r.required?o:void 0}function T(t,n,e,r){return t==null?n:typeof t!="boolean"?(c(r,e,"Expected a boolean."),n):t}function Ne(t,n){return t==null?"ACTIVE":t==="ACTIVE"||t==="PAUSED"||t==="DISABLED"?t:(c(n,"status","Expected ACTIVE, PAUSED, or DISABLED."),"ACTIVE")}function Re(t){return t.includes("@")&&t.includes(".")&&!t.includes(" ")}function Q(t,n){if(t==null)return{type:"project"};const e=g(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:y(e.dashboardId,"source.dashboardId",d.id,n)}):(c(n,"source.type","Expected project or dashboard."),{type:"project"})}function ee(t,n){const e=g(t,"body",n),r=e.type;return r==="generated_analysis"?(u(e,"body",["type","instruction"],n),{type:"generated_analysis",instruction:y(e.instruction,"body.instruction",d.instruction,n)}):r==="custom_message"?(u(e,"body",["type","message"],n),{type:"custom_message",message:Fe(e.message,"body.message",d.customMessage,n)}):r==="none"?(u(e,"body",["type"],n),{type:"none"}):(c(n,"body.type","Expected generated_analysis, custom_message, or none."),{type:"none"})}function Oe(t,n){if(t==null)return[...B];if(!Array.isArray(t))return c(n,"presentation.artifactFormats","Expected an array."),[...B];if(t.length===0)return c(n,"presentation.artifactFormats","Choose at least one artifact format."),[];const e=[];return t.forEach((r,o)=>{if(typeof r!="string"||!Y.has(r)){c(n,`presentation.artifactFormats.${o}`,"Expected markdown or html.");return}e.includes(r)||e.push(r)}),e}function te(t,n){if(t==null)return{artifactFormats:[...B],includeEvidence:!0,includeSql:!0};const e=g(t,"presentation",n);u(e,"presentation",["artifactFormats","includeEvidence","includeSql","audience","tone","format"],n);const r={artifactFormats:Oe(e.artifactFormats,n),includeEvidence:T(e.includeEvidence,!0,"presentation.includeEvidence",n),includeSql:T(e.includeSql,!0,"presentation.includeSql",n)},o=h(e.audience,"presentation.audience",d.presentationAudience,n),i=h(e.tone,"presentation.tone",d.presentationTone,n),a=h(e.format,"presentation.format",d.presentationFormat,n);return o&&(r.audience=o),i&&(r.tone=i),a&&(r.format=a),r}function Ve(t,n,e){return Array.isArray(t)?(t.length===0&&c(e,n,"Expected at least one item."),t.length>b.maxListItems&&c(e,n,`Must have ${b.maxListItems} items or fewer.`),t.slice(0,b.maxListItems).map((r,o)=>y(r,`${n}.${o}`,d.contentItem,e)).filter(Boolean)):(c(e,n,"Expected an array."),[])}function ze(t,n,e){return t===null||typeof t=="string"||typeof t=="number"||typeof t=="boolean"?typeof t=="string"&&t.length>d.contentCell?(c(e,n,`Must be ${d.contentCell} characters or fewer.`),t.slice(0,d.contentCell)):typeof t=="number"&&!Number.isFinite(t)?(c(e,n,"Expected a finite number."),null):t:(c(e,n,"Expected a string, number, boolean, or null."),null)}function Me(t,n,e){if(!Array.isArray(t))return c(e,n,"Expected an array."),[];t.length===0&&c(e,n,"Expected at least one column."),t.length>b.maxTableColumns&&c(e,n,`Must have ${b.maxTableColumns} columns or fewer.`);const r=new Set;return t.slice(0,b.maxTableColumns).map((o,i)=>{const a=`${n}.${i}`,l=g(o,a,e);u(l,a,["key","label","kind","align"],e);const f=y(l.key,`${a}.key`,d.id,e);f&&(r.has(f)&&c(e,`${a}.key`,"Column key must be unique."),r.add(f));const s=y(l.label,`${a}.label`,d.contentTitle,e),m=$(l.kind,`${a}.kind`,we,"text, number, currency, percent, date, or boolean",e),I=$(l.align,`${a}.align`,De,"left, center, or right",e);return{key:f,label:s,...m?{kind:m}:{},...I?{align:I}:{}}})}function Pe(t,n,e,r){if(!Array.isArray(t))return c(r,n,"Expected an array."),[];t.length>b.maxTableRows&&c(r,n,`Must have ${b.maxTableRows} rows or fewer.`);const o=new Set(e.map(i=>i.key).filter(Boolean));return t.slice(0,b.maxTableRows).map((i,a)=>{const l=`${n}.${a}`,f=g(i,l,r);return Object.keys(f).forEach(s=>{o.has(s)||c(r,`${l}.${s}`,`Unexpected table cell "${s}".`)}),Object.fromEntries(e.map(s=>[s.key,ze(f[s.key]??null,`${l}.${s.key}`,r)]))})}function Ue(t,n,e){const r=`content.blocks.${n}`,o=g(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&&c(e,`${r}.level`,"Expected 2 or 3.");const l=E(o.evidenceIds,`${r}.evidenceIds`,e);return{type:"heading",text:y(o.text,`${r}.text`,d.contentTitle,e),...a?{level:a}:{},...l?{evidenceIds:l}:{}}}if(i==="paragraph"){u(o,r,["type","text","evidenceIds"],e);const a=E(o.evidenceIds,`${r}.evidenceIds`,e);return{type:"paragraph",text:y(o.text,`${r}.text`,d.contentText,e),...a?{evidenceIds:a}:{}}}if(i==="finding"){u(o,r,["type","title","text","severity","evidenceIds"],e);const a=h(o.title,`${r}.title`,d.contentTitle,e),l=$(o.severity,`${r}.severity`,Be,"info, positive, warning, or critical",e);return{type:"finding",...a?{title:a}:{},text:y(o.text,`${r}.text`,d.contentText,e),...l?{severity:l}:{},evidenceIds:E(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`,d.contentTitle,e),l=E(o.evidenceIds,`${r}.evidenceIds`,e);return{type:i,...a?{title:a}:{},items:Ve(o.items,`${r}.items`,e),...l?{evidenceIds:l}:{}}}if(i==="metric"){u(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 l=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&&l===void 0&&c(e,`${r}.previousValue`,"Expected a string, number, or null.");const f=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&&f===void 0&&c(e,`${r}.delta`,"Expected a string, number, or null.");const s=h(o.unit,`${r}.unit`,d.contentTitle,e),m=E(o.evidenceIds,`${r}.evidenceIds`,e);return{type:"metric",label:y(o.label,`${r}.label`,d.contentTitle,e),value:a,...l!==void 0?{previousValue:l}:{},...f!==void 0?{delta:f}:{},...s?{unit:s}:{},...m?{evidenceIds:m}:{}}}if(i==="kpi_grid"){u(o,r,["type","title","tiles","evidenceIds"],e);const a=h(o.title,`${r}.title`,d.contentTitle,e),l=Array.isArray(o.tiles)?o.tiles:[];Array.isArray(o.tiles)||c(e,`${r}.tiles`,"Expected an array."),l.length===0&&c(e,`${r}.tiles`,"Expected at least one tile."),l.length>b.maxKpiTiles&&c(e,`${r}.tiles`,`Must have ${b.maxKpiTiles} tiles or fewer.`);const f=l.slice(0,b.maxKpiTiles).map((m,I)=>{const v=`${r}.tiles.${I}`,p=g(m,v,e);u(p,v,["label","value","previousValue","delta","unit","evidenceIds"],e);const A=typeof p.value=="string"||typeof p.value=="number"?p.value:"";A===""&&c(e,`${v}.value`,"Expected a string or number.");const D=p.previousValue===void 0||p.previousValue===null||typeof p.previousValue=="string"||typeof p.previousValue=="number"?p.previousValue:void 0;p.previousValue!==void 0&&p.previousValue!==null&&D===void 0&&c(e,`${v}.previousValue`,"Expected a string, number, or null.");const _=p.delta===void 0||p.delta===null||typeof p.delta=="string"||typeof p.delta=="number"?p.delta:void 0;p.delta!==void 0&&p.delta!==null&&_===void 0&&c(e,`${v}.delta`,"Expected a string, number, or null.");const M=h(p.unit,`${v}.unit`,d.contentTitle,e),P=E(p.evidenceIds,`${v}.evidenceIds`,e);return{label:y(p.label,`${v}.label`,d.contentTitle,e),value:A,...D!==void 0?{previousValue:D}:{},..._!==void 0?{delta:_}:{},...M?{unit:M}:{},...P?{evidenceIds:P}:{}}}),s=E(o.evidenceIds,`${r}.evidenceIds`,e);return{type:"kpi_grid",...a?{title:a}:{},tiles:f,...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))&&c(e,`${r}.value`,"Expected a finite number.");const l=h(o.detail,`${r}.detail`,d.contentText,e),f=E(o.evidenceIds,`${r}.evidenceIds`,e);return{type:"progress",label:y(o.label,`${r}.label`,d.contentTitle,e),value:a,...l?{detail:l}:{},...f?{evidenceIds:f}:{}}}if(i==="table"){u(o,r,["type","id","title","columns","rows","caption","totalRows","evidenceIds"],e);const a=Me(o.columns,`${r}.columns`,e),l=h(o.title,`${r}.title`,d.contentTitle,e),f=h(o.id,`${r}.id`,d.id,e),s=h(o.caption,`${r}.caption`,d.contentItem,e),m=Le(o.totalRows,`${r}.totalRows`,e),I=E(o.evidenceIds,`${r}.evidenceIds`,e);return{type:"table",...f?{id:f}:{},...l?{title:l}:{},columns:a,rows:Pe(o.rows,`${r}.rows`,a,e),...s?{caption:s}:{},...m!==void 0?{totalRows:m}:{},...I?{evidenceIds:I}:{}}}if(i==="evidence_appendix"){u(o,r,["type","title","evidenceIds"],e);const a=h(o.title,`${r}.title`,d.contentTitle,e);return{type:"evidence_appendix",...a?{title:a}:{},evidenceIds:E(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`,d.contentTitle,e),l=y(o.sql,`${r}.sql`,d.contentSql,e),f=E(o.evidenceIds,`${r}.evidenceIds`,e);return{type:"sql",...a?{title:a}:{},sql:l,...f?{evidenceIds:f}:{}}}return c(e,`${r}.type`,"Expected heading, paragraph, finding, bullets, metric, kpi_grid, progress, table, actions, limitations, sql, or evidence_appendix."),{type:"paragraph",text:""}}function ne(t){const n=[],e=g(t,"content",n);u(e,"content",["version","title","summary","blocks"],n),e.version!==1&&c(n,"content.version","Expected version 1.");const r=h(e.title,"content.title",d.contentTitle,n),o=h(e.summary,"content.summary",d.contentSummary,n);Array.isArray(e.blocks)||c(n,"content.blocks","Expected an array.");const i=Array.isArray(e.blocks)?e.blocks:[];i.length===0&&c(n,"content.blocks","Expected at least one block."),i.length>b.maxBlocks&&c(n,"content.blocks",`Must have ${b.maxBlocks} blocks or fewer.`);const a=i.slice(0,b.maxBlocks).map((l,f)=>Ue(l,f,n));return R(n),{version:1,...r?{title:r}:{},...o?{summary:o}:{},blocks:a}}function qe(t){try{return{valid:!0,value:ne(t),issues:[]}}catch(n){if(n instanceof C)return{valid:!1,issues:n.issues};throw n}}function k(t,n,e,r){return typeof t=="string"&&e.includes(t)?t:(c(r,n,`Expected ${e.join(" or ")}.`),e[0])}function $(t,n,e,r,o){if(t!=null){if(typeof t=="string"&&e.has(t))return t;c(o,n,`Expected ${r}.`)}}function je(t,n,e){if(t!=null){if(!Array.isArray(t)){c(e,n,"Expected an array.");return}return t}}function Ke(t,n,e){if(t!=null){if(!X(t)){c(e,n,"Expected an object.");return}return t}}function Ge(t,n,e){if(t==null)return;const r=g(t,n,e);u(r,n,_e,e);const o={},i=$(r.pageSize,`${n}.pageSize`,Ce,"letter, legal, a4, a3, or tabloid",e),a=$(r.orientation,`${n}.orientation`,Ae,"portrait or landscape",e),l=$(r.delimiter,`${n}.delimiter`,Se,"comma, semicolon, or tab",e),f=$(r.sheetSelection,`${n}.sheetSelection`,ke,"current or all",e);i&&(o.pageSize=i),a&&(o.orientation=a),l&&(o.delimiter=l),f&&(o.sheetSelection=f);for(const s of["includeFilters","includeTimestamp","includeHeaders","useFormattedValues","allowDownload"])if(!(r[s]===void 0||r[s]===null)){if(typeof r[s]!="boolean"){c(e,`${n}.${s}`,"Expected a boolean.");continue}o[s]=r[s]}for(const s of["currentSheetId","currentSheetName","filterLine","selectedSheetId","cardType","theme"]){const m=h(r[s],`${n}.${s}`,d.id,e);m&&(o[s]=m)}for(const s of["filterValues","inlineFilterValues","sheetFilterValues","controlDefinitions","cardControlDefinitions","controlBindings"]){const m=je(r[s],`${n}.${s}`,e);m&&(o[s]=m)}for(const s of["controlValues","tablePreferences","dashboardInputExecutionSnapshot"]){const m=Ke(r[s],`${n}.${s}`,e);m&&(o[s]=m)}return Object.keys(o).length>0?o:void 0}function L(t,n,e,r){const o=h(n,e,d.attachmentTitle,r);return o&&(t.title=o),t}function N(t,n,e,r){const o=Ge(n,e,r);return o&&(t.settings=o),t}function He(t,n,e){const r=`attachments.${n}`,o=g(t,r,e),i=o.type;if(i==="dashboard"){u(o,r,["type","dashboardId","format","title","settings"],e);const a=L({type:"dashboard",dashboardId:y(o.dashboardId,`${r}.dashboardId`,d.id,e),format:k(o.format,`${r}.format`,["pdf"],e)},o.title,`${r}.title`,e);return N(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:y(o.dashboardId,`${r}.dashboardId`,d.id,e),sheetId:y(o.sheetId,`${r}.sheetId`,d.id,e),format:k(o.format,`${r}.format`,["pdf"],e)},o.title,`${r}.title`,e);return N(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:y(o.dashboardId,`${r}.dashboardId`,d.id,e),cardId:y(o.cardId,`${r}.cardId`,d.id,e),format:k(o.format,`${r}.format`,["csv","pdf"],e)},o.title,`${r}.title`,e);return N(a,o.settings,`${r}.settings`,e)}return c(e,`${r}.type`,"Expected dashboard, dashboard_sheet, document_sheet, or card."),{type:"dashboard",dashboardId:"",format:"pdf"}}function We(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 re(t,n){if(t==null)return[];if(!Array.isArray(t))return c(n,"attachments","Expected an array."),[];t.length>S&&c(n,"attachments",`Choose ${S} attachments or fewer.`);const e=t.slice(0,S).map((o,i)=>He(o,i,n)),r=new Set;return e.forEach((o,i)=>{const a=We(o);r.has(a)&&c(n,`attachments.${i}`,"Duplicate attachment."),r.add(a)}),e}function oe(t,n){if(t==null)return;const e=g(t,"limits",n);u(e,"limits",Object.keys(F),n);const r={};return Object.keys(F).forEach(o=>{const i=e[o];if(i==null)return;const a=F[o];if(typeof i!="number"||!Number.isInteger(i)||i<a.min||i>a.max){c(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 R(t){if(t.length>0)throw new C(t)}function ie(t,n,e){!(t.type==="generated_analysis"||t.type==="custom_message"&&!!t.message.trim())&&n.length===0&&c(e,"body","Add briefing instructions, a custom message, or at least one attachment.")}function O(t){const n=[],e=g(t,"jobConfig",n);u(e,"jobConfig",["kind","source","body","attachments","presentation","limits"],n),e.kind!==x&&c(n,"kind","Expected BRIEFING.");const r=Q(e.source,n),o=ee(e.body,n),i=re(e.attachments,n),a=te(e.presentation,n),l=oe(e.limits,n);return ie(o,i,n),R(n),{kind:x,source:r,body:o,attachments:i,presentation:a,...l?{limits:l}:{}}}function Ze(t){return O({...t,kind:x})}function V(t,n,e,r="deliveryConfig.recipients"){const o=`${r}.${n}`,i=g(t,o,e),a=i.type;if(a==="email"){u(i,o,["type","address","name"],e);const l=y(i.address,`${o}.address`,d.id,e),f=h(i.name,`${o}.name`,d.attachmentTitle,e);return l&&!Re(l)&&c(e,`${o}.address`,"Email address is invalid."),{type:"email",address:l,...f?{name:f}:{}}}return a==="user"?(u(i,o,["type","userId"],e),{type:"user",userId:y(i.userId,`${o}.userId`,d.id,e)}):a==="tenant_user"?(u(i,o,["type","tenantUserId"],e),{type:"tenant_user",tenantUserId:y(i.tenantUserId,`${o}.tenantUserId`,d.id,e)}):a==="group"?(u(i,o,["type","groupId"],e),{type:"group",groupId:y(i.groupId,`${o}.groupId`,d.id,e)}):(c(e,`${o}.type`,"Expected email, user, tenant_user, or group."),{type:"email",address:""})}function Je(t,n){return t==null?[]:Array.isArray(t)?t.map((e,r)=>V(e,r,n)):(c(n,"deliveryConfig.recipients","Expected an array."),[])}function Ye(t,n){if(!Array.isArray(t))return c(n,"deliveryConfig.channels","Expected an array."),[];const e=[];return t.forEach((r,o)=>{if(!z(r)){c(n,`deliveryConfig.channels.${o}`,"Expected EMAIL, WEBHOOK, SLACK, IN_APP, or TELEGRAM.");return}e.includes(r)||e.push(r)}),e}function Xe(t,n,e){if(t==null)return;const r=g(t,n,e),o={};return Object.entries(r).forEach(([i,a])=>{if(typeof a!="string"){c(e,`${n}.${i}`,"Expected a string.");return}o[i]=a.trim()}),Object.keys(o).length>0?o:void 0}function Qe(t,n,e){if(t==null)return;const r=g(t,n,e);u(r,n,["url","method","headers","secretEncrypted"],e);const o=r.method===void 0||r.method===null?void 0:k(r.method,`${n}.method`,["POST","PUT"],e),i=Xe(r.headers,`${n}.headers`,e),a=h(r.secretEncrypted,`${n}.secretEncrypted`,2e3,e);return{url:y(r.url,`${n}.url`,2e3,e),...o?{method:o}:{},...i?{headers:i}:{},...a?{secretEncrypted:a}:{}}}function et(t,n,e){const r=g(t,n,e),o=r.type;if(o==="channel"){u(r,n,["type","channelId","channelName","isPrivate"],e);const i=h(r.channelName,`${n}.channelName`,d.attachmentTitle,e),a=r.isPrivate===void 0||r.isPrivate===null?void 0:T(r.isPrivate,!1,`${n}.isPrivate`,e);return{type:"channel",channelId:y(r.channelId,`${n}.channelId`,d.id,e),...i?{channelName:i}:{},...a!==void 0?{isPrivate:a}:{}}}return o==="dm"?(u(r,n,["type","recipient"],e),c(e,`${n}.type`,"Slack DM delivery is not supported in V1."),{type:"dm",recipient:V(r.recipient,0,e,`${n}.recipient`)}):(c(e,`${n}.type`,"Expected channel."),{type:"channel",channelId:""})}function tt(t,n,e){if(t==null)return;if(!Array.isArray(t)){c(e,n,"Expected an array.");return}const r=t.map((o,i)=>V(o,i,e,n));return r.length>0?r:void 0}function nt(t,n,e){if(t==null)return;const r=g(t,n,e);u(r,n,["destination","threadMentions","postThreadDetail","includeDashboardLink","includeBriefingLink"],e);const o=tt(r.threadMentions,`${n}.threadMentions`,e),i=T(r.postThreadDetail,!0,`${n}.postThreadDetail`,e),a=T(r.includeDashboardLink,!0,`${n}.includeDashboardLink`,e),l=T(r.includeBriefingLink,!0,`${n}.includeBriefingLink`,e);return{destination:et(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:l}:{}}}function rt(t,n,e){const r=g(t,n,e);u(r,n,["subjectOverride","titleOverride","summaryOverride","actionBlockVisible","formatProfile","slackConfig","webhookConfig"],e);const o=$(r.formatProfile,`${n}.formatProfile`,xe,"concise, balanced, or detailed",e),i=h(r.subjectOverride,`${n}.subjectOverride`,500,e),a=h(r.titleOverride,`${n}.titleOverride`,500,e),l=h(r.summaryOverride,`${n}.summaryOverride`,2e3,e),f=T(r.actionBlockVisible,!0,`${n}.actionBlockVisible`,e),s=Qe(r.webhookConfig,`${n}.webhookConfig`,e),m=nt(r.slackConfig,`${n}.slackConfig`,e);return{...o?{formatProfile:o}:{},...i?{subjectOverride:i}:{},...a?{titleOverride:a}:{},...l?{summaryOverride:l}:{},...r.actionBlockVisible!==void 0?{actionBlockVisible:f}:{},...m?{slackConfig:m}:{},...s?{webhookConfig:s}:{}}}function ot(t,n){if(t==null)return;const e=g(t,"deliveryConfig.channelConfigs",n),r={};return Object.entries(e).forEach(([o,i])=>{if(!z(o)){c(n,`deliveryConfig.channelConfigs.${o}`,"Expected a supported delivery channel.");return}r[o]=rt(i,`deliveryConfig.channelConfigs.${o}`,n)}),Object.keys(r).length>0?r:void 0}function it(t,n){var f,s,m;if(t==null)return null;const e=g(t,"deliveryConfig",n);u(e,"deliveryConfig",["recipients","channels","channelConfigs"],n);const r=ot(e.channelConfigs,n),o=Je(e.recipients,n),i=Ye(e.channels,n),a=((s=(f=r==null?void 0:r.SLACK)==null?void 0:f.slackConfig)==null?void 0:s.destination.type)==="channel"&&!!r.SLACK.slackConfig.destination.channelId.trim();return i.some(I=>I!=="SLACK")&&o.length===0&&c(n,"deliveryConfig.recipients","Add at least one recipient or remove delivery config."),i.length===0&&c(n,"deliveryConfig.channels","Choose at least one delivery channel or remove delivery config."),i.includes("SLACK")&&!a&&c(n,"deliveryConfig.channelConfigs.SLACK.slackConfig.destination.channelId","Choose a Slack channel destination."),!i.includes("SLACK")&&((m=r==null?void 0:r.SLACK)!=null&&m.slackConfig)&&c(n,"deliveryConfig.channelConfigs.SLACK","Slack config requires SLACK in deliveryConfig.channels."),{recipients:o,channels:i,...r?{channelConfigs:r}:{}}}function w(t){const n=[],e=g(t,"draft",n);u(e,"draft",["name","description","status","scheduleExpr","timezone","source","body","attachments","presentation","limits","deliveryConfig"],n);const r=y(e.name,"name",d.name,n),o=h(e.description,"description",d.description,n)??null,i=h(e.scheduleExpr,"scheduleExpr",500,n)??null,a=h(e.timezone,"timezone",200,n)??"UTC",l=Ne(e.status,n),f=Q(e.source,n),s=ee(e.body,n),m=re(e.attachments,n),I=te(e.presentation,n),v=oe(e.limits,n),p=it(e.deliveryConfig,n);return ie(s,m,n),R(n),{name:r,description:o,status:l,scheduleExpr:i,timezone:a,source:f,body:s,attachments:m,presentation:I,...v?{limits:v}:{},deliveryConfig:p}}function at(t){return w(t)}function ct(t){return w(t)}function lt(t){try{return{valid:!0,value:w(t),issues:[]}}catch(n){if(n instanceof C)return{valid:!1,issues:n.issues};throw n}}function dt(t){try{return{valid:!0,value:O(t),issues:[]}}catch(n){if(n instanceof C)return{valid:!1,issues:n.issues};throw n}}function st(t){return typeof t=="string"&&Y.has(t)}function z(t){return typeof t=="string"&&Te.has(t)}exports.BRIEFING_ARTIFACT_FORMATS=J;exports.BRIEFING_CONTENT_LIMITS=b;exports.BRIEFING_KIND=x;exports.BRIEFING_TEXT_LIMITS=d;exports.BriefingContractError=C;exports.DEFAULT_BRIEFING_ARTIFACT_FORMATS=B;exports.DEFAULT_BRIEFING_SCHEDULE=se;exports.MAX_BRIEFING_ATTACHMENTS=S;exports.buildBriefingJobConfig=Ze;exports.buildBriefingScheduleExpr=me;exports.buildCreateBriefingRequest=at;exports.buildUpdateBriefingRequest=ct;exports.canCreateBriefingForUser=Ie;exports.describeBriefingSchedule=ye;exports.getBriefingCardAttachmentCapability=ve;exports.getBriefingCardAttachmentFormats=G;exports.getBriefingCreationIntents=Ee;exports.getBriefingDisplayTypeLabel=Z;exports.getBriefingPresentation=$e;exports.getDefaultBriefingCardAttachmentFormat=H;exports.isBriefingArtifactFormat=st;exports.isBriefingDeliveryChannel=z;exports.isEmailOnlyBriefingDelivery=W;exports.isValidBriefingTimezone=fe;exports.normalizeBriefingContentDocument=ne;exports.normalizeBriefingDraft=w;exports.normalizeBriefingJobConfig=O;exports.parseBriefingScheduleExpr=K;exports.validateBriefingContentDocument=qe;exports.validateBriefingDraft=lt;exports.validateBriefingJobConfig=dt;
|