@lordusevpn/shangshutai-ui-vue 0.2.2 → 0.2.3

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.
@@ -1,8 +1,8 @@
1
1
  import { onMounted as Tt, onBeforeUnmount as dt, defineComponent as De, ref as D, computed as k, openBlock as t, createElementBlock as s, unref as a, Fragment as _, renderList as ie, createElementVNode as f, normalizeStyle as Ut, createCommentVNode as m, toDisplayString as u, normalizeClass as $e, createBlock as oe, createVNode as Y, watch as ce, withModifiers as at, nextTick as st, createTextVNode as de, createStaticVNode as Ys, withDirectives as it, vModelText as kt, renderSlot as St, withKeys as _t, provide as Fn, inject as Ns, shallowRef as Je, withCtx as Fe, vShow as Rn, onScopeDispose as Vs, createSlots as Ws } from "vue";
2
2
  import { Square as Tn, X as $t, Mic as Ks, ChevronDown as Et, LoaderCircle as gn, FileText as Un, Sparkles as Rt, Search as wn, ImagePlus as qs, Paperclip as Js, Check as hn, ShieldCheck as Zs, Send as _s, Pencil as Gn, Clipboard as $s, VolumeX as ea, Volume2 as ta, Info as na, ThumbsUp as sa, ThumbsDown as aa, CirclePlay as ia, RefreshCw as oa, GitFork as la, ChevronLeft as ra, ChevronRight as ua, CheckCircle2 as Yn, CircleX as Nn, Clock3 as Vn, CircleHelp as Wn, Download as en, Maximize2 as ca, Bot as da, MessageSquareText as va, MoreHorizontal as Kn, Copy as fa, Trash2 as pa, Menu as ga, MessageSquarePlus as ma, UsersRound as ha } from "@lucide/vue";
3
- import { u as Xe, _ as Oe, a as vt, b as An, c as ba, d as ya, S as wa } from "./index-uvgaUW1z.js";
3
+ import { u as Xe, _ as Oe, a as vt, b as An, c as ba, d as ya, S as wa } from "./index-DtpvC2ED.js";
4
4
  import { featureEnabled as pe, capabilityFeature as Pt, createAssistantProjection as Qt, createAssistantStateMachine as Aa, reduceAssistantProjection as Be, loadAssistantLayout as Ia, normalizeAssistantLayout as mn, createInputUploadQueue as xa, saveAssistantLayout as ka } from "@lordusevpn/shangshutai-client/assistant";
5
- import { A as Mt, m as Ea, a as Pa } from "./AssistantMarkdownContent-C1foRJor.js";
5
+ import { A as Mt, m as Ea, a as Pa } from "./AssistantMarkdownContent-BjLkEdbV.js";
6
6
  const Ca = "data:image/png;base64,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";
