@actioneer/ads 0.2.3 → 0.3.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.
- package/components/ai-elements/chain-of-thought.d.ts +88 -19
- package/components/ai-elements/chain-of-thought.js +358 -149
- package/components/ai-elements/chart.d.ts +30 -0
- package/components/ai-elements/chart.js +303 -0
- package/components/ai-elements/index.d.ts +2 -1
- package/components/ai-elements/message.d.ts +19 -4
- package/components/ai-elements/message.js +177 -130
- package/components/ai-elements/research-activity.d.ts +45 -0
- package/components/ai-elements/research-activity.js +260 -0
- package/components/ai-elements/task-progress.js +69 -66
- package/components/ai-elements/tool.js +42 -38
- package/components/answer.d.ts +19 -0
- package/components/answer.js +363 -300
- package/components/assistant-ui/attachment.js +5 -1
- package/components/assistant-ui/composer-deep-research.js +44 -29
- package/components/assistant-ui/composer-harness.js +55 -38
- package/components/assistant-ui/composer.js +16 -16
- package/components/assistant-ui/index.d.ts +0 -1
- package/components/assistant-ui/message.d.ts +7 -0
- package/components/assistant-ui/message.js +64 -51
- package/components/assistant-ui/primitives.d.ts +1 -1
- package/components/assistant-ui/thread-context.d.ts +2 -0
- package/components/assistant-ui/thread.js +34 -32
- package/components/brand-texture.d.ts +37 -0
- package/components/brand-texture.js +54 -0
- package/components/chart.d.ts +64 -2
- package/components/chart.js +717 -456
- package/components/code-block.d.ts +36 -0
- package/components/code-block.js +136 -0
- package/components/command-palette.d.ts +43 -0
- package/components/command-palette.js +146 -0
- package/components/drawer.d.ts +1 -1
- package/components/file-dropzone.d.ts +32 -0
- package/components/file-dropzone.js +134 -0
- package/components/index.d.ts +11 -0
- package/components/index.js +480 -430
- package/components/infinite-canvas.d.ts +50 -0
- package/components/infinite-canvas.js +215 -0
- package/components/page-header.d.ts +22 -0
- package/components/page-header.js +52 -0
- package/components/resizable-panel.d.ts +29 -0
- package/components/resizable-panel.js +102 -0
- package/components/reveal.d.ts +36 -0
- package/components/reveal.js +35 -0
- package/components/scroll-area.d.ts +19 -0
- package/components/scroll-area.js +57 -0
- package/components/setting-row.d.ts +35 -0
- package/components/setting-row.js +86 -0
- package/components/sidebar.d.ts +4 -1
- package/components/sidebar.js +134 -132
- package/components/stepper.d.ts +32 -0
- package/components/stepper.js +113 -0
- package/components/table.js +16 -15
- package/components/tabs.js +1 -1
- package/hooks/agents-ui/voice-visualizer-types.js +1 -0
- package/lib/icons.d.ts +24 -0
- package/lib/icons.js +100 -110
- package/lib/motion.d.ts +5 -3
- package/lib/motion.js +46 -20
- package/lib/router.js +19 -0
- package/lib/utils.js +5 -0
- package/llms.txt +143 -39
- package/manifest.json +1232 -100
- package/package.json +2 -2
- package/styles.css +71 -28
- package/theme.css +19 -15
- package/components/ai-elements/reasoning.d.ts +0 -26
- package/components/ai-elements/reasoning.js +0 -131
- package/components/assistant-ui/smart-message-text.d.ts +0 -15
- package/components/assistant-ui/smart-message-text.js +0 -29
package/components/answer.js
CHANGED
|
@@ -1,169 +1,180 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsxs as i, jsx as
|
|
3
|
-
import * as
|
|
4
|
-
import { cva as
|
|
5
|
-
import { z as
|
|
6
|
-
import { Alert as
|
|
7
|
-
import { Badge as
|
|
8
|
-
import { Button as
|
|
2
|
+
import { jsxs as i, jsx as a } from "react/jsx-runtime";
|
|
3
|
+
import * as u from "react";
|
|
4
|
+
import { cva as L } from "class-variance-authority";
|
|
5
|
+
import { z as e } from "zod/v4";
|
|
6
|
+
import { Alert as E, AlertTitle as B, AlertDescription as $ } from "./alert.js";
|
|
7
|
+
import { Badge as p } from "./badge.js";
|
|
8
|
+
import { Button as z } from "./button.js";
|
|
9
9
|
import { FollowUpSuggestion as O } from "./assistant-ui/follow-up-suggestions.js";
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
10
|
+
import { Source as P, SourceTitle as V } from "./assistant-ui/sources.js";
|
|
11
|
+
import { AreaChart as _, BarChart as M, LineChart as W } from "./chart.js";
|
|
12
|
+
import { Progress as I } from "./progress.js";
|
|
12
13
|
import { cn as c } from "../lib/cn.js";
|
|
13
|
-
const
|
|
14
|
+
const K = "render_answer", H = "Render the final answer with one curated ADS template. Choose the semantic kind that best matches the answer and provide only validated data; the application owns the layout.", x = e.enum([
|
|
14
15
|
"default",
|
|
15
16
|
"primary",
|
|
16
17
|
"success",
|
|
17
18
|
"warning",
|
|
18
19
|
"danger",
|
|
19
20
|
"info"
|
|
20
|
-
]),
|
|
21
|
-
id:
|
|
22
|
-
label:
|
|
23
|
-
prompt:
|
|
24
|
-
}),
|
|
25
|
-
id:
|
|
26
|
-
label:
|
|
27
|
-
description:
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
21
|
+
]), F = e.object({
|
|
22
|
+
id: e.string().min(1),
|
|
23
|
+
label: e.string().min(1),
|
|
24
|
+
prompt: e.string().min(1).optional()
|
|
25
|
+
}), q = e.object({
|
|
26
|
+
id: e.string().min(1),
|
|
27
|
+
label: e.string().min(1),
|
|
28
|
+
description: e.string().optional(),
|
|
29
|
+
href: e.string().min(1).refine((t) => {
|
|
30
|
+
if (t.startsWith("/") || t.startsWith("#")) return !0;
|
|
31
|
+
try {
|
|
32
|
+
const r = new URL(t).protocol;
|
|
33
|
+
return r === "http:" || r === "https:";
|
|
34
|
+
} catch {
|
|
35
|
+
return !1;
|
|
36
|
+
}
|
|
37
|
+
}, "Source link must be HTTP(S) or app-relative").optional().describe("Destination opened in a new tab when the source is selected")
|
|
38
|
+
}), b = e.object({
|
|
39
|
+
label: e.string().optional(),
|
|
40
|
+
text: e.string().min(1),
|
|
31
41
|
tone: x.optional()
|
|
32
|
-
}),
|
|
33
|
-
eyebrow:
|
|
34
|
-
headline:
|
|
35
|
-
summary:
|
|
36
|
-
followUps:
|
|
37
|
-
sources:
|
|
38
|
-
}, A =
|
|
39
|
-
value:
|
|
40
|
-
detail:
|
|
42
|
+
}), f = {
|
|
43
|
+
eyebrow: e.string().optional(),
|
|
44
|
+
headline: e.string().min(1),
|
|
45
|
+
summary: e.string().optional(),
|
|
46
|
+
followUps: e.array(F).max(3).optional(),
|
|
47
|
+
sources: e.array(q).max(8).optional()
|
|
48
|
+
}, A = e.object({
|
|
49
|
+
value: e.string().min(1),
|
|
50
|
+
detail: e.string().optional(),
|
|
41
51
|
tone: x.optional()
|
|
42
|
-
}),
|
|
43
|
-
...
|
|
44
|
-
kind:
|
|
45
|
-
subjects:
|
|
46
|
-
|
|
47
|
-
|
|
52
|
+
}), G = e.object({
|
|
53
|
+
...f,
|
|
54
|
+
kind: e.literal("comparison"),
|
|
55
|
+
subjects: e.tuple([
|
|
56
|
+
e.object({ label: e.string().min(1), description: e.string().optional() }),
|
|
57
|
+
e.object({ label: e.string().min(1), description: e.string().optional() })
|
|
48
58
|
]),
|
|
49
|
-
rows:
|
|
50
|
-
|
|
51
|
-
label:
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
59
|
+
rows: e.array(
|
|
60
|
+
e.object({
|
|
61
|
+
label: e.string().min(1),
|
|
62
|
+
description: e.string().min(1).optional().describe("Methodology, grain, or scope shown beneath the measure"),
|
|
63
|
+
values: e.tuple([A, A]),
|
|
64
|
+
delta: e.object({
|
|
65
|
+
value: e.string().min(1),
|
|
55
66
|
tone: x.optional()
|
|
56
67
|
}).optional()
|
|
57
68
|
})
|
|
58
69
|
).min(1).max(8),
|
|
59
70
|
takeaway: b.optional()
|
|
60
|
-
}),
|
|
71
|
+
}), k = e.enum([
|
|
61
72
|
"primary",
|
|
62
73
|
"success",
|
|
63
74
|
"warning",
|
|
64
75
|
"danger",
|
|
65
76
|
"info"
|
|
66
|
-
]),
|
|
67
|
-
|
|
68
|
-
kind:
|
|
69
|
-
value:
|
|
70
|
-
axis:
|
|
71
|
-
label:
|
|
72
|
-
color:
|
|
77
|
+
]), J = e.discriminatedUnion("kind", [
|
|
78
|
+
e.object({
|
|
79
|
+
kind: e.literal("line"),
|
|
80
|
+
value: e.union([e.number(), e.string()]),
|
|
81
|
+
axis: e.enum(["x", "y"]).optional(),
|
|
82
|
+
label: e.string().optional(),
|
|
83
|
+
color: k.optional()
|
|
73
84
|
}),
|
|
74
|
-
|
|
75
|
-
kind:
|
|
76
|
-
from:
|
|
77
|
-
to:
|
|
78
|
-
axis:
|
|
79
|
-
label:
|
|
80
|
-
color:
|
|
85
|
+
e.object({
|
|
86
|
+
kind: e.literal("band"),
|
|
87
|
+
from: e.union([e.number(), e.string()]),
|
|
88
|
+
to: e.union([e.number(), e.string()]),
|
|
89
|
+
axis: e.enum(["x", "y"]).optional(),
|
|
90
|
+
label: e.string().optional(),
|
|
91
|
+
color: k.optional()
|
|
81
92
|
}),
|
|
82
|
-
|
|
83
|
-
kind:
|
|
84
|
-
x:
|
|
85
|
-
y:
|
|
86
|
-
label:
|
|
87
|
-
description:
|
|
88
|
-
color:
|
|
93
|
+
e.object({
|
|
94
|
+
kind: e.literal("point"),
|
|
95
|
+
x: e.union([e.number(), e.string()]),
|
|
96
|
+
y: e.number(),
|
|
97
|
+
label: e.string().min(1),
|
|
98
|
+
description: e.string().optional(),
|
|
99
|
+
color: k.optional()
|
|
89
100
|
})
|
|
90
|
-
]),
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
),
|
|
94
|
-
...
|
|
95
|
-
kind:
|
|
96
|
-
metric:
|
|
97
|
-
label:
|
|
98
|
-
value:
|
|
99
|
-
change:
|
|
101
|
+
]), Q = e.record(
|
|
102
|
+
e.string(),
|
|
103
|
+
e.union([e.string(), e.number(), e.null()])
|
|
104
|
+
), U = e.object({
|
|
105
|
+
...f,
|
|
106
|
+
kind: e.literal("trend"),
|
|
107
|
+
metric: e.object({
|
|
108
|
+
label: e.string().min(1),
|
|
109
|
+
value: e.string().min(1),
|
|
110
|
+
change: e.string().optional(),
|
|
100
111
|
tone: x.optional()
|
|
101
112
|
}).optional(),
|
|
102
|
-
chart:
|
|
103
|
-
type:
|
|
104
|
-
data:
|
|
105
|
-
categoryKey:
|
|
106
|
-
series:
|
|
107
|
-
seriesLabels:
|
|
108
|
-
highlight:
|
|
109
|
-
unit:
|
|
110
|
-
annotations:
|
|
113
|
+
chart: e.object({
|
|
114
|
+
type: e.enum(["line", "area", "bar"]),
|
|
115
|
+
data: e.array(Q).min(1).max(100),
|
|
116
|
+
categoryKey: e.string().min(1),
|
|
117
|
+
series: e.array(e.string().min(1)).min(1).max(4),
|
|
118
|
+
seriesLabels: e.record(e.string(), e.string()).optional(),
|
|
119
|
+
highlight: e.string().optional(),
|
|
120
|
+
unit: e.string().optional(),
|
|
121
|
+
annotations: e.array(J).max(8).optional()
|
|
111
122
|
}),
|
|
112
123
|
insight: b.optional()
|
|
113
|
-
}),
|
|
114
|
-
...
|
|
115
|
-
kind:
|
|
116
|
-
overall:
|
|
117
|
-
label:
|
|
118
|
-
value:
|
|
124
|
+
}), X = e.object({
|
|
125
|
+
...f,
|
|
126
|
+
kind: e.literal("status"),
|
|
127
|
+
overall: e.object({
|
|
128
|
+
label: e.string().min(1),
|
|
129
|
+
value: e.string().min(1),
|
|
119
130
|
tone: x.optional()
|
|
120
131
|
}).optional(),
|
|
121
|
-
items:
|
|
122
|
-
|
|
123
|
-
label:
|
|
124
|
-
status:
|
|
125
|
-
detail:
|
|
126
|
-
meta:
|
|
132
|
+
items: e.array(
|
|
133
|
+
e.object({
|
|
134
|
+
label: e.string().min(1),
|
|
135
|
+
status: e.string().min(1),
|
|
136
|
+
detail: e.string().optional(),
|
|
137
|
+
meta: e.string().optional(),
|
|
127
138
|
tone: x.optional()
|
|
128
139
|
})
|
|
129
140
|
).min(1).max(12),
|
|
130
141
|
recommendation: b.optional()
|
|
131
|
-
}),
|
|
132
|
-
...
|
|
133
|
-
kind:
|
|
134
|
-
total:
|
|
135
|
-
items:
|
|
136
|
-
|
|
137
|
-
label:
|
|
138
|
-
value:
|
|
139
|
-
share:
|
|
140
|
-
detail:
|
|
142
|
+
}), Y = e.object({
|
|
143
|
+
...f,
|
|
144
|
+
kind: e.literal("breakdown"),
|
|
145
|
+
total: e.object({ label: e.string().min(1), value: e.string().min(1) }).optional(),
|
|
146
|
+
items: e.array(
|
|
147
|
+
e.object({
|
|
148
|
+
label: e.string().min(1),
|
|
149
|
+
value: e.string().min(1),
|
|
150
|
+
share: e.number().min(0).max(100),
|
|
151
|
+
detail: e.string().optional(),
|
|
141
152
|
tone: x.optional()
|
|
142
153
|
})
|
|
143
154
|
).min(1).max(12),
|
|
144
155
|
insight: b.optional()
|
|
145
|
-
}),
|
|
146
|
-
...
|
|
147
|
-
kind:
|
|
148
|
-
sections:
|
|
149
|
-
|
|
150
|
-
title:
|
|
151
|
-
body:
|
|
152
|
-
bullets:
|
|
156
|
+
}), Z = e.object({
|
|
157
|
+
...f,
|
|
158
|
+
kind: e.literal("explanation"),
|
|
159
|
+
sections: e.array(
|
|
160
|
+
e.object({
|
|
161
|
+
title: e.string().min(1),
|
|
162
|
+
body: e.string().optional(),
|
|
163
|
+
bullets: e.array(e.string().min(1)).max(5).optional()
|
|
153
164
|
})
|
|
154
165
|
).min(1).max(6),
|
|
155
166
|
takeaway: b.optional()
|
|
156
|
-
}),
|
|
157
|
-
F,
|
|
167
|
+
}), ee = e.discriminatedUnion("kind", [
|
|
158
168
|
G,
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
169
|
+
U,
|
|
170
|
+
X,
|
|
171
|
+
Y,
|
|
172
|
+
Z
|
|
173
|
+
]), pe = {
|
|
174
|
+
name: K,
|
|
175
|
+
description: H,
|
|
176
|
+
inputSchema: ee
|
|
177
|
+
}, v = L("font-semibold tabular-nums text-foreground", {
|
|
167
178
|
variants: {
|
|
168
179
|
tone: {
|
|
169
180
|
default: "text-foreground",
|
|
@@ -175,45 +186,49 @@ const I = "render_answer", K = "Render the final answer with one curated ADS tem
|
|
|
175
186
|
}
|
|
176
187
|
},
|
|
177
188
|
defaultVariants: { tone: "default" }
|
|
178
|
-
}),
|
|
189
|
+
}), te = new Intl.NumberFormat("en-US", {
|
|
179
190
|
notation: "compact",
|
|
180
191
|
maximumFractionDigits: 1
|
|
181
|
-
}),
|
|
182
|
-
function
|
|
192
|
+
}), ae = (t) => t === "success" || t === "warning" || t === "danger" || t === "info" ? t : "default", ne = (t) => t === "success" || t === "warning" || t === "danger" || t === "info" ? t : "primary";
|
|
193
|
+
function y({ spec: t }) {
|
|
183
194
|
return /* @__PURE__ */ i("div", { className: "space-y-2", children: [
|
|
184
|
-
|
|
185
|
-
/* @__PURE__ */
|
|
186
|
-
|
|
195
|
+
t.eyebrow && /* @__PURE__ */ a("p", { className: "text-xs font-semibold uppercase tracking-wider text-tertiary", children: t.eyebrow }),
|
|
196
|
+
/* @__PURE__ */ a("h2", { className: "max-w-2xl text-xl font-bold leading-tight tracking-tight text-foreground", children: t.headline }),
|
|
197
|
+
t.summary && /* @__PURE__ */ a("p", { className: "max-w-2xl text-sm leading-6 text-secondary", children: t.summary })
|
|
187
198
|
] });
|
|
188
199
|
}
|
|
189
|
-
function
|
|
190
|
-
return /* @__PURE__ */ i(
|
|
191
|
-
/* @__PURE__ */
|
|
192
|
-
/* @__PURE__ */
|
|
200
|
+
function w({ signal: t }) {
|
|
201
|
+
return /* @__PURE__ */ i(E, { variant: ae(t.tone), children: [
|
|
202
|
+
/* @__PURE__ */ a(B, { children: t.label ?? "Takeaway" }),
|
|
203
|
+
/* @__PURE__ */ a($, { children: t.text })
|
|
193
204
|
] });
|
|
194
205
|
}
|
|
195
|
-
function
|
|
196
|
-
followUps:
|
|
206
|
+
function N({
|
|
207
|
+
followUps: t,
|
|
197
208
|
sources: r,
|
|
198
209
|
onFollowUp: s,
|
|
199
210
|
onSourceSelect: o
|
|
200
211
|
}) {
|
|
201
|
-
return !(
|
|
202
|
-
!!(a != null && a.length) && /* @__PURE__ */ e("div", { className: "flex flex-wrap gap-2", children: a.map((l) => /* @__PURE__ */ e(
|
|
203
|
-
O,
|
|
204
|
-
{
|
|
205
|
-
type: "button",
|
|
206
|
-
disabled: !s,
|
|
207
|
-
onClick: () => s == null ? void 0 : s(l),
|
|
208
|
-
children: l.label
|
|
209
|
-
},
|
|
210
|
-
l.id
|
|
211
|
-
)) }),
|
|
212
|
+
return !(t != null && t.length) && !(r != null && r.length) ? null : /* @__PURE__ */ i("div", { className: "space-y-3 pt-1", children: [
|
|
212
213
|
!!(r != null && r.length) && /* @__PURE__ */ i("div", { className: "flex flex-wrap items-center gap-1.5", children: [
|
|
213
|
-
/* @__PURE__ */
|
|
214
|
+
/* @__PURE__ */ a("span", { className: "mr-1 text-xs font-medium text-tertiary", children: "Sources" }),
|
|
214
215
|
r.map(
|
|
215
|
-
(l) =>
|
|
216
|
-
|
|
216
|
+
(l) => l.href ? /* @__PURE__ */ i(
|
|
217
|
+
P,
|
|
218
|
+
{
|
|
219
|
+
href: l.href,
|
|
220
|
+
variant: "muted",
|
|
221
|
+
size: "sm",
|
|
222
|
+
title: l.description,
|
|
223
|
+
className: "h-6 rounded-full px-2",
|
|
224
|
+
children: [
|
|
225
|
+
/* @__PURE__ */ a(V, { children: l.label }),
|
|
226
|
+
/* @__PURE__ */ a("span", { className: "sr-only", children: " (opens in a new tab)" })
|
|
227
|
+
]
|
|
228
|
+
},
|
|
229
|
+
l.id
|
|
230
|
+
) : o ? /* @__PURE__ */ a(
|
|
231
|
+
z,
|
|
217
232
|
{
|
|
218
233
|
type: "button",
|
|
219
234
|
size: "xs",
|
|
@@ -224,64 +239,112 @@ function w({
|
|
|
224
239
|
children: l.label
|
|
225
240
|
},
|
|
226
241
|
l.id
|
|
227
|
-
) : /* @__PURE__ */
|
|
242
|
+
) : /* @__PURE__ */ a(p, { variant: "soft", title: l.description, children: l.label }, l.id)
|
|
228
243
|
)
|
|
229
|
-
] })
|
|
244
|
+
] }),
|
|
245
|
+
!!(t != null && t.length) && /* @__PURE__ */ a("div", { className: "flex flex-wrap gap-2", children: t.map((l) => /* @__PURE__ */ a(
|
|
246
|
+
O,
|
|
247
|
+
{
|
|
248
|
+
type: "button",
|
|
249
|
+
disabled: !s,
|
|
250
|
+
onClick: () => s == null ? void 0 : s(l),
|
|
251
|
+
children: l.label
|
|
252
|
+
},
|
|
253
|
+
l.id
|
|
254
|
+
)) })
|
|
230
255
|
] });
|
|
231
256
|
}
|
|
232
|
-
const j =
|
|
257
|
+
const j = u.forwardRef(({ spec: t, onFollowUp: r, onSourceSelect: s, className: o, ...l }, m) => /* @__PURE__ */ i(
|
|
233
258
|
"div",
|
|
234
259
|
{
|
|
235
|
-
ref:
|
|
236
|
-
"data-answer-kind":
|
|
260
|
+
ref: m,
|
|
261
|
+
"data-answer-kind": t.kind,
|
|
237
262
|
className: c("w-full max-w-2xl space-y-5", o),
|
|
238
263
|
...l,
|
|
239
264
|
children: [
|
|
240
|
-
/* @__PURE__ */
|
|
241
|
-
/* @__PURE__ */
|
|
242
|
-
/* @__PURE__ */
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
265
|
+
/* @__PURE__ */ a(y, { spec: t }),
|
|
266
|
+
/* @__PURE__ */ a("div", { className: "overflow-x-auto rounded-2xl bg-surface p-2", children: /* @__PURE__ */ i("table", { className: "w-full min-w-[32rem] border-separate border-spacing-y-1 text-left", children: [
|
|
267
|
+
/* @__PURE__ */ a("caption", { className: "sr-only", children: t.headline }),
|
|
268
|
+
/* @__PURE__ */ a("thead", { children: /* @__PURE__ */ i("tr", { children: [
|
|
269
|
+
/* @__PURE__ */ a(
|
|
270
|
+
"th",
|
|
271
|
+
{
|
|
272
|
+
scope: "col",
|
|
273
|
+
className: "w-1/3 px-3 py-2 text-xs font-medium text-tertiary",
|
|
274
|
+
children: "Measure"
|
|
275
|
+
}
|
|
276
|
+
),
|
|
277
|
+
t.subjects.map((n) => /* @__PURE__ */ i(
|
|
278
|
+
"th",
|
|
279
|
+
{
|
|
280
|
+
scope: "col",
|
|
281
|
+
className: "px-3 py-2 align-bottom",
|
|
282
|
+
children: [
|
|
283
|
+
/* @__PURE__ */ a("span", { className: "block text-sm font-semibold text-foreground", children: n.label }),
|
|
284
|
+
n.description && /* @__PURE__ */ a("span", { className: "mt-0.5 block text-xs font-normal text-tertiary", children: n.description })
|
|
285
|
+
]
|
|
286
|
+
},
|
|
287
|
+
n.label
|
|
288
|
+
)),
|
|
289
|
+
/* @__PURE__ */ i("th", { scope: "col", className: "px-3 py-2 align-bottom", children: [
|
|
290
|
+
/* @__PURE__ */ a("span", { className: "block text-sm font-semibold text-foreground", children: "Difference" }),
|
|
291
|
+
/* @__PURE__ */ i("span", { className: "mt-0.5 block text-xs font-normal text-tertiary", children: [
|
|
292
|
+
t.subjects[1].label,
|
|
293
|
+
" − ",
|
|
294
|
+
t.subjects[0].label
|
|
295
|
+
] })
|
|
296
|
+
] })
|
|
248
297
|
] }) }),
|
|
249
|
-
/* @__PURE__ */
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
298
|
+
/* @__PURE__ */ a("tbody", { children: t.rows.map((n) => {
|
|
299
|
+
const d = n.values[0].detail === n.values[1].detail ? n.values[0].detail : void 0, h = n.description ?? d;
|
|
300
|
+
return /* @__PURE__ */ i("tr", { className: "[&>*]:bg-muted/60", children: [
|
|
301
|
+
/* @__PURE__ */ i(
|
|
302
|
+
"th",
|
|
303
|
+
{
|
|
304
|
+
scope: "row",
|
|
305
|
+
className: "rounded-l-xl px-3 py-3 align-top text-left",
|
|
306
|
+
children: [
|
|
307
|
+
/* @__PURE__ */ a("span", { className: "block text-sm font-medium text-secondary", children: n.label }),
|
|
308
|
+
h && /* @__PURE__ */ a("span", { className: "mt-0.5 block text-xs font-normal text-tertiary", children: h })
|
|
309
|
+
]
|
|
310
|
+
}
|
|
311
|
+
),
|
|
312
|
+
n.values.map((g, D) => /* @__PURE__ */ a(
|
|
313
|
+
"td",
|
|
314
|
+
{
|
|
315
|
+
className: "px-3 py-3 align-top",
|
|
316
|
+
children: /* @__PURE__ */ a(
|
|
317
|
+
"span",
|
|
318
|
+
{
|
|
319
|
+
className: c(
|
|
320
|
+
v({ tone: g.tone }),
|
|
321
|
+
"block text-sm"
|
|
322
|
+
),
|
|
323
|
+
children: g.value
|
|
324
|
+
}
|
|
325
|
+
)
|
|
326
|
+
},
|
|
327
|
+
`${n.label}-${t.subjects[D].label}`
|
|
328
|
+
)),
|
|
329
|
+
/* @__PURE__ */ a("td", { className: "rounded-r-xl px-3 py-3 align-top", children: n.delta ? /* @__PURE__ */ a(
|
|
253
330
|
"span",
|
|
254
331
|
{
|
|
255
332
|
className: c(
|
|
256
|
-
|
|
257
|
-
"
|
|
333
|
+
v({ tone: n.delta.tone }),
|
|
334
|
+
"block text-sm"
|
|
258
335
|
),
|
|
259
336
|
children: n.delta.value
|
|
260
337
|
}
|
|
261
|
-
)
|
|
262
|
-
] })
|
|
263
|
-
|
|
264
|
-
"td",
|
|
265
|
-
{
|
|
266
|
-
className: c(
|
|
267
|
-
"px-3 py-3 align-top last:rounded-r-xl",
|
|
268
|
-
N({ tone: m.tone })
|
|
269
|
-
),
|
|
270
|
-
children: [
|
|
271
|
-
/* @__PURE__ */ e("span", { className: "block text-sm", children: m.value }),
|
|
272
|
-
m.detail && /* @__PURE__ */ e("span", { className: "mt-0.5 block text-xs font-normal text-tertiary", children: m.detail })
|
|
273
|
-
]
|
|
274
|
-
},
|
|
275
|
-
`${n.label}-${a.subjects[u].label}`
|
|
276
|
-
))
|
|
277
|
-
] }, n.label)) })
|
|
338
|
+
) : /* @__PURE__ */ a("span", { "aria-label": "Not provided", className: "text-sm text-tertiary", children: "—" }) })
|
|
339
|
+
] }, n.label);
|
|
340
|
+
}) })
|
|
278
341
|
] }) }),
|
|
279
|
-
|
|
280
|
-
/* @__PURE__ */
|
|
281
|
-
|
|
342
|
+
t.takeaway && /* @__PURE__ */ a(w, { signal: t.takeaway }),
|
|
343
|
+
/* @__PURE__ */ a(
|
|
344
|
+
N,
|
|
282
345
|
{
|
|
283
|
-
followUps:
|
|
284
|
-
sources:
|
|
346
|
+
followUps: t.followUps,
|
|
347
|
+
sources: t.sources,
|
|
285
348
|
onFollowUp: r,
|
|
286
349
|
onSourceSelect: s
|
|
287
350
|
}
|
|
@@ -290,53 +353,53 @@ const j = h.forwardRef(({ spec: a, onFollowUp: r, onSourceSelect: s, className:
|
|
|
290
353
|
}
|
|
291
354
|
));
|
|
292
355
|
j.displayName = "ComparisonAnswer";
|
|
293
|
-
const S =
|
|
294
|
-
({ spec:
|
|
295
|
-
const n =
|
|
296
|
-
() =>
|
|
297
|
-
[
|
|
298
|
-
),
|
|
299
|
-
data:
|
|
300
|
-
categoryKey:
|
|
301
|
-
series:
|
|
302
|
-
seriesLabels:
|
|
303
|
-
highlight:
|
|
304
|
-
annotations:
|
|
356
|
+
const S = u.forwardRef(
|
|
357
|
+
({ spec: t, onFollowUp: r, onSourceSelect: s, className: o, ...l }, m) => {
|
|
358
|
+
const n = u.useMemo(
|
|
359
|
+
() => t.chart.unit ? (h) => `${te.format(h)}${t.chart.unit}` : void 0,
|
|
360
|
+
[t.chart.unit]
|
|
361
|
+
), d = {
|
|
362
|
+
data: t.chart.data,
|
|
363
|
+
categoryKey: t.chart.categoryKey,
|
|
364
|
+
series: t.chart.series,
|
|
365
|
+
seriesLabels: t.chart.seriesLabels,
|
|
366
|
+
highlight: t.chart.highlight,
|
|
367
|
+
annotations: t.chart.annotations,
|
|
305
368
|
formatValue: n,
|
|
306
369
|
height: 224
|
|
307
370
|
};
|
|
308
371
|
return /* @__PURE__ */ i(
|
|
309
372
|
"div",
|
|
310
373
|
{
|
|
311
|
-
ref:
|
|
312
|
-
"data-answer-kind":
|
|
374
|
+
ref: m,
|
|
375
|
+
"data-answer-kind": t.kind,
|
|
313
376
|
className: c("w-full max-w-2xl space-y-5", o),
|
|
314
377
|
...l,
|
|
315
378
|
children: [
|
|
316
379
|
/* @__PURE__ */ i("div", { className: "flex flex-col justify-between gap-4 sm:flex-row sm:items-end", children: [
|
|
317
|
-
/* @__PURE__ */
|
|
318
|
-
|
|
319
|
-
/* @__PURE__ */
|
|
320
|
-
/* @__PURE__ */
|
|
380
|
+
/* @__PURE__ */ a(y, { spec: t }),
|
|
381
|
+
t.metric && /* @__PURE__ */ i("div", { className: "shrink-0 rounded-xl bg-muted px-4 py-3 text-left", children: [
|
|
382
|
+
/* @__PURE__ */ a("p", { className: "text-xs font-medium text-tertiary", children: t.metric.label }),
|
|
383
|
+
/* @__PURE__ */ a(
|
|
321
384
|
"p",
|
|
322
385
|
{
|
|
323
386
|
className: c(
|
|
324
|
-
|
|
387
|
+
v({ tone: t.metric.tone }),
|
|
325
388
|
"mt-1 text-2xl tracking-tight"
|
|
326
389
|
),
|
|
327
|
-
children:
|
|
390
|
+
children: t.metric.value
|
|
328
391
|
}
|
|
329
392
|
),
|
|
330
|
-
|
|
393
|
+
t.metric.change && /* @__PURE__ */ a("p", { className: "mt-0.5 text-xs text-secondary", children: t.metric.change })
|
|
331
394
|
] })
|
|
332
395
|
] }),
|
|
333
|
-
/* @__PURE__ */
|
|
334
|
-
|
|
335
|
-
/* @__PURE__ */
|
|
336
|
-
|
|
396
|
+
/* @__PURE__ */ a("div", { className: "rounded-2xl bg-surface px-3 pb-2 pt-4 sm:px-4", children: t.chart.type === "area" ? /* @__PURE__ */ a(_, { ...d }) : t.chart.type === "bar" ? /* @__PURE__ */ a(M, { ...d }) : /* @__PURE__ */ a(W, { ...d }) }),
|
|
397
|
+
t.insight && /* @__PURE__ */ a(w, { signal: t.insight }),
|
|
398
|
+
/* @__PURE__ */ a(
|
|
399
|
+
N,
|
|
337
400
|
{
|
|
338
|
-
followUps:
|
|
339
|
-
sources:
|
|
401
|
+
followUps: t.followUps,
|
|
402
|
+
sources: t.sources,
|
|
340
403
|
onFollowUp: r,
|
|
341
404
|
onSourceSelect: s
|
|
342
405
|
}
|
|
@@ -347,54 +410,54 @@ const S = h.forwardRef(
|
|
|
347
410
|
}
|
|
348
411
|
);
|
|
349
412
|
S.displayName = "TrendAnswer";
|
|
350
|
-
const C =
|
|
351
|
-
({ spec:
|
|
413
|
+
const C = u.forwardRef(
|
|
414
|
+
({ spec: t, onFollowUp: r, onSourceSelect: s, className: o, ...l }, m) => /* @__PURE__ */ i(
|
|
352
415
|
"div",
|
|
353
416
|
{
|
|
354
|
-
ref:
|
|
355
|
-
"data-answer-kind":
|
|
417
|
+
ref: m,
|
|
418
|
+
"data-answer-kind": t.kind,
|
|
356
419
|
className: c("w-full max-w-2xl space-y-5", o),
|
|
357
420
|
...l,
|
|
358
421
|
children: [
|
|
359
422
|
/* @__PURE__ */ i("div", { className: "flex flex-col justify-between gap-3 sm:flex-row sm:items-start", children: [
|
|
360
|
-
/* @__PURE__ */
|
|
361
|
-
|
|
362
|
-
|
|
423
|
+
/* @__PURE__ */ a(y, { spec: t }),
|
|
424
|
+
t.overall && /* @__PURE__ */ i(
|
|
425
|
+
p,
|
|
363
426
|
{
|
|
364
427
|
variant: "soft",
|
|
365
|
-
color:
|
|
428
|
+
color: t.overall.tone ?? "default",
|
|
366
429
|
className: "self-start",
|
|
367
430
|
children: [
|
|
368
|
-
|
|
431
|
+
t.overall.label,
|
|
369
432
|
" · ",
|
|
370
|
-
|
|
433
|
+
t.overall.value
|
|
371
434
|
]
|
|
372
435
|
}
|
|
373
436
|
)
|
|
374
437
|
] }),
|
|
375
|
-
/* @__PURE__ */
|
|
438
|
+
/* @__PURE__ */ a("ul", { className: "space-y-2", children: t.items.map((n) => /* @__PURE__ */ i(
|
|
376
439
|
"li",
|
|
377
440
|
{
|
|
378
441
|
className: "flex items-start justify-between gap-4 rounded-xl bg-surface px-4 py-3",
|
|
379
442
|
children: [
|
|
380
443
|
/* @__PURE__ */ i("div", { className: "min-w-0", children: [
|
|
381
|
-
/* @__PURE__ */
|
|
382
|
-
n.detail && /* @__PURE__ */
|
|
444
|
+
/* @__PURE__ */ a("p", { className: "text-sm font-medium text-foreground", children: n.label }),
|
|
445
|
+
n.detail && /* @__PURE__ */ a("p", { className: "mt-1 text-xs leading-5 text-secondary", children: n.detail })
|
|
383
446
|
] }),
|
|
384
447
|
/* @__PURE__ */ i("div", { className: "shrink-0 text-right", children: [
|
|
385
|
-
/* @__PURE__ */
|
|
386
|
-
n.meta && /* @__PURE__ */
|
|
448
|
+
/* @__PURE__ */ a(p, { variant: "dot", color: n.tone ?? "default", children: n.status }),
|
|
449
|
+
n.meta && /* @__PURE__ */ a("p", { className: "mt-1 text-xs tabular-nums text-tertiary", children: n.meta })
|
|
387
450
|
] })
|
|
388
451
|
]
|
|
389
452
|
},
|
|
390
453
|
n.label
|
|
391
454
|
)) }),
|
|
392
|
-
|
|
393
|
-
/* @__PURE__ */
|
|
394
|
-
|
|
455
|
+
t.recommendation && /* @__PURE__ */ a(w, { signal: t.recommendation }),
|
|
456
|
+
/* @__PURE__ */ a(
|
|
457
|
+
N,
|
|
395
458
|
{
|
|
396
|
-
followUps:
|
|
397
|
-
sources:
|
|
459
|
+
followUps: t.followUps,
|
|
460
|
+
sources: t.sources,
|
|
398
461
|
onFollowUp: r,
|
|
399
462
|
onSourceSelect: s
|
|
400
463
|
}
|
|
@@ -404,54 +467,54 @@ const C = h.forwardRef(
|
|
|
404
467
|
)
|
|
405
468
|
);
|
|
406
469
|
C.displayName = "StatusAnswer";
|
|
407
|
-
const
|
|
470
|
+
const T = u.forwardRef(({ spec: t, onFollowUp: r, onSourceSelect: s, className: o, ...l }, m) => /* @__PURE__ */ i(
|
|
408
471
|
"div",
|
|
409
472
|
{
|
|
410
|
-
ref:
|
|
411
|
-
"data-answer-kind":
|
|
473
|
+
ref: m,
|
|
474
|
+
"data-answer-kind": t.kind,
|
|
412
475
|
className: c("w-full max-w-2xl space-y-5", o),
|
|
413
476
|
...l,
|
|
414
477
|
children: [
|
|
415
478
|
/* @__PURE__ */ i("div", { className: "flex flex-col justify-between gap-3 sm:flex-row sm:items-end", children: [
|
|
416
|
-
/* @__PURE__ */
|
|
417
|
-
|
|
418
|
-
/* @__PURE__ */
|
|
419
|
-
/* @__PURE__ */
|
|
479
|
+
/* @__PURE__ */ a(y, { spec: t }),
|
|
480
|
+
t.total && /* @__PURE__ */ i("div", { className: "shrink-0 sm:text-right", children: [
|
|
481
|
+
/* @__PURE__ */ a("p", { className: "text-xs font-medium text-tertiary", children: t.total.label }),
|
|
482
|
+
/* @__PURE__ */ a("p", { className: "mt-1 text-2xl font-semibold tabular-nums tracking-tight text-foreground", children: t.total.value })
|
|
420
483
|
] })
|
|
421
484
|
] }),
|
|
422
|
-
/* @__PURE__ */
|
|
485
|
+
/* @__PURE__ */ a("ol", { className: "space-y-2", children: t.items.map((n, d) => /* @__PURE__ */ i("li", { className: "rounded-xl bg-surface px-4 py-3", children: [
|
|
423
486
|
/* @__PURE__ */ i("div", { className: "mb-2 flex items-start justify-between gap-4", children: [
|
|
424
487
|
/* @__PURE__ */ i("div", { className: "flex min-w-0 items-start gap-2.5", children: [
|
|
425
|
-
/* @__PURE__ */
|
|
488
|
+
/* @__PURE__ */ a(p, { variant: "soft", className: "mt-0.5 tabular-nums", children: d + 1 }),
|
|
426
489
|
/* @__PURE__ */ i("div", { className: "min-w-0", children: [
|
|
427
|
-
/* @__PURE__ */
|
|
428
|
-
n.detail && /* @__PURE__ */
|
|
490
|
+
/* @__PURE__ */ a("p", { className: "text-sm font-medium text-foreground", children: n.label }),
|
|
491
|
+
n.detail && /* @__PURE__ */ a("p", { className: "mt-0.5 text-xs text-tertiary", children: n.detail })
|
|
429
492
|
] })
|
|
430
493
|
] }),
|
|
431
494
|
/* @__PURE__ */ i("div", { className: "shrink-0 text-right", children: [
|
|
432
|
-
/* @__PURE__ */
|
|
495
|
+
/* @__PURE__ */ a("p", { className: c(v({ tone: n.tone }), "text-sm"), children: n.value }),
|
|
433
496
|
/* @__PURE__ */ i("p", { className: "mt-0.5 text-xs tabular-nums text-tertiary", children: [
|
|
434
497
|
n.share,
|
|
435
498
|
"%"
|
|
436
499
|
] })
|
|
437
500
|
] })
|
|
438
501
|
] }),
|
|
439
|
-
/* @__PURE__ */
|
|
440
|
-
|
|
502
|
+
/* @__PURE__ */ a(
|
|
503
|
+
I,
|
|
441
504
|
{
|
|
442
505
|
value: n.share,
|
|
443
506
|
size: "sm",
|
|
444
|
-
color:
|
|
507
|
+
color: ne(n.tone),
|
|
445
508
|
label: `${n.label}: ${n.share}%`
|
|
446
509
|
}
|
|
447
510
|
)
|
|
448
511
|
] }, n.label)) }),
|
|
449
|
-
|
|
450
|
-
/* @__PURE__ */
|
|
451
|
-
|
|
512
|
+
t.insight && /* @__PURE__ */ a(w, { signal: t.insight }),
|
|
513
|
+
/* @__PURE__ */ a(
|
|
514
|
+
N,
|
|
452
515
|
{
|
|
453
|
-
followUps:
|
|
454
|
-
sources:
|
|
516
|
+
followUps: t.followUps,
|
|
517
|
+
sources: t.sources,
|
|
455
518
|
onFollowUp: r,
|
|
456
519
|
onSourceSelect: s
|
|
457
520
|
}
|
|
@@ -459,42 +522,42 @@ const R = h.forwardRef(({ spec: a, onFollowUp: r, onSourceSelect: s, className:
|
|
|
459
522
|
]
|
|
460
523
|
}
|
|
461
524
|
));
|
|
462
|
-
|
|
463
|
-
const
|
|
525
|
+
T.displayName = "BreakdownAnswer";
|
|
526
|
+
const R = u.forwardRef(({ spec: t, onFollowUp: r, onSourceSelect: s, className: o, ...l }, m) => /* @__PURE__ */ i(
|
|
464
527
|
"div",
|
|
465
528
|
{
|
|
466
|
-
ref:
|
|
467
|
-
"data-answer-kind":
|
|
529
|
+
ref: m,
|
|
530
|
+
"data-answer-kind": t.kind,
|
|
468
531
|
className: c("w-full max-w-2xl space-y-5", o),
|
|
469
532
|
...l,
|
|
470
533
|
children: [
|
|
471
|
-
/* @__PURE__ */
|
|
472
|
-
/* @__PURE__ */
|
|
473
|
-
var
|
|
534
|
+
/* @__PURE__ */ a(y, { spec: t }),
|
|
535
|
+
/* @__PURE__ */ a("ol", { className: "space-y-2", children: t.sections.map((n, d) => {
|
|
536
|
+
var h;
|
|
474
537
|
return /* @__PURE__ */ i("li", { className: "flex gap-3 rounded-xl bg-surface px-4 py-3.5", children: [
|
|
475
|
-
/* @__PURE__ */
|
|
538
|
+
/* @__PURE__ */ a(p, { variant: "soft", className: "mt-0.5 h-fit tabular-nums", children: d + 1 }),
|
|
476
539
|
/* @__PURE__ */ i("div", { className: "min-w-0", children: [
|
|
477
|
-
/* @__PURE__ */
|
|
478
|
-
n.body && /* @__PURE__ */
|
|
479
|
-
!!((
|
|
480
|
-
/* @__PURE__ */
|
|
540
|
+
/* @__PURE__ */ a("h3", { className: "text-sm font-semibold text-foreground", children: n.title }),
|
|
541
|
+
n.body && /* @__PURE__ */ a("p", { className: "mt-1 text-sm leading-6 text-secondary", children: n.body }),
|
|
542
|
+
!!((h = n.bullets) != null && h.length) && /* @__PURE__ */ a("ul", { className: "mt-2 space-y-1.5", children: n.bullets.map((g) => /* @__PURE__ */ i("li", { className: "flex items-start gap-2 text-xs leading-5 text-secondary", children: [
|
|
543
|
+
/* @__PURE__ */ a(
|
|
481
544
|
"span",
|
|
482
545
|
{
|
|
483
546
|
"aria-hidden": !0,
|
|
484
547
|
className: "mt-2 size-1 shrink-0 rounded-dot bg-muted-foreground"
|
|
485
548
|
}
|
|
486
549
|
),
|
|
487
|
-
/* @__PURE__ */
|
|
488
|
-
] },
|
|
550
|
+
/* @__PURE__ */ a("span", { children: g })
|
|
551
|
+
] }, g)) })
|
|
489
552
|
] })
|
|
490
553
|
] }, n.title);
|
|
491
554
|
}) }),
|
|
492
|
-
|
|
493
|
-
/* @__PURE__ */
|
|
494
|
-
|
|
555
|
+
t.takeaway && /* @__PURE__ */ a(w, { signal: t.takeaway }),
|
|
556
|
+
/* @__PURE__ */ a(
|
|
557
|
+
N,
|
|
495
558
|
{
|
|
496
|
-
followUps:
|
|
497
|
-
sources:
|
|
559
|
+
followUps: t.followUps,
|
|
560
|
+
sources: t.sources,
|
|
498
561
|
onFollowUp: r,
|
|
499
562
|
onSourceSelect: s
|
|
500
563
|
}
|
|
@@ -502,42 +565,42 @@ const T = h.forwardRef(({ spec: a, onFollowUp: r, onSourceSelect: s, className:
|
|
|
502
565
|
]
|
|
503
566
|
}
|
|
504
567
|
));
|
|
505
|
-
|
|
506
|
-
const
|
|
507
|
-
({ spec:
|
|
508
|
-
switch (
|
|
568
|
+
R.displayName = "ExplanationAnswer";
|
|
569
|
+
const ie = u.forwardRef(
|
|
570
|
+
({ spec: t, ...r }, s) => {
|
|
571
|
+
switch (t.kind) {
|
|
509
572
|
case "comparison":
|
|
510
|
-
return /* @__PURE__ */
|
|
573
|
+
return /* @__PURE__ */ a(j, { ref: s, spec: t, ...r });
|
|
511
574
|
case "trend":
|
|
512
|
-
return /* @__PURE__ */
|
|
575
|
+
return /* @__PURE__ */ a(S, { ref: s, spec: t, ...r });
|
|
513
576
|
case "status":
|
|
514
|
-
return /* @__PURE__ */
|
|
577
|
+
return /* @__PURE__ */ a(C, { ref: s, spec: t, ...r });
|
|
515
578
|
case "breakdown":
|
|
516
|
-
return /* @__PURE__ */
|
|
579
|
+
return /* @__PURE__ */ a(T, { ref: s, spec: t, ...r });
|
|
517
580
|
case "explanation":
|
|
518
|
-
return /* @__PURE__ */
|
|
581
|
+
return /* @__PURE__ */ a(R, { ref: s, spec: t, ...r });
|
|
519
582
|
}
|
|
520
583
|
}
|
|
521
584
|
);
|
|
522
|
-
|
|
585
|
+
ie.displayName = "AnswerRenderer";
|
|
523
586
|
export {
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
587
|
+
H as ANSWER_TOOL_DESCRIPTION,
|
|
588
|
+
K as ANSWER_TOOL_NAME,
|
|
589
|
+
F as AnswerFollowUpSchema,
|
|
590
|
+
ie as AnswerRenderer,
|
|
528
591
|
b as AnswerSignalSchema,
|
|
529
|
-
|
|
530
|
-
|
|
592
|
+
q as AnswerSourceSchema,
|
|
593
|
+
ee as AnswerSpecSchema,
|
|
531
594
|
x as AnswerToneSchema,
|
|
532
|
-
|
|
533
|
-
|
|
595
|
+
T as BreakdownAnswer,
|
|
596
|
+
Y as BreakdownAnswerSchema,
|
|
534
597
|
j as ComparisonAnswer,
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
598
|
+
G as ComparisonAnswerSchema,
|
|
599
|
+
R as ExplanationAnswer,
|
|
600
|
+
Z as ExplanationAnswerSchema,
|
|
538
601
|
C as StatusAnswer,
|
|
539
|
-
|
|
602
|
+
X as StatusAnswerSchema,
|
|
540
603
|
S as TrendAnswer,
|
|
541
|
-
|
|
542
|
-
|
|
604
|
+
U as TrendAnswerSchema,
|
|
605
|
+
pe as answerTool
|
|
543
606
|
};
|