@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.
- package/README.md +90 -8
- package/dist/cdn/centrinfo-widget-charts.js +5352 -4683
- package/dist/cdn/centrinfo-widget.js +169 -137
- package/dist/cdn/manifest.json +9 -9
- package/dist/echarts-runtime-CoBDVO7m.mjs +18 -0
- package/dist/echarts-runtime-w0DrsYLy.cjs +24 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.mjs +1 -1
- package/dist/runtime.cjs +2 -2
- package/dist/runtime.d.cts +48 -140
- package/dist/runtime.d.mts +42 -5
- package/dist/runtime.mjs +2 -2
- package/dist/styles-CCw1cP6m.cjs +3543 -0
- package/dist/styles-CiqV_OsG.mjs +3543 -0
- package/dist/{types-BuoTcoZu.d.cts → types-95uGbSpk.d.mts} +341 -16
- package/dist/{types-3zpBBhPI.d.mts → types-DAYxNBhI.d.cts} +201 -166
- package/package.json +2 -2
- package/dist/echarts-runtime-BfpVL8xu.cjs +0 -24
- package/dist/echarts-runtime-Bu1uy4oO.mjs +0 -18
- package/dist/styles-CwxqspIz.cjs +0 -3516
- package/dist/styles-yhqxR2ty.mjs +0 -3516
|
@@ -1,6 +1,21 @@
|
|
|
1
|
-
import * as
|
|
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
|
-
/**
|
|
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
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
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
|
-
|
|
562
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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/
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
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:
|
|
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
|
|
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 {
|
|
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
|
|
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.
|
|
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"
|