7
7
  function xt(i) {
8
8
  function O(b) {
@@ -38,7 +38,7 @@ const za = ["aria-label"], Ba = {
38
38
  }, Oa = {
39
39
  key: 1,
40
40
  class: "assistant-voice__duration"
41
- }, Sa = ["title"], Ma = ["title"], Ha = ["data-testid", "aria-label", "title", "disabled"], Xa = ["aria-label", "title"], ja = { class: "assistant-voice__panel" }, La = { key: 1 }, Qa = { key: 2 }, Fa = /* @__PURE__ */ De({
41
+ }, Sa = ["title"], Ma = ["title"], Ha = ["data-testid", "aria-label", "title", "disabled"], Xa = ["aria-label", "title"], La = { class: "assistant-voice__panel" }, ja = { key: 1 }, Qa = { key: 2 }, Fa = /* @__PURE__ */ De({
42
42
  __name: "AssistantVoiceInput",
43
43
  props: {
44
44
  state: {},
@@ -134,14 +134,14 @@ const za = ["aria-label"], Ba = {
134
134
  "aria-hidden": "true"
135
135
  })
136
136
  ], 8, Xa),
137
- f("div", ja, [
137
+ f("div", La, [
138
138
  f("strong", null, u(o.value), 1),
139
139
  I.value ? (t(), s("button", {
140
140
  key: 0,
141
141
  type: "button",
142
142
  onClick: ee[0] || (ee[0] = (ae) => n("cancel"))
143
143
  }, u(a(b)("voice.cancel", "取消录音")), 1)) : m("", !0),
144
- i.state.transcript ? (t(), s("p", La, u(i.state.transcript), 1)) : m("", !0),
144
+ i.state.transcript ? (t(), s("p", ja, u(i.state.transcript), 1)) : m("", !0),
145
145
  C.value ? (t(), s("p", Qa, u(a(b)("voice.originalText", "原始识别")) + ":" + u(C.value), 1)) : m("", !0)
146
146
  ])
147
147
  ], 512)) : m("", !0)
@@ -214,7 +214,7 @@ const za = ["aria-label"], Ba = {
214
214
  }, xi = ["data-run-option-id", "aria-pressed", "onClick"], ki = { class: "assistant-composer__run-option-copy" }, Ei = { class: "assistant-composer__run-option-name" }, Pi = { class: "assistant-composer__run-option-description" }, Ci = { class: "assistant-composer__primary-actions" }, zi = ["aria-label"], Bi = { class: "sr-only" }, Di = ["disabled", "aria-label"], Oi = ["aria-label", "onKeydown"], Si = ["aria-label"], Mi = ["src", "alt"], Hi = ["src", "title"], Xi = {
215
215
  key: 2,
216
216
  "data-testid": "asset-text-preview"
217
- }, ji = { key: 3 }, Li = /* @__PURE__ */ De({
217
+ }, Li = { key: 3 }, ji = /* @__PURE__ */ De({
218
218
  __name: "AssistantComposer",
219
219
  props: {
220
220
  modelValue: {},
@@ -243,11 +243,11 @@ const za = ["aria-label"], Ba = {
243
243
  setup(i, { emit: O }) {
244
244
  const y = vt(), n = i, b = O, l = Xe(), X = D(null), I = D(null), F = D(null), o = D(!1), h = D(""), C = D(null), z = D(null), V = D(null), ee = D(460), ae = D(null), P = D(!1), q = D(""), H = D({}), S = D([]), T = k(() => S.value.filter((d) => !n.pendingAssets.some((M) => M.file === d.file))), W = k(() => [...n.pendingAssets, ...T.value]), p = D(null), B = D(null), v = D(null), Z = D(null);
245
245
  let ue = null, U = 0;
246
- function j() {
246
+ function L() {
247
247
  V.value && (o.value || P.value) && (ee.value = qn(V.value));
248
248
  }
249
249
  ce([o, P, () => n.modelValue, () => n.selectedSkillIds, () => n.skills, W], () => {
250
- st(j);
250
+ st(L);
251
251
  });
252
252
  function K(d) {
253
253
  !p.value || d.key !== "Escape" || (d.preventDefault(), d.stopImmediatePropagation(), ne());
@@ -256,7 +256,7 @@ const za = ["aria-label"], Ba = {
256
256
  d.key !== "Escape" || !P.value && !o.value && !C.value?.open || (d.preventDefault(), d.stopPropagation(), P.value ? (P.value = !1, z.value?.focus()) : o.value ? (o.value = !1, X.value?.focus()) : (we(C.value), C.value?.querySelector("summary")?.focus()));
257
257
  }
258
258
  Tt(() => {
259
- document.addEventListener("keydown", K, !0), document.addEventListener("keydown", G), window.addEventListener("resize", j);
259
+ document.addEventListener("keydown", K, !0), document.addEventListener("keydown", G), window.addEventListener("resize", L);
260
260
  }), ce(W, (d) => {
261
261
  const M = new Set(d.map((w) => w.assetId));
262
262
  for (const [w, fe] of Object.entries(H.value)) {
@@ -274,7 +274,7 @@ const za = ["aria-label"], Ba = {
274
274
  const M = new Set(d.map((w) => w.file));
275
275
  S.value = S.value.filter((w) => !M.has(w.file));
276
276
  }), dt(() => {
277
- ne(), document.removeEventListener("keydown", K, !0), document.removeEventListener("keydown", G), window.removeEventListener("resize", j);
277
+ ne(), document.removeEventListener("keydown", K, !0), document.removeEventListener("keydown", G), window.removeEventListener("resize", L);
278
278
  for (const d of Object.values(H.value)) URL.revokeObjectURL(d);
279
279
  });
280
280
  async function J(d, M) {
@@ -362,7 +362,7 @@ const za = ["aria-label"], Ba = {
362
362
  }, { flush: "sync" }), ce(() => y.value.features?.imageAttachments, (d) => {
363
363
  d === !1 && (S.value = [], ne());
364
364
  }, { flush: "sync" });
365
- const Se = (d) => (!Pt(d) || pe(y.value.features ?? {}, Pt(d))) && n.capabilities.some((M) => M.key === d && M.availability === "available" && M.exposure === "enabled"), x = k(() => pe(y.value.features ?? {}, "imageAttachments") ? n.capabilities.find((d) => d.key === "input.image" && d.availability === "available" && d.exposure === "enabled") : void 0), Q = k(() => pe(y.value.features ?? {}, "documentAttachments") ? n.capabilities.find((d) => d.key === "input.document" && d.availability === "available" && d.exposure === "enabled") : void 0), g = k(() => n.capabilities.find((d) => d.key === "run.cancel" && d.availability === "available" && d.exposure === "enabled")), A = k(() => (!n.skillCatalogState || n.skillCatalogState === "ready") && Se("skills.select") ? n.skills.filter((d) => d.availability === "available") : []), te = k(() => (!n.runOptionsCatalogState || n.runOptionsCatalogState === "ready") && Se("run.options") ? n.runOptions.filter((d) => d.availability === "available") : []), ge = k(() => n.capabilities.find((d) => d.key === "skills.select")), xe = k(() => n.capabilities.find((d) => d.key === "run.options")), je = k(() => n.skillCatalogState === "loading" ? l("startup.skills.loading", "正在加载 Skill…") : n.skillCatalogState === "failed" ? l("startup.skills.failed", "Skill 读取失败") : ge.value?.availability === "available" ? l("composer.noSkills", "没有可用 Skill") : ge.value?.reasonCode === "protocol_invalid" ? l("composer.skillsProtocolInvalid", "Skill 目录响应异常") : ge.value?.reasonCode === "not_found" ? l("composer.skillsNotFound", "Skill 目录不存在") : ge.value?.availability === "unknown" ? l("composer.skillsUnknown", "Skill 状态未知") : l("composer.skillsUnavailable", "Skill 暂不可用")), $ = k(() => n.runOptionsCatalogState === "loading" ? l("startup.runOptions.loading", "正在加载执行选项…") : n.runOptionsCatalogState === "failed" ? l("startup.runOptions.failed", "执行选项读取失败") : xe.value?.availability === "available" ? l("composer.noRunOptions", "没有可用执行方式") : xe.value?.availability === "unknown" ? l("composer.runOptionUnknown", "执行方式状态未知") : l("composer.runOptionUnavailable", "执行方式暂不可用")), ot = k(() => A.value.filter((d) => n.selectedSkillIds.includes(d.skillId))), ft = k(() => A.value.filter((d) => `${d.name} ${d.description ?? ""}`.toLocaleLowerCase().includes(q.value.toLocaleLowerCase()))), et = k(() => te.value.find((d) => d.optionId === n.selectedRunOptionId)), Le = D(null), Gt = D(null), pt = k(() => pe(y.value.features ?? {}, "imageAttachments") || pe(y.value.features ?? {}, "documentAttachments")), Pe = k(() => pe(y.value.features ?? {}, "skillSelection")), he = k(() => pe(y.value.features ?? {}, "toolSelection")), Ue = k(() => pt.value || Pe.value || he.value), Ye = k(() => n.capabilities.find((d) => d.key === "tools.catalog")), Yt = k(() => (!n.toolsCatalogState || n.toolsCatalogState === "ready") && Se("tools.catalog")), Ht = k(() => Yt.value ? (n.tools ?? []).filter((d) => d.availability === "available") : []), ke = k(() => n.toolsCatalogState === "loading" ? l("startup.tools.loading", "正在加载工具目录…") : n.toolsCatalogState === "failed" ? l("startup.tools.failed", "工具目录读取失败") : Ye.value?.availability === "unknown" ? l("conversation.toolCatalogUnknown", "工具目录状态未知") : l("conversation.toolCatalogUnavailable", "工具目录暂不可用")), le = (d, M = null) => `${d} ${M ?? ""}`.toLocaleLowerCase().includes(h.value.trim().toLocaleLowerCase()), Ct = k(() => A.value.filter((d) => le(d.name, d.description))), Re = k(() => Ht.value.filter((d) => le(d.name, d.description))), tt = k(() => [
365
+ const Se = (d) => (!Pt(d) || pe(y.value.features ?? {}, Pt(d))) && n.capabilities.some((M) => M.key === d && M.availability === "available" && M.exposure === "enabled"), x = k(() => pe(y.value.features ?? {}, "imageAttachments") ? n.capabilities.find((d) => d.key === "input.image" && d.availability === "available" && d.exposure === "enabled") : void 0), Q = k(() => pe(y.value.features ?? {}, "documentAttachments") ? n.capabilities.find((d) => d.key === "input.document" && d.availability === "available" && d.exposure === "enabled") : void 0), g = k(() => n.capabilities.find((d) => d.key === "run.cancel" && d.availability === "available" && d.exposure === "enabled")), A = k(() => (!n.skillCatalogState || n.skillCatalogState === "ready") && Se("skills.select") ? n.skills.filter((d) => d.availability === "available") : []), te = k(() => (!n.runOptionsCatalogState || n.runOptionsCatalogState === "ready") && Se("run.options") ? n.runOptions.filter((d) => d.availability === "available") : []), ge = k(() => n.capabilities.find((d) => d.key === "skills.select")), xe = k(() => n.capabilities.find((d) => d.key === "run.options")), Le = k(() => n.skillCatalogState === "loading" ? l("startup.skills.loading", "正在加载 Skill…") : n.skillCatalogState === "failed" ? l("startup.skills.failed", "Skill 读取失败") : ge.value?.availability === "available" ? l("composer.noSkills", "没有可用 Skill") : ge.value?.reasonCode === "protocol_invalid" ? l("composer.skillsProtocolInvalid", "Skill 目录响应异常") : ge.value?.reasonCode === "not_found" ? l("composer.skillsNotFound", "Skill 目录不存在") : ge.value?.availability === "unknown" ? l("composer.skillsUnknown", "Skill 状态未知") : l("composer.skillsUnavailable", "Skill 暂不可用")), $ = k(() => n.runOptionsCatalogState === "loading" ? l("startup.runOptions.loading", "正在加载执行选项…") : n.runOptionsCatalogState === "failed" ? l("startup.runOptions.failed", "执行选项读取失败") : xe.value?.availability === "available" ? l("composer.noRunOptions", "没有可用执行方式") : xe.value?.availability === "unknown" ? l("composer.runOptionUnknown", "执行方式状态未知") : l("composer.runOptionUnavailable", "执行方式暂不可用")), ot = k(() => A.value.filter((d) => n.selectedSkillIds.includes(d.skillId))), ft = k(() => A.value.filter((d) => `${d.name} ${d.description ?? ""}`.toLocaleLowerCase().includes(q.value.toLocaleLowerCase()))), et = k(() => te.value.find((d) => d.optionId === n.selectedRunOptionId)), je = D(null), Gt = D(null), pt = k(() => pe(y.value.features ?? {}, "imageAttachments") || pe(y.value.features ?? {}, "documentAttachments")), Pe = k(() => pe(y.value.features ?? {}, "skillSelection")), he = k(() => pe(y.value.features ?? {}, "toolSelection")), Ue = k(() => pt.value || Pe.value || he.value), Ye = k(() => n.capabilities.find((d) => d.key === "tools.catalog")), Yt = k(() => (!n.toolsCatalogState || n.toolsCatalogState === "ready") && Se("tools.catalog")), Ht = k(() => Yt.value ? (n.tools ?? []).filter((d) => d.availability === "available") : []), ke = k(() => n.toolsCatalogState === "loading" ? l("startup.tools.loading", "正在加载工具目录…") : n.toolsCatalogState === "failed" ? l("startup.tools.failed", "工具目录读取失败") : Ye.value?.availability === "unknown" ? l("conversation.toolCatalogUnknown", "工具目录状态未知") : l("conversation.toolCatalogUnavailable", "工具目录暂不可用")), le = (d, M = null) => `${d} ${M ?? ""}`.toLocaleLowerCase().includes(h.value.trim().toLocaleLowerCase()), Ct = k(() => A.value.filter((d) => le(d.name, d.description))), Re = k(() => Ht.value.filter((d) => le(d.name, d.description))), tt = k(() => [
366
366
  { purpose: "image-input", name: l("composer.attachImage", "添加图片"), description: l("composer.imageInputDescription", "上传图片供助手分析"), capability: x.value },
367
367
  { purpose: "document-input", name: l("composer.attachDocument", "添加文档"), description: l("composer.documentInputDescription", "上传文档供助手读取"), capability: Q.value }
368
368
  ].filter((d) => d.capability)), gt = k(() => tt.value.filter((d) => le(d.name, d.description)));
@@ -371,7 +371,7 @@ const za = ["aria-label"], Ba = {
371
371
  }
372
372
  const lt = k(() => {
373
373
  const d = [];
374
- if (Pe.value && _e(n.skillCatalogState, ge.value) && d.push(je.value), he.value && _e(n.toolsCatalogState, Ye.value) && d.push(ke.value), pt.value && !tt.value.length) {
374
+ if (Pe.value && _e(n.skillCatalogState, ge.value) && d.push(Le.value), he.value && _e(n.toolsCatalogState, Ye.value) && d.push(ke.value), pt.value && !tt.value.length) {
375
375
  const M = n.capabilities.filter((w) => (w.key === "input.image" && pe(y.value.features ?? {}, "imageAttachments") || w.key === "input.document" && pe(y.value.features ?? {}, "documentAttachments")) && _e(void 0, w));
376
376
  M.length && d.push(M.some((w) => w.availability === "unknown") ? l("composer.attachmentsUnknown", "附件输入状态未知") : l("composer.attachmentsUnavailable", "附件输入暂不可用"));
377
377
  }
@@ -382,7 +382,7 @@ const za = ["aria-label"], Ba = {
382
382
  }
383
383
  function mt(d) {
384
384
  if (!ht(d)) return;
385
- (d === "image-input" ? Le.value : Gt.value)?.click();
385
+ (d === "image-input" ? je.value : Gt.value)?.click();
386
386
  }
387
387
  ce(Ue, (d) => {
388
388
  d || (o.value = !1);
@@ -602,7 +602,7 @@ const za = ["aria-label"], Ba = {
602
602
  x.value ? (t(), s("input", {
603
603
  key: 5,
604
604
  ref_key: "imageInput",
605
- ref: Le,
605
+ ref: je,
606
606
  class: "sr-only",
607
607
  "data-attachment": "image-input",
608
608
  type: "file",
@@ -898,12 +898,12 @@ const za = ["aria-label"], Ba = {
898
898
  src: B.value,
899
899
  title: p.value.name,
900
900
  sandbox: ""
901
- }, null, 8, Hi)) : v.value !== null ? (t(), s("pre", Xi, u(v.value), 1)) : (t(), s("p", ji, u(a(l)("composer.previewUnavailable", "此附件无法直接预览")), 1))
901
+ }, null, 8, Hi)) : v.value !== null ? (t(), s("pre", Xi, u(v.value), 1)) : (t(), s("p", Li, u(a(l)("composer.previewUnavailable", "此附件无法直接预览")), 1))
902
902
  ], 40, Oi)
903
903
  ], 32)) : m("", !0)
904
904
  ], 32));
905
905
  }
906
- }), Qi = /* @__PURE__ */ Oe(Li, [["__scopeId", "data-v-48c1ea69"]]), Fi = ["aria-label", "aria-expanded", "aria-controls", "title"], Ri = ["aria-label"], Ti = { class: "assistant-agent-picker__search" }, Ui = ["aria-label", "placeholder"], Gi = ["aria-label"], Yi = ["aria-selected", "data-agent-id", "onClick"], Ni = { class: "assistant-agent-picker__copy" }, Vi = {
906
+ }), Qi = /* @__PURE__ */ Oe(ji, [["__scopeId", "data-v-48c1ea69"]]), Fi = ["aria-label", "aria-expanded", "aria-controls", "title"], Ri = ["aria-label"], Ti = { class: "assistant-agent-picker__search" }, Ui = ["aria-label", "placeholder"], Gi = ["aria-label"], Yi = ["aria-selected", "data-agent-id", "onClick"], Ni = { class: "assistant-agent-picker__copy" }, Vi = {
907
907
  key: 0,
908
908
  role: "status"
909
909
  };
@@ -951,7 +951,7 @@ ${B.description ?? ""}`.toLocaleLowerCase().includes(p)) : y.agents;
951
951
  }
952
952
  const v = Array.from(F.value?.querySelectorAll('[role="option"]') ?? []);
953
953
  if (!v.length) return;
954
- const Z = v.findIndex((j) => j === p.target), ue = Z === -1 ? p.key === "ArrowDown" ? 0 : v.length - 1 : (Z + (p.key === "ArrowDown" ? 1 : -1) + v.length) % v.length, U = v[ue];
954
+ const Z = v.findIndex((L) => L === p.target), ue = Z === -1 ? p.key === "ArrowDown" ? 0 : v.length - 1 : (Z + (p.key === "ArrowDown" ? 1 : -1) + v.length) % v.length, U = v[ue];
955
955
  U?.focus(), U?.scrollIntoView?.({ block: "nearest" });
956
956
  return;
957
957
  }
@@ -1090,17 +1090,17 @@ ${B.description ?? ""}`.toLocaleLowerCase().includes(p)) : y.agents;
1090
1090
  for (const ue of B) {
1091
1091
  const U = C(ue);
1092
1092
  if (!U || typeof U.id != "string" || !U.id.trim() || Z.has(U.id) || typeof U.header != "string" || !U.header.trim() || typeof U.question != "string" || !U.question.trim() || !Array.isArray(U.options) || U.options.length < 2 || U.options.length > 3) return [];
1093
- const j = [];
1093
+ const L = [];
1094
1094
  for (const K of U.options) {
1095
1095
  const G = C(K);
1096
1096
  if (!G || typeof G.label != "string" || !G.label.trim() || typeof G.description != "string" || !G.description.trim()) return [];
1097
- j.push({ label: G.label, description: G.description });
1097
+ L.push({ label: G.label, description: G.description });
1098
1098
  }
1099
1099
  Z.add(U.id), v.push({
1100
1100
  id: U.id,
1101
1101
  header: U.header,
1102
1102
  question: U.question,
1103
- options: j,
1103
+ options: L,
1104
1104
  allowOther: U.allow_other === !0 || U.allow_other === void 0 && p?.allow_other === !0
1105
1105
  });
1106
1106
  }
@@ -1299,7 +1299,7 @@ const bo = {
1299
1299
  O.value ? (t(), s("span", bo, u(i.content), 1)) : m("", !0)
1300
1300
  ], 32));
1301
1301
  }
1302
- }), qe = /* @__PURE__ */ Oe(yo, [["__scopeId", "data-v-8552f79a"]]), wo = ["aria-label"], Ao = ["aria-label", "aria-disabled"], Io = ["aria-label"], xo = ["aria-label", "aria-pressed"], ko = ["aria-label", "aria-disabled"], Eo = ["aria-label", "aria-disabled", "aria-pressed"], Po = ["aria-label", "aria-disabled", "aria-pressed"], Co = ["aria-label", "aria-disabled"], zo = ["aria-label", "aria-disabled"], Bo = ["aria-label", "aria-disabled"], Do = ["aria-label", "data-message-branch", "aria-disabled"], Oo = { class: "assistant-message-actions__branch" }, So = ["aria-label", "data-message-branch", "aria-disabled"], Mo = ["datetime", "title"], Ho = ["onKeydown"], Xo = { class: "assistant-message-actions__edit-footer" }, jo = ["disabled"], Lo = {
1302
+ }), qe = /* @__PURE__ */ Oe(yo, [["__scopeId", "data-v-8552f79a"]]), wo = ["aria-label"], Ao = ["aria-label", "aria-disabled"], Io = ["aria-label"], xo = ["aria-label", "aria-pressed"], ko = ["aria-label", "aria-disabled"], Eo = ["aria-label", "aria-disabled", "aria-pressed"], Po = ["aria-label", "aria-disabled", "aria-pressed"], Co = ["aria-label", "aria-disabled"], zo = ["aria-label", "aria-disabled"], Bo = ["aria-label", "aria-disabled"], Do = ["aria-label", "data-message-branch", "aria-disabled"], Oo = { class: "assistant-message-actions__branch" }, So = ["aria-label", "data-message-branch", "aria-disabled"], Mo = ["datetime", "title"], Ho = ["onKeydown"], Xo = { class: "assistant-message-actions__edit-footer" }, Lo = ["disabled"], jo = {
1303
1303
  key: 1,
1304
1304
  "data-testid": "message-info",
1305
1305
  class: "assistant-message-actions__panel"
@@ -1399,7 +1399,7 @@ const bo = {
1399
1399
  const g = h.value;
1400
1400
  g && (g.style.height = "auto", g.style.height = `${Math.min(320, Math.max(80, g.scrollHeight))}px`);
1401
1401
  }
1402
- async function j() {
1402
+ async function L() {
1403
1403
  const g = F.value.trim();
1404
1404
  !g || !P("edit") || (S({ kind: "edit", content: g }), await ue());
1405
1405
  }
@@ -1714,10 +1714,10 @@ const bo = {
1714
1714
  class: "assistant-message-actions__save",
1715
1715
  "data-testid": "message-edit-save",
1716
1716
  disabled: !F.value.trim() || !P("edit"),
1717
- onClick: j
1718
- }, "保存", 8, jo)
1717
+ onClick: L
1718
+ }, "保存", 8, Lo)
1719
1719
  ])
