@runtypelabs/persona 4.21.1 → 4.22.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/dist/animations/glyph-cycle.d.cts +1 -1
- package/dist/animations/glyph-cycle.d.ts +1 -1
- package/dist/animations/{types-B_JdVK9o.d.cts → types-9Vxm-PPz.d.cts} +136 -6
- package/dist/animations/{types-B_JdVK9o.d.ts → types-9Vxm-PPz.d.ts} +136 -6
- package/dist/animations/wipe.d.cts +1 -1
- package/dist/animations/wipe.d.ts +1 -1
- package/dist/animations-extra.d.cts +136 -6
- package/dist/animations-extra.d.ts +136 -6
- package/dist/{approval-ui-RNNBR5R3.js → approval-ui-K7R5Q5OC.js} +1 -1
- package/dist/approval-ui.cjs +2 -2
- package/dist/approval-ui.d.cts +221 -16
- package/dist/approval-ui.d.ts +221 -16
- package/dist/approval-ui.js +2 -2
- package/dist/artifacts-ui-F4N6VMKF.js +7 -0
- package/dist/artifacts-ui.cjs +1 -1
- package/dist/artifacts-ui.d.cts +221 -16
- package/dist/artifacts-ui.d.ts +221 -16
- package/dist/artifacts-ui.js +1 -1
- package/dist/chunk-NQLDCJAP.js +4 -0
- package/dist/codegen.cjs +1 -1
- package/dist/codegen.js +1 -1
- package/dist/context-mentions.d.cts +221 -16
- package/dist/context-mentions.d.ts +221 -16
- package/dist/event-stream-view-GL3ADRY2.js +1 -0
- package/dist/event-stream-view.cjs +1 -1
- package/dist/event-stream-view.d.cts +221 -16
- package/dist/event-stream-view.d.ts +221 -16
- package/dist/event-stream-view.js +1 -1
- package/dist/forms-ui.d.cts +234 -25
- package/dist/forms-ui.d.ts +234 -25
- package/dist/history-view.d.cts +136 -6
- package/dist/history-view.d.ts +136 -6
- package/dist/index.cjs +70 -70
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +302 -32
- package/dist/index.d.ts +302 -32
- package/dist/index.global.js +54 -54
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +69 -69
- package/dist/index.js.map +1 -1
- package/dist/launcher.global.js +2 -2
- package/dist/launcher.global.js.map +1 -1
- package/dist/session-reconnect.d.cts +221 -16
- package/dist/session-reconnect.d.ts +221 -16
- package/dist/smart-dom-reader.d.cts +221 -16
- package/dist/smart-dom-reader.d.ts +221 -16
- package/dist/testing.cjs +3 -3
- package/dist/testing.d.cts +3 -4
- package/dist/testing.d.ts +3 -4
- package/dist/testing.js +3 -3
- package/dist/theme-editor-preview.cjs +73 -73
- package/dist/theme-editor-preview.d.cts +221 -16
- package/dist/theme-editor-preview.d.ts +221 -16
- package/dist/theme-editor-preview.js +51 -51
- package/dist/theme-editor.cjs +4 -4
- package/dist/theme-editor.d.cts +221 -16
- package/dist/theme-editor.d.ts +221 -16
- package/dist/theme-editor.js +2 -2
- package/dist/theme-reference.cjs +1 -1
- package/dist/theme-reference.d.cts +65 -1
- package/dist/theme-reference.d.ts +65 -1
- package/dist/theme-reference.js +1 -1
- package/dist/voice-runtime.d.cts +6 -2
- package/dist/voice-runtime.d.ts +6 -2
- package/dist/webmcp-polyfill.js +1 -4
- package/dist/webmcp-runtime-JI7T4QYF.js +6 -0
- package/dist/webmcp-runtime.cjs +2 -2
- package/dist/webmcp-runtime.d.cts +34 -2
- package/dist/webmcp-runtime.d.ts +34 -2
- package/dist/webmcp-runtime.js +2 -2
- package/package.json +2 -2
- package/src/ask-user-question-tool.ts +1 -1
- package/src/client-history-rest.test.ts +2 -1
- package/src/client-visitor-history.test.ts +20 -4
- package/src/client.composer-options.test.ts +1 -1
- package/src/client.interrupt.test.ts +2 -2
- package/src/client.test.ts +477 -915
- package/src/client.ts +134 -494
- package/src/client.unified-tools.test.ts +76 -0
- package/src/components/artifact-preview.ts +5 -0
- package/src/components/event-stream-badge-theming.test.ts +162 -0
- package/src/components/event-stream-view.test.ts +76 -76
- package/src/components/event-stream-view.ts +55 -20
- package/src/components/tool-bubble.test.ts +12 -0
- package/src/components/tool-bubble.ts +13 -2
- package/src/event-stream-view-bundle.test.ts +2 -2
- package/src/generated/runtype-openapi-contract.ts +137 -1
- package/src/index-core.ts +2 -0
- package/src/internal/runtype-history-provider.test.ts +2 -2
- package/src/runtime/init.registry.test.ts +56 -0
- package/src/runtime/init.ts +17 -0
- package/src/session-history.test.ts +1 -1
- package/src/session.quote.test.ts +1 -1
- package/src/session.resubmit-from.test.ts +1 -1
- package/src/session.test.ts +5 -5
- package/src/session.ts +95 -36
- package/src/suggest-replies-tool.ts +1 -1
- package/src/testing/mock-stream.test.ts +37 -16
- package/src/testing/mock-stream.ts +14 -9
- package/src/types/theme.ts +41 -1
- package/src/types.ts +57 -15
- package/src/ui.ask-user-question-plugin.test.ts +7 -7
- package/src/ui.composer-defer-one.test.ts +6 -34
- package/src/ui.composer-draft-persistence.test.ts +1 -1
- package/src/ui.composer-quote.test.ts +1 -1
- package/src/ui.message-history-actions.test.ts +1 -1
- package/src/ui.reasoning-display.test.ts +136 -2
- package/src/ui.streaming-coalescing.test.ts +10 -13
- package/src/ui.ts +101 -35
- package/src/ui.typing-indicator.test.ts +216 -0
- package/src/ui.voice-custom-provider.test.ts +211 -0
- package/src/utils/__snapshots__/tokens-parity.test.ts.snap +1740 -0
- package/src/utils/event-stream-buffer.test.ts +13 -13
- package/src/utils/event-stream-capture.test.ts +20 -20
- package/src/utils/formatting.ts +22 -0
- package/src/utils/theme.ts +16 -0
- package/src/utils/throughput-tracker.test.ts +100 -142
- package/src/utils/throughput-tracker.ts +18 -132
- package/src/utils/tokens.ts +59 -0
- package/src/utils/voice-support.ts +18 -1
- package/src/voice/voice-turn-tracker.ts +18 -0
- package/src/webmcp-bridge.test.ts +132 -23
- package/src/webmcp-bridge.ts +27 -3
- package/src/webmcp-runtime-entry.ts +71 -11
- package/dist/artifacts-ui-J6AKUGTS.js +0 -7
- package/dist/chunk-HBE7LFNT.js +0 -4
- package/dist/event-stream-view-73NWKWVQ.js +0 -1
- package/dist/webmcp-runtime-P3CHZRHF.js +0 -6
- package/src/utils/__fixtures__/unified-translator.oracle.ts +0 -717
|
@@ -619,7 +619,11 @@ interface ColorPalette {
|
|
|
619
619
|
warning: ColorShade;
|
|
620
620
|
error: ColorShade;
|
|
621
621
|
info: ColorShade;
|
|
622
|
-
|
|
622
|
+
/** Event-stream tool badge family. */
|
|
623
|
+
purple?: ColorShade;
|
|
624
|
+
/** Event-stream agent badge family. */
|
|
625
|
+
teal?: ColorShade;
|
|
626
|
+
[key: string]: ColorShade | undefined;
|
|
623
627
|
}
|
|
624
628
|
interface SpacingScale {
|
|
625
629
|
0: string;
|
|
@@ -1191,6 +1195,38 @@ interface ToolBubbleTokens {
|
|
|
1191
1195
|
interface ReasoningBubbleTokens {
|
|
1192
1196
|
shadow: string;
|
|
1193
1197
|
}
|
|
1198
|
+
/** One event-stream badge chip: fill + text pair. The chip border derives
|
|
1199
|
+
* from `foreground` at ~31% alpha. */
|
|
1200
|
+
interface EventStreamBadgePairTokens {
|
|
1201
|
+
background: TokenReference<'color'>;
|
|
1202
|
+
foreground: TokenReference<'color'>;
|
|
1203
|
+
}
|
|
1204
|
+
/**
|
|
1205
|
+
* Event-stream inspector badge chips (`features.eventStream`), one pair per
|
|
1206
|
+
* unified event family. Materialized into every theme and emitted as
|
|
1207
|
+
* `--persona-event-badge-<family>-{bg,fg}`, with scheme-appropriate defaults:
|
|
1208
|
+
* light themes pair a 100-tone fill with a 700-tone text, the built-in dark
|
|
1209
|
+
* layer flips to a 900-tone fill with a 300-tone text. `badge.default` colors
|
|
1210
|
+
* event types no family matches.
|
|
1211
|
+
*/
|
|
1212
|
+
interface EventStreamTokens {
|
|
1213
|
+
badge: {
|
|
1214
|
+
/** `flow_*` events. */
|
|
1215
|
+
flow: EventStreamBadgePairTokens;
|
|
1216
|
+
/** `step_*` events. */
|
|
1217
|
+
step: EventStreamBadgePairTokens;
|
|
1218
|
+
/** `reasoning_*` events. */
|
|
1219
|
+
reasoning: EventStreamBadgePairTokens;
|
|
1220
|
+
/** `tool_*` events. */
|
|
1221
|
+
tool: EventStreamBadgePairTokens;
|
|
1222
|
+
/** `agent_*` events. */
|
|
1223
|
+
agent: EventStreamBadgePairTokens;
|
|
1224
|
+
/** `error` / `execution_error` events. */
|
|
1225
|
+
error: EventStreamBadgePairTokens;
|
|
1226
|
+
/** Any event type no other family matches. */
|
|
1227
|
+
default: EventStreamBadgePairTokens;
|
|
1228
|
+
};
|
|
1229
|
+
}
|
|
1194
1230
|
/** Scrollbar appearance shared by every scroller in the widget. */
|
|
1195
1231
|
interface ScrollbarTokens {
|
|
1196
1232
|
/** Thumb color. @default semantic.colors.border */
|
|
@@ -1539,6 +1575,8 @@ interface ComponentTokens {
|
|
|
1539
1575
|
attachment: AttachmentTokens;
|
|
1540
1576
|
toolBubble: ToolBubbleTokens;
|
|
1541
1577
|
reasoningBubble: ReasoningBubbleTokens;
|
|
1578
|
+
/** Event-stream inspector badge chips. */
|
|
1579
|
+
eventStream?: EventStreamTokens;
|
|
1542
1580
|
composer: ComposerChromeTokens;
|
|
1543
1581
|
/** Shared motion timing for composer chrome animation. */
|
|
1544
1582
|
motion?: MotionTokens;
|
|
@@ -1656,6 +1694,11 @@ type RuntypeExecutionStreamEvent = ({
|
|
|
1656
1694
|
iteration?: number;
|
|
1657
1695
|
role: "user" | "assistant" | "system";
|
|
1658
1696
|
seq: number;
|
|
1697
|
+
subagent?: {
|
|
1698
|
+
agentName?: string;
|
|
1699
|
+
parentToolCallId?: string;
|
|
1700
|
+
toolName: string;
|
|
1701
|
+
};
|
|
1659
1702
|
turnIndex?: number;
|
|
1660
1703
|
type: "turn_start";
|
|
1661
1704
|
}) | ({
|
|
@@ -1690,12 +1733,61 @@ type RuntypeExecutionStreamEvent = ({
|
|
|
1690
1733
|
role: "user" | "assistant" | "system";
|
|
1691
1734
|
seq: number;
|
|
1692
1735
|
stopReason?: "end_turn" | "max_tool_calls" | "length" | "content_filter" | "error" | "unknown";
|
|
1736
|
+
subagent?: {
|
|
1737
|
+
agentName?: string;
|
|
1738
|
+
parentToolCallId?: string;
|
|
1739
|
+
toolName: string;
|
|
1740
|
+
};
|
|
1693
1741
|
tokens?: {
|
|
1694
1742
|
input: number;
|
|
1695
1743
|
output: number;
|
|
1696
1744
|
};
|
|
1697
1745
|
type: "turn_complete";
|
|
1698
1746
|
}) | {
|
|
1747
|
+
executionId: string;
|
|
1748
|
+
id: string;
|
|
1749
|
+
iteration?: number;
|
|
1750
|
+
model?: string;
|
|
1751
|
+
ordinal: number;
|
|
1752
|
+
provider?: string;
|
|
1753
|
+
seq: number;
|
|
1754
|
+
startedAt?: string;
|
|
1755
|
+
stepId?: string;
|
|
1756
|
+
subagent?: {
|
|
1757
|
+
agentName?: string;
|
|
1758
|
+
parentToolCallId?: string;
|
|
1759
|
+
toolName: string;
|
|
1760
|
+
};
|
|
1761
|
+
turnId?: string;
|
|
1762
|
+
type: "model_call_start";
|
|
1763
|
+
} | {
|
|
1764
|
+
completedAt?: string;
|
|
1765
|
+
cost?: number;
|
|
1766
|
+
durationMs?: number;
|
|
1767
|
+
executionId: string;
|
|
1768
|
+
finishReason?: string;
|
|
1769
|
+
id: string;
|
|
1770
|
+
iteration?: number;
|
|
1771
|
+
model?: string;
|
|
1772
|
+
ordinal: number;
|
|
1773
|
+
provider?: string;
|
|
1774
|
+
responseModel?: string;
|
|
1775
|
+
seq: number;
|
|
1776
|
+
subagent?: {
|
|
1777
|
+
agentName?: string;
|
|
1778
|
+
parentToolCallId?: string;
|
|
1779
|
+
toolName: string;
|
|
1780
|
+
};
|
|
1781
|
+
success?: boolean;
|
|
1782
|
+
tokens?: {
|
|
1783
|
+
cacheRead?: number;
|
|
1784
|
+
cacheWrite?: number;
|
|
1785
|
+
input: number;
|
|
1786
|
+
output: number;
|
|
1787
|
+
};
|
|
1788
|
+
turnId?: string;
|
|
1789
|
+
type: "model_call_complete";
|
|
1790
|
+
} | {
|
|
1699
1791
|
executionId: string;
|
|
1700
1792
|
id: string;
|
|
1701
1793
|
index?: number;
|
|
@@ -1704,6 +1796,11 @@ type RuntypeExecutionStreamEvent = ({
|
|
|
1704
1796
|
seq: number;
|
|
1705
1797
|
startedAt?: string;
|
|
1706
1798
|
stepType?: string;
|
|
1799
|
+
subagent?: {
|
|
1800
|
+
agentName?: string;
|
|
1801
|
+
parentToolCallId?: string;
|
|
1802
|
+
toolName: string;
|
|
1803
|
+
};
|
|
1707
1804
|
totalSteps?: number;
|
|
1708
1805
|
type: "step_start";
|
|
1709
1806
|
} | ({
|
|
@@ -1731,6 +1828,11 @@ type RuntypeExecutionStreamEvent = ({
|
|
|
1731
1828
|
seq: number;
|
|
1732
1829
|
stepType?: string;
|
|
1733
1830
|
stopReason?: "end_turn" | "max_tool_calls" | "length" | "content_filter" | "error" | "unknown";
|
|
1831
|
+
subagent?: {
|
|
1832
|
+
agentName?: string;
|
|
1833
|
+
parentToolCallId?: string;
|
|
1834
|
+
toolName: string;
|
|
1835
|
+
};
|
|
1734
1836
|
success?: boolean;
|
|
1735
1837
|
tokensUsed?: number;
|
|
1736
1838
|
type: "step_complete";
|
|
@@ -1753,6 +1855,11 @@ type RuntypeExecutionStreamEvent = ({
|
|
|
1753
1855
|
role?: "user" | "assistant" | "system";
|
|
1754
1856
|
seq: number;
|
|
1755
1857
|
stepId?: string;
|
|
1858
|
+
subagent?: {
|
|
1859
|
+
agentName?: string;
|
|
1860
|
+
parentToolCallId?: string;
|
|
1861
|
+
toolName: string;
|
|
1862
|
+
};
|
|
1756
1863
|
turnId?: string;
|
|
1757
1864
|
type: "text_start";
|
|
1758
1865
|
}) | {
|
|
@@ -1760,11 +1867,21 @@ type RuntypeExecutionStreamEvent = ({
|
|
|
1760
1867
|
executionId: string;
|
|
1761
1868
|
id: string;
|
|
1762
1869
|
seq: number;
|
|
1870
|
+
subagent?: {
|
|
1871
|
+
agentName?: string;
|
|
1872
|
+
parentToolCallId?: string;
|
|
1873
|
+
toolName: string;
|
|
1874
|
+
};
|
|
1763
1875
|
type: "text_delta";
|
|
1764
1876
|
} | {
|
|
1765
1877
|
executionId: string;
|
|
1766
1878
|
id: string;
|
|
1767
1879
|
seq: number;
|
|
1880
|
+
subagent?: {
|
|
1881
|
+
agentName?: string;
|
|
1882
|
+
parentToolCallId?: string;
|
|
1883
|
+
toolName: string;
|
|
1884
|
+
};
|
|
1768
1885
|
text?: string;
|
|
1769
1886
|
type: "text_complete";
|
|
1770
1887
|
} | ({
|
|
@@ -1773,18 +1890,33 @@ type RuntypeExecutionStreamEvent = ({
|
|
|
1773
1890
|
parentToolCallId?: string;
|
|
1774
1891
|
scope?: "turn" | "loop";
|
|
1775
1892
|
seq: number;
|
|
1893
|
+
subagent?: {
|
|
1894
|
+
agentName?: string;
|
|
1895
|
+
parentToolCallId?: string;
|
|
1896
|
+
toolName: string;
|
|
1897
|
+
};
|
|
1776
1898
|
type: "reasoning_start";
|
|
1777
1899
|
}) | {
|
|
1778
1900
|
delta: string;
|
|
1779
1901
|
executionId: string;
|
|
1780
1902
|
id: string;
|
|
1781
1903
|
seq: number;
|
|
1904
|
+
subagent?: {
|
|
1905
|
+
agentName?: string;
|
|
1906
|
+
parentToolCallId?: string;
|
|
1907
|
+
toolName: string;
|
|
1908
|
+
};
|
|
1782
1909
|
type: "reasoning_delta";
|
|
1783
1910
|
} | ({
|
|
1784
1911
|
executionId: string;
|
|
1785
1912
|
id: string;
|
|
1786
1913
|
scope?: "turn" | "loop";
|
|
1787
1914
|
seq: number;
|
|
1915
|
+
subagent?: {
|
|
1916
|
+
agentName?: string;
|
|
1917
|
+
parentToolCallId?: string;
|
|
1918
|
+
toolName: string;
|
|
1919
|
+
};
|
|
1788
1920
|
text?: string;
|
|
1789
1921
|
type: "reasoning_complete";
|
|
1790
1922
|
}) | ({
|
|
@@ -1877,6 +2009,11 @@ type RuntypeExecutionStreamEvent = ({
|
|
|
1877
2009
|
seq: number;
|
|
1878
2010
|
startedAt?: string;
|
|
1879
2011
|
stepId?: string;
|
|
2012
|
+
subagent?: {
|
|
2013
|
+
agentName?: string;
|
|
2014
|
+
parentToolCallId?: string;
|
|
2015
|
+
toolName: string;
|
|
2016
|
+
};
|
|
1880
2017
|
toolCallId: string;
|
|
1881
2018
|
toolName: string;
|
|
1882
2019
|
toolType: string;
|
|
@@ -1885,6 +2022,11 @@ type RuntypeExecutionStreamEvent = ({
|
|
|
1885
2022
|
delta: string;
|
|
1886
2023
|
executionId: string;
|
|
1887
2024
|
seq: number;
|
|
2025
|
+
subagent?: {
|
|
2026
|
+
agentName?: string;
|
|
2027
|
+
parentToolCallId?: string;
|
|
2028
|
+
toolName: string;
|
|
2029
|
+
};
|
|
1888
2030
|
toolCallId: string;
|
|
1889
2031
|
type: "tool_input_delta";
|
|
1890
2032
|
} | {
|
|
@@ -1892,6 +2034,11 @@ type RuntypeExecutionStreamEvent = ({
|
|
|
1892
2034
|
hiddenParameterNames?: Array<string>;
|
|
1893
2035
|
parameters: Record<string, unknown>;
|
|
1894
2036
|
seq: number;
|
|
2037
|
+
subagent?: {
|
|
2038
|
+
agentName?: string;
|
|
2039
|
+
parentToolCallId?: string;
|
|
2040
|
+
toolName: string;
|
|
2041
|
+
};
|
|
1895
2042
|
toolCallId: string;
|
|
1896
2043
|
toolName?: string;
|
|
1897
2044
|
type: "tool_input_complete";
|
|
@@ -1909,6 +2056,11 @@ type RuntypeExecutionStreamEvent = ({
|
|
|
1909
2056
|
result?: unknown;
|
|
1910
2057
|
seq: number;
|
|
1911
2058
|
stepId?: string;
|
|
2059
|
+
subagent?: {
|
|
2060
|
+
agentName?: string;
|
|
2061
|
+
parentToolCallId?: string;
|
|
2062
|
+
toolName: string;
|
|
2063
|
+
};
|
|
1912
2064
|
success: boolean;
|
|
1913
2065
|
toolCallId: string;
|
|
1914
2066
|
toolCost?: number;
|
|
@@ -1988,6 +2140,19 @@ type RuntypeExecutionStreamEvent = ({
|
|
|
1988
2140
|
recoverable?: boolean;
|
|
1989
2141
|
seq: number;
|
|
1990
2142
|
type: "error";
|
|
2143
|
+
}) | ({
|
|
2144
|
+
epoch: number;
|
|
2145
|
+
executionId: string;
|
|
2146
|
+
kind: "compaction";
|
|
2147
|
+
outcome?: "ok" | "failed" | "gap" | "skipped";
|
|
2148
|
+
phase: "start" | "complete";
|
|
2149
|
+
reason: "threshold" | "overflow" | "manual" | "surface_policy" | "provider_mismatch";
|
|
2150
|
+
seq: number;
|
|
2151
|
+
strategy: "provider_native" | "summary";
|
|
2152
|
+
tier: number;
|
|
2153
|
+
tokensAfter?: number;
|
|
2154
|
+
tokensBefore?: number;
|
|
2155
|
+
type: "context_notice";
|
|
1991
2156
|
}) | {
|
|
1992
2157
|
executionId: string;
|
|
1993
2158
|
seq: number;
|
|
@@ -2919,6 +3084,14 @@ type ClientToolDefinition = {
|
|
|
2919
3084
|
readOnlyHint?: boolean;
|
|
2920
3085
|
untrustedContentHint?: boolean;
|
|
2921
3086
|
};
|
|
3087
|
+
/**
|
|
3088
|
+
* Hoisted copy of `annotations.untrustedContentHint`. This is the field the
|
|
3089
|
+
* server actually acts on (`InlineClientToolSchema`): it spotlights the
|
|
3090
|
+
* tool's output before the model reads it, so instructions embedded in
|
|
3091
|
+
* page-provided content (reviews, comments, emails) are not treated as
|
|
3092
|
+
* instructions. `annotations` itself is trace/dashboard metadata only.
|
|
3093
|
+
*/
|
|
3094
|
+
untrustedContentHint?: boolean;
|
|
2922
3095
|
};
|
|
2923
3096
|
/**
|
|
2924
3097
|
* Information passed to the confirm-bubble handler before a `webmcp:*` tool
|
|
@@ -3039,15 +3212,15 @@ type AgentMessageMetadata = {
|
|
|
3039
3212
|
*/
|
|
3040
3213
|
parentStepId?: string;
|
|
3041
3214
|
/**
|
|
3042
|
-
* Set to `true` on a tool-variant message produced from
|
|
3215
|
+
* Set to `true` on a tool-variant message produced from an `await`
|
|
3043
3216
|
* event (`awaitReason: "local_tool_required"`). Signals to UI code that
|
|
3044
3217
|
* the tool call is a LOCAL tool and the server is paused waiting for a
|
|
3045
3218
|
* `POST /v1/dispatch/resume` with the user's answer keyed by tool name.
|
|
3046
3219
|
*/
|
|
3047
3220
|
awaitingLocalTool?: boolean;
|
|
3048
3221
|
/**
|
|
3049
|
-
* The provider per-call id (`toolu_…`) carried on the `
|
|
3050
|
-
*
|
|
3222
|
+
* The provider per-call id (`toolu_…`) carried on the `await`
|
|
3223
|
+
* event for a LOCAL tool (core#3878). Present only when the
|
|
3051
3224
|
* server emits it. Two PARALLEL calls to the same tool in one turn share a
|
|
3052
3225
|
* `toolName` (and a collapsed `toolId`) but get DISTINCT `webMcpToolCallId`s,
|
|
3053
3226
|
* so this is the key the widget batches a single `/resume` on: preferred
|
|
@@ -4253,6 +4426,16 @@ type AgentWidgetToolCallDisplayFeature = {
|
|
|
4253
4426
|
* @default "stack"
|
|
4254
4427
|
*/
|
|
4255
4428
|
groupedMode?: "stack" | "summary";
|
|
4429
|
+
/**
|
|
4430
|
+
* What happens to a tool call row once it completes.
|
|
4431
|
+
*
|
|
4432
|
+
* - `"kept"` (default): the finished row stays in the transcript.
|
|
4433
|
+
* - `"removed"`: no row is rendered at all, so the transcript gap closes with
|
|
4434
|
+
* it. The tool call stays on the message and in `getMessages()`.
|
|
4435
|
+
*
|
|
4436
|
+
* @default "kept"
|
|
4437
|
+
*/
|
|
4438
|
+
completedVisibility?: AgentWidgetToolCallCompletedVisibility;
|
|
4256
4439
|
/**
|
|
4257
4440
|
* When false, tool call bubbles show only the collapsed summary with no
|
|
4258
4441
|
* expand/collapse toggle. Users see tool awareness without full details.
|
|
@@ -4270,6 +4453,8 @@ type AgentWidgetToolCallDisplayFeature = {
|
|
|
4270
4453
|
*/
|
|
4271
4454
|
loadingAnimation?: AgentWidgetToolCallLoadingAnimation;
|
|
4272
4455
|
};
|
|
4456
|
+
/** See `features.toolCallDisplay.completedVisibility`. */
|
|
4457
|
+
type AgentWidgetToolCallCompletedVisibility = "kept" | "removed";
|
|
4273
4458
|
type AgentWidgetReasoningDisplayFeature = {
|
|
4274
4459
|
/**
|
|
4275
4460
|
* When true, active collapsed reasoning rows can render a lightweight preview block.
|
|
@@ -4315,13 +4500,26 @@ type AgentWidgetReasoningDisplayFeature = {
|
|
|
4315
4500
|
* - `"kept"` (default): the finished row stays in the transcript.
|
|
4316
4501
|
* - `"removed"`: no row is rendered at all, so the transcript gap closes with
|
|
4317
4502
|
* it. The reasoning text stays on the message and in `getMessages()`.
|
|
4503
|
+
* - `"removed-when-short"`: behaves as `"removed"` when the completed trace
|
|
4504
|
+
* is short (see `shortThinkThreshold`), and as `"kept"` otherwise.
|
|
4318
4505
|
*
|
|
4319
4506
|
* @default "kept"
|
|
4320
4507
|
*/
|
|
4321
4508
|
completedVisibility?: AgentWidgetReasoningCompletedVisibility;
|
|
4509
|
+
/**
|
|
4510
|
+
* Thresholds used by `completedVisibility: "removed-when-short"` to decide
|
|
4511
|
+
* whether a completed trace counts as short. Duration is checked first when
|
|
4512
|
+
* the reasoning reports one; the character count is a fallback for traces
|
|
4513
|
+
* with no reported duration.
|
|
4514
|
+
* @default { durationMs: 15000, chars: 1200 }
|
|
4515
|
+
*/
|
|
4516
|
+
shortThinkThreshold?: {
|
|
4517
|
+
durationMs?: number;
|
|
4518
|
+
chars?: number;
|
|
4519
|
+
};
|
|
4322
4520
|
};
|
|
4323
4521
|
/** See `features.reasoningDisplay.completedVisibility`. */
|
|
4324
|
-
type AgentWidgetReasoningCompletedVisibility = "kept" | "removed";
|
|
4522
|
+
type AgentWidgetReasoningCompletedVisibility = "kept" | "removed" | "removed-when-short";
|
|
4325
4523
|
/**
|
|
4326
4524
|
* Reveal animation applied to assistant message text while it is streaming.
|
|
4327
4525
|
*
|
|
@@ -5315,7 +5513,7 @@ type EventStreamConfig = {
|
|
|
5315
5513
|
/**
|
|
5316
5514
|
* Custom badge color mappings by event type prefix or exact type.
|
|
5317
5515
|
* Keys are matched as exact match first, then prefix match (keys ending with "_").
|
|
5318
|
-
* @example { "
|
|
5516
|
+
* @example { "execution_": { bg: "#dcfce7", text: "#166534" }, "error": { bg: "#fecaca", text: "#991b1b" } }
|
|
5319
5517
|
*/
|
|
5320
5518
|
badgeColors?: Record<string, EventStreamBadgeColor>;
|
|
5321
5519
|
/**
|
|
@@ -6745,9 +6943,13 @@ interface VoiceProvider {
|
|
|
6745
6943
|
* `isFinal=false` is a live interim update (user partials, or assistant deltas
|
|
6746
6944
|
* on providers that stream them); `isFinal=true` finalizes that role's text.
|
|
6747
6945
|
* On the realtime `runtype` path, interim updates fire for the `user` only and
|
|
6748
|
-
* the `assistant` arrives as a single final.
|
|
6946
|
+
* the `assistant` arrives as a single final. Providers with overlapping turns
|
|
6947
|
+
* must include the same turnId on user and assistant finals; without IDs,
|
|
6948
|
+
* providers must discard cancelled output before emitting the next user final.
|
|
6749
6949
|
*/
|
|
6750
|
-
onTranscript?(callback: (role: 'user' | 'assistant', text: string, isFinal: boolean
|
|
6950
|
+
onTranscript?(callback: (role: 'user' | 'assistant', text: string, isFinal: boolean, metadata?: {
|
|
6951
|
+
turnId?: string;
|
|
6952
|
+
}) => void): void;
|
|
6751
6953
|
/** Register a callback for per-turn latency metrics (realtime path). */
|
|
6752
6954
|
onMetrics?(callback: (metrics: VoiceMetrics) => void): void;
|
|
6753
6955
|
/**
|
|
@@ -9060,16 +9262,16 @@ type AgentWidgetConfig = {
|
|
|
9060
9262
|
*
|
|
9061
9263
|
* @example
|
|
9062
9264
|
* ```typescript
|
|
9063
|
-
* // For Runtype
|
|
9265
|
+
* // For a custom backend (Runtype unified events are handled natively)
|
|
9064
9266
|
* config: {
|
|
9065
9267
|
* parseSSEEvent: (data) => {
|
|
9066
|
-
* if (
|
|
9067
|
-
* return { text: data.
|
|
9268
|
+
* if (data.type === 'token' && typeof data.value === 'string') {
|
|
9269
|
+
* return { text: data.value };
|
|
9068
9270
|
* }
|
|
9069
|
-
* if (data.type === '
|
|
9271
|
+
* if (data.type === 'done') {
|
|
9070
9272
|
* return { done: true };
|
|
9071
9273
|
* }
|
|
9072
|
-
* if (data.type === '
|
|
9274
|
+
* if (data.type === 'failure') {
|
|
9073
9275
|
* return { error: data.error };
|
|
9074
9276
|
* }
|
|
9075
9277
|
* return null; // Ignore other events
|
|
@@ -9271,7 +9473,7 @@ type AgentWidgetReasoning = {
|
|
|
9271
9473
|
/**
|
|
9272
9474
|
* Reasoning channel scope (wire spec). `"turn"` is ordinary per-turn
|
|
9273
9475
|
* thinking; `"loop"` is a cross-iteration agent reflection (the fold that
|
|
9274
|
-
* replaced the legacy `agent_reflection` event).
|
|
9476
|
+
* replaced the legacy `agent_reflection` event). Optional when the stream does not specify a scope.
|
|
9275
9477
|
*/
|
|
9276
9478
|
scope?: "turn" | "loop";
|
|
9277
9479
|
startedAt?: number;
|
|
@@ -9285,6 +9487,9 @@ type AgentWidgetToolCall = {
|
|
|
9285
9487
|
args?: unknown;
|
|
9286
9488
|
chunks?: string[];
|
|
9287
9489
|
result?: unknown;
|
|
9490
|
+
/** Whether the tool succeeded; failure does not necessarily end the execution. */
|
|
9491
|
+
success?: boolean;
|
|
9492
|
+
error?: string;
|
|
9288
9493
|
duration?: number;
|
|
9289
9494
|
startedAt?: number;
|
|
9290
9495
|
completedAt?: number;
|
|
@@ -9315,7 +9520,7 @@ type AgentWidgetApproval = {
|
|
|
9315
9520
|
type AgentWidgetMessageVariant = "assistant" | "reasoning" | "tool" | "approval";
|
|
9316
9521
|
/**
|
|
9317
9522
|
* Per-turn / per-step stop reason emitted by the runtime on
|
|
9318
|
-
* `
|
|
9523
|
+
* `turn_complete` and `step_complete` SSE events. The vocabulary is
|
|
9319
9524
|
* owned by the upstream Runtype API: do not extend without coordination.
|
|
9320
9525
|
*
|
|
9321
9526
|
* - `end_turn`: natural completion (no affordance needed)
|
|
@@ -9446,7 +9651,7 @@ type AgentWidgetMessage = {
|
|
|
9446
9651
|
*/
|
|
9447
9652
|
agentMetadata?: AgentMessageMetadata;
|
|
9448
9653
|
/**
|
|
9449
|
-
* Per-turn stop reason reported by the runtime on `
|
|
9654
|
+
* Per-turn stop reason reported by the runtime on `turn_complete`
|
|
9450
9655
|
* (agent-loop path) or the last `step_complete` for a prompt step
|
|
9451
9656
|
* (dispatch / flow path). Absent when the API did not report a value.
|
|
9452
9657
|
*
|