@tangle-network/agent-app 0.45.49 → 0.45.50
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/assistant/index.d.ts +17 -1
- package/dist/assistant/index.js +38 -7
- package/dist/assistant/index.js.map +1 -1
- package/dist/{chunk-ZAKKG6WI.js → chunk-7HY4LX7O.js} +774 -162
- package/dist/chunk-7HY4LX7O.js.map +1 -0
- package/dist/web-react/index.d.ts +356 -2
- package/dist/web-react/index.js +42 -1
- package/package.json +1 -1
- package/dist/chunk-ZAKKG6WI.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
|
-
import { ReactNode, RefObject } from 'react';
|
|
2
|
+
import { ReactNode, RefObject, ReactElement, CSSProperties } from 'react';
|
|
3
3
|
import { ToolPart } from '@tangle-network/ui/types';
|
|
4
4
|
import { C as ChatInteractionField, I as InteractionAnswers, a as ChatInteractionStatus, b as ChatInteraction, c as InteractionCancelData, d as ChatSelectField, e as InteractionRequestWire } from '../contract-OxG_jVMx.js';
|
|
5
5
|
export { f as ChatFreeTextField, g as ComposerAnswerDelivery, h as INTERACTION_CANCEL_EVENT, i as INTERACTION_EVENT, j as INTERACTION_RESOLVED_EVENT, k as InteractionAnswerValue, l as InteractionPersistedPart, N as NoticeKind, m as NoticePersistedPart, P as ParseInteractionAnswersResult, n as ParseInteractionResult, o as canTransitionInteractionStatus, p as cancelStatusFor, q as composerAnswerData, r as composerAnswerDeliveries, s as dedupeQuestionInteractionsByContent, t as fieldAcceptsFreeText, u as interactionFromWireRequest, v as interactionPartKey, w as interactionToPersistedPart, x as isRenderableInteractionKind, y as isSafeInteractionFieldKey, z as isTerminalInteractionStatus, A as noticePart, B as noticePartKey, D as parseInteractionAnswers, E as parseInteractionCancel, F as parseInteractionRequest, G as persistedPartToInteraction, H as questionInteractionContentSignature, J as stampInteractionAnswers } from '../contract-OxG_jVMx.js';
|
|
@@ -1949,6 +1949,360 @@ interface RecordGridProps {
|
|
|
1949
1949
|
*/
|
|
1950
1950
|
declare function RecordGrid({ columns, caption, state, empty, onCreate, onUpdate, onDelete, newRowDefaults, addLabel, locale, toolbar, loadingRowCount, className, }: RecordGridProps): react.JSX.Element;
|
|
1951
1951
|
|
|
1952
|
+
/**
|
|
1953
|
+
* `Sparkline` — the series behind a number, as inline SVG.
|
|
1954
|
+
*
|
|
1955
|
+
* `/spend`, `/missions` and the eval lanes all produce a number for today, and
|
|
1956
|
+
* every product renders it as text. Text cannot separate "$41, up from $38"
|
|
1957
|
+
* from "$41, up from $4" — the same sentence, two different situations — so the
|
|
1958
|
+
* reader opens a second surface to find out which one they are in. The series
|
|
1959
|
+
* next to the number answers it in one glance.
|
|
1960
|
+
*
|
|
1961
|
+
* No chart dependency: this subpath is react + `@tangle-network/ui` only, and a
|
|
1962
|
+
* polyline is not worth a bundle. What a chart library would give us here is
|
|
1963
|
+
* axes, ticks and a tooltip, none of which belong on a 96×24 glyph.
|
|
1964
|
+
*
|
|
1965
|
+
* The three shapes a hand-rolled sparkline gets wrong, each handled here rather
|
|
1966
|
+
* than left to the caller:
|
|
1967
|
+
*
|
|
1968
|
+
* - **no readings** renders an explicit empty label, never a line. A line
|
|
1969
|
+
* along the baseline is a claim — "this metric sat at zero" — and a series
|
|
1970
|
+
* nobody has measured yet did not sit anywhere.
|
|
1971
|
+
* - **one reading** renders a point. A line needs two coordinates; drawing one
|
|
1972
|
+
* from a single reading invents the segment before it.
|
|
1973
|
+
* - **equal readings** render flat at MID height. The obvious normalisation
|
|
1974
|
+
* divides by `max - min`, which is `0` for a perfectly stable metric, and
|
|
1975
|
+
* the resulting `NaN` lands in the `points` attribute — SVG drops the whole
|
|
1976
|
+
* polyline, so the metric that never moved is the one that disappears.
|
|
1977
|
+
* - **a missing reading renders as a GAP, and the accessible name says so.**
|
|
1978
|
+
* A `null` from a hole in a series and a `NaN` from a producer's unguarded
|
|
1979
|
+
* division are not smaller series — they are readings nobody has. Deleting
|
|
1980
|
+
* them closed the line straight across the hole and announced a count that
|
|
1981
|
+
* was short by the number deleted: measured on `[1, NaN, 3]`, one continuous
|
|
1982
|
+
* two-point line labelled "2 readings, rising from 1 to 3", with nothing
|
|
1983
|
+
* anywhere saying a reading was unreadable. The card's figure slot already
|
|
1984
|
+
* refuses to let a non-measurement look measured; the series one line below
|
|
1985
|
+
* it holds the same rule. The x axis is the SAMPLE index, so the hole keeps
|
|
1986
|
+
* its width, the line breaks at it, and the label carries "N not available".
|
|
1987
|
+
*
|
|
1988
|
+
* Accessibility: `role="img"` with an `aria-label` naming the metric, its range
|
|
1989
|
+
* and its direction. A sparkline with no accessible name is decoration a screen
|
|
1990
|
+
* reader cannot report, which would leave the shape — the entire reason the
|
|
1991
|
+
* component exists — visible to exactly one kind of reader.
|
|
1992
|
+
*
|
|
1993
|
+
* Deliberately not animated. `docs/product-surfaces.md` Pattern 4 lists chart
|
|
1994
|
+
* draw-on under what this package does not animate: the shape IS the answer,
|
|
1995
|
+
* and easing it in taxes every read of a surface people sit in for hours. The
|
|
1996
|
+
* card around it arrives (`.agent-arrive`); the line does not draw itself.
|
|
1997
|
+
*/
|
|
1998
|
+
|
|
1999
|
+
/** Where a series ended relative to where it started. */
|
|
2000
|
+
type SparklineDirection = 'rising' | 'falling' | 'flat';
|
|
2001
|
+
interface SparklinePoint {
|
|
2002
|
+
readonly x: number;
|
|
2003
|
+
readonly y: number;
|
|
2004
|
+
}
|
|
2005
|
+
interface SparklineGeometry {
|
|
2006
|
+
/** The finite readings, in order — what was actually plotted. */
|
|
2007
|
+
readonly readings: readonly number[];
|
|
2008
|
+
/** Every plotted point, in order. Positions are on the SAMPLE axis, so a
|
|
2009
|
+
* missing reading leaves its width behind rather than closing up. */
|
|
2010
|
+
readonly points: readonly SparklinePoint[];
|
|
2011
|
+
/** The points split into runs of CONSECUTIVE samples. One run is one stroke:
|
|
2012
|
+
* a line drawn across a missing reading states a movement nobody measured. */
|
|
2013
|
+
readonly segments: readonly (readonly SparklinePoint[])[];
|
|
2014
|
+
/** Samples that carried no usable reading — a `null`, a `NaN`, an infinity.
|
|
2015
|
+
* Counted rather than discarded, because the accessible name has to state
|
|
2016
|
+
* them: a shorter series announced as a complete one is the silent loss. */
|
|
2017
|
+
readonly gaps: number;
|
|
2018
|
+
readonly min: number;
|
|
2019
|
+
readonly max: number;
|
|
2020
|
+
readonly first: number;
|
|
2021
|
+
readonly last: number;
|
|
2022
|
+
readonly direction: SparklineDirection;
|
|
2023
|
+
}
|
|
2024
|
+
interface SparklineGeometryOptions {
|
|
2025
|
+
width?: number;
|
|
2026
|
+
height?: number;
|
|
2027
|
+
/** Keeps the stroke and the end dot inside the viewBox instead of clipping
|
|
2028
|
+
* them at the extremes, where the interesting readings always are. */
|
|
2029
|
+
inset?: number;
|
|
2030
|
+
}
|
|
2031
|
+
declare const DEFAULT_SPARKLINE_WIDTH = 96;
|
|
2032
|
+
declare const DEFAULT_SPARKLINE_HEIGHT = 24;
|
|
2033
|
+
/** Only a name, never a metric: it exists so the accessible label is never
|
|
2034
|
+
* empty. Every caller in this package passes the metric's own title. */
|
|
2035
|
+
declare const DEFAULT_SPARKLINE_LABEL = "Trend";
|
|
2036
|
+
declare const DEFAULT_SPARKLINE_EMPTY_LABEL = "No history yet";
|
|
2037
|
+
/** Nothing was measurable, which is not the same as nothing was measured yet —
|
|
2038
|
+
* and "No history yet" over a series that arrived full of `NaN` reads as the
|
|
2039
|
+
* metric being new when the producer is broken. */
|
|
2040
|
+
declare const DEFAULT_SPARKLINE_UNAVAILABLE_LABEL = "No readings available";
|
|
2041
|
+
/** The package's default number rendering, pinned to `en-US` so a card and its
|
|
2042
|
+
* series read the same on every host — a series formatted by the server's
|
|
2043
|
+
* locale and a value formatted by the browser's is a defect nobody sees until
|
|
2044
|
+
* the decimal separators disagree. */
|
|
2045
|
+
declare function formatSparklineValue(value: number): string;
|
|
2046
|
+
/**
|
|
2047
|
+
* The readings that can be plotted.
|
|
2048
|
+
*
|
|
2049
|
+
* A `null` from a gap in a series, or a `NaN` from a division a producer did
|
|
2050
|
+
* not guard, is not plotted rather than coerced to `0`: plotting a missing
|
|
2051
|
+
* reading at the baseline draws a cliff that never happened.
|
|
2052
|
+
*
|
|
2053
|
+
* This returns the readings ALONE, so it cannot tell a caller how many are
|
|
2054
|
+
* missing. That is what {@link SparklineGeometry.gaps} is for, and what the
|
|
2055
|
+
* accessible name reports — dropping a sample and then announcing the shorter
|
|
2056
|
+
* count as the whole series is the defect, not the filter.
|
|
2057
|
+
*/
|
|
2058
|
+
declare function sparklineReadings(values: readonly number[]): number[];
|
|
2059
|
+
/**
|
|
2060
|
+
* Plots the series into the viewBox.
|
|
2061
|
+
*
|
|
2062
|
+
* Pure and exported so the cases that produce a broken chart — nothing, one
|
|
2063
|
+
* reading, a flat series, negatives — are unit-testable without a DOM.
|
|
2064
|
+
*/
|
|
2065
|
+
declare function sparklineGeometry(values: readonly number[], { width, height, inset }?: SparklineGeometryOptions): SparklineGeometry;
|
|
2066
|
+
/** `"2,14 48,3 94,21"` — the `points` attribute of the polyline. */
|
|
2067
|
+
declare function sparklinePointsAttribute(points: readonly SparklinePoint[]): string;
|
|
2068
|
+
interface SparklineLabelOptions {
|
|
2069
|
+
label?: string;
|
|
2070
|
+
format?: (value: number) => string;
|
|
2071
|
+
}
|
|
2072
|
+
/**
|
|
2073
|
+
* The accessible name: metric, how many readings, how many are missing, the
|
|
2074
|
+
* range, and the direction.
|
|
2075
|
+
*
|
|
2076
|
+
* All of it is load-bearing. The range without the direction describes a shape
|
|
2077
|
+
* that could have been walked in either order; the direction without the range
|
|
2078
|
+
* says "rising" about a metric that moved by a rounding error; and the count
|
|
2079
|
+
* without the gaps is the number of readings that SURVIVED announced as the
|
|
2080
|
+
* number that were taken — the shape a reader cannot see is exactly the one
|
|
2081
|
+
* this sentence exists to carry.
|
|
2082
|
+
*/
|
|
2083
|
+
declare function sparklineLabel(values: readonly number[], { label, format }?: SparklineLabelOptions): string;
|
|
2084
|
+
interface SparklineProps {
|
|
2085
|
+
values: readonly number[];
|
|
2086
|
+
/** Names the metric in the accessible label. */
|
|
2087
|
+
label?: string;
|
|
2088
|
+
/** Renders a reading in that label; defaults to the package number format. */
|
|
2089
|
+
format?: (value: number) => string;
|
|
2090
|
+
width?: number;
|
|
2091
|
+
height?: number;
|
|
2092
|
+
/** Shown instead of a line when the metric has no history yet. */
|
|
2093
|
+
emptyLabel?: string;
|
|
2094
|
+
/** Shown instead of a line when every sample arrived unreadable — a different
|
|
2095
|
+
* state from "no history yet", and one the reader has to be able to tell
|
|
2096
|
+
* apart, because one is a new metric and the other is a broken producer. */
|
|
2097
|
+
unavailableLabel?: string;
|
|
2098
|
+
className?: string;
|
|
2099
|
+
}
|
|
2100
|
+
/** The series glyph. Strokes in `currentColor`, so tone is the caller's. */
|
|
2101
|
+
declare function Sparkline({ values, label, format, width, height, emptyLabel, unavailableLabel, className, }: SparklineProps): ReactElement;
|
|
2102
|
+
|
|
2103
|
+
/**
|
|
2104
|
+
* `InsightCard` + `InsightDeck` — the number that moved, and the paged deck of
|
|
2105
|
+
* them.
|
|
2106
|
+
*
|
|
2107
|
+
* Every product on this shell computes insights already: `/spend` knows today's
|
|
2108
|
+
* burn against yesterday's, `/missions` knows how many runs landed, the eval
|
|
2109
|
+
* lanes know a pass rate per release. All of it renders as a line of text, so
|
|
2110
|
+
* the reader does the comparison in their head and the series behind the number
|
|
2111
|
+
* never reaches the screen at all.
|
|
2112
|
+
*
|
|
2113
|
+
* Two rules this surface exists to hold:
|
|
2114
|
+
*
|
|
2115
|
+
* - **A delta needs a baseline.** `previous` absent means no delta is drawn —
|
|
2116
|
+
* not a green `+0%`, which is the specific fabrication a hand-rolled card
|
|
2117
|
+
* produces when it defaults its baseline to zero, and which reads as "we
|
|
2118
|
+
* measured, nothing changed" when the truth is "we have nothing to compare
|
|
2119
|
+
* against". {@link insightDelta} returns `null` rather than a zero.
|
|
2120
|
+
* - **Direction is not sentiment.** Spend going up and missions going up are
|
|
2121
|
+
* the same arrow and opposite news, so tone is a caller declaration
|
|
2122
|
+
* (`polarity`), and the default is neutral. A card that paints every rise
|
|
2123
|
+
* green teaches the reader to stop reading the label.
|
|
2124
|
+
*
|
|
2125
|
+
* The deck is built on `web-react/async` rather than a loading boolean, so it
|
|
2126
|
+
* inherits that module's invariant instead of restating it: `AsyncView` renders
|
|
2127
|
+
* `error` with its message and retry, and `empty` is reachable only from a load
|
|
2128
|
+
* that resolved — a failed fetch can never paint "No insights yet"
|
|
2129
|
+
* (`docs/async-state-module.md`).
|
|
2130
|
+
*
|
|
2131
|
+
* Motion: cards arrive with `.agent-arrive`, staggered by `--stagger-index`
|
|
2132
|
+
* from the deck, and a page TURN remounts them so the next page arrives as a
|
|
2133
|
+
* sequence instead of swapping text under cards that never moved. A REFRESH is
|
|
2134
|
+
* the opposite case and gets the opposite treatment — see the deck's own note.
|
|
2135
|
+
* Every piece of that is decoration, carries no `data-motion`, and collapses
|
|
2136
|
+
* under `prefers-reduced-motion` — the live label included.
|
|
2137
|
+
*
|
|
2138
|
+
* The live label does NOT opt out, and the reasoning is worth stating because
|
|
2139
|
+
* the opposite reads plausible. What tells the reader a figure is still being
|
|
2140
|
+
* computed is the WORD (`liveLabel`, "Updating"): it is rendered only while
|
|
2141
|
+
* `live`, and a settled card does not render it at all. The sweep through its
|
|
2142
|
+
* glyphs is emphasis on a signal that is already there, not the signal. So a
|
|
2143
|
+
* reader who asked for less motion still sees the word — static, in the
|
|
2144
|
+
* shimmer's resting gradient, still legible, and still disappearing the moment
|
|
2145
|
+
* the figure is final. Nothing here overrides a request the reader made.
|
|
2146
|
+
*/
|
|
2147
|
+
|
|
2148
|
+
type InsightDirection = 'up' | 'down' | 'flat';
|
|
2149
|
+
/** Which way is good news for THIS metric. `neutral` is the default because it
|
|
2150
|
+
* is the only answer that is true for every metric. */
|
|
2151
|
+
type InsightPolarity = 'higher-is-better' | 'lower-is-better' | 'neutral';
|
|
2152
|
+
type InsightTone = 'positive' | 'negative' | 'neutral';
|
|
2153
|
+
interface InsightDelta {
|
|
2154
|
+
/** The baseline the move is measured against — rendered, so the delta is
|
|
2155
|
+
* never a number floating free of what produced it. */
|
|
2156
|
+
readonly previous: number;
|
|
2157
|
+
readonly absolute: number;
|
|
2158
|
+
/** `null` when the baseline is `0`: a share of nothing is undefined, and
|
|
2159
|
+
* "+∞%" or a silently-dropped percentage are both worse than the absolute. */
|
|
2160
|
+
readonly percent: number | null;
|
|
2161
|
+
readonly direction: InsightDirection;
|
|
2162
|
+
}
|
|
2163
|
+
/**
|
|
2164
|
+
* The move, or `null` when there is no honest one to state.
|
|
2165
|
+
*
|
|
2166
|
+
* `unknown` inputs on purpose: these arrive from a fetched payload, and the
|
|
2167
|
+
* cases that must not produce a delta — a missing baseline, a `null` from a
|
|
2168
|
+
* first-ever reading, a `NaN` from a producer's division — are exactly the ones
|
|
2169
|
+
* a narrower signature would let through as `0`.
|
|
2170
|
+
*/
|
|
2171
|
+
declare function insightDelta(value: unknown, previous: unknown): InsightDelta | null;
|
|
2172
|
+
/** Maps a direction onto good/bad news, which only the caller knows. */
|
|
2173
|
+
declare function insightDeltaTone(direction: InsightDirection, polarity?: InsightPolarity): InsightTone;
|
|
2174
|
+
/**
|
|
2175
|
+
* The delta as words: direction, magnitude, and the baseline it is measured
|
|
2176
|
+
* against. Words rather than an arrow plus a bare number, because the arrow is
|
|
2177
|
+
* `aria-hidden` and a reader hearing "12%" learns nothing about which way.
|
|
2178
|
+
*/
|
|
2179
|
+
declare function formatInsightDelta(delta: InsightDelta, format?: (value: number) => string): string;
|
|
2180
|
+
interface InsightAction {
|
|
2181
|
+
label: string;
|
|
2182
|
+
onClick: () => void;
|
|
2183
|
+
}
|
|
2184
|
+
interface InsightCardProps {
|
|
2185
|
+
/** What was measured, in the reader's words ("Spend today"). */
|
|
2186
|
+
title: string;
|
|
2187
|
+
/** The number that moved. A `string` renders verbatim — a total the caller
|
|
2188
|
+
* already formatted with its own currency — and takes no delta, because
|
|
2189
|
+
* there is nothing to subtract. A non-finite number is not a measurement and
|
|
2190
|
+
* renders as {@link INSIGHT_UNAVAILABLE_GLYPH}, never as "NaN" or "∞". */
|
|
2191
|
+
value: number | string;
|
|
2192
|
+
/** "USD", "runs", "%" — the unit the number is in, beside it rather than
|
|
2193
|
+
* glued into it, so the figure stays scannable. */
|
|
2194
|
+
unit?: string;
|
|
2195
|
+
/** The baseline. Absent ⇒ the card renders the value and no delta. */
|
|
2196
|
+
previous?: number;
|
|
2197
|
+
polarity?: InsightPolarity;
|
|
2198
|
+
/** One number format for the value, the delta and the series, so the three
|
|
2199
|
+
* cannot disagree about decimals on the same card. */
|
|
2200
|
+
format?: (value: number) => string;
|
|
2201
|
+
series?: readonly number[];
|
|
2202
|
+
/** Names the series in its accessible label; defaults to the card's title. */
|
|
2203
|
+
seriesLabel?: string;
|
|
2204
|
+
/** One line of context under the number — what the window is, what is
|
|
2205
|
+
* excluded. Not a restatement of the title. */
|
|
2206
|
+
description?: string;
|
|
2207
|
+
/** The next action for this insight. An element renders as supplied (a link,
|
|
2208
|
+
* a dialog trigger); the object form renders the standard button. */
|
|
2209
|
+
action?: InsightAction | ReactElement;
|
|
2210
|
+
/** The number is still being computed. The label's PRESENCE is the signal, so
|
|
2211
|
+
* it reads the same with motion collapsed — see the module note. */
|
|
2212
|
+
live?: boolean;
|
|
2213
|
+
liveLabel?: string;
|
|
2214
|
+
className?: string;
|
|
2215
|
+
style?: CSSProperties;
|
|
2216
|
+
}
|
|
2217
|
+
declare function InsightCard({ title, value, unit, previous, polarity, format, series, seriesLabel, description, action, live, liveLabel, className, style, }: InsightCardProps): ReactElement;
|
|
2218
|
+
interface Insight extends InsightCardProps {
|
|
2219
|
+
/** Stable across refreshes: it keys the card. Paired with the deck holding
|
|
2220
|
+
* the last loaded page across a reload, a stable id is what lets a settled
|
|
2221
|
+
* card keep its own DOM node — and therefore not replay its arrival — when
|
|
2222
|
+
* a poll returns the same insight. */
|
|
2223
|
+
readonly id: string;
|
|
2224
|
+
}
|
|
2225
|
+
declare const DEFAULT_INSIGHT_PAGE_SIZE = 3;
|
|
2226
|
+
/**
|
|
2227
|
+
* The page size — ONE definition, read by the count and by the slice.
|
|
2228
|
+
*
|
|
2229
|
+
* Two definitions is how a deck hides an insight with no error at all: a count
|
|
2230
|
+
* that divides by the raw `2.5` claims two pages of a five-card deck, a slice
|
|
2231
|
+
* that floors it puts two cards on each, and the fifth card is on no page the
|
|
2232
|
+
* reader can reach. Nothing renders wrong; a card is simply gone.
|
|
2233
|
+
*
|
|
2234
|
+
* A page size is a count of cards, so a fraction, a zero and a negative are not
|
|
2235
|
+
* smaller decks — they are caller mistakes, and this normalises them back to the
|
|
2236
|
+
* default and says so once per offending value. Normalised rather than thrown
|
|
2237
|
+
* because the value is often computed from a measured viewport, where the first
|
|
2238
|
+
* paint legitimately produces a `0`: a deck that pages in threes is a far
|
|
2239
|
+
* smaller failure than a dashboard that throws during render.
|
|
2240
|
+
*/
|
|
2241
|
+
declare function insightPageSize(pageSize?: number): number;
|
|
2242
|
+
/** Always at least one page, so "Page 1 of 0" cannot be rendered. */
|
|
2243
|
+
declare function insightPageCount(total: number, pageSize?: number): number;
|
|
2244
|
+
/** The items on `page`, with the page clamped into range — a deck whose list
|
|
2245
|
+
* shrank under the reader shows the last page that exists, never a blank one. */
|
|
2246
|
+
declare function insightPageSlice<T>(items: readonly T[], page: number, pageSize?: number): readonly T[];
|
|
2247
|
+
interface InsightDeckProps {
|
|
2248
|
+
/** The same five-state contract every other screen fetches through. */
|
|
2249
|
+
state: AsyncResourceState<readonly Insight[]>;
|
|
2250
|
+
/** Required by `AsyncView`: an empty deck must say what is missing and what
|
|
2251
|
+
* to do about it. */
|
|
2252
|
+
empty: AsyncEmptySpec | ReactElement;
|
|
2253
|
+
/** Names the region for assistive tech and titles nothing visually — the
|
|
2254
|
+
* cards carry their own headings. */
|
|
2255
|
+
label?: string;
|
|
2256
|
+
pageSize?: number;
|
|
2257
|
+
loadingLabel?: string;
|
|
2258
|
+
retryLabel?: string;
|
|
2259
|
+
className?: string;
|
|
2260
|
+
/**
|
|
2261
|
+
* The page the reader is ON, whatever moved them there.
|
|
2262
|
+
*
|
|
2263
|
+
* That includes the render-time clamp: a list that shrinks under a reader
|
|
2264
|
+
* standing on page 3 leaves them on the last page that exists, and a parent
|
|
2265
|
+
* persisting this to a URL or to storage would otherwise keep writing a page
|
|
2266
|
+
* number nothing can reach. Reported once per effective page, never twice for
|
|
2267
|
+
* the same one.
|
|
2268
|
+
*/
|
|
2269
|
+
onPageChange?: (page: number) => void;
|
|
2270
|
+
}
|
|
2271
|
+
/**
|
|
2272
|
+
* The paged deck.
|
|
2273
|
+
*
|
|
2274
|
+
* `AsyncView` owns the non-`ready` branches, which is what makes the invariant
|
|
2275
|
+
* structural here: the cards are rendered from one branch of that component,
|
|
2276
|
+
* and no branch of this one could paint the empty copy over a failure.
|
|
2277
|
+
*
|
|
2278
|
+
* **A REFRESH DOES NOT REPLACE WHAT IS ON SCREEN.** `useAsyncResource` re-enters
|
|
2279
|
+
* `loading` with no value held on every reload, and handing that straight to
|
|
2280
|
+
* `AsyncView` swaps the ready subtree for the busy block — which destroys the
|
|
2281
|
+
* DOM the reader is standing in. Measured, on a real reload: `document.
|
|
2282
|
+
* activeElement` fell to `document.body`, so a keyboard reader mid-page lost
|
|
2283
|
+
* their place on every automatic poll; and every settled card was a NEW node, so
|
|
2284
|
+
* `.agent-arrive` replayed across the whole visible page — the exact flash this
|
|
2285
|
+
* surface's motion rules exist to prevent. Holding the page NUMBER above the
|
|
2286
|
+
* boundary fixed the counter and none of that, because the subtree under it was
|
|
2287
|
+
* still being torn down.
|
|
2288
|
+
*
|
|
2289
|
+
* So the deck holds the last insights it rendered and keeps handing them to the
|
|
2290
|
+
* SAME `AsyncView` branch while a reload is in flight: same element, same
|
|
2291
|
+
* position, same keys — React reuses the nodes, focus stays where the reader put
|
|
2292
|
+
* it, and nothing re-animates. `aria-busy` on the region is the signal that a
|
|
2293
|
+
* load is in flight; a per-card one is `live` on the card.
|
|
2294
|
+
*
|
|
2295
|
+
* The bridge is only ever over a WAIT. `error` and `empty` are answers about the
|
|
2296
|
+
* resource, so they drop what was held and render their own branch — a failed
|
|
2297
|
+
* fetch still cannot paint stale numbers, and the async module's invariant is
|
|
2298
|
+
* untouched.
|
|
2299
|
+
*
|
|
2300
|
+
* It bridges one resource, not one component: if the SUBJECT changes (a
|
|
2301
|
+
* different workspace, a different window), give the deck a `key` so it remounts
|
|
2302
|
+
* rather than showing the previous subject's numbers while the new ones load.
|
|
2303
|
+
*/
|
|
2304
|
+
declare function InsightDeck({ state, empty, label, pageSize, loadingLabel, retryLabel, className, onPageChange, }: InsightDeckProps): ReactElement;
|
|
2305
|
+
|
|
1952
2306
|
/** Describe metrics related to a chat message including model, token counts, and duration */
|
|
1953
2307
|
interface ChatMessageMetrics {
|
|
1954
2308
|
modelUsed?: string;
|
|
@@ -2158,4 +2512,4 @@ declare function useThinkingSeconds(active: boolean): number;
|
|
|
2158
2512
|
*/
|
|
2159
2513
|
declare function ChatMessages({ messages, messageSize, chrome, models, renderMarkdown, renderExtras, durableCards, userLabel, agentLabel, loading, approval, onToolCallClick, toolRenderers, error, onRetry, renderEmpty, emptyState, header, resolveAttachmentUrl, workProductCards, }: ChatMessagesProps): react.JSX.Element;
|
|
2160
2514
|
|
|
2161
|
-
export { type ActivityTone, type AgentActivityPage, AgentActivityPanel, type AgentActivityPanelProps, type AgentActivityRecord, type AttachmentFileResult, CatalogModel, ChatAttachmentInput, ChatAttachmentKind, ChatAttachmentPart, ChatComposer, type ChatComposerProps, type ChatEmptyDoor, ChatEmptyState, type ChatEmptyStateProps, ChatInteraction, ChatInteractionField, type ChatInteractionRestoreMode, ChatInteractionStatus, ChatMentionPart, type ChatMessageMetrics, type ChatMessageSegment, ChatMessages, type ChatMessagesProps, ChatSelectField, type ChatStreamCallbacks, type ChatStreamToolCall, type ChatStreamToolResult, type ChatToolCallInfo, type ChatUiMessage, type ComposerFile, type ComposerFilePart, type ComposerSendFailure, type ComposerSendHandler, type ComposerSendOutcome, type ComposerSendPartsHandler, type ComposerSendRejected, type ComposerSendResult, type ConsumeChatStreamResult, DEFAULT_PROVENANCE_CONFIDENCE_POLICY, type DurableChatCard, DurableChatCards, type DurableChatCardsProps, type DurableInteractionAnswerSubmitterOptions, DurablePlanCard, type DurablePlanCardProps, DurablePlanClientError, type DurablePlanCurrentInput, type DurablePlanDecision, type DurablePlanDecisionClient, type DurablePlanDecisionClientOptions, type DurablePlanDecisionInput, type DurablePlanDecisionResult, type DurablePlanFollowUpReceipt, EMPTY_RECORD_GRID_OVERLAY, EvidenceLineageTable, type EvidenceLineageTableProps, ExceptionList, type ExceptionListProps, type FetchSessionPage, type FieldValues, FlowWaterfall, type FlowWaterfallProps, HarnessGlyph, type HarnessGlyphProps, INTERACTION_SUBMIT_TIMEOUT_MESSAGE, INTERACTION_SUBMIT_TIMEOUT_MS, InteractionActionButton, type InteractionAnswerSubmission, type InteractionAnswerSubmitterOptions, InteractionAnswers, type InteractionAttemptStore, InteractionBadge, type InteractionBadgeVariant, InteractionCancelData, InteractionPlanCard, type InteractionPlanCardProps, InteractionQuestionCard, type InteractionQuestionCardProps, InteractionRequestWire, type InteractionSubmitResult, type LinkLikeComponent, type LinkLikeProps, type MentionTextSegment, MessageAttachments, type MessageAttachmentsProps, MissionActivityLane, type MissionActivityLaneProps, PROVENANCE_BASES, type ProposalApprovalHandlers, type ProvenanceBasis, type ProvenanceBasisMeta, type ProvenanceConfidencePolicy, type ProvenanceGap, type ProvenanceGapKind, ProvenanceLegend, type ProvenanceLegendProps, type ProvenanceRecord, type ProvenanceSource, type ProvenanceSourceStatus, ProvenanceStamp, type ProvenanceStampProps, type ProvenanceStanding, type ProvenanceStandingMeta, ProvenanceValue, type ProvenanceValueProps, ProviderLogo, type ProviderLogoProps, QualityCheckList, type QualityCheckListProps, QuestionOptionList, type QuestionOptionListProps, RecordGrid, type RecordGridBooleanColumn, type RecordGridCellChange, type RecordGridCellOutcome, type RecordGridCellSource, type RecordGridColumn, type RecordGridColumnBase, type RecordGridCreateOutcome, type RecordGridCurrencyColumn, type RecordGridDateColumn, type RecordGridDependency, type RecordGridNumberColumn, type RecordGridOverlay, type RecordGridProps, type RecordGridRow, type RecordGridRowOutcome, type RecordGridSelectColumn, type RecordGridSelectOption, type RecordGridSourceBasis, type RecordGridTextColumn, type RecordGridValue, type RecordGridWriteOutcome, type RestoreChatInteractionsOptions, ReviewQueueItem, type ReviewQueuePage, ReviewQueuePanel, type ReviewQueuePanelProps, ReviewQueueState, RunDrillIn, type RunDrillInProps, SeatPaywall, type SeatPaywallProps, type SessionActionLabels, type SessionActions, type SessionActionsOptions, type SessionBulkAction, SessionHistoryPanel, type SessionHistoryPanelProps, type SessionHistoryState, type SessionPageQuery, type SmoothRevealOptions, type StreamChatOptions, type SubmitInteractionAnswer, type ToolDetailRenderers, type ToolRunRecord, type ToolRunStep, type UseChatInteractionsOptions, type UseChatInteractionsResult, type UseComposerAttachmentsOptions, type UseComposerAttachmentsResult, type UseDurablePlanFlowOptions, type UseDurablePlanFlowResult, type UseInfiniteScrollOptions, type UseSessionHistoryOptions, type WaterfallRow, WorkProductCard, type WorkProductCardProps, __resetAttachmentFileCacheForTests, activityTone, buildAnswerData, cancelChatInteraction, chatToolCallPart, consumeChatStream, createDurableInteractionAnswerSubmitter, createDurablePlanDecisionClient, createInteractionAnswerSubmitter, createMemoryInteractionAttemptStore, createSessionInteractionAttemptStore, describeProvenance, describeProvenanceSourceStatus, dispatchChatStreamLine, durableChatCardsFromParts, fieldAnswer, fieldValuesFromAnswers, formatActivityCost, formatActivityDuration, formatModelCost, formatRecordGridValue, formatSessionTimestamp, formatTokensPerSecond, hasSecretField, hydrateChatInteractions, interactionStatusLabels, interactionSubmissionSignature, interactionTerminalNotes, isLateAnswerableStatus, isRecordGridCellApplicable, lateAnswerMessage, loadAttachmentFile, loadingProvenanceSources, mergeActivityPages, mergeReviewQueuePages, nextRevealCount, parseRecordGridInput, pendingApprovalOf, projectRecordGridRows, provenanceBasisMeta, provenanceGaps, provenanceNextMove, provenanceStandingMeta, provenanceTriggerLabel, pruneRecordGridOverlay, readRecordGridCell, recordGridEditorText, recordGridFail, recordGridOk, recordGridRowLabel, resolveChatInteraction, resolveProvenanceStanding, responseErrorMessage, restoreChatInteractions, reviewQueueStateLabel, rollUpProvenanceStanding, sameRecordGridValue, segmentMentionContent, settleInteractionSubmit, standingFromConfidence, streamChatTurn, sumRecordGridColumn, terminalizePendingChatInteractions, triggerAttachmentDownload, upsertChatInteraction, useChatInteractions, useComposerAttachments, useDurablePlanFlow, useInfiniteScroll, useSessionActions, useSessionHistory, useSmoothText, useThinkingSeconds, validateRecordGridCell, validateRecordGridRow, waterfallLayout, weakerProvenanceStanding, withRecordGridCreated, withRecordGridRemoved, withRecordGridServerRow, withRecordGridUpdate, withoutRecordGridCreated, withoutRecordGridRemoved, withoutRecordGridUpdate, workProductPartsFromMessageParts, workProductStatusLabel };
|
|
2515
|
+
export { type ActivityTone, type AgentActivityPage, AgentActivityPanel, type AgentActivityPanelProps, type AgentActivityRecord, type AttachmentFileResult, CatalogModel, ChatAttachmentInput, ChatAttachmentKind, ChatAttachmentPart, ChatComposer, type ChatComposerProps, type ChatEmptyDoor, ChatEmptyState, type ChatEmptyStateProps, ChatInteraction, ChatInteractionField, type ChatInteractionRestoreMode, ChatInteractionStatus, ChatMentionPart, type ChatMessageMetrics, type ChatMessageSegment, ChatMessages, type ChatMessagesProps, ChatSelectField, type ChatStreamCallbacks, type ChatStreamToolCall, type ChatStreamToolResult, type ChatToolCallInfo, type ChatUiMessage, type ComposerFile, type ComposerFilePart, type ComposerSendFailure, type ComposerSendHandler, type ComposerSendOutcome, type ComposerSendPartsHandler, type ComposerSendRejected, type ComposerSendResult, type ConsumeChatStreamResult, DEFAULT_INSIGHT_PAGE_SIZE, DEFAULT_PROVENANCE_CONFIDENCE_POLICY, DEFAULT_SPARKLINE_EMPTY_LABEL, DEFAULT_SPARKLINE_HEIGHT, DEFAULT_SPARKLINE_LABEL, DEFAULT_SPARKLINE_UNAVAILABLE_LABEL, DEFAULT_SPARKLINE_WIDTH, type DurableChatCard, DurableChatCards, type DurableChatCardsProps, type DurableInteractionAnswerSubmitterOptions, DurablePlanCard, type DurablePlanCardProps, DurablePlanClientError, type DurablePlanCurrentInput, type DurablePlanDecision, type DurablePlanDecisionClient, type DurablePlanDecisionClientOptions, type DurablePlanDecisionInput, type DurablePlanDecisionResult, type DurablePlanFollowUpReceipt, EMPTY_RECORD_GRID_OVERLAY, EvidenceLineageTable, type EvidenceLineageTableProps, ExceptionList, type ExceptionListProps, type FetchSessionPage, type FieldValues, FlowWaterfall, type FlowWaterfallProps, HarnessGlyph, type HarnessGlyphProps, INTERACTION_SUBMIT_TIMEOUT_MESSAGE, INTERACTION_SUBMIT_TIMEOUT_MS, type Insight, type InsightAction, InsightCard, type InsightCardProps, InsightDeck, type InsightDeckProps, type InsightDelta, type InsightDirection, type InsightPolarity, type InsightTone, InteractionActionButton, type InteractionAnswerSubmission, type InteractionAnswerSubmitterOptions, InteractionAnswers, type InteractionAttemptStore, InteractionBadge, type InteractionBadgeVariant, InteractionCancelData, InteractionPlanCard, type InteractionPlanCardProps, InteractionQuestionCard, type InteractionQuestionCardProps, InteractionRequestWire, type InteractionSubmitResult, type LinkLikeComponent, type LinkLikeProps, type MentionTextSegment, MessageAttachments, type MessageAttachmentsProps, MissionActivityLane, type MissionActivityLaneProps, PROVENANCE_BASES, type ProposalApprovalHandlers, type ProvenanceBasis, type ProvenanceBasisMeta, type ProvenanceConfidencePolicy, type ProvenanceGap, type ProvenanceGapKind, ProvenanceLegend, type ProvenanceLegendProps, type ProvenanceRecord, type ProvenanceSource, type ProvenanceSourceStatus, ProvenanceStamp, type ProvenanceStampProps, type ProvenanceStanding, type ProvenanceStandingMeta, ProvenanceValue, type ProvenanceValueProps, ProviderLogo, type ProviderLogoProps, QualityCheckList, type QualityCheckListProps, QuestionOptionList, type QuestionOptionListProps, RecordGrid, type RecordGridBooleanColumn, type RecordGridCellChange, type RecordGridCellOutcome, type RecordGridCellSource, type RecordGridColumn, type RecordGridColumnBase, type RecordGridCreateOutcome, type RecordGridCurrencyColumn, type RecordGridDateColumn, type RecordGridDependency, type RecordGridNumberColumn, type RecordGridOverlay, type RecordGridProps, type RecordGridRow, type RecordGridRowOutcome, type RecordGridSelectColumn, type RecordGridSelectOption, type RecordGridSourceBasis, type RecordGridTextColumn, type RecordGridValue, type RecordGridWriteOutcome, type RestoreChatInteractionsOptions, ReviewQueueItem, type ReviewQueuePage, ReviewQueuePanel, type ReviewQueuePanelProps, ReviewQueueState, RunDrillIn, type RunDrillInProps, SeatPaywall, type SeatPaywallProps, type SessionActionLabels, type SessionActions, type SessionActionsOptions, type SessionBulkAction, SessionHistoryPanel, type SessionHistoryPanelProps, type SessionHistoryState, type SessionPageQuery, type SmoothRevealOptions, Sparkline, type SparklineDirection, type SparklineGeometry, type SparklineGeometryOptions, type SparklineLabelOptions, type SparklinePoint, type SparklineProps, type StreamChatOptions, type SubmitInteractionAnswer, type ToolDetailRenderers, type ToolRunRecord, type ToolRunStep, type UseChatInteractionsOptions, type UseChatInteractionsResult, type UseComposerAttachmentsOptions, type UseComposerAttachmentsResult, type UseDurablePlanFlowOptions, type UseDurablePlanFlowResult, type UseInfiniteScrollOptions, type UseSessionHistoryOptions, type WaterfallRow, WorkProductCard, type WorkProductCardProps, __resetAttachmentFileCacheForTests, activityTone, buildAnswerData, cancelChatInteraction, chatToolCallPart, consumeChatStream, createDurableInteractionAnswerSubmitter, createDurablePlanDecisionClient, createInteractionAnswerSubmitter, createMemoryInteractionAttemptStore, createSessionInteractionAttemptStore, describeProvenance, describeProvenanceSourceStatus, dispatchChatStreamLine, durableChatCardsFromParts, fieldAnswer, fieldValuesFromAnswers, formatActivityCost, formatActivityDuration, formatInsightDelta, formatModelCost, formatRecordGridValue, formatSessionTimestamp, formatSparklineValue, formatTokensPerSecond, hasSecretField, hydrateChatInteractions, insightDelta, insightDeltaTone, insightPageCount, insightPageSize, insightPageSlice, interactionStatusLabels, interactionSubmissionSignature, interactionTerminalNotes, isLateAnswerableStatus, isRecordGridCellApplicable, lateAnswerMessage, loadAttachmentFile, loadingProvenanceSources, mergeActivityPages, mergeReviewQueuePages, nextRevealCount, parseRecordGridInput, pendingApprovalOf, projectRecordGridRows, provenanceBasisMeta, provenanceGaps, provenanceNextMove, provenanceStandingMeta, provenanceTriggerLabel, pruneRecordGridOverlay, readRecordGridCell, recordGridEditorText, recordGridFail, recordGridOk, recordGridRowLabel, resolveChatInteraction, resolveProvenanceStanding, responseErrorMessage, restoreChatInteractions, reviewQueueStateLabel, rollUpProvenanceStanding, sameRecordGridValue, segmentMentionContent, settleInteractionSubmit, sparklineGeometry, sparklineLabel, sparklinePointsAttribute, sparklineReadings, standingFromConfidence, streamChatTurn, sumRecordGridColumn, terminalizePendingChatInteractions, triggerAttachmentDownload, upsertChatInteraction, useChatInteractions, useComposerAttachments, useDurablePlanFlow, useInfiniteScroll, useSessionActions, useSessionHistory, useSmoothText, useThinkingSeconds, validateRecordGridCell, validateRecordGridRow, waterfallLayout, weakerProvenanceStanding, withRecordGridCreated, withRecordGridRemoved, withRecordGridServerRow, withRecordGridUpdate, withoutRecordGridCreated, withoutRecordGridRemoved, withoutRecordGridUpdate, workProductPartsFromMessageParts, workProductStatusLabel };
|
package/dist/web-react/index.js
CHANGED
|
@@ -3,9 +3,15 @@ import {
|
|
|
3
3
|
ChatComposer,
|
|
4
4
|
ChatEmptyState,
|
|
5
5
|
ChatMessages,
|
|
6
|
+
DEFAULT_INSIGHT_PAGE_SIZE,
|
|
6
7
|
DEFAULT_MENTION_EMPTY_TEXT,
|
|
7
8
|
DEFAULT_MENTION_LIMIT,
|
|
8
9
|
DEFAULT_PROVENANCE_CONFIDENCE_POLICY,
|
|
10
|
+
DEFAULT_SPARKLINE_EMPTY_LABEL,
|
|
11
|
+
DEFAULT_SPARKLINE_HEIGHT,
|
|
12
|
+
DEFAULT_SPARKLINE_LABEL,
|
|
13
|
+
DEFAULT_SPARKLINE_UNAVAILABLE_LABEL,
|
|
14
|
+
DEFAULT_SPARKLINE_WIDTH,
|
|
9
15
|
DurableChatCards,
|
|
10
16
|
DurablePlanCard,
|
|
11
17
|
DurablePlanClientError,
|
|
@@ -14,6 +20,8 @@ import {
|
|
|
14
20
|
INDEX_REFRESH_AFTER_MS,
|
|
15
21
|
INTERACTION_SUBMIT_TIMEOUT_MESSAGE,
|
|
16
22
|
INTERACTION_SUBMIT_TIMEOUT_MS,
|
|
23
|
+
InsightCard,
|
|
24
|
+
InsightDeck,
|
|
17
25
|
InteractionActionButton,
|
|
18
26
|
InteractionBadge,
|
|
19
27
|
InteractionPlanCard,
|
|
@@ -28,6 +36,7 @@ import {
|
|
|
28
36
|
RunDrillIn,
|
|
29
37
|
SeatPaywall,
|
|
30
38
|
SessionHistoryPanel,
|
|
39
|
+
Sparkline,
|
|
31
40
|
__resetAttachmentFileCacheForTests,
|
|
32
41
|
activityTone,
|
|
33
42
|
buildAnswerData,
|
|
@@ -47,12 +56,19 @@ import {
|
|
|
47
56
|
fieldValuesFromAnswers,
|
|
48
57
|
formatActivityCost,
|
|
49
58
|
formatActivityDuration,
|
|
59
|
+
formatInsightDelta,
|
|
50
60
|
formatModelCost,
|
|
51
61
|
formatRecordGridValue,
|
|
52
62
|
formatSessionTimestamp,
|
|
63
|
+
formatSparklineValue,
|
|
53
64
|
formatTokensPerSecond,
|
|
54
65
|
hasSecretField,
|
|
55
66
|
hydrateChatInteractions,
|
|
67
|
+
insightDelta,
|
|
68
|
+
insightDeltaTone,
|
|
69
|
+
insightPageCount,
|
|
70
|
+
insightPageSize,
|
|
71
|
+
insightPageSlice,
|
|
56
72
|
interactionStatusLabels,
|
|
57
73
|
interactionSubmissionSignature,
|
|
58
74
|
interactionTerminalNotes,
|
|
@@ -86,6 +102,10 @@ import {
|
|
|
86
102
|
sameRecordGridValue,
|
|
87
103
|
segmentMentionContent,
|
|
88
104
|
settleInteractionSubmit,
|
|
105
|
+
sparklineGeometry,
|
|
106
|
+
sparklineLabel,
|
|
107
|
+
sparklinePointsAttribute,
|
|
108
|
+
sparklineReadings,
|
|
89
109
|
standingFromConfidence,
|
|
90
110
|
streamChatTurn,
|
|
91
111
|
sumRecordGridColumn,
|
|
@@ -111,7 +131,7 @@ import {
|
|
|
111
131
|
withoutRecordGridCreated,
|
|
112
132
|
withoutRecordGridRemoved,
|
|
113
133
|
withoutRecordGridUpdate
|
|
114
|
-
} from "../chunk-
|
|
134
|
+
} from "../chunk-7HY4LX7O.js";
|
|
115
135
|
import "../chunk-FBVLEGEG.js";
|
|
116
136
|
import {
|
|
117
137
|
EvidenceLineageTable,
|
|
@@ -154,6 +174,7 @@ import {
|
|
|
154
174
|
tabTerminalConnectionId,
|
|
155
175
|
useSandboxTerminalConnection
|
|
156
176
|
} from "../chunk-BATKJP3P.js";
|
|
177
|
+
import "../chunk-3UBAO3N5.js";
|
|
157
178
|
import "../chunk-PC2WYTK7.js";
|
|
158
179
|
import "../chunk-QY4BRKRJ.js";
|
|
159
180
|
import {
|
|
@@ -218,9 +239,15 @@ export {
|
|
|
218
239
|
ChatEmptyState,
|
|
219
240
|
ChatMessages,
|
|
220
241
|
DEFAULT_EFFORT_LEVELS,
|
|
242
|
+
DEFAULT_INSIGHT_PAGE_SIZE,
|
|
221
243
|
DEFAULT_MENTION_EMPTY_TEXT,
|
|
222
244
|
DEFAULT_MENTION_LIMIT,
|
|
223
245
|
DEFAULT_PROVENANCE_CONFIDENCE_POLICY,
|
|
246
|
+
DEFAULT_SPARKLINE_EMPTY_LABEL,
|
|
247
|
+
DEFAULT_SPARKLINE_HEIGHT,
|
|
248
|
+
DEFAULT_SPARKLINE_LABEL,
|
|
249
|
+
DEFAULT_SPARKLINE_UNAVAILABLE_LABEL,
|
|
250
|
+
DEFAULT_SPARKLINE_WIDTH,
|
|
224
251
|
DISPATCH_MAX_MEDIA_PARTS,
|
|
225
252
|
DISPATCH_MAX_PARTS,
|
|
226
253
|
DISPATCH_REQUEST_MAX_BYTES,
|
|
@@ -242,6 +269,8 @@ export {
|
|
|
242
269
|
INTERACTION_RESOLVED_EVENT,
|
|
243
270
|
INTERACTION_SUBMIT_TIMEOUT_MESSAGE,
|
|
244
271
|
INTERACTION_SUBMIT_TIMEOUT_MS,
|
|
272
|
+
InsightCard,
|
|
273
|
+
InsightDeck,
|
|
245
274
|
InteractionActionButton,
|
|
246
275
|
InteractionBadge,
|
|
247
276
|
InteractionPlanCard,
|
|
@@ -264,6 +293,7 @@ export {
|
|
|
264
293
|
RunDrillIn,
|
|
265
294
|
SeatPaywall,
|
|
266
295
|
SessionHistoryPanel,
|
|
296
|
+
Sparkline,
|
|
267
297
|
WorkProductCard,
|
|
268
298
|
__resetAttachmentFileCacheForTests,
|
|
269
299
|
activityTone,
|
|
@@ -301,12 +331,19 @@ export {
|
|
|
301
331
|
fileMentionsToParts,
|
|
302
332
|
formatActivityCost,
|
|
303
333
|
formatActivityDuration,
|
|
334
|
+
formatInsightDelta,
|
|
304
335
|
formatModelCost,
|
|
305
336
|
formatRecordGridValue,
|
|
306
337
|
formatSessionTimestamp,
|
|
338
|
+
formatSparklineValue,
|
|
307
339
|
formatTokensPerSecond,
|
|
308
340
|
hasSecretField,
|
|
309
341
|
hydrateChatInteractions,
|
|
342
|
+
insightDelta,
|
|
343
|
+
insightDeltaTone,
|
|
344
|
+
insightPageCount,
|
|
345
|
+
insightPageSize,
|
|
346
|
+
insightPageSlice,
|
|
310
347
|
interactionFromWireRequest,
|
|
311
348
|
interactionPartKey,
|
|
312
349
|
interactionStatusLabels,
|
|
@@ -362,6 +399,10 @@ export {
|
|
|
362
399
|
sameRecordGridValue,
|
|
363
400
|
segmentMentionContent,
|
|
364
401
|
settleInteractionSubmit,
|
|
402
|
+
sparklineGeometry,
|
|
403
|
+
sparklineLabel,
|
|
404
|
+
sparklinePointsAttribute,
|
|
405
|
+
sparklineReadings,
|
|
365
406
|
stampInteractionAnswers,
|
|
366
407
|
standingFromConfidence,
|
|
367
408
|
streamChatTurn,
|
package/package.json
CHANGED