ai_co_discuss 0.2.21 → 0.2.22

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/web/modern.js CHANGED
@@ -41703,13 +41703,8 @@ var SH = {
41703
41703
  "aria-label": "代发在线成员的回答"
41704
41704
  }, QU = ["aria-pressed", "onClick"], $U = {
41705
41705
  key: 1,
41706
- class: "channel-free-recipients",
41707
- role: "group",
41708
- "aria-label": "发给哪些成员"
41709
- }, eW = ["aria-pressed", "onClick"], tW = {
41710
- key: 2,
41711
41706
  class: "channel-composer-identity"
41712
- }, nW = { class: "channel-composer-note" }, rW = { key: 0 }, iW = { key: 1 }, aW = { class: "channel-draft-length" }, oW = 240, sW = 160, cW = 100, lW = 4, uW = 3, dW = 320, fW = 34, pW = 12, mW = 16, hW = 14, gW = 8, _W = 28, vW = 18, yW = 1, bW = 1.5, xW = 3, SW = 6, CW = .62, wW = .72, TW = .88, EW = .16, DW = 12, OW = 450, kW = 8, AW = 70, jW = 20, MW = 1, NW = 18.566573373612275, PW = 78.16726685662772 / 8, FW = 1e3, IW = /*#__PURE__*/ EH({
41707
+ }, eW = { class: "channel-composer-note" }, tW = { key: 0 }, nW = { key: 1 }, rW = { class: "channel-draft-length" }, iW = 240, aW = 160, oW = 100, sW = 4, cW = 3, lW = 320, uW = 34, dW = 12, fW = 16, pW = 14, mW = 8, hW = 28, gW = 18, _W = 1, vW = 1.5, yW = 3, bW = 6, xW = .62, SW = .72, CW = .88, wW = .16, TW = 12, EW = 450, DW = 8, OW = 70, kW = 20, AW = 1, jW = 18.566573373612275, MW = 78.16726685662772 / 8, NW = 1e3, PW = /*#__PURE__*/ EH({
41713
41708
  __name: "ChannelDiscussion",
41714
41709
  emits: ["detail", "edit"],
41715
41710
  setup(e, { emit: t }) {
@@ -41719,7 +41714,7 @@ var SH = {
41719
41714
  }, {
41720
41715
  value: "submitter",
41721
41716
  label: "代发者整理"
41722
- }], y = c("search-input"), b = /* @__PURE__ */ F(null), x = /* @__PURE__ */ F(/* @__PURE__ */ new Set()), S = /* @__PURE__ */ new WeakMap(), C = Z(() => new Map(o.value.messages.map((e) => (S.has(e) || S.set(e, gt(e)), [e.id, S.get(e)])))), w = Z(() => {
41717
+ }], y = c("search-input"), b = /* @__PURE__ */ F(null), x = /* @__PURE__ */ F(/* @__PURE__ */ new Set()), S = /* @__PURE__ */ new WeakMap(), C = Z(() => new Map(o.value.messages.map((e) => (S.has(e) || S.set(e, ht(e)), [e.id, S.get(e)])))), w = Z(() => {
41723
41718
  let e = Se.value || {}, t = e.user_request?.trim() ? {
41724
41719
  label: "用户原文",
41725
41720
  text: e.user_request
@@ -41747,15 +41742,15 @@ var SH = {
41747
41742
  mass: 1,
41748
41743
  stiffness: 604.0197893466687,
41749
41744
  damping: 44.729801589453814
41750
- }, le = null, ue = !1, de = TV(0, ce), fe = TV(0, ce), pe = TV(0, ce), me = CV(pe, [0, 1], [.96, 1]), he = CV(pe, [0, 1], [-8, 0]), ge = CV(pe, [0, 1], [0, 1]), N = Z(() => o.value.messages.find((e) => e.id === te.value)), _e = Z(() => vt.value.find((e) => e.messages.some((e) => e.id === te.value))), ve = Z(() => _e.value?.label), ye = Z(() => ie.value ? St.value.findIndex((e) => e.key === ne.value) : -1), be = /* @__PURE__ */ F(null), xe = /* @__PURE__ */ F(!0), Se = Z(() => o.value.room);
41745
+ }, le = null, ue = !1, de = TV(0, ce), fe = TV(0, ce), pe = TV(0, ce), me = CV(pe, [0, 1], [.96, 1]), he = CV(pe, [0, 1], [-8, 0]), ge = CV(pe, [0, 1], [0, 1]), N = Z(() => o.value.messages.find((e) => e.id === te.value)), _e = Z(() => _t.value.find((e) => e.messages.some((e) => e.id === te.value))), ve = Z(() => _e.value?.label), ye = Z(() => ie.value ? xt.value.findIndex((e) => e.key === ne.value) : -1), be = /* @__PURE__ */ F(null), xe = /* @__PURE__ */ F(!0), Se = Z(() => o.value.room);
41751
41746
  async function Ce() {
41752
- await Qn(), a.value = (i.value?.scrollHeight || 0) > oW;
41747
+ await Qn(), a.value = (i.value?.scrollHeight || 0) > iW;
41753
41748
  }
41754
41749
  R(T, Ce, { immediate: !0 }), R(() => o.value.tab, Ce);
41755
41750
  let we = /* @__PURE__ */ F(null);
41756
41751
  R([we, se], ([e, t], n, r) => {
41757
41752
  if (!e || t) return;
41758
- let i = MW / NW, a = PW / NW, o = 0, s = 0, c = performance.now(), l = 0;
41753
+ let i = AW / jW, a = MW / jW, o = 0, s = 0, c = performance.now(), l = 0;
41759
41754
  e.classList.add("is-glowing");
41760
41755
  function u(t) {
41761
41756
  let n = (t - c) / 1e3, r = Math.exp(-n / i);
@@ -41790,7 +41785,11 @@ var SH = {
41790
41785
  round: "",
41791
41786
  text: n
41792
41787
  };
41793
- }), ke = Z(() => Pe.value.length ? o.value.free_proxy ? `本条作为 ${s.display_name(o.value.free_proxy)} 的回答原文保存,并关闭它的待处理请求` : "粘贴在线 AI 的回答时选择对应成员" : Me.value.length < 2 || o.value.free_proxy ? "" : Me.value.some((e) => Re(e.name)) ? "可同时点名多位,也可在正文中 @ 成员" : Ne.value ? `未点名:交给主持人 ${s.display_name(Ne.value.name)} 分配` : "未点名任何成员:只作留言,不会唤醒 AI"), Ae = Z(() => Te.value ? {
41788
+ }), ke = Z(() => {
41789
+ if (o.value.free_proxy) return `本条作为 ${s.display_name(o.value.free_proxy)} 的回答原文保存,并关闭它的待处理请求`;
41790
+ let e = Me.value.filter((e) => Ie(e.name).test(Le.value));
41791
+ return e.length ? `发给 ${e.map((e) => s.display_name(e.name)).join("、")}` : Me.value.length === 1 ? `发给 ${s.display_name(Me.value[0].name)}` : Ne.value ? `发给主持人 ${s.display_name(Ne.value.name)};@ 其他成员让它们发言` : "未 @ 任何成员:只作留言,不会唤醒 AI";
41792
+ }), Ae = Z(() => Te.value ? {
41794
41793
  name: "cancel_turn",
41795
41794
  label: "停止",
41796
41795
  title: `打断 ${s.display_name(Te.value.expert)} 的发言(本次作废),交给主持人`
@@ -41810,18 +41809,18 @@ var SH = {
41810
41809
  can_convert: !i && a === "active" && o.value.access?.can_manage && !Se.value.archived && !u.value
41811
41810
  };
41812
41811
  })]));
41813
- }), Ie = (e) => RegExp(`(^|[\\s((,,。;;::])@${e}(?![\\w-])`, "u"), Le = Z(() => d.value.replace(/```[\s\S]*?```/g, "").replace(/`[^`\n]*`/g, "").replace(/^>.*$/gm, "")), Re = (e) => o.value.free_to.includes(e) || Ie(e).test(Le.value), ze = {
41812
+ }), Ie = (e) => RegExp(`(^|[\\s((,,。;;::])@${e}(?![\\w-])`, "u"), Le = Z(() => d.value.replace(/```[\s\S]*?```/g, "").replace(/`[^`\n]*`/g, "").replace(/^>.*$/gm, "")), Re = {
41814
41813
  pending: ["待投递", "neutral"],
41815
41814
  delivering: ["处理中", "info"],
41816
41815
  completed: ["已回复", "success"],
41817
41816
  cancelled: ["已停止", "neutral"],
41818
41817
  failed: ["失败", "error"]
41819
- }, Be = Z(() => {
41818
+ }, ze = Z(() => {
41820
41819
  let e = /* @__PURE__ */ new Map();
41821
41820
  if (!Ee.value) return e;
41822
41821
  let t = new Map((Se.value.free?.executions || []).map((e) => [e.id, e.result]));
41823
41822
  for (let n of Se.value.free?.requests || []) {
41824
- let [r, i] = ze[n.status], a = n.status === "failed" ? t.get(n.execution_id) || "执行失败" : "";
41823
+ let [r, i] = Re[n.status], a = n.status === "failed" ? t.get(n.execution_id) || "执行失败" : "";
41825
41824
  e.set(n.message_id, [...e.get(n.message_id) || [], {
41826
41825
  key: n.id,
41827
41826
  label: `${s.display_name(n.member)} · ${r}`,
@@ -41830,7 +41829,7 @@ var SH = {
41830
41829
  }]);
41831
41830
  }
41832
41831
  return e;
41833
- }), Ve = Z(() => {
41832
+ }), Be = Z(() => {
41834
41833
  let e = /* @__PURE__ */ new Map();
41835
41834
  if (!Ee.value) return e;
41836
41835
  for (let t of Se.value.free?.executions || []) {
@@ -41852,7 +41851,7 @@ var SH = {
41852
41851
  e.set(n, [...e.get(n) || [], r]);
41853
41852
  }
41854
41853
  return e;
41855
- }), He = Z(() => {
41854
+ }), Ve = Z(() => {
41856
41855
  let e = Se.value;
41857
41856
  if (Ee.value) return o.value.query || o.value.mention_only ? null : Oe.value;
41858
41857
  let t = e?.runtime;
@@ -41868,18 +41867,18 @@ var SH = {
41868
41867
  text: c,
41869
41868
  seconds: a?.wake_seconds == null ? null : a.wake_seconds + (a.work_seconds || 0)
41870
41869
  };
41871
- }), Ue = (e) => e.author === "用户" && Se.value?.held_since > 0 && e.id >= Se.value.held_since, We = /* @__PURE__ */ F(null);
41872
- R([() => He.value?.id, () => He.value?.seconds], ([e, t], n, r) => {
41873
- if (We.value = t ?? null, We.value === null) return;
41870
+ }), He = (e) => e.author === "用户" && Se.value?.held_since > 0 && e.id >= Se.value.held_since, Ue = /* @__PURE__ */ F(null);
41871
+ R([() => Ve.value?.id, () => Ve.value?.seconds], ([e, t], n, r) => {
41872
+ if (Ue.value = t ?? null, Ue.value === null) return;
41874
41873
  let i = performance.now(), a = setInterval(() => {
41875
- We.value = t + Math.floor((performance.now() - i) / FW);
41876
- }, FW);
41874
+ Ue.value = t + Math.floor((performance.now() - i) / NW);
41875
+ }, NW);
41877
41876
  r(() => clearInterval(a));
41878
41877
  }, { immediate: !0 });
41879
- function Ge(e) {
41878
+ function We(e) {
41880
41879
  return e == null ? "—" : e < 60 ? `${e}秒` : e < 3600 ? `${Math.floor(e / 60)}分${String(e % 60).padStart(2, "0")}秒` : `${Math.floor(e / 3600)}小时${Math.floor(e % 3600 / 60)}分${String(e % 60).padStart(2, "0")}秒`;
41881
41880
  }
41882
- let Ke = Z(() => Ge(We.value)), qe = Z(() => ["用户", ...Object.keys(Se.value?.experts || {}).filter((e) => Se.value.experts[e] === "online")].map((e) => {
41881
+ let Ge = Z(() => We(Ue.value)), Ke = Z(() => ["用户", ...Object.keys(Se.value?.experts || {}).filter((e) => Se.value.experts[e] === "online")].map((e) => {
41883
41882
  let t = s.identities[e];
41884
41883
  return {
41885
41884
  label: s.display_name(e),
@@ -41892,7 +41891,7 @@ var SH = {
41892
41891
  },
41893
41892
  description: e === "用户" ? "本人发言" : "代发在线成员原文"
41894
41893
  };
41895
- })), Je = Z(() => qe.value.find((e) => e.value === p.value)), Ye = [
41894
+ })), qe = Z(() => Ke.value.find((e) => e.value === p.value)), Je = [
41896
41895
  {
41897
41896
  label: "运行回执",
41898
41897
  value: "receipt"
@@ -41912,36 +41911,36 @@ var SH = {
41912
41911
  value: "forward",
41913
41912
  icon: "i-lucide-forward"
41914
41913
  }
41915
- ], Xe = new Intl.DateTimeFormat("zh-CN", {
41914
+ ], Ye = new Intl.DateTimeFormat("zh-CN", {
41916
41915
  month: "long",
41917
41916
  day: "numeric",
41918
41917
  weekday: "long"
41919
- }), Ze = Z(() => m.value === "receipt" ? "运行回执,由用户录入" : m.value === "forward" ? "由用户代发" : m.value === "moderation" ? "主持发言" : p.value === "用户" ? "本人发言" : `代发 ${p.value} 的观点`), Qe = (e) => " ".repeat(e.length), $e = (e) => e.replace(/[&<>"]/g, (e) => ({
41918
+ }), Xe = Z(() => m.value === "receipt" ? "运行回执,由用户录入" : m.value === "forward" ? "由用户代发" : m.value === "moderation" ? "主持发言" : p.value === "用户" ? "本人发言" : `代发 ${p.value} 的观点`), Ze = (e) => " ".repeat(e.length), Qe = (e) => e.replace(/[&<>"]/g, (e) => ({
41920
41919
  "&": "&amp;",
41921
41920
  "<": "&lt;",
41922
41921
  ">": "&gt;",
41923
41922
  "\"": "&quot;"
41924
- })[e]), et = Z(() => {
41923
+ })[e]), $e = Z(() => {
41925
41924
  let e = d.value;
41926
41925
  if (!Me.value.length || !e.includes("@")) return "";
41927
- let t = e.replace(/```[\s\S]*?```/g, Qe).replace(/`[^`\n]*`/g, Qe).replace(/^>.*$/gm, Qe), n = Me.value.flatMap(({ name: e }) => [...t.matchAll(new RegExp(Ie(e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")).source, "gu"))].map((e) => [e.index + e[1].length, e.index + e[0].length])).sort((e, t) => e[0] - t[0]);
41926
+ let t = e.replace(/```[\s\S]*?```/g, Ze).replace(/`[^`\n]*`/g, Ze).replace(/^>.*$/gm, Ze), n = Me.value.flatMap(({ name: e }) => [...t.matchAll(new RegExp(Ie(e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")).source, "gu"))].map((e) => [e.index + e[1].length, e.index + e[0].length])).sort((e, t) => e[0] - t[0]);
41928
41927
  if (!n.length) return "";
41929
41928
  let r = "", i = 0;
41930
- for (let [t, a] of n) r += `${$e(e.slice(i, t))}<span class="channel-mention">${$e(e.slice(t, a))}</span>`, i = a;
41931
- return `${r}${$e(e.slice(i))} `;
41932
- }), tt = /* @__PURE__ */ F(null);
41933
- function nt() {
41934
- tt.value && be.value?.textareaRef && (tt.value.scrollTop = be.value.textareaRef.scrollTop);
41935
- }
41936
- R(et, () => Qn(nt), { flush: "post" });
41937
- let rt = /* @__PURE__ */ F(null), it = /* @__PURE__ */ F(0), at = /* @__PURE__ */ F(null), ot = !1, st = Z(() => {
41938
- let e = Ee.value ? Me.value.map((e) => e.name) : [.../* @__PURE__ */ new Set([Se.value?.host, ...Object.keys(Se.value?.experts || {})])].filter((e) => e && e !== "用户"), t = rt.value?.query.toLocaleLowerCase() || "";
41929
+ for (let [t, a] of n) r += `${Qe(e.slice(i, t))}<span class="channel-mention">${Qe(e.slice(t, a))}</span>`, i = a;
41930
+ return `${r}${Qe(e.slice(i))} `;
41931
+ }), et = /* @__PURE__ */ F(null);
41932
+ function tt() {
41933
+ et.value && be.value?.textareaRef && (et.value.scrollTop = be.value.textareaRef.scrollTop);
41934
+ }
41935
+ R($e, () => Qn(tt), { flush: "post" });
41936
+ let nt = /* @__PURE__ */ F(null), rt = /* @__PURE__ */ F(0), it = /* @__PURE__ */ F(null), at = !1, ot = Z(() => {
41937
+ let e = Ee.value ? Me.value.map((e) => e.name) : [.../* @__PURE__ */ new Set([Se.value?.host, ...Object.keys(Se.value?.experts || {})])].filter((e) => e && e !== "用户"), t = nt.value?.query.toLocaleLowerCase() || "";
41939
41938
  return e.filter((e) => `${e} ${s.display_name(e)}`.toLocaleLowerCase().includes(t));
41940
- }), ct = Z(() => st.value[Math.min(it.value, st.value.length - 1)]);
41939
+ }), st = Z(() => ot.value[Math.min(rt.value, ot.value.length - 1)]);
41941
41940
  R([() => Se.value?.id, () => o.value.tab], () => {
41942
- rt.value = null;
41941
+ nt.value = null;
41943
41942
  });
41944
- function lt(e, t, n = t) {
41943
+ function ct(e, t, n = t) {
41945
41944
  if (t !== n) return null;
41946
41945
  let r = e.slice(0, t), i = r.match(/(?:^|[\s((,,。;;::])@([^\s@`,,。;;::()()]*)$/u);
41947
41946
  if (!i) return null;
@@ -41954,57 +41953,57 @@ var SH = {
41954
41953
  query: i[1]
41955
41954
  };
41956
41955
  }
41957
- function ut(e) {
41956
+ function lt(e) {
41958
41957
  let t = be.value?.textareaRef;
41959
- if (e.target !== t || ot || e.type === "keyup" && ![
41958
+ if (e.target !== t || at || e.type === "keyup" && ![
41960
41959
  "ArrowLeft",
41961
41960
  "ArrowRight",
41962
41961
  "Home",
41963
41962
  "End"
41964
41963
  ].includes(e.key)) return;
41965
- let n = lt(t.value, t.selectionStart, t.selectionEnd);
41966
- (n?.query !== rt.value?.query || n?.start !== rt.value?.start) && (it.value = 0), rt.value = n;
41964
+ let n = ct(t.value, t.selectionStart, t.selectionEnd);
41965
+ (n?.query !== nt.value?.query || n?.start !== nt.value?.start) && (rt.value = 0), nt.value = n;
41967
41966
  }
41968
- async function dt(e) {
41969
- if (!rt.value || !st.value.includes(e)) return;
41970
- let { start: t, end: n } = rt.value, r = `@${e} `;
41971
- d.value = d.value.slice(0, t) + r + d.value.slice(n).replace(/^ /, ""), rt.value = null, await Qn();
41967
+ async function ut(e) {
41968
+ if (!nt.value || !ot.value.includes(e)) return;
41969
+ let { start: t, end: n } = nt.value, r = `@${e} `;
41970
+ d.value = d.value.slice(0, t) + r + d.value.slice(n).replace(/^ /, ""), nt.value = null, await Qn();
41972
41971
  let i = be.value?.textareaRef;
41973
41972
  i?.focus(), i?.setSelectionRange(t + r.length, t + r.length);
41974
41973
  }
41975
- function ft(e) {
41976
- if (e.target === be.value?.textareaRef && rt.value && !e.isComposing && e.keyCode !== 229 && !(e.ctrlKey || e.metaKey || e.altKey || e.shiftKey)) {
41977
- if (e.key === "Escape") rt.value = null;
41978
- else if (["ArrowDown", "ArrowUp"].includes(e.key) && st.value.length) {
41974
+ function dt(e) {
41975
+ if (e.target === be.value?.textareaRef && nt.value && !e.isComposing && e.keyCode !== 229 && !(e.ctrlKey || e.metaKey || e.altKey || e.shiftKey)) {
41976
+ if (e.key === "Escape") nt.value = null;
41977
+ else if (["ArrowDown", "ArrowUp"].includes(e.key) && ot.value.length) {
41979
41978
  let t = e.key === "ArrowDown" ? 1 : -1;
41980
- it.value = (st.value.indexOf(ct.value) + t + st.value.length) % st.value.length, Qn(() => at.value?.querySelector("[aria-selected=\"true\"]")?.scrollIntoView({ block: "nearest" }));
41981
- } else if (["Enter", "Tab"].includes(e.key) && ct.value) dt(ct.value);
41979
+ rt.value = (ot.value.indexOf(st.value) + t + ot.value.length) % ot.value.length, Qn(() => it.value?.querySelector("[aria-selected=\"true\"]")?.scrollIntoView({ block: "nearest" }));
41980
+ } else if (["Enter", "Tab"].includes(e.key) && st.value) ut(st.value);
41982
41981
  else return;
41983
41982
  e.preventDefault(), e.stopPropagation();
41984
41983
  }
41985
41984
  }
41986
- function pt(e) {
41987
- ot = e.type === "compositionstart", rt.value = null, ot || ut(e);
41985
+ function ft(e) {
41986
+ at = e.type === "compositionstart", nt.value = null, at || lt(e);
41988
41987
  }
41989
- function mt(e) {
41988
+ function pt(e) {
41990
41989
  e.preventDefault();
41991
41990
  }
41992
- function ht(e) {
41991
+ function mt(e) {
41993
41992
  for (let t of e.querySelectorAll("pre code, tbody")) {
41994
41993
  let n = e.ownerDocument.createRange();
41995
41994
  if (t.tagName === "TBODY") {
41996
- if (t.children.length <= uW) continue;
41995
+ if (t.children.length <= cW) continue;
41997
41996
  n.setStartAfter(t.children[2]);
41998
41997
  } else {
41999
41998
  let e = t.textContent.trimEnd().split("\n");
42000
- if (e.length <= lW) continue;
42001
- n.setStart(t.firstChild, e.slice(0, lW).join("\n").length);
41999
+ if (e.length <= sW) continue;
42000
+ n.setStart(t.firstChild, e.slice(0, sW).join("\n").length);
42002
42001
  }
42003
42002
  return n.setEnd(e, e.childNodes.length), n.deleteContents(), !0;
42004
42003
  }
42005
42004
  return !1;
42006
42005
  }
42007
- function gt(e) {
42006
+ function ht(e) {
42008
42007
  let t = {
42009
42008
  truncated: !1,
42010
42009
  html: e.rendered_text
@@ -42012,14 +42011,14 @@ var SH = {
42012
42011
  if (e.kind === "receipt") return t;
42013
42012
  let n = document.createElement("template");
42014
42013
  n.innerHTML = e.rendered_text;
42015
- let r = ht(n.content), i = document.createTreeWalker(n.content, NodeFilter.SHOW_TEXT, { acceptNode: (e) => e.parentElement?.closest(".katex-mathml") ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT }), a = [];
42014
+ let r = mt(n.content), i = document.createTreeWalker(n.content, NodeFilter.SHOW_TEXT, { acceptNode: (e) => e.parentElement?.closest(".katex-mathml") ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT }), a = [];
42016
42015
  for (; i.nextNode();) a.push(i.currentNode);
42017
42016
  let o = [...a.map((e) => e.textContent).join("").trimEnd()];
42018
- if (o.length <= sW) return {
42017
+ if (o.length <= aW) return {
42019
42018
  truncated: r,
42020
42019
  html: n.innerHTML
42021
42020
  };
42022
- let s = o.slice(0, sW).join(""), c = [...s.matchAll(/[。!?;]\s*|[.!?;](?:\s|$)|\n/gu)].at(-1), l = c ? c.index + c[0].length : 0, u = [...s.slice(0, l)].length >= cW, d = u ? l : s.length;
42021
+ let s = o.slice(0, aW).join(""), c = [...s.matchAll(/[。!?;]\s*|[.!?;](?:\s|$)|\n/gu)].at(-1), l = c ? c.index + c[0].length : 0, u = [...s.slice(0, l)].length >= oW, d = u ? l : s.length;
42023
42022
  for (let e of a) {
42024
42023
  if (d > e.textContent.length) {
42025
42024
  d -= e.textContent.length;
@@ -42034,18 +42033,18 @@ var SH = {
42034
42033
  html: n.innerHTML
42035
42034
  };
42036
42035
  }
42037
- let _t = Z(() => {
42036
+ let gt = Z(() => {
42038
42037
  let e = [];
42039
42038
  for (let t of o.value.messages) {
42040
42039
  let n = new Date(t.created_at), r = n.toLocaleDateString();
42041
42040
  e.at(-1)?.key !== r && e.push({
42042
42041
  key: r,
42043
- label: Xe.format(n),
42042
+ label: Ye.format(n),
42044
42043
  messages: []
42045
42044
  }), e.at(-1).messages.push(t);
42046
42045
  }
42047
42046
  return e;
42048
- }), vt = Z(() => {
42047
+ }), _t = Z(() => {
42049
42048
  let e = [];
42050
42049
  for (let t of o.value.messages) {
42051
42050
  let n = Se.value.rounds?.findLast((e) => e.start_id <= t.id), r = n?.number || 0;
@@ -42061,9 +42060,9 @@ var SH = {
42061
42060
  e.at(-1).messages.push(t);
42062
42061
  }
42063
42062
  return e;
42064
- }), yt = Z(() => vt.value.find((e) => e.messages.some((e) => e.id === O.value))?.number), bt = Z(() => new Map(Ee.value ? [] : vt.value.flatMap((e) => e.messages.map((t) => [t.id, e.label])))), xt = Z(() => {
42063
+ }), vt = Z(() => _t.value.find((e) => e.messages.some((e) => e.id === O.value))?.number), yt = Z(() => new Map(Ee.value ? [] : _t.value.flatMap((e) => e.messages.map((t) => [t.id, e.label])))), bt = Z(() => {
42065
42064
  let e = 0;
42066
- return vt.value.map((t) => ({
42065
+ return _t.value.map((t) => ({
42067
42066
  number: t.number,
42068
42067
  count: t.messages.length,
42069
42068
  entries: [{
@@ -42081,44 +42080,44 @@ var SH = {
42081
42080
  index: e++
42082
42081
  }))]
42083
42082
  }));
42084
- }), St = Z(() => xt.value.flatMap((e) => e.entries));
42085
- function Ct(e) {
42083
+ }), xt = Z(() => bt.value.flatMap((e) => e.entries));
42084
+ function St(e) {
42086
42085
  return e.getBoundingClientRect().top + (parseFloat(getComputedStyle(e).getPropertyValue("--channel-topbar-height")) || 0);
42087
42086
  }
42088
- function wt() {
42087
+ function Ct() {
42089
42088
  let e = b.value;
42090
42089
  if (!e || !e.clientHeight) return;
42091
- xe.value = e.scrollHeight - e.scrollTop - e.clientHeight < AW;
42092
- let t = e.getBoundingClientRect(), n = Ct(e), r = [...e.querySelectorAll("[data-message-id]")], i = r.find((e) => Number(e.dataset.messageId) === ee.value);
42090
+ xe.value = e.scrollHeight - e.scrollTop - e.clientHeight < OW;
42091
+ let t = e.getBoundingClientRect(), n = St(e), r = [...e.querySelectorAll("[data-message-id]")], i = r.find((e) => Number(e.dataset.messageId) === ee.value);
42093
42092
  if (i && i.getBoundingClientRect().bottom > n && i.getBoundingClientRect().top < t.bottom) {
42094
42093
  O.value = ee.value;
42095
42094
  return;
42096
42095
  }
42097
42096
  ee.value = null;
42098
- let a = r.find((e) => e.getBoundingClientRect().bottom > n + jW);
42097
+ let a = r.find((e) => e.getBoundingClientRect().bottom > n + kW);
42099
42098
  O.value = a ? Number(a.dataset.messageId) : null;
42100
42099
  }
42101
- async function Tt() {
42102
- await Qn(), xe.value && b.value && (b.value.scrollTop = b.value.scrollHeight), wt();
42100
+ async function wt() {
42101
+ await Qn(), xe.value && b.value && (b.value.scrollTop = b.value.scrollHeight), Ct();
42103
42102
  }
42104
- R([() => o.value.messages, He], Tt, { immediate: !0 }), R([
42103
+ R([() => o.value.messages, Ve], wt, { immediate: !0 }), R([
42105
42104
  () => o.value.room?.id,
42106
42105
  () => o.value.query,
42107
42106
  () => o.value.mention_only
42108
42107
  ], () => {
42109
- ee.value = null, O.value = null, Ut(), xe.value = !0;
42108
+ ee.value = null, O.value = null, Ht(), xe.value = !0;
42110
42109
  }), R(() => o.value.tab, (e) => {
42111
- Ut(), e === "discussion" && Tt();
42110
+ Ht(), e === "discussion" && wt();
42112
42111
  }), R(() => o.value.room?.id, () => x.value.clear());
42113
- async function Et(e, t) {
42112
+ async function Tt(e, t) {
42114
42113
  let n = t.currentTarget.closest("[data-message-id]"), r = x.value.has(e.id), i = b.value.scrollTop;
42115
- xe.value = !1, r ? x.value.delete(e.id) : x.value.add(e.id), Ut(), await Qn(), r || (b.value.scrollTop = i), r && n.getBoundingClientRect().top < Ct(b.value) && (b.value.scrollTop += n.getBoundingClientRect().top - Ct(b.value) - jW), wt();
42114
+ xe.value = !1, r ? x.value.delete(e.id) : x.value.add(e.id), Ht(), await Qn(), r || (b.value.scrollTop = i), r && n.getBoundingClientRect().top < St(b.value) && (b.value.scrollTop += n.getBoundingClientRect().top - St(b.value) - kW), Ct();
42116
42115
  }
42117
- function Dt(e) {
42116
+ function Et(e) {
42118
42117
  let t = b.value, n = t?.querySelector(`[data-message-id="${e}"]`);
42119
- n && (Ht(), ee.value = e, O.value = e, t.scrollTop += n.getBoundingClientRect().top - Ct(t) - jW, n.focus({ preventScroll: !0 }), wt());
42118
+ n && (Vt(), ee.value = e, O.value = e, t.scrollTop += n.getBoundingClientRect().top - St(t) - kW, n.focus({ preventScroll: !0 }), Ct());
42120
42119
  }
42121
- function Ot(e) {
42120
+ function Dt(e) {
42122
42121
  (e.type !== "keydown" || [
42123
42122
  "ArrowUp",
42124
42123
  "ArrowDown",
@@ -42129,34 +42128,34 @@ var SH = {
42129
42128
  " "
42130
42129
  ].includes(e.key)) && (ee.value = null);
42131
42130
  }
42132
- function kt(e, t) {
42131
+ function Ot(e, t) {
42133
42132
  let n = {
42134
42133
  ArrowUp: t - 1,
42135
42134
  ArrowDown: t + 1,
42136
42135
  Home: 0,
42137
- End: St.value.length - 1
42136
+ End: xt.value.length - 1
42138
42137
  };
42139
42138
  if (!Object.hasOwn(n, e.key)) return;
42140
42139
  e.preventDefault();
42141
- let r = Math.max(0, Math.min(n[e.key], St.value.length - 1));
42140
+ let r = Math.max(0, Math.min(n[e.key], xt.value.length - 1));
42142
42141
  E.value.querySelectorAll("button")[r].focus({ preventScroll: !0 });
42143
42142
  }
42144
- function At(e) {
42143
+ function kt(e) {
42145
42144
  let t = E.value;
42146
42145
  if (!t?.clientHeight || !e) return;
42147
42146
  let n = t.getBoundingClientRect(), r = e.getBoundingClientRect();
42148
- r.top < n.top + DW ? t.scrollTop += r.top - n.top - DW : r.bottom > n.bottom - DW && (t.scrollTop += r.bottom - n.bottom + DW);
42147
+ r.top < n.top + TW ? t.scrollTop += r.top - n.top - TW : r.bottom > n.bottom - TW && (t.scrollTop += r.bottom - n.bottom + TW);
42149
42148
  }
42150
- async function jt() {
42151
- await Qn(), At(E.value?.querySelector(`[data-jump-id="${O.value}"]`));
42149
+ async function At() {
42150
+ await Qn(), kt(E.value?.querySelector(`[data-jump-id="${O.value}"]`));
42152
42151
  }
42153
- R(O, jt);
42154
- function Mt(e, t) {
42155
- !le && t.currentTarget.matches(":focus-visible") && (D.value = !0, At(e.round ? t.currentTarget.parentElement.querySelector("[data-jump-id]") : t.currentTarget), Vt(e, t));
42152
+ R(O, At);
42153
+ function jt(e, t) {
42154
+ !le && t.currentTarget.matches(":focus-visible") && (D.value = !0, kt(e.round ? t.currentTarget.parentElement.querySelector("[data-jump-id]") : t.currentTarget), Bt(e, t));
42156
42155
  }
42157
- function Nt(e, t) {
42156
+ function Mt(e, t) {
42158
42157
  if (ue = !1, !["touch", "pen"].includes(t.pointerType)) return;
42159
- Ht(), D.value = !1;
42158
+ Vt(), D.value = !1;
42160
42159
  let n = {
42161
42160
  pointer: t.pointerId,
42162
42161
  x: t.clientX,
@@ -42164,85 +42163,85 @@ var SH = {
42164
42163
  target: t.currentTarget
42165
42164
  };
42166
42165
  le = n, n.timer = setTimeout(() => {
42167
- le === n && (ue = !0, Vt(e, { currentTarget: n.target }));
42168
- }, OW);
42166
+ le === n && (ue = !0, Bt(e, { currentTarget: n.target }));
42167
+ }, EW);
42169
42168
  }
42170
- function Pt() {
42169
+ function Nt() {
42171
42170
  le && clearTimeout(le.timer), le = null;
42172
42171
  }
42173
- function Ft(e) {
42174
- le?.pointer === e.pointerId && (e.type === "pointercancel" && (ue = !0), Ht());
42172
+ function Pt(e) {
42173
+ le?.pointer === e.pointerId && (e.type === "pointercancel" && (ue = !0), Vt());
42175
42174
  }
42176
- function It(e, t) {
42177
- ["touch", "pen"].includes(t.pointerType) ? le?.pointer === t.pointerId && Math.hypot(t.clientX - le.x, t.clientY - le.y) > kW && (ue = !0, Ht()) : t.type === "pointerenter" && D.value || (D.value = !1, (ne.value !== e.key || !ie.value) && Vt(e, t));
42175
+ function Ft(e, t) {
42176
+ ["touch", "pen"].includes(t.pointerType) ? le?.pointer === t.pointerId && Math.hypot(t.clientX - le.x, t.clientY - le.y) > DW && (ue = !0, Vt()) : t.type === "pointerenter" && D.value || (D.value = !1, (ne.value !== e.key || !ie.value) && Bt(e, t));
42178
42177
  }
42179
- function Lt(e, t) {
42180
- ue && t.detail !== 0 ? (ue = !1, t.preventDefault()) : Dt(e.message.id);
42178
+ function It(e, t) {
42179
+ ue && t.detail !== 0 ? (ue = !1, t.preventDefault()) : Et(e.message.id);
42181
42180
  }
42182
- function Rt(e) {
42181
+ function Lt(e) {
42183
42182
  le && e.preventDefault();
42184
42183
  }
42185
- function zt(e) {
42186
- (e.deltaX || e.deltaY) && (D.value = !1, Ht());
42184
+ function Rt(e) {
42185
+ (e.deltaX || e.deltaY) && (D.value = !1, Vt());
42187
42186
  }
42188
- function Bt() {
42189
- Ht(), ee.value = null, xe.value = !0, Tt();
42187
+ function zt() {
42188
+ Vt(), ee.value = null, xe.value = !0, wt();
42190
42189
  }
42191
- async function Vt(e, t) {
42192
- let n = e.message, r = t.currentTarget.getBoundingClientRect(), i = E.value.getBoundingClientRect(), a = Math.min(dW, innerWidth - 24), o = i.right + mW;
42193
- if (k.value = Math.max(pW, Math.min(o, innerWidth - a - pW)), te.value = n.id, ne.value = e.key, re.value = e.round, ie.value = !0, await Qn(), !ie.value || ne.value !== e.key) return;
42194
- oe.value = ae.value.scrollHeight + fW;
42195
- let s = (Math.max(r.top, i.top + DW) + Math.min(r.bottom, i.bottom - DW)) / 2 - oe.value / 2;
42196
- A.value = Math.max(pW, Math.min(s, innerHeight - oe.value - pW));
42190
+ async function Bt(e, t) {
42191
+ let n = e.message, r = t.currentTarget.getBoundingClientRect(), i = E.value.getBoundingClientRect(), a = Math.min(lW, innerWidth - 24), o = i.right + fW;
42192
+ if (k.value = Math.max(dW, Math.min(o, innerWidth - a - dW)), te.value = n.id, ne.value = e.key, re.value = e.round, ie.value = !0, await Qn(), !ie.value || ne.value !== e.key) return;
42193
+ oe.value = ae.value.scrollHeight + uW;
42194
+ let s = (Math.max(r.top, i.top + TW) + Math.min(r.bottom, i.bottom - TW)) / 2 - oe.value / 2;
42195
+ A.value = Math.max(dW, Math.min(s, innerHeight - oe.value - dW));
42197
42196
  let c = se.value || pe.get() === 0;
42198
42197
  de[c ? "jump" : "set"](A.value), fe[c ? "jump" : "set"](oe.value);
42199
42198
  }
42200
- function Ht(e) {
42201
- e?.relatedTarget?.closest?.(".channel-message-map, .channel-nav-preview") || (Pt(), ie.value = !1);
42199
+ function Vt(e) {
42200
+ e?.relatedTarget?.closest?.(".channel-message-map, .channel-nav-preview") || (Nt(), ie.value = !1);
42202
42201
  }
42203
- function Ut() {
42204
- Pt(), ie.value = !1, pe.jump(0), te.value = null;
42202
+ function Ht() {
42203
+ Nt(), ie.value = !1, pe.jump(0), te.value = null;
42205
42204
  }
42206
- async function Wt() {
42207
- Ut(), Ce(), await Tt(), await jt();
42205
+ async function Ut() {
42206
+ Ht(), Ce(), await wt(), await At();
42208
42207
  }
42209
- function Gt(e) {
42208
+ function Wt(e) {
42210
42209
  let t = e.entries.length - 1;
42211
- return Math.max(-3, Math.min(t + xW, ye.value - e.entries[0].index));
42210
+ return Math.max(-3, Math.min(t + yW, ye.value - e.entries[0].index));
42212
42211
  }
42213
- function Kt(e, t) {
42214
- let n = ye.value < 0 ? Infinity : Math.abs(t - ye.value), r = Math.max(0, 1 - n / xW), i = O.value === e.message.id, a = n === 0 || i && ye.value < 0, o = gW;
42212
+ function Gt(e, t) {
42213
+ let n = ye.value < 0 ? Infinity : Math.abs(t - ye.value), r = Math.max(0, 1 - n / yW), i = O.value === e.message.id, a = n === 0 || i && ye.value < 0, o = mW;
42215
42214
  return {
42216
- scaleX: a ? _W / o : i ? vW / o : 1 + r * SW / o,
42217
- height: a ? bW : yW,
42218
- opacity: a ? TW : i ? wW : CW + r * EW
42215
+ scaleX: a ? hW / o : i ? gW / o : 1 + r * bW / o,
42216
+ height: a ? vW : _W,
42217
+ opacity: a ? CW : i ? SW : xW + r * wW
42219
42218
  };
42220
42219
  }
42221
42220
  R([ie, se], () => {
42222
42221
  let e = +!!ie.value;
42223
42222
  se.value ? (pe.jump(e), de.jump(A.value), fe.jump(oe.value)) : pe.set(e);
42224
- }), Qi(() => window.addEventListener("resize", Wt)), ta(() => window.removeEventListener("resize", Wt)), ta(Pt);
42225
- function qt(e) {
42223
+ }), Qi(() => window.addEventListener("resize", Ut)), ta(() => window.removeEventListener("resize", Ut)), ta(Nt);
42224
+ function Kt(e) {
42226
42225
  return [[{
42227
42226
  label: "复制原文链接",
42228
42227
  icon: "i-lucide-link",
42229
- onSelect: () => Zt(e)
42228
+ onSelect: () => Xt(e)
42230
42229
  }, {
42231
42230
  label: "查看原文",
42232
42231
  icon: "i-lucide-expand",
42233
42232
  onSelect: () => n("detail", e.id)
42234
42233
  }]];
42235
42234
  }
42236
- async function Jt(e) {
42235
+ async function qt(e) {
42237
42236
  await l("reply", e), be.value?.textareaRef?.focus();
42238
42237
  }
42239
- async function Yt() {
42240
- !je.value || u.value || o.value.sending_message || (rt.value = null, xe.value = !0, await l("send"), await Tt());
42238
+ async function Jt() {
42239
+ !je.value || u.value || o.value.sending_message || (nt.value = null, xe.value = !0, await l("send"), await wt());
42241
42240
  }
42242
- function Xt(e) {
42243
- e.key !== "Enter" || e.ctrlKey || e.metaKey || e.shiftKey || e.altKey || e.isComposing || d.value.trim() || o.value.attachment_drafts.length && (e.preventDefault(), e.stopPropagation(), Yt());
42241
+ function Yt(e) {
42242
+ e.key !== "Enter" || e.ctrlKey || e.metaKey || e.shiftKey || e.altKey || e.isComposing || d.value.trim() || o.value.attachment_drafts.length && (e.preventDefault(), e.stopPropagation(), Jt());
42244
42243
  }
42245
- function Zt(e) {
42244
+ function Xt(e) {
42246
42245
  l("copy", `${location.origin}/r/${Se.value.id}/messages/${e.id}`);
42247
42246
  }
42248
42247
  return (e, t) => {
@@ -42269,20 +42268,20 @@ var SH = {
42269
42268
  ref_key: "message_map",
42270
42269
  ref: E,
42271
42270
  class: "channel-message-map",
42272
- style: j({ "--nav-entry-height": `${hW}px` }),
42271
+ style: j({ "--nav-entry-height": `${pW}px` }),
42273
42272
  "aria-label": "发言快速导航",
42274
- onWheelPassive: uu(zt, ["stop"]),
42275
- onPointerleave: Ht,
42276
- onFocusout: Ht,
42277
- onKeydown: fu(uu(Ht, ["stop"]), ["esc"]),
42278
- onContextmenu: Rt
42279
- }, [K("div", kH, [(U(!0), W(H, null, B(xt.value, (e, t, n, r) => {
42273
+ onWheelPassive: uu(Rt, ["stop"]),
42274
+ onPointerleave: Vt,
42275
+ onFocusout: Vt,
42276
+ onKeydown: fu(uu(Vt, ["stop"]), ["esc"]),
42277
+ onContextmenu: Lt
42278
+ }, [K("div", kH, [(U(!0), W(H, null, B(bt.value, (e, t, n, r) => {
42280
42279
  let i = [
42281
42280
  e,
42282
42281
  I(se),
42283
42282
  ie.value,
42284
- yt.value === e.number ? O.value : null,
42285
- Gt(e)
42283
+ vt.value === e.number ? O.value : null,
42284
+ Wt(e)
42286
42285
  ];
42287
42286
  if (r && r.el && r.key === e.number && rc(r, i)) return r;
42288
42287
  let a = (U(), W("div", {
@@ -42300,21 +42299,21 @@ var SH = {
42300
42299
  tabindex: !e.round && e.message.id === (O.value || I(o).messages[0]?.id) ? 0 : -1,
42301
42300
  "aria-current": !e.round && O.value === e.message.id ? "location" : void 0,
42302
42301
  "aria-describedby": ie.value && ne.value === e.key ? "channel-navigation-preview" : void 0,
42303
- onPointerenter: (t) => It(e, t),
42304
- onPointermove: (t) => It(e, t),
42305
- onPointerdown: (t) => Nt(e, t),
42306
- onPointerup: Ft,
42307
- onPointercancel: Ft,
42308
- onFocus: (t) => Mt(e, t),
42309
- onKeydown: (t) => kt(t, e.index),
42310
- onClick: (t) => Lt(e, t)
42302
+ onPointerenter: (t) => Ft(e, t),
42303
+ onPointermove: (t) => Ft(e, t),
42304
+ onPointerdown: (t) => Mt(e, t),
42305
+ onPointerup: Pt,
42306
+ onPointercancel: Pt,
42307
+ onFocus: (t) => jt(e, t),
42308
+ onKeydown: (t) => Ot(t, e.index),
42309
+ onClick: (t) => It(e, t)
42311
42310
  }, [e.round ? (U(), W("span", jH, P(e.number || "–"), 1)) : (U(), G(I(bV).span, {
42312
42311
  key: 1,
42313
42312
  class: "channel-jump-tick",
42314
42313
  "aria-hidden": "true",
42315
42314
  initial: !1,
42316
- animate: I(se) ? void 0 : Kt(e, e.index),
42317
- style: j(I(se) ? Kt(e, e.index) : void 0),
42315
+ animate: I(se) ? void 0 : Gt(e, e.index),
42316
+ style: j(I(se) ? Gt(e, e.index) : void 0),
42318
42317
  transition: ce
42319
42318
  }, null, 8, ["animate", "style"]))], 42, AH))), 128))], 4));
42320
42319
  return a.memo = i, a;
@@ -42334,11 +42333,11 @@ var SH = {
42334
42333
  opacity: I(ge),
42335
42334
  scale: I(me),
42336
42335
  height: I(fe),
42337
- "--preview-gap": `${mW}px`
42336
+ "--preview-gap": `${fW}px`
42338
42337
  }),
42339
- onPointerleave: Ht,
42340
- onFocusout: Ht,
42341
- onKeydown: fu(uu(Ht, ["stop"]), ["esc"])
42338
+ onPointerleave: Vt,
42339
+ onFocusout: Vt,
42340
+ onKeydown: fu(uu(Vt, ["stop"]), ["esc"])
42342
42341
  }, {
42343
42342
  default: L(() => [K("div", {
42344
42343
  ref_key: "preview_content",
@@ -42377,8 +42376,8 @@ var SH = {
42377
42376
  "onKeydown"
42378
42377
  ])) : Y("", !0)])),
42379
42378
  nc([
42380
- _t.value,
42381
- bt.value,
42379
+ gt.value,
42380
+ yt.value,
42382
42381
  O.value,
42383
42382
  x.value.size,
42384
42383
  Se.value.title,
@@ -42387,20 +42386,20 @@ var SH = {
42387
42386
  T.value,
42388
42387
  r.value,
42389
42388
  a.value,
42390
- He.value,
42391
- We.value,
42392
- Be.value,
42393
42389
  Ve.value,
42390
+ Ue.value,
42391
+ ze.value,
42392
+ Be.value,
42394
42393
  Fe.value
42395
42394
  ], () => (U(), W("div", {
42396
42395
  ref_key: "transcript",
42397
42396
  ref: b,
42398
42397
  class: "channel-transcript",
42399
42398
  "aria-label": "聊天记录",
42400
- onScroll: wt,
42401
- onWheelPassive: Ot,
42402
- onTouchstartPassive: Ot,
42403
- onKeydown: Ot
42399
+ onScroll: Ct,
42400
+ onWheelPassive: Dt,
42401
+ onTouchstartPassive: Dt,
42402
+ onKeydown: Dt
42404
42403
  }, [
42405
42404
  !I(o).query && !I(o).mention_only ? (U(), W("div", RH, [K("section", {
42406
42405
  class: M(["channel-message channel-topic-card", { "is-expanded": r.value }]),
@@ -42475,7 +42474,7 @@ var SH = {
42475
42474
  K("small", QH, P(w.value.bounds), 1)
42476
42475
  ])
42477
42476
  ], 2)])) : Y("", !0),
42478
- (U(!0), W(H, null, B(_t.value, (e) => (U(), W("div", {
42477
+ (U(!0), W(H, null, B(gt.value, (e) => (U(), W("div", {
42479
42478
  key: e.key,
42480
42479
  class: "channel-message-group"
42481
42480
  }, [q(ee, {
@@ -42484,12 +42483,12 @@ var SH = {
42484
42483
  }, null, 8, ["label"]), (U(!0), W(H, null, B(e.messages, (e, r, i, a) => {
42485
42484
  let u = [
42486
42485
  e,
42487
- bt.value.get(e.id),
42486
+ yt.value.get(e.id),
42488
42487
  x.value.has(e.id),
42489
42488
  O.value === e.id,
42490
- Ue(e),
42489
+ He(e),
42490
+ ze.value.get(e.id),
42491
42491
  Be.value.get(e.id),
42492
- Ve.value.get(e.id),
42493
42492
  Fe.value.get(e.id)
42494
42493
  ];
42495
42494
  if (a && a.el && a.key === e.id && rc(a, u)) return a;
@@ -42527,7 +42526,7 @@ var SH = {
42527
42526
  ]),
42528
42527
  K("div", eU, [K("div", tU, [
42529
42528
  K("strong", null, P(I(s).display_name(e.author)), 1),
42530
- K("span", nU, P(bt.value.get(e.id)), 1),
42529
+ K("span", nU, P(yt.value.get(e.id)), 1),
42531
42530
  q(te, {
42532
42531
  size: "xs",
42533
42532
  color: "neutral",
@@ -42557,7 +42556,7 @@ var SH = {
42557
42556
  default: L(() => [...t[33] ||= [J("运行回执", -1)]]),
42558
42557
  _: 1
42559
42558
  })) : Y("", !0),
42560
- Ue(e) ? (U(), G(te, {
42559
+ He(e) ? (U(), G(te, {
42561
42560
  key: 2,
42562
42561
  size: "xs",
42563
42562
  color: "warning",
@@ -42568,7 +42567,7 @@ var SH = {
42568
42567
  default: L(() => [...t[34] ||= [J("待主持人处理", -1)]]),
42569
42568
  _: 1
42570
42569
  }, 8, ["title"])) : Y("", !0),
42571
- (U(!0), W(H, null, B(Be.value.get(e.id) || [], (e) => (U(), G(te, {
42570
+ (U(!0), W(H, null, B(ze.value.get(e.id) || [], (e) => (U(), G(te, {
42572
42571
  key: e.key,
42573
42572
  size: "xs",
42574
42573
  color: e.color,
@@ -42597,7 +42596,7 @@ var SH = {
42597
42596
  e.submitted_by && e.submitted_by !== e.author && (e.source !== "proxy" || e.submitted_by !== "用户") ? (U(), W("span", aU, P(I(s).display_name(e.submitted_by)) + " 代发", 1)) : Y("", !0),
42598
42597
  e.turn_id ? (U(), W("span", oU, "回答安排 #" + P(e.turn_id), 1)) : Y("", !0)
42599
42598
  ])]),
42600
- K("span", sU, "耗时 " + P(Ge(e.elapsed_seconds)), 1)
42599
+ K("span", sU, "耗时 " + P(We(e.elapsed_seconds)), 1)
42601
42600
  ]),
42602
42601
  e.reply_to ? (U(), G(c, {
42603
42602
  key: 0,
@@ -42632,7 +42631,7 @@ var SH = {
42632
42631
  "aria-label": `${x.value.has(e.id) ? "收起回答" : "展开完整回答"} #${e.id}`,
42633
42632
  "aria-expanded": x.value.has(e.id),
42634
42633
  "aria-controls": `channel-answer-${e.id}`,
42635
- onClick: (t) => Et(e, t)
42634
+ onClick: (t) => Tt(e, t)
42636
42635
  }, null, 8, [
42637
42636
  "label",
42638
42637
  "trailing-icon",
@@ -42667,12 +42666,12 @@ var SH = {
42667
42666
  "aria-label",
42668
42667
  "onClick"
42669
42668
  ])) : Y("", !0) : (U(), W("span", yU, "成员已离开"))]))), 128))])) : Y("", !0),
42670
- (U(!0), W(H, null, B(Ve.value.get(e.id) || [], (e) => (U(), W("section", {
42669
+ (U(!0), W(H, null, B(Be.value.get(e.id) || [], (e) => (U(), W("section", {
42671
42670
  key: e.id,
42672
42671
  class: "channel-execution-report",
42673
42672
  "aria-label": `执行报告 #${e.id}`
42674
42673
  }, [
42675
- K("div", null, [K("strong", null, "执行 #" + P(e.id) + " · " + P(e.label), 1), K("span", null, P(Ge(e.seconds)), 1)]),
42674
+ K("div", null, [K("strong", null, "执行 #" + P(e.id) + " · " + P(e.label), 1), K("span", null, P(We(e.seconds)), 1)]),
42676
42675
  K("p", null, "请求 " + P(e.request_ids.map((e) => `#${e}`).join("、")), 1),
42677
42676
  K("p", null, "工作区观察:" + P(e.files_text), 1),
42678
42677
  e.status !== "completed" && e.result ? (U(), W("p", xU, P(e.result), 1)) : Y("", !0)
@@ -42685,11 +42684,11 @@ var SH = {
42685
42684
  color: "neutral",
42686
42685
  variant: "ghost",
42687
42686
  "aria-label": `回复 #${e.id}`,
42688
- onClick: (t) => Jt(e)
42687
+ onClick: (t) => qt(e)
42689
42688
  }, null, 8, ["aria-label", "onClick"])]),
42690
42689
  _: 2
42691
42690
  }, 1024), q(oe, {
42692
- items: qt(e),
42691
+ items: Kt(e),
42693
42692
  content: {
42694
42693
  align: "end",
42695
42694
  sideOffset: 5
@@ -42715,39 +42714,39 @@ var SH = {
42715
42714
  ]));
42716
42715
  return d.memo = u, d;
42717
42716
  }, t, 7), 128))]))), 128)),
42718
- He.value ? (U(), W("div", wU, [He.value.is_host ? (U(), W("section", {
42717
+ Ve.value ? (U(), W("div", wU, [Ve.value.is_host ? (U(), W("section", {
42719
42718
  key: 0,
42720
- id: `execution-${He.value.id}`,
42719
+ id: `execution-${Ve.value.id}`,
42721
42720
  class: "channel-host-work",
42722
- "aria-label": `${I(s).display_name(He.value.author)} 主持工作`
42721
+ "aria-label": `${I(s).display_name(Ve.value.author)} 主持工作`
42723
42722
  }, [
42724
42723
  q(S, {
42725
- src: I(s).identities[He.value.author]?.icon,
42726
- text: I(s).identities[He.value.author]?.initials || "?",
42727
- alt: I(s).display_name(He.value.author),
42724
+ src: I(s).identities[Ve.value.author]?.icon,
42725
+ text: I(s).identities[Ve.value.author]?.initials || "?",
42726
+ alt: I(s).display_name(Ve.value.author),
42728
42727
  size: "md",
42729
- class: M(["channel-avatar", I(s).identities[He.value.author]?.style])
42728
+ class: M(["channel-avatar", I(s).identities[Ve.value.author]?.style])
42730
42729
  }, null, 8, [
42731
42730
  "src",
42732
42731
  "text",
42733
42732
  "alt",
42734
42733
  "class"
42735
42734
  ]),
42736
- K("div", EU, [K("strong", null, P(I(s).display_name(He.value.author)), 1), t[36] ||= K("span", null, "主持工作", -1)]),
42737
- K("span", DU, "已用 " + P(Ke.value), 1),
42735
+ K("div", EU, [K("strong", null, P(I(s).display_name(Ve.value.author)), 1), t[36] ||= K("span", null, "主持工作", -1)]),
42736
+ K("span", DU, "已用 " + P(Ge.value), 1),
42738
42737
  K("p", {
42739
42738
  class: "channel-host-work-status",
42740
42739
  role: "status",
42741
- "aria-label": `${I(s).display_name(He.value.author)} ${He.value.text}`
42740
+ "aria-label": `${I(s).display_name(Ve.value.author)} ${Ve.value.text}`
42742
42741
  }, [K("span", {
42743
42742
  ref_key: "reply_glow",
42744
42743
  ref: we,
42745
42744
  class: "channel-reply-glow"
42746
- }, P(He.value.text), 513)], 8, OU)
42745
+ }, P(Ve.value.text), 513)], 8, OU)
42747
42746
  ], 8, TU)) : (U(), G(le, {
42748
42747
  key: 1,
42749
- id: `execution-${He.value.id}`,
42750
- "data-author": I(s).identities[He.value.author]?.style,
42748
+ id: `execution-${Ve.value.id}`,
42749
+ "data-author": I(s).identities[Ve.value.author]?.style,
42751
42750
  role: "assistant",
42752
42751
  parts: [],
42753
42752
  side: "left",
@@ -42762,43 +42761,43 @@ var SH = {
42762
42761
  }, {
42763
42762
  body: L(() => [K("div", kU, [
42764
42763
  q(S, {
42765
- src: I(s).identities[He.value.author]?.icon,
42766
- text: I(s).identities[He.value.author]?.initials || "?",
42767
- alt: I(s).display_name(He.value.author),
42764
+ src: I(s).identities[Ve.value.author]?.icon,
42765
+ text: I(s).identities[Ve.value.author]?.initials || "?",
42766
+ alt: I(s).display_name(Ve.value.author),
42768
42767
  size: "md",
42769
- class: M(["channel-avatar", I(s).identities[He.value.author]?.style])
42768
+ class: M(["channel-avatar", I(s).identities[Ve.value.author]?.style])
42770
42769
  }, null, 8, [
42771
42770
  "src",
42772
42771
  "text",
42773
42772
  "alt",
42774
42773
  "class"
42775
42774
  ]),
42776
- K("div", AU, [K("div", jU, [K("strong", null, P(I(s).display_name(He.value.author)), 1), He.value.round ? (U(), W("span", MU, P(He.value.round), 1)) : Y("", !0)])]),
42777
- K("span", NU, "已用 " + P(Ke.value), 1)
42775
+ K("div", AU, [K("div", jU, [K("strong", null, P(I(s).display_name(Ve.value.author)), 1), Ve.value.round ? (U(), W("span", MU, P(Ve.value.round), 1)) : Y("", !0)])]),
42776
+ K("span", NU, "已用 " + P(Ge.value), 1)
42778
42777
  ]), K("div", {
42779
42778
  class: "channel-message-text",
42780
42779
  role: "status",
42781
- "aria-label": `${I(s).display_name(He.value.author)} ${He.value.text}`
42780
+ "aria-label": `${I(s).display_name(Ve.value.author)} ${Ve.value.text}`
42782
42781
  }, [K("span", {
42783
42782
  ref_key: "reply_glow",
42784
42783
  ref: we,
42785
42784
  class: "channel-reply-glow"
42786
- }, P(He.value.text), 513)], 8, PU)]),
42785
+ }, P(Ve.value.text), 513)], 8, PU)]),
42787
42786
  _: 1
42788
42787
  }, 8, ["id", "data-author"]))])) : Y("", !0),
