@agent-native/core 0.55.0 → 0.56.0

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.
Files changed (103) hide show
  1. package/README.md +7 -7
  2. package/dist/action-ui.d.ts +17 -0
  3. package/dist/action-ui.d.ts.map +1 -0
  4. package/dist/action-ui.js +23 -0
  5. package/dist/action-ui.js.map +1 -0
  6. package/dist/action.d.ts +8 -1
  7. package/dist/action.d.ts.map +1 -1
  8. package/dist/action.js +3 -0
  9. package/dist/action.js.map +1 -1
  10. package/dist/agent/production-agent.d.ts +2 -0
  11. package/dist/agent/production-agent.d.ts.map +1 -1
  12. package/dist/agent/production-agent.js +7 -1
  13. package/dist/agent/production-agent.js.map +1 -1
  14. package/dist/agent/thread-data-builder.d.ts +4 -0
  15. package/dist/agent/thread-data-builder.d.ts.map +1 -1
  16. package/dist/agent/thread-data-builder.js +4 -0
  17. package/dist/agent/thread-data-builder.js.map +1 -1
  18. package/dist/agent/types.d.ts +2 -0
  19. package/dist/agent/types.d.ts.map +1 -1
  20. package/dist/agent/types.js.map +1 -1
  21. package/dist/client/AssistantChat.d.ts.map +1 -1
  22. package/dist/client/AssistantChat.js +6 -4
  23. package/dist/client/AssistantChat.js.map +1 -1
  24. package/dist/client/chat/index.d.ts +5 -3
  25. package/dist/client/chat/index.d.ts.map +1 -1
  26. package/dist/client/chat/index.js +4 -3
  27. package/dist/client/chat/index.js.map +1 -1
  28. package/dist/client/chat/run-recovery.d.ts.map +1 -1
  29. package/dist/client/chat/run-recovery.js +9 -5
  30. package/dist/client/chat/run-recovery.js.map +1 -1
  31. package/dist/client/chat/runtime.d.ts +354 -0
  32. package/dist/client/chat/runtime.d.ts.map +1 -0
  33. package/dist/client/chat/runtime.js +2 -0
  34. package/dist/client/chat/runtime.js.map +1 -0
  35. package/dist/client/chat/tool-call-display.d.ts +4 -1
  36. package/dist/client/chat/tool-call-display.d.ts.map +1 -1
  37. package/dist/client/chat/tool-call-display.js +6 -5
  38. package/dist/client/chat/tool-call-display.js.map +1 -1
  39. package/dist/client/chat/tool-render-registry.d.ts +11 -0
  40. package/dist/client/chat/tool-render-registry.d.ts.map +1 -1
  41. package/dist/client/chat/tool-render-registry.js +47 -1
  42. package/dist/client/chat/tool-render-registry.js.map +1 -1
  43. package/dist/client/chat/widgets/builtin-tool-renderers.js +73 -18
  44. package/dist/client/chat/widgets/builtin-tool-renderers.js.map +1 -1
  45. package/dist/client/chat/widgets/data-widget-types.d.ts +1 -51
  46. package/dist/client/chat/widgets/data-widget-types.d.ts.map +1 -1
  47. package/dist/client/chat/widgets/data-widget-types.js +1 -92
  48. package/dist/client/chat/widgets/data-widget-types.js.map +1 -1
  49. package/dist/client/chat-view-transition.d.ts +12 -0
  50. package/dist/client/chat-view-transition.d.ts.map +1 -1
  51. package/dist/client/chat-view-transition.js +16 -0
  52. package/dist/client/chat-view-transition.js.map +1 -1
  53. package/dist/client/index.d.ts +5 -3
  54. package/dist/client/index.d.ts.map +1 -1
  55. package/dist/client/index.js +4 -3
  56. package/dist/client/index.js.map +1 -1
  57. package/dist/client/route-state.d.ts.map +1 -1
  58. package/dist/client/route-state.js +2 -15
  59. package/dist/client/route-state.js.map +1 -1
  60. package/dist/client/sse-event-processor.d.ts +3 -0
  61. package/dist/client/sse-event-processor.d.ts.map +1 -1
  62. package/dist/client/sse-event-processor.js +2 -0
  63. package/dist/client/sse-event-processor.js.map +1 -1
  64. package/dist/data-widgets/index.d.ts +326 -0
  65. package/dist/data-widgets/index.d.ts.map +1 -0
  66. package/dist/data-widgets/index.js +232 -0
  67. package/dist/data-widgets/index.js.map +1 -0
  68. package/dist/index.browser.d.ts +2 -0
  69. package/dist/index.browser.d.ts.map +1 -1
  70. package/dist/index.browser.js +2 -0
  71. package/dist/index.browser.js.map +1 -1
  72. package/dist/index.d.ts +2 -0
  73. package/dist/index.d.ts.map +1 -1
  74. package/dist/index.js +2 -0
  75. package/dist/index.js.map +1 -1
  76. package/dist/provider-api/corpus-jobs.d.ts +160 -0
  77. package/dist/provider-api/corpus-jobs.d.ts.map +1 -1
  78. package/dist/provider-api/corpus-jobs.js +44 -0
  79. package/dist/provider-api/corpus-jobs.js.map +1 -1
  80. package/dist/provider-api/index.d.ts +39 -0
  81. package/dist/provider-api/index.d.ts.map +1 -1
  82. package/dist/provider-api/index.js +53 -0
  83. package/dist/provider-api/index.js.map +1 -1
  84. package/dist/server/action-discovery.d.ts.map +1 -1
  85. package/dist/server/action-discovery.js +5 -0
  86. package/dist/server/action-discovery.js.map +1 -1
  87. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  88. package/dist/server/agent-chat-plugin.js +5 -0
  89. package/dist/server/agent-chat-plugin.js.map +1 -1
  90. package/dist/styles/agent-native.css +9 -2
  91. package/dist/vite/client.d.ts.map +1 -1
  92. package/dist/vite/client.js +1 -0
  93. package/dist/vite/client.js.map +1 -1
  94. package/docs/content/actions.md +52 -0
  95. package/docs/content/components.md +24 -1
  96. package/docs/content/drop-in-agent.md +9 -2
  97. package/docs/content/faq.md +5 -4
  98. package/docs/content/getting-started.md +39 -88
  99. package/docs/content/key-concepts.md +22 -22
  100. package/docs/content/mcp-apps.md +1 -1
  101. package/docs/content/native-chat-ui.md +210 -0
  102. package/docs/content/what-is-agent-native.md +2 -2
  103. package/package.json +2 -1