1720
- ], 40, Ho)) : I.value === "info" ? (t(), s("section", Lo, [
1720
+ ], 40, Ho)) : I.value === "info" ? (t(), s("section", jo, [
1721
1721
  x.value.length ? (t(), s("dl", Qo, [
1722
1722
  (t(!0), s(_, null, ie(x.value, (te) => (t(), s(_, {
1723
1723
  key: te.label
@@ -1918,13 +1918,17 @@ function vl(i, O) {
1918
1918
  let lastHeight = 0;
1919
1919
  const measure = () => {
1920
1920
  pending = 0;
1921
+ if (document.fullscreenElement) return;
1921
1922
  const body = document.body;
1922
- const root = document.documentElement;
1923
- const margins = parseFloat(getComputedStyle(body).marginTop) + parseFloat(getComputedStyle(body).marginBottom);
1924
- const height = Math.ceil(Math.max(root.scrollHeight, body.scrollHeight + margins));
1925
- if (!Number.isFinite(height) || height <= innerHeight + 20) return;
1926
- const bounded = Math.max(360, Math.min(900, height));
1927
- if (bounded <= innerHeight || bounded === lastHeight) return;
1923
+ const style = getComputedStyle(body);
1924
+ const margins = parseFloat(style.marginTop) + parseFloat(style.marginBottom);
1925
+ // The root scroll height includes the iframe viewport and prevents shrinking.
1926
+ // A viewport-sized body must not add its margins/padding on every resize.
1927
+ const viewportSized = Math.abs(parseFloat(style.height) - innerHeight) < 1 && body.scrollHeight <= body.offsetHeight;
1928
+ const height = viewportSized ? innerHeight : Math.ceil(Math.max(body.offsetHeight, body.scrollHeight) + margins);
1929
+ if (!Number.isFinite(height) || height <= 0) return;
1930
+ const bounded = Math.max(80, Math.min(900, height));
1931
+ if (bounded === lastHeight) return;
1928
1932
  lastHeight = bounded;
1929
1933
  parent.postMessage({ type: 'shangshutai.embed-height', nonce, height: bounded }, '*');
1930
1934
  };
@@ -1932,13 +1936,15 @@ function vl(i, O) {
1932
1936
  const observer = new ResizeObserver(schedule);
1933
1937
  observer.observe(document.body);
1934
1938
  observer.observe(document.documentElement);
1935
- addEventListener('load', schedule);
1939
+ addEventListener('load', schedule, true);
1936
1940
  addEventListener('resize', schedule);
1941
+ addEventListener('fullscreenchange', schedule);
1937
1942
  addEventListener('pagehide', () => {
1938
1943
  observer.disconnect();
1939
1944
  cancelAnimationFrame(pending);
1940
- removeEventListener('load', schedule);
1945
+ removeEventListener('load', schedule, true);
1941
1946
  removeEventListener('resize', schedule);
1947
+ removeEventListener('fullscreenchange', schedule);
1942
1948
  }, { once: true });
1943
1949
  schedule();
1944
1950
  })();<\/script>`;
@@ -1972,8 +1978,8 @@ const fl = ["data-execution-id"], pl = { class: "execution-embed__actions" }, gl
1972
1978
  if (typeof p != "object" || p === null || Array.isArray(p)) return;
1973
1979
  const B = p;
1974
1980
  if (Object.keys(B).length !== 3 || B.type !== "shangshutai.embed-height" || B.nonce !== q || typeof B.height != "number" || !Number.isFinite(B.height) || B.height <= 0) return;
1975
- const v = Math.max(360, Math.min(900, Math.ceil(B.height)));
1976
- v > V.value + 20 && (V.value = v);
1981
+ const v = Math.max(80, Math.min(900, Math.ceil(B.height)));
1982
+ v !== V.value && (V.value = v);
1977
1983
  };
1978
1984
  window.addEventListener("message", T), S(() => window.removeEventListener("message", T));
1979
1985
  });
@@ -2034,7 +2040,7 @@ const fl = ["data-execution-id"], pl = { class: "execution-embed__actions" }, gl
2034
2040
  }, null, 12, bl)) : X.value ? (t(), s("p", yl, u(i.embed.state === "unavailable" ? "生成内容暂不可用" : "生成内容尚未提供"), 1)) : m("", !0)
2035
2041
  ], 8, fl)) : m("", !0);
2036
2042
  }
2037
- }), Al = /* @__PURE__ */ Oe(wl, [["__scopeId", "data-v-6487331c"]]), Il = {
2043
+ }), Al = /* @__PURE__ */ Oe(wl, [["__scopeId", "data-v-a763da22"]]), Il = {
2038
2044
  key: 0,
2039
2045
  class: "message-resources",
2040
2046
  "aria-label": "消息附件"
@@ -2050,7 +2056,7 @@ const fl = ["data-execution-id"], pl = { class: "execution-embed__actions" }, gl
2050
2056
  }, Hl = { key: 5 }, Xl = {
2051
2057
  key: 6,
2052
2058
  class: "message-resources__actions"
2053
- }, jl = ["onClick"], Ll = ["onClick"], Ql = ["open"], Fl = {
2059
+ }, Ll = ["onClick"], jl = ["onClick"], Ql = ["open"], Fl = {
2054
2060
  key: 0,
2055
2061
  class: "message-sources__unresolved"
2056
2062
  }, Rl = ["data-source-id", "data-citation-target"], Tl = ["href"], Ul = { key: 1 }, Gl = { key: 2 }, Yl = { key: 0 }, Nl = { key: 3 }, Vl = ["onClick"], Wl = {
@@ -2139,7 +2145,7 @@ const fl = ["data-execution-id"], pl = { class: "execution-embed__actions" }, gl
2139
2145
  }, [
2140
2146
  Y(a(en), { size: 13 }),
2141
2147
  de(u(a(I)("action.download", "下载")), 1)
2142
- ], 8, jl)) : m("", !0),
2148
+ ], 8, Ll)) : m("", !0),
2143
2149
  b() && S.access?.preview.availability === "available" ? (t(), s("button", {
2144
2150
  key: 1,
2145
2151
  type: "button",
@@ -2147,7 +2153,7 @@ const fl = ["data-execution-id"], pl = { class: "execution-embed__actions" }, gl
2147
2153
  }, [
2148
2154
  Y(a(ca), { size: 13 }),
2149
2155
  de(u(a(I)("composer.previewAsset", "预览附件")), 1)
2150
- ], 8, Ll)) : m("", !0)
2156
+ ], 8, jl)) : m("", !0)
2151
2157
  ])) : m("", !0)
2152
2158
  ], 8, xl))), 128))
2153
2159
  ])) : m("", !0),
@@ -2270,7 +2276,7 @@ const _l = ["data-role", "data-message-id", "aria-label"], $l = { class: "assist
2270
2276
  function ue() {
2271
2277
  if (v) {
2272
2278
  const U = v.calls;
2273
- p.push(v, ...Z.sort((j, K) => U.findIndex((G) => G.id === j.embed.toolCallId && G.runId === j.embed.runId) - U.findIndex((G) => G.id === K.embed.toolCallId && G.runId === K.embed.runId)));
2279
+ p.push(v, ...Z.sort((L, K) => U.findIndex((G) => G.id === L.embed.toolCallId && G.runId === L.embed.runId) - U.findIndex((G) => G.id === K.embed.toolCallId && G.runId === K.embed.runId)));
2274
2280
  }
2275
2281
  v = null, Z = [];
2276
2282
  }
@@ -2284,17 +2290,17 @@ const _l = ["data-role", "data-message-id", "aria-label"], $l = { class: "assist
2284
2290
  v?.calls.some((G) => G.id === U.embed.toolCallId && G.runId === U.runId) ? Z.push(K) : (ue(), p.push(K));
2285
2291
  continue;
2286
2292
  }
2287
- let j;
2293
+ let L;
2288
2294
  if (U.kind === "reasoning") {
2289
2295
  const K = n.reasoning?.find((G) => G.id === U.reasoningId && G.runId === U.runId && G.parentMessageId === n.message.id);
2290
2296
  if (!K || !n.reasoningAllowed) continue;
2291
- j = { key: U.key, kind: "reasoning", reasoning: K };
2297
+ L = { key: U.key, kind: "reasoning", reasoning: K };
2292
2298
  } else {
2293
2299
  const K = n.toolCalls.find((G) => G.runId === U.runId && G.id === U.toolCallId && G.parentMessageId === n.message.id);
2294
2300
  if (!K) continue;
2295
- j = { key: U.key, kind: "tool", call: K };
2301
+ L = { key: U.key, kind: "tool", call: K };
2296
2302
  }
2297
- v || (v = { key: U.key, kind: U.kind, entries: [], calls: [] }), v.entries.push(j), j.kind === "tool" && (v.calls.push(j.call), v.kind = "tool");
2303
+ v || (v = { key: U.key, kind: U.kind, entries: [], calls: [] }), v.entries.push(L), L.kind === "tool" && (v.calls.push(L.call), v.kind = "tool");
2298
2304
  }
2299
2305
  return ue(), p;
2300
2306
  }), H = k(() => [...n.diagnostics ?? [], ...n.message.role === "assistant" && !q.value.length && n.toolCalls.some((T) => T.parentMessageId === n.message.id) ? [{ key: "order", label: "显示顺序", text: "正文与执行记录的穿插位置未提供" }] : []]), S = k(() => q.value.length ? [] : n.toolCalls.filter((T) => T.parentMessageId === n.message.id));
@@ -2481,7 +2487,7 @@ const ar = ["title"], ir = /* @__PURE__ */ De({
2481
2487
  }, Mr = ["onClick"], Hr = { key: 1 }, Xr = {
2482
2488
  key: 8,
2483
2489
  class: "assistant-conversation__disclosure"
2484
- }, jr = ["disabled", "onClick"], Lr = /* @__PURE__ */ De({
2490
+ }, Lr = ["disabled", "onClick"], jr = /* @__PURE__ */ De({
2485
2491
  __name: "AssistantConversation",
2486
2492
  props: {
2487
2493
  projection: {},
@@ -2513,8 +2519,8 @@ const ar = ["title"], ir = /* @__PURE__ */ De({
2513
2519
  });
2514
2520
  function T(x) {
2515
2521
  return ["reasoning", "toolCalls", "activities"].flatMap((Q) => {
2516
- const g = Object.entries(n.projection.runStates).reverse().find(([$, ot]) => ["submitting", "running", "canceling"].includes(ot) && n.projection.runMessageIds[$] === x), te = (g ? n.projection.runExecutionFieldStatus[g[0]] : void 0) ?? n.projection.messageExecutionStatus[x], xe = (te ? [te[Q]] : Object.entries(n.projection.runExecutionFieldStatus).filter(([$]) => n.projection.runMessageIds[$] === x).map(([, $]) => $[Q])).filter(($) => $.state !== "known" && !["native_unreported", "native_unsupported"].includes($.reasonCode ?? "")), je = xe.find(($) => ["read_failed", "invalid_native_data", "permission_denied"].includes($.reasonCode ?? "")) ?? xe[0];
2517
- return je ? [{ key: Q, label: B(Q), text: p(je) }] : [];
2522
+ const g = Object.entries(n.projection.runStates).reverse().find(([$, ot]) => ["submitting", "running", "canceling"].includes(ot) && n.projection.runMessageIds[$] === x), te = (g ? n.projection.runExecutionFieldStatus[g[0]] : void 0) ?? n.projection.messageExecutionStatus[x], xe = (te ? [te[Q]] : Object.entries(n.projection.runExecutionFieldStatus).filter(([$]) => n.projection.runMessageIds[$] === x).map(([, $]) => $[Q])).filter(($) => $.state !== "known" && !["native_unreported", "native_unsupported"].includes($.reasonCode ?? "")), Le = xe.find(($) => ["read_failed", "invalid_native_data", "permission_denied"].includes($.reasonCode ?? "")) ?? xe[0];
2523
+ return Le ? [{ key: Q, label: B(Q), text: p(Le) }] : [];
2518
2524
  });
2519
2525
  }
2520
2526
  function W(x) {
@@ -2530,7 +2536,7 @@ const ar = ["title"], ir = /* @__PURE__ */ De({
2530
2536
  function U(x) {
2531
2537
  return Object.entries(n.projection.runTimings).filter(([Q]) => n.projection.runMessageIds[Q] === x);
2532
2538
  }
2533
- const j = k(() => {
2539
+ const L = k(() => {
2534
2540
  if (!n.contextFacts || typeof n.contextFacts != "object" || Array.isArray(n.contextFacts)) return null;
2535
2541
  const x = n.contextFacts.usedPercent;
2536
2542
  return typeof x == "number" && Number.isFinite(x) ? Math.round(x) : null;
@@ -2729,7 +2735,7 @@ const ar = ["title"], ir = /* @__PURE__ */ De({
2729
2735
  ])) : m("", !0)
2730
2736
  ], 8, Ar))), 128))
2731
2737
  ])) : m("", !0),
2732
- o("run.facts") && ne.value || o("context.observe") && j.value !== null ? (t(), s("details", Er, [
2738
+ o("run.facts") && ne.value || o("context.observe") && L.value !== null ? (t(), s("details", Er, [
2733
2739
  f("summary", null, [
2734
2740
  Y(a(da), {
2735
2741
  size: 15,
@@ -2748,8 +2754,8 @@ const ar = ["title"], ir = /* @__PURE__ */ De({
2748
2754
  ], 64))), 128))
2749
2755
  ])) : m("", !0)
2750
2756
  ])) : m("", !0),
2751
- o("context.observe") && j.value !== null ? (t(), s("section", zr, [
2752
- f("span", null, u(a(l)("conversation.contextUsage", "上下文使用率")) + " " + u(j.value) + "%", 1)
2757
+ o("context.observe") && L.value !== null ? (t(), s("section", zr, [
2758
+ f("span", null, u(a(l)("conversation.contextUsage", "上下文使用率")) + " " + u(L.value) + "%", 1)
2753
2759
  ])) : m("", !0)
2754
2760
  ])) : m("", !0),
2755
2761
  i.projection.interruptions.length ? (t(), s("section", Br, [
@@ -2799,7 +2805,7 @@ const ar = ["title"], ir = /* @__PURE__ */ De({
2799
2805
  type: "button",
2800
2806
  disabled: g.state !== "available",
2801
2807
  onClick: (A) => b("preview-resource", { kind: "service", serviceId: g.serviceId })
2802
- }, u(g.name), 9, jr))), 128))
2808
+ }, u(g.name), 9, Lr))), 128))
2803
2809
  ])) : m("", !0),
2804
2810
  I.value ? m("", !0) : (t(), s("button", {
2805
2811
  key: 9,
@@ -2810,7 +2816,7 @@ const ar = ["title"], ir = /* @__PURE__ */ De({
2810
2816
  }, u(a(l)("action.returnToBottom", "回到底部")), 1))
2811
2817
  ], 544));
2812
2818
  }
2813
- }), Qr = /* @__PURE__ */ Oe(Lr, [["__scopeId", "data-v-58a32373"]]), Fr = { class: "assistant-session-rail__heading" }, Rr = {
2819
+ }), Qr = /* @__PURE__ */ Oe(jr, [["__scopeId", "data-v-58a32373"]]), Fr = { class: "assistant-session-rail__heading" }, Rr = {
2814
2820
  class: "sr-only",
2815
2821
  for: "assistant-session-search"
2816
2822
  }, Tr = ["placeholder"], Ur = ["disabled", "aria-label"], Gr = ["onKeydown", "onBlur"], Yr = ["data-session-select", "aria-label", "onClick"], Nr = { class: "assistant-session-rail__title" }, Vr = {
@@ -2835,13 +2841,13 @@ const ar = ["title"], ir = /* @__PURE__ */ De({
2835
2841
  emits: ["select", "rename", "request-delete", "export", "search", "load-more"],
2836
2842
  setup(i, { emit: O }) {
2837
2843
  const y = vt(), n = i, b = O, l = Xe(), X = An(), I = D("");
2838
- ce(() => n.serverQuery, (j) => {
2839
- j !== void 0 && (I.value = j);
2844
+ ce(() => n.serverQuery, (L) => {
2845
+ L !== void 0 && (I.value = L);
2840
2846
  });
2841
2847
  const F = D(null), o = D(null), h = D(null), C = D(null), z = D(""), V = D(null), ee = D(Date.now());
2842
2848
  let ae = null;
2843
- function P(j) {
2844
- const K = new Date(j);
2849
+ function P(L) {
2850
+ const K = new Date(L);
2845
2851
  if (!Number.isFinite(K.getTime())) return null;
2846
2852
  const G = Math.max(0, ee.value - K.getTime());
2847
2853
  if (G < 6e4)
@@ -2855,17 +2861,17 @@ const ar = ["title"], ir = /* @__PURE__ */ De({
2855
2861
  };
2856
2862
  }
2857
2863
  const q = k(() => {
2858
- const j = I.value.trim().toLocaleLowerCase();
2859
- return (j && j !== (n.serverQuery ?? "").toLocaleLowerCase() ? n.sessions.filter((G) => G.title.toLocaleLowerCase().includes(j)) : n.sessions).map((G) => ({ ...G, displayTime: P(G.updatedAt) }));
2864
+ const L = I.value.trim().toLocaleLowerCase();
2865
+ return (L && L !== (n.serverQuery ?? "").toLocaleLowerCase() ? n.sessions.filter((G) => G.title.toLocaleLowerCase().includes(L)) : n.sessions).map((G) => ({ ...G, displayTime: P(G.updatedAt) }));
2860
2866
  }), H = k(() => {
2861
- const j = /* @__PURE__ */ new Map(), K = new Date(ee.value), G = new Date(K);
2867
+ const L = /* @__PURE__ */ new Map(), K = new Date(ee.value), G = new Date(K);
2862
2868
  G.setDate(G.getDate() - 1);
2863
2869
  const J = new Intl.DateTimeFormat(X.value, { month: "long" });
2864
2870
  for (const ne of q.value) {
2865
2871
  const ve = new Date(ne.updatedAt), me = ee.value - ve.getTime(), Ie = Number.isFinite(ve.getTime()) ? ve.toDateString() === K.toDateString() ? l("conversation.today", "今天") : ve.toDateString() === G.toDateString() ? l("conversation.yesterday", "昨天") : me <= 7 * 864e5 ? l("conversation.lastWeek", "过去 7 天") : me <= 30 * 864e5 ? l("conversation.lastMonth", "过去 30 天") : ve.getFullYear() === K.getFullYear() ? J.format(ve) : String(ve.getFullYear()) : l("conversation.older", "更早");
2866
- j.set(Ie, [...j.get(Ie) ?? [], ne]);
2872
+ L.set(Ie, [...L.get(Ie) ?? [], ne]);
2867
2873
  }
2868
- return [...j.entries()].map(([ne, ve]) => ({ label: ne, sessions: ve }));
2874
+ return [...L.entries()].map(([ne, ve]) => ({ label: ne, sessions: ve }));
2869
2875
  });
2870
2876
  function S() {
2871
2877
  b("search", I.value.trim());
@@ -2878,7 +2884,7 @@ const ar = ["title"], ir = /* @__PURE__ */ De({
2878
2884
  ae !== null && window.clearInterval(ae);
2879
2885
  });
2880
2886
  function T() {
2881
- return !o.value || !V.value ? [] : [...V.value.querySelectorAll("[data-session-action-owner]")].filter((j) => j.dataset.sessionActionOwner === o.value);
2887
+ return !o.value || !V.value ? [] : [...V.value.querySelectorAll("[data-session-action-owner]")].filter((L) => L.dataset.sessionActionOwner === o.value);
2882
2888
  }
2883
2889
  xt({
2884
2890
  elements: T,
@@ -2887,36 +2893,36 @@ const ar = ["title"], ir = /* @__PURE__ */ De({
2887
2893
  o.value = null;
2888
2894
  }
2889
2895
  });
2890
- const W = (j) => (!Pt(j) || pe(y.value.features ?? {}, Pt(j))) && n.capabilities.some((K) => K.key === j && K.availability === "available" && K.exposure === "enabled");
2891
- async function p(j) {
2892
- o.value = null, F.value = j.sessionId, z.value = j.title, await st(), V.value?.querySelector('[data-testid="session-title-input"]')?.focus();
2896
+ const W = (L) => (!Pt(L) || pe(y.value.features ?? {}, Pt(L))) && n.capabilities.some((K) => K.key === L && K.availability === "available" && K.exposure === "enabled");
2897
+ async function p(L) {
2898
+ o.value = null, F.value = L.sessionId, z.value = L.title, await st(), V.value?.querySelector('[data-testid="session-title-input"]')?.focus();
2893
2899
  }
2894
- function B(j) {
2895
- o.value = o.value === j ? null : j;
2900
+ function B(L) {
2901
+ o.value = o.value === L ? null : L;
2896
2902
  }
2897
- async function v(j) {
2903
+ async function v(L) {
2898
2904
  if (!h.value) {
2899
- h.value = j, C.value = null, o.value = null;
2905
+ h.value = L, C.value = null, o.value = null;
2900
2906
  try {
2901
- await navigator.clipboard.writeText(j), C.value = { sessionId: j, succeeded: !0 };
2907
+ await navigator.clipboard.writeText(L), C.value = { sessionId: L, succeeded: !0 };
2902
2908
  } catch {
2903
- C.value = { sessionId: j, succeeded: !1 };
2909
+ C.value = { sessionId: L, succeeded: !1 };
2904
2910
  } finally {
2905
2911
  h.value = null;
2906
2912
  }
2907
2913
  }
2908
2914
  }
2909
- function Z(j) {
2915
+ function Z(L) {
2910
2916
  const K = z.value.trim();
2911
- K && b("rename", { sessionId: j, title: K }), F.value = null;
2917
+ K && b("rename", { sessionId: L, title: K }), F.value = null;
2912
2918
  }
2913
- function ue(j) {
2914
- return j === "active" ? l("state.running", "运行中") : j === "interrupted" ? l("state.waiting", "等待操作") : j === "idle" ? l("state.completed", "已完成") : j === "empty" ? l("state.empty", "新对话") : l("state.unknown", "状态未知");
2919
+ function ue(L) {
2920
+ return L === "active" ? l("state.running", "运行中") : L === "interrupted" ? l("state.waiting", "等待操作") : L === "idle" ? l("state.completed", "已完成") : L === "empty" ? l("state.empty", "新对话") : l("state.unknown", "状态未知");
2915
2921
  }
2916
- function U(j, K) {
2917
- return [j.title, ue(j.state), K?.label].filter(Boolean).join(",");
2922
+ function U(L, K) {
2923
+ return [L.title, ue(L.state), K?.label].filter(Boolean).join(",");
2918
2924
  }
2919
- return (j, K) => (t(), s("aside", {
2925
+ return (L, K) => (t(), s("aside", {
2920
2926
  ref_key: "rail",
2921
2927
  ref: V,
2922
2928
  class: "assistant-session-rail",
@@ -3173,7 +3179,7 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
3173
3179
  }, Mu = { key: 4 }, Hu = {
3174
3180
  key: 5,
3175
3181
  class: "assistant-window__focus-label"
3176
- }, Xu = ["disabled"], ju = ["disabled"], Lu = {
3182
+ }, Xu = ["disabled"], Lu = ["disabled"], ju = {
3177
3183
  key: 7,
3178
3184
  class: "assistant-window__context-confirmation",
3179
3185
  "data-testid": "context-compact-confirmation"
@@ -3248,15 +3254,15 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
3248
3254
  const r = e.sessions !== Z || e.sessionsNextCursor !== ue || e.selectedAgentId !== v.value.selectedAgentId;
3249
3255
  Z = e.sessions, ue = e.sessionsNextCursor, v.value = { ...e, ...r ? {} : { sessions: v.value.sessions, sessionsNextCursor: v.value.sessionsNextCursor } }, e.resources.assets.status === "ready" && e.selectedSessionId === h.value.sessionId && JSON.stringify(e.assets) !== JSON.stringify(h.value.assets) && (h.value = Be(h.value, { type: "assets-refreshed", assets: e.assets }));
3250
3256
  }
3251
- const j = D(Ia(localStorage, n.accountScope, Vt())), K = (e, r) => e && /^\d+(?:\.\d+)?px$/.test(e) ? Number.parseFloat(e) : r;
3257
+ const L = D(Ia(localStorage, n.accountScope, Vt())), K = (e, r) => e && /^\d+(?:\.\d+)?px$/.test(e) ? Number.parseFloat(e) : r;
3252
3258
  ce(() => X.value.theme, (e) => {
3253
3259
  const r = e?.width ?? e?.variables?.["--sst-window-width"], c = e?.height ?? e?.variables?.["--sst-window-height"];
3254
- !r && !c || (j.value = mn({
3255
- ...j.value,
3260
+ !r && !c || (L.value = mn({
3261
+ ...L.value,
3256
3262
  popup: {
3257
- ...j.value.popup,
3258
- width: K(r, j.value.popup.width),
3259
- height: K(c, j.value.popup.height)
3263
+ ...L.value.popup,
3264
+ width: K(r, L.value.popup.width),
3265
+ height: K(c, L.value.popup.height)
3260
3266
  }
3261
3267
  }, Vt()));
3262
3268
  }, { immediate: !0, deep: !0, flush: "sync" });
@@ -3268,7 +3274,7 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
3268
3274
  if (!e || e.role !== "assistant" || e.streaming) return "";
3269
3275
  const r = h.value.messageDetails.find((c) => c.messageId === e.id);
3270
3276
  return r?.actions.some((c) => c.kind === "follow-ups" && c.availability === "available") ? r.followUps[0] ?? "" : "";
3271
- }), xe = D([]), je = D([]), $ = D(0);
3277
+ }), xe = D([]), Le = D([]), $ = D(0);
3272
3278
  mo([
3273
3279
  () => n.open,
3274
3280
  () => n.accountScope,
@@ -3279,11 +3285,11 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
3279
3285
  ]);
3280
3286
  const ot = D(0), ft = Je([]);
3281
3287
  let et = null;
3282
- const Le = xa({
3288
+ const je = xa({
3283
3289
  concurrency: 2,
3284
3290
  limit: () => v.value.limits?.attachmentsPerRun ?? 8,
3285
3291
  upload: async (e, r, c) => {
3286
- const E = $.value, L = n.accountScope, R = v.value.selectedAgentId;
3292
+ const E = $.value, j = n.accountScope, R = v.value.selectedAgentId;
3287
3293
  if (!et || et.version !== E) {
3288
3294
  const re = fn().finally(() => {
3289
3295
  et?.request === re && (et = null);
@@ -3291,8 +3297,8 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
3291
3297
  et = { version: E, request: re };
3292
3298
  }
3293
3299
  const N = await et.request;
3294
- if (!N || E !== $.value || L !== n.accountScope || R !== v.value.selectedAgentId) throw new Error(o("composer.selectionExpired", "附件选择已失效"));
3295
- const se = Lt(r === "image-input" ? "input.image" : "input.document");
3300
+ if (!N || E !== $.value || j !== n.accountScope || R !== v.value.selectedAgentId) throw new Error(o("composer.selectionExpired", "附件选择已失效"));
3301
+ const se = jt(r === "image-input" ? "input.image" : "input.document");
3296
3302
  if (!se || se.availability !== "available" || se.exposure !== "enabled") throw new Error(o("composer.inputUnavailable", "附件输入暂不可用"));
3297
3303
  return n.client.uploadAsset(N, e, r, se, c);
3298
3304
  },
@@ -3301,11 +3307,11 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
3301
3307
  }
3302
3308
  }), Gt = k(() => ft.value.map((e) => ({ assetId: e.result?.assetId ?? e.id, name: e.result?.name ?? e.file.name, purpose: e.purpose, mediaType: e.result?.mediaType ?? e.file.type, byteLength: e.result?.byteLength ?? e.file.size, file: e.file, uploadState: e.state, uploadError: e.error })));
3303
3309
  ce(() => X.value.features, (e) => {
3304
- n.client.setFeaturePolicy?.(e ?? {}), B.applyFeaturePolicy(), (!I("imageAttachments") || !I("documentAttachments")) && Le.reset(), I("voice") || ct(), We();
3310
+ n.client.setFeaturePolicy?.(e ?? {}), B.applyFeaturePolicy(), (!I("imageAttachments") || !I("documentAttachments")) && je.reset(), I("voice") || ct(), We();
3305
3311
  }, { deep: !0, flush: "sync" }), ce($, () => {
3306
- Yt(), et = null, Le.reset();
3312
+ Yt(), et = null, je.reset();
3307
3313
  }, { flush: "sync" }), ce(() => n.accountScope, () => {
3308
- $.value++, be?.abort(), be = null, Le.reset(), B.terminate("account-change"), h.value = Qt(n.entryPath);
3314
+ $.value++, be?.abort(), be = null, je.reset(), B.terminate("account-change"), h.value = Qt(n.entryPath);
3309
3315
  }, { flush: "sync" });
3310
3316
  const pt = D(0), Pe = D(!1), he = D(!1), Ue = D(null);
3311
3317
  let Ye = null;
@@ -3328,15 +3334,15 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
3328
3334
  return e?.availability === "available" && e.exposure === "enabled" && "supportsFocus" in e.constraints && e.constraints.supportsFocus;
3329
3335
  });
3330
3336
  ce([() => h.value.sessionId, () => v.value.capabilities.some((e) => e.key === "preview.http" && e.availability === "available" && e.exposure === "enabled"), () => Object.entries(h.value.runStates).filter(([, e]) => ["succeeded", "failed", "canceled"].includes(e)).map(([e, r]) => `${e}:${r}`).join(",")], async ([e, r], c, E) => {
3331
- let L = !0;
3337
+ let j = !0;
3332
3338
  if (E(() => {
3333
- L = !1;
3339
+ j = !1;
3334
3340
  }), g.value = [], !(!e || !r))
3335
3341
  try {
3336
3342
  const R = await n.client.listHttpServices(e);
3337
- L && (g.value = R.items);
3343
+ j && (g.value = R.items);
3338
3344
  } catch (R) {
3339
- L && (le.value = R instanceof Error ? R.message : o("message.previewFailed", "预览暂时无法打开"));
3345
+ j && (le.value = R instanceof Error ? R.message : o("message.previewFailed", "预览暂时无法打开"));
3340
3346
  }
3341
3347
  });
3342
3348
  async function Nt(e) {
@@ -3356,10 +3362,10 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
3356
3362
  return;
3357
3363
  }
3358
3364
  if (E.preview.state !== "available" || !E.bootstrap) throw new Error(o("composer.previewUnavailable", "此附件无法直接预览"));
3359
- const L = new URL(E.bootstrap.url);
3360
- if (L.origin !== new URL(E.preview.origin).origin || L.username || L.password || !["http:", "https:"].includes(L.protocol)) throw new Error(o("message.previewFailed", "预览暂时无法打开"));
3365
+ const j = new URL(E.bootstrap.url);
3366
+ if (j.origin !== new URL(E.preview.origin).origin || j.username || j.password || !["http:", "https:"].includes(j.protocol)) throw new Error(o("message.previewFailed", "预览暂时无法打开"));
3361
3367
  const R = c.document.createElement("form");
3362
- R.method = "POST", R.action = L.toString();
3368
+ R.method = "POST", R.action = j.toString();
3363
3369
  const N = c.document.createElement("input");
3364
3370
  N.type = "hidden", N.name = "ticket", N.value = E.bootstrap.ticket, R.append(N), c.document.body.append(R), R.submit();
3365
3371
  } catch (E) {
@@ -3379,10 +3385,10 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
3379
3385
  const e = tn[v.value.phase];
3380
3386
  return o(e.key, e.fallback);
3381
3387
  }), Bt = k(() => v.value.error ? v.value.error.businessMessage !== void 0 ? v.value.error.businessMessage : v.value.phase === "blocked" ? o("error.accessUnavailable", "当前账号暂时无法使用助手,请联系管理员。") : o("error.connectionFailed", "助手连接失败,请稍后重试。") : null), yt = { minWidth: "44px", minHeight: "44px" }, sn = { width: "44px", height: "44px", minWidth: "44px", minHeight: "44px" }, an = k(() => ({
3382
- left: `${j.value.popup.x}px`,
3383
- top: `${j.value.popup.y}px`,
3384
- "--sst-window-width": `${j.value.popup.width}px`,
3385
- "--sst-window-height": `${j.value.popup.height}px`,
3388
+ left: `${L.value.popup.x}px`,
3389
+ top: `${L.value.popup.y}px`,
3390
+ "--sst-window-width": `${L.value.popup.width}px`,
3391
+ "--sst-window-height": `${L.value.popup.height}px`,
3386
3392
  width: "var(--sst-window-width)",
3387
3393
  height: "var(--sst-window-height)"
3388
3394
  })), d = k(() => typeof C.value == "object" && C.value !== null && !Array.isArray(C.value) ? C.value : null), M = k(() => !!V.value && ["submitting", "running", "unknown"].includes(V.value.state)), w = k(() => P.value || S.value || he.value || !!v.value.activeRunId || M.value), fe = k(() => S.value || P.value || M.value), ut = k(() => d.value?.limitKind === "compaction-threshold" ? o("conversation.contextCompactionThreshold", "压缩阈值") : d.value?.limitKind === "safe-input-capacity" ? o("conversation.contextSafeInputLimit", "安全输入上限") : o("conversation.contextLimitUnknown", "上限口径未知")), wt = k(() => d.value?.limitKind === "compaction-threshold" ? o("conversation.contextThresholdUsage", "占压缩阈值") : d.value?.limitKind === "safe-input-capacity" ? o("conversation.contextCapacityUsage", "占安全输入上限") : o("conversation.contextUsage", "上下文使用率")), ye = k(() => d.value?.compactions ?? []), Ve = k(() => d.value?.fieldStatus.inputTokens === "unverified" && ye.value.some((e) => e.status === "completed")), Ge = k(() => V.value && !ye.value.some((e) => e.compactionId === V.value?.compactionId) ? V.value : null), Xt = k(() => {
@@ -3417,7 +3423,7 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
3417
3423
  return { width: globalThis.innerWidth || 1280, height: globalThis.innerHeight || 800 };
3418
3424
  }
3419
3425
  function kn() {
3420
- j.value = mn(j.value, Vt());
3426
+ L.value = mn(L.value, Vt());
3421
3427
  }
3422
3428
  function We() {
3423
3429
  U(B.state);
@@ -3484,7 +3490,7 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
3484
3490
  try {
3485
3491
  const e = await B.reopenPopup();
3486
3492
  if (We(), e) {
3487
- await jt(e), le.value = null;
3493
+ await Lt(e), le.value = null;
3488
3494
  return;
3489
3495
  }
3490
3496
  v.value.error?.code === "AUTHENTICATION_REQUIRED" && await Wt();
@@ -3499,16 +3505,16 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
3499
3505
  async function os() {
3500
3506
  const e = h.value, r = e.sessionId;
3501
3507
  if (!r || v.value.phase !== "ready" || be) return;
3502
- const c = $.value, E = n.accountScope, L = () => n.open && B.state.phase !== "disposed" && E === n.accountScope && c === $.value && h.value === e && !he.value && !Pe.value && !Ie && !nt;
3503
- if (L())
3508
+ const c = $.value, E = n.accountScope, j = () => n.open && B.state.phase !== "disposed" && E === n.accountScope && c === $.value && h.value === e && !he.value && !Pe.value && !Ie && !nt;
3509
+ if (j())
3504
3510
  try {
3505
3511
  const R = await n.client.getSession(r);
3506
- if (!L()) return;
3512
+ if (!j()) return;
3507
3513
  const N = [...R.runs].reverse().find((Ae) => ["submitting", "running", "canceling"].includes(Ae.state));
3508
3514
  let se = Be(e, { type: "session-snapshot", snapshot: R });
3509
3515
  if (Ee("chat.history") && !N) {
3510
3516
  const Ae = await n.client.getMessages(r);
3511
- if (!L()) return;
3517
+ if (!j()) return;
3512
3518
  se = Be(se, { type: "messages-refreshed", page: Ae });
3513
3519
  }
3514
3520
  JSON.stringify(se) === JSON.stringify(e) && (se = e);
@@ -3516,7 +3522,7 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
3516
3522
  if (h.value = se, C.value = R.contextObservation ?? R.state.contextObservation, await re, h.value !== se || c !== $.value || E !== n.accountScope) return;
3517
3523
  v.value = { ...B.state, sessions: v.value.sessions, sessionsNextCursor: v.value.sessionsNextCursor }, le.value = null, N && Xn(R, N.runId);
3518
3524
  } catch (R) {
3519
- if (!L()) return;
3525
+ if (!j()) return;
3520
3526
  if (R?.code === "AUTHENTICATION_REQUIRED") {
3521
3527
  await Wt();
3522
3528
  return;
@@ -3550,9 +3556,9 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
3550
3556
  try {
3551
3557
  const c = V.value;
3552
3558
  if (c && ["submitting", "running", "unknown"].includes(c.state)) {
3553
- const L = await n.client.getCompaction(e, c.compactionId);
3559
+ const j = await n.client.getCompaction(e, c.compactionId);
3554
3560
  if (!r()) return;
3555
- V.value = L, ae.value = L.state === "completed" ? e : null;
3561
+ V.value = j, ae.value = j.state === "completed" ? e : null;
3556
3562
  }
3557
3563
  const E = await n.client.observeContext(e);
3558
3564
  r() && (C.value = E);
@@ -3573,14 +3579,14 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
3573
3579
  let c = !1;
3574
3580
  try {
3575
3581
  const E = bt.value ? q.value.trim() : "";
3576
- let L = await n.client.compactContext(e, { commandId: crypto.randomUUID(), ...E ? { focus: E } : {} });
3582
+ let j = await n.client.compactContext(e, { commandId: crypto.randomUUID(), ...E ? { focus: E } : {} });
3577
3583
  if (!r()) return;
3578
- V.value = L;
3579
- for (let R = 0; ["submitting", "running"].includes(L.state) && R < 20; R += 1) {
3580
- if (await new Promise((N) => setTimeout(N, 250)), !r() || (L = await n.client.getCompaction(e, L.compactionId), !r())) return;
3581
- V.value = L;
3584
+ V.value = j;
3585
+ for (let R = 0; ["submitting", "running"].includes(j.state) && R < 20; R += 1) {
3586
+ if (await new Promise((N) => setTimeout(N, 250)), !r() || (j = await n.client.getCompaction(e, j.compactionId), !r())) return;
3587
+ V.value = j;
3582
3588
  }
3583
- if (c = L.state === "completed", ae.value = c ? e : null, Ee("context.observe")) {
3589
+ if (c = j.state === "completed", ae.value = c ? e : null, Ee("context.observe")) {
3584
3590
  const R = await n.client.observeContext(e);
3585
3591
  r() && (C.value = R);
3586
3592
  }
@@ -3638,8 +3644,8 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
3638
3644
  "provider-overflow": ["conversation.compactionProviderOverflow", "自动压缩(供应商上下文超限)"],
3639
3645
  "fallback-capacity": ["conversation.compactionFallbackCapacity", "自动压缩(备用容量)"],
3640
3646
  unknown: ["conversation.compactionTriggerUnknown", "上下文压缩"]
3641
- }, [E, L] = c[e];
3642
- return o(E, L);
3647
+ }, [E, j] = c[e];
3648
+ return o(E, j);
3643
3649
  }
3644
3650
  function Sn(e) {
3645
3651
  return e === "readable" ? o("conversation.compactionSummaryReadable", "原生摘要可读") : e === "opaque" ? o("conversation.compactionSummaryOpaque", "原生摘要不可读") : e === "unavailable" ? o("conversation.compactionSummaryUnavailable", "原生摘要未提供") : o("conversation.compactionSummaryUnknown", "摘要可读状态未知");
@@ -3653,16 +3659,16 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
3653
3659
  await Mn("unmount");
3654
3660
  }
3655
3661
  async function Mn(e) {
3656
- $.value += 1, Le.reset(), be?.abort(), be = null, await B.terminate(e), We();
3662
+ $.value += 1, je.reset(), be?.abort(), be = null, await B.terminate(e), We();
3657
3663
  }
3658
3664
  function cn(e) {
3659
- j.value = mn(e, Vt()), ka(localStorage, n.accountScope, j.value);
3665
+ L.value = mn(e, Vt()), ka(localStorage, n.accountScope, L.value);
3660
3666
  }
3661
3667
  function ps(e) {
3662
- e.target.closest("button, input, select, textarea, [data-drag-control]") || (Me.value = { x: e.clientX, y: e.clientY, layout: xn(j.value) }, window.addEventListener("pointermove", qt), window.addEventListener("pointerup", dn, { once: !0 }));
3668
+ e.target.closest("button, input, select, textarea, [data-drag-control]") || (Me.value = { x: e.clientX, y: e.clientY, layout: xn(L.value) }, window.addEventListener("pointermove", qt), window.addEventListener("pointerup", dn, { once: !0 }));
3663
3669
  }
3664
3670
  function gs(e) {
3665
- Te.value = { x: e.clientX, y: e.clientY, layout: xn(j.value) }, window.addEventListener("pointermove", qt), window.addEventListener("pointerup", dn, { once: !0 });
3671
+ Te.value = { x: e.clientX, y: e.clientY, layout: xn(L.value) }, window.addEventListener("pointermove", qt), window.addEventListener("pointerup", dn, { once: !0 });
3666
3672
  }
3667
3673
  function qt(e) {
3668
3674
  Me.value ? cn({
@@ -3686,13 +3692,13 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
3686
3692
  }
3687
3693
  function ms(e) {
3688
3694
  const r = e.shiftKey ? 32 : 8;
3689
- let c = j.value.popup.width, E = j.value.popup.height;
3695
+ let c = L.value.popup.width, E = L.value.popup.height;
3690
3696
  if (e.key === "ArrowLeft") c -= r;
3691
3697
  else if (e.key === "ArrowRight") c += r;
3692
3698
  else if (e.key === "ArrowUp") E -= r;
3693
3699
  else if (e.key === "ArrowDown") E += r;
3694
3700
  else return;
3695
- e.preventDefault(), cn({ ...j.value, popup: { ...j.value.popup, width: c, height: E } });
3701
+ e.preventDefault(), cn({ ...L.value, popup: { ...L.value.popup, width: c, height: E } });
3696
3702
  }
3697
3703
  function Hn() {
3698
3704
  we.value = !1, B.closePopup(), b("close");
@@ -3712,9 +3718,9 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
3712
3718
  async function Jt(e, r) {
3713
3719
  const c = v.value.selectedAgentId, E = r ? v.value.sessionsNextCursor : null;
3714
3720
  if (!c || ne.value && me === c || r && !E) return;
3715
- const L = ++ve, R = n.accountScope;
3721
+ const j = ++ve, R = n.accountScope;
3716
3722
  me = c, ne.value = !0;
3717
- const N = () => L === ve && n.accountScope === R && v.value.selectedAgentId === c;
3723
+ const N = () => j === ve && n.accountScope === R && v.value.selectedAgentId === c;
3718
3724
  try {
3719
3725
  const se = await n.client.listSessions({ agentId: c, ...e ? { query: e } : {}, ...E ? { cursor: E } : {} });
3720
3726
  if (!N()) return;
@@ -3728,7 +3734,7 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
3728
3734
  } catch (se) {
3729
3735
  N() && (le.value = se instanceof Error ? se.message : o("error.sessionsFailed", "会话目录读取失败,请重试。"));
3730
3736
  } finally {
3731
- L === ve && (ne.value = !1, me = null);
3737
+ j === ve && (ne.value = !1, me = null);
3732
3738
  }
3733
3739
  }
3734
3740
  async function ws(e) {
@@ -3750,11 +3756,11 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
3750
3756
  ct();
3751
3757
  const c = ++$.value;
3752
3758
  be?.abort(), be = null;
3753
- const E = v.value.selectedAgentId, L = v.value.sessions, R = v.value.sessionsNextCursor, N = await B.openSession(e);
3754
- if (c !== $.value || (We(), !N) || (N.session.agentId === E ? v.value = { ...v.value, sessions: L, sessionsNextCursor: R } : (J.value = "", await Jt("", !1)), c !== $.value)) return;
3759
+ const E = v.value.selectedAgentId, j = v.value.sessions, R = v.value.sessionsNextCursor, N = await B.openSession(e);
3760
+ if (c !== $.value || (We(), !N) || (N.session.agentId === E ? v.value = { ...v.value, sessions: j, sessionsNextCursor: R } : (J.value = "", await Jt("", !1)), c !== $.value)) return;
3755
3761
  xe.value = [], $.value += 1, z.value = N;
3756
3762
  const se = $.value;
3757
- if (await jt(N), se !== $.value) return;
3763
+ if (await Lt(N), se !== $.value) return;
3758
3764
  le.value = null;
3759
3765
  } finally {
3760
3766
  Ie === r && (Ie = null);
@@ -3763,7 +3769,7 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
3763
3769
  function Ee(e) {
3764
3770
  const r = Pt(e);
3765
3771
  if (r && !I(r)) return !1;
3766
- const c = Lt(e);
3772
+ const c = jt(e);
3767
3773
  return c?.availability === "available" && c.exposure === "enabled";
3768
3774
  }
3769
3775
  function As(e) {
@@ -3771,24 +3777,24 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
3771
3777
  return r && ["submitting", "running", "interrupted", "canceling", "unknown"].includes(r.state) ? r.runId : null;
3772
3778
  }
3773
3779
  async function Is() {
3774
- z.value && await jt(z.value);
3780
+ z.value && await Lt(z.value);
3775
3781
  }
3776
- async function jt(e) {
3782
+ async function Lt(e) {
3777
3783
  be?.abort(), be = null;
3778
3784
  const r = $.value, c = B.synchronizeSession(e);
3779
3785
  if (v.value = { ...B.state, sessions: v.value.sessions, sessionsNextCursor: v.value.sessionsNextCursor }, await c, z.value !== e || r !== $.value || h.value.sessionId !== e.session.sessionId) return;
3780
3786
  v.value = { ...B.state, sessions: v.value.sessions, sessionsNextCursor: v.value.sessionsNextCursor }, h.value = Be(h.value, { type: "session-snapshot", snapshot: e }), C.value = e.contextObservation ?? e.state.contextObservation;
3781
- const E = [...e.runs].reverse().find((L) => ["submitting", "running", "canceling"].includes(L.state));
3787
+ const E = [...e.runs].reverse().find((j) => ["submitting", "running", "canceling"].includes(j.state));
3782
3788
  if (Ee("chat.history") && !E) {
3783
- const L = await n.client.getMessages(e.session.sessionId);
3789
+ const j = await n.client.getMessages(e.session.sessionId);
3784
3790
  if (z.value !== e || h.value.sessionId !== e.session.sessionId || r !== $.value) return;
3785
- h.value = Be(h.value, { type: "messages-refreshed", page: L });
3791
+ h.value = Be(h.value, { type: "messages-refreshed", page: j });
3786
3792
  }
3787
3793
  E && Xn(e, E.runId);
3788
3794
  }
3789
3795
  async function Xn(e, r) {
3790
- const c = $.value, E = n.accountScope, L = e.cursors.find((re) => re.runId === r)?.after, R = e.runs.find((re) => re.runId === r)?.cursor;
3791
- if (!L || L !== R) {
3796
+ const c = $.value, E = n.accountScope, j = e.cursors.find((re) => re.runId === r)?.after, R = e.runs.find((re) => re.runId === r)?.cursor;
3797
+ if (!j || j !== R) {
3792
3798
  le.value = o("error.resumeCursorMissing", "恢复位置未确认,请刷新后重试。");
3793
3799
  return;
3794
3800
  }
@@ -3796,7 +3802,7 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
3796
3802
  const N = new AbortController();
3797
3803
  be = N;
3798
3804
  const se = await n.client.observeRunEvents(r, e.session.sessionId, {
3799
- after: L,
3805
+ after: j,
3800
3806
  signal: N.signal,
3801
3807
  onFrame: (re) => {
3802
3808
  be === N && !N.signal.aborted && c === $.value && E === n.accountScope && h.value.sessionId === e.session.sessionId && Zt(r, re);
@@ -3809,7 +3815,7 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
3809
3815
  try {
3810
3816
  const re = await n.client.getSession(e.session.sessionId);
3811
3817
  if (c !== $.value || E !== n.accountScope || h.value.sessionId !== e.session.sessionId) return;
3812
- z.value = re, await jt(re);
3818
+ z.value = re, await Lt(re);
3813
3819
  return;
3814
3820
  } catch {
3815
3821
  }
@@ -3817,14 +3823,14 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
3817
3823
  }
3818
3824
  }
3819
3825
  async function At(e) {
3820
- const r = $.value, [c, E, L, R] = await Promise.all([
3826
+ const r = $.value, [c, E, j, R] = await Promise.all([
3821
3827
  n.client.getSession(e),
3822
3828
  n.client.listSessions({ ...v.value.selectedAgentId ? { agentId: v.value.selectedAgentId } : {}, ...J.value ? { query: J.value } : {} }),
3823
3829
  Ee("asset.download") ? n.client.listAssets(e) : Promise.resolve(null),
3824
3830
  Ee("context.observe") ? n.client.observeContext(e) : Promise.resolve(null)
3825
3831
  ]);
3826
- if (h.value.sessionId !== e || r !== $.value || (z.value = c, await jt(c), h.value.sessionId !== e || r !== $.value)) return;
3827
- L && (h.value = Be(h.value, { type: "assets-refreshed", assets: L.items })), C.value = R ?? c.contextObservation ?? c.state.contextObservation;
3832
+ if (h.value.sessionId !== e || r !== $.value || (z.value = c, await Lt(c), h.value.sessionId !== e || r !== $.value)) return;
3833
+ j && (h.value = Be(h.value, { type: "assets-refreshed", assets: j.items })), C.value = R ?? c.contextObservation ?? c.state.contextObservation;
3828
3834
  const N = v.value.sessions.find((re) => re.sessionId === c.session.sessionId) ?? c.session, se = J.value || E.items.some((re) => re.sessionId === c.session.sessionId) ? E.items : [N, ...E.items];
3829
3835
  v.value = {
3830
3836
  ...v.value,
@@ -3833,7 +3839,7 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
3833
3839
  selectedSessionId: c.session.sessionId,
3834
3840
  selectedAgentId: c.session.agentId,
3835
3841
  activeRunId: As(c),
3836
- assets: L?.items ?? c.state.assets
3842
+ assets: j?.items ?? c.state.assets
3837
3843
  };
3838
3844
  }
3839
3845
  async function xs(e) {
@@ -3862,12 +3868,12 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
3862
3868
  }
3863
3869
  const c = await n.client.listSessions({ ...v.value.selectedAgentId ? { agentId: v.value.selectedAgentId } : {}, ...J.value ? { query: J.value } : {} });
3864
3870
  v.value = { ...v.value, sessions: c.items, sessionsNextCursor: c.nextCursor };
3865
- const E = c.items.reduce((L, R) => !L || R.updatedAt > L.updatedAt ? R : L, null);
3871
+ const E = c.items.reduce((j, R) => !j || R.updatedAt > j.updatedAt ? R : j, null);
3866
3872
  if (E) {
3867
3873
  await vn(E.sessionId);
3868
3874
  return;
3869
3875
  }
3870
- $.value += 1, Le.reset(), z.value = null, h.value = Qt(n.entryPath), C.value = null, v.value = { ...v.value, selectedSessionId: null, activeRunId: null, assets: [] };
3876
+ $.value += 1, je.reset(), z.value = null, h.value = Qt(n.entryPath), C.value = null, v.value = { ...v.value, selectedSessionId: null, activeRunId: null, assets: [] };
3871
3877
  } catch (r) {
3872
3878
  le.value = r instanceof Error ? r.message : o("error.sessionDeleteUnknown", "删除结果暂时无法确认,请刷新会话列表。");
3873
3879
  } finally {
@@ -3885,13 +3891,13 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
3885
3891
  function Cs(e) {
3886
3892
  B.selectRunOption(e), We();
3887
3893
  }
3888
- function Lt(e) {
3894
+ function jt(e) {
3889
3895
  return v.value.capabilities.find((r) => r.key === e);
3890
3896
  }
3891
3897
  function Zt(e, r) {
3892
- r.event.type === "RUN_ERROR" && (le.value = r.event.code === "RUNTIME_NOT_ACCEPTED" ? o("error.runNotAccepted", "助手暂时未接受本次请求,请稍后重试。") : o("error.runFailed", "助手未能完成本次请求,请重试。")), h.value = Be(h.value, { type: "stream-event", runId: e, frame: r }), (r.event.type === "RUN_STARTED" || r.event.type === "RUN_FINISHED" || r.event.type === "RUN_ERROR") && jn(e);
3898
+ r.event.type === "RUN_ERROR" && (le.value = r.event.code === "RUNTIME_NOT_ACCEPTED" ? o("error.runNotAccepted", "助手暂时未接受本次请求,请稍后重试。") : o("error.runFailed", "助手未能完成本次请求,请重试。")), h.value = Be(h.value, { type: "stream-event", runId: e, frame: r }), (r.event.type === "RUN_STARTED" || r.event.type === "RUN_FINISHED" || r.event.type === "RUN_ERROR") && Ln(e);
3893
3899
  }
3894
- async function jn(e) {
3900
+ async function Ln(e) {
3895
3901
  const r = $.value, c = n.accountScope;
3896
3902
  if (!rt.has(e)) {
3897
3903
  rt.add(e);
@@ -3917,7 +3923,7 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
3917
3923
  }
3918
3924
  async function zs(e) {
3919
3925
  if (!v.value.submissionReady || !Ee("chat.stream") || Ie || he.value || Pe.value || ot.value) return;
3920
- const r = $.value, c = n.accountScope, E = () => r === $.value && c === n.accountScope, L = te.value, R = [...xe.value], N = p.value.phase === "completed" ? Ne : null;
3926
+ const r = $.value, c = n.accountScope, E = () => r === $.value && c === n.accountScope, j = te.value, R = [...xe.value], N = p.value.phase === "completed" ? Ne : null;
3921
3927
  Pe.value = !0, le.value = null;
3922
3928
  let se;
3923
3929
  try {
@@ -3956,10 +3962,10 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
3956
3962
  ke(He) && Zt(re, Ke);
3957
3963
  }, He.controller.signal, () => {
3958
3964
  if (!ke(He)) return;
3959
- Ce = !0, jn(re), te.value === L && (te.value = ""), N && Ne === N && (Ne = null, p.value = { phase: "idle", elapsedSeconds: 0, transcript: "", energy: 0, error: null });
3965
+ Ce = !0, Ln(re), te.value === j && (te.value = ""), N && Ne === N && (Ne = null, p.value = { phase: "idle", elapsedSeconds: 0, transcript: "", energy: 0, error: null });
3960
3966
  const Ke = new Set(R.map((It) => It.assetId));
3961
3967
  xe.value = xe.value.filter((It) => !Ke.has(It.assetId));
3962
- for (const It of Le.items) It.result && Ke.has(It.result.assetId) && Le.remove(It.id);
3968
+ for (const It of je.items) It.result && Ke.has(It.result.assetId) && je.remove(It.id);
3963
3969
  Pe.value = !1, pt.value += 1;
3964
3970
  });
3965
3971
  if (!ke(He) || (h.value = Be(h.value, {
@@ -4006,10 +4012,10 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
4006
4012
  }
4007
4013
  le.value = null;
4008
4014
  try {
4009
- const E = c === "select" && typeof e.action.branchMessageId == "string" ? e.action.branchMessageId : e.messageId, L = c === "select" ? { kind: "select" } : e.action, R = await n.client.actOnMessage(r, E, {
4015
+ const E = c === "select" && typeof e.action.branchMessageId == "string" ? e.action.branchMessageId : e.messageId, j = c === "select" ? { kind: "select" } : e.action, R = await n.client.actOnMessage(r, E, {
4010
4016
  commandId: crypto.randomUUID(),
4011
4017
  revision: e.revision,
4012
- action: L
4018
+ action: j
4013
4019
  });
4014
4020
  if (R.state !== "completed") {
4015
4021
  le.value = o("error.messageOutcomeUnknown", "操作结果暂时无法确认,请刷新消息状态;不要重复提交。");
@@ -4037,13 +4043,13 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
4037
4043
  }
4038
4044
  async function Os(e, r, c, E) {
4039
4045
  if (he.value) return;
4040
- const L = crypto.randomUUID();
4041
- he.value = !0, Ue.value = L;
4042
- const R = Ht(e, L);
4046
+ const j = crypto.randomUUID();
4047
+ he.value = !0, Ue.value = j;
4048
+ const R = Ht(e, j);
4043
4049
  try {
4044
4050
  const N = await n.client.startRun({
4045
4051
  threadId: e,
4046
- runId: L,
4052
+ runId: j,
4047
4053
  messages: [],
4048
4054
  tools: [],
4049
4055
  context: [],
@@ -4053,10 +4059,10 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
4053
4059
  source: { kind: "typed" }
4054
4060
  }
4055
4061
  }, (se) => {
4056
- ke(R) && Zt(L, se);
4062
+ ke(R) && Zt(j, se);
4057
4063
  }, R.controller.signal);
4058
4064
  if (!ke(R)) return;
4059
- h.value = Be(h.value, { type: "stream-outcome", runId: L, outcome: N.outcome, cursor: N.cursor }), await At(e);
4065
+ h.value = Be(h.value, { type: "stream-outcome", runId: j, outcome: N.outcome, cursor: N.cursor }), await At(e);
4060
4066
  } catch (N) {
4061
4067
  if (!ke(R)) return;
4062
4068
  le.value = N instanceof Error ? N.message : "Message operation failed.";
@@ -4065,14 +4071,14 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
4065
4071
  }
4066
4072
  }
4067
4073
  async function Ss(e) {
4068
- const r = h.value.sessionId, c = v.value.activeRunId, E = Lt("run.approval"), L = E?.constraints && "decisions" in E.constraints ? E.constraints.decisions : [], R = h.value.interruptions.find((Ce) => Ce.id === e.interruptId && Ce.status === "pending"), N = R?.actions ?? [];
4074
+ const r = h.value.sessionId, c = v.value.activeRunId, E = jt("run.approval"), j = E?.constraints && "decisions" in E.constraints ? E.constraints.decisions : [], R = h.value.interruptions.find((Ce) => Ce.id === e.interruptId && Ce.status === "pending"), N = R?.actions ?? [];
4069
4075
  if (!r || !c || !R || !N.length || he.value || E?.availability !== "available" || E.exposure !== "enabled") return;
4070
4076
  if (e.payload.kind === "approval") {
4071
4077
  if (e.payload.decisions.length !== N.length || !e.payload.decisions.every((Ce) => {
4072
4078
  const ze = N.find((Ke) => Ke.id === Ce.actionId);
4073
- return ze && ["approve", "reject"].includes(Ce.decision) && ze.allowedDecisions.includes(Ce.decision) && L.includes(Ce.decision);
4079
+ return ze && ["approve", "reject"].includes(Ce.decision) && ze.allowedDecisions.includes(Ce.decision) && j.includes(Ce.decision);
4074
4080
  })) return;
4075
- } else if (N.length !== 1 || !N[0].allowedDecisions.includes("answer") || !L.includes("answer") || !Object.values(e.payload.answers).some((Ce) => Ce.trim())) return;
4081
+ } else if (N.length !== 1 || !N[0].allowedDecisions.includes("answer") || !j.includes("answer") || !Object.values(e.payload.answers).some((Ce) => Ce.trim())) return;
4076
4082
  const se = crypto.randomUUID(), re = o("error.approvalUnconfirmed", "本次决定未能确认,请先刷新核对。若会话可删除且无需保留,可删除后新建;已执行的外部操作不会因此撤销。");
4077
4083
  le.value = null, he.value = !0, Ue.value = se;
4078
4084
  const Ae = Ht(r, se);
@@ -4110,33 +4116,33 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
4110
4116
  await pn(e.map((r) => ({ file: r, purpose: r.type.startsWith("image/") ? "image-input" : "document-input" })));
4111
4117
  }
4112
4118
  function Xs(e) {
4113
- je.value = je.value.filter((r) => r !== e);
4119
+ Le.value = Le.value.filter((r) => r !== e);
4114
4120
  }
4115
- async function js(e) {
4116
- const r = e.filter(({ assetId: R }) => !je.value.includes(R));
4121
+ async function Ls(e) {
4122
+ const r = e.filter(({ assetId: R }) => !Le.value.includes(R));
4117
4123
  if (!r.length) return;
4118
4124
  const c = r.map(({ assetId: R }) => R);
4119
- je.value = [...je.value, ...c];
4120
- const E = $.value, L = v.value.selectedAgentId;
4125
+ Le.value = [...Le.value, ...c];
4126
+ const E = $.value, j = v.value.selectedAgentId;
4121
4127
  try {
4122
- if (!await B.refreshImageInputCapability() || (We(), E !== $.value || L !== v.value.selectedAgentId)) return;
4123
- const R = Lt("input.image");
4128
+ if (!await B.refreshImageInputCapability() || (We(), E !== $.value || j !== v.value.selectedAgentId)) return;
4129
+ const R = jt("input.image");
4124
4130
  if (R?.availability !== "available" || R.exposure !== "enabled") return;
4125
4131
  const N = R.constraints;
4126
4132
  if (!("mimeTypes" in N)) return;
4127
- const se = (re) => E === $.value && L === v.value.selectedAgentId && r.some((Ae) => Ae.file === re && je.value.includes(Ae.assetId));
4133
+ const se = (re) => E === $.value && j === v.value.selectedAgentId && r.some((Ae) => Ae.file === re && Le.value.includes(Ae.assetId));
4128
4134
  await pn(r.filter(({ file: re }) => N.mimeTypes.includes(re.type) && se(re)).map(({ file: re }) => ({ file: re, purpose: "image-input" })), se);
4129
4135
  } finally {
4130
- je.value = je.value.filter((R) => !c.includes(R));
4136
+ Le.value = Le.value.filter((R) => !c.includes(R));
4131
4137
  }
4132
4138
  }
4133
4139
  async function pn(e, r = () => !0) {
4134
- const c = $.value, E = n.accountScope, L = v.value.selectedAgentId;
4135
- Le.add(e, (N) => c === $.value && E === n.accountScope && L === v.value.selectedAgentId && r(N)).rejected && (le.value = o("composer.attachmentLimitReached", "附件数量已达上限")), await Le.settled();
4140
+ const c = $.value, E = n.accountScope, j = v.value.selectedAgentId;
4141
+ je.add(e, (N) => c === $.value && E === n.accountScope && j === v.value.selectedAgentId && r(N)).rejected && (le.value = o("composer.attachmentLimitReached", "附件数量已达上限")), await je.settled();
4136
4142
  }
4137
- function Ls(e) {
4138
- const r = Le.items.find((c) => c.id === e || c.result?.assetId === e);
4139
- r && Le.remove(r.id);
4143
+ function js(e) {
4144
+ const r = je.items.find((c) => c.id === e || c.result?.assetId === e);
4145
+ r && je.remove(r.id);
4140
4146
  }
4141
4147
  async function Qs(e) {
4142
4148
  const r = v.value.assets.find((R) => R.assetId === e.assetId) ?? {
@@ -4149,8 +4155,8 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
4149
4155
  return;
4150
4156
  }
4151
4157
  if (typeof URL.createObjectURL != "function") return;
4152
- const E = URL.createObjectURL(new Blob([c.bytes], { type: c.mediaType })), L = document.createElement("a");
4153
- L.href = E, L.download = e.name, L.click(), URL.revokeObjectURL(E);
4158
+ const E = URL.createObjectURL(new Blob([c.bytes], { type: c.mediaType })), j = document.createElement("a");
4159
+ j.href = E, j.download = e.name, j.click(), URL.revokeObjectURL(E);
4154
4160
  }
4155
4161
  function Fs(e) {
4156
4162
  if (e.voiceSessionId === Ne)
@@ -4169,7 +4175,7 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
4169
4175
  } else e.type === "failed" ? (p.value = { ...p.value, phase: "failed", energy: 0, error: e.message, emptyRecognition: e.code === "EMPTY_RECOGNITION" }, Dt()) : e.type === "canceled" && (p.value = { phase: "idle", elapsedSeconds: 0, transcript: "", energy: 0, error: null }, Dt());
4170
4176
  }
4171
4177
  function Dt() {
4172
- Re.value = null, Ln();
4178
+ Re.value = null, jn();
4173
4179
  for (const e of tt) e.stop();
4174
4180
  tt = [];
4175
4181
  }
@@ -4190,8 +4196,8 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
4190
4196
  if (!(Qe !== r || p.value.phase !== "recording" || !Re.value))
4191
4197
  try {
4192
4198
  Re.value.sendPcm(E, 20), lt += 1, _e += 20, p.value = { ...p.value, elapsedSeconds: Math.floor(_e / 1e3), energy: uu(E) };
4193
- } catch (L) {
4194
- Ot(L, r);
4199
+ } catch (j) {
4200
+ Ot(j, r);
4195
4201
  }
4196
4202
  }
4197
4203
  });
@@ -4204,7 +4210,7 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
4204
4210
  Ot(c, r);
4205
4211
  }
4206
4212
  }
4207
- function Ln() {
4213
+ function jn() {
4208
4214
  const e = gt;
4209
4215
  gt = null, e && e.stop().catch(() => {
4210
4216
  }), _e = 0, lt = 0;
@@ -4221,7 +4227,7 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
4221
4227
  Dt(), c?.dispose();
4222
4228
  }
4223
4229
  async function Us() {
4224
- const e = Lt("voice.realtime");
4230
+ const e = jt("voice.realtime");
4225
4231
  if (e?.availability !== "available" || e.exposure !== "enabled" || ["requesting", "connecting", "recording", "finishing"].includes(p.value.phase)) return;
4226
4232
  const r = ++Qe;
4227
4233
  _e = 0, lt = 0, Ne = null, zt.clear(), p.value = { phase: "requesting", elapsedSeconds: 0, transcript: "", energy: 0, error: null };
@@ -4238,7 +4244,7 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
4238
4244
  for (const N of c.getTracks()) N.stop();
4239
4245
  return;
4240
4246
  }
4241
- const L = await n.client.createVoiceSession({
4247
+ const j = await n.client.createVoiceSession({
4242
4248
  commandId: crypto.randomUUID(),
4243
4249
  sessionId: E,
4244
4250
  mode: "realtime",
@@ -4246,12 +4252,12 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
4246
4252
  });
4247
4253
  if (r !== Qe || !n.open || document.hidden) {
4248
4254
  for (const N of c.getTracks()) N.stop();
4249
- n.client.cancelVoiceSession(L.voiceSessionId, { commandId: crypto.randomUUID() }).catch(() => {
4255
+ n.client.cancelVoiceSession(j.voiceSessionId, { commandId: crypto.randomUUID() }).catch(() => {
4250
4256
  });
4251
4257
  return;
4252
4258
  }
4253
- Ne = L.voiceSessionId, p.value = { ...p.value, phase: "connecting" };
4254
- const R = n.client.openVoiceTransport(L, tt, {
4259
+ Ne = j.voiceSessionId, p.value = { ...p.value, phase: "connecting" };
4260
+ const R = n.client.openVoiceTransport(j, tt, {
4255
4261
  onEvent: (N) => {
4256
4262
  r === Qe && (Fs(N), N.type === "ready" && Ts(c, r));
4257
4263
  },
@@ -4259,7 +4265,7 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
4259
4265
  });
4260
4266
  r === Qe && ["connecting", "recording"].includes(p.value.phase) ? Re.value = R : R.dispose();
4261
4267
  } catch (E) {
4262
- if (c) for (const L of c.getTracks()) L.stop();
4268
+ if (c) for (const j of c.getTracks()) j.stop();
4263
4269
  Ot(E, r);
4264
4270
  }
4265
4271
  }
@@ -4269,7 +4275,7 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
4269
4275
  Ot(new Error("没有可提交的录音。"), Qe);
4270
4276
  return;
4271
4277
  }
4272
- p.value = { ...p.value, phase: "finishing", energy: 0 }, Ln();
4278
+ p.value = { ...p.value, phase: "finishing", energy: 0 }, jn();
4273
4279
  for (const e of tt) e.stop();
4274
4280
  tt = [];
4275
4281
  try {
@@ -4464,8 +4470,8 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
4464
4470
  "data-testid": "context-compact",
4465
4471
  disabled: w.value || !h.value.sessionId,
4466
4472
  onClick: us
4467
- }, u(a(o)("action.compact", "压缩上下文")), 9, ju)) : m("", !0),
4468
- H.value ? (t(), s("div", Lu, [
4473
+ }, u(a(o)("action.compact", "压缩上下文")), 9, Lu)) : m("", !0),
4474
+ H.value ? (t(), s("div", ju, [
4469
4475
  f("p", null, u(a(o)("conversation.compactionConfirmation", "压缩会整理当前会话的模型上下文,可能调用模型并消耗额度。是否继续?")), 1),
4470
4476
  f("div", null, [
4471
4477
  f("button", {
@@ -4510,7 +4516,7 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
4510
4516
  class: "assistant-window__compaction-record-trigger",
4511
4517
  "aria-expanded": ee.value?.compactionId === c.compactionId,
4512
4518
  disabled: fe.value || !Ee("context.summary.read") || c.summaryVisibility !== "readable",
4513
- onClick: (L) => ds(c.compactionId)
4519
+ onClick: (j) => ds(c.compactionId)
4514
4520
  }, [
4515
4521
  f("span", null, [
4516
4522
  de(u(a(o)("conversation.compactionRecord", "记录")) + " " + u(E + 1), 1),
@@ -4632,7 +4638,7 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
4632
4638
  "voice-state": p.value,
4633
4639
  "submission-accepted-token": pt.value,
4634
4640
  "pending-assets": Gt.value,
4635
- "retrying-local-image-ids": je.value,
4641
+ "retrying-local-image-ids": Le.value,
4636
4642
  uploading: ot.value > 0,
4637
4643
  "attachment-limit": v.value.limits?.attachmentsPerRun ?? 8,
4638
4644
  "conversation-version": $.value,
@@ -4643,9 +4649,9 @@ const du = { class: "assistant-window__identity" }, vu = ["src", "alt"], fu = {
4643
4649
  onStop: Bs,
4644
4650
  onAttach: Ms,
4645
4651
  onPasteFiles: Hs,
4646
- onRetryImages: js,
4652
+ onRetryImages: Ls,
4647
4653
  onRemoveLocalImage: Xs,
4648
- onRemoveAsset: Ls,
4654
+ onRemoveAsset: js,
4649
4655
  onVoiceStart: Us,
4650
4656
  onVoiceStop: Gs,
4651
4657
  onVoiceCancel: ct