@accurix/centrinfo-widget 5.1.2 → 5.2.1

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.
@@ -1,6 +1,21 @@
1
- import * as preact1 from "preact";
2
- import { JSX } from "preact";
1
+ import * as preact0 from "preact";
3
2
 
3
+ //#region ../centrinfo-results/src/answer.d.ts
4
+ interface CentrinfoAnswer<Visualization = unknown, Source$1 = unknown, Artifact = unknown, Presentation = unknown> {
5
+ version: number;
6
+ kind: string;
7
+ status: string;
8
+ text: string;
9
+ explanation?: Record<string, unknown>;
10
+ visualization?: Visualization;
11
+ sources?: Source$1[];
12
+ artifacts?: Artifact[];
13
+ presentation?: Presentation;
14
+ feedbackId?: string;
15
+ generatedAt?: string;
16
+ timezone?: string;
17
+ }
18
+ //#endregion
4
19
  //#region ../centrinfo-results/src/analytics-chart-catalog.d.ts
5
20
  type AnalyticsChartCatalogType = 'kpi' | 'table' | 'line' | 'bar' | 'pie' | 'scatter' | 'effectScatter' | 'map' | 'candlestick' | 'boxplot' | 'graph' | 'lines' | 'tree' | 'treemap' | 'sunburst' | 'parallel' | 'sankey' | 'funnel' | 'heatmap' | 'radar' | 'gauge' | 'pictorialBar' | 'themeRiver' | 'matrix' | 'chord' | 'custom' | 'dataset' | 'dataZoom' | 'graphic' | 'richText' | 'globe' | 'bar3D' | 'scatter3D' | 'surface' | 'map3D' | 'lines3D' | 'line3D' | 'scatterGL' | 'linesGL' | 'flowGL' | 'graphGL' | 'polygons3D';
6
21
  //#endregion