@@ -0,0 +1,326 @@
1
+ import { z } from "zod";
2
+ export declare const DATA_TABLE_WIDGET = "data-table";
3
+ export declare const DATA_CHART_WIDGET = "data-chart";
4
+ export declare const DATA_INSIGHTS_WIDGET = "data-insights";
5
+ export type DataWidgetKind = typeof DATA_TABLE_WIDGET | typeof DATA_CHART_WIDGET | typeof DATA_INSIGHTS_WIDGET;
6
+ export interface DataTableColumn {
7
+ key: string;
8
+ label: string;
9
+ align?: "left" | "right";
10
+ }
11
+ export interface DataTableWidget {
12
+ title?: string;
13
+ columns: DataTableColumn[];
14
+ rows: Array<Record<string, unknown>>;
15
+ totalRows?: number;
16
+ sampledRows?: number;
17
+ truncated?: boolean;
18
+ }
19
+ export interface DataChartSeriesDefinition {
20
+ key: string;
21
+ label: string;
22
+ color?: string;
23
+ }
24
+ export interface DataChartWidget {
25
+ type: "bar" | "line" | "area";
26
+ title?: string;
27
+ xKey: string;
28
+ series: DataChartSeriesDefinition[];
29
+ data: Array<Record<string, unknown>>;
30
+ sampled?: boolean;
31
+ }
32
+ export interface DataWidgetDisplay {
33
+ title?: string;
34
+ description?: string;
35
+ primaryAction?: {
36
+ label: string;
37
+ href: string;
38
+ };
39
+ }
40
+ export interface DataWidgetResultMetadata {
41
+ widgetId?: string;
42
+ title?: string;
43
+ summary?: Record<string, unknown>;
44
+ display?: DataWidgetDisplay;
45
+ }
46
+ export interface DataTableWidgetResultInput extends DataWidgetResultMetadata {
47
+ table: DataTableWidget;
48
+ }
49
+ export interface DataChartWidgetResultInput extends DataWidgetResultMetadata {
50
+ chartSeries: DataChartWidget;
51
+ }
52
+ export type DataInsightsWidgetResultInput = DataWidgetResultMetadata & ({
53
+ table: DataTableWidget;
54
+ chartSeries?: DataChartWidget;
55
+ } | {
56
+ table?: DataTableWidget;
57
+ chartSeries: DataChartWidget;
58
+ });
59
+ export type DataTableWidgetResult<Input extends DataTableWidgetResultInput = DataTableWidgetResultInput> = Omit<Input, "widget" | "chartSeries"> & {
60
+ widget: typeof DATA_TABLE_WIDGET;
61
+ table: Input["table"];
62
+ chartSeries?: never;
63
+ };
64
+ export type DataChartWidgetResult<Input extends DataChartWidgetResultInput = DataChartWidgetResultInput> = Omit<Input, "widget" | "table"> & {
65
+ widget: typeof DATA_CHART_WIDGET;
66
+ table?: never;
67
+ chartSeries: Input["chartSeries"];
68
+ };
69
+ export type DataInsightsWidgetResult<Input extends DataInsightsWidgetResultInput = DataInsightsWidgetResultInput> = Omit<Input, "widget"> & {
70
+ widget: typeof DATA_INSIGHTS_WIDGET;
71
+ };
72
+ export type DataWidgetResult = DataTableWidgetResult | DataChartWidgetResult | DataInsightsWidgetResult;
73
+ export declare function normalizeDataWidgetKind(value: unknown): DataWidgetKind | null;
74
+ export declare function isDataTableWidget(value: unknown): value is DataTableWidget;
75
+ export declare function isDataChartWidget(value: unknown): value is DataChartWidget;
76
+ export declare function createDataTableWidgetResult<const Input extends DataTableWidgetResultInput>(input: Input & {
77
+ widget?: never;
78
+ chartSeries?: never;
79
+ }): DataTableWidgetResult<Input>;
80
+ export declare function createDataChartWidgetResult<const Input extends DataChartWidgetResultInput>(input: Input & {
81
+ widget?: never;
82
+ table?: never;
83
+ }): DataChartWidgetResult<Input>;
84
+ export declare function createDataInsightsWidgetResult<const Input extends DataInsightsWidgetResultInput>(input: Input & {
85
+ widget?: never;
86
+ }): DataInsightsWidgetResult<Input>;
87
+ export declare function normalizeDataWidgetResult(value: unknown): DataWidgetResult | null;
88
+ export declare function isDataWidgetResult(value: unknown): value is DataWidgetResult;
89
+ export declare const dataTableWidgetSchema: z.ZodObject<{
90
+ title: z.ZodOptional<z.ZodString>;
91
+ columns: z.ZodArray<z.ZodObject<{
92
+ key: z.ZodString;
93
+ label: z.ZodString;
94
+ align: z.ZodOptional<z.ZodEnum<{
95
+ left: "left";
96
+ right: "right";
97
+ }>>;
98
+ }, z.core.$loose>>;
99
+ rows: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
100
+ totalRows: z.ZodOptional<z.ZodNumber>;
101
+ sampledRows: z.ZodOptional<z.ZodNumber>;
102
+ truncated: z.ZodOptional<z.ZodBoolean>;
103
+ }, z.core.$loose>;
104
+ export declare const dataChartWidgetSchema: z.ZodObject<{
105
+ type: z.ZodEnum<{
106
+ area: "area";
107
+ bar: "bar";
108
+ line: "line";
109
+ }>;
110
+ title: z.ZodOptional<z.ZodString>;
111
+ xKey: z.ZodString;
112
+ series: z.ZodArray<z.ZodObject<{
113
+ key: z.ZodString;
114
+ label: z.ZodString;
115
+ color: z.ZodOptional<z.ZodString>;
116
+ }, z.core.$loose>>;
117
+ data: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
118
+ sampled: z.ZodOptional<z.ZodBoolean>;
119
+ }, z.core.$loose>;
120
+ export declare const dataTableWidgetResultSchema: z.ZodObject<{
121
+ widgetId: z.ZodOptional<z.ZodString>;
122
+ title: z.ZodOptional<z.ZodString>;
123
+ summary: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
124
+ display: z.ZodOptional<z.ZodObject<{
125
+ title: z.ZodOptional<z.ZodString>;
126
+ description: z.ZodOptional<z.ZodString>;
127
+ primaryAction: z.ZodOptional<z.ZodObject<{
128
+ label: z.ZodString;
129
+ href: z.ZodString;
130
+ }, z.core.$loose>>;
131
+ }, z.core.$loose>>;
132
+ widget: z.ZodLiteral<"data-table">;
133
+ table: z.ZodObject<{
134
+ title: z.ZodOptional<z.ZodString>;
135
+ columns: z.ZodArray<z.ZodObject<{
136
+ key: z.ZodString;
137
+ label: z.ZodString;
138
+ align: z.ZodOptional<z.ZodEnum<{
139
+ left: "left";
140
+ right: "right";
141
+ }>>;
142
+ }, z.core.$loose>>;
143
+ rows: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
144
+ totalRows: z.ZodOptional<z.ZodNumber>;
145
+ sampledRows: z.ZodOptional<z.ZodNumber>;
146
+ truncated: z.ZodOptional<z.ZodBoolean>;
147
+ }, z.core.$loose>;
148
+ }, z.core.$loose>;
149
+ export declare const dataChartWidgetResultSchema: z.ZodObject<{
150
+ widgetId: z.ZodOptional<z.ZodString>;
151
+ title: z.ZodOptional<z.ZodString>;
152
+ summary: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
153
+ display: z.ZodOptional<z.ZodObject<{
154
+ title: z.ZodOptional<z.ZodString>;
155
+ description: z.ZodOptional<z.ZodString>;
156
+ primaryAction: z.ZodOptional<z.ZodObject<{
157
+ label: z.ZodString;
158
+ href: z.ZodString;
159
+ }, z.core.$loose>>;
160
+ }, z.core.$loose>>;
161
+ widget: z.ZodLiteral<"data-chart">;
162
+ chartSeries: z.ZodObject<{
163
+ type: z.ZodEnum<{
164
+ area: "area";
165
+ bar: "bar";
166
+ line: "line";
167
+ }>;
168
+ title: z.ZodOptional<z.ZodString>;
169
+ xKey: z.ZodString;
170
+ series: z.ZodArray<z.ZodObject<{
171
+ key: z.ZodString;
172
+ label: z.ZodString;
173
+ color: z.ZodOptional<z.ZodString>;
174
+ }, z.core.$loose>>;
175
+ data: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
176
+ sampled: z.ZodOptional<z.ZodBoolean>;
177
+ }, z.core.$loose>;
178
+ }, z.core.$loose>;
179
+ export declare const dataInsightsWidgetResultSchema: z.ZodObject<{
180
+ widgetId: z.ZodOptional<z.ZodString>;
181
+ title: z.ZodOptional<z.ZodString>;
182
+ summary: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
183
+ display: z.ZodOptional<z.ZodObject<{
184
+ title: z.ZodOptional<z.ZodString>;
185
+ description: z.ZodOptional<z.ZodString>;
186
+ primaryAction: z.ZodOptional<z.ZodObject<{
187
+ label: z.ZodString;
188
+ href: z.ZodString;
189
+ }, z.core.$loose>>;
190
+ }, z.core.$loose>>;
191
+ widget: z.ZodLiteral<"data-insights">;
192
+ table: z.ZodOptional<z.ZodObject<{
193
+ title: z.ZodOptional<z.ZodString>;
194
+ columns: z.ZodArray<z.ZodObject<{
195
+ key: z.ZodString;
196
+ label: z.ZodString;
197
+ align: z.ZodOptional<z.ZodEnum<{
198
+ left: "left";
199
+ right: "right";
200
+ }>>;
201
+ }, z.core.$loose>>;
202
+ rows: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
203
+ totalRows: z.ZodOptional<z.ZodNumber>;
204
+ sampledRows: z.ZodOptional<z.ZodNumber>;
205
+ truncated: z.ZodOptional<z.ZodBoolean>;
206
+ }, z.core.$loose>>;
207
+ chartSeries: z.ZodOptional<z.ZodObject<{
208
+ type: z.ZodEnum<{
209
+ area: "area";
210
+ bar: "bar";
211
+ line: "line";
212
+ }>;
213
+ title: z.ZodOptional<z.ZodString>;
214
+ xKey: z.ZodString;
215
+ series: z.ZodArray<z.ZodObject<{
216
+ key: z.ZodString;
217
+ label: z.ZodString;
218
+ color: z.ZodOptional<z.ZodString>;
219
+ }, z.core.$loose>>;
220
+ data: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
221
+ sampled: z.ZodOptional<z.ZodBoolean>;
222
+ }, z.core.$loose>>;
223
+ }, z.core.$loose>;
224
+ export declare const dataWidgetResultSchema: z.ZodUnion<readonly [z.ZodObject<{
225
+ widgetId: z.ZodOptional<z.ZodString>;
226
+ title: z.ZodOptional<z.ZodString>;
227
+ summary: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
228
+ display: z.ZodOptional<z.ZodObject<{
229
+ title: z.ZodOptional<z.ZodString>;
230
+ description: z.ZodOptional<z.ZodString>;
231
+ primaryAction: z.ZodOptional<z.ZodObject<{
232
+ label: z.ZodString;
233
+ href: z.ZodString;
234
+ }, z.core.$loose>>;
235
+ }, z.core.$loose>>;
236
+ widget: z.ZodLiteral<"data-table">;
237
+ table: z.ZodObject<{
238
+ title: z.ZodOptional<z.ZodString>;
239
+ columns: z.ZodArray<z.ZodObject<{
240
+ key: z.ZodString;
241
+ label: z.ZodString;
242
+ align: z.ZodOptional<z.ZodEnum<{
243
+ left: "left";
244
+ right: "right";
245
+ }>>;
246
+ }, z.core.$loose>>;
247
+ rows: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
248
+ totalRows: z.ZodOptional<z.ZodNumber>;
249
+ sampledRows: z.ZodOptional<z.ZodNumber>;
250
+ truncated: z.ZodOptional<z.ZodBoolean>;
251
+ }, z.core.$loose>;
252
+ }, z.core.$loose>, z.ZodObject<{
253
+ widgetId: z.ZodOptional<z.ZodString>;
254
+ title: z.ZodOptional<z.ZodString>;
255
+ summary: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
256
+ display: z.ZodOptional<z.ZodObject<{
257
+ title: z.ZodOptional<z.ZodString>;
258
+ description: z.ZodOptional<z.ZodString>;
259
+ primaryAction: z.ZodOptional<z.ZodObject<{
260
+ label: z.ZodString;
261
+ href: z.ZodString;
262
+ }, z.core.$loose>>;
263
+ }, z.core.$loose>>;
264
+ widget: z.ZodLiteral<"data-chart">;
265
+ chartSeries: z.ZodObject<{
266
+ type: z.ZodEnum<{
267
+ area: "area";
268
+ bar: "bar";
269
+ line: "line";
270
+ }>;
271
+ title: z.ZodOptional<z.ZodString>;
272
+ xKey: z.ZodString;
273
+ series: z.ZodArray<z.ZodObject<{
274
+ key: z.ZodString;
275
+ label: z.ZodString;
276
+ color: z.ZodOptional<z.ZodString>;
277
+ }, z.core.$loose>>;
278
+ data: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
279
+ sampled: z.ZodOptional<z.ZodBoolean>;
280
+ }, z.core.$loose>;
281
+ }, z.core.$loose>, z.ZodObject<{
282
+ widgetId: z.ZodOptional<z.ZodString>;
283
+ title: z.ZodOptional<z.ZodString>;
284
+ summary: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
285
+ display: z.ZodOptional<z.ZodObject<{
286
+ title: z.ZodOptional<z.ZodString>;
287
+ description: z.ZodOptional<z.ZodString>;
288
+ primaryAction: z.ZodOptional<z.ZodObject<{
289
+ label: z.ZodString;
290
+ href: z.ZodString;
291
+ }, z.core.$loose>>;
292
+ }, z.core.$loose>>;
293
+ widget: z.ZodLiteral<"data-insights">;
294
+ table: z.ZodOptional<z.ZodObject<{
295
+ title: z.ZodOptional<z.ZodString>;
296
+ columns: z.ZodArray<z.ZodObject<{
297
+ key: z.ZodString;
298
+ label: z.ZodString;
299
+ align: z.ZodOptional<z.ZodEnum<{
300
+ left: "left";
301
+ right: "right";
302
+ }>>;
303
+ }, z.core.$loose>>;
304
+ rows: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
305
+ totalRows: z.ZodOptional<z.ZodNumber>;
306
+ sampledRows: z.ZodOptional<z.ZodNumber>;
307
+ truncated: z.ZodOptional<z.ZodBoolean>;
308
+ }, z.core.$loose>>;
309
+ chartSeries: z.ZodOptional<z.ZodObject<{
310
+ type: z.ZodEnum<{
311
+ area: "area";
312
+ bar: "bar";
313
+ line: "line";
314
+ }>;
315
+ title: z.ZodOptional<z.ZodString>;
316
+ xKey: z.ZodString;
317
+ series: z.ZodArray<z.ZodObject<{
318
+ key: z.ZodString;
319
+ label: z.ZodString;
320
+ color: z.ZodOptional<z.ZodString>;
321
+ }, z.core.$loose>>;
322
+ data: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
323
+ sampled: z.ZodOptional<z.ZodBoolean>;
324
+ }, z.core.$loose>>;
325
+ }, z.core.$loose>]>;
326
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/data-widgets/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,iBAAiB,eAAe,CAAC;AAC9C,eAAO,MAAM,iBAAiB,eAAe,CAAC;AAC9C,eAAO,MAAM,oBAAoB,kBAAkB,CAAC;AAEpD,MAAM,MAAM,cAAc,GACtB,OAAO,iBAAiB,GACxB,OAAO,iBAAiB,GACxB,OAAO,oBAAoB,CAAC;AAEhC,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,yBAAyB;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,yBAAyB,EAAE,CAAC;IACpC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE;QACd,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B;AAED,MAAM,WAAW,0BAA2B,SAAQ,wBAAwB;IAC1E,KAAK,EAAE,eAAe,CAAC;CACxB;AAED,MAAM,WAAW,0BAA2B,SAAQ,wBAAwB;IAC1E,WAAW,EAAE,eAAe,CAAC;CAC9B;AAED,MAAM,MAAM,6BAA6B,GAAG,wBAAwB,GAClE,CACI;IACE,KAAK,EAAE,eAAe,CAAC;IACvB,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B,GACD;IACE,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,WAAW,EAAE,eAAe,CAAC;CAC9B,CACJ,CAAC;AAEJ,MAAM,MAAM,qBAAqB,CAC/B,KAAK,SAAS,0BAA0B,GAAG,0BAA0B,IACnE,IAAI,CAAC,KAAK,EAAE,QAAQ,GAAG,aAAa,CAAC,GAAG;IAC1C,MAAM,EAAE,OAAO,iBAAiB,CAAC;IACjC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACtB,WAAW,CAAC,EAAE,KAAK,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAC/B,KAAK,SAAS,0BAA0B,GAAG,0BAA0B,IACnE,IAAI,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG;IACpC,MAAM,EAAE,OAAO,iBAAiB,CAAC;IACjC,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,wBAAwB,CAClC,KAAK,SAAS,6BAA6B,GAAG,6BAA6B,IACzE,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG;IAC1B,MAAM,EAAE,OAAO,oBAAoB,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GACxB,qBAAqB,GACrB,qBAAqB,GACrB,wBAAwB,CAAC;AAgB7B,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,GAAG,IAAI,CAK7E;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAgB1E;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAgB1E;AAoCD,wBAAgB,2BAA2B,CACzC,KAAK,CAAC,KAAK,SAAS,0BAA0B,EAE9C,KAAK,EAAE,KAAK,GAAG;IAAE,MAAM,CAAC,EAAE,KAAK,CAAC;IAAC,WAAW,CAAC,EAAE,KAAK,CAAA;CAAE,GACrD,qBAAqB,CAAC,KAAK,CAAC,CAO9B;AAED,wBAAgB,2BAA2B,CACzC,KAAK,CAAC,KAAK,SAAS,0BAA0B,EAE9C,KAAK,EAAE,KAAK,GAAG;IAAE,MAAM,CAAC,EAAE,KAAK,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE,GAC/C,qBAAqB,CAAC,KAAK,CAAC,CAO9B;AAED,wBAAgB,8BAA8B,CAC5C,KAAK,CAAC,KAAK,SAAS,6BAA6B,EACjD,KAAK,EAAE,KAAK,GAAG;IAAE,MAAM,CAAC,EAAE,KAAK,CAAA;CAAE,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAUpE;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,OAAO,GACb,gBAAgB,GAAG,IAAI,CAyCzB;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAE5E;AAUD,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;iBASlB,CAAC;AAUjB,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;iBASlB,CAAC;AA0BjB,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAKxB,CAAC;AAEjB,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAKxB,CAAC;AAEjB,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBASvC,CAAC;AAEL,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAIjC,CAAC"}
@@ -0,0 +1,232 @@
1
+ import { z } from "zod";
2
+ export const DATA_TABLE_WIDGET = "data-table";
3
+ export const DATA_CHART_WIDGET = "data-chart";
4
+ export const DATA_INSIGHTS_WIDGET = "data-insights";
5
+ const LEGACY_DATA_WIDGET_KINDS = {
6
+ "data-table.v1": DATA_TABLE_WIDGET,
7
+ "data-chart.v1": DATA_CHART_WIDGET,
8
+ "data-insights.v1": DATA_INSIGHTS_WIDGET,
9
+ };
10
+ function isRecord(value) {
11
+ return !!value && typeof value === "object" && !Array.isArray(value);
12
+ }
13
+ function isString(value) {
14
+ return typeof value === "string" && value.length > 0;
15
+ }
16
+ export function normalizeDataWidgetKind(value) {
17
+ if (value === DATA_TABLE_WIDGET)
18
+ return DATA_TABLE_WIDGET;
19
+ if (value === DATA_CHART_WIDGET)
20
+ return DATA_CHART_WIDGET;
21
+ if (value === DATA_INSIGHTS_WIDGET)
22
+ return DATA_INSIGHTS_WIDGET;
23
+ return isString(value) ? (LEGACY_DATA_WIDGET_KINDS[value] ?? null) : null;
24
+ }
25
+ export function isDataTableWidget(value) {
26
+ if (!isRecord(value))
27
+ return false;
28
+ return (Array.isArray(value.columns) &&
29
+ value.columns.every((column) => isRecord(column) &&
30
+ isString(column.key) &&
31
+ isString(column.label) &&
32
+ (column.align === undefined ||
33
+ column.align === "left" ||
34
+ column.align === "right")) &&
35
+ Array.isArray(value.rows) &&
36
+ value.rows.every(isRecord));
37
+ }
38
+ export function isDataChartWidget(value) {
39
+ if (!isRecord(value))
40
+ return false;
41
+ return ((value.type === "bar" || value.type === "line" || value.type === "area") &&
42
+ isString(value.xKey) &&
43
+ Array.isArray(value.series) &&
44
+ value.series.every((series) => isRecord(series) &&
45
+ isString(series.key) &&
46
+ isString(series.label) &&
47
+ (series.color === undefined || typeof series.color === "string")) &&
48
+ Array.isArray(value.data) &&
49
+ value.data.every(isRecord));
50
+ }
51
+ function isPrimaryAction(value) {
52
+ return isRecord(value) && isString(value.label) && isString(value.href);
53
+ }
54
+ function normalizeDisplay(value) {
55
+ if (!isRecord(value))
56
+ return undefined;
57
+ return {
58
+ title: typeof value.title === "string" ? value.title : undefined,
59
+ description: typeof value.description === "string" ? value.description : undefined,
60
+ primaryAction: isPrimaryAction(value.primaryAction)
61
+ ? value.primaryAction
62
+ : undefined,
63
+ };
64
+ }
65
+ function assertDataTableWidget(table) {
66
+ if (!isDataTableWidget(table)) {
67
+ throw new Error("Invalid data-table widget payload");
68
+ }
69
+ }
70
+ function assertDataChartWidget(chart) {
71
+ if (!isDataChartWidget(chart)) {
72
+ throw new Error("Invalid data-chart widget payload");
73
+ }
74
+ }
75
+ export function createDataTableWidgetResult(input) {
76
+ assertDataTableWidget(input.table);
77
+ return {
78
+ ...input,
79
+ widget: DATA_TABLE_WIDGET,
80
+ table: input.table,
81
+ };
82
+ }
83
+ export function createDataChartWidgetResult(input) {
84
+ assertDataChartWidget(input.chartSeries);
85
+ return {
86
+ ...input,
87
+ widget: DATA_CHART_WIDGET,
88
+ chartSeries: input.chartSeries,
89
+ };
90
+ }
91
+ export function createDataInsightsWidgetResult(input) {
92
+ if (input.table !== undefined)
93
+ assertDataTableWidget(input.table);
94
+ if (input.chartSeries !== undefined)
95
+ assertDataChartWidget(input.chartSeries);
96
+ if (input.table === undefined && input.chartSeries === undefined) {
97
+ throw new Error("data-insights widgets require table or chartSeries");
98
+ }
99
+ return {
100
+ ...input,
101
+ widget: DATA_INSIGHTS_WIDGET,
102
+ };
103
+ }
104
+ export function normalizeDataWidgetResult(value) {
105
+ if (!isRecord(value))
106
+ return null;
107
+ const widget = normalizeDataWidgetKind(value.widget);
108
+ if (!widget)
109
+ return null;
110
+ const table = isDataTableWidget(value.table) ? value.table : undefined;
111
+ const chartSeries = isDataChartWidget(value.chartSeries)
112
+ ? value.chartSeries
113
+ : undefined;
114
+ const base = {
115
+ widgetId: typeof value.widgetId === "string" ? value.widgetId : undefined,
116
+ title: typeof value.title === "string" ? value.title : undefined,
117
+ summary: isRecord(value.summary) ? value.summary : undefined,
118
+ display: normalizeDisplay(value.display),
119
+ };
120
+ if (widget === DATA_TABLE_WIDGET) {
121
+ if (!table)
122
+ return null;
123
+ return {
124
+ ...base,
125
+ widget: DATA_TABLE_WIDGET,
126
+ table,
127
+ };
128
+ }
129
+ if (widget === DATA_CHART_WIDGET) {
130
+ if (!chartSeries)
131
+ return null;
132
+ return {
133
+ ...base,
134
+ widget: DATA_CHART_WIDGET,
135
+ chartSeries,
136
+ };
137
+ }
138
+ if (!table && !chartSeries)
139
+ return null;
140
+ return {
141
+ ...base,
142
+ widget: DATA_INSIGHTS_WIDGET,
143
+ ...(table ? { table } : {}),
144
+ ...(chartSeries ? { chartSeries } : {}),
145
+ };
146
+ }
147
+ export function isDataWidgetResult(value) {
148
+ return normalizeDataWidgetResult(value) !== null;
149
+ }
150
+ const dataTableColumnSchema = z
151
+ .object({
152
+ key: z.string().min(1),
153
+ label: z.string().min(1),
154
+ align: z.enum(["left", "right"]).optional(),
155
+ })
156
+ .passthrough();
157
+ export const dataTableWidgetSchema = z
158
+ .object({
159
+ title: z.string().optional(),
160
+ columns: z.array(dataTableColumnSchema).min(1),
161
+ rows: z.array(z.record(z.string(), z.unknown())),
162
+ totalRows: z.number().optional(),
163
+ sampledRows: z.number().optional(),
164
+ truncated: z.boolean().optional(),
165
+ })
166
+ .passthrough();
167
+ const dataChartSeriesDefinitionSchema = z
168
+ .object({
169
+ key: z.string().min(1),
170
+ label: z.string().min(1),
171
+ color: z.string().optional(),
172
+ })
173
+ .passthrough();
174
+ export const dataChartWidgetSchema = z
175
+ .object({
176
+ type: z.enum(["bar", "line", "area"]),
177
+ title: z.string().optional(),
178
+ xKey: z.string().min(1),
179
+ series: z.array(dataChartSeriesDefinitionSchema).min(1),
180
+ data: z.array(z.record(z.string(), z.unknown())),
181
+ sampled: z.boolean().optional(),
182
+ })
183
+ .passthrough();
184
+ const primaryActionSchema = z
185
+ .object({
186
+ label: z.string().min(1),
187
+ href: z.string().min(1),
188
+ })
189
+ .passthrough();
190
+ const dataWidgetDisplaySchema = z
191
+ .object({
192
+ title: z.string().optional(),
193
+ description: z.string().optional(),
194
+ primaryAction: primaryActionSchema.optional(),
195
+ })
196
+ .passthrough();
197
+ const dataWidgetBaseSchema = z
198
+ .object({
199
+ widgetId: z.string().optional(),
200
+ title: z.string().optional(),
201
+ summary: z.record(z.string(), z.unknown()).optional(),
202
+ display: dataWidgetDisplaySchema.optional(),
203
+ })
204
+ .passthrough();
205
+ export const dataTableWidgetResultSchema = dataWidgetBaseSchema
206
+ .extend({
207
+ widget: z.literal(DATA_TABLE_WIDGET),
208
+ table: dataTableWidgetSchema,
209
+ })
210
+ .passthrough();
211
+ export const dataChartWidgetResultSchema = dataWidgetBaseSchema
212
+ .extend({
213
+ widget: z.literal(DATA_CHART_WIDGET),
214
+ chartSeries: dataChartWidgetSchema,
215
+ })
216
+ .passthrough();
217
+ export const dataInsightsWidgetResultSchema = dataWidgetBaseSchema
218
+ .extend({
219
+ widget: z.literal(DATA_INSIGHTS_WIDGET),
220
+ table: dataTableWidgetSchema.optional(),
221
+ chartSeries: dataChartWidgetSchema.optional(),
222
+ })
223
+ .passthrough()
224
+ .refine((value) => value.table || value.chartSeries, {
225
+ message: "data-insights widgets require table or chartSeries",
226
+ });
227
+ export const dataWidgetResultSchema = z.union([
228
+ dataTableWidgetResultSchema,
229
+ dataChartWidgetResultSchema,
230
+ dataInsightsWidgetResultSchema,
231
+ ]);
232
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/data-widgets/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from \"zod\";\n\nexport const DATA_TABLE_WIDGET = \"data-table\";\nexport const DATA_CHART_WIDGET = \"data-chart\";\nexport const DATA_INSIGHTS_WIDGET = \"data-insights\";\n\nexport type DataWidgetKind =\n | typeof DATA_TABLE_WIDGET\n | typeof DATA_CHART_WIDGET\n | typeof DATA_INSIGHTS_WIDGET;\n\nexport interface DataTableColumn {\n key: string;\n label: string;\n align?: \"left\" | \"right\";\n}\n\nexport interface DataTableWidget {\n title?: string;\n columns: DataTableColumn[];\n rows: Array<Record<string, unknown>>;\n totalRows?: number;\n sampledRows?: number;\n truncated?: boolean;\n}\n\nexport interface DataChartSeriesDefinition {\n key: string;\n label: string;\n color?: string;\n}\n\nexport interface DataChartWidget {\n type: \"bar\" | \"line\" | \"area\";\n title?: string;\n xKey: string;\n series: DataChartSeriesDefinition[];\n data: Array<Record<string, unknown>>;\n sampled?: boolean;\n}\n\nexport interface DataWidgetDisplay {\n title?: string;\n description?: string;\n primaryAction?: {\n label: string;\n href: string;\n };\n}\n\nexport interface DataWidgetResultMetadata {\n widgetId?: string;\n title?: string;\n summary?: Record<string, unknown>;\n display?: DataWidgetDisplay;\n}\n\nexport interface DataTableWidgetResultInput extends DataWidgetResultMetadata {\n table: DataTableWidget;\n}\n\nexport interface DataChartWidgetResultInput extends DataWidgetResultMetadata {\n chartSeries: DataChartWidget;\n}\n\nexport type DataInsightsWidgetResultInput = DataWidgetResultMetadata &\n (\n | {\n table: DataTableWidget;\n chartSeries?: DataChartWidget;\n }\n | {\n table?: DataTableWidget;\n chartSeries: DataChartWidget;\n }\n );\n\nexport type DataTableWidgetResult<\n Input extends DataTableWidgetResultInput = DataTableWidgetResultInput,\n> = Omit<Input, \"widget\" | \"chartSeries\"> & {\n widget: typeof DATA_TABLE_WIDGET;\n table: Input[\"table\"];\n chartSeries?: never;\n};\n\nexport type DataChartWidgetResult<\n Input extends DataChartWidgetResultInput = DataChartWidgetResultInput,\n> = Omit<Input, \"widget\" | \"table\"> & {\n widget: typeof DATA_CHART_WIDGET;\n table?: never;\n chartSeries: Input[\"chartSeries\"];\n};\n\nexport type DataInsightsWidgetResult<\n Input extends DataInsightsWidgetResultInput = DataInsightsWidgetResultInput,\n> = Omit<Input, \"widget\"> & {\n widget: typeof DATA_INSIGHTS_WIDGET;\n};\n\nexport type DataWidgetResult =\n | DataTableWidgetResult\n | DataChartWidgetResult\n | DataInsightsWidgetResult;\n\nconst LEGACY_DATA_WIDGET_KINDS: Record<string, DataWidgetKind> = {\n \"data-table.v1\": DATA_TABLE_WIDGET,\n \"data-chart.v1\": DATA_CHART_WIDGET,\n \"data-insights.v1\": DATA_INSIGHTS_WIDGET,\n};\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return !!value && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction isString(value: unknown): value is string {\n return typeof value === \"string\" && value.length > 0;\n}\n\nexport function normalizeDataWidgetKind(value: unknown): DataWidgetKind | null {\n if (value === DATA_TABLE_WIDGET) return DATA_TABLE_WIDGET;\n if (value === DATA_CHART_WIDGET) return DATA_CHART_WIDGET;\n if (value === DATA_INSIGHTS_WIDGET) return DATA_INSIGHTS_WIDGET;\n return isString(value) ? (LEGACY_DATA_WIDGET_KINDS[value] ?? null) : null;\n}\n\nexport function isDataTableWidget(value: unknown): value is DataTableWidget {\n if (!isRecord(value)) return false;\n return (\n Array.isArray(value.columns) &&\n value.columns.every(\n (column) =>\n isRecord(column) &&\n isString(column.key) &&\n isString(column.label) &&\n (column.align === undefined ||\n column.align === \"left\" ||\n column.align === \"right\"),\n ) &&\n Array.isArray(value.rows) &&\n value.rows.every(isRecord)\n );\n}\n\nexport function isDataChartWidget(value: unknown): value is DataChartWidget {\n if (!isRecord(value)) return false;\n return (\n (value.type === \"bar\" || value.type === \"line\" || value.type === \"area\") &&\n isString(value.xKey) &&\n Array.isArray(value.series) &&\n value.series.every(\n (series) =>\n isRecord(series) &&\n isString(series.key) &&\n isString(series.label) &&\n (series.color === undefined || typeof series.color === \"string\"),\n ) &&\n Array.isArray(value.data) &&\n value.data.every(isRecord)\n );\n}\n\nfunction isPrimaryAction(\n value: unknown,\n): value is NonNullable<DataWidgetDisplay[\"primaryAction\"]> {\n return isRecord(value) && isString(value.label) && isString(value.href);\n}\n\nfunction normalizeDisplay(value: unknown): DataWidgetDisplay | undefined {\n if (!isRecord(value)) return undefined;\n return {\n title: typeof value.title === \"string\" ? value.title : undefined,\n description:\n typeof value.description === \"string\" ? value.description : undefined,\n primaryAction: isPrimaryAction(value.primaryAction)\n ? value.primaryAction\n : undefined,\n };\n}\n\nfunction assertDataTableWidget(\n table: unknown,\n): asserts table is DataTableWidget {\n if (!isDataTableWidget(table)) {\n throw new Error(\"Invalid data-table widget payload\");\n }\n}\n\nfunction assertDataChartWidget(\n chart: unknown,\n): asserts chart is DataChartWidget {\n if (!isDataChartWidget(chart)) {\n throw new Error(\"Invalid data-chart widget payload\");\n }\n}\n\nexport function createDataTableWidgetResult<\n const Input extends DataTableWidgetResultInput,\n>(\n input: Input & { widget?: never; chartSeries?: never },\n): DataTableWidgetResult<Input> {\n assertDataTableWidget(input.table);\n return {\n ...input,\n widget: DATA_TABLE_WIDGET,\n table: input.table,\n } as DataTableWidgetResult<Input>;\n}\n\nexport function createDataChartWidgetResult<\n const Input extends DataChartWidgetResultInput,\n>(\n input: Input & { widget?: never; table?: never },\n): DataChartWidgetResult<Input> {\n assertDataChartWidget(input.chartSeries);\n return {\n ...input,\n widget: DATA_CHART_WIDGET,\n chartSeries: input.chartSeries,\n } as DataChartWidgetResult<Input>;\n}\n\nexport function createDataInsightsWidgetResult<\n const Input extends DataInsightsWidgetResultInput,\n>(input: Input & { widget?: never }): DataInsightsWidgetResult<Input> {\n if (input.table !== undefined) assertDataTableWidget(input.table);\n if (input.chartSeries !== undefined) assertDataChartWidget(input.chartSeries);\n if (input.table === undefined && input.chartSeries === undefined) {\n throw new Error(\"data-insights widgets require table or chartSeries\");\n }\n return {\n ...input,\n widget: DATA_INSIGHTS_WIDGET,\n } as DataInsightsWidgetResult<Input>;\n}\n\nexport function normalizeDataWidgetResult(\n value: unknown,\n): DataWidgetResult | null {\n if (!isRecord(value)) return null;\n const widget = normalizeDataWidgetKind(value.widget);\n if (!widget) return null;\n\n const table = isDataTableWidget(value.table) ? value.table : undefined;\n const chartSeries = isDataChartWidget(value.chartSeries)\n ? value.chartSeries\n : undefined;\n const base = {\n widgetId: typeof value.widgetId === \"string\" ? value.widgetId : undefined,\n title: typeof value.title === \"string\" ? value.title : undefined,\n summary: isRecord(value.summary) ? value.summary : undefined,\n display: normalizeDisplay(value.display),\n };\n\n if (widget === DATA_TABLE_WIDGET) {\n if (!table) return null;\n return {\n ...base,\n widget: DATA_TABLE_WIDGET,\n table,\n };\n }\n\n if (widget === DATA_CHART_WIDGET) {\n if (!chartSeries) return null;\n return {\n ...base,\n widget: DATA_CHART_WIDGET,\n chartSeries,\n };\n }\n\n if (!table && !chartSeries) return null;\n return {\n ...base,\n widget: DATA_INSIGHTS_WIDGET,\n ...(table ? { table } : {}),\n ...(chartSeries ? { chartSeries } : {}),\n };\n}\n\nexport function isDataWidgetResult(value: unknown): value is DataWidgetResult {\n return normalizeDataWidgetResult(value) !== null;\n}\n\nconst dataTableColumnSchema = z\n .object({\n key: z.string().min(1),\n label: z.string().min(1),\n align: z.enum([\"left\", \"right\"]).optional(),\n })\n .passthrough();\n\nexport const dataTableWidgetSchema = z\n .object({\n title: z.string().optional(),\n columns: z.array(dataTableColumnSchema).min(1),\n rows: z.array(z.record(z.string(), z.unknown())),\n totalRows: z.number().optional(),\n sampledRows: z.number().optional(),\n truncated: z.boolean().optional(),\n })\n .passthrough();\n\nconst dataChartSeriesDefinitionSchema = z\n .object({\n key: z.string().min(1),\n label: z.string().min(1),\n color: z.string().optional(),\n })\n .passthrough();\n\nexport const dataChartWidgetSchema = z\n .object({\n type: z.enum([\"bar\", \"line\", \"area\"]),\n title: z.string().optional(),\n xKey: z.string().min(1),\n series: z.array(dataChartSeriesDefinitionSchema).min(1),\n data: z.array(z.record(z.string(), z.unknown())),\n sampled: z.boolean().optional(),\n })\n .passthrough();\n\nconst primaryActionSchema = z\n .object({\n label: z.string().min(1),\n href: z.string().min(1),\n })\n .passthrough();\n\nconst dataWidgetDisplaySchema = z\n .object({\n title: z.string().optional(),\n description: z.string().optional(),\n primaryAction: primaryActionSchema.optional(),\n })\n .passthrough();\n\nconst dataWidgetBaseSchema = z\n .object({\n widgetId: z.string().optional(),\n title: z.string().optional(),\n summary: z.record(z.string(), z.unknown()).optional(),\n display: dataWidgetDisplaySchema.optional(),\n })\n .passthrough();\n\nexport const dataTableWidgetResultSchema = dataWidgetBaseSchema\n .extend({\n widget: z.literal(DATA_TABLE_WIDGET),\n table: dataTableWidgetSchema,\n })\n .passthrough();\n\nexport const dataChartWidgetResultSchema = dataWidgetBaseSchema\n .extend({\n widget: z.literal(DATA_CHART_WIDGET),\n chartSeries: dataChartWidgetSchema,\n })\n .passthrough();\n\nexport const dataInsightsWidgetResultSchema = dataWidgetBaseSchema\n .extend({\n widget: z.literal(DATA_INSIGHTS_WIDGET),\n table: dataTableWidgetSchema.optional(),\n chartSeries: dataChartWidgetSchema.optional(),\n })\n .passthrough()\n .refine((value) => value.table || value.chartSeries, {\n message: \"data-insights widgets require table or chartSeries\",\n });\n\nexport const dataWidgetResultSchema = z.union([\n dataTableWidgetResultSchema,\n dataChartWidgetResultSchema,\n dataInsightsWidgetResultSchema,\n]);\n"]}
@@ -2,6 +2,8 @@ export { addContextToAgentChat, appendAgentChatContextToMessage, clearAgentChatC
2
2
  export { agentChat } from "./shared/index.js";
3
3
  export { parseArgs, camelCaseArgs } from "./scripts/parse-args.js";
4
4
  export { defineAction, AgentActionStopError, isAgentActionStopError, type ActionHttpConfig, type AgentActionStopOptions, MCP_APP_EXTENSION_ID, MCP_APP_MIME_TYPE, MCP_APP_RESOURCE_URI_META_KEY, type ActionMcpAppConfig, type ActionMcpAppCsp, type ActionMcpAppCspBuilder, type ActionMcpAppHtmlBuilder, type ActionMcpAppPermissions, type ActionMcpAppResourceConfig, type ActionMcpAppResourceMeta, } from "./action.js";
5
+ export { ACTION_CHAT_UI_DATA_CHART_RENDERER, ACTION_CHAT_UI_DATA_INSIGHTS_RENDERER, ACTION_CHAT_UI_DATA_TABLE_RENDERER, ACTION_CHAT_UI_DATA_WIDGET_RENDERER, type ActionChatUIConfig, } from "./action-ui.js";
6
+ export { DATA_CHART_WIDGET, DATA_INSIGHTS_WIDGET, DATA_TABLE_WIDGET, createDataChartWidgetResult, createDataInsightsWidgetResult, createDataTableWidgetResult, dataChartWidgetResultSchema, dataChartWidgetSchema, dataInsightsWidgetResultSchema, dataTableWidgetResultSchema, dataTableWidgetSchema, dataWidgetResultSchema, isDataChartWidget, isDataTableWidget, isDataWidgetResult, normalizeDataWidgetKind, normalizeDataWidgetResult, type DataChartSeriesDefinition, type DataChartWidget, type DataChartWidgetResult, type DataChartWidgetResultInput, type DataInsightsWidgetResult, type DataInsightsWidgetResultInput, type DataTableColumn, type DataTableWidget, type DataTableWidgetResult, type DataTableWidgetResultInput, type DataWidgetDisplay, type DataWidgetKind, type DataWidgetResult, type DataWidgetResultMetadata, } from "./data-widgets/index.js";
5
7
  export { embedApp, MCP_APP_REQUEST_ORIGIN_CSP_SOURCE, type EmbedAppOptions, } from "./mcp/embed-app.js";
6
8
  export { embedRoute, type EmbedRouteContext, type EmbedRouteOptions, type EmbedRoutePathBuilder, type EmbedRouteResult, } from "./mcp/embed-route.js";
7
9
  //# sourceMappingURL=index.browser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.browser.d.ts","sourceRoot":"","sources":["../src/index.browser.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,qBAAqB,EACrB,+BAA+B,EAC/B,qBAAqB,EACrB,oCAAoC,EACpC,oBAAoB,EACpB,uBAAuB,EACvB,0BAA0B,EAC1B,eAAe,EACf,uBAAuB,EACvB,qBAAqB,EACrB,0BAA0B,EAC1B,mBAAmB,EACnB,sBAAsB,EACtB,UAAU,EACV,kBAAkB,EAClB,uCAAuC,EACvC,oBAAoB,EACpB,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,kBAAkB,EAClB,SAAS,EACT,cAAc,EACd,UAAU,EACV,EAAE,EACF,cAAc,EACd,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,+BAA+B,EACpC,KAAK,6BAA6B,EAClC,KAAK,0BAA0B,EAC/B,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,gCAAgC,EACrC,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,6BAA6B,EAClC,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,WAAW,EAChB,KAAK,yBAAyB,GAC/B,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9C,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGnE,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,sBAAsB,EACtB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,oBAAoB,EACpB,iBAAiB,EACjB,6BAA6B,EAC7B,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,GAC9B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,QAAQ,EACR,iCAAiC,EACjC,KAAK,eAAe,GACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,UAAU,EACV,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,GACtB,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.browser.d.ts","sourceRoot":"","sources":["../src/index.browser.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,qBAAqB,EACrB,+BAA+B,EAC/B,qBAAqB,EACrB,oCAAoC,EACpC,oBAAoB,EACpB,uBAAuB,EACvB,0BAA0B,EAC1B,eAAe,EACf,uBAAuB,EACvB,qBAAqB,EACrB,0BAA0B,EAC1B,mBAAmB,EACnB,sBAAsB,EACtB,UAAU,EACV,kBAAkB,EAClB,uCAAuC,EACvC,oBAAoB,EACpB,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,kBAAkB,EAClB,SAAS,EACT,cAAc,EACd,UAAU,EACV,EAAE,EACF,cAAc,EACd,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,+BAA+B,EACpC,KAAK,6BAA6B,EAClC,KAAK,0BAA0B,EAC/B,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,gCAAgC,EACrC,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,6BAA6B,EAClC,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,WAAW,EAChB,KAAK,yBAAyB,GAC/B,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9C,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGnE,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,sBAAsB,EACtB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,oBAAoB,EACpB,iBAAiB,EACjB,6BAA6B,EAC7B,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,GAC9B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,kCAAkC,EAClC,qCAAqC,EACrC,kCAAkC,EAClC,mCAAmC,EACnC,KAAK,kBAAkB,GACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,2BAA2B,EAC3B,8BAA8B,EAC9B,2BAA2B,EAC3B,2BAA2B,EAC3B,qBAAqB,EACrB,8BAA8B,EAC9B,2BAA2B,EAC3B,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EACvB,yBAAyB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,EAC7B,KAAK,6BAA6B,EAClC,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,EAC/B,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,GAC9B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,QAAQ,EACR,iCAAiC,EACjC,KAAK,eAAe,GACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,UAAU,EACV,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,GACtB,MAAM,sBAAsB,CAAC"}
@@ -7,6 +7,8 @@ export { agentChat } from "./shared/index.js";
7
7
  export { parseArgs, camelCaseArgs } from "./scripts/parse-args.js";
8
8
  // defineAction — used by template actions, no Node.js deps
9
9
  export { defineAction, AgentActionStopError, isAgentActionStopError, MCP_APP_EXTENSION_ID, MCP_APP_MIME_TYPE, MCP_APP_RESOURCE_URI_META_KEY, } from "./action.js";
10
+ export { ACTION_CHAT_UI_DATA_CHART_RENDERER, ACTION_CHAT_UI_DATA_INSIGHTS_RENDERER, ACTION_CHAT_UI_DATA_TABLE_RENDERER, ACTION_CHAT_UI_DATA_WIDGET_RENDERER, } from "./action-ui.js";
11
+ export { DATA_CHART_WIDGET, DATA_INSIGHTS_WIDGET, DATA_TABLE_WIDGET, createDataChartWidgetResult, createDataInsightsWidgetResult, createDataTableWidgetResult, dataChartWidgetResultSchema, dataChartWidgetSchema, dataInsightsWidgetResultSchema, dataTableWidgetResultSchema, dataTableWidgetSchema, dataWidgetResultSchema, isDataChartWidget, isDataTableWidget, isDataWidgetResult, normalizeDataWidgetKind, normalizeDataWidgetResult, } from "./data-widgets/index.js";
10
12
  export { embedApp, MCP_APP_REQUEST_ORIGIN_CSP_SOURCE, } from "./mcp/embed-app.js";
11
13
  export { embedRoute, } from "./mcp/embed-route.js";
12
14
  //# sourceMappingURL=index.browser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.browser.js","sourceRoot":"","sources":["../src/index.browser.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAEhF,SAAS;AACT,OAAO,EACL,qBAAqB,EACrB,+BAA+B,EAC/B,qBAAqB,EACrB,oCAAoC,EACpC,oBAAoB,EACpB,uBAAuB,EACvB,0BAA0B,EAC1B,eAAe,EACf,uBAAuB,EACvB,qBAAqB,EACrB,0BAA0B,EAC1B,mBAAmB,EACnB,sBAAsB,EACtB,UAAU,EACV,kBAAkB,EAClB,uCAAuC,EACvC,oBAAoB,EACpB,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,kBAAkB,EAClB,SAAS,EACT,cAAc,EACd,UAAU,EACV,EAAE,EACF,cAAc,GAmBf,MAAM,mBAAmB,CAAC;AAE3B,sBAAsB;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,8DAA8D;AAC9D,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAEnE,2DAA2D;AAC3D,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,sBAAsB,EAGtB,oBAAoB,EACpB,iBAAiB,EACjB,6BAA6B,GAQ9B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,QAAQ,EACR,iCAAiC,GAElC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,UAAU,GAKX,MAAM,sBAAsB,CAAC","sourcesContent":["// Browser-safe entry — only client & shared exports (no Node/Express/chokidar).\n\n// Client\nexport {\n addContextToAgentChat,\n appendAgentChatContextToMessage,\n clearAgentChatContext,\n formatAgentChatContextItemsForPrompt,\n listAgentChatContext,\n refreshAgentChatContext,\n removeAgentChatContextItem,\n sendToAgentChat,\n setAgentChatContextItem,\n setContextToAgentChat,\n isEmbedMcpChatBridgeActive,\n useAgentChatContext,\n useAgentChatGenerating,\n useDevMode,\n useSendToAgentChat,\n AGENT_NATIVE_MCP_APP_HOST_MESSAGE_TYPES,\n getMcpAppHostContext,\n openMcpAppHostLink,\n requestMcpAppDisplayMode,\n sendMcpAppHostMessage,\n updateMcpAppModelContext,\n useMcpAppHostContext,\n CodeRequiredDialog,\n useDbSync,\n useFileWatcher,\n useSession,\n cn,\n ApiKeySettings,\n type AgentChatContextItem,\n type AgentChatContextMessage,\n type AgentChatContextMutationOptions,\n type AgentChatContextRemoveOptions,\n type AgentChatContextSetOptions,\n type AgentChatContextState,\n type AgentChatMessage,\n type AgentNativeMcpAppHostMessageType,\n type McpAppDisplayMode,\n type McpAppHostChatMessage,\n type McpAppHostCapabilities,\n type McpAppHostContext,\n type McpAppHostContextSnapshot,\n type McpAppModelContextContentPart,\n type McpAppModelContextUpdate,\n type CodeRequiredDialogProps,\n type AuthSession,\n type UseAgentChatContextResult,\n} from \"./client/index.js\";\n\n// Shared (isomorphic)\nexport { agentChat } from \"./shared/index.js\";\n\n// Pure utilities (no Node.js deps — safe for browser and SSR)\nexport { parseArgs, camelCaseArgs } from \"./scripts/parse-args.js\";\n\n// defineAction — used by template actions, no Node.js deps\nexport {\n defineAction,\n AgentActionStopError,\n isAgentActionStopError,\n type ActionHttpConfig,\n type AgentActionStopOptions,\n MCP_APP_EXTENSION_ID,\n MCP_APP_MIME_TYPE,\n MCP_APP_RESOURCE_URI_META_KEY,\n type ActionMcpAppConfig,\n type ActionMcpAppCsp,\n type ActionMcpAppCspBuilder,\n type ActionMcpAppHtmlBuilder,\n type ActionMcpAppPermissions,\n type ActionMcpAppResourceConfig,\n type ActionMcpAppResourceMeta,\n} from \"./action.js\";\nexport {\n embedApp,\n MCP_APP_REQUEST_ORIGIN_CSP_SOURCE,\n type EmbedAppOptions,\n} from \"./mcp/embed-app.js\";\nexport {\n embedRoute,\n type EmbedRouteContext,\n type EmbedRouteOptions,\n type EmbedRoutePathBuilder,\n type EmbedRouteResult,\n} from \"./mcp/embed-route.js\";\n"]}
1
+ {"version":3,"file":"index.browser.js","sourceRoot":"","sources":["../src/index.browser.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAEhF,SAAS;AACT,OAAO,EACL,qBAAqB,EACrB,+BAA+B,EAC/B,qBAAqB,EACrB,oCAAoC,EACpC,oBAAoB,EACpB,uBAAuB,EACvB,0BAA0B,EAC1B,eAAe,EACf,uBAAuB,EACvB,qBAAqB,EACrB,0BAA0B,EAC1B,mBAAmB,EACnB,sBAAsB,EACtB,UAAU,EACV,kBAAkB,EAClB,uCAAuC,EACvC,oBAAoB,EACpB,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,kBAAkB,EAClB,SAAS,EACT,cAAc,EACd,UAAU,EACV,EAAE,EACF,cAAc,GAmBf,MAAM,mBAAmB,CAAC;AAE3B,sBAAsB;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,8DAA8D;AAC9D,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAEnE,2DAA2D;AAC3D,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,sBAAsB,EAGtB,oBAAoB,EACpB,iBAAiB,EACjB,6BAA6B,GAQ9B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,kCAAkC,EAClC,qCAAqC,EACrC,kCAAkC,EAClC,mCAAmC,GAEpC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,2BAA2B,EAC3B,8BAA8B,EAC9B,2BAA2B,EAC3B,2BAA2B,EAC3B,qBAAqB,EACrB,8BAA8B,EAC9B,2BAA2B,EAC3B,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EACvB,yBAAyB,GAe1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,QAAQ,EACR,iCAAiC,GAElC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,UAAU,GAKX,MAAM,sBAAsB,CAAC","sourcesContent":["// Browser-safe entry — only client & shared exports (no Node/Express/chokidar).\n\n// Client\nexport {\n addContextToAgentChat,\n appendAgentChatContextToMessage,\n clearAgentChatContext,\n formatAgentChatContextItemsForPrompt,\n listAgentChatContext,\n refreshAgentChatContext,\n removeAgentChatContextItem,\n sendToAgentChat,\n setAgentChatContextItem,\n setContextToAgentChat,\n isEmbedMcpChatBridgeActive,\n useAgentChatContext,\n useAgentChatGenerating,\n useDevMode,\n useSendToAgentChat,\n AGENT_NATIVE_MCP_APP_HOST_MESSAGE_TYPES,\n getMcpAppHostContext,\n openMcpAppHostLink,\n requestMcpAppDisplayMode,\n sendMcpAppHostMessage,\n updateMcpAppModelContext,\n useMcpAppHostContext,\n CodeRequiredDialog,\n useDbSync,\n useFileWatcher,\n useSession,\n cn,\n ApiKeySettings,\n type AgentChatContextItem,\n type AgentChatContextMessage,\n type AgentChatContextMutationOptions,\n type AgentChatContextRemoveOptions,\n type AgentChatContextSetOptions,\n type AgentChatContextState,\n type AgentChatMessage,\n type AgentNativeMcpAppHostMessageType,\n type McpAppDisplayMode,\n type McpAppHostChatMessage,\n type McpAppHostCapabilities,\n type McpAppHostContext,\n type McpAppHostContextSnapshot,\n type McpAppModelContextContentPart,\n type McpAppModelContextUpdate,\n type CodeRequiredDialogProps,\n type AuthSession,\n type UseAgentChatContextResult,\n} from \"./client/index.js\";\n\n// Shared (isomorphic)\nexport { agentChat } from \"./shared/index.js\";\n\n// Pure utilities (no Node.js deps — safe for browser and SSR)\nexport { parseArgs, camelCaseArgs } from \"./scripts/parse-args.js\";\n\n// defineAction — used by template actions, no Node.js deps\nexport {\n defineAction,\n AgentActionStopError,\n isAgentActionStopError,\n type ActionHttpConfig,\n type AgentActionStopOptions,\n MCP_APP_EXTENSION_ID,\n MCP_APP_MIME_TYPE,\n MCP_APP_RESOURCE_URI_META_KEY,\n type ActionMcpAppConfig,\n type ActionMcpAppCsp,\n type ActionMcpAppCspBuilder,\n type ActionMcpAppHtmlBuilder,\n type ActionMcpAppPermissions,\n type ActionMcpAppResourceConfig,\n type ActionMcpAppResourceMeta,\n} from \"./action.js\";\nexport {\n ACTION_CHAT_UI_DATA_CHART_RENDERER,\n ACTION_CHAT_UI_DATA_INSIGHTS_RENDERER,\n ACTION_CHAT_UI_DATA_TABLE_RENDERER,\n ACTION_CHAT_UI_DATA_WIDGET_RENDERER,\n type ActionChatUIConfig,\n} from \"./action-ui.js\";\nexport {\n DATA_CHART_WIDGET,\n DATA_INSIGHTS_WIDGET,\n DATA_TABLE_WIDGET,\n createDataChartWidgetResult,\n createDataInsightsWidgetResult,\n createDataTableWidgetResult,\n dataChartWidgetResultSchema,\n dataChartWidgetSchema,\n dataInsightsWidgetResultSchema,\n dataTableWidgetResultSchema,\n dataTableWidgetSchema,\n dataWidgetResultSchema,\n isDataChartWidget,\n isDataTableWidget,\n isDataWidgetResult,\n normalizeDataWidgetKind,\n normalizeDataWidgetResult,\n type DataChartSeriesDefinition,\n type DataChartWidget,\n type DataChartWidgetResult,\n type DataChartWidgetResultInput,\n type DataInsightsWidgetResult,\n type DataInsightsWidgetResultInput,\n type DataTableColumn,\n type DataTableWidget,\n type DataTableWidgetResult,\n type DataTableWidgetResultInput,\n type DataWidgetDisplay,\n type DataWidgetKind,\n type DataWidgetResult,\n type DataWidgetResultMetadata,\n} from \"./data-widgets/index.js\";\nexport {\n embedApp,\n MCP_APP_REQUEST_ORIGIN_CSP_SOURCE,\n type EmbedAppOptions,\n} from \"./mcp/embed-app.js\";\nexport {\n embedRoute,\n type EmbedRouteContext,\n type EmbedRouteOptions,\n type EmbedRoutePathBuilder,\n type EmbedRouteResult,\n} from \"./mcp/embed-route.js\";\n"]}