@qfei-design/make-ai-assistant 0.1.5 → 0.1.6

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/react.mjs CHANGED
@@ -1,86 +1,86 @@
1
- import { jsxs as n, jsx as t, Fragment as L } from "react/jsx-runtime";
2
- import { resolveArtifactTemplate as ia, createArtifactTemplateRegistry as Pe, createArtifactCapabilities as oa } from "./index.mjs";
3
- import { extendArtifactTemplateRegistry as Ga } from "./index.mjs";
1
+ import { jsxs as o, jsx as t, Fragment as L } from "react/jsx-runtime";
2
+ import { resolveArtifactTemplate as oa, createArtifactTemplateRegistry as Be, createArtifactCapabilities as ca } from "./index.mjs";
3
+ import { extendArtifactTemplateRegistry as Wa } from "./index.mjs";
4
4
  import { useState as E, useRef as S, useMemo as Fe, useEffect as ge } from "react";
5
- import { a as ue, r as pe, c as he, M as A, b as ca, p as la } from "./conversation-B7eGUXi-.js";
6
- import { d as ja, e as Ya, f as Ja, g as Qa, v as Wa } from "./conversation-B7eGUXi-.js";
7
- function da({
5
+ import { a as ue, r as pe, c as he, M as b, b as la, p as da } from "./conversation-B7eGUXi-.js";
6
+ import { d as Qa, e as Xa, f as et, g as at, v as tt } from "./conversation-B7eGUXi-.js";
7
+ function ma({
8
8
  artifact: e,
9
9
  context: a,
10
10
  fallback: s,
11
- onAction: c,
12
- onActionError: o,
13
- registry: d
11
+ onAction: r,
12
+ onActionError: i,
13
+ registry: c
14
14
  }) {
15
- const m = ia(d, e, a);
15
+ const m = oa(c, e, a);
16
16
  if (!m)
17
- return s ? s(e) : /* @__PURE__ */ n("section", { className: "make-ai-artifact make-ai-artifact--unsupported", role: "status", children: [
17
+ return s ? s(e) : /* @__PURE__ */ o("section", { className: "make-ai-artifact make-ai-artifact--unsupported", role: "status", children: [
18
18
  /* @__PURE__ */ t("strong", { children: "暂不支持展示此结果" }),
19
- /* @__PURE__ */ n("span", { children: [
19
+ /* @__PURE__ */ o("span", { children: [
20
20
  "结果类型:",
21
21
  e.kind
22
22
  ] })
23
23
  ] });
24
- const h = {
24
+ const u = {
25
25
  context: a,
26
- onAction: c,
27
- onActionError: o
26
+ onAction: r,
27
+ onActionError: i
28
28
  };
29
- return m.template.render(e, a, h);
29
+ return m.template.render(e, a, u);
30
30
  }
31
- const D = (e, a, s) => {
31
+ const P = (e, a, s) => {
32
32
  if (e == null || e === "") return "—";
33
33
  if (typeof e == "boolean") return e ? "是" : "否";
34
34
  if (typeof e != "number") return `${e}${a?.unit ?? ""}`;
35
- const c = a?.precision, o = {
36
- maximumFractionDigits: c ?? 2,
37
- minimumFractionDigits: c
35
+ const r = a?.precision, i = {
36
+ maximumFractionDigits: r ?? 2,
37
+ minimumFractionDigits: r
38
38
  };
39
- a?.style === "currency" && a.currency ? (o.style = "currency", o.currency = a.currency) : a?.style === "percent" && (o.style = "percent");
39
+ a?.style === "currency" && a.currency ? (i.style = "currency", i.currency = a.currency) : a?.style === "percent" && (i.style = "percent");
40
40
  try {
41
- const d = a?.style === "percent" ? e / 100 : e;
42
- return `${new Intl.NumberFormat(s, o).format(d)}${a?.unit ?? ""}`;
41
+ const c = a?.style === "percent" ? e / 100 : e;
42
+ return `${new Intl.NumberFormat(s, i).format(c)}${a?.unit ?? ""}`;
43
43
  } catch {
44
44
  return `${e}${a?.unit ?? ""}`;
45
45
  }
46
46
  }, Ue = (e) => {
47
47
  let a = Number.POSITIVE_INFINITY, s = Number.NEGATIVE_INFINITY;
48
- for (const c of e)
49
- a = Math.min(a, c), s = Math.max(s, c);
48
+ for (const r of e)
49
+ a = Math.min(a, r), s = Math.max(s, r);
50
50
  return Number.isFinite(a) && Number.isFinite(s) ? { min: a, max: s } : { min: 0, max: 0 };
51
51
  }, qe = (e, a, s) => {
52
52
  if (!s.onAction) return;
53
- const c = (d) => {
53
+ const r = (c) => {
54
54
  console.error("[make-ai-assistant] host action error handler failed", {
55
55
  actionId: e.id,
56
56
  artifactId: a.artifact.id,
57
- errorType: d instanceof Error ? d.name : typeof d,
57
+ errorType: c instanceof Error ? c.name : typeof c,
58
58
  intent: e.intent
59
59
  });
60
- }, o = (d) => {
60
+ }, i = (c) => {
61
61
  if (s.onActionError) {
62
62
  try {
63
63
  Promise.resolve(
64
- s.onActionError(d, e, a)
65
- ).catch(c);
64
+ s.onActionError(c, e, a)
65
+ ).catch(r);
66
66
  } catch (m) {
67
- c(m);
67
+ r(m);
68
68
  }
69
69
  return;
70
70
  }
71
71
  console.error("[make-ai-assistant] host action failed", {
72
72
  actionId: e.id,
73
73
  artifactId: a.artifact.id,
74
- errorType: d instanceof Error ? d.name : typeof d,
74
+ errorType: c instanceof Error ? c.name : typeof c,
75
75
  intent: e.intent
76
76
  });
77
77
  };
78
78
  try {
79
- Promise.resolve(s.onAction(e, a)).catch(o);
80
- } catch (d) {
81
- o(d);
79
+ Promise.resolve(s.onAction(e, a)).catch(i);
80
+ } catch (c) {
81
+ i(c);
82
82
  }
83
- }, J = (e, a) => e.actions?.length && a.onAction ? /* @__PURE__ */ t("div", { className: "make-ai-artifact__actions", children: e.actions.map((s) => /* @__PURE__ */ n(
83
+ }, W = (e, a) => e.actions?.length && a.onAction ? /* @__PURE__ */ t("div", { className: "make-ai-artifact__actions", children: e.actions.map((s) => /* @__PURE__ */ o(
84
84
  "button",
85
85
  {
86
86
  className: `make-ai-artifact__action make-ai-artifact__action--${s.appearance ?? "link"}`,
@@ -92,7 +92,7 @@ const D = (e, a, s) => {
92
92
  ]
93
93
  },
94
94
  s.id
95
- )) }) : null, Q = (e, a, s = "") => /* @__PURE__ */ n(
95
+ )) }) : null, J = (e, a, s = "") => /* @__PURE__ */ o(
96
96
  "section",
97
97
  {
98
98
  "aria-label": e.title ?? `${e.kind} result`,
@@ -105,137 +105,137 @@ const D = (e, a, s) => {
105
105
  a
106
106
  ]
107
107
  }
108
- ), ma = ({
108
+ ), ua = ({
109
109
  artifact: e,
110
110
  renderContext: a
111
111
  }) => {
112
- const s = e.data.delta, c = s ? D(
112
+ const s = e.data.delta, r = s ? P(
113
113
  s.value,
114
114
  s.format === "percent" ? { style: "percent" } : void 0,
115
115
  a.context.locale
116
116
  ) : void 0;
117
- return Q(
117
+ return J(
118
118
  e,
119
- /* @__PURE__ */ n(L, { children: [
120
- /* @__PURE__ */ t("div", { className: "make-ai-artifact__metric-value", children: D(
119
+ /* @__PURE__ */ o(L, { children: [
120
+ /* @__PURE__ */ t("div", { className: "make-ai-artifact__metric-value", children: P(
121
121
  e.data.value,
122
122
  e.data.format,
123
123
  a.context.locale
124
124
  ) }),
125
- s ? /* @__PURE__ */ n(
125
+ s ? /* @__PURE__ */ o(
126
126
  "div",
127
127
  {
128
128
  className: `make-ai-artifact__delta make-ai-artifact__delta--${s.direction ?? "flat"}`,
129
129
  children: [
130
130
  /* @__PURE__ */ t("span", { "aria-hidden": "true", children: s.direction === "up" ? "↗" : s.direction === "down" ? "↘" : "→" }),
131
- /* @__PURE__ */ t("span", { children: c }),
131
+ /* @__PURE__ */ t("span", { children: r }),
132
132
  s.label ? /* @__PURE__ */ t("span", { children: s.label }) : null
133
133
  ]
134
134
  }
135
135
  ) : null,
136
136
  e.data.context ? /* @__PURE__ */ t("p", { className: "make-ai-artifact__context", children: e.data.context }) : null,
137
- J(e, a)
137
+ W(e, a)
138
138
  ] }),
139
139
  "make-ai-artifact--metric"
140
140
  );
141
- }, ua = ({
141
+ }, pa = ({
142
142
  artifact: e,
143
143
  renderContext: a
144
- }) => Q(
144
+ }) => J(
145
145
  e,
146
- /* @__PURE__ */ n(L, { children: [
147
- /* @__PURE__ */ t("div", { className: "make-ai-artifact__comparison", children: e.data.items.map((s) => /* @__PURE__ */ n("div", { className: "make-ai-artifact__comparison-item", children: [
146
+ /* @__PURE__ */ o(L, { children: [
147
+ /* @__PURE__ */ t("div", { className: "make-ai-artifact__comparison", children: e.data.items.map((s) => /* @__PURE__ */ o("div", { className: "make-ai-artifact__comparison-item", children: [
148
148
  /* @__PURE__ */ t("span", { children: s.label }),
149
- /* @__PURE__ */ t("strong", { children: D(s.value, s.format, a.context.locale) }),
149
+ /* @__PURE__ */ t("strong", { children: P(s.value, s.format, a.context.locale) }),
150
150
  s.hint ? /* @__PURE__ */ t("small", { children: s.hint }) : null
151
151
  ] }, s.id)) }),
152
- J(e, a)
152
+ W(e, a)
153
153
  ] }),
154
154
  "make-ai-artifact--comparison"
155
- ), pa = ({
155
+ ), ha = ({
156
156
  artifact: e,
157
157
  renderContext: a
158
158
  }) => {
159
- const s = e.data.series.flatMap((m) => m.points.map((h) => h.y)), { max: c, min: o } = Ue(s), d = c - o || 1;
160
- return Q(
159
+ const s = e.data.series.flatMap((m) => m.points.map((u) => u.y)), { max: r, min: i } = Ue(s), c = r - i || 1;
160
+ return J(
161
161
  e,
162
- /* @__PURE__ */ n(L, { children: [
163
- /* @__PURE__ */ t("div", { className: "make-ai-artifact__trend", children: e.data.series.map((m) => /* @__PURE__ */ n("div", { className: "make-ai-artifact__trend-series", children: [
162
+ /* @__PURE__ */ o(L, { children: [
163
+ /* @__PURE__ */ t("div", { className: "make-ai-artifact__trend", children: e.data.series.map((m) => /* @__PURE__ */ o("div", { className: "make-ai-artifact__trend-series", children: [
164
164
  /* @__PURE__ */ t("div", { className: "make-ai-artifact__trend-label", children: m.label }),
165
- /* @__PURE__ */ t("div", { className: "make-ai-artifact__trend-bars", children: m.points.map((h, $) => {
166
- const y = 18 + (h.y - o) / d * 70;
167
- return /* @__PURE__ */ n("div", { className: "make-ai-artifact__trend-point", children: [
165
+ /* @__PURE__ */ t("div", { className: "make-ai-artifact__trend-bars", children: m.points.map((u, g) => {
166
+ const y = 18 + (u.y - i) / c * 70;
167
+ return /* @__PURE__ */ o("div", { className: "make-ai-artifact__trend-point", children: [
168
168
  /* @__PURE__ */ t(
169
169
  "span",
170
170
  {
171
- "aria-label": `${h.x}: ${D(
172
- h.y,
171
+ "aria-label": `${u.x}: ${P(
172
+ u.y,
173
173
  m.format,
174
174
  a.context.locale
175
175
  )}`,
176
176
  className: "make-ai-artifact__trend-bar",
177
177
  role: "img",
178
178
  style: { height: `${y}%` },
179
- title: `${h.x}: ${D(
180
- h.y,
179
+ title: `${u.x}: ${P(
180
+ u.y,
181
181
  m.format,
182
182
  a.context.locale
183
183
  )}`
184
184
  }
185
185
  ),
186
- /* @__PURE__ */ t("small", { children: h.x })
187
- ] }, `${h.x}-${$}`);
186
+ /* @__PURE__ */ t("small", { children: u.x })
187
+ ] }, `${u.x}-${g}`);
188
188
  }) })
189
189
  ] }, m.id)) }),
190
- J(e, a)
190
+ W(e, a)
191
191
  ] }),
192
192
  "make-ai-artifact--trend"
193
193
  );
194
- }, ha = ({
194
+ }, ga = ({
195
195
  artifact: e,
196
196
  renderContext: a
197
197
  }) => {
198
198
  const { max: s } = Ue(
199
- e.data.items.map((o) => Math.abs(o.value))
200
- ), c = Math.max(s, 1);
201
- return Q(
199
+ e.data.items.map((i) => Math.abs(i.value))
200
+ ), r = Math.max(s, 1);
201
+ return J(
202
202
  e,
203
- /* @__PURE__ */ n(L, { children: [
204
- /* @__PURE__ */ t("ol", { className: "make-ai-artifact__ranking", children: e.data.items.map((o, d) => /* @__PURE__ */ n("li", { children: [
205
- /* @__PURE__ */ t("span", { className: "make-ai-artifact__rank", children: d + 1 }),
206
- /* @__PURE__ */ n("span", { className: "make-ai-artifact__ranking-label", children: [
207
- /* @__PURE__ */ t("span", { children: o.label }),
208
- o.description ? /* @__PURE__ */ t("small", { children: o.description }) : null
203
+ /* @__PURE__ */ o(L, { children: [
204
+ /* @__PURE__ */ t("ol", { className: "make-ai-artifact__ranking", children: e.data.items.map((i, c) => /* @__PURE__ */ o("li", { children: [
205
+ /* @__PURE__ */ t("span", { className: "make-ai-artifact__rank", children: c + 1 }),
206
+ /* @__PURE__ */ o("span", { className: "make-ai-artifact__ranking-label", children: [
207
+ /* @__PURE__ */ t("span", { children: i.label }),
208
+ i.description ? /* @__PURE__ */ t("small", { children: i.description }) : null
209
209
  ] }),
210
- /* @__PURE__ */ t("span", { className: "make-ai-artifact__ranking-track", "aria-hidden": "true", children: /* @__PURE__ */ t("span", { style: { width: `${Math.abs(o.value) / c * 100}%` } }) }),
211
- /* @__PURE__ */ t("strong", { children: D(o.value, o.format, a.context.locale) })
212
- ] }, o.id)) }),
213
- J(e, a)
210
+ /* @__PURE__ */ t("span", { className: "make-ai-artifact__ranking-track", "aria-hidden": "true", children: /* @__PURE__ */ t("span", { style: { width: `${Math.abs(i.value) / r * 100}%` } }) }),
211
+ /* @__PURE__ */ t("strong", { children: P(i.value, i.format, a.context.locale) })
212
+ ] }, i.id)) }),
213
+ W(e, a)
214
214
  ] }),
215
215
  "make-ai-artifact--ranking"
216
216
  );
217
- }, ga = (e, a) => a.action ?? {
217
+ }, fa = (e, a) => a.action ?? {
218
218
  id: `open-${a.id}`,
219
219
  label: a.title ?? a.id,
220
220
  intent: "open-record",
221
221
  target: { entityKey: e.data.entity.key, recordId: a.id }
222
- }, fa = ({
222
+ }, _a = ({
223
223
  artifact: e,
224
224
  renderContext: a
225
- }) => Q(
225
+ }) => J(
226
226
  e,
227
- /* @__PURE__ */ n(L, { children: [
227
+ /* @__PURE__ */ o(L, { children: [
228
228
  /* @__PURE__ */ t("div", { className: "make-ai-artifact__record-list", children: e.data.records.length === 0 ? /* @__PURE__ */ t("p", { className: "make-ai-artifact__empty", children: "没有符合条件的记录" }) : e.data.records.map((s) => {
229
- const c = ga(e, s), o = /* @__PURE__ */ n(L, { children: [
229
+ const r = fa(e, s), i = /* @__PURE__ */ o(L, { children: [
230
230
  /* @__PURE__ */ t("strong", { children: s.title ?? s.id }),
231
- /* @__PURE__ */ t("span", { className: "make-ai-artifact__record-values", children: e.data.columns.map((d) => /* @__PURE__ */ n("span", { children: [
232
- /* @__PURE__ */ t("small", { children: d.label }),
233
- D(
234
- s.values[d.key],
235
- d.format,
231
+ /* @__PURE__ */ t("span", { className: "make-ai-artifact__record-values", children: e.data.columns.map((c) => /* @__PURE__ */ o("span", { children: [
232
+ /* @__PURE__ */ t("small", { children: c.label }),
233
+ P(
234
+ s.values[c.key],
235
+ c.format,
236
236
  a.context.locale
237
237
  )
238
- ] }, d.key)) }),
238
+ ] }, c.key)) }),
239
239
  a.onAction ? /* @__PURE__ */ t("span", { "aria-hidden": "true", children: "›" }) : null
240
240
  ] });
241
241
  return a.onAction ? /* @__PURE__ */ t(
@@ -243,49 +243,49 @@ const D = (e, a, s) => {
243
243
  {
244
244
  className: "make-ai-artifact__record",
245
245
  type: "button",
246
- onClick: () => qe(c, {
246
+ onClick: () => qe(r, {
247
247
  artifact: e,
248
248
  context: a.context
249
249
  }, a),
250
- children: o
250
+ children: i
251
251
  },
252
252
  s.id
253
- ) : /* @__PURE__ */ t("div", { className: "make-ai-artifact__record", children: o }, s.id);
253
+ ) : /* @__PURE__ */ t("div", { className: "make-ai-artifact__record", children: i }, s.id);
254
254
  }) }),
255
- e.data.total !== void 0 ? /* @__PURE__ */ n("p", { className: "make-ai-artifact__record-total", children: [
255
+ e.data.total !== void 0 ? /* @__PURE__ */ o("p", { className: "make-ai-artifact__record-total", children: [
256
256
  "共 ",
257
257
  e.data.total,
258
258
  " 条"
259
259
  ] }) : null,
260
- J(e, a)
260
+ W(e, a)
261
261
  ] }),
262
262
  "make-ai-artifact--record-list"
263
- ), _a = ({
263
+ ), va = ({
264
264
  artifact: e,
265
265
  renderContext: a
266
- }) => Q(
266
+ }) => J(
267
267
  e,
268
- /* @__PURE__ */ n(L, { children: [
269
- /* @__PURE__ */ n("div", { className: `make-ai-artifact__notice make-ai-artifact__notice--${e.data.tone}`, children: [
268
+ /* @__PURE__ */ o(L, { children: [
269
+ /* @__PURE__ */ o("div", { className: `make-ai-artifact__notice make-ai-artifact__notice--${e.data.tone}`, children: [
270
270
  /* @__PURE__ */ t("span", { "aria-hidden": "true", children: e.data.tone === "success" ? "✓" : e.data.tone === "warning" ? "!" : e.data.tone === "danger" ? "×" : "i" }),
271
271
  /* @__PURE__ */ t("p", { children: e.data.body })
272
272
  ] }),
273
- J(e, a)
273
+ W(e, a)
274
274
  ] }),
275
275
  "make-ai-artifact--notice"
276
- ), Y = (e, a, s) => ({ id: e, kinds: [a], priority: 0, render: s }), va = [
277
- Y("platform.metric.default", "metric", (e, a, s) => /* @__PURE__ */ t(ma, { artifact: e, renderContext: s })),
278
- Y("platform.comparison.default", "comparison", (e, a, s) => /* @__PURE__ */ t(ua, { artifact: e, renderContext: s })),
279
- Y("platform.trend.default", "trend", (e, a, s) => /* @__PURE__ */ t(pa, { artifact: e, renderContext: s })),
280
- Y("platform.ranking.default", "ranking", (e, a, s) => /* @__PURE__ */ t(ha, { artifact: e, renderContext: s })),
281
- Y("platform.record-list.default", "record-list", (e, a, s) => /* @__PURE__ */ t(fa, { artifact: e, renderContext: s })),
282
- Y("platform.notice.default", "notice", (e, a, s) => /* @__PURE__ */ t(_a, { artifact: e, renderContext: s }))
283
- ], ka = Pe(va).templates, ya = (e = ka) => Pe(e), Aa = (e) => `${e}-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`, ba = "Make", Ia = [
276
+ ), Y = (e, a, s) => ({ id: e, kinds: [a], priority: 0, render: s }), ya = [
277
+ Y("platform.metric.default", "metric", (e, a, s) => /* @__PURE__ */ t(ua, { artifact: e, renderContext: s })),
278
+ Y("platform.comparison.default", "comparison", (e, a, s) => /* @__PURE__ */ t(pa, { artifact: e, renderContext: s })),
279
+ Y("platform.trend.default", "trend", (e, a, s) => /* @__PURE__ */ t(ha, { artifact: e, renderContext: s })),
280
+ Y("platform.ranking.default", "ranking", (e, a, s) => /* @__PURE__ */ t(ga, { artifact: e, renderContext: s })),
281
+ Y("platform.record-list.default", "record-list", (e, a, s) => /* @__PURE__ */ t(_a, { artifact: e, renderContext: s })),
282
+ Y("platform.notice.default", "notice", (e, a, s) => /* @__PURE__ */ t(va, { artifact: e, renderContext: s }))
283
+ ], ka = Be(ya).templates, Aa = (e = ka) => Be(e), ba = (e) => `${e}-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`, Ia = "Make", Na = [
284
284
  "总结当前页面数据",
285
285
  "找出需要关注的记录",
286
286
  "列出我有权限查看的数据对象"
287
- ], Ke = (e, a) => a ?? `${e?.trim() || ba} AI 助手`, Na = (e) => e ?? Ia;
288
- class u extends Error {
287
+ ], He = (e, a) => a ?? `${e?.trim() || Ia} AI 助手`, wa = (e) => e ?? Na;
288
+ class p extends Error {
289
289
  }
290
290
  const Le = (e) => {
291
291
  try {
@@ -301,7 +301,7 @@ const Le = (e) => {
301
301
  errorType: a instanceof Error ? a.name : typeof a
302
302
  });
303
303
  }
304
- }, wa = async (e) => {
304
+ }, Ta = async (e) => {
305
305
  if (globalThis.navigator?.clipboard?.writeText) {
306
306
  await globalThis.navigator.clipboard.writeText(e);
307
307
  return;
@@ -313,47 +313,93 @@ const Le = (e) => {
313
313
  const s = document.execCommand("copy");
314
314
  if (a.remove(), !s)
315
315
  throw new Error("Clipboard copy failed");
316
- }, Be = () => /* @__PURE__ */ n("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", children: [
316
+ }, Ke = () => /* @__PURE__ */ o("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", children: [
317
317
  /* @__PURE__ */ t("path", { d: "M12 2.8c.5 4.4 2.8 6.8 7.2 7.2-4.4.5-6.8 2.8-7.2 7.2-.5-4.4-2.8-6.8-7.2-7.2 4.4-.5 6.8-2.8 7.2-7.2Z" }),
318
318
  /* @__PURE__ */ t("path", { d: "M18.3 16.1c.2 1.8 1.2 2.8 3 3-1.8.2-2.8 1.2-3 3-.2-1.8-1.2-2.8-3-3 1.8-.2 2.8-1.2 3-3Z" })
319
- ] }), Ta = () => /* @__PURE__ */ t("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", children: /* @__PURE__ */ t("path", { d: "m6 6 12 12M18 6 6 18" }) }), Ma = () => /* @__PURE__ */ t("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", children: /* @__PURE__ */ t("path", { d: "M12 5v14M5 12h14" }) }), Ca = () => /* @__PURE__ */ n("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", children: [
319
+ ] }), Ma = () => /* @__PURE__ */ t("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", children: /* @__PURE__ */ t("path", { d: "m6 6 12 12M18 6 6 18" }) }), Ca = () => /* @__PURE__ */ o("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", children: [
320
+ /* @__PURE__ */ t("path", { d: "M8 8h10v12H8z" }),
321
+ /* @__PURE__ */ t("path", { d: "M6 16H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" })
322
+ ] }), $a = () => /* @__PURE__ */ t("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", children: /* @__PURE__ */ t("path", { d: "M12 5v14M5 12h14" }) }), Ea = () => /* @__PURE__ */ o("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", children: [
320
323
  /* @__PURE__ */ t("path", { d: "m4 4 17 8-17 8 3-8-3-8Z" }),
321
324
  /* @__PURE__ */ t("path", { d: "M7 12h14" })
322
- ] }), ae = ({ className: e = "" }) => /* @__PURE__ */ t("span", { className: `make-ai-assistant__avatar ${e}`.trim(), "aria-hidden": "true", children: /* @__PURE__ */ t(Be, {}) }), Ea = ({ src: e }) => e ? /* @__PURE__ */ t("span", { className: "make-ai-assistant__user-avatar", "aria-hidden": "true", children: /* @__PURE__ */ t("img", { alt: "", src: e }) }) : null, Ve = ({ assistantName: e }) => /* @__PURE__ */ n("div", { className: "make-ai-assistant__message-identity", children: [
325
+ ] }), ae = ({ className: e = "" }) => /* @__PURE__ */ t("span", { className: `make-ai-assistant__avatar ${e}`.trim(), "aria-hidden": "true", children: /* @__PURE__ */ t(Ke, {}) }), Sa = ({ src: e }) => e ? /* @__PURE__ */ t("span", { className: "make-ai-assistant__user-avatar", "aria-hidden": "true", children: /* @__PURE__ */ t("img", { alt: "", src: e }) }) : null, Ra = (e) => {
326
+ const a = [], s = [], r = [], i = [], c = () => {
327
+ const g = s.join(`
328
+ `).trim();
329
+ s.length = 0, g && a.push({ type: "paragraph", text: g });
330
+ }, m = () => {
331
+ r.length && a.push({ type: "list", items: r.splice(0) });
332
+ }, u = () => {
333
+ const g = i.join(`
334
+ `).trim();
335
+ i.length = 0, g && a.push({ type: "pre", text: g });
336
+ };
337
+ for (const g of e.replace(/\r\n?/g, `
338
+ `).split(`
339
+ `)) {
340
+ const y = g.trim();
341
+ if (!y) {
342
+ c(), m(), u();
343
+ continue;
344
+ }
345
+ if (/^\s*\|.+\|\s*$/.test(g)) {
346
+ c(), m(), i.push(g.trim());
347
+ continue;
348
+ }
349
+ const _ = /^\s*[-*]\s+(.+)$/.exec(g);
350
+ if (_) {
351
+ c(), u(), r.push(_[1]?.trim() ?? "");
352
+ continue;
353
+ }
354
+ m(), u(), s.push(y);
355
+ }
356
+ return c(), m(), u(), a;
357
+ }, Pe = (e) => {
358
+ const a = [], s = /(\*\*[^*]+\*\*|`[^`]+`)/g;
359
+ let r = 0;
360
+ for (const i of e.matchAll(s)) {
361
+ const c = i[0], m = i.index ?? 0;
362
+ m > r && a.push(e.slice(r, m)), c.startsWith("**") ? a.push(/* @__PURE__ */ t("strong", { children: c.slice(2, -2) }, `${m}-strong`)) : a.push(/* @__PURE__ */ t("code", { children: c.slice(1, -1) }, `${m}-code`)), r = m + c.length;
363
+ }
364
+ return r < e.length && a.push(e.slice(r)), a;
365
+ }, xa = ({ content: e }) => {
366
+ const a = Ra(e);
367
+ return a.length ? /* @__PURE__ */ t("div", { className: "make-ai-assistant__bubble make-ai-assistant__assistant-text", children: a.map((s, r) => s.type === "paragraph" ? /* @__PURE__ */ t("p", { children: Pe(s.text) }, `${r}-paragraph`) : s.type === "pre" ? /* @__PURE__ */ t("pre", { children: /* @__PURE__ */ t("code", { children: s.text }) }, `${r}-pre`) : /* @__PURE__ */ t("ul", { children: s.items.map((i, c) => /* @__PURE__ */ t("li", { children: Pe(i) }, `${c}-${i}`)) }, `${r}-list`)) }) : null;
368
+ }, Ve = ({ assistantName: e }) => /* @__PURE__ */ o("div", { className: "make-ai-assistant__message-identity", children: [
323
369
  /* @__PURE__ */ t(ae, { className: "make-ai-assistant__avatar--message" }),
324
370
  /* @__PURE__ */ t("span", { className: "make-ai-assistant__message-sender", children: e })
325
- ] }), He = (e) => {
371
+ ] }), ze = (e) => {
326
372
  for (let a = e.messages.length - 1; a >= 0; a -= 1) {
327
373
  const s = e.messages[a];
328
374
  if (s.role === "assistant" && s.status === "streaming")
329
375
  return s.id;
330
376
  }
331
- }, Sa = (e) => {
377
+ }, Fa = (e) => {
332
378
  for (let a = e.messages.length - 1; a >= 0; a -= 1)
333
379
  if (e.messages[a].role === "user") return a;
334
380
  return -1;
335
381
  }, Oe = (e) => {
336
- const a = Sa(e);
382
+ const a = Fa(e);
337
383
  if (!(a < 0))
338
384
  for (let s = e.messages.length - 1; s > a; s -= 1) {
339
- const c = e.messages[s];
340
- if (c.role === "assistant") return c.id;
385
+ const r = e.messages[s];
386
+ if (r.role === "assistant") return r.id;
341
387
  }
342
- }, $a = (e) => {
388
+ }, La = (e) => {
343
389
  if (e.status === "idle")
344
390
  for (let a = e.messages.length - 1; a >= 0; a -= 1) {
345
391
  const s = e.messages[a];
346
392
  if (s.role === "assistant" && s.status === "complete")
347
393
  return s.id;
348
394
  }
349
- }, Ra = (e) => {
395
+ }, Pa = (e) => {
350
396
  for (let a = e.messages.length - 1; a >= 0; a -= 1) {
351
397
  const s = e.messages[a];
352
398
  if (s.role === "user") return s;
353
399
  }
354
- }, xa = (e, a) => {
400
+ }, Da = (e, a) => {
355
401
  const s = e.messages.findIndex(
356
- (c) => c.id === a && c.role === "user"
402
+ (r) => r.id === a && r.role === "user"
357
403
  );
358
404
  return {
359
405
  ...e,
@@ -362,10 +408,10 @@ const Le = (e) => {
362
408
  status: "streaming",
363
409
  messages: s < 0 ? e.messages : e.messages.slice(0, s + 1)
364
410
  };
365
- }, Fa = (e) => e.scrollHeight - e.scrollTop - e.clientHeight <= 48, La = (e = "smooth") => globalThis.matchMedia?.("(prefers-reduced-motion: reduce)").matches ? "auto" : e, ze = ({
411
+ }, Ba = (e) => e.scrollHeight - e.scrollTop - e.clientHeight <= 48, Ua = (e = "smooth") => globalThis.matchMedia?.("(prefers-reduced-motion: reduce)").matches ? "auto" : e, je = ({
366
412
  error: e,
367
413
  onRetry: a
368
- }) => /* @__PURE__ */ n("div", { className: "make-ai-assistant__message-status make-ai-assistant__message-status--error", role: "alert", children: [
414
+ }) => /* @__PURE__ */ o("div", { className: "make-ai-assistant__message-status make-ai-assistant__message-status--error", role: "alert", children: [
369
415
  /* @__PURE__ */ t("strong", { children: "本次请求未完成" }),
370
416
  /* @__PURE__ */ t("span", { children: e.message }),
371
417
  e.retryable && a ? /* @__PURE__ */ t(
@@ -383,36 +429,53 @@ const Le = (e) => {
383
429
  }) => {
384
430
  if (!a?.length) return null;
385
431
  const s = a[a.length - 1] ?? "处理中";
386
- return /* @__PURE__ */ n("details", { className: "make-ai-assistant__process", open: e, children: [
387
- /* @__PURE__ */ n("summary", { children: [
388
- e ? /* @__PURE__ */ n("span", { className: "make-ai-assistant__progress", role: "status", children: [
432
+ return /* @__PURE__ */ o("details", { className: "make-ai-assistant__process", open: e, children: [
433
+ /* @__PURE__ */ o("summary", { children: [
434
+ e ? /* @__PURE__ */ o("span", { className: "make-ai-assistant__progress", role: "status", children: [
389
435
  /* @__PURE__ */ t("span", { "aria-hidden": "true" }),
390
436
  /* @__PURE__ */ t("span", { children: s })
391
437
  ] }) : /* @__PURE__ */ t("span", { className: "make-ai-assistant__process-title", children: "处理过程" }),
392
- /* @__PURE__ */ n("span", { className: "make-ai-assistant__process-count", children: [
438
+ /* @__PURE__ */ o("span", { className: "make-ai-assistant__process-count", children: [
393
439
  a.length,
394
440
  " 步"
395
441
  ] })
396
442
  ] }),
397
- /* @__PURE__ */ t("ol", { children: a.map((c, o) => /* @__PURE__ */ n(
443
+ /* @__PURE__ */ t("ol", { children: a.map((r, i) => /* @__PURE__ */ o(
398
444
  "li",
399
445
  {
400
- "data-step-active": e && o === a.length - 1 ? !0 : void 0,
446
+ "data-step-active": e && i === a.length - 1 ? !0 : void 0,
401
447
  children: [
402
448
  /* @__PURE__ */ t("span", { "aria-hidden": "true" }),
403
- /* @__PURE__ */ t("span", { children: c })
449
+ /* @__PURE__ */ t("span", { children: r })
404
450
  ]
405
451
  },
406
- `${o}-${c}`
452
+ `${i}-${r}`
407
453
  )) })
408
454
  ] });
409
- }, Da = ({
455
+ }, qa = ({
410
456
  copyFeedback: e,
411
457
  onCopy: a,
412
458
  onRegenerate: s
413
- }) => !a && !s ? null : /* @__PURE__ */ n("div", { className: "make-ai-assistant__reply-actions", "aria-label": "回复操作", children: [
414
- a ? /* @__PURE__ */ t("button", { type: "button", onClick: a, children: "复制回答" }) : null,
415
- s ? /* @__PURE__ */ t("button", { type: "button", onClick: s, children: "重新生成" }) : null,
459
+ }) => !a && !s ? null : /* @__PURE__ */ o("div", { className: "make-ai-assistant__reply-actions", "aria-label": "回复操作", children: [
460
+ a ? /* @__PURE__ */ t(
461
+ "button",
462
+ {
463
+ "aria-label": "复制回答",
464
+ className: "make-ai-assistant__reply-action make-ai-assistant__reply-copy",
465
+ type: "button",
466
+ onClick: a,
467
+ children: /* @__PURE__ */ t(Ca, {})
468
+ }
469
+ ) : null,
470
+ s ? /* @__PURE__ */ t(
471
+ "button",
472
+ {
473
+ className: "make-ai-assistant__reply-action make-ai-assistant__reply-regenerate",
474
+ type: "button",
475
+ onClick: s,
476
+ children: "重新生成"
477
+ }
478
+ ) : null,
416
479
  e ? /* @__PURE__ */ t(
417
480
  "span",
418
481
  {
@@ -426,388 +489,388 @@ const Le = (e) => {
426
489
  assistantName: e,
427
490
  error: a,
428
491
  onRetry: s,
429
- progress: c
492
+ progress: r
430
493
  }) => {
431
- const o = a ? "error" : "progress";
432
- return a?.message ?? c?.message ? /* @__PURE__ */ t(
494
+ const i = a ? "error" : "progress";
495
+ return a?.message ?? r?.message ? /* @__PURE__ */ t(
433
496
  "article",
434
497
  {
435
- "aria-label": `${e}的${o === "error" ? "错误消息" : "状态消息"}`,
436
- className: `make-ai-assistant__message make-ai-assistant__message--assistant make-ai-assistant__message--${o}`,
498
+ "aria-label": `${e}的${i === "error" ? "错误消息" : "状态消息"}`,
499
+ className: `make-ai-assistant__message make-ai-assistant__message--assistant make-ai-assistant__message--${i}`,
437
500
  "data-message-role": "assistant",
438
- "data-message-state": o,
439
- children: /* @__PURE__ */ n("div", { className: "make-ai-assistant__message-turn", children: [
501
+ "data-message-state": i,
502
+ children: /* @__PURE__ */ o("div", { className: "make-ai-assistant__message-turn", children: [
440
503
  /* @__PURE__ */ t(Ve, { assistantName: e }),
441
- /* @__PURE__ */ t("div", { className: "make-ai-assistant__message-stack", children: a ? /* @__PURE__ */ t(ze, { error: a, onRetry: s }) : /* @__PURE__ */ t(Ge, { active: !0, steps: c?.steps }) })
504
+ /* @__PURE__ */ t("div", { className: "make-ai-assistant__message-stack", children: a ? /* @__PURE__ */ t(je, { error: a, onRetry: s }) : /* @__PURE__ */ t(Ge, { active: !0, steps: r?.steps }) })
442
505
  ] })
443
506
  }
444
507
  ) : null;
445
- }, Pa = (e, a, s, c, o, d, m, h, $, y, k, f, P) => {
446
- const N = Oe(e), U = He(e), R = $a(e);
508
+ }, Ha = (e, a, s, r, i, c, m, u, g, y, _, v, D) => {
509
+ const w = Oe(e), B = ze(e), R = La(e);
447
510
  let x;
448
- return e.messages.map((i) => {
449
- const _ = i.role === "assistant", q = x;
450
- _ || (x = i);
451
- const K = i.id === U, w = i.id === N ? e.error : void 0, B = i.error ?? w, T = _ ? d : h, fe = _ && i.status === "complete" && !B && (i.content.trim() || i.id === R);
511
+ return e.messages.map((l) => {
512
+ const k = l.role === "assistant", U = x;
513
+ k || (x = l);
514
+ const q = l.id === B, T = l.id === w ? e.error : void 0, H = l.error ?? T, M = k ? c : u, fe = k && l.status === "complete" && !H && (l.content.trim() || l.id === R);
452
515
  return /* @__PURE__ */ t(
453
516
  "article",
454
517
  {
455
- "aria-label": `${T}的消息`,
456
- className: `make-ai-assistant__message make-ai-assistant__message--${i.role}`,
457
- "data-message-role": i.role,
458
- "data-message-state": B ? "error" : void 0,
459
- "data-message-status": i.status,
460
- children: /* @__PURE__ */ n("div", { className: "make-ai-assistant__message-turn", children: [
461
- _ ? /* @__PURE__ */ t(Ve, { assistantName: d }) : /* @__PURE__ */ n("div", { className: "make-ai-assistant__message-identity", children: [
462
- /* @__PURE__ */ t("span", { className: "make-ai-assistant__message-sender", children: T }),
463
- /* @__PURE__ */ t(Ea, { src: $ })
518
+ "aria-label": `${M}的消息`,
519
+ className: `make-ai-assistant__message make-ai-assistant__message--${l.role}`,
520
+ "data-message-role": l.role,
521
+ "data-message-state": H ? "error" : void 0,
522
+ "data-message-status": l.status,
523
+ children: /* @__PURE__ */ o("div", { className: "make-ai-assistant__message-turn", children: [
524
+ k ? /* @__PURE__ */ t(Ve, { assistantName: c }) : /* @__PURE__ */ o("div", { className: "make-ai-assistant__message-identity", children: [
525
+ /* @__PURE__ */ t("span", { className: "make-ai-assistant__message-sender", children: M }),
526
+ /* @__PURE__ */ t(Sa, { src: g })
464
527
  ] }),
465
- /* @__PURE__ */ n("div", { className: "make-ai-assistant__message-stack", children: [
466
- i.content ? /* @__PURE__ */ t("div", { className: "make-ai-assistant__bubble", children: i.content }) : i.status === "streaming" ? /* @__PURE__ */ n("div", { className: "make-ai-assistant__typing", "aria-label": `${d}正在思考`, children: [
528
+ /* @__PURE__ */ o("div", { className: "make-ai-assistant__message-stack", children: [
529
+ l.content ? k ? /* @__PURE__ */ t(xa, { content: l.content }) : /* @__PURE__ */ t("div", { className: "make-ai-assistant__bubble", children: l.content }) : l.status === "streaming" ? /* @__PURE__ */ o("div", { className: "make-ai-assistant__typing", "aria-label": `${c}正在思考`, children: [
467
530
  /* @__PURE__ */ t("span", {}),
468
531
  /* @__PURE__ */ t("span", {}),
469
532
  /* @__PURE__ */ t("span", {})
470
533
  ] }) : null,
471
- _ ? /* @__PURE__ */ t(
534
+ k ? /* @__PURE__ */ t(
472
535
  Ge,
473
536
  {
474
- active: K && e.status === "streaming",
475
- steps: i.progressSteps
537
+ active: q && e.status === "streaming",
538
+ steps: l.progressSteps
476
539
  }
477
540
  ) : null,
478
- B ? /* @__PURE__ */ t(
479
- ze,
541
+ H ? /* @__PURE__ */ t(
542
+ je,
480
543
  {
481
- error: B,
482
- onRetry: w ? m : void 0
544
+ error: H,
545
+ onRetry: T ? m : void 0
483
546
  }
484
547
  ) : null,
485
- i.artifacts.map((te) => /* @__PURE__ */ t(
486
- da,
548
+ l.artifacts.map((te) => /* @__PURE__ */ t(
549
+ ma,
487
550
  {
488
551
  artifact: te,
489
552
  context: a,
490
- onAction: c,
491
- onActionError: o,
553
+ onAction: r,
554
+ onActionError: i,
492
555
  registry: s
493
556
  },
494
557
  te.id
495
558
  )),
496
559
  fe ? /* @__PURE__ */ t(
497
- Da,
560
+ qa,
498
561
  {
499
- copyFeedback: y?.messageId === i.id ? {
562
+ copyFeedback: y?.messageId === l.id ? {
500
563
  message: y.message,
501
564
  status: y.status
502
565
  } : void 0,
503
- onCopy: i.content.trim() ? () => f(i.id, i.content) : void 0,
504
- onRegenerate: k && i.id === R && q ? () => P({
505
- userMessage: q,
506
- assistantMessage: i
566
+ onCopy: l.content.trim() ? () => v(l.id, l.content) : void 0,
567
+ onRegenerate: _ && l.id === R && U ? () => D({
568
+ userMessage: U,
569
+ assistantMessage: l
507
570
  }) : void 0
508
571
  }
509
572
  ) : null
510
573
  ] })
511
574
  ] })
512
575
  },
513
- i.id
576
+ l.id
514
577
  );
515
578
  });
516
579
  };
517
- function Ua({
580
+ function Ka({
518
581
  assistantName: e = "AI 助手",
519
582
  brandName: a,
520
583
  context: s,
521
- onAction: c,
522
- onActionError: o,
523
- onClose: d,
584
+ onAction: r,
585
+ onActionError: i,
586
+ onClose: c,
524
587
  onNewConversation: m,
525
- registry: h,
526
- subtitle: $,
588
+ registry: u,
589
+ subtitle: g,
527
590
  suggestions: y,
528
- title: k,
529
- transport: f,
530
- userAvatarUrl: P,
531
- userName: N = "你"
591
+ title: _,
592
+ transport: v,
593
+ userAvatarUrl: D,
594
+ userName: w = "你"
532
595
  }) {
533
- const U = Ke(a, k), [R, x] = E(""), [i, _] = E(ue), q = S(i);
534
- q.current = i;
535
- const [K, w] = E(void 0), [B, T] = E(void 0), [fe, te] = E(0), [V, se] = E(() => f.loadConversation ? "loading" : "ready"), [Ze, H] = E(!1), O = S(void 0), z = S(void 0), G = S(0), re = S(null), F = S(!0), ye = S(s.app.id), Ae = Fe(
536
- () => h ?? ya(),
537
- [h]
596
+ const B = He(a, _), [R, x] = E(""), [l, k] = E(ue), U = S(l);
597
+ U.current = l;
598
+ const [q, T] = E(void 0), [H, M] = E(void 0), [fe, te] = E(0), [K, se] = E(() => v.loadConversation ? "loading" : "ready"), [Ze, V] = E(!1), z = S(void 0), O = S(void 0), j = S(0), ne = S(null), F = S(!0), ke = S(s.app.id), Ae = Fe(
599
+ () => u ?? Aa(),
600
+ [u]
538
601
  ), be = Fe(
539
- () => Na(y),
602
+ () => wa(y),
540
603
  [y]
541
- ), ne = (r) => {
542
- const p = O.current, g = z.current?.iterator;
543
- return !p && !g ? !1 : (G.current += 1, O.current = void 0, z.current = void 0, console.info("[make-ai-assistant] local run cancellation requested", { reason: r }), p?.abort(), Le(g), !0);
604
+ ), re = (n) => {
605
+ const h = z.current, f = O.current?.iterator;
606
+ return !h && !f ? !1 : (j.current += 1, z.current = void 0, O.current = void 0, console.info("[make-ai-assistant] local run cancellation requested", { reason: n }), h?.abort(), Le(f), !0);
544
607
  };
545
608
  ge(() => () => {
546
- ne("unmount");
609
+ re("unmount");
547
610
  }, []), ge(() => {
548
- const r = f.loadConversation, p = ye.current !== s.app.id;
549
- if (ye.current = s.app.id, ne("reinitialize"), p && (x(""), F.current = !0), w(void 0), T(void 0), H(!1), _(ue()), !r) {
611
+ const n = v.loadConversation, h = ke.current !== s.app.id;
612
+ if (ke.current = s.app.id, re("reinitialize"), h && (x(""), F.current = !0), T(void 0), M(void 0), V(!1), k(ue()), !n) {
550
613
  se("ready");
551
614
  return;
552
615
  }
553
- const g = new AbortController();
616
+ const f = new AbortController();
554
617
  return se("loading"), console.info("[make-ai-assistant] conversation load start", {
555
618
  appId: s.app.id
556
- }), r.call(f, s, { signal: g.signal }).then((b) => {
557
- g.signal.aborted || (_(ue(b)), se("ready"), console.info("[make-ai-assistant] conversation load success", {
619
+ }), n.call(v, s, { signal: f.signal }).then((I) => {
620
+ f.signal.aborted || (k(ue(I)), se("ready"), console.info("[make-ai-assistant] conversation load success", {
558
621
  appId: s.app.id,
559
- messageCount: b.messages.length
622
+ messageCount: I.messages.length
560
623
  }));
561
- }).catch((b) => {
562
- g.signal.aborted || (console.error("[make-ai-assistant] conversation load failed", {
624
+ }).catch((I) => {
625
+ f.signal.aborted || (console.error("[make-ai-assistant] conversation load failed", {
563
626
  appId: s.app.id,
564
- errorType: b instanceof Error ? b.name : typeof b
627
+ errorType: I instanceof Error ? I.name : typeof I
565
628
  }), se("error"));
566
- }), () => g.abort();
567
- }, [s.app.id, fe, f]), ge(() => {
568
- const r = re.current;
569
- if (!r || !F.current) return;
570
- H(!1);
571
- const p = requestAnimationFrame(() => {
629
+ }), () => f.abort();
630
+ }, [s.app.id, fe, v]), ge(() => {
631
+ const n = ne.current;
632
+ if (!n || !F.current) return;
633
+ V(!1);
634
+ const h = requestAnimationFrame(() => {
572
635
  if (!F.current) return;
573
- const g = i.status === "streaming" || globalThis.matchMedia?.("(prefers-reduced-motion: reduce)").matches ? "auto" : "smooth";
574
- typeof r.scrollTo == "function" ? r.scrollTo({ top: r.scrollHeight, behavior: g }) : r.scrollTop = r.scrollHeight;
636
+ const f = l.status === "streaming" || globalThis.matchMedia?.("(prefers-reduced-motion: reduce)").matches ? "auto" : "smooth";
637
+ typeof n.scrollTo == "function" ? n.scrollTo({ top: n.scrollHeight, behavior: f }) : n.scrollTop = n.scrollHeight;
575
638
  });
576
- return () => cancelAnimationFrame(p);
577
- }, [i.messages, i.progress, i.status]);
578
- const je = () => {
579
- const r = re.current;
580
- if (!r) return;
581
- const p = Fa(r);
582
- F.current = p, H(!p && q.current.messages.length > 0);
583
- }, Ye = () => {
584
- const r = re.current;
585
- if (!r) return;
586
- F.current = !0, H(!1);
587
- const p = La();
588
- typeof r.scrollTo == "function" ? r.scrollTo({ top: r.scrollHeight, behavior: p }) : r.scrollTop = r.scrollHeight;
589
- }, Ie = async (r, p) => {
590
- const g = r.trim(), b = q.current, M = p?.regenerateFrom, _e = f.regenerate;
591
- if (!g || V !== "ready" || b.status === "streaming" || O.current || M && !_e) return;
639
+ return () => cancelAnimationFrame(h);
640
+ }, [l.messages, l.progress, l.status]);
641
+ const Ye = () => {
642
+ const n = ne.current;
643
+ if (!n) return;
644
+ const h = Ba(n);
645
+ F.current = h, V(!h && U.current.messages.length > 0);
646
+ }, We = () => {
647
+ const n = ne.current;
648
+ if (!n) return;
649
+ F.current = !0, V(!1);
650
+ const h = Ua();
651
+ typeof n.scrollTo == "function" ? n.scrollTo({ top: n.scrollHeight, behavior: h }) : n.scrollTop = n.scrollHeight;
652
+ }, Ie = async (n, h) => {
653
+ const f = n.trim(), I = U.current, C = h?.regenerateFrom, _e = v.regenerate;
654
+ if (!f || K !== "ready" || I.status === "streaming" || z.current || C && !_e) return;
592
655
  if (he(
593
- g,
594
- A.messageCharacters
595
- ) > A.messageCharacters) {
596
- w(
597
- `输入内容过长,请控制在 ${A.messageCharacters} 个字符以内`
656
+ f,
657
+ b.messageCharacters
658
+ ) > b.messageCharacters) {
659
+ T(
660
+ `输入内容过长,请控制在 ${b.messageCharacters} 个字符以内`
598
661
  );
599
662
  return;
600
663
  }
601
664
  const ce = {
602
- id: M?.userMessage.id ?? Aa("user"),
603
- content: g
604
- }, le = M ? xa(b, M.userMessage.id) : ca(b, ce), de = new AbortController(), Z = G.current + 1;
605
- G.current = Z, O.current = de, w(void 0), T(void 0), H(!F.current && b.messages.length > 0), M || x(""), _(le);
665
+ id: C?.userMessage.id ?? ba("user"),
666
+ content: f
667
+ }, le = C ? Da(I, C.userMessage.id) : la(I, ce), de = new AbortController(), G = j.current + 1;
668
+ j.current = G, z.current = de, T(void 0), M(void 0), V(!F.current && I.messages.length > 0), C || x(""), k(le);
606
669
  try {
607
- let C = !1, v, we = 0, Te = 0, Me = 0, ve = 0, W = 0;
608
- const X = /* @__PURE__ */ new Map(), Ce = /* @__PURE__ */ new Set(), Ee = /* @__PURE__ */ new Set(
670
+ let $ = !1, A, we = 0, Te = 0, Me = 0, ve = 0, Q = 0;
671
+ const X = /* @__PURE__ */ new Map(), Ce = /* @__PURE__ */ new Set(), $e = /* @__PURE__ */ new Set(
609
672
  [
610
673
  ...le.messages.map((me) => me.id),
611
674
  ce.id
612
675
  ]
613
- ), ee = /* @__PURE__ */ new Set(), Se = oa(Ae), $e = { signal: de.signal };
614
- let ke;
615
- if (M) {
676
+ ), ee = /* @__PURE__ */ new Set(), Ee = ca(Ae), Se = { signal: de.signal };
677
+ let ye;
678
+ if (C) {
616
679
  if (!_e)
617
- throw new u("当前 AI 助手不支持重新生成");
618
- ke = _e({
680
+ throw new p("当前 AI 助手不支持重新生成");
681
+ ye = _e({
619
682
  threadId: le.threadId,
620
683
  message: ce,
621
684
  assistantMessage: {
622
- id: M.assistantMessage.id,
623
- content: M.assistantMessage.content
685
+ id: C.assistantMessage.id,
686
+ content: C.assistantMessage.content
624
687
  },
625
688
  context: s,
626
- capabilities: Se
627
- }, $e);
689
+ capabilities: Ee
690
+ }, Se);
628
691
  } else
629
- ke = f.run(
692
+ ye = v.run(
630
693
  {
631
694
  threadId: le.threadId,
632
695
  message: ce,
633
696
  context: s,
634
- capabilities: Se
697
+ capabilities: Ee
635
698
  },
636
- $e
699
+ Se
637
700
  );
638
- const Re = ke[Symbol.asyncIterator]();
639
- for (z.current = { iterator: Re, requestVersion: Z }; ; ) {
701
+ const Re = ye[Symbol.asyncIterator]();
702
+ for (O.current = { iterator: Re, requestVersion: G }; ; ) {
640
703
  const me = await Re.next();
641
- if (G.current !== Z || me.done) break;
642
- let l;
704
+ if (j.current !== G || me.done) break;
705
+ let d;
643
706
  try {
644
- l = la(me.value);
645
- } catch (I) {
646
- throw new u(
647
- I instanceof Error ? I.message : "Invalid assistant event"
707
+ d = da(me.value);
708
+ } catch (N) {
709
+ throw new p(
710
+ N instanceof Error ? N.message : "Invalid assistant event"
648
711
  );
649
712
  }
650
- if (l.type === "message.start") {
651
- if (v !== void 0 && v !== l.runId)
652
- throw new u("AI 助手响应 run id 不一致");
653
- if (v ??= l.runId, Te += 1, Te > A.assistantMessagesPerRun)
654
- throw new u("AI 助手单次响应消息数量超过限制");
655
- if (Ee.has(l.messageId))
656
- throw new u("AI 助手响应包含重复的 message id");
657
- Ee.add(l.messageId), ee.add(l.messageId), X.set(l.messageId, 0);
713
+ if (d.type === "message.start") {
714
+ if (A !== void 0 && A !== d.runId)
715
+ throw new p("AI 助手响应 run id 不一致");
716
+ if (A ??= d.runId, Te += 1, Te > b.assistantMessagesPerRun)
717
+ throw new p("AI 助手单次响应消息数量超过限制");
718
+ if ($e.has(d.messageId))
719
+ throw new p("AI 助手响应包含重复的 message id");
720
+ $e.add(d.messageId), ee.add(d.messageId), X.set(d.messageId, 0);
658
721
  }
659
- if (l.type === "message.delta") {
660
- if (!ee.has(l.messageId))
661
- throw new u("AI 助手响应事件顺序无效");
662
- const I = X.get(l.messageId) ?? 0, j = he(
663
- l.delta,
664
- A.messageCharacters - W
722
+ if (d.type === "message.delta") {
723
+ if (!ee.has(d.messageId))
724
+ throw new p("AI 助手响应事件顺序无效");
725
+ const N = X.get(d.messageId) ?? 0, Z = he(
726
+ d.delta,
727
+ b.messageCharacters - Q
665
728
  );
666
- if (W + j > A.messageCharacters)
667
- throw new u("AI 助手响应文本超过大小限制");
668
- W += j, X.set(
669
- l.messageId,
670
- I + j
729
+ if (Q + Z > b.messageCharacters)
730
+ throw new p("AI 助手响应文本超过大小限制");
731
+ Q += Z, X.set(
732
+ d.messageId,
733
+ N + Z
671
734
  );
672
735
  }
673
- if (l.type === "message.replace") {
674
- if (!ee.has(l.messageId))
675
- throw new u("AI 助手响应事件顺序无效");
676
- const I = X.get(l.messageId) ?? 0, j = he(
677
- l.content,
678
- A.messageCharacters
679
- ), xe = W - I + j;
680
- if (xe > A.messageCharacters)
681
- throw new u("AI 助手响应文本超过大小限制");
682
- W = xe, X.set(l.messageId, j);
736
+ if (d.type === "message.replace") {
737
+ if (!ee.has(d.messageId))
738
+ throw new p("AI 助手响应事件顺序无效");
739
+ const N = X.get(d.messageId) ?? 0, Z = he(
740
+ d.content,
741
+ b.messageCharacters
742
+ ), xe = Q - N + Z;
743
+ if (xe > b.messageCharacters)
744
+ throw new p("AI 助手响应文本超过大小限制");
745
+ Q = xe, X.set(d.messageId, Z);
683
746
  }
684
- if (l.type === "run.progress") {
685
- if (v !== void 0 && v !== l.runId)
686
- throw new u("AI 助手响应 run id 不一致");
687
- if (v ??= l.runId, Me += 1, Me > A.progressStepsPerRun)
688
- throw new u("AI 助手处理过程数量超过限制");
689
- const I = he(
690
- l.message,
691
- A.progressCharactersPerRun - ve
747
+ if (d.type === "run.progress") {
748
+ if (A !== void 0 && A !== d.runId)
749
+ throw new p("AI 助手响应 run id 不一致");
750
+ if (A ??= d.runId, Me += 1, Me > b.progressStepsPerRun)
751
+ throw new p("AI 助手处理过程数量超过限制");
752
+ const N = he(
753
+ d.message,
754
+ b.progressCharactersPerRun - ve
692
755
  );
693
- if (ve + I > A.progressCharactersPerRun)
694
- throw new u("AI 助手处理过程文本超过大小限制");
695
- ve += I;
756
+ if (ve + N > b.progressCharactersPerRun)
757
+ throw new p("AI 助手处理过程文本超过大小限制");
758
+ ve += N;
696
759
  }
697
- if (l.type === "artifact") {
698
- if (!ee.has(l.messageId))
699
- throw new u("AI 助手响应事件顺序无效");
700
- if (we += 1, we > A.artifactsPerRun)
701
- throw new u("AI 助手单次响应 Artifact 数量超过限制");
702
- if (Ce.has(l.artifact.id))
703
- throw new u("AI 助手响应包含重复的 Artifact id");
704
- Ce.add(l.artifact.id);
760
+ if (d.type === "artifact") {
761
+ if (!ee.has(d.messageId))
762
+ throw new p("AI 助手响应事件顺序无效");
763
+ if (we += 1, we > b.artifactsPerRun)
764
+ throw new p("AI 助手单次响应 Artifact 数量超过限制");
765
+ if (Ce.has(d.artifact.id))
766
+ throw new p("AI 助手响应包含重复的 Artifact id");
767
+ Ce.add(d.artifact.id);
705
768
  }
706
- if (l.type === "message.complete" && !ee.delete(l.messageId))
707
- throw new u("AI 助手响应事件顺序无效");
708
- if (l.type === "run.complete" && v !== void 0 && v !== l.runId)
709
- throw new u("AI 助手响应 run id 不一致");
710
- if (l.type === "run.cancelled" && l.runId !== void 0 && v !== void 0 && v !== l.runId)
711
- throw new u("AI 助手响应 run id 不一致");
712
- if (_((I) => pe(I, l)), l.type === "error" || l.type === "run.cancelled" || l.type === "run.complete") {
713
- C = !0;
769
+ if (d.type === "message.complete" && !ee.delete(d.messageId))
770
+ throw new p("AI 助手响应事件顺序无效");
771
+ if (d.type === "run.complete" && A !== void 0 && A !== d.runId)
772
+ throw new p("AI 助手响应 run id 不一致");
773
+ if (d.type === "run.cancelled" && d.runId !== void 0 && A !== void 0 && A !== d.runId)
774
+ throw new p("AI 助手响应 run id 不一致");
775
+ if (k((N) => pe(N, d)), d.type === "error" || d.type === "run.cancelled" || d.type === "run.complete") {
776
+ $ = !0;
714
777
  break;
715
778
  }
716
779
  }
717
- if (!C)
718
- throw new u("AI 助手流式响应在终止事件前结束");
719
- } catch (C) {
720
- if (G.current !== Z) return;
780
+ if (!$)
781
+ throw new p("AI 助手流式响应在终止事件前结束");
782
+ } catch ($) {
783
+ if (j.current !== G) return;
721
784
  if (de.signal.aborted) {
722
- _(
723
- (v) => pe(v, { type: "run.cancelled" })
785
+ k(
786
+ (A) => pe(A, { type: "run.cancelled" })
724
787
  );
725
788
  return;
726
789
  }
727
790
  console.error("[make-ai-assistant] assistant run failed", {
728
791
  appId: s.app.id,
729
- errorType: C instanceof Error ? C.name : typeof C
730
- }), _(
731
- (v) => pe(v, {
792
+ errorType: $ instanceof Error ? $.name : typeof $
793
+ }), k(
794
+ (A) => pe(A, {
732
795
  type: "error",
733
796
  code: "TRANSPORT_ERROR",
734
- message: C instanceof u ? C.message : "连接失败,请重试",
797
+ message: $ instanceof p ? $.message : "连接失败,请重试",
735
798
  retryable: !0
736
799
  })
737
800
  );
738
801
  } finally {
739
- G.current === Z && O.current === de && (O.current = void 0), z.current?.requestVersion === Z && (Le(z.current.iterator), z.current = void 0);
802
+ j.current === G && z.current === de && (z.current = void 0), O.current?.requestVersion === G && (Le(O.current.iterator), O.current = void 0);
740
803
  }
741
- }, ie = (r) => Ie(r), Je = (r) => Ie(r.userMessage.content, { regenerateFrom: r }), Qe = async (r, p) => {
804
+ }, ie = (n) => Ie(n), Je = (n) => Ie(n.userMessage.content, { regenerateFrom: n }), Qe = async (n, h) => {
742
805
  try {
743
- await wa(p), T({ messageId: r, message: "已复制", status: "success" });
744
- } catch (g) {
806
+ await Ta(h), M({ messageId: n, message: "已复制", status: "success" });
807
+ } catch (f) {
745
808
  console.error("[make-ai-assistant] copy answer failed", {
746
- errorType: g instanceof Error ? g.name : typeof g
747
- }), T({ messageId: r, message: "复制失败", status: "error" });
809
+ errorType: f instanceof Error ? f.name : typeof f
810
+ }), M({ messageId: n, message: "复制失败", status: "error" });
748
811
  }
749
- }, We = (r) => {
750
- r.preventDefault(), ie(R);
751
- }, Xe = (r) => {
752
- r.key === "Enter" && !r.shiftKey && !r.nativeEvent.isComposing && (r.preventDefault(), ie(R));
753
- }, ea = () => {
754
- ne("stop") && _(
755
- (r) => pe(r, { type: "run.cancelled" })
756
- );
812
+ }, Xe = (n) => {
813
+ n.preventDefault(), ie(R);
814
+ }, ea = (n) => {
815
+ n.key === "Enter" && !n.shiftKey && !n.nativeEvent.isComposing && (n.preventDefault(), ie(R));
757
816
  }, aa = () => {
758
- ne("new-conversation"), x(""), w(void 0), T(void 0), H(!1), F.current = !0, _(ue()), m?.();
759
- }, ta = f.features?.remoteCancellation === !1 ? "停止接收" : "停止生成", sa = He(i), ra = Oe(i), oe = Ra(i), na = typeof f.regenerate == "function" && f.features?.regeneration !== !1, Ne = () => {
817
+ re("stop") && k(
818
+ (n) => pe(n, { type: "run.cancelled" })
819
+ );
820
+ }, ta = () => {
821
+ re("new-conversation"), x(""), T(void 0), M(void 0), V(!1), F.current = !0, k(ue()), m?.();
822
+ }, sa = v.features?.remoteCancellation === !1 ? "停止接收" : "停止生成", na = ze(l), ra = Oe(l), oe = Pa(l), ia = typeof v.regenerate == "function" && v.features?.regeneration !== !1, Ne = () => {
760
823
  oe && ie(oe.content);
761
824
  };
762
- return /* @__PURE__ */ n("section", { className: "make-ai-assistant make-ai-assistant__panel", children: [
763
- /* @__PURE__ */ n("header", { className: "make-ai-assistant__header", children: [
825
+ return /* @__PURE__ */ o("section", { className: "make-ai-assistant make-ai-assistant__panel", children: [
826
+ /* @__PURE__ */ o("header", { className: "make-ai-assistant__header", children: [
764
827
  /* @__PURE__ */ t(ae, {}),
765
- /* @__PURE__ */ n("div", { children: [
766
- /* @__PURE__ */ t("h2", { children: U }),
767
- /* @__PURE__ */ t("p", { children: $ ?? `当前应用:${s.app.name ?? "未命名应用"}` })
828
+ /* @__PURE__ */ o("div", { children: [
829
+ /* @__PURE__ */ t("h2", { children: B }),
830
+ /* @__PURE__ */ t("p", { children: g ?? `当前应用:${s.app.name ?? "未命名应用"}` })
768
831
  ] }),
769
- /* @__PURE__ */ n("div", { className: "make-ai-assistant__header-actions", children: [
770
- f.features?.newConversation !== !1 ? /* @__PURE__ */ t(
832
+ /* @__PURE__ */ o("div", { className: "make-ai-assistant__header-actions", children: [
833
+ v.features?.newConversation !== !1 ? /* @__PURE__ */ t(
771
834
  "button",
772
835
  {
773
836
  "aria-label": "新建对话",
774
837
  className: "make-ai-assistant__icon-button",
775
838
  type: "button",
776
- onClick: aa,
777
- children: /* @__PURE__ */ t(Ma, {})
839
+ onClick: ta,
840
+ children: /* @__PURE__ */ t($a, {})
778
841
  }
779
842
  ) : null,
780
- d ? /* @__PURE__ */ t(
843
+ c ? /* @__PURE__ */ t(
781
844
  "button",
782
845
  {
783
- "aria-label": `关闭 ${U}`,
846
+ "aria-label": `关闭 ${B}`,
784
847
  className: "make-ai-assistant__icon-button",
785
848
  type: "button",
786
- onClick: d,
787
- children: /* @__PURE__ */ t(Ta, {})
849
+ onClick: c,
850
+ children: /* @__PURE__ */ t(Ma, {})
788
851
  }
789
852
  ) : null
790
853
  ] })
791
854
  ] }),
792
- /* @__PURE__ */ n("div", { className: "make-ai-assistant__privacy-note", role: "note", children: [
855
+ /* @__PURE__ */ o("div", { className: "make-ai-assistant__privacy-note", role: "note", children: [
793
856
  /* @__PURE__ */ t("span", { "aria-hidden": "true", children: "◇" }),
794
857
  "当前页面上下文会随请求发送,数据权限以宿主服务端校验结果为准"
795
858
  ] }),
796
- /* @__PURE__ */ n(
859
+ /* @__PURE__ */ o(
797
860
  "div",
798
861
  {
799
862
  className: "make-ai-assistant__body",
800
863
  "aria-live": "polite",
801
864
  "aria-relevant": "additions text",
802
- ref: re,
865
+ ref: ne,
803
866
  role: "log",
804
- onScroll: je,
867
+ onScroll: Ye,
805
868
  children: [
806
- V === "loading" ? /* @__PURE__ */ n("div", { className: "make-ai-assistant__empty", role: "status", children: [
869
+ K === "loading" ? /* @__PURE__ */ o("div", { className: "make-ai-assistant__empty", role: "status", children: [
807
870
  /* @__PURE__ */ t(ae, {}),
808
871
  /* @__PURE__ */ t("h3", { children: "正在恢复对话" }),
809
872
  /* @__PURE__ */ t("p", { children: "正在读取当前 App 的历史消息…" })
810
- ] }) : V === "error" ? /* @__PURE__ */ n("div", { className: "make-ai-assistant__empty", role: "alert", children: [
873
+ ] }) : K === "error" ? /* @__PURE__ */ o("div", { className: "make-ai-assistant__empty", role: "alert", children: [
811
874
  /* @__PURE__ */ t(ae, {}),
812
875
  /* @__PURE__ */ t("h3", { children: "暂时无法加载对话" }),
813
876
  /* @__PURE__ */ t("p", { children: "请检查网络后重试。" }),
@@ -816,45 +879,45 @@ function Ua({
816
879
  {
817
880
  className: "make-ai-assistant__retry",
818
881
  type: "button",
819
- onClick: () => te((r) => r + 1),
882
+ onClick: () => te((n) => n + 1),
820
883
  children: "重新加载"
821
884
  }
822
885
  )
823
- ] }) : i.messages.length === 0 ? /* @__PURE__ */ n("div", { className: "make-ai-assistant__empty", children: [
886
+ ] }) : l.messages.length === 0 ? /* @__PURE__ */ o("div", { className: "make-ai-assistant__empty", children: [
824
887
  /* @__PURE__ */ t(ae, {}),
825
888
  /* @__PURE__ */ t("h3", { children: "有什么可以帮你?" }),
826
889
  /* @__PURE__ */ t("p", { children: "我会结合当前 App、页面位置和宿主允许的上下文回答,并把过程与结果分开展示。" })
827
- ] }) : Pa(
828
- i,
890
+ ] }) : Ha(
891
+ l,
829
892
  s,
830
893
  Ae,
831
- c,
832
- o,
894
+ r,
895
+ i,
833
896
  e,
834
897
  oe ? Ne : void 0,
835
- N,
836
- P,
837
- B,
838
- na,
839
- (r, p) => {
840
- Qe(r, p);
898
+ w,
899
+ D,
900
+ H,
901
+ ia,
902
+ (n, h) => {
903
+ Qe(n, h);
841
904
  },
842
- (r) => {
843
- Je(r);
905
+ (n) => {
906
+ Je(n);
844
907
  }
845
908
  ),
846
- i.progress && !sa ? /* @__PURE__ */ t(
909
+ l.progress && !na ? /* @__PURE__ */ t(
847
910
  De,
848
911
  {
849
912
  assistantName: e,
850
- progress: i.progress
913
+ progress: l.progress
851
914
  }
852
915
  ) : null,
853
- i.error && !ra ? /* @__PURE__ */ t(
916
+ l.error && !ra ? /* @__PURE__ */ t(
854
917
  De,
855
918
  {
856
919
  assistantName: e,
857
- error: i.error,
920
+ error: l.error,
858
921
  onRetry: oe ? Ne : void 0
859
922
  }
860
923
  ) : null
@@ -867,47 +930,47 @@ function Ua({
867
930
  "aria-label": "回到最新消息",
868
931
  className: "make-ai-assistant__back-to-latest",
869
932
  type: "button",
870
- onClick: Ye,
933
+ onClick: We,
871
934
  children: "回到最新消息"
872
935
  }
873
936
  ) : null,
874
- /* @__PURE__ */ n("footer", { className: "make-ai-assistant__composer-region", children: [
875
- V === "ready" && be.length > 0 && i.messages.length === 0 ? /* @__PURE__ */ t("div", { className: "make-ai-assistant__suggestions", "aria-label": "推荐问题", children: be.map((r, p) => /* @__PURE__ */ t(
937
+ /* @__PURE__ */ o("footer", { className: "make-ai-assistant__composer-region", children: [
938
+ K === "ready" && be.length > 0 && l.messages.length === 0 ? /* @__PURE__ */ t("div", { className: "make-ai-assistant__suggestions", "aria-label": "推荐问题", children: be.map((n, h) => /* @__PURE__ */ t(
876
939
  "button",
877
940
  {
878
941
  type: "button",
879
942
  onClick: () => {
880
- ie(r);
943
+ ie(n);
881
944
  },
882
- children: r
945
+ children: n
883
946
  },
884
- `${p}-${r}`
947
+ `${h}-${n}`
885
948
  )) }) : null,
886
- /* @__PURE__ */ n("form", { className: "make-ai-assistant__composer", onSubmit: We, children: [
949
+ /* @__PURE__ */ o("form", { className: "make-ai-assistant__composer", onSubmit: Xe, children: [
887
950
  /* @__PURE__ */ t(
888
951
  "textarea",
889
952
  {
890
953
  "aria-label": `向 ${e} 提问`,
891
- "aria-describedby": K ? "make-ai-composer-error" : void 0,
892
- "aria-invalid": K ? !0 : void 0,
954
+ "aria-describedby": q ? "make-ai-composer-error" : void 0,
955
+ "aria-invalid": q ? !0 : void 0,
893
956
  autoFocus: !0,
894
- disabled: V !== "ready" || i.status === "streaming",
957
+ disabled: K !== "ready" || l.status === "streaming",
895
958
  placeholder: `询问当前 ${s.app.name ?? "App"} 中的数据…`,
896
959
  rows: 2,
897
960
  value: R,
898
- onChange: (r) => {
899
- x(r.currentTarget.value), w(void 0);
961
+ onChange: (n) => {
962
+ x(n.currentTarget.value), T(void 0);
900
963
  },
901
- onKeyDown: Xe
964
+ onKeyDown: ea
902
965
  }
903
966
  ),
904
- i.status === "streaming" ? /* @__PURE__ */ t(
967
+ l.status === "streaming" ? /* @__PURE__ */ t(
905
968
  "button",
906
969
  {
907
- "aria-label": ta,
970
+ "aria-label": sa,
908
971
  className: "make-ai-assistant__send make-ai-assistant__send--stop",
909
972
  type: "button",
910
- onClick: ea,
973
+ onClick: aa,
911
974
  children: /* @__PURE__ */ t("span", { "aria-hidden": "true" })
912
975
  }
913
976
  ) : /* @__PURE__ */ t(
@@ -915,81 +978,81 @@ function Ua({
915
978
  {
916
979
  "aria-label": "发送",
917
980
  className: "make-ai-assistant__send",
918
- disabled: V !== "ready" || !R.trim(),
981
+ disabled: K !== "ready" || !R.trim(),
919
982
  type: "submit",
920
- children: /* @__PURE__ */ t(Ca, {})
983
+ children: /* @__PURE__ */ t(Ea, {})
921
984
  }
922
985
  )
923
986
  ] }),
924
- K ? /* @__PURE__ */ t("p", { id: "make-ai-composer-error", role: "alert", children: K }) : null,
987
+ q ? /* @__PURE__ */ t("p", { id: "make-ai-composer-error", role: "alert", children: q }) : null,
925
988
  /* @__PURE__ */ t("p", { children: "AI 生成的结果可能存在偏差,重要数据请核对明细。" })
926
989
  ] })
927
990
  ] });
928
991
  }
929
- function Ha({
992
+ function Ga({
930
993
  defaultOpen: e = !1,
931
994
  hideLauncher: a = !1,
932
995
  launcher: s,
933
- onOpenChange: c,
934
- open: o,
935
- ...d
996
+ onOpenChange: r,
997
+ open: i,
998
+ ...c
936
999
  }) {
937
- const m = Ke(d.brandName, d.title), [h, $] = E(e), y = S(null), k = o ?? h, f = (N) => {
938
- o === void 0 && $(N), c?.(N), N || requestAnimationFrame(() => y.current?.focus());
939
- }, P = () => f(!k);
1000
+ const m = He(c.brandName, c.title), [u, g] = E(e), y = S(null), _ = i ?? u, v = (w) => {
1001
+ i === void 0 && g(w), r?.(w), w || requestAnimationFrame(() => y.current?.focus());
1002
+ }, D = () => v(!_);
940
1003
  return ge(() => {
941
- if (!k) return;
942
- const N = (U) => {
943
- U.key === "Escape" && (f(!1), requestAnimationFrame(() => y.current?.focus()));
1004
+ if (!_) return;
1005
+ const w = (B) => {
1006
+ B.key === "Escape" && (v(!1), requestAnimationFrame(() => y.current?.focus()));
944
1007
  };
945
- return document.addEventListener("keydown", N), () => document.removeEventListener("keydown", N);
946
- }, [c, k]), /* @__PURE__ */ n("div", { className: "make-ai-assistant", "data-open": k || void 0, children: [
947
- !a && (!k || s) ? s ? s({ open: k, toggle: P }) : /* @__PURE__ */ n(
1008
+ return document.addEventListener("keydown", w), () => document.removeEventListener("keydown", w);
1009
+ }, [r, _]), /* @__PURE__ */ o("div", { className: "make-ai-assistant", "data-open": _ || void 0, children: [
1010
+ !a && (!_ || s) ? s ? s({ open: _, toggle: D }) : /* @__PURE__ */ o(
948
1011
  "button",
949
1012
  {
950
- "aria-label": k ? `关闭 ${m}` : `打开 ${m}`,
951
- "aria-expanded": k,
1013
+ "aria-label": _ ? `关闭 ${m}` : `打开 ${m}`,
1014
+ "aria-expanded": _,
952
1015
  className: "make-ai-assistant__launcher",
953
1016
  ref: y,
954
1017
  type: "button",
955
- onClick: P,
1018
+ onClick: D,
956
1019
  children: [
957
1020
  /* @__PURE__ */ t("span", { className: "make-ai-assistant__launcher-orbit", "aria-hidden": "true" }),
958
- /* @__PURE__ */ t(Be, {})
1021
+ /* @__PURE__ */ t(Ke, {})
959
1022
  ]
960
1023
  }
961
1024
  ) : null,
962
- k ? /* @__PURE__ */ t(
1025
+ _ ? /* @__PURE__ */ t(
963
1026
  "aside",
964
1027
  {
965
1028
  "aria-label": m,
966
1029
  "aria-modal": "false",
967
1030
  className: "make-ai-assistant__drawer",
968
1031
  role: "dialog",
969
- children: /* @__PURE__ */ t(Ua, { ...d, onClose: () => f(!1) })
1032
+ children: /* @__PURE__ */ t(Ka, { ...c, onClose: () => v(!1) })
970
1033
  }
971
1034
  ) : null
972
1035
  ] });
973
1036
  }
974
1037
  export {
975
- da as ArtifactRenderer,
976
- Ua as AssistantPanel,
977
- ja as MAKE_AI_ARTIFACT_KINDS,
978
- Ya as MAKE_AI_ARTIFACT_LIMITS,
979
- Ja as MAKE_AI_ARTIFACT_SCHEMA_VERSION,
980
- A as MAKE_AI_CONVERSATION_LIMITS,
981
- Ha as MakeAiAssistant,
982
- ca as appendUserMessage,
983
- oa as createArtifactCapabilities,
984
- Pe as createArtifactTemplateRegistry,
1038
+ ma as ArtifactRenderer,
1039
+ Ka as AssistantPanel,
1040
+ Qa as MAKE_AI_ARTIFACT_KINDS,
1041
+ Xa as MAKE_AI_ARTIFACT_LIMITS,
1042
+ et as MAKE_AI_ARTIFACT_SCHEMA_VERSION,
1043
+ b as MAKE_AI_CONVERSATION_LIMITS,
1044
+ Ga as MakeAiAssistant,
1045
+ la as appendUserMessage,
1046
+ ca as createArtifactCapabilities,
1047
+ Be as createArtifactTemplateRegistry,
985
1048
  ue as createAssistantConversationState,
986
- ya as createPlatformArtifactRegistry,
987
- Ga as extendArtifactTemplateRegistry,
988
- D as formatArtifactValue,
989
- Qa as parseArtifact,
990
- la as parseAssistantEvent,
1049
+ Aa as createPlatformArtifactRegistry,
1050
+ Wa as extendArtifactTemplateRegistry,
1051
+ P as formatArtifactValue,
1052
+ at as parseArtifact,
1053
+ da as parseAssistantEvent,
991
1054
  ka as platformArtifactTemplates,
992
1055
  pe as reduceAssistantEvent,
993
- ia as resolveArtifactTemplate,
994
- Wa as validateArtifact
1056
+ oa as resolveArtifactTemplate,
1057
+ tt as validateArtifact
995
1058
  };