@@ -172,6 +187,7 @@ interface AnalyticsAIExplanationInput {
172
187
  status: AnalyticsAIExplanationStatus | string;
173
188
  explanationId?: string;
174
189
  retryAvailable?: boolean;
190
+ retryAfterSeconds?: number;
175
191
  /** Pending only: when the backend job's budget ends (ISO time). */
176
192
  deadlineAt?: string;
177
193
  /** Pending only: seconds left in the job's budget at response time (clock-skew safe). */
@@ -225,10 +241,12 @@ declare const ANALYTICS_EXPLANATION_COPY: {
225
241
  readonly basicExplanation: "Basic explanation";
226
242
  readonly preparingDetailed: "Preparing a detailed explanation…";
227
243
  readonly stillWorkingDetailed: "Still working on the detailed explanation…";
244
+ readonly waitingToRetry: "Waiting briefly before retrying the detailed explanation…";
228
245
  readonly detailedReady: "Detailed explanation ready.";
229
246
  readonly detailedUnavailable: "A detailed explanation is not available right now.";
230
247
  readonly detailedRetry: "Try again";
231
248
  readonly region: "Explanation";
249
+ readonly details: "What this means";
232
250
  readonly drivers: "What is driving it";
233
251
  readonly driversHint: "Measured association, not proof of cause";
234
252
  readonly anomalies: "Unusual values";
@@ -316,6 +334,7 @@ interface AnalyticsAIExplanationJob<E extends AnalyticsExplanationInput> {
316
334
  status: AnalyticsAIExplanationStatus | string;
317
335
  explanationId?: string;
318
336
  retryAvailable?: boolean;
337
+ retryAfterSeconds?: number;
319
338
  /** Pending only: the job's deadline (ISO) and seconds left (see AnalyticsAIExplanationInput). */
320
339
  deadlineAt?: string;
321
340
  waitSeconds?: number;
@@ -332,86 +351,8 @@ interface AnalyticsAIExplanationTransport<E extends AnalyticsExplanationInput> {
332
351
  poll: (explanationId: string, signal?: AbortSignal) => Promise<AnalyticsAIExplanationJob<E>>;
333
352
  /** "Try again": re-request with the retry flag. Omit when retry is impossible. */
334
353
  retry?: (explanationId: string, signal?: AbortSignal) => Promise<AnalyticsAIExplanationJob<E>>;
335
- /** The job reached a final status: let the surface remember it (status only, not the payload). */
336
- settled?: (explanationId: string, status: 'ready' | 'failed' | 'not_requested') => void;
337
- }
338
- //#endregion
339
- //#region ../centrinfo-results/src/labels.d.ts
340
- type AnalyticsExplanationCopy = Required<AnalyticsExplanationCopyOverrides>;
341
- /** Every string the shared result renderer shows. Hosts override any subset. */
342
- interface ResultLabels {
343
- resultDetails: string;
344
- liveMetric: string;
345
- currentValue: string;
346
- noMatchTitle: string;
347
- noMatchBody: string;
348
- chartType: string;
349
- chooseChartType: string;
350
- aggregate: string;
351
- aggregateTitle: string;
352
- aggregateCharge: string;
353
- chartFallback: string;
354
- chartLine: string;
355
- chartBar: string;
356
- chartStackedBar: string;
357
- chartLineHint: string;
358
- chartBarHint: string;
359
- chartStackedBarHint: string;
360
- aggregationSum: string;
361
- aggregationAvg: string;
362
- aggregationMin: string;
363
- aggregationMax: string;
364
- aggregationCount: string;
365
- aggregationCountDistinct: string;
366
- download: string;
367
- downloadData: string;
368
- expandTable: string;
369
- expandChart: string;
370
- restoreView: string;
371
- aboutResult: string;
372
- aboutPeriod: string;
373
- aboutResults: string;
374
- aboutChecked: string;
375
- aboutTimezone: string;
376
- aboutSourceData: string;
377
- aboutFilters: string;
378
- /** `{count}` placeholder. */
379
- rowOne: string;
380
- rowMany: string;
381
- filtersOne: string;
382
- filtersMany: string;
383
- filtersApplied: string;
384
- notSet: string;
385
- noValue: string;
386
- yes: string;
387
- no: string;
388
- chartValues: string;
389
- /** `{measure}`, `{dimension}`. */
390
- chartTitle: string;
391
- seriesLimited: string;
392
- summaryLatest: string;
393
- summaryNoTrend: string;
394
- summaryHighest: string;
395
- summaryNoComparison: string;
396
- zoomControls: string;
397
- zoomIn: string;
398
- zoomOut: string;
399
- zoomReset: string;
400
- zoomResetShort: string;
401
- zoomNone: string;
402
- zoomAllOne: string;
403
- zoomAllMany: string;
404
- zoomRange: string;
405
- inProgress: string;
406
- newContent: string;
407
- updatedAt: string;
408
- liveData: string;
409
- viewData: string;
410
- hideData: string;
411
- inProgressLegend: string;
412
- /** Overrides for the explanation panel copy. */
413
- explanation?: Partial<AnalyticsExplanationCopy>;
414
- governedResult: string;
354
+ /** Remember the checked explanation alongside its final status. */
355
+ settled?: (explanationId: string, status: 'ready' | 'failed' | 'not_requested', explanation?: E) => void;
415
356
  }
416
357
  //#endregion
417
358
  //#region ../centrinfo-results/src/format.d.ts
@@ -454,6 +395,7 @@ interface AnalyticsVisualizationColumn$1 {
454
395
  currencyCode?: string;
455
396
  /** Time granularity of a date column; drives how its values are labelled. */
456
397
  grain?: ResultGrain;
398
+ timeGrain?: string;
457
399
  description?: string;
458
400
  priority?: 'primary' | 'secondary' | 'detail';
459
401
  sortable?: boolean;
@@ -461,6 +403,7 @@ interface AnalyticsVisualizationColumn$1 {
461
403
  groupable?: boolean;
462
404
  }
463
405
  interface AnalyticsVisualizationRecommendation$1 {
406
+ layers?: AnalyticsChartLayer[];
464
407
  type: AnalyticsChartCatalogType | 'area' | 'stacked_bar';
465
408
  mode: string;
466
409
  categoryField?: string;
@@ -473,6 +416,20 @@ interface AnalyticsVisualizationRecommendation$1 {
473
416
  confidence?: number;
474
417
  }
475
418
  interface AnalyticsVisualization$1 {
419
+ truncated?: boolean;
420
+ maxSeries?: number;
421
+ valueProvenance?: Array<{
422
+ rowIndex: number;
423
+ field: string;
424
+ status?: string;
425
+ filled?: string;
426
+ }>;
427
+ panels?: Array<{
428
+ id: string;
429
+ title: string;
430
+ status: string;
431
+ visualization?: AnalyticsVisualization$1;
432
+ }>;
476
433
  /** The latest time bucket is still in progress (drawn dashed). */
477
434
  lastPeriodInProgress?: boolean;
478
435
  /** Like-for-like comparison basis (reader-safe). */
@@ -542,82 +499,123 @@ interface ResultTableClassNames {
542
499
  note?: string;
543
500
  }
544
501
  //#endregion
545
- //#region ../centrinfo-results/src/chart.d.ts
546
- type WidgetAnalyticsSeries = {
547
- field: string;
548
- name: string;
549
- values: Array<number | null>;
550
- valueColumn?: AnalyticsVisualizationColumn$1;
551
- /** Like-for-like breakdown: per-point comparison (tooltip detail). */
552
- points?: Array<AnalyticsGroupComparisonPoint | undefined>;
553
- };
554
- type WidgetAnalyticsChartType = 'line' | 'bar' | 'stacked_bar';
555
- type WidgetAnalyticsChartModel = {
556
- type: WidgetAnalyticsChartType;
557
- title: string;
558
- xAxisTitle: string;
559
- yAxisTitle: string;
502
+ //#region ../centrinfo-results/src/combo-chart.d.ts
503
+ /** References governed result columns. Layers never contain queries or data. */
504
+ interface AnalyticsChartLayer {
505
+ sourceTitle?: string;
506
+ categorySourceTitle?: string;
507
+ type: 'line' | 'bar';
508
+ mode: string;
509
+ categoryField: string;
510
+ valueField: string;
511
+ seriesField?: string;
512
+ axis: 'y1' | 'y2';
513
+ }
514
+ interface AnalyticsComboModel {
560
515
  categories: string[];
561
- series: WidgetAnalyticsSeries[];
562
- summary: string;
516
+ categoryLabel: string;
517
+ series: Array<{
518
+ layer: number;
519
+ name: string;
520
+ type: 'line' | 'bar';
521
+ area: boolean;
522
+ stack?: string;
523
+ axis: number;
524
+ column: AnalyticsVisualizationColumn$1;
525
+ values: Array<number | null>;
526
+ reference?: boolean;
527
+ }>;
528
+ axes: Array<{
529
+ label: string;
530
+ column: AnalyticsVisualizationColumn$1;
531
+ }>;
563
532
  omittedSeriesCount: number;
564
- /** Index of the in-progress (latest) time bucket, drawn dashed / faded. */
565
- inProgressIndex?: number;
566
- /** Like-for-like breakdown: the comparison drawn (previous-to-date bars). */
567
- comparison?: AnalyticsPeriodComparison;
568
- /** "Today so far, compared with yesterday at this time". */
569
- comparisonNote?: string;
570
- locale?: string;
571
- /** Resolved copy used by the chart's tooltips, summary and zoom controls. */
572
- labels: ResultLabels;
573
- };
574
- type WidgetAnalyticsChartOptions = {
575
- locale?: string;
576
- labels?: Partial<ResultLabels>;
577
- };
578
- declare const buildWidgetAnalyticsChartModel: (visualization: AnalyticsVisualization$1, overrideType?: WidgetAnalyticsChartType, options?: WidgetAnalyticsChartOptions) => WidgetAnalyticsChartModel | null;
579
- declare const WidgetAnalyticsChart: ({
580
- model,
581
- expanded,
582
- classPrefix: p
583
- }: {
584
- model: WidgetAnalyticsChartModel;
585
- expanded?: boolean;
586
- /** Class prefix of the surface (`cf` widget, `ca` chat app). */
587
- classPrefix?: string;
588
- }) => preact1.JSX.Element;
589
- //#endregion
590
- //#region ../centrinfo-results/src/result.d.ts
591
- declare const formatResultCell: (value: unknown, locale?: string, column?: ResultColumn, context?: ResultFormatContext) => string;
592
- declare const serializeResultCsv: (rows: Array<Record<string, unknown>>, columns?: Array<string | ResultColumn>) => string;
593
- //#endregion
594
- //#region ../centrinfo-results/src/table.d.ts
595
- interface ResultTableProps {
596
- rows: Array<Record<string, unknown>>;
597
- columns?: Array<string | ResultColumn>;
598
- maxRows?: number;
533
+ partial: boolean;
599
534
  locale?: string;
600
- /** Timezone / grain / currency context so cells format like the chart. */
601
- format?: ResultFormatContext;
602
- expanded?: boolean;
603
- classNames?: ResultTableClassNames;
604
- emptyLabel?: string;
605
- }
606
- declare const ResultTable: ({
607
- rows,
608
- columns,
609
- maxRows,
610
- locale,
611
- format,
612
- expanded,
613
- classNames,
614
- emptyLabel
615
- }: ResultTableProps) => preact1.JSX.Element;
535
+ }
616
536
  //#endregion
617
- //#region ../centrinfo-results/src/result-details.d.ts
618
- interface AnalyticsResultDetail {
619
- label: string;
620
- value: string;
537
+ //#region ../centrinfo-results/src/labels.d.ts
538
+ type AnalyticsExplanationCopy = Required<AnalyticsExplanationCopyOverrides>;
539
+ /** Every string the shared result renderer shows. Hosts override any subset. */
540
+ interface ResultLabels {
541
+ analysisUnavailable: string;
542
+ resultDetails: string;
543
+ liveMetric: string;
544
+ currentValue: string;
545
+ noMatchTitle: string;
546
+ noMatchBody: string;
547
+ chartType: string;
548
+ chooseChartType: string;
549
+ aggregate: string;
550
+ aggregateTitle: string;
551
+ aggregateCharge: string;
552
+ chartFallback: string;
553
+ chartLine: string;
554
+ chartArea: string;
555
+ chartCombo: string;
556
+ chartAreaHint: string;
557
+ chartComboHint: string;
558
+ chartBar: string;
559
+ chartStackedBar: string;
560
+ chartLineHint: string;
561
+ chartBarHint: string;
562
+ chartStackedBarHint: string;
563
+ aggregationSum: string;
564
+ aggregationAvg: string;
565
+ aggregationMin: string;
566
+ aggregationMax: string;
567
+ aggregationCount: string;
568
+ aggregationCountDistinct: string;
569
+ download: string;
570
+ downloadData: string;
571
+ expandTable: string;
572
+ expandChart: string;
573
+ restoreView: string;
574
+ aboutResult: string;
575
+ aboutPeriod: string;
576
+ aboutResults: string;
577
+ aboutChecked: string;
578
+ aboutTimezone: string;
579
+ aboutSourceData: string;
580
+ aboutFilters: string;
581
+ /** `{count}` placeholder. */
582
+ rowOne: string;
583
+ rowMany: string;
584
+ filtersOne: string;
585
+ filtersMany: string;
586
+ filtersApplied: string;
587
+ notSet: string;
588
+ noValue: string;
589
+ yes: string;
590
+ no: string;
591
+ chartValues: string;
592
+ /** `{measure}`, `{dimension}`. */
593
+ chartTitle: string;
594
+ seriesLimited: string;
595
+ partialChart: string;
596
+ summaryLatest: string;
597
+ summaryNoTrend: string;
598
+ summaryHighest: string;
599
+ summaryNoComparison: string;
600
+ zoomControls: string;
601
+ zoomIn: string;
602
+ zoomOut: string;
603
+ zoomReset: string;
604
+ zoomResetShort: string;
605
+ zoomNone: string;
606
+ zoomAllOne: string;
607
+ zoomAllMany: string;
608
+ zoomRange: string;
609
+ inProgress: string;
610
+ newContent: string;
611
+ updatedAt: string;
612
+ liveData: string;
613
+ viewData: string;
614
+ hideData: string;
615
+ inProgressLegend: string;
616
+ /** Overrides for the explanation panel copy. */
617
+ explanation?: Partial<AnalyticsExplanationCopy>;
618
+ governedResult: string;
621
619
  }
622
620
  //#endregion
623
621
  //#region src/i18n.d.ts
@@ -630,6 +628,10 @@ interface AnalyticsResultDetail {
630
628
  * never produces.
631
629
  */
632
630
  interface WidgetStrings {
631
+ analyticsModelLabel: string;
632
+ analyticsModelAutomatic: string;
633
+ analyticsModelUnavailable: string;
634
+ testMode?: string;
633
635
  /**
634
636
  * Labels for analytics answers (KPI, chart, table, details, explanation).
635
637
  * Any subset overrides the English defaults; `explanation` holds the
@@ -706,6 +708,8 @@ interface WidgetStrings {
706
708
  stop: string;
707
709
  copy: string;
708
710
  copied: string;
711
+ doubleCheckResponse: string;
712
+ retryResponse: string;
709
713
  retry: string;
710
714
  clearChat: string;
711
715
  clearChatConfirm: string;
@@ -835,7 +839,7 @@ interface WidgetStrings {
835
839
  previewActionNote: string;
836
840
  previewBanner: string;
837
841
  }
838
- declare const StringsProvider: preact1.Provider<WidgetStrings>;
842
+ declare const StringsProvider: preact0.Provider<WidgetStrings>;
839
843
  //#endregion
840
844
  //#region src/api/types.d.ts
841
845
  /** The result metadata that arrives with (or after) an answer. */
@@ -893,6 +897,7 @@ interface LiveAudioSegment {
893
897
  text?: string;
894
898
  }
895
899
  interface TurnResult {
900
+ answerResult?: CentrinfoAnswer<AnalyticsVisualization, Source, ChatArtifact>;
896
901
  /** True when the reply was spoken in live pieces (onAudioSegment). */
897
902
  liveAudio?: boolean;
898
903
  answer: string;
@@ -924,6 +929,7 @@ interface AnalyticsVisualizationColumn {
924
929
  label: string;
925
930
  dataType: 'text' | 'number' | 'currency' | 'percent' | 'boolean' | 'date' | 'datetime';
926
931
  semanticRole: 'identifier' | 'dimension' | 'measure' | 'date' | 'geography' | 'boolean';
932
+ timeGrain?: string;
927
933
  aggregation?: 'none' | 'sum' | 'avg' | 'count' | 'count_distinct' | 'min' | 'max';
928
934
  allowedAggregations?: Array<'none' | 'sum' | 'avg' | 'count' | 'count_distinct' | 'min' | 'max'>;
929
935
  formatPattern?: string;
@@ -935,6 +941,7 @@ interface AnalyticsVisualizationColumn {
935
941
  groupable?: boolean;
936
942
  }
937
943
  interface AnalyticsVisualizationRecommendation {
944
+ layers?: AnalyticsChartLayer[];
938
945
  type: 'kpi' | 'table' | 'line' | 'area' | 'bar' | 'stacked_bar' | 'pie' | 'scatter' | 'funnel' | 'heatmap' | 'radar';
939
946
  mode: string;
940
947
  categoryField?: string;
@@ -1050,11 +1057,7 @@ interface AnalyticsVisualizationExplanation {
1050
1057
  followUps?: string[];
1051
1058
  source: 'governed_result' | 'ai_grounded' | 'rag_deterministic_analysis' | 'analysis_contract' | string;
1052
1059
  /** The detailed AI explanation that loads separately (poll by explanationId). */
1053
- aiExplanation?: {
1054
- status: string;
1055
- explanationId?: string;
1056
- retryAvailable?: boolean;
1057
- } | null;
1060
+ aiExplanation?: AnalyticsAIExplanationInput | null;
1058
1061
  }
1059
1062
  interface AnalyticsVisualizationAnalysis {
1060
1063
  summary: string;
@@ -1130,6 +1133,12 @@ interface AnalyticsVisualizationBusinessAnalysis {
1130
1133
  coverage?: AnalyticsVisualizationAnalysisCoverage;
1131
1134
  }
1132
1135
  interface AnalyticsVisualization {
1136
+ panels?: Array<{
1137
+ id: string;
1138
+ title: string;
1139
+ status: string;
1140
+ visualization?: AnalyticsVisualization;
1141
+ }>;
1133
1142
  version?: number;
1134
1143
  presentation?: 'kpi' | 'chart' | 'table';
1135
1144
  type: 'kpi' | 'table' | 'bar' | 'line' | 'area' | 'stacked_bar' | 'pie' | 'scatter' | 'funnel' | 'heatmap' | 'radar';
@@ -1212,6 +1221,10 @@ interface LiveEventsResult {
1212
1221
  events: LiveEvent[];
1213
1222
  }
1214
1223
  interface AuthenticatedHistoryMessage {
1224
+ answerResult?: CentrinfoAnswer<AnalyticsVisualization, {
1225
+ title?: string;
1226
+ url?: string;
1227
+ }, ChatArtifact>;
1215
1228
  id: string;
1216
1229
  role: 'user' | 'assistant' | 'system';
1217
1230
  content: string;
@@ -1239,6 +1252,7 @@ interface AuthenticatedHistoryResult {
1239
1252
  conversations: AuthenticatedHistoryConversation[];
1240
1253
  }
1241
1254
  interface StreamCallbacks {
1255
+ analyticsModelId?: string;
1242
1256
  /** Called with each incremental text chunk. */
1243
1257
  onChunk: (text: string) => void;
1244
1258
  /** The answer text and metadata have arrived; optional reply audio may follow. */
@@ -1332,10 +1346,7 @@ interface ExplanationFeedbackInput {
1332
1346
  /** Detailed AI explanation job for an analytics answer
1333
1347
  * (GET /public-chat/analytics-explanations/:id). `explanation` is set only
1334
1348
  * when ready and is the checked, public-safe explanation. */
1335
- interface ExplanationJob {
1336
- status: 'pending' | 'ready' | 'failed' | 'not_requested' | string;
1337
- explanationId?: string;
1338
- retryAvailable?: boolean;
1349
+ interface ExplanationJob extends AnalyticsAIExplanationInput {
1339
1350
  explanation?: Record<string, unknown> | null;
1340
1351
  /** The free basic explanation as updated by the job (gains the baseline sentence). */
1341
1352
  basic?: Record<string, unknown> | null;
@@ -1371,9 +1382,11 @@ interface GifResult {
1371
1382
  * backend (`ApiClient`) or the in-memory demo (`MockTransport`).
1372
1383
  */
1373
1384
  interface Transport {
1385
+ analyticsModels?(): Promise<AnalyticsModelOption[]>;
1374
1386
  bootstrap(): Promise<BootstrapInfo>;
1375
1387
  /** Server-backed history for the verified SDK customer. Anonymous returns empty. */
1376
1388
  history(): Promise<AuthenticatedHistoryResult>;
1389
+ updateHistory?(sessionId: string, action: 'rename' | 'delete', title?: string): Promise<void>;
1377
1390
  /** Stream a turn; resolves with final metadata once `done`. */
1378
1391
  stream(question: string, sessionId: string, cb: StreamCallbacks): Promise<TurnResult>;
1379
1392
  /** Poll for staff/system events after a timestamp during live handoff. */
@@ -1425,6 +1438,10 @@ interface Transport {
1425
1438
  /** "Try again" on a failed detailed AI explanation. Optional. */
1426
1439
  retryExplanation?(explanationId: string, sessionId: string, surface?: 'widget' | 'chat_app'): Promise<ExplanationJob>;
1427
1440
  }
1441
+ interface AnalyticsModelOption {
1442
+ id: string;
1443
+ name: string;
1444
+ }
1428
1445
  //#endregion
1429
1446
  //#region src/types.d.ts
1430
1447
  type ChatSurface = 'floating' | 'full-page';
@@ -1449,6 +1466,23 @@ interface WidgetTranslationBundle {
1449
1466
  }
1450
1467
  /** Public configuration surface passed to `Centrinfo.init()` / <CentrinfoWidget>. */
1451
1468
  interface WidgetConfig {
1469
+ /** Simple brand settings shared by the floating widget and full-page chat. */
1470
+ branding?: {
1471
+ name?: string;
1472
+ logo?: string;
1473
+ color?: string;
1474
+ };
1475
+ /** Simple composer options. Hiding a control does not change backend permissions. */
1476
+ composer?: {
1477
+ placeholder?: string;
1478
+ attachments?: boolean;
1479
+ voice?: boolean;
1480
+ modelSelector?: boolean;
1481
+ };
1482
+ /** Show the permitted analytics data models in chat. Defaults to true. */
1483
+ showAnalyticsModelSelector?: boolean;
1484
+ /** Initial analytics data model; backend permissions are always enforced. */
1485
+ analyticsModelId?: string;
1452
1486
  /** The org's public chat token (`pub_*`). Required. It IS the org identity. */
1453
1487
  token: string;
1454
1488
  /** Conversation namespace. Set by the SDK surface mounting the chat. */
@@ -1573,7 +1607,7 @@ interface WidgetConfig {
1573
1607
  /**
1574
1608
  * How often the open widget refreshes its public token configuration
1575
1609
  * (branding, greeting, starter questions, allowed actions, pause/offline
1576
- * state) from `/public-chat/bootstrap`. Default 30 seconds; set 0 to
1610
+ * state) from `/public-chat/bootstrap`. Default 300 seconds; set 0 to
1577
1611
  * disable live config refresh for strict traffic budgets.
1578
1612
  */
1579
1613
  configRefreshSeconds?: number;
@@ -1792,6 +1826,7 @@ interface Visitor {
1792
1826
  }
1793
1827
  /** Persona + capabilities returned by `GET /public-chat/bootstrap`. */
1794
1828
  interface BootstrapInfo {
1829
+ testMode?: boolean;
1795
1830
  agentName: string;
1796
1831
  agentAvatarUrl?: string;
1797
1832
  greeting: string;
@@ -1863,4 +1898,4 @@ interface SchedulerInfo {
1863
1898
  };
1864
1899
  }
1865
1900
  //#endregion
1866
- export { buildWidgetAnalyticsChartModel as A, StringsProvider as C, formatResultCell as D, ResultTable as E, AnalyticsAIExplanationTransport as M, AnalyticsExplanationInput as N, serializeResultCsv as O, Transport as S, AnalyticsResultDetail as T, DemoSlotsResult as _, MessageAttachment as a, PublicChatAction as b, Visitor as c, WidgetHandle as d, WidgetThemeTokens as f, DemoBooking as g, AnalyticsVisualization as h, FeaturedLink as i, ResultLabels as j, WidgetAnalyticsChart as k, WidgetActionTranslation as l, ActionResult as m, ChatArtifact as n, SchedulerInfo as o, WidgetUser as p, ChatMessage as r, Source as s, BootstrapInfo as t, WidgetConfig as u, ExplanationFeedbackInput as v, WidgetStrings as w, PublicChatActionField as x, GifResult as y };
1901
+ export { ResultColumn as A, Transport as C, AnalyticsComboModel as D, ResultLabels as E, AnalyticsGroupComparisonPoint as F, AnalyticsPeriodComparison as I, ResultFormatContext as M, AnalyticsAIExplanationTransport as N, AnalyticsVisualization$1 as O, AnalyticsExplanationInput as P, PublicChatActionField as S, WidgetStrings as T, DemoBooking as _, MessageAttachment as a, GifResult as b, Visitor as c, WidgetHandle as d, WidgetThemeTokens as f, AnalyticsVisualization as g, AnalyticsModelOption as h, FeaturedLink as i, ResultTableClassNames as j, AnalyticsVisualizationColumn$1 as k, WidgetActionTranslation as l, ActionResult as m, ChatArtifact as n, SchedulerInfo as o, WidgetUser as p, ChatMessage as r, Source as s, BootstrapInfo as t, WidgetConfig as u, DemoSlotsResult as v, StringsProvider as w, PublicChatAction as x, ExplanationFeedbackInput as y };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@accurix/centrinfo-widget",
3
- "version": "5.1.2",
3
+ "version": "5.2.1",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "sideEffects": [
@@ -53,7 +53,7 @@
53
53
  "typescript": "^5.8.0",
54
54
  "vite": "^7.0.0",
55
55
  "vitest": "^3.2.0",
56
- "wrangler": "^4.91.0",
56
+ "wrangler": "^4.148.0",
57
57
  "@accurix/centrinfo-results": "^0.1.0",
58
58
  "@accurix/centrinfo-voice": "^0.1.0",
59
59
  "@accurix/web-config-eslint": "^0.0.0"