42789
- !I(o).messages.length && !He.value ? (U(), W("div", FU, [
42788
+ !I(o).messages.length && !Ve.value ? (U(), W("div", FU, [
42790
42789
  q(D, { name: I(o).query || I(o).mention_only ? "i-lucide-search" : "i-lucide-hash" }, null, 8, ["name"]),
42791
42790
  K("h2", null, P(I(o).query || I(o).mention_only ? "没有找到消息" : Se.value.title), 1),
42792
42791
  K("p", null, P(I(o).query || I(o).mention_only ? "试试其他关键词,或清除筛选。" : I(s).empty_discussion_message(Se.value)), 1)
42793
42792
  ])) : Y("", !0)
42794
42793
  ], 544)), t, 9),
42795
- (I(o).messages.length || He.value) && !xe.value ? (U(), W("div", IU, [q(c, {
42794
+ (I(o).messages.length || Ve.value) && !xe.value ? (U(), W("div", IU, [q(c, {
42796
42795
  icon: "i-lucide-arrow-down",
42797
42796
  color: "neutral",
42798
42797
  variant: "outline",
42799
42798
  "aria-label": "回到最新消息",
42800
42799
  class: "channel-latest-button",
42801
- onClick: Bt
42800
+ onClick: zt
42802
42801
  })])) : Y("", !0),
42803
42802
  K("div", LU, [K("div", {
42804
42803
  class: "channel-composer-column",
@@ -42806,47 +42805,47 @@ var SH = {
42806
42805
  onDrop: t[21] ||= (...e) => I(s).drop_attachments && I(s).drop_attachments(...e),
42807
42806
  onPaste: t[22] ||= (...e) => I(s).paste_attachments && I(s).paste_attachments(...e),
42808
42807
  onKeydownCapture: t[23] ||= (e) => {
42809
- ft(e), Xt(e);
42808
+ dt(e), Yt(e);
42810
42809
  },
42811
- onInput: ut,
42812
- onClick: ut,
42813
- onKeyup: ut,
42814
- onSelect: ut,
42815
- onCompositionstart: pt,
42816
- onCompositionend: pt,
42817
- onScrollCapture: nt
42810
+ onInput: lt,
42811
+ onClick: lt,
42812
+ onKeyup: lt,
42813
+ onSelect: lt,
42814
+ onCompositionstart: ft,
42815
+ onCompositionend: ft,
42816
+ onScrollCapture: tt
42818
42817
  }, [
42819
42818
  q(ue, {
42820
- open: !!rt.value,
42819
+ open: !!nt.value,
42821
42820
  reference: be.value?.$el,
42822
42821
  content: {
42823
42822
  side: "top",
42824
42823
  align: "start",
42825
42824
  sideOffset: 8,
42826
- onOpenAutoFocus: mt,
42827
- onCloseAutoFocus: mt
42825
+ onOpenAutoFocus: pt,
42826
+ onCloseAutoFocus: pt
42828
42827
  },
42829
42828
  ui: { content: "channel-select-menu channel-mention-menu" },
42830
- "onUpdate:open": t[11] ||= (e) => !e && (rt.value = null)
42829
+ "onUpdate:open": t[11] ||= (e) => !e && (nt.value = null)
42831
42830
  }, {
42832
42831
  content: L(() => [t[37] ||= K("div", { class: "channel-mention-heading" }, [K("span", null, "选择成员"), K("small", null, "↑↓ 选择 · Enter 确认")], -1), K("div", {
42833
42832
  id: "channel-mention-list",
42834
42833
  ref_key: "mention_list",
42835
- ref: at,
42834
+ ref: it,
42836
42835
  role: "listbox",
42837
42836
  "aria-label": "选择成员",
42838
42837
  class: "channel-mention-list"
42839
- }, [(U(!0), W(H, null, B(st.value, (e, n) => (U(), W("button", {
42838
+ }, [(U(!0), W(H, null, B(ot.value, (e, n) => (U(), W("button", {
42840
42839
  id: `channel-mention-${n}`,
42841
42840
  key: e,
42842
42841
  type: "button",
42843
42842
  role: "option",
42844
- "aria-selected": e === ct.value,
42843
+ "aria-selected": e === st.value,
42845
42844
  tabindex: "-1",
42846
42845
  class: "channel-mention-option",
42847
42846
  onPointerdown: t[10] ||= uu(() => {}, ["prevent"]),
42848
- onClick: (t) => dt(e),
42849
- onPointermove: (e) => it.value = n
42847
+ onClick: (t) => ut(e),
42848
+ onPointermove: (e) => rt.value = n
42850
42849
  }, [
42851
42850
  q(S, {
42852
42851
  src: I(s).identities[e]?.icon,
@@ -42862,7 +42861,7 @@ var SH = {
42862
42861
  ]),
42863
42862
  K("span", null, P(I(s).display_name(e)), 1),
42864
42863
  K("small", null, "@" + P(e), 1)
42865
- ], 40, RU))), 128)), st.value.length ? Y("", !0) : (U(), W("p", zU, "没有匹配的成员"))], 512)]),
42864
+ ], 40, RU))), 128)), ot.value.length ? Y("", !0) : (U(), W("p", zU, "没有匹配的成员"))], 512)]),
42866
42865
  _: 1
42867
42866
  }, 8, [
42868
42867
  "open",
@@ -42884,18 +42883,18 @@ var SH = {
42884
42883
  role: "combobox",
42885
42884
  "aria-autocomplete": "list",
42886
42885
  "aria-haspopup": "listbox",
42887
- "aria-expanded": !!rt.value,
42888
- "aria-controls": rt.value ? "channel-mention-list" : void 0,
42889
- "aria-activedescendant": rt.value && ct.value ? `channel-mention-${st.value.indexOf(ct.value)}` : void 0,
42886
+ "aria-expanded": !!nt.value,
42887
+ "aria-controls": nt.value ? "channel-mention-list" : void 0,
42888
+ "aria-activedescendant": nt.value && st.value ? `channel-mention-${ot.value.indexOf(st.value)}` : void 0,
42890
42889
  variant: "outline",
42891
42890
  color: "neutral",
42892
- class: M(["channel-composer", { "has-mentions": et.value }]),
42891
+ class: M(["channel-composer", { "has-mentions": $e.value }]),
42893
42892
  ui: {
42894
42893
  header: "channel-composer-header",
42895
42894
  base: "channel-editor",
42896
42895
  footer: "channel-composer-footer"
42897
42896
  },
42898
- onSubmit: Yt
42897
+ onSubmit: Jt
42899
42898
  }, {
42900
42899
  header: L(() => [
42901
42900
  I(o).attachment_drafts.length ? (U(), W("div", BU, [(U(!0), W(H, null, B(I(o).attachment_drafts, (e) => (U(), W("div", {
@@ -42965,19 +42964,12 @@ var SH = {
42965
42964
  class: M({ "is-on": I(o).free_proxy === e.name }),
42966
42965
  onClick: (t) => I(l)("set_proxy", e.name)
42967
42966
  }, P(I(s).display_name(e.name)), 11, QU))), 128))])) : Y("", !0),
42968
- Me.value.length > 1 && !I(o).free_proxy ? (U(), W("div", $U, [t[39] ||= K("span", null, "发给", -1), (U(!0), W(H, null, B(Me.value, (e) => (U(), W("button", {
42969
- key: e.id,
42970
- type: "button",
42971
- "aria-pressed": Re(e.name),
42972
- class: M({ "is-on": Re(e.name) }),
42973
- onClick: (t) => I(l)("toggle_recipient", e.name)
42974
- }, P(I(s).display_name(e.name)), 11, eW))), 128))])) : Y("", !0),
42975
- Ee.value ? Y("", !0) : (U(), W("div", tW, [q(ye, {
42967
+ Ee.value ? Y("", !0) : (U(), W("div", $U, [q(ye, {
42976
42968
  modelValue: I(p),
42977
42969
  "onUpdate:modelValue": t[16] ||= (e) => /* @__PURE__ */ ln(p) ? p.value = e : null,
42978
- items: qe.value,
42970
+ items: Ke.value,
42979
42971
  "value-key": "value",
42980
- avatar: Je.value?.avatar,
42972
+ avatar: qe.value?.avatar,
42981
42973
  disabled: ["moderation", "receipt"].includes(I(m)),
42982
42974
  "search-input": {
42983
42975
  placeholder: "搜索身份…",
@@ -43004,8 +42996,8 @@ var SH = {
43004
42996
  ]), q(_e, {
43005
42997
  modelValue: I(m),
43006
42998
  "onUpdate:modelValue": t[17] ||= (e) => /* @__PURE__ */ ln(m) ? m.value = e : null,
43007
- items: Ye,
43008
- icon: Ye.find((e) => e.value === I(m))?.icon,
42999
+ items: Je,
43000
+ icon: Je.find((e) => e.value === I(m))?.icon,
43009
43001
  content: {
43010
43002
  side: "top",
43011
43003
  align: "start",
@@ -43018,7 +43010,7 @@ var SH = {
43018
43010
  ui: { content: "channel-select-menu" }
43019
43011
  }, null, 8, ["modelValue", "icon"])])),
43020
43012
  Ae.value && !je.value ? (U(), G(c, {
43021
- key: 3,
43013
+ key: 2,
43022
43014
  type: "button",
43023
43015
  icon: "i-lucide-square",
43024
43016
  color: "error",
@@ -43033,7 +43025,7 @@ var SH = {
43033
43025
  "title",
43034
43026
  "loading"
43035
43027
  ])) : (U(), G(c, {
43036
- key: 4,
43028
+ key: 3,
43037
43029
  type: "button",
43038
43030
  icon: "i-lucide-arrow-up",
43039
43031
  color: "neutral",
@@ -43043,16 +43035,16 @@ var SH = {
43043
43035
  title: "发送 · Enter",
43044
43036
  disabled: !je.value || _.value && !I(h).trim(),
43045
43037
  loading: I(u) === "send" || I(o).sending_message,
43046
- onClick: Yt
43038
+ onClick: Jt
43047
43039
  }, null, 8, ["disabled", "loading"]))
43048
43040
  ]),
43049
- default: L(() => [et.value ? (U(), W("div", {
43041
+ default: L(() => [$e.value ? (U(), W("div", {
43050
43042
  key: 0,
43051
43043
  ref_key: "mirror",
43052
- ref: tt,
43044
+ ref: et,
43053
43045
  class: "channel-editor channel-editor-mirror",
43054
43046
  "aria-hidden": "true",
43055
- innerHTML: et.value
43047
+ innerHTML: $e.value
43056
43048
  }, null, 8, XU)) : Y("", !0)]),
43057
43049
  _: 1
43058
43050
  }, 8, [
@@ -43064,26 +43056,26 @@ var SH = {
43064
43056
  "aria-activedescendant",
43065
43057
  "class"
43066
43058
  ]),
43067
- K("div", nW, [Ee.value ? (U(), W("span", rW, [
43068
- J(P(ke.value || "点名分配任务"), 1),
43069
- t[40] ||= K("span", { class: "channel-note-divider" }, "·", -1),
43070
- t[41] ||= J("手动成员需在原会话触发", -1)
43071
- ])) : (U(), W("span", iW, [
43072
- J(P(Ze.value), 1),
43073
- t[42] ||= K("span", { class: "channel-note-divider" }, "·", -1),
43074
- t[43] ||= J("在线 AI 的观点需代发", -1)
43075
- ])), K("span", aW, [
43059
+ K("div", eW, [Ee.value ? (U(), W("span", tW, [
43060
+ J(P(ke.value), 1),
43061
+ t[39] ||= K("span", { class: "channel-note-divider" }, "·", -1),
43062
+ t[40] ||= J("手动成员需在原会话触发", -1)
43063
+ ])) : (U(), W("span", nW, [
43064
+ J(P(Xe.value), 1),
43065
+ t[41] ||= K("span", { class: "channel-note-divider" }, "·", -1),
43066
+ t[42] ||= J("在线 AI 的观点需代发", -1)
43067
+ ])), K("span", rW, [
43076
43068
  J(P(f.value) + " / " + P(I(s).max_message_length), 1),
43077
- t[44] ||= K("span", { class: "channel-note-divider" }, "·", -1),
43078
- t[45] ||= J("Enter 发送", -1),
43079
- t[46] ||= K("span", { class: "channel-note-divider" }, "·", -1),
43080
- t[47] ||= J("Shift+Enter 换行", -1)
43069
+ t[43] ||= K("span", { class: "channel-note-divider" }, "·", -1),
43070
+ t[44] ||= J("Enter 发送", -1),
43071
+ t[45] ||= K("span", { class: "channel-note-divider" }, "·", -1),
43072
+ t[46] ||= J("Shift+Enter 换行", -1)
43081
43073
  ])])
43082
43074
  ], 32)])
43083
43075
  ], 2);
43084
43076
  };
43085
43077
  }
43086
- }, [["__scopeId", "data-v-12ce59a4"]]), LW = {
43078
+ }, [["__scopeId", "data-v-675da349"]]), FW = {
43087
43079
  slots: {
43088
43080
  root: "relative inline-flex items-center",
43089
43081
  base: ["rounded-md", "transition-colors"],
@@ -43511,7 +43503,7 @@ var SH = {
43511
43503
  color: "primary",
43512
43504
  variant: "outline"
43513
43505
  }
43514
- }, RW = /*@__PURE__*/ Object.assign({ inheritAttrs: !1 }, {
43506
+ }, IW = /*@__PURE__*/ Object.assign({ inheritAttrs: !1 }, {
43515
43507
  __name: "InputMenu",
43516
43508
  props: /*@__PURE__*/ Fa({
43517
43509
  as: {
@@ -43791,7 +43783,7 @@ var SH = {
43791
43783
  required: !1
43792
43784
  }
43793
43785
  } }), _e = Z(() => oA({
43794
- extend: LW,
43786
+ extend: FW,
43795
43787
  ...l.ui?.inputMenu || {}
43796
43788
  })({
43797
43789
  color: ue.value,
@@ -44285,16 +44277,16 @@ var SH = {
44285
44277
  ])
44286
44278
  ], 64));
44287
44279
  }
44288
- }), zW = { class: "api-settings" }, BW = {
44280
+ }), LW = { class: "api-settings" }, RW = {
44289
44281
  class: "api-field",
44290
44282
  title: "Base URL"
44291
- }, VW = {
44283
+ }, zW = {
44292
44284
  class: "api-field",
44293
44285
  title: "OpenRouter 等兼容服务可选 Chat Completions,并填写该服务的完整模型 ID。"
44294
- }, HW = { class: "api-field" }, UW = { class: "api-field" }, WW = { class: "api-inline" }, GW = {
44286
+ }, BW = { class: "api-field" }, VW = { class: "api-field" }, HW = { class: "api-inline" }, UW = {
44295
44287
  key: 0,
44296
44288
  role: "alert"
44297
- }, KW = "••••••••••••", qW = /*#__PURE__*/ EH({
44289
+ }, WW = "••••••••••••", GW = /*#__PURE__*/ EH({
44298
44290
  __name: "ApiSettings",
44299
44291
  props: { name: {
44300
44292
  type: String,
@@ -44336,9 +44328,9 @@ var SH = {
44336
44328
  }
44337
44329
  }
44338
44330
  return (t, n) => {
44339
- let u = GV, m = FV, h = MA, g = RW;
44340
- return U(), W("div", zW, [
44341
- K("label", BW, [n[6] ||= K("span", null, "地址", -1), q(u, {
44331
+ let u = GV, m = FV, h = MA, g = IW;
44332
+ return U(), W("div", LW, [
44333
+ K("label", RW, [n[6] ||= K("span", null, "地址", -1), q(u, {
44342
44334
  "model-value": i.value.base_url || "",
44343
44335
  "aria-label": `${e.name} Base URL`,
44344
44336
  placeholder: "Base URL",
@@ -44346,7 +44338,7 @@ var SH = {
44346
44338
  size: "xs",
44347
44339
  "onUpdate:modelValue": n[0] ||= (e) => f("base_url", e)
44348
44340
  }, null, 8, ["model-value", "aria-label"])]),
44349
- K("div", VW, [n[7] ||= K("span", null, "协议", -1), q(m, {
44341
+ K("div", zW, [n[7] ||= K("span", null, "协议", -1), q(m, {
44350
44342
  "model-value": i.value.api_protocol || "",
44351
44343
  items: d,
44352
44344
  "aria-label": `${e.name} API 请求协议`,
@@ -44354,7 +44346,7 @@ var SH = {
44354
44346
  size: "xs",
44355
44347
  "onUpdate:modelValue": n[1] ||= (e) => f("api_protocol", e)
44356
44348
  }, null, 8, ["model-value", "aria-label"])]),
44357
- K("div", HW, [n[8] ||= K("span", null, "密钥", -1), q(u, {
44349
+ K("div", BW, [n[8] ||= K("span", null, "密钥", -1), q(u, {
44358
44350
  modelValue: o.value,
44359
44351
  "onUpdate:modelValue": n[3] ||= (e) => o.value = e,
44360
44352
  type: "text",
@@ -44362,7 +44354,7 @@ var SH = {
44362
44354
  spellcheck: "false",
44363
44355
  "data-1p-ignore": "",
44364
44356
  "data-lpignore": "true",
44365
- placeholder: i.value.api_key_ref ? KW : "填写 API Key",
44357
+ placeholder: i.value.api_key_ref ? WW : "填写 API Key",
44366
44358
  title: i.value.api_key_ref && !o.value ? "已保存;本机不回传密钥,输入新 Key 可更换" : void 0,
44367
44359
  "aria-label": `${e.name} API Key`,
44368
44360
  size: "xs",
@@ -44398,7 +44390,7 @@ var SH = {
44398
44390
  "loading",
44399
44391
  "ui"
44400
44392
  ])]),
44401
- K("div", UW, [n[9] ||= K("span", null, "模型", -1), K("div", WW, [q(g, {
44393
+ K("div", VW, [n[9] ||= K("span", null, "模型", -1), K("div", HW, [q(g, {
44402
44394
  mode: "autocomplete",
44403
44395
  "ignore-filter": "",
44404
44396
  "model-value": i.value.model || "",
@@ -44428,26 +44420,26 @@ var SH = {
44428
44420
  "loading",
44429
44421
  "disabled"
44430
44422
  ])])]),
44431
- l.value || a.value.error ? (U(), W("p", GW, P(l.value || a.value.error), 1)) : Y("", !0)
44423
+ l.value || a.value.error ? (U(), W("p", UW, P(l.value || a.value.error), 1)) : Y("", !0)
44432
44424
  ]);
44433
44425
  };
44434
44426
  }
44435
- }, [["__scopeId", "data-v-9bf1d860"]]), JW = {
44427
+ }, [["__scopeId", "data-v-9bf1d860"]]), KW = {
44436
44428
  class: "launch-settings",
44437
44429
  "aria-label": "启动配置"
44438
- }, YW = { class: "launch-connect-command" }, XW = {
44430
+ }, qW = { class: "launch-connect-command" }, JW = {
44439
44431
  key: 0,
44440
44432
  role: "alert",
44441
44433
  class: "fine-print"
44442
- }, ZW = { class: "launch-effective" }, QW = { class: "launch-client-fields" }, $W = ["onClick"], eG = { key: 7 }, tG = { class: "launch-client-fields" }, nG = { class: "form-two-columns" }, rG = {
44434
+ }, YW = { class: "launch-effective" }, XW = { class: "launch-client-fields" }, ZW = ["onClick"], QW = { key: 7 }, $W = { class: "launch-client-fields" }, eG = { class: "form-two-columns" }, tG = {
44443
44435
  key: 0,
44444
44436
  role: "alert",
44445
44437
  class: "fine-print"
44446
- }, iG = {
44438
+ }, nG = {
44447
44439
  key: 1,
44448
44440
  role: "status",
44449
44441
  class: "fine-print"
44450
- }, aG = /*#__PURE__*/ EH({
44442
+ }, rG = /*#__PURE__*/ EH({
44451
44443
  __name: "LaunchSettings",
44452
44444
  props: {
44453
44445
  participants: {
@@ -44488,7 +44480,7 @@ var SH = {
44488
44480
  e && t && o.value.forEach((e) => r.load_launch_models(e));
44489
44481
  }, { immediate: !0 }), (e, m) => {
44490
44482
  let h = MA, g = FV, _ = nH, v = GV, y = aH;
44491
- return U(), W("section", JW, [I(n).launch.available ? (U(), W(H, { key: 1 }, [
44483
+ return U(), W("section", KW, [I(n).launch.available ? (U(), W(H, { key: 1 }, [
44492
44484
  m[10] ||= K("h3", null, "启动配置", -1),
44493
44485
  m[11] ||= K("p", { class: "fine-print" }, "接入配置可保存供后续讨论复用。API 不需要安装 AI 软件;App 需要保持运行;CLI 按需启动。", -1),
44494
44486
  (U(!0), W(H, null, B(o.value, (e) => (U(), W("details", {
@@ -44497,12 +44489,12 @@ var SH = {
44497
44489
  class: "launch-client"
44498
44490
  }, [
44499
44491
  K("summary", null, P(e) + " · " + P(I(r).launch_summary(e).client) + " · " + P(I(r).launch_summary(e).session), 1),
44500
- K("p", ZW, [
44492
+ K("p", YW, [
44501
44493
  J("工作目录:" + P(I(r).launch_summary(e).cwd) + "(" + P(I(r).launch_summary(e).access) + ")", 1),
44502
44494
  m[8] ||= K("br", null, null, -1),
44503
44495
  J("项目:" + P(I(r).launch_summary(e).project), 1)
44504
44496
  ]),
44505
- K("div", QW, [
44497
+ K("div", XW, [
44506
44498
  q(_, { label: `${e} 执行客户端` }, {
44507
44499
  default: L(() => [q(g, {
44508
44500
  "model-value": s(e).adapter || "",
@@ -44545,7 +44537,7 @@ var SH = {
44545
44537
  ])]),
44546
44538
  _: 2
44547
44539
  }, 1024)),
44548
- s(e).adapter === "api" ? (U(), G(qW, {
44540
+ s(e).adapter === "api" ? (U(), G(GW, {
44549
44541
  key: 2,
44550
44542
  name: e
44551
44543
  }, null, 8, ["name"])) : t.modelSelection && f(e).supported ? (U(), G(_, {
@@ -44569,7 +44561,7 @@ var SH = {
44569
44561
  type: "button",
44570
44562
  class: "model-retry",
44571
44563
  onClick: (t) => I(r).load_launch_models(e, !0)
44572
- }, "重新读取模型列表", 8, $W)) : Y("", !0)]),
44564
+ }, "重新读取模型列表", 8, ZW)) : Y("", !0)]),
44573
44565
  _: 2
44574
44566
  }, 1032, ["help"])) : Y("", !0),
44575
44567
  t.modelSelection && f(e).efforts?.length ? (U(), G(_, {
@@ -44613,7 +44605,7 @@ var SH = {
44613
44605
  }, null, 8, ["model-value", "onUpdate:modelValue"])]),
44614
44606
  _: 2
44615
44607
  }, 1024)) : Y("", !0),
44616
- s(e).adapter === "api" ? Y("", !0) : (U(), W("details", eG, [m[9] ||= K("summary", null, "会话与目录覆盖(可选)", -1), K("div", tG, [
44608
+ s(e).adapter === "api" ? Y("", !0) : (U(), W("details", QW, [m[9] ||= K("summary", null, "会话与目录覆盖(可选)", -1), K("div", $W, [
44617
44609
  q(_, { label: "复用会话 ID(仅本次)" }, {
44618
44610
  default: L(() => [q(v, {
44619
44611
  "model-value": s(e).session_id || "",
@@ -44672,7 +44664,7 @@ var SH = {
44672
44664
  ])]))
44673
44665
  ])
44674
44666
  ]))), 128)),
44675
- K("div", nG, [
44667
+ K("div", eG, [
44676
44668
  t.workspace ? (U(), G(_, {
44677
44669
  key: 0,
44678
44670
  label: "本次工作目录(可选)",
@@ -44716,11 +44708,11 @@ var SH = {
44716
44708
  loading: I(a) === "save_launch_defaults",
44717
44709
  onClick: m[5] ||= (e) => I(i)("save_launch_defaults")
44718
44710
  }, null, 8, ["loading"]),
44719
- I(n).launch.error ? (U(), W("p", rG, P(I(n).launch.error), 1)) : I(n).launch.notice ? (U(), W("p", iG, P(I(n).launch.notice), 1)) : Y("", !0)
44711
+ I(n).launch.error ? (U(), W("p", tG, P(I(n).launch.error), 1)) : I(n).launch.notice ? (U(), W("p", nG, P(I(n).launch.notice), 1)) : Y("", !0)
44720
44712
  ], 64)) : (U(), W(H, { key: 0 }, [
44721
44713
  m[6] ||= K("h3", null, "连接这台电脑", -1),
44722
44714
  m[7] ||= K("p", { class: "fine-print" }, "先安装并配置 codiscuss,在运行 AI 的这台电脑上执行以下命令,使用命令打开的网页完成连接。浏览器询问时允许访问本机网络。", -1),
44723
- K("div", YW, [K("code", null, P(I(n).launch.connect_command), 1), q(h, {
44715
+ K("div", qW, [K("code", null, P(I(n).launch.connect_command), 1), q(h, {
44724
44716
  icon: "i-lucide-copy",
44725
44717
  "aria-label": "复制本机连接命令",
44726
44718
  variant: "ghost",
@@ -44734,99 +44726,99 @@ var SH = {
44734
44726
  loading: I(a) === "retry_launch_connection",
44735
44727
  onClick: m[1] ||= (e) => I(i)("retry_launch_connection")
44736
44728
  }, null, 8, ["loading"]),
44737
- I(n).launch.error ? (U(), W("p", XW, P(I(n).launch.error), 1)) : Y("", !0)
44729
+ I(n).launch.error ? (U(), W("p", JW, P(I(n).launch.error), 1)) : Y("", !0)
44738
44730
  ], 64))]);
44739
44731
  };
44740
44732
  }
44741
- }, [["__scopeId", "data-v-b8f8fe3c"]]), oG = { class: "page-heading" }, sG = { class: "topic-brief" }, cG = { class: "host-status" }, lG = {
44733
+ }, [["__scopeId", "data-v-b8f8fe3c"]]), iG = { class: "page-heading" }, aG = { class: "topic-brief" }, oG = { class: "host-status" }, sG = {
44742
44734
  key: 0,
44743
44735
  class: "turn-panel"
44744
- }, uG = { class: "turn-header" }, dG = {
44736
+ }, cG = { class: "turn-header" }, lG = {
44745
44737
  key: 1,
44746
44738
  class: "turn-panel"
44747
- }, fG = { class: "turn-header" }, pG = { class: "button-row" }, mG = { class: "turn-panel host-turn" }, hG = { class: "turn-header" }, gG = { class: "turn-expert" }, _G = { class: "turn-question" }, vG = {
44739
+ }, uG = { class: "turn-header" }, dG = { class: "button-row" }, fG = { class: "turn-panel host-turn" }, pG = { class: "turn-header" }, mG = { class: "turn-expert" }, hG = { class: "turn-question" }, gG = {
44748
44740
  key: 0,
44749
44741
  class: "button-row turn-actions"
44750
- }, yG = {
44742
+ }, _G = {
44751
44743
  key: 1,
44752
44744
  class: "turn-empty"
44753
- }, bG = {
44745
+ }, vG = {
44754
44746
  key: 2,
44755
44747
  class: "fine-print"
44756
- }, xG = {
44748
+ }, yG = {
44757
44749
  key: 0,
44758
44750
  class: "info-section host-receipts"
44759
- }, SG = { class: "button-row" }, CG = {
44751
+ }, bG = { class: "button-row" }, xG = {
44760
44752
  key: 0,
44761
44753
  class: "fine-print"
44762
- }, wG = { class: "form-footer" }, TG = ["href"], EG = {
44754
+ }, SG = { class: "form-footer" }, CG = ["href"], wG = {
44763
44755
  key: 1,
44764
44756
  class: "fine-print host-schedule-hint"
44765
- }, DG = { class: "page-heading access-heading" }, OG = {
44757
+ }, TG = { class: "page-heading access-heading" }, EG = {
44766
44758
  key: 0,
44767
44759
  class: "access-evidence",
44768
44760
  "aria-label": "实际执行进展",
44769
44761
  role: "status"
44770
- }, kG = {
44762
+ }, DG = {
44771
44763
  key: 0,
44772
44764
  class: "fine-print"
44773
- }, AG = {
44765
+ }, OG = {
44774
44766
  key: 1,
44775
44767
  class: "access-setup",
44776
44768
  "aria-label": "网页启动入口"
44777
- }, jG = {
44769
+ }, kG = {
44778
44770
  key: 1,
44779
44771
  class: "access-repair"
44780
- }, MG = { class: "access-repair-heading" }, NG = {
44772
+ }, AG = { class: "access-repair-heading" }, jG = {
44781
44773
  key: 0,
44782
44774
  class: "access-repair-fields"
44783
- }, PG = {
44775
+ }, MG = {
44784
44776
  key: 0,
44785
44777
  role: "status",
44786
44778
  class: "fine-print"
44787
- }, FG = {
44779
+ }, NG = {
44788
44780
  key: 1,
44789
44781
  role: "alert",
44790
44782
  class: "fine-print"
44791
- }, IG = {
44783
+ }, PG = {
44792
44784
  key: 2,
44793
44785
  class: "fine-print"
44794
- }, LG = {
44786
+ }, FG = {
44795
44787
  key: 3,
44796
44788
  class: "fine-print"
44797
- }, RG = {
44789
+ }, IG = {
44798
44790
  key: 4,
44799
44791
  class: "fine-print"
44800
- }, zG = {
44792
+ }, LG = {
44801
44793
  key: 2,
44802
44794
  class: "access-setup",
44803
44795
  "aria-label": "全自动接入步骤"
44804
- }, BG = { class: "access-section-title" }, VG = {
44796
+ }, RG = { class: "access-section-title" }, zG = {
44805
44797
  href: "https://github.com/huyan1458/ai_co_discuss/blob/main/docs/runner.md#常驻讨论服务",
44806
44798
  target: "_blank",
44807
44799
  rel: "noopener",
44808
44800
  class: "subtle-link"
44809
- }, HG = { class: "access-steps" }, UG = { class: "access-command" }, WG = { class: "access-command" }, GG = {
44801
+ }, BG = { class: "access-steps" }, VG = { class: "access-command" }, HG = { class: "access-command" }, UG = {
44810
44802
  key: 3,
44811
44803
  class: "access-disclosure access-workspace"
44812
- }, KG = { class: "access-disclosure-body" }, qG = { class: "form-two-columns" }, JG = ["open"], YG = { class: "access-disclosure-body" }, XG = {
44804
+ }, WG = { class: "access-disclosure-body" }, GG = { class: "form-two-columns" }, KG = ["open"], qG = { class: "access-disclosure-body" }, JG = {
44813
44805
  class: "access-member-list",
44814
44806
  "aria-label": "成员接入"
44815
- }, ZG = { class: "access-member-copy" }, QG = { key: 0 }, $G = { class: "button-row" }, eK = {
44807
+ }, YG = { class: "access-member-copy" }, XG = { key: 0 }, ZG = { class: "button-row" }, QG = {
44816
44808
  key: 0,
44817
44809
  role: "alert",
44818
44810
  class: "access-member-error"
44819
- }, tK = {
44811
+ }, $G = {
44820
44812
  key: 1,
44821
44813
  role: "status",
44822
44814
  class: "fine-print"
44823
- }, nK = { class: "access-reading" }, rK = { class: "access-address" }, iK = {
44815
+ }, eK = { class: "access-reading" }, tK = { class: "access-address" }, nK = {
44824
44816
  key: 2,
44825
44817
  class: "fine-print"
44826
- }, aK = {
44818
+ }, rK = {
44827
44819
  key: 4,
44828
44820
  class: "access-disclosure access-limits"
44829
- }, oK = { class: "access-limit-summary" }, sK = { class: "access-disclosure-body" }, cK = { class: "button-row" }, lK = /*#__PURE__*/ EH({
44821
+ }, iK = { class: "access-limit-summary" }, aK = { class: "access-disclosure-body" }, oK = { class: "button-row" }, sK = /*#__PURE__*/ EH({
44830
44822
  __name: "TopicPanel",
44831
44823
  emits: ["open", "detail"],
44832
44824
  setup(e) {
@@ -44860,7 +44852,7 @@ var SH = {
44860
44852
  transition: { duration: .16 }
44861
44853
  }, {
44862
44854
  default: L(() => [I(t).tab === "topic" ? (U(), W(H, { key: 0 }, [
44863
- K("div", oG, [K("div", null, [
44855
+ K("div", iG, [K("div", null, [
44864
44856
  y[21] ||= K("span", { class: "eyebrow" }, "讨论进程", -1),
44865
44857
  y[22] ||= K("h2", null, "主持与安排", -1),
44866
44858
  K("p", null, "当前由 " + P(I(n).display_name(o.value.host)) + " 主持,围绕具体问题组织下一轮发言。", 1)
@@ -44872,9 +44864,9 @@ var SH = {
44872
44864
  class: "channel-surface-button",
44873
44865
  onClick: y[0] ||= (t) => e.$emit("open", "edit")
44874
44866
  })]),
44875
- K("div", sG, [K("div", null, [y[23] ||= K("h3", null, "讨论目标", -1), K("p", null, P(o.value.goal || "待主持人根据用户原文补全"), 1)]), K("div", null, [y[24] ||= K("h3", null, "当前焦点", -1), K("p", null, P(o.value.focus || "尚未设置当前焦点"), 1)])]),
44876
- K("div", cG, [o.value.limits ? (U(), W("section", lG, [
44877
- K("div", uG, [y[25] ||= K("h3", null, "讨论上限与进度", -1), q(x, {
44867
+ K("div", aG, [K("div", null, [y[23] ||= K("h3", null, "讨论目标", -1), K("p", null, P(o.value.goal || "待主持人根据用户原文补全"), 1)]), K("div", null, [y[24] ||= K("h3", null, "当前焦点", -1), K("p", null, P(o.value.focus || "尚未设置当前焦点"), 1)])]),
44868
+ K("div", oG, [o.value.limits ? (U(), W("section", sG, [
44869
+ K("div", cG, [y[25] ||= K("h3", null, "讨论上限与进度", -1), q(x, {
44878
44870
  color: o.value.limits.reached && o.value.phase !== "concluded" ? "warning" : "neutral",
44879
44871
  variant: "subtle"
44880
44872
  }, {
@@ -44891,15 +44883,15 @@ var SH = {
44891
44883
  onClick: y[1] ||= (e) => I(r)("check_limits")
44892
44884
  }, null, 8, ["loading"])) : Y("", !0),
44893
44885
  y[26] ||= K("p", { class: "fine-print" }, "在“编辑议题”中调整参数。自动模式由接入程序检查;手动模式由主持人或此按钮执行到限处理。", -1)
44894
- ])) : Y("", !0), o.value.floor ? (U(), W("section", dG, [
44895
- K("div", fG, [y[27] ||= K("h3", null, "发言权", -1), q(x, {
44886
+ ])) : Y("", !0), o.value.floor ? (U(), W("section", lG, [
44887
+ K("div", uG, [y[27] ||= K("h3", null, "发言权", -1), q(x, {
44896
44888
  color: "neutral",
44897
44889
  variant: "subtle"
44898
44890
  }, {
44899
44891
  default: L(() => [J(P(I(n).floor_status(o.value)), 1)]),
44900
44892
  _: 1
44901
44893
  })]),
44902
- K("div", pG, [o.value.floor.holder ? (U(), G(b, {
44894
+ K("div", dG, [o.value.floor.holder ? (U(), G(b, {
44903
44895
  key: 1,
44904
44896
  label: "归还发言权",
44905
44897
  loading: I(i) === "return_floor",
@@ -44916,8 +44908,8 @@ var SH = {
44916
44908
  }, null, 8, ["label", "loading"]))]),
44917
44909
  y[28] ||= K("p", { class: "fine-print" }, "发言或安排保存后自动归还;用户本人可随时留言。", -1)
44918
44910
  ])) : Y("", !0)]),
44919
- K("section", mG, [
44920
- K("div", hG, [y[29] ||= K("h3", null, "当前发言安排", -1), q(x, {
44911
+ K("section", fG, [
44912
+ K("div", pG, [y[29] ||= K("h3", null, "当前发言安排", -1), q(x, {
44921
44913
  color: c.value ? "primary" : "neutral",
44922
44914
  variant: "subtle"
44923
44915
  }, {
@@ -44925,7 +44917,7 @@ var SH = {
44925
44917
  _: 1
44926
44918
  }, 8, ["color"])]),
44927
44919
  s.value ? (U(), W(H, { key: 0 }, [
44928
- K("div", gG, [q(S, {
44920
+ K("div", mG, [q(S, {
44929
44921
  src: I(n).identities[s.value.expert]?.icon,
44930
44922
  text: I(n).identities[s.value.expert]?.initials,
44931
44923
  alt: s.value.expert,
@@ -44936,8 +44928,8 @@ var SH = {
44936
44928
  "alt",
44937
44929
  "class"
44938
44930
  ]), K("div", null, [K("strong", null, P(s.value.expert), 1), K("small", null, "发言安排 #" + P(s.value.id), 1)])]),
44939
- K("p", _G, P(s.value.question), 1),
44940
- c.value ? (U(), W("div", vG, [
44931
+ K("p", hG, P(s.value.question), 1),
44932
+ c.value ? (U(), W("div", gG, [
44941
44933
  q(b, {
44942
44934
  icon: "i-lucide-copy",
44943
44935
  label: "复制通知",
@@ -44981,35 +44973,35 @@ var SH = {
44981
44973
  class: "channel-surface-button",
44982
44974
  onClick: y[8] ||= (t) => e.$emit("detail", s.value.answer_id)
44983
44975
  })) : Y("", !0)
44984
- ], 64)) : (U(), W("p", yG, "把下一轮需要回答的问题,交给一位参与者。")),
44985
- c.value ? (U(), W("p", bG, P(I(n).turn_guidance(s.value, o.value)), 1)) : Y("", !0)
44976
+ ], 64)) : (U(), W("p", _G, "把下一轮需要回答的问题,交给一位参与者。")),
44977
+ c.value ? (U(), W("p", vG, P(I(n).turn_guidance(s.value, o.value)), 1)) : Y("", !0)
44986
44978
  ]),
44987
- Array.isArray(o.value.latest_receipts) ? (U(), W("section", xG, [
44979
+ Array.isArray(o.value.latest_receipts) ? (U(), W("section", yG, [
44988
44980
  y[30] ||= K("h3", null, "最新运行回执", -1),
44989
44981
  y[31] ||= K("p", { class: "fine-print" }, "每位参与者最近一条;实际运行结果请查看原文。晚于摘要的回执可能尚未整理。", -1),
44990
- K("div", SG, [(U(!0), W(H, null, B(o.value.latest_receipts, (t) => (U(), G(b, {
44982
+ K("div", bG, [(U(!0), W(H, null, B(o.value.latest_receipts, (t) => (U(), G(b, {
44991
44983
  key: t.id,
44992
44984
  label: `${I(n).display_name(t.author)} #${t.id} · ${new Date(t.created_at).toLocaleString("zh-CN")}${t.id > o.value.state_until ? " · 晚于摘要" : ""}`,
44993
44985
  variant: "link",
44994
44986
  color: "neutral",
44995
44987
  onClick: (n) => e.$emit("detail", t.id)
44996
- }, null, 8, ["label", "onClick"]))), 128)), o.value.latest_receipts.length ? Y("", !0) : (U(), W("span", CG, "尚无运行回执。"))])
44988
+ }, null, 8, ["label", "onClick"]))), 128)), o.value.latest_receipts.length ? Y("", !0) : (U(), W("span", xG, "尚无运行回执。"))])
44997
44989
  ])) : Y("", !0),
44998
- K("div", wG, [K("a", {
44990
+ K("div", SG, [K("a", {
44999
44991
  href: `${d.value}/turns`,
45000
44992
  target: "_blank",
45001
44993
  rel: "noopener",
45002
44994
  class: "subtle-link"
45003
- }, [y[32] ||= J("发言安排历史 ", -1), q(C, { name: "i-lucide-arrow-up-right" })], 8, TG), q(b, {
44995
+ }, [y[32] ||= J("发言安排历史 ", -1), q(C, { name: "i-lucide-arrow-up-right" })], 8, CG), q(b, {
45004
44996
  icon: "i-lucide-plus",
45005
44997
  label: "安排下一位专家",
45006
44998
  class: "channel-primary-button",
45007
44999
  disabled: !u.value,
45008
45000
  onClick: y[9] ||= (t) => e.$emit("open", "schedule")
45009
45001
  }, null, 8, ["disabled"])]),
45010
- u.value ? Y("", !0) : (U(), W("p", EG, P(l.value ? "话题已暂停或收束,修改阶段后可以继续安排。" : c.value ? "先完成或取消当前安排,再安排下一位。" : o.value.limits?.reached ? "已达到讨论上限,请检查到限处理;需要继续时先暂停并调整参数。" : o.value.floor?.holder === o.value.host ? "请先在议题资料中配置参与专家。" : "主持人领取发言权后可安排下一位。"), 1))
45002
+ u.value ? Y("", !0) : (U(), W("p", wG, P(l.value ? "话题已暂停或收束,修改阶段后可以继续安排。" : c.value ? "先完成或取消当前安排,再安排下一位。" : o.value.limits?.reached ? "已达到讨论上限,请检查到限处理;需要继续时先暂停并调整参数。" : o.value.floor?.holder === o.value.host ? "请先在议题资料中配置参与专家。" : "主持人领取发言权后可安排下一位。"), 1))
45011
45003
  ], 64)) : (U(), W(H, { key: 1 }, [
45012
- K("div", DG, [y[33] ||= K("div", null, [K("h2", null, "接入 AI"), K("p", null, "讨论由本机服务唤醒 AI:在这里启动、修正软件连接或查看参与说明;成员进出在进度看板操作。")], -1), f.value ? (U(), G(x, {
45004
+ K("div", TG, [y[33] ||= K("div", null, [K("h2", null, "接入 AI"), K("p", null, "讨论由本机服务唤醒 AI:在这里启动、修正软件连接或查看参与说明;成员进出在进度看板操作。")], -1), f.value ? (U(), G(x, {
45013
45005
  key: 0,
45014
45006
  color: o.value.runtime?.status === "running" ? "primary" : "neutral",
45015
45007
  variant: "subtle"
@@ -45017,21 +45009,21 @@ var SH = {
45017
45009
  default: L(() => [J(P(g.value), 1)]),
45018
45010
  _: 1
45019
45011
  }, 8, ["color"])) : Y("", !0)]),
45020
- f.value ? (U(), W("section", OG, [
45012
+ f.value ? (U(), W("section", EG, [
45021
45013
  y[34] ||= K("strong", null, "实际执行进展", -1),
45022
45014
  K("p", null, P(I(n).execution_label(m.value)), 1),
45023
- o.value.runtime?.status === "running" && (!m.value || ["pending", "dispatched"].includes(m.value.status)) ? (U(), W("p", kG, "尚无 AI 进入记录。请核对本机服务及对应软件的登录和工具权限。")) : Y("", !0)
45015
+ o.value.runtime?.status === "running" && (!m.value || ["pending", "dispatched"].includes(m.value.status)) ? (U(), W("p", DG, "尚无 AI 进入记录。请核对本机服务及对应软件的登录和工具权限。")) : Y("", !0)
45024
45016
  ])) : Y("", !0),
45025
- f.value && I(t).launch.available ? (U(), W("section", AG, [
45017
+ f.value && I(t).launch.available ? (U(), W("section", OG, [
45026
45018
  y[37] ||= K("div", { class: "access-section-title" }, [K("h3", null, "从网页启动"), K("span", { class: "fine-print" }, "本机执行")], -1),
45027
- o.value.runtime?.status === "ready" ? (U(), W(H, { key: 0 }, [q(aG, { participants: [o.value.host, ...Object.keys(o.value.experts || {})] }, null, 8, ["participants"]), q(b, {
45019
+ o.value.runtime?.status === "ready" ? (U(), W(H, { key: 0 }, [q(rG, { participants: [o.value.host, ...Object.keys(o.value.experts || {})] }, null, 8, ["participants"]), q(b, {
45028
45020
  label: "启动讨论",
45029
45021
  icon: "i-lucide-play",
45030
45022
  class: "channel-primary-button",
45031
45023
  loading: I(i) === "launch_current_room",
45032
45024
  onClick: y[10] ||= (e) => I(r)("launch_current_room")
45033
- }, null, 8, ["loading"])], 64)) : o.value.runtime?.status === "paused" && !o.value.archived && !I(t).launch.remote ? (U(), W("div", jG, [
45034
- K("div", MG, [y[35] ||= K("h3", null, "修正本场软件连接", -1), q(b, {
45025
+ }, null, 8, ["loading"])], 64)) : o.value.runtime?.status === "paused" && !o.value.archived && !I(t).launch.remote ? (U(), W("div", kG, [
45026
+ K("div", AG, [y[35] ||= K("h3", null, "修正本场软件连接", -1), q(b, {
45035
45027
  label: "读取本场配置",
45036
45028
  variant: "outline",
45037
45029
  color: "neutral",
@@ -45040,7 +45032,7 @@ var SH = {
45040
45032
  onClick: y[11] ||= (e) => I(r)("load_room_configuration")
45041
45033
  }, null, 8, ["loading"])]),
45042
45034
  y[36] ||= K("div", { class: "access-repair-description" }, [K("p", null, "修正软件路径,或切换 Codex 的 App / CLI 接入。保留原房间、发言进度和会话,保存后到进度看板重启。"), K("p", { class: "fine-print" }, "App 需保持运行,模型与文件权限在 App 内设置。切回 CLI 前须让 App 释放原聊天;未释放时执行仍会暂停。")], -1),
45043
- h.value ? (U(), W("div", NG, [
45035
+ h.value ? (U(), W("div", jG, [
45044
45036
  (U(!0), W(H, null, B(h.value.participants, (e, t) => (U(), W("div", {
45045
45037
  key: t,
45046
45038
  class: "form-two-columns"
@@ -45075,19 +45067,19 @@ var SH = {
45075
45067
  loading: I(i) === "save_room_configuration",
45076
45068
  onClick: y[12] ||= (e) => I(r)("save_room_configuration")
45077
45069
  }, null, 8, ["loading"]),
45078
- h.value.notice ? (U(), W("p", PG, P(h.value.notice), 1)) : Y("", !0)
45070
+ h.value.notice ? (U(), W("p", MG, P(h.value.notice), 1)) : Y("", !0)
45079
45071
  ])) : Y("", !0),
45080
- I(t).launch.repair_error ? (U(), W("p", FG, P(I(t).launch.repair_error), 1)) : Y("", !0)
45081
- ])) : o.value.runtime?.status === "paused" && I(t).launch.remote ? (U(), W("p", IG, "讨论已暂停,可在进度看板重启。线上连接暂不提供已登记房间的软件路径修正。")) : o.value.runtime?.status === "running" ? (U(), W("p", LG, "讨论正在运行。")) : (U(), W("p", RG, "本场讨论已停止或结束,已有记录保留。")),
45072
+ I(t).launch.repair_error ? (U(), W("p", NG, P(I(t).launch.repair_error), 1)) : Y("", !0)
45073
+ ])) : o.value.runtime?.status === "paused" && I(t).launch.remote ? (U(), W("p", PG, "讨论已暂停,可在进度看板重启。线上连接暂不提供已登记房间的软件路径修正。")) : o.value.runtime?.status === "running" ? (U(), W("p", FG, "讨论正在运行。")) : (U(), W("p", IG, "本场讨论已停止或结束,已有记录保留。")),
45082
45074
  y[38] ||= K("p", { class: "access-host-entry" }, [
45083
45075
  J("另一种入口:在 AI 工具对话中调用 "),
45084
45076
  K("code", null, "discuss-host"),
45085
45077
  J(",由当前会话主持。")
45086
45078
  ], -1)
45087
- ])) : f.value ? (U(), W("section", zG, [q(aG, { participants: [o.value.host, ...Object.keys(o.value.experts || {})] }, null, 8, ["participants"]), K("details", null, [
45079
+ ])) : f.value ? (U(), W("section", LG, [q(rG, { participants: [o.value.host, ...Object.keys(o.value.experts || {})] }, null, 8, ["participants"]), K("details", null, [
45088
45080
  y[50] ||= K("summary", null, "手动下载与登记配置", -1),
45089
- K("div", BG, [y[40] ||= K("h3", null, "首次接入", -1), K("a", VG, [y[39] ||= J("配置说明 ", -1), q(C, { name: "i-lucide-arrow-up-right" })])]),
45090
- K("ol", HG, [
45081
+ K("div", RG, [y[40] ||= K("h3", null, "首次接入", -1), K("a", zG, [y[39] ||= J("配置说明 ", -1), q(C, { name: "i-lucide-arrow-up-right" })])]),
45082
+ K("ol", BG, [
45091
45083
  K("li", null, [
45092
45084
  y[41] ||= K("span", { class: "access-step-number" }, "1", -1),
45093
45085
  y[42] ||= K("div", null, [K("h4", null, "下载接入配置"), K("p", null, "包含当前房间信息。下载后,补齐本机软件路径与会话配置。")], -1),
@@ -45103,7 +45095,7 @@ var SH = {
45103
45095
  K("li", null, [y[45] ||= K("span", { class: "access-step-number" }, "2", -1), K("div", null, [
45104
45096
  y[43] ||= K("h4", null, "登记到本机服务", -1),
45105
45097
  y[44] ||= K("p", null, "在下载文件所在目录执行;也可以将文件名换成完整路径。", -1),
45106
- K("div", UG, [K("code", null, P(_.value), 1), q(b, {
45098
+ K("div", VG, [K("code", null, P(_.value), 1), q(b, {
45107
45099
  icon: "i-lucide-copy",
45108
45100
  color: "neutral",
45109
45101
  variant: "ghost",
@@ -45114,7 +45106,7 @@ var SH = {
45114
45106
  K("li", null, [y[49] ||= K("span", { class: "access-step-number" }, "3", -1), K("div", null, [
45115
45107
  y[47] ||= K("h4", null, "启动服务,保持终端打开", -1),
45116
45108
  y[48] ||= K("p", null, "启动服务不会自动开始讨论。已暂停的讨论可在进度看板点“重启”。", -1),
45117
- K("div", WG, [y[46] ||= K("code", null, "codiscuss", -1), q(b, {
45109
+ K("div", HG, [y[46] ||= K("code", null, "codiscuss", -1), q(b, {
45118
45110
  icon: "i-lucide-copy",
45119
45111
  color: "neutral",
45120
45112
  variant: "ghost",
@@ -45124,10 +45116,10 @@ var SH = {
45124
45116
  ])])
45125
45117
  ])
45126
45118
  ])])) : Y("", !0),
45127
- !f.value || !I(t).launch.available ? (U(), W("details", GG, [K("summary", null, [y[51] ||= K("span", null, [J("项目与工作目录 "), K("small", null, "可选")], -1), q(C, {
45119
+ !f.value || !I(t).launch.available ? (U(), W("details", UG, [K("summary", null, [y[51] ||= K("span", null, [J("项目与工作目录 "), K("small", null, "可选")], -1), q(C, {
45128
45120
  name: "i-lucide-chevron-down",
45129
45121
  class: "disclosure-icon"
45130
- })]), K("div", KG, [y[52] ||= K("p", null, "指定 AI 使用的本机项目和目录,留空使用默认位置。仅保存在本机配置中。", -1), K("div", qG, [q(T, { label: "AI 软件中的项目" }, {
45122
+ })]), K("div", WG, [y[52] ||= K("p", null, "指定 AI 使用的本机项目和目录,留空使用默认位置。仅保存在本机配置中。", -1), K("div", GG, [q(T, { label: "AI 软件中的项目" }, {
45131
45123
  default: L(() => [q(E, {
45132
45124
  "model-value": I(t).fields["runtime-project"],
45133
45125
  placeholder: "项目名称",
@@ -45150,9 +45142,9 @@ var SH = {
45150
45142
  }, [K("summary", null, [K("span", null, P(f.value ? "成员参与说明与阅读地址" : "复制指令,交给对应的 AI"), 1), q(C, {
45151
45143
  name: "i-lucide-chevron-down",
45152
45144
  class: "disclosure-icon"
45153
- })]), K("div", YG, [
45145
+ })]), K("div", qG, [
45154
45146
  y[54] ||= K("p", { class: "fine-print" }, "手动接入的本地 AI 使用自己的私有配置;程序唤醒的成员等待本机任务,使用本次执行凭据。网页 AI 只能阅读房间,真实回答由你或授权主持人代发。", -1),
45155
- K("ul", XG, [(U(!0), W(H, null, B(p.value.members || [], (e) => (U(), W("li", { key: e.name }, [
45147
+ K("ul", JG, [(U(!0), W(H, null, B(p.value.members || [], (e) => (U(), W("li", { key: e.name }, [
45156
45148
  q(S, {
45157
45149
  src: I(n).identities[e.name]?.icon,
45158
45150
  text: I(n).identities[e.name]?.initials,
@@ -45165,12 +45157,12 @@ var SH = {
45165
45157
  "alt",
45166
45158
  "class"
45167
45159
  ]),
45168
- K("div", ZG, [
45160
+ K("div", YG, [
45169
45161
  K("strong", null, P(e.name), 1),
45170
45162
  K("span", null, P(e.access === "online" ? "网页代发" : e.access === "runner" ? "本机唤醒 · 自行发言" : "手动接入 · 自行发言"), 1),
45171
- e.access !== "online" && !e.available ? (U(), W("small", QG, "当前浏览器没有此成员的私有配置")) : Y("", !0)
45163
+ e.access !== "online" && !e.available ? (U(), W("small", XG, "当前浏览器没有此成员的私有配置")) : Y("", !0)
45172
45164
  ]),
45173
- K("div", $G, [e.access === "online" ? Y("", !0) : (U(), G(b, {
45165
+ K("div", ZG, [e.access === "online" ? Y("", !0) : (U(), G(b, {
45174
45166
  key: 0,
45175
45167
  icon: "i-lucide-download",
45176
45168
  label: "私有配置",
@@ -45199,25 +45191,25 @@ var SH = {
45199
45191
  "onClick"
45200
45192
  ])])
45201
45193
  ]))), 128))]),
45202
- p.value.error ? (U(), W("p", eK, P(p.value.error), 1)) : p.value.notice ? (U(), W("p", tK, P(p.value.notice), 1)) : Y("", !0),
45194
+ p.value.error ? (U(), W("p", QG, P(p.value.error), 1)) : p.value.notice ? (U(), W("p", $G, P(p.value.notice), 1)) : Y("", !0),
45203
45195
  y[55] ||= K("p", { class: "fine-print" }, "复制说明或下载配置不代表 AI 已接入,请以实际回答和运行记录为准。", -1),
45204
- K("details", nK, [y[53] ||= K("summary", null, "查看房间阅读地址", -1), K("div", rK, [K("code", null, P(d.value), 1), q(b, {
45196
+ K("details", eK, [y[53] ||= K("summary", null, "查看房间阅读地址", -1), K("div", tK, [K("code", null, P(d.value), 1), q(b, {
45205
45197
  icon: "i-lucide-copy",
45206
45198
  color: "neutral",
45207
45199
  variant: "ghost",
45208
45200
  "aria-label": "复制阅读地址",
45209
45201
  onClick: y[18] ||= (e) => I(r)("copy", d.value)
45210
45202
  })])]),
45211
- d.value.includes("127.0.0.1") || d.value.includes("localhost") ? (U(), W("p", iK, "本机地址仅本机可访问。在线 AI 需要公网阅读地址,或由用户提供材料。")) : Y("", !0)
45212
- ])], 8, JG),
45213
- o.value.limits ? (U(), W("details", aK, [K("summary", null, [
45203
+ d.value.includes("127.0.0.1") || d.value.includes("localhost") ? (U(), W("p", nK, "本机地址仅本机可访问。在线 AI 需要公网阅读地址,或由用户提供材料。")) : Y("", !0)
45204
+ ])], 8, KG),
45205
+ o.value.limits ? (U(), W("details", rK, [K("summary", null, [
45214
45206
  y[56] ||= K("span", null, "讨论上限与进度", -1),
45215
- K("span", oK, P(v.value), 1),
45207
+ K("span", iK, P(v.value), 1),
45216
45208
  q(C, {
45217
45209
  name: "i-lucide-chevron-down",
45218
45210
  class: "disclosure-icon"
45219
45211
  })
45220
- ]), K("div", sK, [K("p", null, P(I(n).limits_label(o.value.limits)), 1), K("div", cK, [q(b, {
45212
+ ]), K("div", aK, [K("p", null, P(I(n).limits_label(o.value.limits)), 1), K("div", oK, [q(b, {
45221
45213
  icon: "i-lucide-pencil",
45222
45214
  label: "编辑讨论上限",
45223
45215
  variant: "outline",
@@ -45242,7 +45234,7 @@ var SH = {
45242
45234
  ]);
45243
45235
  };
45244
45236
  }
45245
- }, [["__scopeId", "data-v-ab9ca204"]]), uK = {
45237
+ }, [["__scopeId", "data-v-ab9ca204"]]), cK = {
45246
45238
  slots: {
45247
45239
  overlay: "fixed inset-0",
45248
45240
  content: "bg-default divide-y divide-default flex flex-col focus:outline-none",
@@ -45284,7 +45276,7 @@ var SH = {
45284
45276
  fullscreen: !1,
45285
45277
  class: { content: "top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 max-h-[calc(100dvh-2rem)] sm:max-h-[calc(100dvh-4rem)] overflow-hidden" }
45286
45278
  }]
45287
- }, dK = {
45279
+ }, lK = {
45288
45280
  __name: "Modal",
45289
45281
  props: {
45290
45282
  title: {
@@ -45375,7 +45367,7 @@ var SH = {
45375
45367
  let n = e, r = t, i = Aa(), a = AE("modal", n), { t: o } = th(), s = Cm(), c = jE(om(a, "open", "defaultOpen", "modal", "unmountOnHide"), r), l = SE(/* @__PURE__ */ Sn(() => a.portal)), u = /* @__PURE__ */ Sn(() => a.content), d = Z(() => a.dismissible ? { pointerDownOutside: (e) => jV(e, { scrollable: a.scrollable }) } : ["interactOutside", "escapeKeyDown"].reduce((e, t) => (e[t] = (e) => {
45376
45368
  e.preventDefault(), r("close:prevent");
45377
45369
  }, e), {})), [f, p] = _m(), m = Z(() => oA({
45378
- extend: uK,
45370
+ extend: cK,
45379
45371
  ...s.ui?.modal || {}
45380
45372
  })({
45381
45373
  transition: a.transition,
@@ -45500,10 +45492,10 @@ var SH = {
45500
45492
  _: 3
45501
45493
  }, 16));
45502
45494
  }
45503
- }, fK = { slots: {
45495
+ }, uK = { slots: {
45504
45496
  root: "",
45505
45497
  content: "data-[state=open]:animate-[collapsible-down_200ms_var(--ease-out)] data-[state=closed]:animate-[collapsible-up_200ms_var(--ease-out)] data-[state=closed]:overflow-hidden"
45506
- } }, pK = {
45498
+ } }, dK = {
45507
45499
  __name: "Collapsible",
45508
45500
  props: {
45509
45501
  as: {
@@ -45539,7 +45531,7 @@ var SH = {
45539
45531
  emits: ["update:open"],
45540
45532
  setup(e, { emit: t }) {
45541
45533
  let n = e, r = t, i = Aa(), a = AE("collapsible", n), o = Cm(), s = jE(om(a, "as", "defaultOpen", "open", "disabled", "unmountOnHide"), r), c = Z(() => oA({
45542
- extend: fK,
45534
+ extend: uK,
45543
45535
  ...o.ui?.collapsible || {}
45544
45536
  })());
45545
45537
  return (e, t) => (U(), G(I(Kg), X(I(s), {
@@ -45562,7 +45554,7 @@ var SH = {
45562
45554
  _: 3
45563
45555
  }, 16, ["class"]));
45564
45556
  }
45565
- }, mK = {
45557
+ }, fK = {
45566
45558
  slots: {
45567
45559
  root: "relative flex items-start",
45568
45560
  container: "flex items-center",
@@ -45950,7 +45942,7 @@ var SH = {
45950
45942
  variant: "list",
45951
45943
  indicator: "start"
45952
45944
  }
45953
- }, hK = /*@__PURE__*/ Object.assign({ inheritAttrs: !1 }, {
45945
+ }, pK = /*@__PURE__*/ Object.assign({ inheritAttrs: !1 }, {
45954
45946
  __name: "Checkbox",
45955
45947
  props: {
45956
45948
  as: {
@@ -46044,7 +46036,7 @@ var SH = {
46044
46036
  let { "data-state": e, ...t } = C;
46045
46037
  return t;
46046
46038
  }), T = Z(() => oA({
46047
- extend: mK,
46039
+ extend: fK,
46048
46040
  ...o.ui?.checkbox || {}
46049
46041
  })({
46050
46042
  size: b.value,
@@ -46135,22 +46127,22 @@ var SH = {
46135
46127
  "class"
46136
46128
  ]));
46137
46129
  }
46138
- }), gK = {
46130
+ }), mK = {
46139
46131
  class: "limit-picker",
46140
46132
  role: "group",
46141
46133
  "aria-label": "讨论轮次和时长"
46142
- }, _K = { class: "limit-field-heading" }, vK = ["for"], yK = [
46134
+ }, hK = { class: "limit-field-heading" }, gK = ["for"], _K = [
46143
46135
  "aria-pressed",
46144
46136
  "aria-label",
46145
46137
  "onClick"
46146
- ], bK = [
46138
+ ], vK = [
46147
46139
  "id",
46148
46140
  "disabled",
46149
46141
  "aria-label"
46150
- ], xK = { key: 0 }, SK = {
46142
+ ], yK = { key: 0 }, bK = {
46151
46143
  key: 1,
46152
46144
  class: "limit-trigger-value"
46153
- }, CK = { class: "limit-editor" }, wK = { class: "limit-editor-heading" }, TK = ["aria-label", "onClick"], EK = { class: "limit-columns" }, DK = [
46145
+ }, xK = { class: "limit-editor" }, SK = { class: "limit-editor-heading" }, CK = ["aria-label", "onClick"], wK = { class: "limit-columns" }, TK = [
46154
46146
  "onKeydown",
46155
46147
  "onWheel",
46156
46148
  "onPointerdown",
@@ -46158,16 +46150,16 @@ var SH = {
46158
46150
  "onPointerup",
46159
46151
  "onPointercancel",
46160
46152
  "onLostpointercapture"
46161
- ], OK = [
46153
+ ], EK = [
46162
46154
  "aria-label",
46163
46155
  "aria-valuemin",
46164
46156
  "aria-valuemax",
46165
46157
  "aria-valuenow",
46166
46158
  "aria-valuetext"
46167
- ], kK = {
46159
+ ], DK = {
46168
46160
  class: "limit-wheel-rows",
46169
46161
  "aria-hidden": "true"
46170
- }, AK = { class: "limit-exact-value" }, jK = [
46162
+ }, OK = { class: "limit-exact-value" }, kK = [
46171
46163
  "min",
46172
46164
  "max",
46173
46165
  "value",
@@ -46176,12 +46168,12 @@ var SH = {
46176
46168
  "onInput",
46177
46169
  "onBlur",
46178
46170
  "onKeydown"
46179
- ], MK = { "aria-hidden": "true" };
46180
- function NK(e) {
46171
+ ], AK = { "aria-hidden": "true" };
46172
+ function jK(e) {
46181
46173
  let t = Math.floor(e / 60), n = e % 60;
46182
46174
  return [t && `${t} 小时`, n && `${n} 分钟`].filter(Boolean).join(" ") || "0 分钟";
46183
46175
  }
46184
- var PK = /*#__PURE__*/ EH({
46176
+ var MK = /*#__PURE__*/ EH({
46185
46177
  __name: "LimitPicker",
46186
46178
  props: {
46187
46179
  rounds: {
@@ -46245,7 +46237,7 @@ var PK = /*#__PURE__*/ EH({
46245
46237
  target: null,
46246
46238
  hand: null,
46247
46239
  pointer: null
46248
- }))), u = 0, d = 0, f = (e, t, n = 0) => Math.min(t, Math.max(n, e)), p = (e) => f(Math.round(e.x), e.max, e.min), m = (e) => l.filter((t) => t.field === e.key), h = (e) => c.find((t) => t.key === e.field), g = (e) => e.key === "rounds" ? `${e.selected} 轮` : NK(e.selected), _ = (e, t, n) => -((2 * Math.PI * n) ** 2) * e - 4 * Math.PI * n * t;
46240
+ }))), u = 0, d = 0, f = (e, t, n = 0) => Math.min(t, Math.max(n, e)), p = (e) => f(Math.round(e.x), e.max, e.min), m = (e) => l.filter((t) => t.field === e.key), h = (e) => c.find((t) => t.key === e.field), g = (e) => e.key === "rounds" ? `${e.selected} 轮` : jK(e.selected), _ = (e, t, n) => -((2 * Math.PI * n) ** 2) * e - 4 * Math.PI * n * t;
46249
46241
  function v(e, t) {
46250
46242
  D(e, t), e.selected = e.x, e.draft = String(e.selected);
46251
46243
  }
@@ -46382,10 +46374,10 @@ var PK = /*#__PURE__*/ EH({
46382
46374
  });
46383
46375
  }, { immediate: !0 }), ta(() => cancelAnimationFrame(u)), t({ settle: oe }), (e, t) => {
46384
46376
  let n = sA, r = pH;
46385
- return U(), W("div", gK, [(U(!0), W(H, null, B(c, (e) => (U(), W("div", {
46377
+ return U(), W("div", mK, [(U(!0), W(H, null, B(c, (e) => (U(), W("div", {
46386
46378
  key: e.key,
46387
46379
  class: "limit-field"
46388
- }, [K("div", _K, [K("label", { for: `limit-trigger-${e.key}` }, P(e.label), 9, vK), K("button", {
46380
+ }, [K("div", hK, [K("label", { for: `limit-trigger-${e.key}` }, P(e.label), 9, gK), K("button", {
46389
46381
  type: "button",
46390
46382
  class: "limit-unlimited",
46391
46383
  "aria-pressed": e.unlimited,
@@ -46394,7 +46386,7 @@ var PK = /*#__PURE__*/ EH({
46394
46386
  }, [q(n, {
46395
46387
  name: "i-lucide-infinity",
46396
46388
  "aria-hidden": "true"
46397
- }), t[0] ||= K("span", null, "不限", -1)], 8, yK)]), q(r, {
46389
+ }), t[0] ||= K("span", null, "不限", -1)], 8, _K)]), q(r, {
46398
46390
  open: e.open,
46399
46391
  content: {
46400
46392
  align: e.key === "rounds" ? "start" : "end",
@@ -46404,12 +46396,12 @@ var PK = /*#__PURE__*/ EH({
46404
46396
  ui: { content: `limit-popover-content ${e.key === "minutes" ? "limit-duration-content" : ""}` },
46405
46397
  "onUpdate:open": (t) => x(e, t)
46406
46398
  }, {
46407
- content: L(() => [K("div", CK, [K("div", wK, [K("span", null, P(e.label), 1), K("button", {
46399
+ content: L(() => [K("div", xK, [K("div", SK, [K("span", null, P(e.label), 1), K("button", {
46408
46400
  type: "button",
46409
46401
  class: "limit-close",
46410
46402
  "aria-label": `关闭${e.label}选择`,
46411
46403
  onClick: (t) => x(e, !1)
46412
- }, [q(n, { name: "i-lucide-x" })], 8, TK)]), K("div", EK, [(U(!0), W(H, null, B(m(e), (n) => (U(), W("div", {
46404
+ }, [q(n, { name: "i-lucide-x" })], 8, CK)]), K("div", wK, [(U(!0), W(H, null, B(m(e), (n) => (U(), W("div", {
46413
46405
  key: n.key,
46414
46406
  class: M(["limit-track", { "is-editing": n.editing }]),
46415
46407
  onKeydown: (e) => ne(n, e),
@@ -46431,11 +46423,11 @@ var PK = /*#__PURE__*/ EH({
46431
46423
  }, [t[1] ||= K("div", {
46432
46424
  class: "limit-selection",
46433
46425
  "aria-hidden": "true"
46434
- }, null, -1), K("div", kK, [(U(!0), W(H, null, B(A(n), (e) => (U(), W("span", {
46426
+ }, null, -1), K("div", DK, [(U(!0), W(H, null, B(A(n), (e) => (U(), W("span", {
46435
46427
  key: e.index,
46436
46428
  class: M(["limit-wheel-row", { "is-current": e.index === p(n) }]),
46437
46429
  style: j(e.style)
46438
- }, P(e.text), 7))), 128))])], 8, OK), K("div", AK, [K("input", {
46430
+ }, P(e.text), 7))), 128))])], 8, EK), K("div", OK, [K("input", {
46439
46431
  type: "number",
46440
46432
  inputmode: "numeric",
46441
46433
  min: n.min,
@@ -46449,14 +46441,14 @@ var PK = /*#__PURE__*/ EH({
46449
46441
  onKeydown: fu(uu((t) => {
46450
46442
  C(n), x(e, !1);
46451
46443
  }, ["stop", "prevent"]), ["enter"])
46452
- }, null, 40, jK), K("span", MK, P(n.unit), 1)])], 42, DK))), 128))])])]),
46444
+ }, null, 40, kK), K("span", AK, P(n.unit), 1)])], 42, TK))), 128))])])]),
46453
46445
  default: L(() => [K("button", {
46454
46446
  id: `limit-trigger-${e.key}`,
46455
46447
  type: "button",
46456
46448
  class: "limit-trigger",
46457
46449
  disabled: e.unlimited,
46458
46450
  "aria-label": `${e.label}:${e.unlimited ? "不限" : g(e)}`
46459
- }, [e.unlimited ? (U(), W("span", xK, "不限" + P(e.key === "rounds" ? "轮次" : "时长"), 1)) : (U(), W("span", SK, [(U(!0), W(H, null, B(g(e).match(/\d+ \S+/g), (e) => (U(), W("span", { key: e }, P(e), 1))), 128))])), q(n, { name: "i-lucide-chevrons-up-down" })], 8, bK)]),
46451
+ }, [e.unlimited ? (U(), W("span", yK, "不限" + P(e.key === "rounds" ? "轮次" : "时长"), 1)) : (U(), W("span", bK, [(U(!0), W(H, null, B(g(e).match(/\d+ \S+/g), (e) => (U(), W("span", { key: e }, P(e), 1))), 128))])), q(n, { name: "i-lucide-chevrons-up-down" })], 8, vK)]),
46460
46452
  _: 2
46461
46453
  }, 1032, [
46462
46454
  "open",
@@ -46466,16 +46458,16 @@ var PK = /*#__PURE__*/ EH({
46466
46458
  ])]))), 128))]);
46467
46459
  };
46468
46460
  }
46469
- }, [["__scopeId", "data-v-859a6440"]]), FK = { class: "effort-field" }, IK = {
46461
+ }, [["__scopeId", "data-v-859a6440"]]), NK = { class: "effort-field" }, PK = {
46470
46462
  key: 0,
46471
46463
  class: "effort-caption",
46472
46464
  "aria-hidden": "true"
46473
- }, LK = [
46465
+ }, FK = [
46474
46466
  "aria-label",
46475
46467
  "aria-valuemax",
46476
46468
  "aria-valuenow",
46477
46469
  "aria-valuetext"
46478
- ], RK = ["title"], zK = 4.5, BK = 6, VK = 8, HK = 1 / 240, UK = .001, WK = .01, GK = .05, KK = 10, qK = 4, JK = /*#__PURE__*/ EH({
46470
+ ], IK = ["title"], LK = 4.5, RK = 6, zK = 8, BK = 1 / 240, VK = .001, HK = .01, UK = .05, WK = 10, GK = 4, KK = /*#__PURE__*/ EH({
46479
46471
  __name: "EffortSlider",
46480
46472
  props: {
46481
46473
  items: {
@@ -46505,18 +46497,18 @@ var PK = /*#__PURE__*/ EH({
46505
46497
  pointer: null
46506
46498
  }), l = Z(() => Math.min(o.value, Math.max(0, c.x)) / o.value), u = Z(() => Math.round(Math.min(o.value, Math.max(0, c.x)))), d = 0, f = 0, p = 0, m = 0, h = !1, g = (e) => Math.min(o.value, Math.max(0, e)), _ = (e, t, n) => -((2 * Math.PI * n) ** 2) * e - 4 * Math.PI * n * t;
46507
46499
  function v(e) {
46508
- let t = c.hand ?? c.target, n = c.hand === null ? zK : BK, r = (e, r) => _(e - t, r, n) + (e < 0 || e > o.value ? _(e - g(e), r, VK) : 0), i = c.x, a = c.v, s = r(i, a), l = a + s * e / 2, u = r(i + a * e / 2, l), d = a + u * e / 2, f = r(i + l * e / 2, d), p = a + f * e, m = r(i + d * e, p);
46500
+ let t = c.hand ?? c.target, n = c.hand === null ? LK : RK, r = (e, r) => _(e - t, r, n) + (e < 0 || e > o.value ? _(e - g(e), r, zK) : 0), i = c.x, a = c.v, s = r(i, a), l = a + s * e / 2, u = r(i + a * e / 2, l), d = a + u * e / 2, f = r(i + l * e / 2, d), p = a + f * e, m = r(i + d * e, p);
46509
46501
  c.x += e * (a + 2 * l + 2 * d + p) / 6, c.v += e * (s + 2 * u + 2 * f + m) / 6;
46510
46502
  }
46511
46503
  function y(e) {
46512
46504
  d = 0;
46513
- let t = Math.min(GK, (e - f) / 1e3);
46505
+ let t = Math.min(UK, (e - f) / 1e3);
46514
46506
  for (f = e; t > 0;) {
46515
- let e = Math.min(HK, t);
46507
+ let e = Math.min(BK, t);
46516
46508
  v(e), t -= e;
46517
46509
  }
46518
46510
  let n = c.hand ?? c.target;
46519
- Math.abs(c.x - n) < UK && Math.abs(c.v) < WK ? (c.x = n, c.v = 0) : d = requestAnimationFrame(y);
46511
+ Math.abs(c.x - n) < VK && Math.abs(c.v) < HK ? (c.x = n, c.v = 0) : d = requestAnimationFrame(y);
46520
46512
  }
46521
46513
  function b() {
46522
46514
  i.value ? (cancelAnimationFrame(d), d = 0, c.x = c.hand ?? c.target, c.v = 0) : d ||= (f = performance.now(), requestAnimationFrame(y));
@@ -46526,17 +46518,17 @@ var PK = /*#__PURE__*/ EH({
46526
46518
  }
46527
46519
  function S(e) {
46528
46520
  let t = a.value.getBoundingClientRect();
46529
- return g((e.clientX - t.left - KK) / Math.max(1, t.width - 20) * o.value);
46521
+ return g((e.clientX - t.left - WK) / Math.max(1, t.width - 20) * o.value);
46530
46522
  }
46531
46523
  function C(e) {
46532
46524
  e.isPrimary && e.button === 0 && c.pointer === null && (e.preventDefault(), a.value.focus(), a.value.setPointerCapture(e.pointerId), c.pointer = e.pointerId, p = e.clientX, h = !1, m = e.target.closest(".effort-slider-thumb") ? c.x - S(e) : 0, c.hand = g(S(e) + m), b());
46533
46525
  }
46534
46526
  function w(e) {
46535
- c.pointer === e.pointerId && (h ||= Math.abs(e.clientX - p) > qK, c.hand = g(S(e) + m), b());
46527
+ c.pointer === e.pointerId && (h ||= Math.abs(e.clientX - p) > GK, c.hand = g(S(e) + m), b());
46536
46528
  }
46537
46529
  function T(e) {
46538
46530
  if (c.pointer !== e.pointerId) return;
46539
- let t = h ? c.x + c.v / (4 * Math.PI * zK) : c.hand;
46531
+ let t = h ? c.x + c.v / (4 * Math.PI * LK) : c.hand;
46540
46532
  c.hand = null, c.pointer = null, x(t);
46541
46533
  }
46542
46534
  function E(e) {
@@ -46559,7 +46551,7 @@ var PK = /*#__PURE__*/ EH({
46559
46551
  i
46560
46552
  ], () => {
46561
46553
  c.target = s.value, b();
46562
- }), ta(() => cancelAnimationFrame(d)), (t, n) => (U(), W("div", FK, [e.caption ? (U(), W("div", IK, [K("span", null, P(e.caption), 1), q(Cc, {
46554
+ }), ta(() => cancelAnimationFrame(d)), (t, n) => (U(), W("div", NK, [e.caption ? (U(), W("div", PK, [K("span", null, P(e.caption), 1), q(Cc, {
46563
46555
  name: I(i) ? "" : "effort-value",
46564
46556
  mode: "out-in"
46565
46557
  }, {
@@ -46597,47 +46589,47 @@ var PK = /*#__PURE__*/ EH({
46597
46589
  "aria-hidden": "true",
46598
46590
  style: j({ "--at": t / o.value }),
46599
46591
  title: e.label
46600
- }, null, 14, RK))), 128)),
46592
+ }, null, 14, IK))), 128)),
46601
46593
  n[1] ||= K("span", {
46602
46594
  class: "effort-slider-thumb",
46603
46595
  "aria-hidden": "true"
46604
46596
  }, null, -1)
46605
- ], 46, LK)]));
46597
+ ], 46, FK)]));
46606
46598
  }
46607
- }, [["__scopeId", "data-v-f27db748"]]), YK = ["data-identity", "data-face"], XK = ["inert", "aria-hidden"], ZK = { class: "expert-card-identity" }, QK = {
46599
+ }, [["__scopeId", "data-v-f27db748"]]), qK = ["data-identity", "data-face"], JK = ["inert", "aria-hidden"], YK = { class: "expert-card-identity" }, XK = {
46608
46600
  key: 0,
46609
46601
  class: "expert-card-badge"
46610
- }, $K = { class: "expert-card-facts" }, eq = ["title"], tq = ["title"], nq = {
46602
+ }, ZK = { class: "expert-card-facts" }, QK = ["title"], $K = ["title"], eq = {
46611
46603
  key: 0,
46612
46604
  class: "expert-card-flip"
46613
- }, rq = { class: "expert-card-tools" }, iq = [
46605
+ }, tq = { class: "expert-card-tools" }, nq = [
46614
46606
  "aria-pressed",
46615
46607
  "aria-label",
46616
46608
  "title"
46617
- ], aq = ["aria-label"], oq = ["inert", "aria-hidden"], sq = { class: "expert-card-back-body" }, cq = { class: "expert-card-heading" }, lq = ["role"], uq = ["aria-label"], dq = [
46609
+ ], rq = ["aria-label"], iq = ["inert", "aria-hidden"], aq = { class: "expert-card-back-body" }, oq = { class: "expert-card-heading" }, sq = ["role"], cq = ["aria-label"], lq = [
46618
46610
  "aria-checked",
46619
46611
  "tabindex",
46620
46612
  "data-mode",
46621
46613
  "onClick"
46622
- ], fq = {
46614
+ ], uq = {
46623
46615
  key: 2,
46624
46616
  class: "expert-card-field"
46625
- }, pq = {
46617
+ }, dq = {
46626
46618
  key: 3,
46627
46619
  class: "expert-card-field"
46628
- }, mq = ["aria-label"], hq = ["aria-checked", "onClick"], gq = { class: "expert-card-field" }, _q = {
46620
+ }, fq = ["aria-label"], pq = ["aria-checked", "onClick"], mq = { class: "expert-card-field" }, hq = {
46629
46621
  key: 0,
46630
46622
  class: "expert-card-catalog"
46631
- }, vq = {
46623
+ }, gq = {
46632
46624
  key: 1,
46633
46625
  class: "expert-card-effort"
46634
- }, yq = {
46626
+ }, _q = {
46635
46627
  key: 2,
46636
46628
  class: "expert-card-note"
46637
- }, bq = ["aria-label", "disabled"], xq = {
46629
+ }, vq = ["aria-label", "disabled"], yq = {
46638
46630
  key: 6,
46639
46631
  class: "expert-card-note"
46640
- }, Sq = { class: "expert-card-flip-actions" }, Cq = ["aria-label"], wq = ["aria-label"], Tq = 180, Eq = /*#__PURE__*/ EH({
46632
+ }, bq = { class: "expert-card-flip-actions" }, xq = ["aria-label"], Sq = ["aria-label"], Cq = 180, wq = /*#__PURE__*/ EH({
46641
46633
  __name: "ExpertCard",
46642
46634
  props: {
46643
46635
  name: {
@@ -46768,7 +46760,7 @@ var PK = /*#__PURE__*/ EH({
46768
46760
  });
46769
46761
  }
46770
46762
  function se(e) {
46771
- let t = e >= Tq / 2;
46763
+ let t = e >= Cq / 2;
46772
46764
  f.value !== t && (f.value = t, oe());
46773
46765
  }
46774
46766
  let ce = o.on("change", se), le = o.on("animationComplete", oe), ue = null;
@@ -46800,7 +46792,7 @@ var PK = /*#__PURE__*/ EH({
46800
46792
  d.value && (e.stopPropagation(), e.preventDefault(), fe());
46801
46793
  }
46802
46794
  return R([d, s], ([e, t]) => {
46803
- let n = e ? Tq : 0;
46795
+ let n = e ? Cq : 0;
46804
46796
  t ? (o.jump(n), oe()) : o.set(n);
46805
46797
  }), R(() => [
46806
46798
  w.value,
@@ -46841,7 +46833,7 @@ var PK = /*#__PURE__*/ EH({
46841
46833
  onClick: n[0] ||= (e) => de(!0)
46842
46834
  }, {
46843
46835
  default: L(() => [
46844
- K("span", ZK, [
46836
+ K("span", YK, [
46845
46837
  q(s, {
46846
46838
  src: I(a).identities[e.name]?.icon,
46847
46839
  text: I(a).identities[e.name]?.initials,
@@ -46855,13 +46847,13 @@ var PK = /*#__PURE__*/ EH({
46855
46847
  "class"
46856
46848
  ]),
46857
46849
  K("strong", null, P(e.name), 1),
46858
- e.host ? (U(), W("span", QK, "主持")) : Y("", !0)
46850
+ e.host ? (U(), W("span", XK, "主持")) : Y("", !0)
46859
46851
  ]),
46860
- K("dl", $K, [K("div", null, [n[9] ||= K("dt", null, "状态", -1), K("dd", {
46852
+ K("dl", ZK, [K("div", null, [n[9] ||= K("dt", null, "状态", -1), K("dd", {
46861
46853
  class: M(["expert-card-status", `is-${e.status.tone}`]),
46862
46854
  title: e.status.text
46863
- }, [n[8] ||= K("i", { "aria-hidden": "true" }, null, -1), J(P(e.status.text), 1)], 10, eq)]), (U(!0), W(H, null, B(re.value, (e) => (U(), W("div", { key: e.label }, [K("dt", null, P(e.label), 1), K("dd", { title: e.value }, P(e.value), 9, tq)]))), 128))]),
46864
- x.value ? (U(), W("span", nq, [q(d, { name: "i-lucide-settings-2" }), n[10] ||= J("设置", -1)])) : Y("", !0)
46855
+ }, [n[8] ||= K("i", { "aria-hidden": "true" }, null, -1), J(P(e.status.text), 1)], 10, QK)]), (U(!0), W(H, null, B(re.value, (e) => (U(), W("div", { key: e.label }, [K("dt", null, P(e.label), 1), K("dd", { title: e.value }, P(e.value), 9, $K)]))), 128))]),
46856
+ x.value ? (U(), W("span", eq, [q(d, { name: "i-lucide-settings-2" }), n[10] ||= J("设置", -1)])) : Y("", !0)
46865
46857
  ]),
46866
46858
  _: 1
46867
46859
  }, 8, [
@@ -46869,7 +46861,7 @@ var PK = /*#__PURE__*/ EH({
46869
46861
  "class",
46870
46862
  "aria-label",
46871
46863
  "title"
46872
- ])), K("span", rq, [e.hostable ? (U(), W("button", {
46864
+ ])), K("span", tq, [e.hostable ? (U(), W("button", {
46873
46865
  key: 0,
46874
46866
  type: "button",
46875
46867
  class: "expert-card-host",
@@ -46877,18 +46869,18 @@ var PK = /*#__PURE__*/ EH({
46877
46869
  "aria-label": e.host ? `${e.name} 是主持人` : `设 ${e.name} 为主持人`,
46878
46870
  title: e.host ? "主持人" : "设为主持人",
46879
46871
  onClick: n[1] ||= (e) => r("host")
46880
- }, [q(d, { name: "i-lucide-crown" })], 8, iq)) : Y("", !0), K("button", {
46872
+ }, [q(d, { name: "i-lucide-crown" })], 8, nq)) : Y("", !0), K("button", {
46881
46873
  type: "button",
46882
46874
  "aria-label": `移出 ${e.name}`,
46883
46875
  title: "移出",
46884
46876
  onClick: n[2] ||= (e) => r("remove")
46885
- }, [q(d, { name: "i-lucide-x" })], 8, aq)])], 8, XK), x.value ? (U(), W("div", {
46877
+ }, [q(d, { name: "i-lucide-x" })], 8, rq)])], 8, JK), x.value ? (U(), W("div", {
46886
46878
  key: 0,
46887
46879
  class: "expert-card-face expert-card-back",
46888
46880
  inert: !f.value,
46889
46881
  "aria-hidden": !f.value
46890
- }, [K("div", sq, [
46891
- K("div", cq, [K("strong", null, [J(P(e.name), 1), K("span", null, "设置" + P(ee.value ? " · 不访问项目" : ""), 1)]), _.value ? (U(), G(b, {
46882
+ }, [K("div", aq, [
46883
+ K("div", oq, [K("strong", null, [J(P(e.name), 1), K("span", null, "设置" + P(ee.value ? " · 不访问项目" : ""), 1)]), _.value ? (U(), G(b, {
46892
46884
  key: 0,
46893
46885
  icon: "i-lucide-zap",
46894
46886
  "aria-label": `检查 ${e.name} 的 API 配置`,
@@ -46909,7 +46901,7 @@ var PK = /*#__PURE__*/ EH({
46909
46901
  key: 0,
46910
46902
  role: v.value.state === "error" ? "alert" : "status",
46911
46903
  class: "expert-card-check"
46912
- }, P(v.value.message), 9, lq)) : Y("", !0),
46904
+ }, P(v.value.message), 9, sq)) : Y("", !0),
46913
46905
  e.choices.length > 1 ? (U(), W("div", {
46914
46906
  key: 1,
46915
46907
  class: "expert-card-modes",
@@ -46924,8 +46916,8 @@ var PK = /*#__PURE__*/ EH({
46924
46916
  tabindex: e.mode === t ? 0 : -1,
46925
46917
  "data-mode": t,
46926
46918
  onClick: (e) => r("mode", t)
46927
- }, P(g[t]), 9, dq))), 128))], 40, uq)) : Y("", !0),
46928
- h.value && m.value.length > 1 ? (U(), W("div", fq, [n[11] ||= K("span", null, "接入", -1), q(D, {
46919
+ }, P(g[t]), 9, lq))), 128))], 40, cq)) : Y("", !0),
46920
+ h.value && m.value.length > 1 ? (U(), W("div", uq, [n[11] ||= K("span", null, "接入", -1), q(D, {
46929
46921
  "model-value": p.value.adapter || "",
46930
46922
  items: m.value,
46931
46923
  placeholder: "选择 API / App / CLI",
@@ -46954,7 +46946,7 @@ var PK = /*#__PURE__*/ EH({
46954
46946
  "aria-label",
46955
46947
  "onUpdate:modelValue"
46956
46948
  ])]))), 128)),
46957
- O.value ? (U(), W("div", pq, [n[12] ||= K("span", null, "项目", -1), K("div", {
46949
+ O.value ? (U(), W("div", dq, [n[12] ||= K("span", null, "项目", -1), K("div", {
46958
46950
  class: "expert-card-modes",
46959
46951
  role: "radiogroup",
46960
46952
  "aria-label": `${e.name} 的项目文件权限`
@@ -46970,12 +46962,12 @@ var PK = /*#__PURE__*/ EH({
46970
46962
  role: "radio",
46971
46963
  "aria-checked": ne.value === t.value,
46972
46964
  onClick: (n) => I(a).write_launch(e.name, "project_access", t.value)
46973
- }, P(t.label), 9, hq)), 64))], 8, mq)])) : Y("", !0),
46974
- _.value ? (U(), G(qW, {
46965
+ }, P(t.label), 9, pq)), 64))], 8, fq)])) : Y("", !0),
46966
+ _.value ? (U(), G(GW, {
46975
46967
  key: 4,
46976
46968
  name: e.name
46977
46969
  }, null, 8, ["name"])) : w.value && !A.value.length ? (U(), W(H, { key: 5 }, [
46978
- K("div", gq, [n[13] ||= K("span", null, "模型", -1), q(D, {
46970
+ K("div", mq, [n[13] ||= K("span", null, "模型", -1), q(D, {
46979
46971
  "model-value": p.value.model || "__default__",
46980
46972
  items: C.value.items,
46981
46973
  loading: C.value.loading,
@@ -46991,12 +46983,12 @@ var PK = /*#__PURE__*/ EH({
46991
46983
  "title",
46992
46984
  "aria-label"
46993
46985
  ])]),
46994
- C.value.loading || C.value.error ? (U(), W("div", _q, [K("span", null, P(C.value.loading ? "正在读取软件模型列表…" : C.value.error), 1), !C.value.loading && C.value.error && I(i).launch.available ? (U(), W("button", {
46986
+ C.value.loading || C.value.error ? (U(), W("div", hq, [K("span", null, P(C.value.loading ? "正在读取软件模型列表…" : C.value.error), 1), !C.value.loading && C.value.error && I(i).launch.available ? (U(), W("button", {
46995
46987
  key: 0,
46996
46988
  type: "button",
46997
46989
  onClick: n[5] ||= (t) => I(a).load_launch_models(e.name, !0)
46998
46990
  }, "重试")) : Y("", !0)])) : Y("", !0),
46999
- E.value ? (U(), W("div", vq, [q(JK, {
46991
+ E.value ? (U(), W("div", gq, [q(KK, {
47000
46992
  caption: "强度",
47001
46993
  items: E.value,
47002
46994
  "model-value": p.value.effort || "",
@@ -47006,7 +46998,7 @@ var PK = /*#__PURE__*/ EH({
47006
46998
  "items",
47007
46999
  "model-value",
47008
47000
  "label"
47009
- ])])) : (U(), W("p", yq, P(C.value.effort_note), 1)),
47001
+ ])])) : (U(), W("p", _q, P(C.value.effort_note), 1)),
47010
47002
  K("button", {
47011
47003
  type: "button",
47012
47004
  class: "expert-card-defaults",
@@ -47014,67 +47006,67 @@ var PK = /*#__PURE__*/ EH({
47014
47006
  "aria-label": `恢复 ${e.name} 的默认模型与强度`,
47015
47007
  disabled: !p.value.model && !p.value.effort,
47016
47008
  onClick: pe
47017
- }, "恢复默认", 8, bq)
47018
- ], 64)) : (U(), W("p", xq, [q(d, { name: e.mode === "online" ? "i-lucide-globe" : "i-lucide-monitor" }, null, 8, ["name"]), J(P(T.value), 1)]))
47019
- ]), K("span", Sq, [K("button", {
47009
+ }, "恢复默认", 8, vq)
47010
+ ], 64)) : (U(), W("p", yq, [q(d, { name: e.mode === "online" ? "i-lucide-globe" : "i-lucide-monitor" }, null, 8, ["name"]), J(P(T.value), 1)]))
47011
+ ]), K("span", bq, [K("button", {
47020
47012
  type: "button",
47021
47013
  class: "expert-card-flip is-cancel",
47022
47014
  "aria-label": `放弃 ${e.name} 的修改`,
47023
47015
  onClick: fe
47024
- }, "取消", 8, Cq), K("button", {
47016
+ }, "取消", 8, xq), K("button", {
47025
47017
  ref_key: "back_button",
47026
47018
  ref: u,
47027
47019
  type: "button",
47028
47020
  class: "expert-card-flip is-done",
47029
47021
  "aria-label": `保存并返回 ${e.name} 角色卡片`,
47030
47022
  onClick: n[7] ||= (e) => de(!1)
47031
- }, [q(d, { name: "i-lucide-check" }), n[14] ||= J("完成", -1)], 8, wq)])], 8, oq)) : Y("", !0)]),
47023
+ }, [q(d, { name: "i-lucide-check" }), n[14] ||= J("完成", -1)], 8, Sq)])], 8, iq)) : Y("", !0)]),
47032
47024
  _: 1
47033
- }, 8, ["style"])], 42, YK);
47025
+ }, 8, ["style"])], 42, qK);
47034
47026
  };
47035
47027
  }
47036
- }, [["__scopeId", "data-v-5fa320b7"]]), Dq = { class: "create-discussion" }, Oq = {
47028
+ }, [["__scopeId", "data-v-5fa320b7"]]), Tq = { class: "create-discussion" }, Eq = {
47037
47029
  key: 0,
47038
47030
  class: "channel-create-location"
47039
- }, kq = { class: "create-section" }, Aq = [
47031
+ }, Dq = { class: "create-section" }, Oq = [
47040
47032
  "aria-checked",
47041
47033
  "tabindex",
47042
47034
  "onClick"
47043
- ], jq = { class: "create-mode-copy" }, Mq = { class: "create-section" }, Nq = { class: "fine-print create-hint" }, Pq = {
47035
+ ], kq = { class: "create-mode-copy" }, Aq = { class: "create-section" }, jq = { class: "fine-print create-hint" }, Mq = {
47044
47036
  key: 0,
47045
47037
  class: "create-experts",
47046
47038
  role: "group",
47047
47039
  "aria-label": "参与的 AI"
47048
- }, Fq = {
47040
+ }, Nq = {
47049
47041
  key: 1,
47050
47042
  class: "create-experts-empty"
47051
- }, Iq = [
47043
+ }, Pq = [
47052
47044
  "disabled",
47053
47045
  "title",
47054
47046
  "aria-label",
47055
47047
  "onClick"
47056
- ], Lq = { class: "fine-print create-hint create-host-hint" }, Rq = {
47048
+ ], Fq = { class: "fine-print create-hint create-host-hint" }, Iq = {
47057
47049
  key: 1,
47058
47050
  class: "create-section"
47059
- }, zq = { class: "form-two-columns" }, Bq = { class: "create-host" }, Vq = {
47051
+ }, Lq = { class: "form-two-columns" }, Rq = { class: "create-host" }, zq = {
47060
47052
  class: "create-chips",
47061
47053
  role: "radiogroup",
47062
47054
  "aria-label": "达到上限后"
47063
- }, Hq = ["aria-checked", "onClick"], Uq = {
47055
+ }, Bq = ["aria-checked", "onClick"], Vq = {
47064
47056
  class: "create-limit-rule",
47065
47057
  "aria-live": "polite"
47066
- }, Wq = {
47058
+ }, Hq = {
47067
47059
  key: 2,
47068
47060
  class: "create-section"
47069
- }, Gq = {
47061
+ }, Uq = {
47070
47062
  key: 0,
47071
47063
  role: "alert",
47072
47064
  class: "fine-print create-hint"
47073
- }, Kq = { class: "create-footer" }, qq = {
47065
+ }, Wq = { class: "create-footer" }, Gq = {
47074
47066
  key: 0,
47075
47067
  role: "alert",
47076
47068
  class: "create-error"
47077
- }, Jq = { class: "create-footer-row" }, Yq = ["title"], Xq = "new-expert-modes", Zq = /*#__PURE__*/ EH({
47069
+ }, Kq = { class: "create-footer-row" }, qq = ["title"], Jq = "new-expert-modes", Yq = /*#__PURE__*/ EH({
47078
47070
  __name: "CreateDiscussion",
47079
47071
  props: { targetFolder: {
47080
47072
  type: Object,
@@ -47092,7 +47084,7 @@ var PK = /*#__PURE__*/ EH({
47092
47084
  icon: "i-lucide-message-circle",
47093
47085
  title: "自由协作",
47094
47086
  text: "按需点名 AI,在各自会话中工作"
47095
- }], f = Z(() => r.value.experts[Xq] || {}), p = Z(() => Object.keys(f.value).filter((e) => f.value[e]).sort((e, t) => o.indexOf(i.platform_of(e)) - o.indexOf(i.platform_of(t)) || e.localeCompare(t, "en", { numeric: !0 }))), m = (e) => p.value.filter((t) => i.platform_of(t) === e).length, h = /* @__PURE__ */ F(null), g = Z(() => c("host")), _ = Z(() => p.value.filter((e) => f.value[e] !== "online")), v = /* @__PURE__ */ F(null), y = Z(() => p.value.filter((e) => f.value[e] === "cli")), b = Z(() => !u.value || y.value.length > 0), x = Z(() => y.value.filter((e) => i.launch_clients[e])), S = (e) => {
47087
+ }], f = Z(() => r.value.experts[Jq] || {}), p = Z(() => Object.keys(f.value).filter((e) => f.value[e])), m = (e) => p.value.filter((t) => i.platform_of(t) === e).length, h = /* @__PURE__ */ F(null), g = Z(() => c("host")), _ = Z(() => p.value.filter((e) => f.value[e] !== "online")), v = /* @__PURE__ */ F(null), y = Z(() => p.value.filter((e) => f.value[e] === "cli")), b = Z(() => !u.value || y.value.length > 0), x = Z(() => y.value.filter((e) => i.launch_clients[e])), S = (e) => {
47096
47088
  let t = r.value.launch.profiles[e] || {};
47097
47089
  return t.adapter === "api" ? !!(t.base_url && t.api_protocol && t.api_key_ref && t.model) : !!(t.adapter && (t.adapter === "antigravity" ? t.ipc_directory : t.executable));
47098
47090
  }, C = Z(() => b.value && r.value.launch.available && (u.value || r.value.launch.create)), w = Z(() => p.value.length > 0 && y.value.every(S) && (!y.value.length || r.value.launch.available));
@@ -47123,7 +47115,7 @@ var PK = /*#__PURE__*/ EH({
47123
47115
  "online"
47124
47116
  ] : [];
47125
47117
  function te(e, t) {
47126
- t === "cli" && !O(e) && !r.value.launch.profiles[e]?.adapter && i.write_launch(e, "adapter", "api"), i.write_expert(Xq, e, t), T();
47118
+ t === "cli" && !O(e) && !r.value.launch.profiles[e]?.adapter && i.write_launch(e, "adapter", "api"), i.write_expert(Jq, e, t), T();
47127
47119
  }
47128
47120
  function ne(e) {
47129
47121
  if (f.value[e] === "online") return {
@@ -47147,7 +47139,7 @@ var PK = /*#__PURE__*/ EH({
47147
47139
  return m(e) ? `已加入 ${m(e)} 位 · 可继续添加` : O(e) ? "API / 本地 App / CLI" : u.value ? "API / 网页代发" : "API";
47148
47140
  }
47149
47141
  function ie(e) {
47150
- i.launch_clients[e] && (!O(e) && !r.value.launch.profiles[e]?.adapter && i.write_launch(e, "adapter", "api"), m(e) ? i.add_instance(Xq, e, "cli") : te(e, "cli"), T());
47142
+ i.launch_clients[e] && (!O(e) && !r.value.launch.profiles[e]?.adapter && i.write_launch(e, "adapter", "api"), m(e) ? i.add_instance(Jq, e, "cli") : te(e, "cli"), T());
47151
47143
  }
47152
47144
  function ae(e) {
47153
47145
  te(e, ""), Qn(() => h.value?.querySelector("button:not(:disabled)")?.focus({ preventScroll: !0 }));
@@ -47165,7 +47157,7 @@ var PK = /*#__PURE__*/ EH({
47165
47157
  v.value?.settle(), n("submit");
47166
47158
  }
47167
47159
  let se = Z(() => {
47168
- let e = Number(c("limit-max_rounds")), t = Number(c("limit-max_minutes")), n = [e && `${e} 轮`, t && NK(t)].filter(Boolean);
47160
+ let e = Number(c("limit-max_rounds")), t = Number(c("limit-max_minutes")), n = [e && `${e} 轮`, t && jK(t)].filter(Boolean);
47169
47161
  if (!n.length) return "不设轮次和时长上限。";
47170
47162
  let r = c("limit-on_limit") === "summarize" ? "由主持人总结" : "暂停";
47171
47163
  return `最多 ${n.join(" 或 ")},${n.length === 2 ? "先到则" : "到限后"}${r}。`;
@@ -47176,7 +47168,7 @@ var PK = /*#__PURE__*/ EH({
47176
47168
  `${e.length} 位 AI`,
47177
47169
  g.value ? `${g.value} 主持` : "无主持人"
47178
47170
  ].join(" · ");
47179
- let t = c("limit-max_rounds"), n = c("limit-max_minutes"), r = [t && Number(t) ? `${t} 轮` : "不限轮次", n && Number(n) ? NK(Number(n)) : "不限时长"].join(" / ");
47171
+ let t = c("limit-max_rounds"), n = c("limit-max_minutes"), r = [t && Number(t) ? `${t} 轮` : "不限轮次", n && Number(n) ? jK(Number(n)) : "不限时长"].join(" / ");
47180
47172
  return [
47181
47173
  g.value ? `${i.display_name(g.value)} 主持` : "尚未选择主持人",
47182
47174
  e.length ? `${e.join("、")} 参与` : "尚未选择专家",
@@ -47184,14 +47176,14 @@ var PK = /*#__PURE__*/ EH({
47184
47176
  ].join(" · ");
47185
47177
  });
47186
47178
  return (t, s) => {
47187
- let m = sA, y = GV, S = nH, T = aH, O = pA, le = hK, ue = MA;
47188
- return U(), W("div", Dq, [K("form", {
47179
+ let m = sA, y = GV, S = nH, T = aH, O = pA, le = pK, ue = MA;
47180
+ return U(), W("div", Tq, [K("form", {
47189
47181
  id: "create-discussion-form",
47190
47182
  class: "create-scroll dialog-form",
47191
47183
  onSubmit: uu(oe, ["prevent"])
47192
47184
  }, [
47193
- e.targetFolder?.id ? (U(), W("p", Oq, [q(m, { name: "i-lucide-folder" }), J(P(e.targetFolder.name), 1)])) : Y("", !0),
47194
- K("section", kq, [
47185
+ e.targetFolder?.id ? (U(), W("p", Eq, [q(m, { name: "i-lucide-folder" }), J(P(e.targetFolder.name), 1)])) : Y("", !0),
47186
+ K("section", Dq, [
47195
47187
  s[9] ||= K("h3", null, [K("span", null, "1"), J("这次做什么")], -1),
47196
47188
  K("div", {
47197
47189
  class: "create-modes",
@@ -47206,7 +47198,7 @@ var PK = /*#__PURE__*/ EH({
47206
47198
  "aria-checked": (c("kind") || "brainstorm") === e.value,
47207
47199
  tabindex: (c("kind") || "brainstorm") === e.value ? 0 : -1,
47208
47200
  onClick: (t) => E(e.value)
47209
- }, [q(m, { name: e.icon }, null, 8, ["name"]), K("span", jq, [K("strong", null, P(e.title), 1), K("small", null, P(e.text), 1)])], 10, Aq)), 64))], 32),
47201
+ }, [q(m, { name: e.icon }, null, 8, ["name"]), K("span", kq, [K("strong", null, P(e.title), 1), K("small", null, P(e.text), 1)])], 10, Oq)), 64))], 32),
47210
47202
  q(S, {
47211
47203
  label: "话题名称",
47212
47204
  required: ""
@@ -47243,10 +47235,10 @@ var PK = /*#__PURE__*/ EH({
47243
47235
  _: 1
47244
47236
  }))
47245
47237
  ]),
47246
- K("section", Mq, [
47238
+ K("section", Aq, [
47247
47239
  s[11] ||= K("h3", null, [K("span", null, "2"), J("谁来参与")], -1),
47248
- K("p", Nq, P(u.value ? "每位成员单独选接入:本机唤醒(App / CLI / API)、手动接入(凭证交给你自己的会话)或网页代发(由你转发回答)。" : "讨论全程由本机服务唤醒 AI,可用 App、CLI 或 API;手动接入和网页 AI 请用自由协作。"), 1),
47249
- p.value.length ? (U(), W("div", Pq, [(U(!0), W(H, null, B(p.value, (e) => (U(), G(Eq, {
47240
+ K("p", jq, P(u.value ? "每位成员单独选接入:本机唤醒(App / CLI / API)、手动接入(凭证交给你自己的会话)或网页代发(由你转发回答)。" : "讨论全程由本机服务唤醒 AI,可用 App、CLI 或 API;手动接入和网页 AI 请用自由协作。"), 1),
47241
+ p.value.length ? (U(), W("div", Mq, [(U(!0), W(H, null, B(p.value, (e) => (U(), G(wq, {
47250
47242
  key: e,
47251
47243
  name: e,
47252
47244
  mode: f.value[e],
@@ -47267,7 +47259,7 @@ var PK = /*#__PURE__*/ EH({
47267
47259
  "onHost",
47268
47260
  "onRemove",
47269
47261
  "onMode"
47270
- ]))), 128))])) : (U(), W("p", Fq, "从下方添加 AI;同一平台可添加多位,各自独立会话。")),
47262
+ ]))), 128))])) : (U(), W("p", Nq, "从下方添加 AI;同一平台可添加多位,各自独立会话。")),
47271
47263
  K("div", {
47272
47264
  ref_key: "library",
47273
47265
  ref: h,
@@ -47296,12 +47288,12 @@ var PK = /*#__PURE__*/ EH({
47296
47288
  ]),
47297
47289
  J(P(e), 1),
47298
47290
  q(m, { name: "i-lucide-plus" })
47299
- ], 8, Iq))), 128))], 512),
47300
- K("div", Lq, [q(m, { name: "i-lucide-crown" }), K("span", null, P(u.value ? _.value.length ? "点卡片上的皇冠指定主持人:没 @ 任何人的消息由它分配;其他成员只在被你或主持人点名时发言。" : "网页 AI 不能主持;添加一位本地 AI 后,没 @ 的消息才有人接。" : _.value.length ? "点卡片上的皇冠指定主持人,负责补全议题、安排发言与收束,也可同时作为专家。" : "先添加一位 AI 担任主持人。"), 1)])
47291
+ ], 8, Pq))), 128))], 512),
47292
+ K("div", Fq, [q(m, { name: "i-lucide-crown" }), K("span", null, P(u.value ? _.value.length ? "点卡片上的皇冠指定主持人:没 @ 任何人的消息由它分配;其他成员只在被你或主持人点名时发言。" : "网页 AI 不能主持;添加一位本地 AI 后,没 @ 的消息才有人接。" : _.value.length ? "点卡片上的皇冠指定主持人,负责补全议题、安排发言与收束,也可同时作为专家。" : "先添加一位 AI 担任主持人。"), 1)])
47301
47293
  ]),
47302
- u.value ? Y("", !0) : (U(), W("section", Rq, [
47294
+ u.value ? Y("", !0) : (U(), W("section", Iq, [
47303
47295
  s[14] ||= K("h3", null, [K("span", null, "3"), J("讨论多久")], -1),
47304
- q(PK, {
47296
+ q(MK, {
47305
47297
  ref_key: "limit_picker",
47306
47298
  ref: v,
47307
47299
  rounds: Number(c("limit-max_rounds")),
@@ -47310,7 +47302,7 @@ var PK = /*#__PURE__*/ EH({
47310
47302
  "onUpdate:minutes": s[3] ||= (e) => l("limit-max_minutes", String(e))
47311
47303
  }, null, 8, ["rounds", "minutes"]),
47312
47304
  s[15] ||= K("p", { class: "fine-print create-hint" }, "一轮指每位专家各完成一次观点;首次进入讨论或创建安排后计时,暂停期间不计时。", -1),
47313
- K("div", zq, [q(S, {
47305
+ K("div", Lq, [q(S, {
47314
47306
  label: "单次 AI 执行(分钟)",
47315
47307
  description: "留空或 0 表示不限"
47316
47308
  }, {
@@ -47326,9 +47318,9 @@ var PK = /*#__PURE__*/ EH({
47326
47318
  }, null, 8, ["model-value"])]),
47327
47319
  _: 1
47328
47320
  })]),
47329
- K("div", Bq, [
47321
+ K("div", Rq, [
47330
47322
  s[13] ||= K("span", { class: "create-label" }, "达到任一上限后", -1),
47331
- K("div", Vq, [(U(), W(H, null, B([{
47323
+ K("div", zq, [(U(), W(H, null, B([{
47332
47324
  value: "pause",
47333
47325
  label: "暂停保留现场"
47334
47326
  }, {
@@ -47341,7 +47333,7 @@ var PK = /*#__PURE__*/ EH({
47341
47333
  "aria-checked": (c("limit-on_limit") || "pause") === e.value,
47342
47334
  class: M({ "is-selected": (c("limit-on_limit") || "pause") === e.value }),
47343
47335
  onClick: (t) => l("limit-on_limit", e.value)
47344
- }, P(e.label), 11, Hq)), 64))]),
47336
+ }, P(e.label), 11, Bq)), 64))]),
47345
47337
  c("limit-on_limit") === "summarize" ? (U(), G(y, {
47346
47338
  key: 0,
47347
47339
  "model-value": c("limit-summary_minutes"),
@@ -47357,11 +47349,11 @@ var PK = /*#__PURE__*/ EH({
47357
47349
  _: 1
47358
47350
  }, 8, ["model-value"])) : Y("", !0)
47359
47351
  ]),
47360
- K("p", Uq, [q(m, { name: "i-lucide-flag" }), J(P(se.value), 1)])
47352
+ K("p", Vq, [q(m, { name: "i-lucide-flag" }), J(P(se.value), 1)])
47361
47353
  ])),
47362
- b.value ? (U(), W("section", Wq, [
47354
+ b.value ? (U(), W("section", Hq, [
47363
47355
  K("h3", null, [K("span", null, P(u.value ? 3 : 4), 1), s[16] ||= J("启动 AI", -1)]),
47364
- u.value && !I(r).launch.available ? (U(), W("p", Gq, "本机唤醒的成员需要本机服务:请在运行 AI 的电脑打开本机网站,或先运行连接命令。")) : Y("", !0),
47356
+ u.value && !I(r).launch.available ? (U(), W("p", Uq, "本机唤醒的成员需要本机服务:请在运行 AI 的电脑打开本机网站,或先运行连接命令。")) : Y("", !0),
47365
47357
  I(r).launch.available ? (U(), W(H, { key: 1 }, [u.value ? Y("", !0) : (U(), G(le, {
47366
47358
  key: 0,
47367
47359
  "model-value": I(r).launch.create,
@@ -47389,18 +47381,18 @@ var PK = /*#__PURE__*/ EH({
47389
47381
  _: 1
47390
47382
  }, 8, ["model-value"])]),
47391
47383
  _: 1
47392
- }), s[17] ||= K("p", { class: "fine-print create-hint" }, "供本地软件查看的项目,读写权限在专家卡片上设置。API 仅使用房间上下文。", -1)], 64)) : Y("", !0)], 64)) : (U(), G(aG, {
47384
+ }), s[17] ||= K("p", { class: "fine-print create-hint" }, "供本地软件查看的项目,读写权限在专家卡片上设置。API 仅使用房间上下文。", -1)], 64)) : Y("", !0)], 64)) : (U(), G(rG, {
47393
47385
  key: 2,
47394
47386
  participants: x.value,
47395
47387
  workspace: !1,
47396
47388
  "model-selection": !1
47397
47389
  }, null, 8, ["participants"]))
47398
47390
  ])) : Y("", !0)
47399
- ], 32), K("footer", Kq, [C.value && I(r).launch.error ? (U(), W("p", qq, P(I(r).launch.error), 1)) : Y("", !0), K("div", Jq, [
47391
+ ], 32), K("footer", Wq, [C.value && I(r).launch.error ? (U(), W("p", Gq, P(I(r).launch.error), 1)) : Y("", !0), K("div", Kq, [
47400
47392
  K("span", {
47401
47393
  class: "create-summary",
47402
47394
  title: ce.value
47403
- }, P(ce.value), 9, Yq),
47395
+ }, P(ce.value), 9, qq),
47404
47396
  q(ue, {
47405
47397
  label: "取消",
47406
47398
  color: "neutral",
@@ -47424,65 +47416,65 @@ var PK = /*#__PURE__*/ EH({
47424
47416
  ])])]);
47425
47417
  };
47426
47418
  }
47427
- }, [["__scopeId", "data-v-4231d551"]]), Qq = {
47419
+ }, [["__scopeId", "data-v-152e8f89"]]), Xq = {
47428
47420
  key: 0,
47429
47421
  class: "channel-archive-manager"
47430
- }, $q = { class: "channel-archive-toolbar" }, eJ = {
47422
+ }, Zq = { class: "channel-archive-toolbar" }, Qq = {
47431
47423
  key: 0,
47432
47424
  class: "channel-archive-confirm channel-archive-bulk",
47433
47425
  role: "alert"
47434
- }, tJ = {
47426
+ }, $q = {
47435
47427
  key: 1,
47436
47428
  role: "alert",
47437
47429
  class: "channel-directory-error"
47438
- }, nJ = { class: "channel-archive-results" }, rJ = {
47430
+ }, eJ = { class: "channel-archive-results" }, tJ = {
47439
47431
  key: 0,
47440
47432
  class: "channel-archive-list",
47441
47433
  "aria-label": "已存档房间列表"
47442
- }, iJ = { class: "channel-archive-row" }, aJ = { class: "channel-archive-info" }, oJ = [
47434
+ }, nJ = { class: "channel-archive-row" }, rJ = { class: "channel-archive-info" }, iJ = [
47443
47435
  "title",
47444
47436
  "disabled",
47445
47437
  "onClick"
47446
- ], sJ = { key: 0 }, cJ = ["datetime"], lJ = { class: "channel-archive-actions" }, uJ = {
47438
+ ], aJ = { key: 0 }, oJ = ["datetime"], sJ = { class: "channel-archive-actions" }, cJ = {
47447
47439
  key: 0,
47448
47440
  class: "channel-archive-confirm channel-archive-bulk",
47449
47441
  role: "alert"
47450
- }, dJ = {
47442
+ }, lJ = {
47451
47443
  key: 1,
47452
47444
  class: "channel-archive-empty"
47453
- }, fJ = { class: "fine-print" }, pJ = { class: "dialog-actions" }, mJ = { class: "dialog-actions" }, hJ = { class: "channel-management-target" }, gJ = {
47445
+ }, uJ = { class: "fine-print" }, dJ = { class: "dialog-actions" }, fJ = { class: "dialog-actions" }, pJ = { class: "channel-management-target" }, mJ = {
47454
47446
  key: 0,
47455
47447
  class: "fine-print"
47456
- }, _J = {
47448
+ }, hJ = {
47457
47449
  key: 1,
47458
47450
  class: "fine-print"
47459
- }, vJ = {
47451
+ }, gJ = {
47460
47452
  key: 2,
47461
47453
  class: "fine-print"
47462
- }, yJ = { class: "dialog-actions" }, bJ = { key: 4 }, xJ = { class: "theme-choices" }, SJ = ["aria-pressed", "onClick"], CJ = { class: "theme-check" }, wJ = { class: "channel-reading-setting" }, TJ = {
47454
+ }, _J = { class: "dialog-actions" }, vJ = { key: 4 }, yJ = { class: "theme-choices" }, bJ = ["aria-pressed", "onClick"], xJ = { class: "theme-check" }, SJ = { class: "channel-reading-setting" }, CJ = {
47463
47455
  class: "channel-reading-options",
47464
47456
  role: "group",
47465
47457
  "aria-labelledby": "channel-reading-label"
47466
- }, EJ = { class: "channel-reading-setting" }, DJ = {
47458
+ }, wJ = { class: "channel-reading-setting" }, TJ = {
47467
47459
  class: "channel-reading-options channel-effect-options",
47468
47460
  role: "group",
47469
47461
  "aria-labelledby": "channel-effects-label"
47470
- }, OJ = { class: "form-two-columns" }, kJ = { class: "advanced-content" }, AJ = { class: "form-two-columns" }, jJ = {
47462
+ }, EJ = { class: "form-two-columns" }, DJ = { class: "advanced-content" }, OJ = { class: "form-two-columns" }, kJ = {
47471
47463
  key: 0,
47472
47464
  class: "fine-print"
47473
- }, MJ = { class: "advanced-content" }, NJ = { class: "expert-fields" }, PJ = { class: "dialog-actions" }, FJ = { class: "dialog-actions" }, IJ = {
47465
+ }, AJ = { class: "advanced-content" }, jJ = { class: "expert-fields" }, MJ = { class: "dialog-actions" }, NJ = { class: "dialog-actions" }, PJ = {
47474
47466
  key: 8,
47475
47467
  class: "original-message"
47476
- }, LJ = {
47468
+ }, FJ = {
47477
47469
  key: 0,
47478
47470
  role: "alert"
47479
- }, RJ = { class: "original-meta" }, zJ = { class: "fine-print" }, BJ = {
47471
+ }, IJ = { class: "original-meta" }, LJ = { class: "fine-print" }, RJ = {
47480
47472
  key: 0,
47481
47473
  class: "channel-answer-summary"
47482
- }, VJ = { class: "message-prose" }, HJ = { class: "message-prose" }, UJ = ["innerHTML"], WJ = {
47474
+ }, zJ = { class: "message-prose" }, BJ = { class: "message-prose" }, VJ = ["innerHTML"], HJ = {
47483
47475
  key: 2,
47484
47476
  class: "fine-print"
47485
- }, GJ = "topic-expert-modes", KJ = {
47477
+ }, UJ = "topic-expert-modes", WJ = {
47486
47478
  __name: "WorkspaceDialogs",
47487
47479
  props: /*@__PURE__*/ Fa({
47488
47480
  detailId: {
@@ -47749,7 +47741,7 @@ var PK = /*#__PURE__*/ EH({
47749
47741
  }
47750
47742
  }
47751
47743
  return (t, c) => {
47752
- let x = GV, S = FV, le = MA, de = nH, fe = sA, ye = aH, Ce = pK, we = sH, Te = dK;
47744
+ let x = GV, S = FV, le = MA, de = nH, fe = sA, ye = aH, Ce = dK, we = sH, Te = lK;
47753
47745
  return U(), G(Te, {
47754
47746
  open: d.value,
47755
47747
  "onUpdate:open": c[24] ||= (e) => d.value = e,
@@ -47766,8 +47758,8 @@ var PK = /*#__PURE__*/ EH({
47766
47758
  },
47767
47759
  "onAfter:leave": xe
47768
47760
  }, {
47769
- body: L(() => [a.value === "archives" ? (U(), W("section", Qq, [
47770
- K("div", $q, [
47761
+ body: L(() => [a.value === "archives" ? (U(), W("section", Xq, [
47762
+ K("div", Zq, [
47771
47763
  q(x, {
47772
47764
  modelValue: h.value,
47773
47765
  "onUpdate:modelValue": c[0] ||= (e) => h.value = e,
@@ -47796,7 +47788,7 @@ var PK = /*#__PURE__*/ EH({
47796
47788
  }
47797
47789
  }, null, 8, ["label", "disabled"])
47798
47790
  ]),
47799
- b.value && v.value.length ? (U(), W("div", eJ, [
47791
+ b.value && v.value.length ? (U(), W("div", Qq, [
47800
47792
  K("span", null, "将永久删除当前列表中的 " + P(v.value.length) + " 个房间及其全部记录,无法撤销。", 1),
47801
47793
  q(le, {
47802
47794
  label: "取消",
@@ -47812,20 +47804,20 @@ var PK = /*#__PURE__*/ EH({
47812
47804
  onClick: D
47813
47805
  })
47814
47806
  ])) : Y("", !0),
47815
- I(o).directory_error ? (U(), W("p", tJ, P(I(o).directory_error), 1)) : Y("", !0),
47816
- K("div", nJ, [v.value.length ? (U(), W("ul", rJ, [(U(!0), W(H, null, B(v.value, (e) => (U(), W("li", {
47807
+ I(o).directory_error ? (U(), W("p", $q, P(I(o).directory_error), 1)) : Y("", !0),
47808
+ K("div", eJ, [v.value.length ? (U(), W("ul", tJ, [(U(!0), W(H, null, B(v.value, (e) => (U(), W("li", {
47817
47809
  key: e.id,
47818
47810
  class: "channel-archive-item"
47819
- }, [K("div", iJ, [K("div", aJ, [K("button", {
47811
+ }, [K("div", nJ, [K("div", rJ, [K("button", {
47820
47812
  class: "channel-archive-title",
47821
47813
  title: e.title,
47822
47814
  disabled: !!I(u),
47823
47815
  onClick: (t) => T(e)
47824
- }, P(e.title), 9, oJ), K("small", null, [e.created_at ? (U(), W("span", sJ, [
47816
+ }, P(e.title), 9, iJ), K("small", null, [e.created_at ? (U(), W("span", aJ, [
47825
47817
  c[25] ||= J("创建于 ", -1),
47826
- K("time", { datetime: e.created_at }, P(C(e.created_at)), 9, cJ),
47818
+ K("time", { datetime: e.created_at }, P(C(e.created_at)), 9, oJ),
47827
47819
  c[26] ||= J(" · ", -1)
47828
- ])) : Y("", !0), J(P(e.message_count) + " 条消息", 1)])]), K("div", lJ, [q(le, {
47820
+ ])) : Y("", !0), J(P(e.message_count) + " 条消息", 1)])]), K("div", sJ, [q(le, {
47829
47821
  "aria-label": `彻底删除 ${e.title}`,
47830
47822
  title: "彻底删除",
47831
47823
  icon: "i-lucide-trash-2",
@@ -47857,7 +47849,7 @@ var PK = /*#__PURE__*/ EH({
47857
47849
  "aria-label",
47858
47850
  "disabled",
47859
47851
  "onClick"
47860
- ])])]), y.value === e.id ? (U(), W("div", uJ, [
47852
+ ])])]), y.value === e.id ? (U(), W("div", cJ, [
47861
47853
  K("span", null, "永久删除「" + P(e.title) + "」及其全部记录,无法撤销。", 1),
47862
47854
  q(le, {
47863
47855
  label: "取消",
@@ -47873,12 +47865,12 @@ var PK = /*#__PURE__*/ EH({
47873
47865
  disabled: w(e),
47874
47866
  onClick: E
47875
47867
  }, null, 8, ["disabled"])
47876
- ])) : Y("", !0)]))), 128))])) : (U(), W("p", dJ, P(m.value.length ? "没有匹配的存档房间" : "暂无已存档房间"), 1))])
47868
+ ])) : Y("", !0)]))), 128))])) : (U(), W("p", lJ, P(m.value.length ? "没有匹配的存档房间" : "暂无已存档房间"), 1))])
47877
47869
  ])) : a.value === "delete-folder" ? (U(), W("form", {
47878
47870
  key: 1,
47879
47871
  class: "dialog-form",
47880
47872
  onSubmit: uu(ie, ["prevent"])
47881
- }, [K("p", fJ, "移除「" + P(e.targetFolder?.name) + "」后,房间不再归属文件夹,所有消息和存档状态都会保留。", 1), K("div", pJ, [q(le, {
47873
+ }, [K("p", uJ, "移除「" + P(e.targetFolder?.name) + "」后,房间不再归属文件夹,所有消息和存档状态都会保留。", 1), K("div", dJ, [q(le, {
47882
47874
  label: "取消",
47883
47875
  color: "neutral",
47884
47876
  variant: "ghost",
@@ -47909,7 +47901,7 @@ var PK = /*#__PURE__*/ EH({
47909
47901
  "modelValue",
47910
47902
  "aria-label",
47911
47903
  "readonly"
47912
- ]), K("div", mJ, [q(le, {
47904
+ ]), K("div", fJ, [q(le, {
47913
47905
  label: "取消",
47914
47906
  color: "neutral",
47915
47907
  variant: "ghost",
@@ -47934,10 +47926,10 @@ var PK = /*#__PURE__*/ EH({
47934
47926
  class: "dialog-form",
47935
47927
  onSubmit: uu(ne, ["prevent"])
47936
47928
  }, [
47937
- K("p", hJ, [J(P(e.targetRoom?.title) + " ", 1), K("span", null, "· " + P(e.targetRoom?.message_count) + " 条消息", 1)]),
47938
- a.value === "archive" ? (U(), W("p", gJ, "存档后可在侧栏「已存档」中查阅与恢复。已有发言安排会保留;专家需在下次检查时停止自己的定时任务。")) : Y("", !0),
47939
- a.value === "restore" ? (U(), W("p", _J, "恢复不会自动继续讨论;需要继续时,在主持设置中调整阶段。")) : Y("", !0),
47940
- a.value === "delete" ? (U(), W("p", vJ, "消息、共识和发言安排将一起删除,无法撤销。")) : Y("", !0),
47929
+ K("p", pJ, [J(P(e.targetRoom?.title) + " ", 1), K("span", null, "· " + P(e.targetRoom?.message_count) + " 条消息", 1)]),
47930
+ a.value === "archive" ? (U(), W("p", mJ, "存档后可在侧栏「已存档」中查阅与恢复。已有发言安排会保留;专家需在下次检查时停止自己的定时任务。")) : Y("", !0),
47931
+ a.value === "restore" ? (U(), W("p", hJ, "恢复不会自动继续讨论;需要继续时,在主持设置中调整阶段。")) : Y("", !0),
47932
+ a.value === "delete" ? (U(), W("p", gJ, "消息、共识和发言安排将一起删除,无法撤销。")) : Y("", !0),
47941
47933
  a.value === "rename" ? (U(), G(de, {
47942
47934
  key: 3,
47943
47935
  label: "房间名称",
@@ -47954,7 +47946,7 @@ var PK = /*#__PURE__*/ EH({
47954
47946
  }, null, 8, ["modelValue"])]),
47955
47947
  _: 1
47956
47948
  })) : Y("", !0),
47957
- K("div", yJ, [q(le, {
47949
+ K("div", _J, [q(le, {
47958
47950
  label: "取消",
47959
47951
  color: "neutral",
47960
47952
  variant: "ghost",
@@ -47971,8 +47963,8 @@ var PK = /*#__PURE__*/ EH({
47971
47963
  "loading",
47972
47964
  "disabled"
47973
47965
  ])])
47974
- ], 32)) : a.value === "settings" ? (U(), W("div", bJ, [
47975
- K("div", xJ, [(U(), W(H, null, B(ge, (e) => K("button", {
47966
+ ], 32)) : a.value === "settings" ? (U(), W("div", vJ, [
47967
+ K("div", yJ, [(U(), W(H, null, B(ge, (e) => K("button", {
47976
47968
  key: e.value,
47977
47969
  class: M({ chosen: I(o).theme === e.value }),
47978
47970
  "aria-pressed": I(o).theme === e.value,
@@ -47987,12 +47979,12 @@ var PK = /*#__PURE__*/ EH({
47987
47979
  K("b")
47988
47980
  ], -1)]], 2),
47989
47981
  K("span", null, [K("strong", null, P(e.title), 1), K("small", null, P(e.description), 1)]),
47990
- K("span", CJ, [I(o).theme === e.value ? (U(), G(fe, {
47982
+ K("span", xJ, [I(o).theme === e.value ? (U(), G(fe, {
47991
47983
  key: 0,
47992
47984
  name: "i-lucide-check"
47993
47985
  })) : Y("", !0)])
47994
- ], 10, SJ)), 64))]),
47995
- K("section", wJ, [c[28] ||= K("h3", { id: "channel-reading-label" }, "对话宽度", -1), K("div", TJ, [(U(!0), W(H, null, B(e.readingOptions, (e) => (U(), G(le, {
47986
+ ], 10, bJ)), 64))]),
47987
+ K("section", SJ, [c[28] ||= K("h3", { id: "channel-reading-label" }, "对话宽度", -1), K("div", CJ, [(U(!0), W(H, null, B(e.readingOptions, (e) => (U(), G(le, {
47996
47988
  key: e.value,
47997
47989
  label: e.label,
47998
47990
  color: "neutral",
@@ -48006,9 +47998,9 @@ var PK = /*#__PURE__*/ EH({
48006
47998
  "aria-pressed",
48007
47999
  "onClick"
48008
48000
  ]))), 128))])]),
48009
- K("section", EJ, [
48001
+ K("section", wJ, [
48010
48002
  c[29] ||= K("h3", { id: "channel-effects-label" }, "视觉效果", -1),
48011
- K("div", DJ, [(U(!0), W(H, null, B(e.effectOptions, (e) => (U(), G(le, {
48003
+ K("div", TJ, [(U(!0), W(H, null, B(e.effectOptions, (e) => (U(), G(le, {
48012
48004
  key: e.value,
48013
48005
  label: e.label,
48014
48006
  color: "neutral",
@@ -48024,7 +48016,7 @@ var PK = /*#__PURE__*/ EH({
48024
48016
  ]))), 128))]),
48025
48017
  c[30] ||= K("p", { class: "fine-print" }, "精简模式关闭毛玻璃模糊与多层阴影,适合配置较低或需要更流畅滚动的设备。", -1)
48026
48018
  ])
48027
- ])) : a.value === "create" ? (U(), G(Zq, {
48019
+ ])) : a.value === "create" ? (U(), G(Yq, {
48028
48020
  key: 5,
48029
48021
  "target-folder": e.targetFolder,
48030
48022
  onSubmit: _e,
@@ -48059,7 +48051,7 @@ var PK = /*#__PURE__*/ EH({
48059
48051
  }, null, 8, ["model-value"])]),
48060
48052
  _: 1
48061
48053
  }),
48062
- K("div", OJ, [q(de, { label: "主持人" }, {
48054
+ K("div", EJ, [q(de, { label: "主持人" }, {
48063
48055
  default: L(() => [q(S, {
48064
48056
  "model-value": I(o).fields[N("host")],
48065
48057
  items: I(k),
@@ -48093,9 +48085,9 @@ var PK = /*#__PURE__*/ EH({
48093
48085
  }, null, 8, ["model-value"])]),
48094
48086
  _: 1
48095
48087
  })) : Y("", !0),
48096
- K("section", kJ, [
48088
+ K("section", DJ, [
48097
48089
  c[31] ||= K("h3", null, "讨论上限", -1),
48098
- K("div", AJ, [
48090
+ K("div", OJ, [
48099
48091
  (U(!0), W(H, null, B(ue.value, (e) => (U(), G(de, {
48100
48092
  key: e.key,
48101
48093
  label: e.label
@@ -48156,14 +48148,14 @@ var PK = /*#__PURE__*/ EH({
48156
48148
  })) : Y("", !0)
48157
48149
  ]),
48158
48150
  c[32] ||= K("p", { class: "fine-print" }, "轮次、总时长、单次执行留空或 0 表示不限。一轮指每位专家各完成一次观点;首次进入讨论阶段或创建安排后计时,暂停期间不计时。收束预留计入总时长。", -1),
48159
- ce.value ? (U(), W("p", jJ, "修改上限前,请先把阶段保存为“已暂停”。")) : Y("", !0)
48151
+ ce.value ? (U(), W("p", kJ, "修改上限前,请先把阶段保存为“已暂停”。")) : Y("", !0)
48160
48152
  ]),
48161
48153
  q(Ce, {
48162
48154
  open: se.value,
48163
48155
  "onUpdate:open": c[19] ||= (e) => se.value = e,
48164
48156
  class: "advanced-fields"
48165
48157
  }, {
48166
- content: L(() => [K("div", MJ, [
48158
+ content: L(() => [K("div", AJ, [
48167
48159
  (U(), W(H, null, B([
48168
48160
  {
48169
48161
  key: "user_request",
@@ -48190,11 +48182,11 @@ var PK = /*#__PURE__*/ EH({
48190
48182
  }, null, 8, ["model-value", "onUpdate:modelValue"])]),
48191
48183
  _: 2
48192
48184
  }, 1032, ["label"])), 64)),
48193
- K("div", NJ, [(U(!0), W(H, null, B(I(ae), (e) => (U(), W("div", { key: e }, [K("label", null, P(e), 1), q(S, {
48194
- "model-value": I(o).experts[GJ]?.[e] || "none",
48185
+ K("div", jJ, [(U(!0), W(H, null, B(I(ae), (e) => (U(), W("div", { key: e }, [K("label", null, P(e), 1), q(S, {
48186
+ "model-value": I(o).experts[UJ]?.[e] || "none",
48195
48187
  items: oe,
48196
48188
  "aria-label": `${e} 参与方式`,
48197
- "onUpdate:modelValue": (t) => I(s).write_expert(GJ, e, t === "none" ? "" : t)
48189
+ "onUpdate:modelValue": (t) => I(s).write_expert(UJ, e, t === "none" ? "" : t)
48198
48190
  }, null, 8, [
48199
48191
  "model-value",
48200
48192
  "aria-label",
@@ -48212,7 +48204,7 @@ var PK = /*#__PURE__*/ EH({
48212
48204
  }, null, 8, ["trailing-icon"])]),
48213
48205
  _: 1
48214
48206
  }, 8, ["open"]),
48215
- K("div", PJ, [q(le, {
48207
+ K("div", MJ, [q(le, {
48216
48208
  label: "取消",
48217
48209
  color: "neutral",
48218
48210
  variant: "ghost",
@@ -48256,7 +48248,7 @@ var PK = /*#__PURE__*/ EH({
48256
48248
  _: 1
48257
48249
  }),
48258
48250
  c[34] ||= K("p", { class: "fine-print" }, "创建后为待通知状态;由主持人实际联系专家。", -1),
48259
- K("div", FJ, [q(le, {
48251
+ K("div", NJ, [q(le, {
48260
48252
  label: "取消",
48261
48253
  variant: "ghost",
48262
48254
  color: "neutral",
@@ -48267,8 +48259,8 @@ var PK = /*#__PURE__*/ EH({
48267
48259
  label: "创建发言安排",
48268
48260
  loading: I(u) === "schedule"
48269
48261
  }, null, 8, ["loading"])])
48270
- ], 32)) : a.value === "message" ? (U(), W("div", IJ, [pe.value ? (U(), W("p", LJ, P(pe.value), 1)) : j.value ? (U(), W(H, { key: 1 }, [
48271
- K("div", RJ, [
48262
+ ], 32)) : a.value === "message" ? (U(), W("div", PJ, [pe.value ? (U(), W("p", FJ, P(pe.value), 1)) : j.value ? (U(), W(H, { key: 1 }, [
48263
+ K("div", IJ, [
48272
48264
  K("strong", null, P(I(s).display_name(j.value.author)), 1),
48273
48265
  K("span", null, "#" + P(j.value.id), 1),
48274
48266
  q(we, {
@@ -48279,14 +48271,14 @@ var PK = /*#__PURE__*/ EH({
48279
48271
  _: 1
48280
48272
  })
48281
48273
  ]),
48282
- K("p", zJ, P(I(s).provenance(j.value)) + " · " + P(new Date(j.value.created_at).toLocaleString("zh-CN")), 1),
48283
- j.value.summary ? (U(), W("section", BJ, [K("small", null, "回答摘要 · " + P(I(s).display_name(j.value.summary_by)), 1), K("p", VJ, P(j.value.summary), 1)])) : Y("", !0),
48284
- K("p", HJ, P(j.value.text), 1),
48274
+ K("p", LJ, P(I(s).provenance(j.value)) + " · " + P(new Date(j.value.created_at).toLocaleString("zh-CN")), 1),
48275
+ j.value.summary ? (U(), W("section", RJ, [K("small", null, "回答摘要 · " + P(I(s).display_name(j.value.summary_by)), 1), K("p", zJ, P(j.value.summary), 1)])) : Y("", !0),
48276
+ K("p", BJ, P(j.value.text), 1),
48285
48277
  j.value.attachments?.length ? (U(), W("div", {
48286
48278
  key: 1,
48287
48279
  onClick: be,
48288
48280
  innerHTML: I(s).attachment_markup(j.value.attachments)
48289
- }, null, 8, UJ)) : Y("", !0),
48281
+ }, null, 8, VJ)) : Y("", !0),
48290
48282
  j.value.reply_to ? (U(), G(le, {
48291
48283
  key: 2,
48292
48284
  label: `查看被回复的原文 #${j.value.reply_to}`,
@@ -48296,7 +48288,7 @@ var PK = /*#__PURE__*/ EH({
48296
48288
  class: "channel-surface-button",
48297
48289
  onClick: Se
48298
48290
  }, null, 8, ["label"])) : Y("", !0)
48299
- ], 64)) : (U(), W("p", WJ, "正在读取原文…"))])) : Y("", !0)]),
48291
+ ], 64)) : (U(), W("p", HJ, "正在读取原文…"))])) : Y("", !0)]),
48300
48292
  _: 1
48301
48293
  }, 8, [
48302
48294
  "open",
@@ -48306,7 +48298,7 @@ var PK = /*#__PURE__*/ EH({
48306
48298
  ]);
48307
48299
  };
48308
48300
  }
48309
- }, qJ = {
48301
+ }, GJ = {
48310
48302
  __name: "ContextMenuContent",
48311
48303
  props: {
48312
48304
  items: {
@@ -48601,7 +48593,7 @@ var PK = /*#__PURE__*/ EH({
48601
48593
  "disabled",
48602
48594
  "text-value",
48603
48595
  "class"
48604
- ]), q(qJ, X({
48596
+ ]), q(GJ, X({
48605
48597
  sub: "",
48606
48598
  class: r.ui?.content,
48607
48599
  ui: e.ui,
@@ -48712,7 +48704,7 @@ var PK = /*#__PURE__*/ EH({
48712
48704
  _: 3
48713
48705
  }, 16)], 64));
48714
48706
  }
48715
- }, JJ = {
48707
+ }, KJ = {
48716
48708
  slots: {
48717
48709
  content: "min-w-32 max-h-(--reka-context-menu-content-available-height) bg-default shadow-lg rounded-md ring ring-default overflow-hidden data-[state=open]:animate-[scale-in_100ms_var(--ease-out)] data-[state=closed]:animate-[scale-out_100ms_var(--ease-out)] origin-(--reka-context-menu-content-transform-origin) flex flex-col",
48718
48710
  viewport: "relative divide-y divide-default scroll-py-1 overflow-y-auto flex-1",
@@ -48900,7 +48892,7 @@ var PK = /*#__PURE__*/ EH({
48900
48892
  }
48901
48893
  ],
48902
48894
  defaultVariants: { size: "md" }
48903
- }, YJ = {
48895
+ }, qJ = {
48904
48896
  __name: "ContextMenu",
48905
48897
  props: {
48906
48898
  size: {
@@ -48970,7 +48962,7 @@ var PK = /*#__PURE__*/ EH({
48970
48962
  emits: ["update:open"],
48971
48963
  setup(e, { emit: t }) {
48972
48964
  let n = e, r = t, i = Aa(), a = AE("contextMenu", n), o = Cm(), s = jE(om(a, "modal"), r), c = /* @__PURE__ */ Sn(() => a.content), l = () => Vm(i, ["default"]), u = Z(() => oA({
48973
- extend: JJ,
48965
+ extend: KJ,
48974
48966
  ...o.ui?.contextMenu || {}
48975
48967
  })({ size: a.size }));
48976
48968
  return (e, t) => (U(), G(I(iC), N(Ss(I(s))), {
@@ -48982,7 +48974,7 @@ var PK = /*#__PURE__*/ EH({
48982
48974
  }, {
48983
48975
  default: L(() => [V(e.$slots, "default")]),
48984
48976
  _: 3
48985
- }, 8, ["disabled", "class"])) : Y("", !0), q(qJ, X({
48977
+ }, 8, ["disabled", "class"])) : Y("", !0), q(GJ, X({
48986
48978
  class: u.value.content({ class: [!i.default && I(a).class, I(a).ui?.content] }),
48987
48979
  ui: u.value,
48988
48980
  "ui-override": I(a).ui
@@ -49012,50 +49004,50 @@ var PK = /*#__PURE__*/ EH({
49012
49004
  _: 3
49013
49005
  }, 16));
49014
49006
  }
49015
- }, XJ = { class: "channel-directory-manager" }, ZJ = { class: "channel-directory-heading" }, QJ = ["aria-expanded"], $J = { class: "channel-directory-actions" }, eY = {
49007
+ }, JJ = { class: "channel-directory-manager" }, YJ = { class: "channel-directory-heading" }, XJ = ["aria-expanded"], ZJ = { class: "channel-directory-actions" }, QJ = {
49016
49008
  "aria-label": "讨论房间列表",
49017
49009
  class: "channel-room-list",
49018
49010
  "data-room-directory": ""
49019
- }, tY = ["data-room-folder", "data-drag-folder"], nY = {
49011
+ }, $J = ["data-room-folder", "data-drag-folder"], eY = {
49020
49012
  key: 0,
49021
49013
  class: "channel-folder-row"
49022
- }, rY = [
49014
+ }, tY = [
49023
49015
  "disabled",
49024
49016
  "aria-label",
49025
49017
  "aria-expanded",
49026
49018
  "onKeydown",
49027
49019
  "onClick"
49028
- ], iY = { class: "channel-folder-name" }, aY = { class: "channel-folder-actions" }, oY = {
49020
+ ], nY = { class: "channel-folder-name" }, rY = { class: "channel-folder-actions" }, iY = {
49029
49021
  class: "channel-directory-count",
49030
49022
  "aria-hidden": "true"
49031
- }, sY = ["data-drop-folder"], cY = {
49023
+ }, aY = ["data-drop-folder"], oY = {
49032
49024
  key: 0,
49033
49025
  class: "channel-directory-empty",
49034
49026
  role: "status"
49035
- }, lY = ["data-drag-room"], uY = [
49027
+ }, sY = ["data-drag-room"], cY = [
49036
49028
  "aria-label",
49037
49029
  "disabled",
49038
49030
  "onKeydown"
49039
- ], dY = [
49031
+ ], lY = [
49040
49032
  "title",
49041
49033
  "aria-label",
49042
49034
  "aria-current",
49043
49035
  "onClick"
49044
- ], fY = { class: "channel-room-actions" }, pY = {
49036
+ ], uY = { class: "channel-room-actions" }, dY = {
49045
49037
  key: 0,
49046
49038
  class: "channel-directory-empty"
49047
- }, mY = {
49039
+ }, fY = {
49048
49040
  key: 0,
49049
49041
  class: "channel-archive-count"
49050
- }, hY = {
49042
+ }, pY = {
49051
49043
  key: 0,
49052
49044
  role: "status",
49053
49045
  class: "channel-directory-notice"
49054
- }, gY = {
49046
+ }, mY = {
49055
49047
  key: 1,
49056
49048
  role: "alert",
49057
49049
  class: "channel-directory-error"
49058
- }, _Y = {
49050
+ }, hY = {
49059
49051
  __name: "ChannelDirectory",
49060
49052
  emits: [
49061
49053
  "select",
@@ -49269,8 +49261,8 @@ var PK = /*#__PURE__*/ EH({
49269
49261
  ];
49270
49262
  }
49271
49263
  return (e, t) => {
49272
- let u = MA, _ = sA, v = XV, x = dH, S = YJ;
49273
- return U(), W("div", XJ, [
49264
+ let u = MA, _ = sA, v = XV, x = dH, S = qJ;
49265
+ return U(), W("div", JJ, [
49274
49266
  q(u, {
49275
49267
  label: "新建对话",
49276
49268
  icon: "i-lucide-plus",
@@ -49279,12 +49271,12 @@ var PK = /*#__PURE__*/ EH({
49279
49271
  disabled: I(r).directory_pending.includes("create-room"),
49280
49272
  onClick: t[0] ||= (e) => n("create", null)
49281
49273
  }, null, 8, ["disabled"]),
49282
- K("div", ZJ, [K("button", {
49274
+ K("div", YJ, [K("button", {
49283
49275
  type: "button",
49284
49276
  class: "channel-section-toggle",
49285
49277
  "aria-expanded": m.value,
49286
49278
  onClick: t[1] ||= (e) => m.value = !m.value
49287
- }, [q(_, { name: m.value ? "i-lucide-chevron-down" : "i-lucide-chevron-right" }, null, 8, ["name"]), t[7] ||= J("讨论房间", -1)], 8, QJ), K("div", $J, [
49279
+ }, [q(_, { name: m.value ? "i-lucide-chevron-down" : "i-lucide-chevron-right" }, null, 8, ["name"]), t[7] ||= J("讨论房间", -1)], 8, XJ), K("div", ZJ, [
49288
49280
  q(v, {
49289
49281
  items: d.value,
49290
49282
  content: {
@@ -49326,12 +49318,12 @@ var PK = /*#__PURE__*/ EH({
49326
49318
  onChange: p
49327
49319
  }, null, 544)
49328
49320
  ])]),
49329
- vr(K("nav", eY, [(U(!0), W(H, null, B(l.value, (e, s) => (U(), W("section", {
49321
+ vr(K("nav", QJ, [(U(!0), W(H, null, B(l.value, (e, s) => (U(), W("section", {
49330
49322
  key: e.order_id,
49331
49323
  class: "channel-folder-section",
49332
49324
  "data-room-folder": e.id,
49333
49325
  "data-drag-folder": e.order_id
49334
- }, [e.id ? (U(), W("div", nY, [
49326
+ }, [e.id ? (U(), W("div", eY, [
49335
49327
  K("button", {
49336
49328
  class: "channel-folder-heading",
49337
49329
  "data-drop-folder": "",
@@ -49353,9 +49345,9 @@ var PK = /*#__PURE__*/ EH({
49353
49345
  }, [
49354
49346
  q(_, { name: h.value.has(e.id) ? "i-lucide-chevron-right" : "i-lucide-chevron-down" }, null, 8, ["name"]),
49355
49347
  q(_, { name: "i-lucide-folder" }),
49356
- K("span", iY, P(e.name), 1)
49357
- ], 40, rY),
49358
- K("div", aY, [q(v, {
49348
+ K("span", nY, P(e.name), 1)
49349
+ ], 40, tY),
49350
+ K("div", rY, [q(v, {
49359
49351
  items: g(e, s),
49360
49352
  content: {
49361
49353
  align: "start",
@@ -49389,12 +49381,12 @@ var PK = /*#__PURE__*/ EH({
49389
49381
  ])]),
49390
49382
  _: 2
49391
49383
  }, 1032, ["text"])]),
49392
- K("small", oY, P(e.pending ? "保存中" : e.rooms.length), 1)
49384
+ K("small", iY, P(e.pending ? "保存中" : e.rooms.length), 1)
49393
49385
  ])) : Y("", !0), !e.id || !h.value.has(e.id) ? (U(), W("div", {
49394
49386
  key: 1,
49395
49387
  class: M(e.id ? "channel-folder-rooms" : "channel-root-rooms"),
49396
49388
  "data-drop-folder": e.id ? void 0 : ""
49397
- }, [I(r).creating_room && (I(r).creating_room.folder_id || "") === e.id ? (U(), W("p", cY, "正在创建:" + P(I(r).creating_room.title), 1)) : Y("", !0), (U(!0), W(H, null, B(e.rooms, (s, c) => (U(), G(S, {
49389
+ }, [I(r).creating_room && (I(r).creating_room.folder_id || "") === e.id ? (U(), W("p", oY, "正在创建:" + P(I(r).creating_room.title), 1)) : Y("", !0), (U(!0), W(H, null, B(e.rooms, (s, c) => (U(), G(S, {
49398
49390
  key: s.id,
49399
49391
  items: b(s, c, s.folder_id || null, e.rooms.length),
49400
49392
  ui: { content: "channel-menu channel-topic-menu" }
@@ -49419,7 +49411,7 @@ var PK = /*#__PURE__*/ EH({
49419
49411
  direction: 1,
49420
49412
  folder_id: s.folder_id || null
49421
49413
  }), ["prevent"]), ["down"])]
49422
- }, [q(_, { name: "i-lucide-grip-vertical" })], 40, uY),
49414
+ }, [q(_, { name: "i-lucide-grip-vertical" })], 40, cY),
49423
49415
  K("button", {
49424
49416
  class: "channel-room-select",
49425
49417
  "data-drag-title": "",
@@ -49428,8 +49420,8 @@ var PK = /*#__PURE__*/ EH({
49428
49420
  "aria-current": s.id === I(r).room?.id ? "page" : void 0,
49429
49421
  onPointerdown: t[5] ||= (e) => !I(o) && I(i).start_drag(e),
49430
49422
  onClick: (e) => n("select", s.id)
49431
- }, [K("span", null, P(s.title), 1)], 40, dY),
49432
- K("div", fY, [q(x, {
49423
+ }, [K("span", null, P(s.title), 1)], 40, lY),
49424
+ K("div", uY, [q(x, {
49433
49425
  text: s.archived ? "恢复房间" : "存档房间",
49434
49426
  ui: { content: "channel-topic-tooltip" }
49435
49427
  }, {
@@ -49470,9 +49462,9 @@ var PK = /*#__PURE__*/ EH({
49470
49462
  }, null, 8, ["aria-label"])]),
49471
49463
  _: 2
49472
49464
  }, 1032, ["items"])])
49473
- ], 10, lY)]),
49465
+ ], 10, sY)]),
49474
49466
  _: 2
49475
- }, 1032, ["items"]))), 128))], 10, sY)) : Y("", !0)], 8, tY))), 128)), s.value.length ? Y("", !0) : (U(), W("p", pY, "暂无讨论房间"))], 512), [[Vc, m.value]]),
49467
+ }, 1032, ["items"]))), 128))], 10, aY)) : Y("", !0)], 8, $J))), 128)), s.value.length ? Y("", !0) : (U(), W("p", dY, "暂无讨论房间"))], 512), [[Vc, m.value]]),
49476
49468
  vr(q(u, {
49477
49469
  icon: "i-lucide-archive",
49478
49470
  color: "neutral",
@@ -49481,86 +49473,86 @@ var PK = /*#__PURE__*/ EH({
49481
49473
  "aria-haspopup": "dialog",
49482
49474
  onClick: t[6] ||= (e) => n("archives")
49483
49475
  }, {
49484
- default: L(() => [t[8] ||= K("span", { class: "channel-archive-label" }, "已存档", -1), c.value ? (U(), W("small", mY, P(c.value), 1)) : Y("", !0)]),
49476
+ default: L(() => [t[8] ||= K("span", { class: "channel-archive-label" }, "已存档", -1), c.value ? (U(), W("small", fY, P(c.value), 1)) : Y("", !0)]),
49485
49477
  _: 1
49486
49478
  }, 512), [[Vc, m.value]]),
49487
- I(r).directory_notice ? (U(), W("p", hY, P(I(r).directory_notice), 1)) : Y("", !0),
49488
- I(r).directory_error ? (U(), W("p", gY, P(I(r).directory_error), 1)) : Y("", !0)
49479
+ I(r).directory_notice ? (U(), W("p", pY, P(I(r).directory_notice), 1)) : Y("", !0),
49480
+ I(r).directory_error ? (U(), W("p", mY, P(I(r).directory_error), 1)) : Y("", !0)
49489
49481
  ]);
49490
49482
  };
49491
49483
  }
49492
- }, vY = {
49484
+ }, gY = {
49493
49485
  key: 0,
49494
49486
  class: "pb-header"
49495
- }, yY = { class: "pb-mode" }, bY = { class: "pb-status-line" }, xY = { role: "status" }, SY = {
49487
+ }, _Y = { class: "pb-mode" }, vY = { class: "pb-status-line" }, yY = { role: "status" }, bY = {
49496
49488
  key: 0,
49497
49489
  class: "pb-mode"
49498
- }, CY = {
49490
+ }, xY = {
49499
49491
  key: 0,
49500
49492
  class: "pb-status-detail"
49501
- }, wY = {
49493
+ }, SY = {
49502
49494
  key: 1,
49503
49495
  class: "pb-status-detail"
49504
- }, TY = { class: "pb-error-detail" }, EY = {
49496
+ }, CY = { class: "pb-error-detail" }, wY = {
49505
49497
  key: 3,
49506
49498
  class: "pb-meters"
49507
- }, DY = { class: "pb-meter-label" }, OY = {
49499
+ }, TY = { class: "pb-meter-label" }, EY = {
49508
49500
  key: 0,
49509
49501
  class: "pb-bar"
49510
- }, kY = {
49502
+ }, DY = {
49511
49503
  key: 1,
49512
49504
  class: "pb-section",
49513
49505
  "aria-label": "当前焦点"
49514
- }, AY = {
49506
+ }, OY = {
49515
49507
  class: "pb-section",
49516
49508
  "aria-label": "参与者"
49517
- }, jY = {
49509
+ }, kY = {
49518
49510
  key: 0,
49519
49511
  class: "pb-status-detail pb-held"
49520
- }, MY = { class: "pb-members" }, NY = { class: "pb-member-body" }, PY = { class: "pb-member-name" }, FY = {
49512
+ }, AY = { class: "pb-members" }, jY = { class: "pb-member-body" }, MY = { class: "pb-member-name" }, NY = {
49521
49513
  class: "pb-member-model",
49522
49514
  title: "本场启动配置;默认模型与默认强度由对应软件决定"
49523
- }, IY = {
49515
+ }, PY = {
49524
49516
  key: 0,
49525
49517
  class: "pb-member-model",
49526
49518
  title: "续接你已有的会话;它工作时请不要在原窗口继续操作"
49527
- }, LY = { key: 0 }, RY = { class: "pb-member-body" }, zY = { class: "pb-member-name" }, BY = {
49519
+ }, FY = { key: 0 }, IY = { class: "pb-member-body" }, LY = { class: "pb-member-name" }, RY = {
49528
49520
  key: 1,
49529
49521
  role: "alert",
49530
49522
  class: "pb-free-note is-error"
49531
- }, VY = {
49523
+ }, zY = {
49532
49524
  key: 2,
49533
49525
  role: "status",
49534
49526
  class: "pb-free-note"
49535
- }, HY = {
49527
+ }, BY = {
49536
49528
  key: 4,
49537
49529
  class: "pb-free-note"
49538
- }, UY = {
49530
+ }, VY = {
49539
49531
  key: 5,
49540
49532
  class: "pb-free-note"
49541
- }, WY = {
49533
+ }, HY = {
49542
49534
  key: 6,
49543
49535
  class: "pb-free-note"
49544
- }, GY = {
49536
+ }, UY = {
49545
49537
  key: 2,
49546
49538
  class: "pb-actions",
49547
49539
  "aria-label": "操作"
49548
- }, KY = {
49540
+ }, WY = {
49549
49541
  key: 3,
49550
49542
  class: "pb-section",
49551
49543
  "aria-label": "阶段耗时"
49552
- }, qY = { class: "pb-timing-heading" }, JY = ["aria-label"], YY = { class: "pb-timing-totals" }, XY = ["title"], ZY = { class: "pb-timings" }, QY = { class: "pb-timing-who" }, $Y = { class: "pb-timing-stages" }, eX = ["title"], tX = {
49544
+ }, GY = { class: "pb-timing-heading" }, KY = ["aria-label"], qY = { class: "pb-timing-totals" }, JY = ["title"], YY = { class: "pb-timings" }, XY = { class: "pb-timing-who" }, ZY = { class: "pb-timing-stages" }, QY = ["title"], $Y = {
49553
49545
  key: 0,
49554
49546
  class: "pb-note"
49555
- }, nX = { class: "pb-connection" }, rX = { class: "fine-print" }, iX = {
49547
+ }, eX = { class: "pb-connection" }, tX = { class: "fine-print" }, nX = {
49556
49548
  key: 0,
49557
49549
  role: "status",
49558
49550
  class: "fine-print"
49559
- }, aX = {
49551
+ }, rX = {
49560
49552
  key: 2,
49561
49553
  role: "alert",
49562
49554
  class: "fine-print"
49563
- }, oX = { key: 2 }, sX = { class: "progress-ending" }, cX = ["disabled"], lX = { key: 0 }, uX = ["disabled"], dX = 90, fX = 100, pX = /*#__PURE__*/ EH({
49555
+ }, iX = { key: 2 }, aX = { class: "progress-ending" }, oX = ["disabled"], sX = { key: 0 }, cX = ["disabled"], lX = 90, uX = 100, dX = /*#__PURE__*/ EH({
49564
49556
  __name: "ProgressBoard",
49565
49557
  props: { docked: {
49566
49558
  type: Boolean,
@@ -49604,7 +49596,7 @@ var PK = /*#__PURE__*/ EH({
49604
49596
  R(() => m.value.id, () => {
49605
49597
  ae.value = "", k.value = "read", A.value = "";
49606
49598
  });
49607
- let se = Z(() => v.value?.question || m.value.focus || m.value.goal || ""), ce = Z(() => se.value.length > dX), le = Z(() => g.value.timings || {
49599
+ let se = Z(() => v.value?.question || m.value.focus || m.value.goal || ""), ce = Z(() => se.value.length > lX), le = Z(() => g.value.timings || {
49608
49600
  items: [],
49609
49601
  totals: {},
49610
49602
  count: 0
@@ -49638,7 +49630,7 @@ var PK = /*#__PURE__*/ EH({
49638
49630
  if (e.phase === "paused") {
49639
49631
  let e = O.value;
49640
49632
  if (e) {
49641
- let t = e.result.startsWith(e.name) ? e.result : `${r.display_name(e.name)} 执行失败:${e.result}`, n = t.split("\n")[0], i = n.length > fX ? `${n.slice(0, fX)}…` : n;
49633
+ let t = e.result.startsWith(e.name) ? e.result : `${r.display_name(e.name)} 执行失败:${e.result}`, n = t.split("\n")[0], i = n.length > uX ? `${n.slice(0, uX)}…` : n;
49642
49634
  return {
49643
49635
  tone: "error",
49644
49636
  title: "已暂停",
@@ -49756,20 +49748,20 @@ var PK = /*#__PURE__*/ EH({
49756
49748
  await i(e) && (o.value = !1);
49757
49749
  }
49758
49750
  return (e, l) => {
49759
- let u = MA, d = pA, O = sA, ee = XV, me = FV, xe = GV, Se = nH, Ce = dK;
49751
+ let u = MA, d = pA, O = sA, ee = XV, me = FV, xe = GV, Se = nH, Ce = lK;
49760
49752
  return U(), W("div", { class: M(["progress-board", { "is-docked": t.docked }]) }, [
49761
- t.docked ? (U(), W("header", vY, [l[16] ||= K("strong", null, "讨论进度", -1), K("span", yY, P(_.value ? "全自动" : "手动"), 1)])) : Y("", !0),
49753
+ t.docked ? (U(), W("header", gY, [l[16] ||= K("strong", null, "讨论进度", -1), K("span", _Y, P(_.value ? "全自动" : "手动"), 1)])) : Y("", !0),
49762
49754
  K("section", {
49763
49755
  class: M(["pb-status", `is-${fe.value.tone}`]),
49764
49756
  "aria-label": "讨论状态"
49765
49757
  }, [
49766
- K("div", bY, [
49758
+ K("div", vY, [
49767
49759
  l[17] ||= K("span", { class: "pb-dot" }, null, -1),
49768
- K("strong", xY, P(fe.value.title), 1),
49769
- t.docked ? Y("", !0) : (U(), W("span", SY, P(_.value ? "全自动" : "手动"), 1))
49760
+ K("strong", yY, P(fe.value.title), 1),
49761
+ t.docked ? Y("", !0) : (U(), W("span", bY, P(_.value ? "全自动" : "手动"), 1))
49770
49762
  ]),
49771
- fe.value.detail ? (U(), W("p", CY, P(fe.value.detail), 1)) : Y("", !0),
49772
- fe.value.full_detail ? (U(), W("details", wY, [l[18] ||= K("summary", null, "查看错误详情", -1), K("pre", TY, P(fe.value.full_detail), 1)])) : Y("", !0),
49763
+ fe.value.detail ? (U(), W("p", xY, P(fe.value.detail), 1)) : Y("", !0),
49764
+ fe.value.full_detail ? (U(), W("details", SY, [l[18] ||= K("summary", null, "查看错误详情", -1), K("pre", CY, P(fe.value.full_detail), 1)])) : Y("", !0),
49773
49765
  te.value && I(n).launch.available && !I(n).launch.remote ? (U(), G(u, {
49774
49766
  key: 2,
49775
49767
  icon: "i-lucide-arrow-left-right",
@@ -49781,12 +49773,12 @@ var PK = /*#__PURE__*/ EH({
49781
49773
  disabled: !!I(a),
49782
49774
  onClick: l[0] ||= (e) => N(te.value, "codex")
49783
49775
  }, null, 8, ["disabled"])) : Y("", !0),
49784
- pe.value.length ? (U(), W("div", EY, [(U(!0), W(H, null, B(pe.value, (e) => (U(), W("div", {
49776
+ pe.value.length ? (U(), W("div", wY, [(U(!0), W(H, null, B(pe.value, (e) => (U(), W("div", {
49785
49777
  key: e.label,
49786
49778
  class: "pb-meter"
49787
- }, [K("div", DY, [K("span", null, P(e.label), 1), K("b", null, P(e.text), 1)]), e.ratio === null ? Y("", !0) : (U(), W("div", OY, [K("i", { style: j({ width: `${Math.min(100, Math.round(e.ratio * 100))}%` }) }, null, 4)]))]))), 128))])) : Y("", !0)
49779
+ }, [K("div", TY, [K("span", null, P(e.label), 1), K("b", null, P(e.text), 1)]), e.ratio === null ? Y("", !0) : (U(), W("div", EY, [K("i", { style: j({ width: `${Math.min(100, Math.round(e.ratio * 100))}%` }) }, null, 4)]))]))), 128))])) : Y("", !0)
49788
49780
  ], 2),
49789
- se.value ? (U(), W("section", kY, [
49781
+ se.value ? (U(), W("section", DY, [
49790
49782
  l[19] ||= K("h4", null, "当前焦点", -1),
49791
49783
  K("p", { class: M(["pb-focus", { "is-expanded": s.value }]) }, P(se.value), 3),
49792
49784
  ce.value ? (U(), W("button", {
@@ -49796,10 +49788,10 @@ var PK = /*#__PURE__*/ EH({
49796
49788
  onClick: l[1] ||= (e) => s.value = !s.value
49797
49789
  }, P(s.value ? "收起" : "展开"), 1)) : Y("", !0)
49798
49790
  ])) : Y("", !0),
49799
- K("section", AY, [
49791
+ K("section", OY, [
49800
49792
  l[23] ||= K("h4", null, "参与者", -1),
49801
- m.value.held_since && v.value && !y.value ? (U(), W("p", jY, "用户有新操作," + P(I(r).display_name(v.value.expert)) + " 说完后交给主持人", 1)) : Y("", !0),
49802
- K("ul", MY, [(U(!0), W(H, null, B(D.value, (e) => (U(), W("li", {
49793
+ m.value.held_since && v.value && !y.value ? (U(), W("p", kY, "用户有新操作," + P(I(r).display_name(v.value.expert)) + " 说完后交给主持人", 1)) : Y("", !0),
49794
+ K("ul", AY, [(U(!0), W(H, null, B(D.value, (e) => (U(), W("li", {
49803
49795
  key: e.name,
49804
49796
  class: "pb-member"
49805
49797
  }, [
@@ -49815,8 +49807,8 @@ var PK = /*#__PURE__*/ EH({
49815
49807
  "alt",
49816
49808
  "class"
49817
49809
  ]),
49818
- K("div", NY, [
49819
- K("div", PY, [
49810
+ K("div", jY, [
49811
+ K("div", MY, [
49820
49812
  J(P(I(r).display_name(e.name)), 1),
49821
49813
  e.is_host ? (U(), G(O, {
49822
49814
  key: 0,
@@ -49825,15 +49817,15 @@ var PK = /*#__PURE__*/ EH({
49825
49817
  })) : Y("", !0),
49826
49818
  K("small", null, P(e.is_host ? `主持 · ${e.mode}` : e.mode), 1)
49827
49819
  ]),
49828
- K("div", FY, P(e.model), 1),
49829
- re(e.name)?.session_mode === "borrowed" ? (U(), W("div", IY, "借用已有会话")) : Y("", !0),
49820
+ K("div", NY, P(e.model), 1),
49821
+ re(e.name)?.session_mode === "borrowed" ? (U(), W("div", PY, "借用已有会话")) : Y("", !0),
49830
49822
  x.value ? Y("", !0) : (U(), W("div", {
49831
49823
  key: 1,
49832
49824
  class: M(["pb-member-status", `is-${e.tone}`])
49833
49825
  }, [
49834
49826
  l[20] ||= K("span", { class: "pb-dot" }, null, -1),
49835
49827
  J(P(e.text), 1),
49836
- e.failures ? (U(), W("small", LY, " · 失败 " + P(e.failures) + " 次", 1)) : Y("", !0)
49828
+ e.failures ? (U(), W("small", FY, " · 失败 " + P(e.failures) + " 次", 1)) : Y("", !0)
49837
49829
  ], 2))
49838
49830
  ]),
49839
49831
  he(e).length ? (U(), G(ee, {
@@ -49868,7 +49860,7 @@ var PK = /*#__PURE__*/ EH({
49868
49860
  "alt",
49869
49861
  "class"
49870
49862
  ]),
49871
- K("div", RY, [K("div", zY, [J(P(I(r).display_name(e.name)), 1), l[21] ||= K("small", null, "暂离", -1)]), l[22] ||= K("div", { class: "pb-member-status is-neutral" }, [K("span", { class: "pb-dot" }), J("保留位置和会话,不参与安排")], -1)]),
49863
+ K("div", IY, [K("div", LY, [J(P(I(r).display_name(e.name)), 1), l[21] ||= K("small", null, "暂离", -1)]), l[22] ||= K("div", { class: "pb-member-status is-neutral" }, [K("span", { class: "pb-dot" }), J("保留位置和会话,不参与安排")], -1)]),
49872
49864
  he({ name: e.name }).length ? (U(), G(ee, {
49873
49865
  key: 0,
49874
49866
  items: he({ name: e.name }),
@@ -49886,7 +49878,7 @@ var PK = /*#__PURE__*/ EH({
49886
49878
  _: 2
49887
49879
  }, 1032, ["items"])) : Y("", !0)
49888
49880
  ]))), 128))]),
49889
- I(n).free_error ? (U(), W("p", BY, P(I(n).free_error), 1)) : I(n).free_notice ? (U(), W("p", VY, P(I(n).free_notice), 1)) : Y("", !0),
49881
+ I(n).free_error ? (U(), W("p", RY, P(I(n).free_error), 1)) : I(n).free_notice ? (U(), W("p", zY, P(I(n).free_notice), 1)) : Y("", !0),
49890
49882
  ie.value ? (U(), W("form", {
49891
49883
  key: 3,
49892
49884
  class: "pb-free-invite",
@@ -49937,10 +49929,10 @@ var PK = /*#__PURE__*/ EH({
49937
49929
  class: "w-full"
49938
49930
  }, null, 8, ["modelValue"])) : Y("", !0)
49939
49931
  ], 32)) : Y("", !0),
49940
- ie.value && ae.value && A.value.trim() ? (U(), W("p", HY, "将续接这个原会话,保留它原有的上下文;它工作时请不要在原窗口继续操作。")) : Y("", !0),
49941
- ie.value && !I(n).launch.available ? (U(), W("p", UY, "邀请需要本机服务,请在运行 AI 的电脑打开本机网站。")) : ie.value ? (U(), W("p", WY, "新专家沿用本机软件配置,讨论不中断;主持人会重新安排发言。填写已有会话 ID 可请一个带着自己上下文的原会话加入。")) : Y("", !0)
49932
+ ie.value && ae.value && A.value.trim() ? (U(), W("p", BY, "将续接这个原会话,保留它原有的上下文;它工作时请不要在原窗口继续操作。")) : Y("", !0),
49933
+ ie.value && !I(n).launch.available ? (U(), W("p", VY, "邀请需要本机服务,请在运行 AI 的电脑打开本机网站。")) : ie.value ? (U(), W("p", HY, "新专家沿用本机软件配置,讨论不中断;主持人会重新安排发言。填写已有会话 ID 可请一个带着自己上下文的原会话加入。")) : Y("", !0)
49942
49934
  ]),
49943
- T.value ? (U(), W("section", GY, [
49935
+ T.value ? (U(), W("section", UY, [
49944
49936
  S.value ? (U(), G(u, {
49945
49937
  key: 0,
49946
49938
  icon: "i-lucide-rotate-ccw",
@@ -49989,8 +49981,8 @@ var PK = /*#__PURE__*/ EH({
49989
49981
  onClick: l[8] ||= (e) => o.value = !0
49990
49982
  })) : Y("", !0)
49991
49983
  ])) : Y("", !0),
49992
- _.value && le.value.count ? (U(), W("section", KY, [
49993
- K("div", qY, [l[24] ||= K("h4", null, "耗时", -1), K("small", null, "共 " + P(le.value.count) + " 次执行", 1)]),
49984
+ _.value && le.value.count ? (U(), W("section", WY, [
49985
+ K("div", GY, [l[24] ||= K("h4", null, "耗时", -1), K("small", null, "共 " + P(le.value.count) + " 次执行", 1)]),
49994
49986
  K("div", {
49995
49987
  class: "pb-timing-bar",
49996
49988
  role: "img",
@@ -49999,18 +49991,18 @@ var PK = /*#__PURE__*/ EH({
49999
49991
  key: e.key,
50000
49992
  class: M(`is-${e.key}`),
50001
49993
  style: j({ width: `${e.percent}%` })
50002
- }, null, 6))), 128))], 8, JY),
50003
- K("dl", YY, [(U(!0), W(H, null, B(ve.value, (e) => (U(), W("div", {
49994
+ }, null, 6))), 128))], 8, KY),
49995
+ K("dl", qY, [(U(!0), W(H, null, B(ve.value, (e) => (U(), W("div", {
50004
49996
  key: e.key,
50005
49997
  title: e.hint
50006
- }, [K("dt", null, [K("span", { class: M(`pb-timing-dot is-${e.key}`) }, null, 2), J(P(e.label), 1)]), K("dd", null, [J(P(ye(e.seconds)), 1), K("small", null, P(e.percent) + "%", 1)])], 8, XY))), 128))]),
50007
- K("details", ZY, [
49998
+ }, [K("dt", null, [K("span", { class: M(`pb-timing-dot is-${e.key}`) }, null, 2), J(P(e.label), 1)]), K("dd", null, [J(P(ye(e.seconds)), 1), K("small", null, P(e.percent) + "%", 1)])], 8, JY))), 128))]),
49999
+ K("details", YY, [
50008
50000
  l[25] ||= K("summary", null, "查看每次执行", -1),
50009
- K("ol", null, [(U(!0), W(H, null, B(le.value.items, (e) => (U(), W("li", { key: e.id }, [K("span", QY, [J("#" + P(e.id) + " " + P(I(r).display_name(e.participant)), 1), K("small", null, P(e.role === "host" ? "主持" : "专家") + " · " + P(p[e.status] || e.status), 1)]), K("span", $Y, [(U(), W(H, null, B(f, (t) => K("span", {
50001
+ K("ol", null, [(U(!0), W(H, null, B(le.value.items, (e) => (U(), W("li", { key: e.id }, [K("span", XY, [J("#" + P(e.id) + " " + P(I(r).display_name(e.participant)), 1), K("small", null, P(e.role === "host" ? "主持" : "专家") + " · " + P(p[e.status] || e.status), 1)]), K("span", ZY, [(U(), W(H, null, B(f, (t) => K("span", {
50010
50002
  key: t.key,
50011
50003
  title: t.hint
50012
- }, P(t.label) + " " + P(ye(e[t.key])), 9, eX)), 64))])]))), 128))]),
50013
- le.value.count > le.value.items.length ? (U(), W("p", tX, "只列出最近 " + P(le.value.items.length) + " 次,共 " + P(le.value.count) + " 次执行。", 1)) : Y("", !0)
50004
+ }, P(t.label) + " " + P(ye(e[t.key])), 9, QY)), 64))])]))), 128))]),
50005
+ le.value.count > le.value.items.length ? (U(), W("p", $Y, "只列出最近 " + P(le.value.items.length) + " 次,共 " + P(le.value.count) + " 次执行。", 1)) : Y("", !0)
50014
50006
  ])
50015
50007
  ])) : Y("", !0),
50016
50008
  q(Ce, {
@@ -50023,7 +50015,7 @@ var PK = /*#__PURE__*/ EH({
50023
50015
  body: "dialog-body"
50024
50016
  }
50025
50017
  }, {
50026
- body: L(() => [K("div", nX, [g.value.status === "running" ? (U(), W(H, { key: 0 }, [l[26] ||= K("p", null, "切换前需要暂停讨论,当前执行会停止,原发言安排保留。", -1), q(u, {
50018
+ body: L(() => [K("div", eX, [g.value.status === "running" ? (U(), W(H, { key: 0 }, [l[26] ||= K("p", null, "切换前需要暂停讨论,当前执行会停止,原发言安排保留。", -1), q(u, {
50027
50019
  label: "暂停并读取配置",
50028
50020
  icon: "i-lucide-pause",
50029
50021
  class: "channel-primary-button",
@@ -50046,7 +50038,7 @@ var PK = /*#__PURE__*/ EH({
50046
50038
  }, null, 8, ["model-value", "disabled"])]),
50047
50039
  _: 1
50048
50040
  }),
50049
- K("p", rX, P(de.value.adapter === "codex" ? "App 需保持运行,模型与权限沿用原聊天设置。" : "切回 CLI 前,需让 App 释放原聊天;仍被占用时无法执行。"), 1),
50041
+ K("p", tX, P(de.value.adapter === "codex" ? "App 需保持运行,模型与权限沿用原聊天设置。" : "切回 CLI 前,需让 App 释放原聊天;仍被占用时无法执行。"), 1),
50050
50042
  q(u, {
50051
50043
  label: "保存接入方式",
50052
50044
  class: "channel-primary-button",
@@ -50054,7 +50046,7 @@ var PK = /*#__PURE__*/ EH({
50054
50046
  disabled: !!I(a),
50055
50047
  onClick: l[10] ||= (e) => I(i)("save_room_configuration")
50056
50048
  }, null, 8, ["loading", "disabled"]),
50057
- I(n).launch.repair?.notice ? (U(), W("p", iX, P(I(n).launch.repair.notice), 1)) : Y("", !0),
50049
+ I(n).launch.repair?.notice ? (U(), W("p", nX, P(I(n).launch.repair.notice), 1)) : Y("", !0),
50058
50050
  I(n).launch.repair?.applied && S.value ? (U(), G(u, {
50059
50051
  key: 1,
50060
50052
  label: "重启讨论",
@@ -50074,7 +50066,7 @@ var PK = /*#__PURE__*/ EH({
50074
50066
  color: "neutral",
50075
50067
  loading: !!I(a),
50076
50068
  onClick: _e
50077
- }, null, 8, ["loading"])), I(n).launch.repair_error ? (U(), W("p", aX, P(I(n).launch.repair_error), 1)) : Y("", !0)], 64)) : (U(), W("p", oX, "本场状态已变化,请关闭后重新核对。"))])]),
50069
+ }, null, 8, ["loading"])), I(n).launch.repair_error ? (U(), W("p", rX, P(I(n).launch.repair_error), 1)) : Y("", !0)], 64)) : (U(), W("p", iX, "本场状态已变化,请关闭后重新核对。"))])]),
50078
50070
  _: 1
50079
50071
  }, 8, ["open"]),
50080
50072
  q(Ce, {
@@ -50087,7 +50079,7 @@ var PK = /*#__PURE__*/ EH({
50087
50079
  body: "dialog-body"
50088
50080
  }
50089
50081
  }, {
50090
- body: L(() => [K("div", sX, [K("button", {
50082
+ body: L(() => [K("div", aX, [K("button", {
50091
50083
  type: "button",
50092
50084
  class: "progress-ending-option",
50093
50085
  disabled: !E.value || !!I(a),
@@ -50095,19 +50087,19 @@ var PK = /*#__PURE__*/ EH({
50095
50087
  }, [
50096
50088
  l[27] ||= K("strong", null, "请主持人收尾", -1),
50097
50089
  K("span", null, "立即进入收束,由 " + P(I(r).display_name(m.value.host)) + " 在 " + P(h.value.summary_minutes || 5) + " 分钟收束预留内根据已有材料总结。", 1),
50098
- E.value ? Y("", !0) : (U(), W("small", lX, P(h.value.closing ? "已在收尾中。" : "仅进行中的讨论可以收尾;暂停后可先重启再收尾,或直接结束并保留记录。"), 1))
50099
- ], 8, cX), K("button", {
50090
+ E.value ? Y("", !0) : (U(), W("small", sX, P(h.value.closing ? "已在收尾中。" : "仅进行中的讨论可以收尾;暂停后可先重启再收尾,或直接结束并保留记录。"), 1))
50091
+ ], 8, oX), K("button", {
50100
50092
  type: "button",
50101
50093
  class: "progress-ending-option",
50102
50094
  disabled: b.value || !!I(a),
50103
50095
  onClick: l[14] ||= (e) => be("conclude_discussion")
50104
- }, [...l[28] ||= [K("strong", null, "直接结束(不总结)", -1), K("span", null, "保留全部记录,阶段设为“已收束”,自动运行随之停止。", -1)]], 8, uX)])]),
50096
+ }, [...l[28] ||= [K("strong", null, "直接结束(不总结)", -1), K("span", null, "保留全部记录,阶段设为“已收束”,自动运行随之停止。", -1)]], 8, cX)])]),
50105
50097
  _: 1
50106
50098
  }, 8, ["open"])
50107
50099
  ], 2);
50108
50100
  };
50109
50101
  }
50110
- }, [["__scopeId", "data-v-7acf9bf9"]]), mX = { class: "progress-panel-anchor" }, hX = ["aria-expanded", "aria-label"], gX = { class: "progress-chip-text" }, _X = { class: "progress-chip-rounds" }, vX = {
50102
+ }, [["__scopeId", "data-v-7acf9bf9"]]), fX = { class: "progress-panel-anchor" }, pX = ["aria-expanded", "aria-label"], mX = { class: "progress-chip-text" }, hX = { class: "progress-chip-rounds" }, gX = {
50111
50103
  __name: "ProgressPanel",
50112
50104
  setup(e) {
50113
50105
  let { view: t, bridge: n } = xr("discussion"), r = /* @__PURE__ */ F(!1), i = Z(() => t.value.room), a = Z(() => i.value.limits || {}), o = Z(() => {
@@ -50137,7 +50129,7 @@ var PK = /*#__PURE__*/ EH({
50137
50129
  }), s = Z(() => a.value.max_rounds ? `${a.value.completed_rounds || 0}/${a.value.max_rounds} 轮` : n.progress_round(i.value)), c = Z(() => `${o.value.title} · ${s.value}`);
50138
50130
  return (e, t) => {
50139
50131
  let n = dH, a = NV;
50140
- return U(), W("div", mX, [q(n, { text: "查看讨论进度" }, {
50132
+ return U(), W("div", fX, [q(n, { text: "查看讨论进度" }, {
50141
50133
  default: L(() => [K("button", {
50142
50134
  type: "button",
50143
50135
  class: M(["progress-chip", `is-${o.value.tone}`]),
@@ -50145,7 +50137,7 @@ var PK = /*#__PURE__*/ EH({
50145
50137
  "aria-expanded": r.value,
50146
50138
  "aria-label": `查看讨论进度:${c.value}`,
50147
50139
  onClick: t[0] ||= (e) => r.value = !0
50148
- }, [t[2] ||= K("span", { class: "progress-dot" }, null, -1), K("span", gX, [J(P(o.value.title), 1), K("span", _X, " · " + P(s.value), 1)])], 10, hX)]),
50140
+ }, [t[2] ||= K("span", { class: "progress-dot" }, null, -1), K("span", mX, [J(P(o.value.title), 1), K("span", hX, " · " + P(s.value), 1)])], 10, pX)]),
50149
50141
  _: 1
50150
50142
  }), q(a, {
50151
50143
  open: r.value,
@@ -50158,107 +50150,107 @@ var PK = /*#__PURE__*/ EH({
50158
50150
  body: "progress-drawer-body"
50159
50151
  }
50160
50152
  }, {
50161
- body: L(() => [q(pX)]),
50153
+ body: L(() => [q(dX)]),
50162
50154
  _: 1
50163
50155
  }, 8, ["open", "description"])]);
50164
50156
  };
50165
50157
  }
50166
- }, yX = {
50158
+ }, _X = {
50167
50159
  id: "channel-sidebar",
50168
50160
  class: "channel-sidebar",
50169
50161
  "aria-label": "房间导航"
50170
- }, bX = { class: "channel-sidebar-content" }, xX = { class: "channel-directory-heading channel-tools-heading" }, SX = ["aria-expanded"], CX = { class: "channel-sidebar-footer" }, wX = { class: "channel-self" }, TX = { class: "channel-connection" }, EX = [
50162
+ }, vX = { class: "channel-sidebar-content" }, yX = { class: "channel-directory-heading channel-tools-heading" }, bX = ["aria-expanded"], xX = { class: "channel-sidebar-footer" }, SX = { class: "channel-self" }, CX = { class: "channel-connection" }, wX = [
50171
50163
  "aria-valuemax",
50172
50164
  "aria-valuenow",
50173
50165
  "aria-valuetext"
50174
- ], DX = { class: "channel-main" }, OX = { class: "channel-header" }, kX = { class: "channel-title-icon" }, AX = { class: "channel-title" }, jX = { class: "channel-title-copy" }, MX = ["title"], NX = ["title"], PX = {
50166
+ ], TX = { class: "channel-main" }, EX = { class: "channel-header" }, DX = { class: "channel-title-icon" }, OX = { class: "channel-title" }, kX = { class: "channel-title-copy" }, AX = ["title"], jX = ["title"], MX = {
50175
50167
  key: 0,
50176
50168
  class: "channel-header-context"
50177
- }, FX = { class: "channel-header-actions" }, IX = {
50169
+ }, NX = { class: "channel-header-actions" }, PX = {
50178
50170
  key: 0,
50179
50171
  class: "channel-launch-recovery",
50180
50172
  "aria-label": "未完成的创建或启动请求"
50181
- }, LX = { role: "status" }, RX = { class: "button-row" }, zX = {
50173
+ }, FX = { role: "status" }, IX = { class: "button-row" }, LX = {
50182
50174
  key: 1,
50183
50175
  class: "channel-tabbar"
50184
- }, BX = { class: "channel-brief-inner" }, VX = { class: "channel-brief-heading" }, HX = ["aria-label", "aria-expanded"], UX = {
50176
+ }, RX = { class: "channel-brief-inner" }, zX = { class: "channel-brief-heading" }, BX = ["aria-label", "aria-expanded"], VX = {
50185
50177
  key: 0,
50186
50178
  class: "channel-brief-preview"
50187
- }, WX = {
50179
+ }, HX = {
50188
50180
  id: "channel-brief-content",
50189
50181
  class: "channel-brief-content"
50190
- }, GX = ["innerHTML"], KX = { class: "channel-brief-footer" }, qX = { class: "channel-brief-status" }, JX = { class: "channel-content" }, YX = {
50182
+ }, UX = ["innerHTML"], WX = { class: "channel-brief-footer" }, GX = { class: "channel-brief-status" }, KX = { class: "channel-content" }, qX = {
50191
50183
  key: 0,
50192
50184
  class: "content-page channel-summary",
50193
50185
  role: "tabpanel",
50194
50186
  "aria-label": "共识"
50195
- }, XX = { class: "page-heading" }, ZX = {
50187
+ }, JX = { class: "page-heading" }, YX = {
50196
50188
  key: 0,
50197
50189
  class: "info-section"
50198
- }, QX = { class: "button-row" }, $X = { class: "form-footer" }, eZ = {
50190
+ }, XX = { class: "button-row" }, ZX = { class: "form-footer" }, QX = {
50199
50191
  key: 1,
50200
50192
  class: "channel-empty"
50201
- }, tZ = ["aria-valuenow", "aria-valuetext"], nZ = {
50193
+ }, $X = ["aria-valuenow", "aria-valuetext"], eZ = {
50202
50194
  key: 2,
50203
50195
  id: "channel-member-rail",
50204
50196
  class: "channel-member-rail",
50205
50197
  "aria-label": "当前焦点与讨论进度"
50206
- }, rZ = { class: "channel-rail-board" }, iZ = {
50198
+ }, tZ = { class: "channel-rail-board" }, nZ = {
50207
50199
  key: 0,
50208
50200
  class: "progress-board is-docked"
50209
- }, aZ = { class: "pb-header" }, oZ = { class: "pb-mode" }, sZ = {
50201
+ }, rZ = { class: "pb-header" }, iZ = { class: "pb-mode" }, aZ = {
50210
50202
  class: "pb-section",
50211
50203
  "aria-label": "成员"
50212
- }, cZ = { class: "pb-members" }, lZ = { class: "pb-member-body" }, uZ = { class: "pb-member-name" }, dZ = {
50204
+ }, oZ = { class: "pb-members" }, sZ = { class: "pb-member-body" }, cZ = { class: "pb-member-name" }, lZ = {
50213
50205
  key: 0,
50214
50206
  class: "pb-member-model",
50215
50207
  title: "它工作时请不要在原窗口继续操作"
50216
- }, fZ = {
50208
+ }, uZ = {
50217
50209
  key: 0,
50218
50210
  class: "pb-section",
50219
50211
  "aria-label": "提示"
50220
- }, pZ = {
50212
+ }, dZ = {
50221
50213
  key: 0,
50222
50214
  role: "alert",
50223
50215
  class: "pb-free-note is-error"
50224
- }, mZ = {
50216
+ }, fZ = {
50225
50217
  key: 1,
50226
50218
  role: "status",
50227
50219
  class: "pb-free-note"
50228
- }, hZ = {
50220
+ }, pZ = {
50229
50221
  key: 2,
50230
50222
  role: "alert",
50231
50223
  class: "pb-free-note is-error"
50232
- }, gZ = {
50224
+ }, mZ = {
50233
50225
  key: 3,
50234
50226
  role: "status",
50235
50227
  class: "pb-free-note"
50236
- }, _Z = {
50228
+ }, hZ = {
50237
50229
  class: "pb-section",
50238
50230
  "aria-label": "邀请"
50239
- }, vZ = {
50231
+ }, gZ = {
50240
50232
  key: 1,
50241
50233
  class: "pb-free-note"
50242
- }, yZ = {
50234
+ }, _Z = {
50243
50235
  key: 2,
50244
50236
  class: "pb-free-note"
50245
- }, bZ = {
50237
+ }, vZ = {
50246
50238
  key: 0,
50247
50239
  class: "pb-free-note"
50248
- }, xZ = {
50240
+ }, yZ = {
50249
50241
  key: 1,
50250
50242
  class: "pb-free-note"
50251
- }, SZ = {
50243
+ }, bZ = {
50252
50244
  key: 1,
50253
50245
  class: "pb-section",
50254
50246
  "aria-label": "头脑风暴"
50255
- }, CZ = ["onClick"], wZ = {
50247
+ }, xZ = ["onClick"], SZ = {
50256
50248
  class: "pb-actions",
50257
50249
  "aria-label": "操作"
50258
- }, TZ = {
50250
+ }, CZ = {
50259
50251
  key: 2,
50260
50252
  class: "progress-board is-docked"
50261
- }, EZ = { class: "channel-detail-title" }, DZ = { class: "info-section" }, OZ = "ai-codiscuss-channel-layout", kZ = 220, AZ = 440, jZ = 280, MZ = 16, NZ = 180, PZ = 400, FZ = 248, IZ = 16, LZ = 480, RZ = 1200, zZ = 0, BZ = {
50253
+ }, wZ = { class: "channel-detail-title" }, TZ = { class: "info-section" }, EZ = "ai-codiscuss-channel-layout", DZ = 220, OZ = 440, kZ = 280, AZ = 16, jZ = 180, MZ = 400, NZ = 248, PZ = 16, FZ = 480, IZ = 1200, LZ = 0, RZ = {
50262
50254
  __name: "ChannelWorkspace",
50263
50255
  setup(e) {
50264
50256
  let { view: t, bridge: n, field: r, act: i, pending: a } = xr("discussion"), o = Z(() => t.value.room), s = /* @__PURE__ */ F(""), c = /* @__PURE__ */ F(null), l = /* @__PURE__ */ F(null), u = /* @__PURE__ */ F(null), d = /* @__PURE__ */ F(!1), f = /* @__PURE__ */ F(!0), p = /* @__PURE__ */ F(!1), m = r("state-input"), h = r("brief-input"), g = r("search-input"), _ = r("author-select"), v = [{
@@ -50280,14 +50272,14 @@ var PK = /*#__PURE__*/ EH({
50280
50272
  label: "宽",
50281
50273
  width: 1240
50282
50274
  }
50283
- }, b = Fe(), x = /* @__PURE__ */ F(b.reading), S = /* @__PURE__ */ F(b.effects), C = /* @__PURE__ */ F(b.rail), w = /* @__PURE__ */ F(b.nav), T = /* @__PURE__ */ F(typeof window > "u" ? 728 : window.innerWidth), E = /* @__PURE__ */ F(b.collapsed), D = /* @__PURE__ */ F(!0), O = /* @__PURE__ */ F(b.rail_collapsed), ee = Z(() => T.value >= RZ), te = Z(() => t.value.tab === "discussion" && !O.value), ne = Z(() => ee.value && t.value.tab === "discussion" ? O.value ? "展开房间概览" : "收起房间概览" : "房间资料与参与者"), re = Z(() => {
50275
+ }, b = Fe(), x = /* @__PURE__ */ F(b.reading), S = /* @__PURE__ */ F(b.effects), C = /* @__PURE__ */ F(b.rail), w = /* @__PURE__ */ F(b.nav), T = /* @__PURE__ */ F(typeof window > "u" ? 728 : window.innerWidth), E = /* @__PURE__ */ F(b.collapsed), D = /* @__PURE__ */ F(!0), O = /* @__PURE__ */ F(b.rail_collapsed), ee = Z(() => T.value >= IZ), te = Z(() => t.value.tab === "discussion" && !O.value), ne = Z(() => ee.value && t.value.tab === "discussion" ? O.value ? "展开房间概览" : "收起房间概览" : "房间资料与参与者"), re = Z(() => {
50284
50276
  let e = document.createElement("template");
50285
50277
  return e.innerHTML = o.value?.rendered_brief || "", e.content.textContent.replace(/\s+/g, " ").trim();
50286
- }), ie = /* @__PURE__ */ F(null), ae = /* @__PURE__ */ F(0), k = null, A = /* @__PURE__ */ F(null), oe = /* @__PURE__ */ F(null), se = Z(() => Math.min(PZ, Math.max(NZ, T.value - LZ - zZ))), ce = Z(() => Math.min(w.value, se.value)), le = Z(() => ({
50278
+ }), ie = /* @__PURE__ */ F(null), ae = /* @__PURE__ */ F(0), k = null, A = /* @__PURE__ */ F(null), oe = /* @__PURE__ */ F(null), se = Z(() => Math.min(MZ, Math.max(jZ, T.value - FZ - LZ))), ce = Z(() => Math.min(w.value, se.value)), le = Z(() => ({
50287
50279
  "--channel-reading-width": `${y[x.value].width}px`,
50288
50280
  "--channel-rail-width": `${C.value}px`,
50289
50281
  "--channel-topbar-height": `${ae.value}px`,
50290
- "--channel-main-columns": E.value ? "minmax(0, 1fr)" : `${ce.value}px ${zZ}px minmax(0, 1fr)`
50282
+ "--channel-main-columns": E.value ? "minmax(0, 1fr)" : `${ce.value}px ${LZ}px minmax(0, 1fr)`
50291
50283
  })), ue = Object.entries(y).map(([e, t]) => ({
50292
50284
  value: e,
50293
50285
  label: t.label
@@ -50427,12 +50419,12 @@ var PK = /*#__PURE__*/ EH({
50427
50419
  }
50428
50420
  function Fe() {
50429
50421
  try {
50430
- let e = JSON.parse(localStorage.getItem(OZ)) || {};
50422
+ let e = JSON.parse(localStorage.getItem(EZ)) || {};
50431
50423
  return {
50432
50424
  reading: Object.hasOwn(y, e.reading) ? e.reading : "default",
50433
50425
  effects: e.effects === "reduced" ? "reduced" : "full",
50434
- rail: Number.isFinite(e.rail) ? Math.min(AZ, Math.max(kZ, e.rail)) : jZ,
50435
- nav: Number.isFinite(e.nav) ? Math.min(PZ, Math.max(NZ, e.nav)) : Ie(),
50426
+ rail: Number.isFinite(e.rail) ? Math.min(OZ, Math.max(DZ, e.rail)) : kZ,
50427
+ nav: Number.isFinite(e.nav) ? Math.min(MZ, Math.max(jZ, e.nav)) : Ie(),
50436
50428
  collapsed: e.collapsed === !0,
50437
50429
  brief_collapsed: e.brief_collapsed === !0,
50438
50430
  rail_collapsed: e.rail_collapsed === !0
@@ -50441,7 +50433,7 @@ var PK = /*#__PURE__*/ EH({
50441
50433
  return {
50442
50434
  reading: "default",
50443
50435
  effects: "full",
50444
- rail: jZ,
50436
+ rail: kZ,
50445
50437
  nav: Ie(),
50446
50438
  collapsed: !1,
50447
50439
  brief_collapsed: !1,
@@ -50450,11 +50442,11 @@ var PK = /*#__PURE__*/ EH({
50450
50442
  }
50451
50443
  }
50452
50444
  function Ie() {
50453
- return typeof window > "u" ? FZ : window.innerWidth >= 1900 ? 280 : window.innerWidth <= 980 ? 220 : FZ;
50445
+ return typeof window > "u" ? NZ : window.innerWidth >= 1900 ? 280 : window.innerWidth <= 980 ? 220 : NZ;
50454
50446
  }
50455
50447
  function Le() {
50456
50448
  try {
50457
- localStorage.setItem(OZ, JSON.stringify({
50449
+ localStorage.setItem(EZ, JSON.stringify({
50458
50450
  reading: x.value,
50459
50451
  effects: S.value,
50460
50452
  rail: C.value,
@@ -50485,19 +50477,19 @@ var PK = /*#__PURE__*/ EH({
50485
50477
  }, e.currentTarget.setPointerCapture(e.pointerId));
50486
50478
  }
50487
50479
  function Ue(e) {
50488
- A.value?.pointer === e.pointerId && (C.value = Math.round(Math.min(AZ, Math.max(kZ, A.value.width + A.value.x - e.clientX))));
50480
+ A.value?.pointer === e.pointerId && (C.value = Math.round(Math.min(OZ, Math.max(DZ, A.value.width + A.value.x - e.clientX))));
50489
50481
  }
50490
50482
  function We(e) {
50491
50483
  A.value?.pointer === e.pointerId && (A.value = null, e.currentTarget.hasPointerCapture(e.pointerId) && e.currentTarget.releasePointerCapture(e.pointerId), Le());
50492
50484
  }
50493
50485
  function Ge(e) {
50494
50486
  let t = {
50495
- ArrowLeft: C.value + MZ,
50496
- ArrowRight: C.value - MZ,
50497
- Home: kZ,
50498
- End: AZ
50487
+ ArrowLeft: C.value + AZ,
50488
+ ArrowRight: C.value - AZ,
50489
+ Home: DZ,
50490
+ End: OZ
50499
50491
  };
50500
- Object.hasOwn(t, e.key) && (e.preventDefault(), C.value = Math.min(AZ, Math.max(kZ, t[e.key])), Le());
50492
+ Object.hasOwn(t, e.key) && (e.preventDefault(), C.value = Math.min(OZ, Math.max(DZ, t[e.key])), Le());
50501
50493
  }
50502
50494
  function Ke(e) {
50503
50495
  e.button === 0 && (e.preventDefault(), e.currentTarget.focus(), oe.value = {
@@ -50507,19 +50499,19 @@ var PK = /*#__PURE__*/ EH({
50507
50499
  }, e.currentTarget.setPointerCapture(e.pointerId));
50508
50500
  }
50509
50501
  function qe(e) {
50510
- oe.value?.pointer === e.pointerId && (w.value = Math.round(Math.min(se.value, Math.max(NZ, oe.value.width + e.clientX - oe.value.x))));
50502
+ oe.value?.pointer === e.pointerId && (w.value = Math.round(Math.min(se.value, Math.max(jZ, oe.value.width + e.clientX - oe.value.x))));
50511
50503
  }
50512
50504
  function Je(e) {
50513
50505
  oe.value?.pointer === e.pointerId && (oe.value = null, e.currentTarget.hasPointerCapture(e.pointerId) && e.currentTarget.releasePointerCapture(e.pointerId), Le());
50514
50506
  }
50515
50507
  function Ye(e) {
50516
50508
  let t = {
50517
- ArrowLeft: ce.value - IZ,
50518
- ArrowRight: ce.value + IZ,
50519
- Home: NZ,
50509
+ ArrowLeft: ce.value - PZ,
50510
+ ArrowRight: ce.value + PZ,
50511
+ Home: jZ,
50520
50512
  End: se.value
50521
50513
  };
50522
- Object.hasOwn(t, e.key) && (e.preventDefault(), w.value = Math.min(se.value, Math.max(NZ, t[e.key])), Le());
50514
+ Object.hasOwn(t, e.key) && (e.preventDefault(), w.value = Math.min(se.value, Math.max(jZ, t[e.key])), Le());
50523
50515
  }
50524
50516
  return (e, r) => {
50525
50517
  let y = sA, b = hH, w = pA, T = MA, O = dH, ae = sH, k = GV, fe = lH, be = aH, Fe = nH, Ie = XV, Le = FV, ze = NV, Ve = AV;
@@ -50531,10 +50523,10 @@ var PK = /*#__PURE__*/ EH({
50531
50523
  }]),
50532
50524
  style: j(le.value)
50533
50525
  }, [
50534
- K("aside", yX, [
50526
+ K("aside", _X, [
50535
50527
  r[30] ||= ws("<header class=\"channel-workspace-heading\"><span class=\"channel-brand-icon\" aria-hidden=\"true\"><svg class=\"channel-brand-dark\" viewBox=\"0 0 100 100\"><defs><linearGradient id=\"brand-d0\" gradientUnits=\"userSpaceOnUse\" x1=\"4.5\" y1=\"64\" x2=\"95.5\" y2=\"64\"><stop offset=\"0.0%\" stop-color=\"#e9ebed\"></stop><stop offset=\"6.3%\" stop-color=\"#e2e5e7\"></stop><stop offset=\"12.5%\" stop-color=\"#dcdee1\"></stop><stop offset=\"18.8%\" stop-color=\"#d5d8db\"></stop><stop offset=\"25.0%\" stop-color=\"#ced2d5\"></stop><stop offset=\"31.3%\" stop-color=\"#c8cbcf\"></stop><stop offset=\"37.5%\" stop-color=\"#c1c5ca\"></stop><stop offset=\"43.8%\" stop-color=\"#babfc4\"></stop><stop offset=\"50.0%\" stop-color=\"#b4b9be\"></stop><stop offset=\"56.3%\" stop-color=\"#a9aeb3\"></stop><stop offset=\"62.5%\" stop-color=\"#9ea3a9\"></stop><stop offset=\"68.8%\" stop-color=\"#93999f\"></stop><stop offset=\"75.0%\" stop-color=\"#888e95\"></stop><stop offset=\"81.3%\" stop-color=\"#7e848a\"></stop><stop offset=\"87.5%\" stop-color=\"#737a80\"></stop><stop offset=\"93.8%\" stop-color=\"#697077\"></stop><stop offset=\"100.0%\" stop-color=\"#5f666d\"></stop></linearGradient><linearGradient id=\"brand-d1\" gradientUnits=\"userSpaceOnUse\" x1=\"8.5\" y1=\"36\" x2=\"91.5\" y2=\"36\"><stop offset=\"0.0%\" stop-color=\"#3f86ff\"></stop><stop offset=\"6.3%\" stop-color=\"#5588ff\"></stop><stop offset=\"12.5%\" stop-color=\"#6889ff\"></stop><stop offset=\"18.8%\" stop-color=\"#788aff\"></stop><stop offset=\"25.0%\" stop-color=\"#878bff\"></stop><stop offset=\"31.3%\" stop-color=\"#958cff\"></stop><stop offset=\"37.5%\" stop-color=\"#a78aef\"></stop><stop offset=\"43.8%\" stop-color=\"#b986d7\"></stop><stop offset=\"50.0%\" stop-color=\"#ca80bf\"></stop><stop offset=\"56.3%\" stop-color=\"#da78a6\"></stop><stop offset=\"62.5%\" stop-color=\"#ea6e8c\"></stop><stop offset=\"68.8%\" stop-color=\"#f56d78\"></stop><stop offset=\"75.0%\" stop-color=\"#f77f72\"></stop><stop offset=\"81.3%\" stop-color=\"#f8906b\"></stop><stop offset=\"87.5%\" stop-color=\"#f9a163\"></stop><stop offset=\"93.8%\" stop-color=\"#fab058\"></stop><stop offset=\"100.0%\" stop-color=\"#fac04a\"></stop></linearGradient><linearGradient id=\"brand-d2\" gradientUnits=\"userSpaceOnUse\" x1=\"28.021\" y1=\"95.435\" x2=\"39.978\" y2=\"4.564\"><stop offset=\"0.0%\" stop-color=\"#d06a49\"></stop><stop offset=\"6.3%\" stop-color=\"#d36f4f\"></stop><stop offset=\"12.5%\" stop-color=\"#d67456\"></stop><stop offset=\"18.8%\" stop-color=\"#d97a5c\"></stop><stop offset=\"25.0%\" stop-color=\"#dc7f62\"></stop><stop offset=\"31.3%\" stop-color=\"#df8468\"></stop><stop offset=\"37.5%\" stop-color=\"#e2896e\"></stop><stop offset=\"43.8%\" stop-color=\"#e58e74\"></stop><stop offset=\"50.0%\" stop-color=\"#e8937a\"></stop><stop offset=\"56.3%\" stop-color=\"#eb9d85\"></stop><stop offset=\"62.5%\" stop-color=\"#eea68f\"></stop><stop offset=\"68.8%\" stop-color=\"#f1b09a\"></stop><stop offset=\"75.0%\" stop-color=\"#f4baa4\"></stop><stop offset=\"81.3%\" stop-color=\"#f6c3af\"></stop><stop offset=\"87.5%\" stop-color=\"#f9cdb9\"></stop><stop offset=\"93.8%\" stop-color=\"#fbd6c4\"></stop><stop offset=\"100.0%\" stop-color=\"#fde0cf\"></stop></linearGradient><linearGradient id=\"brand-d3\" gradientUnits=\"userSpaceOnUse\" x1=\"71.978\" y1=\"95.435\" x2=\"60.021\" y2=\"4.564\"><stop offset=\"0.0%\" stop-color=\"#4a5cff\"></stop><stop offset=\"6.3%\" stop-color=\"#5062ff\"></stop><stop offset=\"12.5%\" stop-color=\"#5768ff\"></stop><stop offset=\"18.8%\" stop-color=\"#5d6dff\"></stop><stop offset=\"25.0%\" stop-color=\"#6472ff\"></stop><stop offset=\"31.3%\" stop-color=\"#6b77ff\"></stop><stop offset=\"37.5%\" stop-color=\"#717cff\"></stop><stop offset=\"43.8%\" stop-color=\"#7881ff\"></stop><stop offset=\"50.0%\" stop-color=\"#7f86ff\"></stop><stop offset=\"56.3%\" stop-color=\"#8990ff\"></stop><stop offset=\"62.5%\" stop-color=\"#9399ff\"></stop><stop offset=\"68.8%\" stop-color=\"#9da2ff\"></stop><stop offset=\"75.0%\" stop-color=\"#a8abff\"></stop><stop offset=\"81.3%\" stop-color=\"#b3b4ff\"></stop><stop offset=\"87.5%\" stop-color=\"#bebdff\"></stop><stop offset=\"93.8%\" stop-color=\"#c9c5ff\"></stop><stop offset=\"100.0%\" stop-color=\"#d4ceff\"></stop></linearGradient><clipPath id=\"brand-d4\"><polygon points=\"16,46.5 84,46.5 84,25.5 16,25.5\"></polygon></clipPath><clipPath id=\"brand-d5\"><polygon points=\"16,48.5 84,48.5 84,23.5 16,23.5\"></polygon></clipPath><clipPath id=\"brand-d6\"><polygon points=\"81.410,86.630 71.410,10.630 50.589,13.369 60.589,89.369\"></polygon></clipPath><clipPath id=\"brand-d7\"><polygon points=\"83.393,86.369 73.393,10.369 48.606,13.630 58.606,89.630\"></polygon></clipPath><clipPath id=\"brand-d8\"><polygon points=\"12,74.5 88,74.5 88,53.5 12,53.5\"></polygon></clipPath><clipPath id=\"brand-d9\"><polygon points=\"12,76.5 88,76.5 88,51.5 12,51.5\"></polygon></clipPath><clipPath id=\"brand-d10\"><polygon points=\"39.410,89.369 49.410,13.369 28.589,10.630 18.589,86.630\"></polygon></clipPath><clipPath id=\"brand-d11\"><polygon points=\"41.393,89.630 51.393,13.630 26.606,10.369 16.606,86.369\"></polygon></clipPath></defs><line x1=\"12\" y1=\"64\" x2=\"88\" y2=\"64\" stroke=\"url(#brand-d0)\" stroke-width=\"15\" stroke-linecap=\"round\"></line><line x1=\"16\" y1=\"36\" x2=\"84\" y2=\"36\" stroke=\"url(#brand-d1)\" stroke-width=\"15\" stroke-linecap=\"round\"></line><line x1=\"29\" y1=\"88\" x2=\"39\" y2=\"12\" stroke=\"url(#brand-d2)\" stroke-width=\"15\" stroke-linecap=\"round\"></line><line x1=\"71\" y1=\"88\" x2=\"61\" y2=\"12\" stroke=\"url(#brand-d3)\" stroke-width=\"15\" stroke-linecap=\"round\"></line><g clip-path=\"url(#brand-d4)\"><line x1=\"29\" y1=\"88\" x2=\"39\" y2=\"12\" stroke=\"#202127\" stroke-width=\"21\" stroke-linecap=\"round\"></line></g><g clip-path=\"url(#brand-d5)\"><line x1=\"29\" y1=\"88\" x2=\"39\" y2=\"12\" stroke=\"url(#brand-d2)\" stroke-width=\"15\" stroke-linecap=\"round\"></line></g><g clip-path=\"url(#brand-d6)\"><line x1=\"16\" y1=\"36\" x2=\"84\" y2=\"36\" stroke=\"#202127\" stroke-width=\"21\" stroke-linecap=\"round\"></line></g><g clip-path=\"url(#brand-d7)\"><line x1=\"16\" y1=\"36\" x2=\"84\" y2=\"36\" stroke=\"url(#brand-d1)\" stroke-width=\"15\" stroke-linecap=\"round\"></line></g><g clip-path=\"url(#brand-d8)\"><line x1=\"71\" y1=\"88\" x2=\"61\" y2=\"12\" stroke=\"#202127\" stroke-width=\"21\" stroke-linecap=\"round\"></line></g><g clip-path=\"url(#brand-d9)\"><line x1=\"71\" y1=\"88\" x2=\"61\" y2=\"12\" stroke=\"url(#brand-d3)\" stroke-width=\"15\" stroke-linecap=\"round\"></line></g><g clip-path=\"url(#brand-d10)\"><line x1=\"12\" y1=\"64\" x2=\"88\" y2=\"64\" stroke=\"#202127\" stroke-width=\"21\" stroke-linecap=\"round\"></line></g><g clip-path=\"url(#brand-d11)\"><line x1=\"12\" y1=\"64\" x2=\"88\" y2=\"64\" stroke=\"url(#brand-d0)\" stroke-width=\"15\" stroke-linecap=\"round\"></line></g></svg><svg class=\"channel-brand-light\" viewBox=\"0 0 100 100\"><defs><linearGradient id=\"brand-l0\" gradientUnits=\"userSpaceOnUse\" x1=\"4.5\" y1=\"64\" x2=\"95.5\" y2=\"64\"><stop offset=\"0.0%\" stop-color=\"#0b0d0f\"></stop><stop offset=\"6.3%\" stop-color=\"#101315\"></stop><stop offset=\"12.5%\" stop-color=\"#16191b\"></stop><stop offset=\"18.8%\" stop-color=\"#1c1f22\"></stop><stop offset=\"25.0%\" stop-color=\"#222529\"></stop><stop offset=\"31.3%\" stop-color=\"#282c2f\"></stop><stop offset=\"37.5%\" stop-color=\"#2e3237\"></stop><stop offset=\"43.8%\" stop-color=\"#34393e\"></stop><stop offset=\"50.0%\" stop-color=\"#3b4045\"></stop><stop offset=\"56.3%\" stop-color=\"#484d52\"></stop><stop offset=\"62.5%\" stop-color=\"#555a5f\"></stop><stop offset=\"68.8%\" stop-color=\"#62676d\"></stop><stop offset=\"75.0%\" stop-color=\"#70757b\"></stop><stop offset=\"81.3%\" stop-color=\"#7e8389\"></stop><stop offset=\"87.5%\" stop-color=\"#8c9297\"></stop><stop offset=\"93.8%\" stop-color=\"#9aa0a6\"></stop><stop offset=\"100.0%\" stop-color=\"#a9afb5\"></stop></linearGradient><linearGradient id=\"brand-l1\" gradientUnits=\"userSpaceOnUse\" x1=\"8.5\" y1=\"36\" x2=\"91.5\" y2=\"36\"><stop offset=\"0.0%\" stop-color=\"#2f7bff\"></stop><stop offset=\"6.3%\" stop-color=\"#487cff\"></stop><stop offset=\"12.5%\" stop-color=\"#5a7cff\"></stop><stop offset=\"18.8%\" stop-color=\"#6a7dff\"></stop><stop offset=\"25.0%\" stop-color=\"#797dff\"></stop><stop offset=\"31.3%\" stop-color=\"#877dff\"></stop><stop offset=\"37.5%\" stop-color=\"#997cee\"></stop><stop offset=\"43.8%\" stop-color=\"#ae79d3\"></stop><stop offset=\"50.0%\" stop-color=\"#c174b8\"></stop><stop offset=\"56.3%\" stop-color=\"#d36b9d\"></stop><stop offset=\"62.5%\" stop-color=\"#e56080\"></stop><stop offset=\"68.8%\" stop-color=\"#f15d69\"></stop><stop offset=\"75.0%\" stop-color=\"#f37162\"></stop><stop offset=\"81.3%\" stop-color=\"#f5835a\"></stop><stop offset=\"87.5%\" stop-color=\"#f79550\"></stop><stop offset=\"93.8%\" stop-color=\"#f8a542\"></stop><stop offset=\"100.0%\" stop-color=\"#f8b52c\"></stop></linearGradient><linearGradient id=\"brand-l2\" gradientUnits=\"userSpaceOnUse\" x1=\"28.021\" y1=\"95.435\" x2=\"39.978\" y2=\"4.564\"><stop offset=\"0.0%\" stop-color=\"#b9502f\"></stop><stop offset=\"6.3%\" stop-color=\"#bd5534\"></stop><stop offset=\"12.5%\" stop-color=\"#c15a39\"></stop><stop offset=\"18.8%\" stop-color=\"#c55f3e\"></stop><stop offset=\"25.0%\" stop-color=\"#c96443\"></stop><stop offset=\"31.3%\" stop-color=\"#cd6848\"></stop><stop offset=\"37.5%\" stop-color=\"#d16d4d\"></stop><stop offset=\"43.8%\" stop-color=\"#d57252\"></stop><stop offset=\"50.0%\" stop-color=\"#d97757\"></stop><stop offset=\"56.3%\" stop-color=\"#dd8060\"></stop><stop offset=\"62.5%\" stop-color=\"#e08a69\"></stop><stop offset=\"68.8%\" stop-color=\"#e49372\"></stop><stop offset=\"75.0%\" stop-color=\"#e79c7b\"></stop><stop offset=\"81.3%\" stop-color=\"#eaa584\"></stop><stop offset=\"87.5%\" stop-color=\"#edae8d\"></stop><stop offset=\"93.8%\" stop-color=\"#f0b796\"></stop><stop offset=\"100.0%\" stop-color=\"#f3c09f\"></stop></linearGradient><linearGradient id=\"brand-l3\" gradientUnits=\"userSpaceOnUse\" x1=\"71.978\" y1=\"95.435\" x2=\"60.021\" y2=\"4.564\"><stop offset=\"0.0%\" stop-color=\"#2b33e6\"></stop><stop offset=\"6.3%\" stop-color=\"#3139e9\"></stop><stop offset=\"12.5%\" stop-color=\"#363fec\"></stop><stop offset=\"18.8%\" stop-color=\"#3c44ef\"></stop><stop offset=\"25.0%\" stop-color=\"#4249f3\"></stop><stop offset=\"31.3%\" stop-color=\"#484ef6\"></stop><stop offset=\"37.5%\" stop-color=\"#4e53f9\"></stop><stop offset=\"43.8%\" stop-color=\"#5457fc\"></stop><stop offset=\"50.0%\" stop-color=\"#5a5cff\"></stop><stop offset=\"56.3%\" stop-color=\"#6569ff\"></stop><stop offset=\"62.5%\" stop-color=\"#7075ff\"></stop><stop offset=\"68.8%\" stop-color=\"#7c80ff\"></stop><stop offset=\"75.0%\" stop-color=\"#888bff\"></stop><stop offset=\"81.3%\" stop-color=\"#9595ff\"></stop><stop offset=\"87.5%\" stop-color=\"#a29fff\"></stop><stop offset=\"93.8%\" stop-color=\"#afa9ff\"></stop><stop offset=\"100.0%\" stop-color=\"#bdb3ff\"></stop></linearGradient><clipPath id=\"brand-l4\"><polygon points=\"16,46.5 84,46.5 84,25.5 16,25.5\"></polygon></clipPath><clipPath id=\"brand-l5\"><polygon points=\"16,48.5 84,48.5 84,23.5 16,23.5\"></polygon></clipPath><clipPath id=\"brand-l6\"><polygon points=\"81.410,86.630 71.410,10.630 50.589,13.369 60.589,89.369\"></polygon></clipPath><clipPath id=\"brand-l7\"><polygon points=\"83.393,86.369 73.393,10.369 48.606,13.630 58.606,89.630\"></polygon></clipPath><clipPath id=\"brand-l8\"><polygon points=\"12,74.5 88,74.5 88,53.5 12,53.5\"></polygon></clipPath><clipPath id=\"brand-l9\"><polygon points=\"12,76.5 88,76.5 88,51.5 12,51.5\"></polygon></clipPath><clipPath id=\"brand-l10\"><polygon points=\"39.410,89.369 49.410,13.369 28.589,10.630 18.589,86.630\"></polygon></clipPath><clipPath id=\"brand-l11\"><polygon points=\"41.393,89.630 51.393,13.630 26.606,10.369 16.606,86.369\"></polygon></clipPath></defs><line x1=\"12\" y1=\"64\" x2=\"88\" y2=\"64\" stroke=\"url(#brand-l0)\" stroke-width=\"15\" stroke-linecap=\"round\"></line><line x1=\"16\" y1=\"36\" x2=\"84\" y2=\"36\" stroke=\"url(#brand-l1)\" stroke-width=\"15\" stroke-linecap=\"round\"></line><line x1=\"29\" y1=\"88\" x2=\"39\" y2=\"12\" stroke=\"url(#brand-l2)\" stroke-width=\"15\" stroke-linecap=\"round\"></line><line x1=\"71\" y1=\"88\" x2=\"61\" y2=\"12\" stroke=\"url(#brand-l3)\" stroke-width=\"15\" stroke-linecap=\"round\"></line><g clip-path=\"url(#brand-l4)\"><line x1=\"29\" y1=\"88\" x2=\"39\" y2=\"12\" stroke=\"#f6f6f6\" stroke-width=\"21\" stroke-linecap=\"round\"></line></g><g clip-path=\"url(#brand-l5)\"><line x1=\"29\" y1=\"88\" x2=\"39\" y2=\"12\" stroke=\"url(#brand-l2)\" stroke-width=\"15\" stroke-linecap=\"round\"></line></g><g clip-path=\"url(#brand-l6)\"><line x1=\"16\" y1=\"36\" x2=\"84\" y2=\"36\" stroke=\"#f6f6f6\" stroke-width=\"21\" stroke-linecap=\"round\"></line></g><g clip-path=\"url(#brand-l7)\"><line x1=\"16\" y1=\"36\" x2=\"84\" y2=\"36\" stroke=\"url(#brand-l1)\" stroke-width=\"15\" stroke-linecap=\"round\"></line></g><g clip-path=\"url(#brand-l8)\"><line x1=\"71\" y1=\"88\" x2=\"61\" y2=\"12\" stroke=\"#f6f6f6\" stroke-width=\"21\" stroke-linecap=\"round\"></line></g><g clip-path=\"url(#brand-l9)\"><line x1=\"71\" y1=\"88\" x2=\"61\" y2=\"12\" stroke=\"url(#brand-l3)\" stroke-width=\"15\" stroke-linecap=\"round\"></line></g><g clip-path=\"url(#brand-l10)\"><line x1=\"12\" y1=\"64\" x2=\"88\" y2=\"64\" stroke=\"#f6f6f6\" stroke-width=\"21\" stroke-linecap=\"round\"></line></g><g clip-path=\"url(#brand-l11)\"><line x1=\"12\" y1=\"64\" x2=\"88\" y2=\"64\" stroke=\"url(#brand-l0)\" stroke-width=\"15\" stroke-linecap=\"round\"></line></g></svg></span><span class=\"channel-brand-text\"><strong>共议</strong><span>AI CoDiscuss</span></span></header>", 1),
50536
- K("div", bX, [
50537
- q(_Y, {
50528
+ K("div", vX, [
50529
+ q(hY, {
50538
50530
  onSelect: ke,
50539
50531
  onManage: De,
50540
50532
  onCreate: je,
@@ -50543,12 +50535,12 @@ var PK = /*#__PURE__*/ EH({
50543
50535
  onDeleteFolder: Pe,
50544
50536
  onArchives: Oe
50545
50537
  }),
50546
- K("div", xX, [K("button", {
50538
+ K("div", yX, [K("button", {
50547
50539
  type: "button",
50548
50540
  class: "channel-section-toggle",
50549
50541
  "aria-expanded": f.value,
50550
50542
  onClick: r[0] ||= (e) => f.value = !f.value
50551
- }, [q(y, { name: f.value ? "i-lucide-chevron-down" : "i-lucide-chevron-right" }, null, 8, ["name"]), r[29] ||= J("频道工具", -1)], 8, SX)]),
50543
+ }, [q(y, { name: f.value ? "i-lucide-chevron-down" : "i-lucide-chevron-right" }, null, 8, ["name"]), r[29] ||= J("频道工具", -1)], 8, bX)]),
50552
50544
  f.value ? (U(), G(b, {
50553
50545
  key: 0,
50554
50546
  items: Te.value,
@@ -50564,7 +50556,7 @@ var PK = /*#__PURE__*/ EH({
50564
50556
  }
50565
50557
  }, null, 8, ["items"])) : Y("", !0)
50566
50558
  ]),
50567
- K("footer", CX, [
50559
+ K("footer", xX, [
50568
50560
  q(w, {
50569
50561
  src: I(n).identities[I(_)]?.icon,
50570
50562
  text: I(n).identities[I(_)]?.initials,
@@ -50577,7 +50569,7 @@ var PK = /*#__PURE__*/ EH({
50577
50569
  "alt",
50578
50570
  "class"
50579
50571
  ]),
50580
- K("div", wX, [K("strong", null, P(I(n).display_name(I(_))), 1), K("div", TX, [K("span", { class: M({ connected: I(t).connected }) }, null, 2), J(P(I(t).connected ? "网站已连接" : "网站未连接"), 1)])]),
50572
+ K("div", SX, [K("strong", null, P(I(n).display_name(I(_))), 1), K("div", CX, [K("span", { class: M({ connected: I(t).connected }) }, null, 2), J(P(I(t).connected ? "网站已连接" : "网站未连接"), 1)])]),
50581
50573
  q(O, { text: "外观设置" }, {
50582
50574
  default: L(() => [q(T, {
50583
50575
  icon: "i-lucide-settings-2",
@@ -50600,7 +50592,7 @@ var PK = /*#__PURE__*/ EH({
50600
50592
  "aria-label": "调整房间栏宽度",
50601
50593
  "aria-orientation": "vertical",
50602
50594
  "aria-controls": "channel-sidebar",
50603
- "aria-valuemin": NZ,
50595
+ "aria-valuemin": jZ,
50604
50596
  "aria-valuemax": se.value,
50605
50597
  "aria-valuenow": ce.value,
50606
50598
  "aria-valuetext": `${ce.value} 像素`,
@@ -50611,13 +50603,13 @@ var PK = /*#__PURE__*/ EH({
50611
50603
  onPointercancel: Je,
50612
50604
  onLostpointercapture: Je,
50613
50605
  onKeydown: Ye
50614
- }, null, 40, EX)),
50615
- K("main", DX, [K("div", {
50606
+ }, null, 40, wX)),
50607
+ K("main", TX, [K("div", {
50616
50608
  ref_key: "topbar",
50617
50609
  ref: ie,
50618
50610
  class: M(["channel-topbar", { "is-overlay": o.value && I(t).tab === "discussion" }])
50619
50611
  }, [
50620
- K("header", OX, [
50612
+ K("header", EX, [
50621
50613
  q(O, { text: E.value ? "展开房间栏" : "收起房间栏" }, {
50622
50614
  default: L(() => [q(T, {
50623
50615
  icon: "i-lucide-panel-left",
@@ -50642,13 +50634,13 @@ var PK = /*#__PURE__*/ EH({
50642
50634
  "aria-expanded": d.value,
50643
50635
  onClick: r[3] ||= (e) => d.value = !0
50644
50636
  }, null, 8, ["aria-expanded"]),
50645
- K("span", kX, [q(y, { name: "i-lucide-hash" })]),
50646
- K("div", AX, [K("div", jX, [K("h1", { title: o.value?.title }, P(o.value?.title || "共议"), 9, MX), o.value?.floor && !pe.value ? (U(), W("div", {
50637
+ K("span", DX, [q(y, { name: "i-lucide-hash" })]),
50638
+ K("div", OX, [K("div", kX, [K("h1", { title: o.value?.title }, P(o.value?.title || "共议"), 9, AX), o.value?.floor && !pe.value ? (U(), W("div", {
50647
50639
  key: 0,
50648
50640
  class: M(["channel-floor-status", { "is-held": o.value.floor.holder }]),
50649
50641
  role: "status",
50650
50642
  title: `发言权:${I(n).floor_status(o.value)}`
50651
- }, [q(y, { name: "i-lucide-mic" }), K("span", null, "发言权:" + P(I(n).floor_status(o.value)), 1)], 10, NX)) : Y("", !0)]), o.value?.archived ? (U(), G(ae, {
50643
+ }, [q(y, { name: "i-lucide-mic" }), K("span", null, "发言权:" + P(I(n).floor_status(o.value)), 1)], 10, jX)) : Y("", !0)]), o.value?.archived ? (U(), G(ae, {
50652
50644
  key: 0,
50653
50645
  color: "neutral",
50654
50646
  variant: "subtle",
@@ -50657,12 +50649,12 @@ var PK = /*#__PURE__*/ EH({
50657
50649
  default: L(() => [...r[31] ||= [J("已存档", -1)]]),
50658
50650
  _: 1
50659
50651
  })) : Y("", !0)]),
50660
- o.value ? (U(), W("span", PX, [
50652
+ o.value ? (U(), W("span", MX, [
50661
50653
  J(P(me.value.find((e) => e.value === I(t).tab)?.label), 1),
50662
50654
  r[32] ||= K("span", null, "·", -1),
50663
50655
  J(P(o.value.message_count) + " 条记录", 1)
50664
50656
  ])) : Y("", !0),
50665
- K("div", FX, [
50657
+ K("div", NX, [
50666
50658
  I(t).tab === "discussion" ? (U(), W("form", {
50667
50659
  key: 0,
50668
50660
  class: "channel-search",
@@ -50720,7 +50712,7 @@ var PK = /*#__PURE__*/ EH({
50720
50712
  ])]),
50721
50713
  _: 1
50722
50714
  })) : Y("", !0),
50723
- o.value && !(te.value && ee.value) ? (U(), G(vX, { key: 2 })) : Y("", !0)
50715
+ o.value && !(te.value && ee.value) ? (U(), G(gX, { key: 2 })) : Y("", !0)
50724
50716
  ]),
50725
50717
  q(O, { text: ne.value }, {
50726
50718
  default: L(() => [q(T, {
@@ -50741,12 +50733,12 @@ var PK = /*#__PURE__*/ EH({
50741
50733
  _: 1
50742
50734
  }, 8, ["text"])
50743
50735
  ]),
50744
- I(t).launch.recoveries.length ? (U(), W("section", IX, [
50736
+ I(t).launch.recoveries.length ? (U(), W("section", PX, [
50745
50737
  r[33] ||= K("h2", null, "继续未完成的请求", -1),
50746
50738
  (U(!0), W(H, null, B(I(t).launch.recoveries, (e) => (U(), W("article", { key: e.id }, [
50747
50739
  K("strong", null, P(e.title), 1),
50748
- K("p", LX, P(e.error || "启动结果尚未确认;原请求已保存在此浏览器中。"), 1),
50749
- K("div", RX, [
50740
+ K("p", FX, P(e.error || "启动结果尚未确认;原请求已保存在此浏览器中。"), 1),
50741
+ K("div", IX, [
50750
50742
  q(T, {
50751
50743
  label: e.direct ? "继续创建房间" : "继续本次启动",
50752
50744
  size: "sm",
@@ -50779,7 +50771,7 @@ var PK = /*#__PURE__*/ EH({
50779
50771
  ]))), 128)),
50780
50772
  r[34] ||= K("small", null, "移除待办不会删除房间或停止讨论。", -1)
50781
50773
  ])) : Y("", !0),
50782
- o.value ? (U(), W("div", zX, [q(fe, {
50774
+ o.value ? (U(), W("div", LX, [q(fe, {
50783
50775
  modelValue: de.value,
50784
50776
  "onUpdate:modelValue": r[8] ||= (e) => de.value = e,
50785
50777
  items: me.value,
@@ -50794,7 +50786,7 @@ var PK = /*#__PURE__*/ EH({
50794
50786
  key: 2,
50795
50787
  class: M(["channel-host-brief", { "is-collapsed": D.value }]),
50796
50788
  "aria-label": "主持简报"
50797
- }, [K("div", BX, [K("div", VX, [K("button", {
50789
+ }, [K("div", RX, [K("div", zX, [K("button", {
50798
50790
  type: "button",
50799
50791
  class: "channel-brief-toggle",
50800
50792
  "aria-label": D.value ? "展开主持简报" : "收起主持简报",
@@ -50804,8 +50796,8 @@ var PK = /*#__PURE__*/ EH({
50804
50796
  }, [
50805
50797
  q(y, { name: D.value ? "i-lucide-chevron-right" : "i-lucide-chevron-down" }, null, 8, ["name"]),
50806
50798
  K("strong", null, "主持简报" + P(D.value ? ":" : ""), 1),
50807
- D.value ? (U(), W("span", UX, P(re.value), 1)) : Y("", !0)
50808
- ], 8, HX), D.value ? Y("", !0) : (U(), G(T, {
50799
+ D.value ? (U(), W("span", VX, P(re.value), 1)) : Y("", !0)
50800
+ ], 8, BX), D.value ? Y("", !0) : (U(), G(T, {
50809
50801
  key: 0,
50810
50802
  label: "更新简报",
50811
50803
  color: "neutral",
@@ -50813,30 +50805,30 @@ var PK = /*#__PURE__*/ EH({
50813
50805
  size: "xs",
50814
50806
  class: "channel-brief-update",
50815
50807
  onClick: r[9] ||= (e) => I(i)("tab", "context")
50816
- }))]), vr(K("div", WX, [K("div", {
50808
+ }))]), vr(K("div", HX, [K("div", {
50817
50809
  class: "channel-brief-text markdown-body",
50818
50810
  innerHTML: o.value.rendered_brief
50819
- }, null, 8, GX), K("div", KX, [K("span", qX, P(I(n).progress_speaker(o.value)), 1), K("small", null, P(I(n).brief_meta(o.value)), 1)])], 512), [[Vc, !D.value]])])], 2)) : Y("", !0)
50811
+ }, null, 8, UX), K("div", WX, [K("span", GX, P(I(n).progress_speaker(o.value)), 1), K("small", null, P(I(n).brief_meta(o.value)), 1)])], 512), [[Vc, !D.value]])])], 2)) : Y("", !0)
50820
50812
  ], 2), o.value ? (U(), W("div", {
50821
50813
  key: 0,
50822
50814
  class: M(["channel-body", { "channel-body-discussion": I(t).tab === "discussion" }])
50823
- }, [K("div", JX, [
50824
- vr(q(IW, {
50815
+ }, [K("div", KX, [
50816
+ vr(q(PW, {
50825
50817
  onDetail: Ae,
50826
50818
  onEdit: r[10] ||= (e) => s.value = "edit"
50827
50819
  }, null, 512), [[Vc, I(t).tab === "discussion"]]),
50828
- I(t).tab === "context" ? (U(), W("section", YX, [
50829
- K("div", XX, [r[35] ||= K("div", null, [K("h2", null, "共识与分歧"), K("p", null, "整理讨论进展,用 #消息编号 保留依据。")], -1), q(ae, {
50820
+ I(t).tab === "context" ? (U(), W("section", qX, [
50821
+ K("div", JX, [r[35] ||= K("div", null, [K("h2", null, "共识与分歧"), K("p", null, "整理讨论进展,用 #消息编号 保留依据。")], -1), q(ae, {
50830
50822
  color: "neutral",
50831
50823
  variant: "outline"
50832
50824
  }, {
50833
50825
  default: L(() => [J("截止 #" + P(o.value.state_until), 1)]),
50834
50826
  _: 1
50835
50827
  })]),
50836
- Array.isArray(o.value.latest_receipts) && o.value.latest_receipts.length ? (U(), W("section", ZX, [
50828
+ Array.isArray(o.value.latest_receipts) && o.value.latest_receipts.length ? (U(), W("section", YX, [
50837
50829
  r[36] ||= K("h3", null, "最新运行回执", -1),
50838
50830
  r[37] ||= K("p", { class: "fine-print" }, "以下回执独立于摘要更新;晚于摘要的回执可能尚未整理,实际运行结果请查看原文。", -1),
50839
- K("div", QX, [(U(!0), W(H, null, B(o.value.latest_receipts, (e) => (U(), G(T, {
50831
+ K("div", XX, [(U(!0), W(H, null, B(o.value.latest_receipts, (e) => (U(), G(T, {
50840
50832
  key: e.id,
50841
50833
  label: `${I(n).display_name(e.author)} #${e.id} · ${new Date(e.created_at).toLocaleString("zh-CN")}${e.id > o.value.state_until ? " · 晚于摘要" : ""}`,
50842
50834
  variant: "link",
@@ -50879,7 +50871,7 @@ var PK = /*#__PURE__*/ EH({
50879
50871
  }, null, 8, ["modelValue"])]),
50880
50872
  _: 1
50881
50873
  }),
50882
- K("div", $X, [K("span", null, "依据消息截止 #" + P(I(t).snapshot_id), 1), q(T, {
50874
+ K("div", ZX, [K("span", null, "依据消息截止 #" + P(I(t).snapshot_id), 1), q(T, {
50883
50875
  type: "submit",
50884
50876
  color: "neutral",
50885
50877
  icon: "i-lucide-check",
@@ -50889,12 +50881,12 @@ var PK = /*#__PURE__*/ EH({
50889
50881
  }, null, 8, ["loading"])])
50890
50882
  ], 32)
50891
50883
  ])) : Y("", !0),
50892
- I(t).tab === "topic" || I(t).tab === "access" ? (U(), G(lK, {
50884
+ I(t).tab === "topic" || I(t).tab === "access" ? (U(), G(sK, {
50893
50885
  key: I(t).tab,
50894
50886
  onOpen: r[14] ||= (e) => s.value = e,
50895
50887
  onDetail: Ae
50896
50888
  })) : Y("", !0)
50897
- ])], 2)) : (U(), W("div", eZ, [
50889
+ ])], 2)) : (U(), W("div", QX, [
50898
50890
  q(y, { name: "i-lucide-hash" }),
50899
50891
  r[38] ||= K("h2", null, "新建一个讨论房间", -1),
50900
50892
  r[39] ||= K("p", null, "每个房间围绕一个议题,保留所有人的观点。", -1),
@@ -50913,8 +50905,8 @@ var PK = /*#__PURE__*/ EH({
50913
50905
  "aria-label": "调整右侧栏宽度",
50914
50906
  "aria-orientation": "vertical",
50915
50907
  "aria-controls": "channel-member-rail",
50916
- "aria-valuemin": kZ,
50917
- "aria-valuemax": AZ,
50908
+ "aria-valuemin": DZ,
50909
+ "aria-valuemax": OZ,
50918
50910
  "aria-valuenow": C.value,
50919
50911
  "aria-valuetext": `${C.value} 像素`,
50920
50912
  title: "拖动调整右侧栏宽度,也可使用左右方向键",
@@ -50924,10 +50916,10 @@ var PK = /*#__PURE__*/ EH({
50924
50916
  onPointercancel: We,
50925
50917
  onLostpointercapture: We,
50926
50918
  onKeydown: Ge
50927
- }, null, 40, tZ)) : Y("", !0),
50928
- te.value ? (U(), W("aside", nZ, [K("section", rZ, [o.value && pe.value ? (U(), W("div", iZ, [
50929
- K("header", aZ, [r[40] ||= K("strong", null, "自由协作", -1), K("span", oZ, P(xe.value ? `${I(n).display_name(xe.value.name)} 主持` : "无主持人"), 1)]),
50930
- K("section", sZ, [r[42] ||= K("h4", null, "成员", -1), K("ul", cZ, [(U(!0), W(H, null, B(o.value.free?.members || [], (e) => (U(), W("li", {
50919
+ }, null, 40, $X)) : Y("", !0),
50920
+ te.value ? (U(), W("aside", eZ, [K("section", tZ, [o.value && pe.value ? (U(), W("div", nZ, [
50921
+ K("header", rZ, [r[40] ||= K("strong", null, "自由协作", -1), K("span", iZ, P(xe.value ? `${I(n).display_name(xe.value.name)} 主持` : "无主持人"), 1)]),
50922
+ K("section", aZ, [r[42] ||= K("h4", null, "成员", -1), K("ul", oZ, [(U(!0), W(H, null, B(o.value.free?.members || [], (e) => (U(), W("li", {
50931
50923
  key: e.id,
50932
50924
  class: "pb-member"
50933
50925
  }, [
@@ -50943,8 +50935,8 @@ var PK = /*#__PURE__*/ EH({
50943
50935
  "alt",
50944
50936
  "class"
50945
50937
  ]),
50946
- K("div", lZ, [
50947
- K("div", uZ, [
50938
+ K("div", sZ, [
50939
+ K("div", cZ, [
50948
50940
  J(P(I(n).display_name(e.name)), 1),
50949
50941
  e.role === "host" ? (U(), G(y, {
50950
50942
  key: 0,
@@ -50957,7 +50949,7 @@ var PK = /*#__PURE__*/ EH({
50957
50949
  }[e.access] || "本机唤醒"), 1)
50958
50950
  ]),
50959
50951
  K("div", { class: M(["pb-member-status", `is-${Se(e)}`]) }, [r[41] ||= K("span", { class: "pb-dot" }, null, -1), J(P(we(e)), 1)], 2),
50960
- e.session_mode === "borrowed" ? (U(), W("p", dZ, "借用你正在使用的会话")) : Y("", !0)
50952
+ e.session_mode === "borrowed" ? (U(), W("p", lZ, "借用你正在使用的会话")) : Y("", !0)
50961
50953
  ]),
50962
50954
  q(Ie, {
50963
50955
  items: Ce(e),
@@ -50975,7 +50967,7 @@ var PK = /*#__PURE__*/ EH({
50975
50967
  _: 2
50976
50968
  }, 1032, ["items"])
50977
50969
  ]))), 128))])]),
50978
- o.value.free?.conflicts?.length || o.value.free?.halted_chains?.length || I(t).free_error || I(t).free_notice || I(t).access?.error || I(t).access?.notice ? (U(), W("section", fZ, [
50970
+ o.value.free?.conflicts?.length || o.value.free?.halted_chains?.length || I(t).free_error || I(t).free_notice || I(t).access?.error || I(t).access?.notice ? (U(), W("section", uZ, [
50979
50971
  r[43] ||= K("h4", null, "提示", -1),
50980
50972
  (U(!0), W(H, null, B(o.value.free?.conflicts || [], (e) => (U(), W("p", {
50981
50973
  key: e.executions.join("-"),
@@ -50985,10 +50977,10 @@ var PK = /*#__PURE__*/ EH({
50985
50977
  key: e.chain_id,
50986
50978
  class: "pb-free-note"
50987
50979
  }, "#" + P(e.chain_id) + " 的任务链已停:" + P(e.reason === "budget" ? `达到 ${o.value.free.max_auto_hops} 次上限` : "派出的成员都失败了") + ";发新消息即重新开始", 1))), 128)),
50988
- I(t).free_error ? (U(), W("p", pZ, P(I(t).free_error), 1)) : I(t).free_notice ? (U(), W("p", mZ, P(I(t).free_notice), 1)) : Y("", !0),
50989
- I(t).access?.error ? (U(), W("p", hZ, P(I(t).access.error), 1)) : I(t).access?.notice ? (U(), W("p", gZ, P(I(t).access.notice), 1)) : Y("", !0)
50980
+ I(t).free_error ? (U(), W("p", dZ, P(I(t).free_error), 1)) : I(t).free_notice ? (U(), W("p", fZ, P(I(t).free_notice), 1)) : Y("", !0),
50981
+ I(t).access?.error ? (U(), W("p", pZ, P(I(t).access.error), 1)) : I(t).access?.notice ? (U(), W("p", mZ, P(I(t).access.notice), 1)) : Y("", !0)
50990
50982
  ])) : Y("", !0),
50991
- K("section", _Z, [
50983
+ K("section", hZ, [
50992
50984
  r[44] ||= K("h4", null, "邀请 AI", -1),
50993
50985
  K("form", {
50994
50986
  class: "pb-free-invite",
@@ -51041,7 +51033,7 @@ var PK = /*#__PURE__*/ EH({
51041
51033
  "aria-label": "受邀成员的项目文件权限",
51042
51034
  size: "sm",
51043
51035
  class: "w-full"
51044
- }, null, 8, ["modelValue"])) : ge.value === "online" || ge.value === "runner" && I(t).launch.profiles[he.value]?.adapter === "api" ? (U(), W("span", vZ, "不访问项目文件")) : he.value ? (U(), W("span", yZ, "项目文件由其软件设置")) : Y("", !0),
51036
+ }, null, 8, ["modelValue"])) : ge.value === "online" || ge.value === "runner" && I(t).launch.profiles[he.value]?.adapter === "api" ? (U(), W("span", gZ, "不访问项目文件")) : he.value ? (U(), W("span", _Z, "项目文件由其软件设置")) : Y("", !0),
51045
51037
  ge.value === "runner" && I(n).launch_can_bind_session(he.value, I(t).launch) ? (U(), G(k, {
51046
51038
  key: 3,
51047
51039
  modelValue: _e.value,
@@ -51053,16 +51045,16 @@ var PK = /*#__PURE__*/ EH({
51053
51045
  class: "w-full"
51054
51046
  }, null, 8, ["modelValue"])) : Y("", !0)
51055
51047
  ], 32),
51056
- ge.value === "runner" && I(n).launch_can_bind_session(he.value, I(t).launch) && _e.value.trim() ? (U(), W("p", bZ, "将续接这个原会话,保留它原有的上下文;它工作时请不要在原窗口继续操作。")) : Y("", !0),
51057
- ge.value === "runner" && !I(t).launch.available ? (U(), W("p", xZ, "程序唤醒需要本机服务,请在运行 AI 的电脑打开本机网站。")) : Y("", !0)
51048
+ ge.value === "runner" && I(n).launch_can_bind_session(he.value, I(t).launch) && _e.value.trim() ? (U(), W("p", vZ, "将续接这个原会话,保留它原有的上下文;它工作时请不要在原窗口继续操作。")) : Y("", !0),
51049
+ ge.value === "runner" && !I(t).launch.available ? (U(), W("p", yZ, "程序唤醒需要本机服务,请在运行 AI 的电脑打开本机网站。")) : Y("", !0)
51058
51050
  ]),
51059
- o.value.linked_rooms?.length ? (U(), W("section", SZ, [r[45] ||= K("h4", null, "头脑风暴", -1), (U(!0), W(H, null, B(o.value.linked_rooms, (e) => (U(), W("button", {
51051
+ o.value.linked_rooms?.length ? (U(), W("section", bZ, [r[45] ||= K("h4", null, "头脑风暴", -1), (U(!0), W(H, null, B(o.value.linked_rooms, (e) => (U(), W("button", {
51060
51052
  key: e.id,
51061
51053
  type: "button",
51062
51054
  class: "pb-link pb-free-linked",
51063
51055
  onClick: (t) => I(i)("room", e.id)
51064
- }, [J(P(e.title), 1), K("small", null, P(I(n).phases[e.phase] || e.phase), 1)], 8, CZ))), 128))])) : Y("", !0),
51065
- K("section", wZ, [q(T, {
51056
+ }, [J(P(e.title), 1), K("small", null, P(I(n).phases[e.phase] || e.phase), 1)], 8, xZ))), 128))])) : Y("", !0),
51057
+ K("section", SZ, [q(T, {
51066
51058
  icon: "i-lucide-user-plus",
51067
51059
  label: "邀请",
51068
51060
  size: "sm",
@@ -51086,10 +51078,10 @@ var PK = /*#__PURE__*/ EH({
51086
51078
  title: "用当前成员新建一场讨论房间,收束后可把结论发回这里",
51087
51079
  onClick: ve
51088
51080
  })])
51089
- ])) : o.value ? (U(), G(pX, {
51081
+ ])) : o.value ? (U(), G(dX, {
51090
51082
  key: 1,
51091
51083
  docked: ""
51092
- })) : (U(), W("div", TZ, [...r[46] ||= [K("header", { class: "pb-header" }, [K("strong", null, "讨论进度")], -1), K("p", { class: "channel-rail-empty" }, "暂无房间,新建讨论后在这里查看进度与参与者。", -1)]]))])])) : Y("", !0),
51084
+ })) : (U(), W("div", CZ, [...r[46] ||= [K("header", { class: "pb-header" }, [K("strong", null, "讨论进度")], -1), K("p", { class: "channel-rail-empty" }, "暂无房间,新建讨论后在这里查看进度与参与者。", -1)]]))])])) : Y("", !0),
51093
51085
  q(ze, {
51094
51086
  open: d.value,
51095
51087
  "onUpdate:open": r[23] ||= (e) => d.value = e,
@@ -51101,7 +51093,7 @@ var PK = /*#__PURE__*/ EH({
51101
51093
  body: "channel-drawer-body"
51102
51094
  }
51103
51095
  }, {
51104
- body: L(() => [q(_Y, {
51096
+ body: L(() => [q(hY, {
51105
51097
  onSelect: ke,
51106
51098
  onManage: De,
51107
51099
  onCreate: je,
@@ -51132,7 +51124,7 @@ var PK = /*#__PURE__*/ EH({
51132
51124
  }
51133
51125
  }, {
51134
51126
  body: L(() => [o.value ? (U(), W(H, { key: 0 }, [
51135
- K("div", EZ, [q(y, { name: "i-lucide-hash" }), K("h2", null, P(o.value.title), 1)]),
51127
+ K("div", wZ, [q(y, { name: "i-lucide-hash" }), K("h2", null, P(o.value.title), 1)]),
51136
51128
  (U(), W(H, null, B([
51137
51129
  {
51138
51130
  key: "goal",
@@ -51159,7 +51151,7 @@ var PK = /*#__PURE__*/ EH({
51159
51151
  class: "info-section"
51160
51152
  }, [K("h3", null, P(e.label), 1), K("p", null, P(o.value[e.key] || "尚未填写"), 1)])), 64)),
51161
51153
  q(Ve),
51162
- K("section", DZ, [r[47] ||= K("h3", null, "参与身份", -1), (U(!0), W(H, null, B(Ee.value, (e) => (U(), W("div", {
51154
+ K("section", TZ, [r[47] ||= K("h3", null, "参与身份", -1), (U(!0), W(H, null, B(Ee.value, (e) => (U(), W("div", {
51163
51155
  key: e.name,
51164
51156
  class: "expert-row"
51165
51157
  }, [
@@ -51192,7 +51184,7 @@ var PK = /*#__PURE__*/ EH({
51192
51184
  ], 64)) : Y("", !0)]),
51193
51185
  _: 1
51194
51186
  }, 8, ["open"]),
51195
- q(KJ, {
51187
+ q(WJ, {
51196
51188
  modelValue: s.value,
51197
51189
  "onUpdate:modelValue": r[26] ||= (e) => s.value = e,
51198
51190
  "reading-width": x.value,
@@ -51216,7 +51208,7 @@ var PK = /*#__PURE__*/ EH({
51216
51208
  ], 6);
51217
51209
  };
51218
51210
  }
51219
- }, VZ = {
51211
+ }, zZ = {
51220
51212
  __name: "App",
51221
51213
  setup(e) {
51222
51214
  return br("discussion", OV()), (e, t) => {
@@ -51227,7 +51219,7 @@ var PK = /*#__PURE__*/ EH({
51227
51219
  toaster: null
51228
51220
  }, {
51229
51221
  default: L(() => [q(I(Qz), { "reduced-motion": "user" }, {
51230
- default: L(() => [q(BZ)]),
51222
+ default: L(() => [q(RZ)]),
51231
51223
  _: 1
51232
51224
  })]),
51233
51225
  _: 1
@@ -51237,8 +51229,8 @@ var PK = /*#__PURE__*/ EH({
51237
51229
  };
51238
51230
  //#endregion
51239
51231
  //#region frontend/main.js
51240
- function HZ() {
51241
- bu(VZ).use(ph).mount("#modern-root");
51232
+ function BZ() {
51233
+ bu(zZ).use(ph).mount("#modern-root");
51242
51234
  }
51243
- document.readyState === "loading" ? document.addEventListener("DOMContentLoaded", HZ) : HZ();
51235
+ document.readyState === "loading" ? document.addEventListener("DOMContentLoaded", BZ) : BZ();
51244
51236
  //#endregion