ai_co_discuss 0.2.74 → 0.2.76

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
@@ -42561,106 +42561,109 @@ var hU = /*#__PURE__*/ XH({
42561
42561
  }, IU = { class: "channel-message-byline" }, LU = { class: "channel-message-meta" }, RU = { class: "channel-message-author" }, zU = {
42562
42562
  key: 0,
42563
42563
  class: "channel-message-provenance"
42564
- }, BU = ["title"], VU = { class: "channel-message-provenance channel-message-elapsed" }, HU = ["aria-label"], UU = { key: 0 }, WU = {
42564
+ }, BU = ["title"], VU = { class: "channel-message-provenance channel-message-elapsed" }, HU = ["aria-label", "title"], UU = { key: 0 }, WU = {
42565
42565
  key: 0,
42566
42566
  class: "channel-dots",
42567
42567
  "aria-hidden": "true"
42568
42568
  }, GU = {
42569
42569
  key: 0,
42570
- class: "channel-notes",
42570
+ class: "channel-receipt",
42571
42571
  "aria-label": "过程说明"
42572
- }, KU = [
42572
+ }, KU = { class: "channel-notes is-live" }, qU = [
42573
42573
  "id",
42574
42574
  "data-author",
42575
42575
  "aria-label"
42576
- ], qU = { class: "channel-message-byline" }, JU = { class: "channel-message-meta" }, YU = { class: "channel-message-author" }, XU = {
42576
+ ], JU = { class: "channel-message-byline" }, YU = { class: "channel-message-meta" }, XU = { class: "channel-message-author" }, ZU = {
42577
42577
  key: 0,
42578
42578
  class: "channel-message-round"
42579
- }, ZU = { class: "channel-message-provenance" }, QU = ["title"], $U = { key: 0 }, eW = {
42579
+ }, QU = ["title"], $U = { key: 0 }, eW = {
42580
42580
  key: 0,
42581
42581
  class: "channel-message-provenance channel-message-elapsed"
42582
- }, tW = { class: "channel-message-text channel-failure-reason" }, nW = {
42583
- key: 0,
42582
+ }, tW = { class: "channel-message-text channel-failure-reason" }, nW = ["onToggle"], rW = ["aria-label"], iW = { class: "channel-notes" }, aW = {
42583
+ key: 1,
42584
42584
  class: "channel-failure-actions"
42585
- }, rW = {
42585
+ }, oW = {
42586
+ key: 2,
42587
+ class: "channel-failure-actions"
42588
+ }, sW = {
42586
42589
  key: 0,
42587
42590
  class: "channel-failure-error",
42588
42591
  role: "alert"
42589
- }, iW = { class: "channel-message-byline" }, aW = { class: "channel-message-meta" }, oW = { class: "channel-message-author" }, sW = { class: "channel-message-round" }, cW = { class: "channel-message-provenance" }, lW = ["title"], uW = { key: 0 }, dW = { key: 1 }, fW = {
42592
+ }, cW = { class: "channel-message-byline" }, lW = { class: "channel-message-meta" }, uW = { class: "channel-message-author" }, dW = { class: "channel-message-round" }, fW = { class: "channel-message-provenance" }, pW = ["title"], mW = { key: 0 }, hW = { key: 1 }, gW = {
42590
42593
  key: 0,
42591
42594
  class: "channel-message-provenance channel-message-elapsed"
42592
- }, pW = ["onToggle"], mW = ["aria-label"], hW = { class: "channel-notes" }, gW = {
42595
+ }, _W = ["onToggle"], vW = ["aria-label"], yW = { class: "channel-notes" }, bW = {
42593
42596
  key: 2,
42594
42597
  class: "channel-receipt"
42595
- }, _W = ["aria-label"], vW = ["innerHTML"], yW = {
42598
+ }, xW = ["aria-label"], SW = ["innerHTML"], CW = {
42596
42599
  key: 3,
42597
42600
  class: "channel-answer"
42598
- }, bW = ["id", "innerHTML"], xW = {
42601
+ }, wW = ["id", "innerHTML"], TW = {
42599
42602
  key: 4,
42600
42603
  class: "channel-answer-summary"
42601
- }, SW = { key: 0 }, CW = ["innerHTML"], wW = ["innerHTML"], TW = { key: 0 }, EW = ["title"], DW = { key: 1 }, OW = { key: 2 }, kW = {
42604
+ }, EW = { key: 0 }, DW = ["innerHTML"], OW = ["innerHTML"], kW = { key: 0 }, AW = ["title"], jW = { key: 1 }, MW = { key: 2 }, NW = {
42602
42605
  key: 7,
42603
42606
  class: "channel-response-suggestions",
42604
42607
  "aria-label": "回应建议"
42605
- }, AW = { key: 0 }, jW = { key: 1 }, MW = ["aria-label"], NW = { key: 0 }, PW = { key: 1 }, FW = { class: "channel-message-actions" }, IW = { class: "channel-message-toolbar" }, LW = { key: 0 }, RW = { key: 1 }, zW = ["aria-pressed", "onClick"], BW = ["aria-pressed", "onClick"], VW = { key: 0 }, HW = ["onSubmit"], UW = ["value"], WW = { class: "channel-message-byline" }, GW = { class: "channel-message-meta" }, KW = { class: "channel-message-author" }, qW = { class: "channel-message-provenance channel-message-elapsed" }, JW = {
42608
+ }, PW = { key: 0 }, FW = { key: 1 }, IW = ["aria-label"], LW = { key: 0 }, RW = { key: 1 }, zW = { class: "channel-message-actions" }, BW = { class: "channel-message-toolbar" }, VW = { key: 0 }, HW = { key: 1 }, UW = ["aria-pressed", "onClick"], WW = ["aria-pressed", "onClick"], GW = { key: 0 }, KW = ["onSubmit"], qW = ["value"], JW = { class: "channel-message-byline" }, YW = { class: "channel-message-meta" }, XW = { class: "channel-message-author" }, ZW = { class: "channel-message-provenance channel-message-elapsed" }, QW = {
42606
42609
  key: 2,
42607
42610
  class: "channel-message-group"
42608
- }, YW = {
42611
+ }, $W = {
42609
42612
  key: 3,
42610
42613
  class: "channel-message-group"
42611
- }, XW = ["aria-label"], ZW = { class: "channel-message-byline" }, QW = { class: "channel-message-meta" }, $W = { class: "channel-message-author" }, eG = {
42614
+ }, eG = ["aria-label"], tG = { class: "channel-message-byline" }, nG = { class: "channel-message-meta" }, rG = { class: "channel-message-author" }, iG = {
42612
42615
  key: 0,
42613
42616
  class: "channel-message-round"
42614
- }, tG = { class: "channel-message-provenance channel-message-elapsed" }, nG = ["aria-label"], rG = { key: 0 }, iG = {
42617
+ }, aG = { class: "channel-message-provenance channel-message-elapsed" }, oG = ["aria-label"], sG = { key: 0 }, cG = {
42615
42618
  key: 4,
42616
42619
  class: "channel-empty"
42617
- }, aG = {
42620
+ }, lG = {
42618
42621
  key: 2,
42619
42622
  class: "channel-latest-dock"
42620
- }, oG = { class: "channel-composer-dock" }, sG = [
42623
+ }, uG = { class: "channel-composer-dock" }, dG = [
42621
42624
  "id",
42622
42625
  "aria-selected",
42623
42626
  "onClick",
42624
42627
  "onPointermove"
42625
- ], cG = {
42628
+ ], fG = {
42626
42629
  key: 0,
42627
42630
  class: "channel-mention-empty"
42628
- }, lG = {
42631
+ }, pG = {
42629
42632
  key: 0,
42630
42633
  class: "attachment-drafts"
42631
- }, uG = [
42634
+ }, mG = [
42632
42635
  "src",
42633
42636
  "alt",
42634
42637
  "title"
42635
- ], dG = ["innerHTML"], fG = { class: "attachment-name" }, pG = ["title"], mG = [
42638
+ ], hG = ["innerHTML"], gG = { class: "attachment-name" }, _G = ["title"], vG = [
42636
42639
  "aria-label",
42637
42640
  "disabled",
42638
42641
  "onClick"
42639
- ], hG = ["role"], gG = {
42642
+ ], yG = ["role"], bG = {
42640
42643
  key: 2,
42641
42644
  class: "channel-reply-draft channel-queue-hint"
42642
- }, _G = {
42645
+ }, xG = {
42643
42646
  key: 3,
42644
42647
  class: "channel-reply-draft channel-queue-hint"
42645
- }, vG = {
42648
+ }, SG = {
42646
42649
  key: 4,
42647
42650
  class: "channel-reply-draft"
42648
- }, yG = {
42651
+ }, CG = {
42649
42652
  key: 5,
42650
42653
  class: "channel-answer-editor"
42651
- }, bG = ["innerHTML"], xG = {
42654
+ }, wG = ["innerHTML"], TG = {
42652
42655
  key: 0,
42653
42656
  class: "channel-free-recipients",
42654
42657
  role: "group",
42655
42658
  "aria-label": "代发在线成员的回答"
42656
- }, SG = ["aria-pressed", "onClick"], CG = {
42659
+ }, EG = ["aria-pressed", "onClick"], DG = {
42657
42660
  key: 1,
42658
42661
  class: "channel-composer-identity"
42659
- }, wG = { class: "channel-composer-note" }, TG = { key: 0 }, EG = { key: 1 }, DG = { class: "channel-draft-length" }, OG = 6, kG = .9, AG = 160, jG = 100, MG = 4, NG = 3, PG = 320, FG = 34, IG = 12, LG = 16, RG = 14, zG = 8, BG = 28, VG = 18, HG = 1, UG = 1.5, WG = 3, GG = 6, KG = .62, qG = .72, JG = .88, YG = .16, XG = 12, ZG = 450, QG = 8, $G = 70, eK = 20, tK = 1, nK = 18.566573373612275, rK = 78.16726685662772 / 8, iK = 15, aK = 180, oK = 1e3, sK = "全体成员", cK = "全体依次", lK = 2e3, uK = /*#__PURE__*/ XH({
42662
+ }, OG = { class: "channel-composer-note" }, kG = { key: 0 }, AG = { key: 1 }, jG = { class: "channel-draft-length" }, MG = 6, NG = .9, PG = 160, FG = 100, IG = 4, LG = 3, RG = 320, zG = 34, BG = 12, VG = 16, HG = 14, UG = 8, WG = 28, GG = 18, KG = 1, qG = 1.5, JG = 3, YG = 6, XG = .62, ZG = .72, QG = .88, $G = .16, eK = 12, tK = 450, nK = 8, rK = 70, iK = 20, aK = 1, oK = 18.566573373612275, sK = 78.16726685662772 / 8, cK = 180, lK = 1e3, uK = "全体成员", dK = "全体依次", fK = 2e3, pK = /*#__PURE__*/ XH({
42660
42663
  __name: "ChannelDiscussion",
42661
42664
  emits: ["detail", "edit"],
42662
42665
  setup(e, { emit: t }) {
42663
- let n = t, r = null, { view: i, bridge: a, field: o, act: s, pending: c } = xr("discussion"), l = o("message-input"), u = Z(() => [...l.value].length), d = Z(() => u.value >= a.max_message_length * kG), f = o("author-select"), p = o("message-kind"), m = o("message-summary"), h = o("message-summary-source"), g = Z(() => ["opinion", "forward"].includes(p.value) && f.value !== "用户"), _ = [{
42666
+ let n = t, r = null, { view: i, bridge: a, field: o, act: s, pending: c } = xr("discussion"), l = o("message-input"), u = Z(() => [...l.value].length), d = Z(() => u.value >= a.max_message_length * NG), f = o("author-select"), p = o("message-kind"), m = o("message-summary"), h = o("message-summary-source"), g = Z(() => ["opinion", "forward"].includes(p.value) && f.value !== "用户"), _ = [{
42664
42667
  value: "author",
42665
42668
  label: "原作者摘要"
42666
42669
  }, {
@@ -42671,10 +42674,10 @@ var hU = /*#__PURE__*/ XH({
42671
42674
  mass: 1,
42672
42675
  stiffness: 604.0197893466687,
42673
42676
  damping: 44.729801589453814
42674
- }, ae = null, oe = !1, se = TV(0, j), ce = TV(0, j), le = TV(0, j), ue = CV(le, [0, 1], [.96, 1]), de = CV(le, [0, 1], [-8, 0]), pe = CV(le, [0, 1], [0, 1]), me = Z(() => i.value.messages.find((e) => e.id === D.value)), he = Z(() => nn.value.find((e) => e.messages.some((e) => e.id === D.value))), ge = Z(() => he.value?.label), N = Z(() => k.value ? sn.value.findIndex((e) => e.key === O.value) : -1), _e = /* @__PURE__ */ F(null), ve = /* @__PURE__ */ F(!0), ye = Z(() => i.value.room), be = /* @__PURE__ */ F(null);
42677
+ }, ae = null, oe = !1, se = TV(0, j), ce = TV(0, j), le = TV(0, j), ue = CV(le, [0, 1], [.96, 1]), de = CV(le, [0, 1], [-8, 0]), pe = CV(le, [0, 1], [0, 1]), me = Z(() => i.value.messages.find((e) => e.id === D.value)), he = Z(() => rn.value.find((e) => e.messages.some((e) => e.id === D.value))), ge = Z(() => he.value?.label), N = Z(() => k.value ? cn.value.findIndex((e) => e.key === O.value) : -1), _e = /* @__PURE__ */ F(null), ve = /* @__PURE__ */ F(!0), ye = Z(() => i.value.room), be = /* @__PURE__ */ F(null);
42675
42678
  R(() => [].concat(be.value ?? []), (e, t, n) => {
42676
42679
  if (!e.length) return;
42677
- let r = tK / nK, i = rK / nK, a = 0, o = 0, s = performance.now(), c = 0;
42680
+ let r = aK / oK, i = sK / oK, a = 0, o = 0, s = performance.now(), c = 0;
42678
42681
  e.forEach((e) => e.classList.add("is-glowing"));
42679
42682
  function l(t) {
42680
42683
  let n = (t - s) / 1e3, u = Math.exp(-n / r);
@@ -42749,27 +42752,17 @@ var hU = /*#__PURE__*/ XH({
42749
42752
  return ((Ee.value ? ye.value.free : ye.value.asks)?.executions || []).find((t) => t.answer_id === e.id);
42750
42753
  }
42751
42754
  function Ne(e) {
42752
- if (!e.working) return null;
42753
- if (qe.includes(e.adapter)) return {
42754
- text: "此接入方式看不到进度,可在原窗口查看",
42755
- tone: "muted"
42756
- };
42757
- let t = e.activity_at || e.created_at, n = Math.max(0, Oe.value - t);
42758
- return !e.activity_at && n < aK ? {
42759
- text: "等待软件输出",
42760
- tone: "muted"
42761
- } : n <= iK ? {
42762
- text: "活动中",
42763
- tone: "active"
42764
- } : n < aK ? {
42765
- text: `${gt(n)}前有输出`,
42766
- tone: "muted"
42755
+ let t = Math.max(0, Oe.value - (e.activity_at || e.created_at));
42756
+ return !e.working || qe.includes(e.adapter) || t < cK ? {
42757
+ text: e.text,
42758
+ live: e.working
42767
42759
  } : e.activity === "command" ? {
42768
- text: `命令已运行 ${gt(n)}`,
42769
- tone: "muted"
42760
+ text: `命令已运行 ${gt(t)}`,
42761
+ live: !0
42770
42762
  } : {
42771
- text: `已 ${gt(n)}无输出,可能卡住`,
42772
- tone: "warning"
42763
+ text: `已 ${gt(t)}无输出,可能卡住`,
42764
+ live: !1,
42765
+ warning: !0
42773
42766
  };
42774
42767
  }
42775
42768
  let Pe = Z(() => {
@@ -42828,7 +42821,7 @@ var hU = /*#__PURE__*/ XH({
42828
42821
  "completed",
42829
42822
  "failed",
42830
42823
  "cancelled"
42831
- ].includes(n.status) || n.status === "completed" && !n.changes?.length) continue;
42824
+ ].includes(n.status) || n.status === "completed" && !n.changes?.length || Ee.value && n.status === "failed") continue;
42832
42825
  let t = n.answer_id || n.request_message_id, r = {
42833
42826
  ...n,
42834
42827
  label: {
@@ -42975,8 +42968,8 @@ var hU = /*#__PURE__*/ XH({
42975
42968
  R([() => Ze.value?.id, () => Ze.value?.seconds], ([e, t], n, r) => {
42976
42969
  if (ht.value = t ?? null, ht.value === null) return;
42977
42970
  let i = performance.now(), a = setInterval(() => {
42978
- ht.value = t + Math.floor((performance.now() - i) / oK);
42979
- }, oK);
42971
+ ht.value = t + Math.floor((performance.now() - i) / lK);
42972
+ }, lK);
42980
42973
  r(() => clearInterval(a));
42981
42974
  }, { immediate: !0 });
42982
42975
  function gt(e) {
@@ -43046,7 +43039,7 @@ var hU = /*#__PURE__*/ XH({
43046
43039
  kt.value && _e.value?.textareaRef && (kt.value.scrollTop = _e.value.textareaRef.scrollTop);
43047
43040
  }
43048
43041
  Qi(() => R(Ot, () => Qn(At), { flush: "post" }));
43049
- let jt = /* @__PURE__ */ F(null), Mt = [sK, "all"], Nt = [cK, "all-seq"], Pt = { [sK]: {
43042
+ let jt = /* @__PURE__ */ F(null), Mt = [uK, "all"], Nt = [dK, "all-seq"], Pt = { [uK]: {
43050
43043
  search: "all 同时 依次",
43051
43044
  icon: "i-lucide-users"
43052
43045
  } }, Ft = (e) => {
@@ -43111,12 +43104,12 @@ var hU = /*#__PURE__*/ XH({
43111
43104
  for (let t of e.querySelectorAll("pre code, tbody")) {
43112
43105
  let n = e.ownerDocument.createRange();
43113
43106
  if (t.tagName === "TBODY") {
43114
- if (t.children.length <= NG) continue;
43107
+ if (t.children.length <= LG) continue;
43115
43108
  n.setStartAfter(t.children[2]);
43116
43109
  } else {
43117
43110
  let e = t.textContent.trimEnd().split("\n");
43118
- if (e.length <= MG) continue;
43119
- n.setStart(t.firstChild, e.slice(0, MG).join("\n").length);
43111
+ if (e.length <= IG) continue;
43112
+ n.setStart(t.firstChild, e.slice(0, IG).join("\n").length);
43120
43113
  }
43121
43114
  return n.setEnd(e, e.childNodes.length), n.deleteContents(), !0;
43122
43115
  }
@@ -43133,11 +43126,11 @@ var hU = /*#__PURE__*/ XH({
43133
43126
  let r = Jt(n.content), i = document.createTreeWalker(n.content, NodeFilter.SHOW_TEXT, { acceptNode: (e) => e.parentElement?.closest(".katex-mathml") ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT }), a = [];
43134
43127
  for (; i.nextNode();) a.push(i.currentNode);
43135
43128
  let o = [...a.map((e) => e.textContent).join("").trimEnd()];
43136
- if (o.length <= AG) return {
43129
+ if (o.length <= PG) return {
43137
43130
  truncated: r,
43138
43131
  html: n.innerHTML
43139
43132
  };
43140
- let s = o.slice(0, AG).join(""), c = [...s.matchAll(/[。!?;]\s*|[.!?;](?:\s|$)|\n/gu)].at(-1), l = c ? c.index + c[0].length : 0, u = [...s.slice(0, l)].length >= jG, d = u ? l : s.length;
43133
+ let s = o.slice(0, PG).join(""), c = [...s.matchAll(/[。!?;]\s*|[.!?;](?:\s|$)|\n/gu)].at(-1), l = c ? c.index + c[0].length : 0, u = [...s.slice(0, l)].length >= FG, d = u ? l : s.length;
43141
43134
  for (let e of a) {
43142
43135
  if (d > e.textContent.length) {
43143
43136
  d -= e.textContent.length;
@@ -43164,7 +43157,7 @@ var hU = /*#__PURE__*/ XH({
43164
43157
  let n = e.findIndex((e) => new Date(e.created_at) > new Date(t.created_at) || !e.failure && t.failure.turn_id && e.turn_id === t.failure.turn_id);
43165
43158
  e.splice(n < 0 ? e.length : n, 0, t);
43166
43159
  }
43167
- return Ee.value ? en.value : e;
43160
+ return Ee.value ? tn.value : e;
43168
43161
  }), Qt = Z(() => {
43169
43162
  let e = Date.parse(ye.value?.session?.created_at || "");
43170
43163
  if (!e) return null;
@@ -43176,7 +43169,24 @@ var hU = /*#__PURE__*/ XH({
43176
43169
  let t = Zt.value, n = t.findIndex((t) => !t.slot_card && Number(t.id) > e.ended_message_id);
43177
43170
  return n < 0 ? "end" : t[n].id;
43178
43171
  }), en = Z(() => {
43179
- let e = i.value.messages, t = new Set(e.map((e) => e.id)), n = /* @__PURE__ */ new Map(), r = (e) => !e.execution_id || !t.has(e.request_message_id) ? !1 : (n.set(e.request_message_id, [...n.get(e.request_message_id) || [], e]), !0), a = e.filter((e) => !r(e)), o = ke.value.map((e) => ({
43172
+ if (!Ee.value || i.value.query || i.value.mention_only) return [];
43173
+ let e = new Map((ye.value.free?.members || []).map((e) => [e.id, e.name]));
43174
+ return (ye.value.free?.executions || []).filter((t) => t.status === "failed" && e.has(t.member_id)).map((t) => ({
43175
+ id: `failed-${t.id}`,
43176
+ author: e.get(t.member_id),
43177
+ slot_card: !0,
43178
+ created_at: t.created_at,
43179
+ execution_id: t.id,
43180
+ request_message_id: t.request_message_id,
43181
+ failure: {
43182
+ ...t,
43183
+ elapsed_seconds: t.finished_at ? Math.max(0, t.finished_at - t.created_at) : null
43184
+ }
43185
+ }));
43186
+ }), tn = Z(() => {
43187
+ let e = i.value.messages, t = new Set(e.map((e) => e.id)), n = /* @__PURE__ */ new Map(), r = (e) => !e.execution_id || !t.has(e.request_message_id) ? !1 : (n.set(e.request_message_id, [...n.get(e.request_message_id) || [], e]), !0), a = e.filter((e) => !r(e));
43188
+ en.value.forEach(r);
43189
+ let o = ke.value.map((e) => ({
43180
43190
  ...e,
43181
43191
  slot_card: !0
43182
43192
  })).filter((e) => !r(e)), s = [], c = (e) => {
@@ -43184,7 +43194,7 @@ var hU = /*#__PURE__*/ XH({
43184
43194
  for (let t of (n.get(e.id) || []).sort((e, t) => e.execution_id - t.execution_id || 0)) c(t);
43185
43195
  };
43186
43196
  return a.forEach(c), [...s, ...o];
43187
- }), tn = Z(() => {
43197
+ }), nn = Z(() => {
43188
43198
  let e = [];
43189
43199
  for (let t of Zt.value) {
43190
43200
  if (t.slot_card && e.length) {
@@ -43199,7 +43209,7 @@ var hU = /*#__PURE__*/ XH({
43199
43209
  }), e.at(-1).messages.push(t);
43200
43210
  }
43201
43211
  return e;
43202
- }), nn = Z(() => {
43212
+ }), rn = Z(() => {
43203
43213
  let e = [];
43204
43214
  for (let t of Ee.value ? Zt.value.filter((e) => !e.slot_card) : i.value.messages) {
43205
43215
  let n = a.round_groups(ye.value)?.findLast((e) => e.start_id <= t.id), r = n?.number || 0;
@@ -43215,9 +43225,9 @@ var hU = /*#__PURE__*/ XH({
43215
43225
  e.at(-1).messages.push(t);
43216
43226
  }
43217
43227
  return e;
43218
- }), rn = Z(() => nn.value.find((e) => e.messages.some((e) => e.id === T.value))?.number), an = Z(() => new Map(Ee.value ? [] : nn.value.filter((e) => e.number).flatMap((e) => e.messages.map((t) => [t.id, e.label])))), on = Z(() => {
43228
+ }), an = Z(() => rn.value.find((e) => e.messages.some((e) => e.id === T.value))?.number), on = Z(() => new Map(Ee.value ? [] : rn.value.filter((e) => e.number).flatMap((e) => e.messages.map((t) => [t.id, e.label])))), sn = Z(() => {
43219
43229
  let e = 0;
43220
- return nn.value.map((t) => ({
43230
+ return rn.value.map((t) => ({
43221
43231
  number: t.number,
43222
43232
  count: t.messages.length,
43223
43233
  entries: [{
@@ -43235,49 +43245,49 @@ var hU = /*#__PURE__*/ XH({
43235
43245
  index: e++
43236
43246
  }))]
43237
43247
  }));
43238
- }), sn = Z(() => on.value.flatMap((e) => e.entries));
43239
- function cn(e) {
43248
+ }), cn = Z(() => sn.value.flatMap((e) => e.entries));
43249
+ function un(e) {
43240
43250
  return e.getBoundingClientRect().top + (parseFloat(getComputedStyle(e).getPropertyValue("--channel-topbar-height")) || 0);
43241
43251
  }
43242
- function un() {
43252
+ function dn() {
43243
43253
  let e = y.value;
43244
43254
  if (!e || !e.clientHeight) return;
43245
- ve.value = e.scrollHeight - e.scrollTop - e.clientHeight < $G;
43246
- let t = e.getBoundingClientRect(), n = cn(e), r = [...e.querySelectorAll("[data-message-id]")], i = r.find((e) => Number(e.dataset.messageId) === E.value);
43255
+ ve.value = e.scrollHeight - e.scrollTop - e.clientHeight < rK;
43256
+ let t = e.getBoundingClientRect(), n = un(e), r = [...e.querySelectorAll("[data-message-id]")], i = r.find((e) => Number(e.dataset.messageId) === E.value);
43247
43257
  if (i && i.getBoundingClientRect().bottom > n && i.getBoundingClientRect().top < t.bottom) {
43248
43258
  T.value = E.value;
43249
43259
  return;
43250
43260
  }
43251
43261
  E.value = null;
43252
- let a = r.find((e) => e.getBoundingClientRect().bottom > n + eK);
43262
+ let a = r.find((e) => e.getBoundingClientRect().bottom > n + iK);
43253
43263
  T.value = a ? Number(a.dataset.messageId) : null;
43254
43264
  }
43255
- async function dn() {
43256
- await Qn(), ve.value && y.value && (y.value.scrollTop = y.value.scrollHeight), un();
43265
+ async function fn() {
43266
+ await Qn(), ve.value && y.value && (y.value.scrollTop = y.value.scrollHeight), dn();
43257
43267
  }
43258
43268
  R([
43259
43269
  () => i.value.messages,
43260
43270
  Ze,
43261
43271
  ke,
43262
43272
  Xt
43263
- ], dn, { immediate: !0 }), R([
43273
+ ], fn, { immediate: !0 }), R([
43264
43274
  () => i.value.room?.id,
43265
43275
  () => i.value.query,
43266
43276
  () => i.value.mention_only
43267
43277
  ], () => {
43268
- E.value = null, T.value = null, kn(), ve.value = !0;
43278
+ E.value = null, T.value = null, An(), ve.value = !0;
43269
43279
  }), R(() => i.value.tab, (e) => {
43270
- kn(), e === "discussion" && dn();
43280
+ An(), e === "discussion" && fn();
43271
43281
  }), R(() => i.value.room?.id, () => b.value.clear());
43272
- async function fn(e, t) {
43282
+ async function pn(e, t) {
43273
43283
  let n = t.currentTarget.closest("[data-message-id]"), r = b.value.has(e.id), i = y.value.scrollTop;
43274
- ve.value = !1, r ? b.value.delete(e.id) : b.value.add(e.id), kn(), await Qn(), r || (y.value.scrollTop = i), r && n.getBoundingClientRect().top < cn(y.value) && (y.value.scrollTop += n.getBoundingClientRect().top - cn(y.value) - eK), un();
43284
+ ve.value = !1, r ? b.value.delete(e.id) : b.value.add(e.id), An(), await Qn(), r || (y.value.scrollTop = i), r && n.getBoundingClientRect().top < un(y.value) && (y.value.scrollTop += n.getBoundingClientRect().top - un(y.value) - iK), dn();
43275
43285
  }
43276
- function pn(e) {
43286
+ function mn(e) {
43277
43287
  let t = y.value, n = t?.querySelector(`[data-message-id="${e}"]`);
43278
- n && (On(), E.value = e, T.value = e, t.scrollTop += n.getBoundingClientRect().top - cn(t) - eK, n.focus({ preventScroll: !0 }), un());
43288
+ n && (kn(), E.value = e, T.value = e, t.scrollTop += n.getBoundingClientRect().top - un(t) - iK, n.focus({ preventScroll: !0 }), dn());
43279
43289
  }
43280
- function mn(e) {
43290
+ function hn(e) {
43281
43291
  (e.type !== "keydown" || [
43282
43292
  "ArrowUp",
43283
43293
  "ArrowDown",
@@ -43288,34 +43298,34 @@ var hU = /*#__PURE__*/ XH({
43288
43298
  " "
43289
43299
  ].includes(e.key)) && (E.value = null);
43290
43300
  }
43291
- function hn(e, t) {
43301
+ function gn(e, t) {
43292
43302
  let n = {
43293
43303
  ArrowUp: t - 1,
43294
43304
  ArrowDown: t + 1,
43295
43305
  Home: 0,
43296
- End: sn.value.length - 1
43306
+ End: cn.value.length - 1
43297
43307
  };
43298
43308
  if (!Object.hasOwn(n, e.key)) return;
43299
43309
  e.preventDefault();
43300
- let r = Math.max(0, Math.min(n[e.key], sn.value.length - 1));
43310
+ let r = Math.max(0, Math.min(n[e.key], cn.value.length - 1));
43301
43311
  C.value.querySelectorAll("button")[r].focus({ preventScroll: !0 });
43302
43312
  }
43303
- function gn(e) {
43313
+ function _n(e) {
43304
43314
  let t = C.value;
43305
43315
  if (!t?.clientHeight || !e) return;
43306
43316
  let n = t.getBoundingClientRect(), r = e.getBoundingClientRect();
43307
- r.top < n.top + XG ? t.scrollTop += r.top - n.top - XG : r.bottom > n.bottom - XG && (t.scrollTop += r.bottom - n.bottom + XG);
43308
- }
43309
- async function _n() {
43310
- await Qn(), gn(C.value?.querySelector(`[data-jump-id="${T.value}"]`));
43317
+ r.top < n.top + eK ? t.scrollTop += r.top - n.top - eK : r.bottom > n.bottom - eK && (t.scrollTop += r.bottom - n.bottom + eK);
43311
43318
  }
43312
- R(T, _n);
43313
- function vn(e, t) {
43314
- !ae && t.currentTarget.matches(":focus-visible") && (w.value = !0, gn(e.round ? t.currentTarget.parentElement.querySelector("[data-jump-id]") : t.currentTarget), Dn(e, t));
43319
+ async function vn() {
43320
+ await Qn(), _n(C.value?.querySelector(`[data-jump-id="${T.value}"]`));
43315
43321
  }
43322
+ R(T, vn);
43316
43323
  function yn(e, t) {
43324
+ !ae && t.currentTarget.matches(":focus-visible") && (w.value = !0, _n(e.round ? t.currentTarget.parentElement.querySelector("[data-jump-id]") : t.currentTarget), On(e, t));
43325
+ }
43326
+ function bn(e, t) {
43317
43327
  if (oe = !1, !["touch", "pen"].includes(t.pointerType)) return;
43318
- On(), w.value = !1;
43328
+ kn(), w.value = !1;
43319
43329
  let n = {
43320
43330
  pointer: t.pointerId,
43321
43331
  x: t.clientX,
@@ -43323,114 +43333,114 @@ var hU = /*#__PURE__*/ XH({
43323
43333
  target: t.currentTarget
43324
43334
  };
43325
43335
  ae = n, n.timer = setTimeout(() => {
43326
- ae === n && (oe = !0, Dn(e, { currentTarget: n.target }));
43327
- }, ZG);
43336
+ ae === n && (oe = !0, On(e, { currentTarget: n.target }));
43337
+ }, tK);
43328
43338
  }
43329
- function bn() {
43339
+ function xn() {
43330
43340
  ae && clearTimeout(ae.timer), ae = null;
43331
43341
  }
43332
- function xn(e) {
43333
- ae?.pointer === e.pointerId && (e.type === "pointercancel" && (oe = !0), On());
43334
- }
43335
- function Sn(e, t) {
43336
- ["touch", "pen"].includes(t.pointerType) ? ae?.pointer === t.pointerId && Math.hypot(t.clientX - ae.x, t.clientY - ae.y) > QG && (oe = !0, On()) : t.type === "pointerenter" && w.value || (w.value = !1, (O.value !== e.key || !k.value) && Dn(e, t));
43342
+ function Sn(e) {
43343
+ ae?.pointer === e.pointerId && (e.type === "pointercancel" && (oe = !0), kn());
43337
43344
  }
43338
43345
  function Cn(e, t) {
43339
- oe && t.detail !== 0 ? (oe = !1, t.preventDefault()) : pn(e.message.id);
43346
+ ["touch", "pen"].includes(t.pointerType) ? ae?.pointer === t.pointerId && Math.hypot(t.clientX - ae.x, t.clientY - ae.y) > nK && (oe = !0, kn()) : t.type === "pointerenter" && w.value || (w.value = !1, (O.value !== e.key || !k.value) && On(e, t));
43340
43347
  }
43341
- function wn(e) {
43342
- ae && e.preventDefault();
43348
+ function wn(e, t) {
43349
+ oe && t.detail !== 0 ? (oe = !1, t.preventDefault()) : mn(e.message.id);
43343
43350
  }
43344
43351
  function Tn(e) {
43345
- (e.deltaX || e.deltaY) && (w.value = !1, On());
43352
+ ae && e.preventDefault();
43353
+ }
43354
+ function En(e) {
43355
+ (e.deltaX || e.deltaY) && (w.value = !1, kn());
43346
43356
  }
43347
- function En() {
43348
- On(), E.value = null, ve.value = !0, dn();
43357
+ function Dn() {
43358
+ kn(), E.value = null, ve.value = !0, fn();
43349
43359
  }
43350
- async function Dn(e, t) {
43351
- let n = e.message, r = t.currentTarget.getBoundingClientRect(), i = C.value.getBoundingClientRect(), a = Math.min(PG, innerWidth - 24), o = i.right + LG;
43352
- if (ne.value = Math.max(IG, Math.min(o, innerWidth - a - IG)), D.value = n.id, O.value = e.key, ee.value = e.round, k.value = !0, await Qn(), !k.value || O.value !== e.key) return;
43353
- ie.value = te.value.scrollHeight + FG;
43354
- let s = (Math.max(r.top, i.top + XG) + Math.min(r.bottom, i.bottom - XG)) / 2 - ie.value / 2;
43355
- re.value = Math.max(IG, Math.min(s, innerHeight - ie.value - IG));
43360
+ async function On(e, t) {
43361
+ let n = e.message, r = t.currentTarget.getBoundingClientRect(), i = C.value.getBoundingClientRect(), a = Math.min(RG, innerWidth - 24), o = i.right + VG;
43362
+ if (ne.value = Math.max(BG, Math.min(o, innerWidth - a - BG)), D.value = n.id, O.value = e.key, ee.value = e.round, k.value = !0, await Qn(), !k.value || O.value !== e.key) return;
43363
+ ie.value = te.value.scrollHeight + zG;
43364
+ let s = (Math.max(r.top, i.top + eK) + Math.min(r.bottom, i.bottom - eK)) / 2 - ie.value / 2;
43365
+ re.value = Math.max(BG, Math.min(s, innerHeight - ie.value - BG));
43356
43366
  let c = A.value || le.get() === 0;
43357
43367
  se[c ? "jump" : "set"](re.value), ce[c ? "jump" : "set"](ie.value);
43358
43368
  }
43359
- function On(e) {
43360
- e?.relatedTarget?.closest?.(".channel-message-map, .channel-nav-preview") || (bn(), k.value = !1);
43369
+ function kn(e) {
43370
+ e?.relatedTarget?.closest?.(".channel-message-map, .channel-nav-preview") || (xn(), k.value = !1);
43361
43371
  }
43362
- function kn() {
43363
- bn(), k.value = !1, le.jump(0), D.value = null;
43372
+ function An() {
43373
+ xn(), k.value = !1, le.jump(0), D.value = null;
43364
43374
  }
43365
- async function An() {
43366
- kn(), r?.measure(), await dn(), await _n();
43375
+ async function jn() {
43376
+ An(), r?.measure(), await fn(), await vn();
43367
43377
  }
43368
- function jn(e) {
43378
+ function Mn(e) {
43369
43379
  let t = e.entries.length - 1;
43370
- return Math.max(-3, Math.min(t + WG, N.value - e.entries[0].index));
43380
+ return Math.max(-3, Math.min(t + JG, N.value - e.entries[0].index));
43371
43381
  }
43372
- function Mn(e, t) {
43373
- let n = N.value < 0 ? Infinity : Math.abs(t - N.value), r = Math.max(0, 1 - n / WG), i = T.value === e.message.id, a = n === 0 || i && N.value < 0, o = zG;
43382
+ function Nn(e, t) {
43383
+ let n = N.value < 0 ? Infinity : Math.abs(t - N.value), r = Math.max(0, 1 - n / JG), i = T.value === e.message.id, a = n === 0 || i && N.value < 0, o = UG;
43374
43384
  return {
43375
- scaleX: a ? BG / o : i ? VG / o : 1 + r * GG / o,
43376
- height: a ? UG : HG,
43377
- opacity: a ? JG : i ? qG : KG + r * YG
43385
+ scaleX: a ? WG / o : i ? GG / o : 1 + r * YG / o,
43386
+ height: a ? qG : KG,
43387
+ opacity: a ? QG : i ? ZG : XG + r * $G
43378
43388
  };
43379
43389
  }
43380
43390
  R([k, A], () => {
43381
43391
  let e = +!!k.value;
43382
43392
  A.value ? (le.jump(e), se.jump(re.value), ce.jump(ie.value)) : le.set(e);
43383
- }), Qi(() => window.addEventListener("resize", An)), ta(() => window.removeEventListener("resize", An));
43384
- function Nn() {
43393
+ }), Qi(() => window.addEventListener("resize", jn)), ta(() => window.removeEventListener("resize", jn));
43394
+ function Pn() {
43385
43395
  let e = _e.value?.textareaRef;
43386
43396
  if (!e) return;
43387
43397
  e.rows = 1;
43388
43398
  let t = getComputedStyle(e), n = (e.scrollHeight - parseFloat(t.paddingTop) - parseFloat(t.paddingBottom)) / parseFloat(t.lineHeight);
43389
- e.rows = Math.min(Math.max(Math.floor(n), 1), OG);
43399
+ e.rows = Math.min(Math.max(Math.floor(n), 1), MG);
43390
43400
  }
43391
- let Pn = 0, Fn = new ResizeObserver(([e]) => {
43392
- Math.round(e.contentRect.width) !== Pn && (Pn = Math.round(e.contentRect.width), Nn());
43401
+ let Fn = 0, In = new ResizeObserver(([e]) => {
43402
+ Math.round(e.contentRect.width) !== Fn && (Fn = Math.round(e.contentRect.width), Pn());
43393
43403
  });
43394
- Qi(() => _e.value?.textareaRef && Fn.observe(_e.value.textareaRef)), ta(() => Fn.disconnect()), ta(bn);
43395
- let In = /* @__PURE__ */ F(""), Ln;
43396
- function Rn() {
43397
- clearTimeout(Ln), In.value = "";
43404
+ Qi(() => _e.value?.textareaRef && In.observe(_e.value.textareaRef)), ta(() => In.disconnect()), ta(xn);
43405
+ let Ln = /* @__PURE__ */ F(""), Rn;
43406
+ function zn() {
43407
+ clearTimeout(Rn), Ln.value = "";
43398
43408
  }
43399
- async function zn(e) {
43409
+ async function Bn(e) {
43400
43410
  let t = ye.value.id;
43401
- Rn(), await s("copy_member_launch", e) && ye.value?.id === t && (In.value = e, Ln = setTimeout(Rn, lK));
43411
+ zn(), await s("copy_member_launch", e) && ye.value?.id === t && (Ln.value = e, Rn = setTimeout(zn, fK));
43402
43412
  }
43403
- R([() => ye.value?.id, () => xe.value?.id], Rn), ta(Rn);
43404
- function Bn(e) {
43413
+ R([() => ye.value?.id, () => xe.value?.id], zn), ta(zn);
43414
+ function Vn(e) {
43405
43415
  return Ee.value && e.status === "failed" && i.value.access?.can_manage ? i.value.messages.find((t) => t.id === e.request_message_id) : null;
43406
43416
  }
43407
- function Vn(e) {
43408
- let t = Bn(e);
43417
+ function Hn(e) {
43418
+ let t = Vn(e);
43409
43419
  if (!t) return;
43410
43420
  let n = (ye.value.free?.requests || []).find((t) => e.request_ids?.includes(t.id));
43411
43421
  l.value = n?.purpose === "ask" && n.member ? `@${n.member} ${t.text}` : t.text, _e.value?.textareaRef?.focus();
43412
43422
  }
43413
- function Hn(e) {
43423
+ function Un(e) {
43414
43424
  return [[{
43415
43425
  label: "复制原文链接",
43416
43426
  icon: "i-lucide-link",
43417
- onSelect: () => Kn(e)
43427
+ onSelect: () => qn(e)
43418
43428
  }, {
43419
43429
  label: "查看原文",
43420
43430
  icon: "i-lucide-expand",
43421
43431
  onSelect: () => n("detail", e.id)
43422
43432
  }]];
43423
43433
  }
43424
- async function Un(e) {
43434
+ async function Wn(e) {
43425
43435
  await s("reply", e), _e.value?.textareaRef?.focus();
43426
43436
  }
43427
- async function Wn() {
43428
- !Fe.value || c.value || i.value.sending_message || (jt.value = null, ve.value = !0, await s("send"), await dn());
43429
- }
43430
- function Gn(e) {
43431
- e.key !== "Enter" || e.ctrlKey || e.metaKey || e.shiftKey || e.altKey || e.isComposing || l.value.trim() || i.value.attachment_drafts.length && (e.preventDefault(), e.stopPropagation(), Wn());
43437
+ async function Gn() {
43438
+ !Fe.value || c.value || i.value.sending_message || (jt.value = null, ve.value = !0, await s("send"), await fn());
43432
43439
  }
43433
43440
  function Kn(e) {
43441
+ e.key !== "Enter" || e.ctrlKey || e.metaKey || e.shiftKey || e.altKey || e.isComposing || l.value.trim() || i.value.attachment_drafts.length && (e.preventDefault(), e.stopPropagation(), Gn());
43442
+ }
43443
+ function qn(e) {
43434
43444
  s("copy", `${location.origin}/r/${ye.value.id}/messages/${e.id}`);
43435
43445
  }
43436
43446
  return (e, t) => {
@@ -43457,20 +43467,20 @@ var hU = /*#__PURE__*/ XH({
43457
43467
  ref_key: "message_map",
43458
43468
  ref: C,
43459
43469
  class: "channel-message-map",
43460
- style: fe({ "--nav-entry-height": `${RG}px` }),
43470
+ style: fe({ "--nav-entry-height": `${HG}px` }),
43461
43471
  "aria-label": "发言快速导航",
43462
- onWheelPassive: uu(Tn, ["stop"]),
43463
- onPointerleave: On,
43464
- onFocusout: On,
43465
- onKeydown: fu(uu(On, ["stop"]), ["esc"]),
43466
- onContextmenu: wn
43467
- }, [K("div", TU, [(U(!0), W(H, null, B(on.value, (e, t, n, r) => {
43472
+ onWheelPassive: uu(En, ["stop"]),
43473
+ onPointerleave: kn,
43474
+ onFocusout: kn,
43475
+ onKeydown: fu(uu(kn, ["stop"]), ["esc"]),
43476
+ onContextmenu: Tn
43477
+ }, [K("div", TU, [(U(!0), W(H, null, B(sn.value, (e, t, n, r) => {
43468
43478
  let o = [
43469
43479
  e,
43470
43480
  I(A),
43471
43481
  k.value,
43472
- rn.value === e.number ? T.value : null,
43473
- jn(e)
43482
+ an.value === e.number ? T.value : null,
43483
+ Mn(e)
43474
43484
  ];
43475
43485
  if (r && r.el && r.key === e.entries[0].key && rc(r, o)) return r;
43476
43486
  let s = (U(), W("div", {
@@ -43488,21 +43498,21 @@ var hU = /*#__PURE__*/ XH({
43488
43498
  tabindex: !e.round && e.message.id === (T.value || I(i).messages[0]?.id) ? 0 : -1,
43489
43499
  "aria-current": !e.round && T.value === e.message.id ? "location" : void 0,
43490
43500
  "aria-describedby": k.value && O.value === e.key ? "channel-navigation-preview" : void 0,
43491
- onPointerenter: (t) => Sn(e, t),
43492
- onPointermove: (t) => Sn(e, t),
43493
- onPointerdown: (t) => yn(e, t),
43494
- onPointerup: xn,
43495
- onPointercancel: xn,
43496
- onFocus: (t) => vn(e, t),
43497
- onKeydown: (t) => hn(t, e.index),
43498
- onClick: (t) => Cn(e, t)
43501
+ onPointerenter: (t) => Cn(e, t),
43502
+ onPointermove: (t) => Cn(e, t),
43503
+ onPointerdown: (t) => bn(e, t),
43504
+ onPointerup: Sn,
43505
+ onPointercancel: Sn,
43506
+ onFocus: (t) => yn(e, t),
43507
+ onKeydown: (t) => gn(t, e.index),
43508
+ onClick: (t) => wn(e, t)
43499
43509
  }, [e.round ? (U(), W("span", DU, P(e.number || "–"), 1)) : (U(), G(I(bV).span, {
43500
43510
  key: 1,
43501
43511
  class: "channel-jump-tick",
43502
43512
  "aria-hidden": "true",
43503
43513
  initial: !1,
43504
- animate: I(A) ? void 0 : Mn(e, e.index),
43505
- style: fe(I(A) ? Mn(e, e.index) : void 0),
43514
+ animate: I(A) ? void 0 : Nn(e, e.index),
43515
+ style: fe(I(A) ? Nn(e, e.index) : void 0),
43506
43516
  transition: j
43507
43517
  }, null, 8, ["animate", "style"]))], 42, EU))), 128))], 4));
43508
43518
  return s.memo = o, s;
@@ -43522,11 +43532,11 @@ var hU = /*#__PURE__*/ XH({
43522
43532
  opacity: I(pe),
43523
43533
  scale: I(ue),
43524
43534
  height: I(ce),
43525
- "--preview-gap": `${LG}px`
43535
+ "--preview-gap": `${VG}px`
43526
43536
  }),
43527
- onPointerleave: On,
43528
- onFocusout: On,
43529
- onKeydown: fu(uu(On, ["stop"]), ["esc"])
43537
+ onPointerleave: kn,
43538
+ onFocusout: kn,
43539
+ onKeydown: fu(uu(kn, ["stop"]), ["esc"])
43530
43540
  }, {
43531
43541
  default: L(() => [K("div", {
43532
43542
  ref_key: "preview_content",
@@ -43565,8 +43575,8 @@ var hU = /*#__PURE__*/ XH({
43565
43575
  "onKeydown"
43566
43576
  ])) : Y("", !0)])),
43567
43577
  nc([
43568
- tn.value,
43569
- an.value,
43578
+ nn.value,
43579
+ on.value,
43570
43580
  T.value,
43571
43581
  b.value.size,
43572
43582
  ye.value.title,
@@ -43591,10 +43601,10 @@ var hU = /*#__PURE__*/ XH({
43591
43601
  ref: y,
43592
43602
  class: "channel-transcript",
43593
43603
  "aria-label": "聊天记录",
43594
- onScroll: un,
43595
- onWheelPassive: mn,
43596
- onTouchstartPassive: mn,
43597
- onKeydown: mn
43604
+ onScroll: dn,
43605
+ onWheelPassive: hn,
43606
+ onTouchstartPassive: hn,
43607
+ onKeydown: hn
43598
43608
  }, [
43599
43609
  !I(i).query && !I(i).mention_only && !Qt.value ? (U(), W("div", PU, [q(qH, {
43600
43610
  ref: (e) => /* @__PURE__ */ ln(r) ? r.value = e : r = e,
@@ -43612,7 +43622,7 @@ var hU = /*#__PURE__*/ XH({
43612
43622
  default: L(() => [(U(!0), W(H, null, B(e.turns, (t) => (U(), W("p", { key: `${e.id}-${t.expert}-${t.question}` }, [K("span", null, P(I(a).display_name(t.expert)) + ":" + P(t.question), 1)]))), 128))]),
43613
43623
  _: 2
43614
43624
  }, 1032, ["title"]))), 128))])) : Y("", !0),
43615
- (U(!0), W(H, null, B(tn.value, (e) => (U(), W("div", {
43625
+ (U(!0), W(H, null, B(nn.value, (e) => (U(), W("div", {
43616
43626
  key: e.key,
43617
43627
  class: "channel-message-group"
43618
43628
  }, [q(w, {
@@ -43626,7 +43636,7 @@ var hU = /*#__PURE__*/ XH({
43626
43636
  ref: (e) => /* @__PURE__ */ ln(r) ? r.value = e : r = e,
43627
43637
  onEdit: t[4] ||= (e) => n("edit")
43628
43638
  }, null, 512)) : Y("", !0),
43629
- e.slot_card ? (U(), G(E, {
43639
+ e.slot_card && !e.failure ? (U(), G(E, {
43630
43640
  key: 2,
43631
43641
  id: `execution-${e.id}`,
43632
43642
  "data-author": I(a).identities[e.author]?.style,
@@ -43659,25 +43669,26 @@ var hU = /*#__PURE__*/ XH({
43659
43669
  K("div", LU, [K("div", RU, [K("strong", null, P(I(a).display_name(e.author)), 1)]), e.created_at ? (U(), W("div", zU, [K("time", { title: (/* @__PURE__ */ new Date(e.created_at * 1e3)).toLocaleString("zh-CN") }, P(I(a).format_time(e.created_at * 1e3)), 9, BU)])) : Y("", !0)]),
43660
43670
  K("span", VU, P(e.waiting ? `手动启动${e.created_at ? ` · 已等 ${gt(Math.max(0, Oe.value - e.created_at))}` : ""}` : `已用 ${gt(Math.max(0, Oe.value - e.created_at))}`), 1)
43661
43671
  ]),
43662
- K("div", {
43663
- class: M(["channel-message-text", { "is-breathing": e.working }]),
43672
+ (U(!0), W(H, null, B([Ne(e)], (n) => (U(), W("div", {
43673
+ key: e.id,
43674
+ class: M(["channel-message-text", {
43675
+ "is-breathing": n.live,
43676
+ "channel-working-warning": n.warning
43677
+ }]),
43664
43678
  role: "status",
43665
- "aria-label": `${I(a).display_name(e.author)} ${e.text}`
43679
+ "aria-label": `${I(a).display_name(e.author)} ${n.text}`,
43680
+ title: qe.includes(e.adapter) ? "此接入方式看不到进度,可在原窗口查看" : void 0
43666
43681
  }, [e.waiting ? (U(), W("span", UU, P(e.text), 1)) : (U(), W(H, { key: 1 }, [K("span", {
43667
43682
  ref_for: !0,
43668
43683
  ref_key: "reply_glow",
43669
43684
  ref: be,
43670
43685
  class: "channel-reply-glow"
43671
- }, P(e.text), 513), e.working ? (U(), W("span", WU, [...t[27] ||= [
43686
+ }, P(n.text), 513), n.live ? (U(), W("span", WU, [...t[27] ||= [
43672
43687
  K("i", null, ".", -1),
43673
43688
  K("i", null, ".", -1),
43674
43689
  K("i", null, ".", -1)
43675
- ]])) : Y("", !0)], 64))], 10, HU),
43676
- Ae.value.get(e.execution_id)?.length ? (U(), W("ol", GU, [(U(!0), W(H, null, B(Ae.value.get(e.execution_id), (e) => (U(), W("li", { key: e.seq }, P(e.text), 1))), 128))])) : Y("", !0),
43677
- Ne(e) ? (U(), W("div", {
43678
- key: 1,
43679
- class: M(["channel-activity", `is-${Ne(e).tone}`])
43680
- }, P(Ne(e).text), 3)) : Y("", !0)
43690
+ ]])) : Y("", !0)], 64))], 10, HU))), 128)),
43691
+ Ae.value.get(e.execution_id)?.length ? (U(), W("div", GU, [K("ol", KU, [(U(!0), W(H, null, B(Ae.value.get(e.execution_id), (e) => (U(), W("li", { key: e.seq }, P(e.text), 1))), 128))])])) : Y("", !0)
43681
43692
  ]),
43682
43693
  _: 2
43683
43694
  }, 1032, ["id", "data-author"])) : e.failure ? (U(), W("section", {
@@ -43687,7 +43698,7 @@ var hU = /*#__PURE__*/ XH({
43687
43698
  "data-author": I(a).identities[e.author]?.style,
43688
43699
  "aria-label": `${I(a).display_name(e.author)} 执行失败`
43689
43700
  }, [
43690
- K("div", qU, [
43701
+ K("div", JU, [
43691
43702
  q(x, {
43692
43703
  src: I(a).identities[e.author]?.icon,
43693
43704
  text: I(a).identities[e.author]?.initials || "?",
@@ -43700,24 +43711,41 @@ var hU = /*#__PURE__*/ XH({
43700
43711
  "alt",
43701
43712
  "class"
43702
43713
  ]),
43703
- K("div", JU, [K("div", YU, [
43714
+ K("div", YU, [K("div", XU, [
43704
43715
  K("strong", null, P(I(a).display_name(e.author)), 1),
43705
- e.failure.role === "host" ? (U(), W("span", XU, "主持工作")) : Y("", !0),
43716
+ e.failure.role === "host" ? (U(), W("span", ZU, "主持工作")) : Y("", !0),
43706
43717
  q(D, {
43707
43718
  label: "执行失败",
43708
43719
  color: "error",
43709
43720
  variant: "soft",
43710
43721
  size: "xs"
43711
43722
  })
43712
- ]), K("div", ZU, [
43713
- K("time", { title: new Date(e.created_at).toLocaleString("zh-CN") }, P(I(a).format_time(e.created_at)), 9, QU),
43723
+ ]), (U(!0), W(H, null, B([e.slot_card ? e.created_at * 1e3 : e.created_at], (t) => (U(), W("div", {
43724
+ key: e.id,
43725
+ class: "channel-message-provenance"
43726
+ }, [
43727
+ K("time", { title: new Date(t).toLocaleString("zh-CN") }, P(I(a).format_time(t)), 9, QU),
43714
43728
  K("span", null, "执行 #" + P(e.failure.id), 1),
43715
43729
  e.failure.turn_id ? (U(), W("span", $U, "安排 #" + P(e.failure.turn_id), 1)) : Y("", !0)
43716
- ])]),
43730
+ ]))), 128))]),
43717
43731
  e.failure.elapsed_seconds == null ? Y("", !0) : (U(), W("span", eW, "耗时 " + P(gt(e.failure.elapsed_seconds)), 1))
43718
43732
  ]),
43719
43733
  K("p", tW, P(e.failure.result || "执行失败,未提供原因"), 1),
43720
- e.can_retry ? (U(), W("div", nW, [q(o, {
43734
+ e.failure.notes ? (U(), W("details", {
43735
+ key: 0,
43736
+ class: "channel-receipt",
43737
+ onToggle: (t) => t.target.open && je(e.failure.id)
43738
+ }, [K("summary", { "aria-label": `查看执行 #${e.failure.id} 的过程说明` }, "过程说明 · " + P(e.failure.notes) + " 段", 9, rW), K("ol", iW, [(U(!0), W(H, null, B(Ae.value.get(e.failure.id) || [], (e) => (U(), W("li", { key: e.seq }, P(e.text), 1))), 128))])], 40, nW)) : Y("", !0),
43739
+ Ee.value && Vn(e.failure) ? (U(), W("div", aW, [q(o, {
43740
+ label: "重发",
43741
+ icon: "i-lucide-rotate-ccw",
43742
+ size: "sm",
43743
+ variant: "soft",
43744
+ color: "neutral",
43745
+ "aria-label": `把执行 #${e.failure.id} 的原消息填回输入框重发`,
43746
+ onClick: (t) => Hn(e.failure)
43747
+ }, null, 8, ["aria-label", "onClick"])])) : Y("", !0),
43748
+ e.can_retry ? (U(), W("div", oW, [q(o, {
43721
43749
  label: "重试",
43722
43750
  icon: "i-lucide-rotate-ccw",
43723
43751
  size: "sm",
@@ -43732,12 +43760,12 @@ var hU = /*#__PURE__*/ XH({
43732
43760
  "loading",
43733
43761
  "disabled",
43734
43762
  "onClick"
43735
- ]), I(i).free_error ? (U(), W("p", rW, P(I(i).free_error), 1)) : Y("", !0)])) : Y("", !0)
43736
- ], 8, KU)) : (U(), W(H, { key: 4 }, [
43763
+ ]), I(i).free_error ? (U(), W("p", sW, P(I(i).free_error), 1)) : Y("", !0)])) : Y("", !0)
43764
+ ], 8, qU)) : (U(), W(H, { key: 4 }, [
43737
43765
  nc([
43738
43766
  e,
43739
43767
  I(i).admin?.identity_version,
43740
- an.value.get(e.id),
43768
+ on.value.get(e.id),
43741
43769
  b.value.has(e.id),
43742
43770
  T.value === e.id,
43743
43771
  $e(e),
@@ -43767,7 +43795,7 @@ var hU = /*#__PURE__*/ XH({
43767
43795
  }
43768
43796
  }, {
43769
43797
  body: L(() => [
43770
- K("div", iW, [
43798
+ K("div", cW, [
43771
43799
  q(x, {
43772
43800
  src: I(a).identities[e.author]?.icon,
43773
43801
  text: I(a).identities[e.author]?.initials || "?",
@@ -43780,9 +43808,9 @@ var hU = /*#__PURE__*/ XH({
43780
43808
  "alt",
43781
43809
  "class"
43782
43810
  ]),
43783
- K("div", aW, [K("div", oW, [
43811
+ K("div", lW, [K("div", uW, [
43784
43812
  K("strong", null, P(I(a).display_name(e.author)), 1),
43785
- K("span", sW, P(an.value.get(e.id)), 1),
43813
+ K("span", dW, P(on.value.get(e.id)), 1),
43786
43814
  q(D, {
43787
43815
  size: "xs",
43788
43816
  color: "neutral",
@@ -43834,8 +43862,8 @@ var hU = /*#__PURE__*/ XH({
43834
43862
  default: L(() => [J(P(e.label), 1)]),
43835
43863
  _: 2
43836
43864
  }, 1032, ["color", "title"]))), 128))
43837
- ]), K("div", cW, [
43838
- K("time", { title: new Date(e.created_at).toLocaleString("zh-CN") }, P(I(a).format_time(e.created_at)), 9, lW),
43865
+ ]), K("div", fW, [
43866
+ K("time", { title: new Date(e.created_at).toLocaleString("zh-CN") }, P(I(a).format_time(e.created_at)), 9, pW),
43839
43867
  q(o, {
43840
43868
  label: `#${e.id}`,
43841
43869
  color: "neutral",
@@ -43849,10 +43877,10 @@ var hU = /*#__PURE__*/ XH({
43849
43877
  "aria-label",
43850
43878
  "onClick"
43851
43879
  ]),
43852
- e.submitted_by && e.submitted_by !== e.author && (e.source !== "proxy" || e.submitted_by !== "用户") ? (U(), W("span", uW, P(I(a).display_name(e.submitted_by)) + " 代发", 1)) : Y("", !0),
43853
- e.turn_id ? (U(), W("span", dW, "回答安排 #" + P(e.turn_id), 1)) : Y("", !0)
43880
+ e.submitted_by && e.submitted_by !== e.author && (e.source !== "proxy" || e.submitted_by !== "用户") ? (U(), W("span", mW, P(I(a).display_name(e.submitted_by)) + " 代发", 1)) : Y("", !0),
43881
+ e.turn_id ? (U(), W("span", hW, "回答安排 #" + P(e.turn_id), 1)) : Y("", !0)
43854
43882
  ])]),
43855
- bt(e) === null ? Y("", !0) : (U(), W("span", fW, "耗时 " + P(gt(bt(e))), 1))
43883
+ bt(e) === null ? Y("", !0) : (U(), W("span", gW, "耗时 " + P(gt(bt(e))), 1))
43856
43884
  ]),
43857
43885
  e.reply_to ? (U(), G(o, {
43858
43886
  key: 0,
@@ -43873,15 +43901,15 @@ var hU = /*#__PURE__*/ XH({
43873
43901
  key: 1,
43874
43902
  class: "channel-receipt",
43875
43903
  onToggle: (t) => t.target.open && je(Me(e).id)
43876
- }, [K("summary", { "aria-label": `查看 #${e.id} 的过程说明` }, "过程说明 · " + P(Me(e).notes) + " 段", 9, mW), K("ol", hW, [(U(!0), W(H, null, B(Ae.value.get(Me(e).id) || [], (e) => (U(), W("li", { key: e.seq }, P(e.text), 1))), 128))])], 40, pW)) : Y("", !0),
43877
- e.kind === "receipt" ? (U(), W("details", gW, [K("summary", { "aria-label": `查看运行回执 #${e.id}` }, "运行回执详情", 8, _W), K("div", {
43904
+ }, [K("summary", { "aria-label": `查看 #${e.id} 的过程说明` }, "过程说明 · " + P(Me(e).notes) + " 段", 9, vW), K("ol", yW, [(U(!0), W(H, null, B(Ae.value.get(Me(e).id) || [], (e) => (U(), W("li", { key: e.seq }, P(e.text), 1))), 128))])], 40, _W)) : Y("", !0),
43905
+ e.kind === "receipt" ? (U(), W("details", bW, [K("summary", { "aria-label": `查看运行回执 #${e.id}` }, "运行回执详情", 8, xW), K("div", {
43878
43906
  class: "channel-message-text markdown-body",
43879
43907
  innerHTML: e.rendered_text
43880
- }, null, 8, vW)])) : (U(), W("div", yW, [K("div", {
43908
+ }, null, 8, SW)])) : (U(), W("div", CW, [K("div", {
43881
43909
  id: `channel-answer-${e.id}`,
43882
43910
  class: "channel-message-text markdown-body",
43883
43911
  innerHTML: b.value.has(e.id) ? e.rendered_text : S.value.get(e.id).html
43884
- }, null, 8, bW), S.value.get(e.id).truncated ? (U(), G(o, {
43912
+ }, null, 8, wW), S.value.get(e.id).truncated ? (U(), G(o, {
43885
43913
  key: 0,
43886
43914
  label: b.value.has(e.id) ? "收起" : "展开全文",
43887
43915
  "trailing-icon": b.value.has(e.id) ? "i-lucide-chevron-up" : "i-lucide-chevron-down",
@@ -43892,7 +43920,7 @@ var hU = /*#__PURE__*/ XH({
43892
43920
  "aria-label": `${b.value.has(e.id) ? "收起回答" : "展开完整回答"} #${e.id}`,
43893
43921
  "aria-expanded": b.value.has(e.id),
43894
43922
  "aria-controls": `channel-answer-${e.id}`,
43895
- onClick: (t) => fn(e, t)
43923
+ onClick: (t) => pn(e, t)
43896
43924
  }, null, 8, [
43897
43925
  "label",
43898
43926
  "trailing-icon",
@@ -43901,14 +43929,14 @@ var hU = /*#__PURE__*/ XH({
43901
43929
  "aria-controls",
43902
43930
  "onClick"
43903
43931
  ])) : Y("", !0)])),
43904
- e.summary ? (U(), W("div", xW, [K("small", null, [t[31] ||= J("回答摘要", -1), e.summary_by && e.summary_by !== e.author ? (U(), W("span", SW, " · " + P(I(a).display_name(e.summary_by)) + " 整理", 1)) : Y("", !0)]), K("div", {
43932
+ e.summary ? (U(), W("div", TW, [K("small", null, [t[31] ||= J("回答摘要", -1), e.summary_by && e.summary_by !== e.author ? (U(), W("span", EW, " · " + P(I(a).display_name(e.summary_by)) + " 整理", 1)) : Y("", !0)]), K("div", {
43905
43933
  class: "channel-message-text markdown-body",
43906
43934
  innerHTML: e.rendered_summary
43907
- }, null, 8, CW)])) : Y("", !0),
43935
+ }, null, 8, DW)])) : Y("", !0),
43908
43936
  e.attachments?.length ? (U(), W("div", {
43909
43937
  key: 5,
43910
43938
  innerHTML: I(a).attachment_markup(e.attachments)
43911
- }, null, 8, wW)) : Y("", !0),
43939
+ }, null, 8, OW)) : Y("", !0),
43912
43940
  rt.value.get(e.id) ? (U(), W("div", {
43913
43941
  key: 6,
43914
43942
  class: M(["channel-recommendation", `is-${rt.value.get(e.id).status}`]),
@@ -43919,12 +43947,12 @@ var hU = /*#__PURE__*/ XH({
43919
43947
  name: "i-lucide-zap",
43920
43948
  class: "channel-recommendation-icon"
43921
43949
  }),
43922
- e.status === "open" ? (U(), W("span", TW, [
43950
+ e.status === "open" ? (U(), W("span", kW, [
43923
43951
  t[32] ||= J("智能调度建议让 ", -1),
43924
43952
  K("strong", null, P(I(a).display_name(e.member)), 1),
43925
43953
  t[33] ||= J(" 回答", -1),
43926
- K("small", { title: `${e.label},置信度 ${Number(e.confidence).toFixed(2)}` }, "置信度 " + P(Number(e.confidence).toFixed(2)) + " · " + P(e.remaining) + " 秒", 9, EW)
43927
- ])) : e.status === "waiting" ? (U(), W("span", DW, "智能调度:主持人答完后请 " + P(I(a).display_name(e.member)) + " 回答", 1)) : (U(), W("span", OW, "智能调度:" + P(e.mode === "interrupt" ? `已打断主持人,改由 ${I(a).display_name(e.member)} 回答` : `已请 ${I(a).display_name(e.member)} 回答`), 1)),
43954
+ K("small", { title: `${e.label},置信度 ${Number(e.confidence).toFixed(2)}` }, "置信度 " + P(Number(e.confidence).toFixed(2)) + " · " + P(e.remaining) + " 秒", 9, AW)
43955
+ ])) : e.status === "waiting" ? (U(), W("span", jW, "智能调度:主持人答完后请 " + P(I(a).display_name(e.member)) + " 回答", 1)) : (U(), W("span", MW, "智能调度:" + P(e.mode === "interrupt" ? `已打断主持人,改由 ${I(a).display_name(e.member)} 回答` : `已请 ${I(a).display_name(e.member)} 回答`), 1)),
43928
43956
  e.can_adopt ? (U(), W(H, { key: 3 }, [nt.value === e.message_id ? (U(), W(H, { key: 1 }, [
43929
43957
  q(o, {
43930
43958
  label: `打断主持人,改由 ${I(a).display_name(e.member)} 回答`,
@@ -43959,7 +43987,7 @@ var hU = /*#__PURE__*/ XH({
43959
43987
  onClick: (t) => e.host_busy ? nt.value = e.message_id : mt(e.message_id, "after")
43960
43988
  }, null, 8, ["aria-label", "onClick"]))], 64)) : Y("", !0)
43961
43989
  ], 64))), 128))], 2)) : Y("", !0),
43962
- Ee.value && e.suggestions?.length ? (U(), W("div", kW, [(U(!0), W(H, null, B(He.value.get(e.id) || [], (t) => (U(), W("div", { key: t.member_id }, [K("span", null, "建议请 " + P(I(a).display_name(t.member)) + " 回应", 1), t.request_id ? (U(), W("span", AW, "已转请求 #" + P(t.request_id), 1)) : t.status === "active" ? I(i).access?.can_manage && !ye.value.archived ? (U(), G(o, {
43990
+ Ee.value && e.suggestions?.length ? (U(), W("div", NW, [(U(!0), W(H, null, B(He.value.get(e.id) || [], (t) => (U(), W("div", { key: t.member_id }, [K("span", null, "建议请 " + P(I(a).display_name(t.member)) + " 回应", 1), t.request_id ? (U(), W("span", PW, "已转请求 #" + P(t.request_id), 1)) : t.status === "active" ? I(i).access?.can_manage && !ye.value.archived ? (U(), G(o, {
43963
43991
  key: 2,
43964
43992
  label: "转为请求",
43965
43993
  icon: "i-lucide-send",
@@ -43976,16 +44004,16 @@ var hU = /*#__PURE__*/ XH({
43976
44004
  "disabled",
43977
44005
  "aria-label",
43978
44006
  "onClick"
43979
- ])) : Y("", !0) : (U(), W("span", jW, "成员已离开"))]))), 128))])) : Y("", !0),
44007
+ ])) : Y("", !0) : (U(), W("span", FW, "成员已离开"))]))), 128))])) : Y("", !0),
43980
44008
  (U(!0), W(H, null, B(Xe.value.get(e.id) || [], (e) => (U(), W("section", {
43981
44009
  key: e.id,
43982
44010
  class: "channel-execution-report",
43983
44011
  "aria-label": `执行报告 #${e.id}`
43984
44012
  }, [
43985
44013
  K("div", null, [K("strong", null, "执行 #" + P(e.id) + " · " + P(e.label), 1)]),
43986
- e.changes?.length ? (U(), W("p", NW, "文件变化:" + P(e.changes.join("、")), 1)) : Y("", !0),
43987
- e.status !== "completed" && e.result ? (U(), W("p", PW, P(e.result), 1)) : Y("", !0),
43988
- Bn(e) ? (U(), G(o, {
44014
+ e.changes?.length ? (U(), W("p", LW, "文件变化:" + P(e.changes.join("、")), 1)) : Y("", !0),
44015
+ e.status !== "completed" && e.result ? (U(), W("p", RW, P(e.result), 1)) : Y("", !0),
44016
+ Vn(e) ? (U(), G(o, {
43989
44017
  key: 2,
43990
44018
  label: "重发",
43991
44019
  icon: "i-lucide-rotate-ccw",
@@ -43993,22 +44021,22 @@ var hU = /*#__PURE__*/ XH({
43993
44021
  variant: "soft",
43994
44022
  color: "neutral",
43995
44023
  "aria-label": `把执行 #${e.id} 的原消息填回输入框重发`,
43996
- onClick: (t) => Vn(e)
44024
+ onClick: (t) => Hn(e)
43997
44025
  }, null, 8, ["aria-label", "onClick"])) : Y("", !0)
43998
- ], 8, MW))), 128))
44026
+ ], 8, IW))), 128))
43999
44027
  ]),
44000
- header: L(() => [K("div", FW, [K("div", IW, [q(ie, { text: "回复" }, {
44028
+ header: L(() => [K("div", zW, [K("div", BW, [q(ie, { text: "回复" }, {
44001
44029
  default: L(() => [q(o, {
44002
44030
  icon: "i-lucide-corner-up-left",
44003
44031
  size: "xs",
44004
44032
  color: "neutral",
44005
44033
  variant: "ghost",
44006
44034
  "aria-label": `回复 #${e.id}`,
44007
- onClick: (t) => Un(e)
44035
+ onClick: (t) => Wn(e)
44008
44036
  }, null, 8, ["aria-label", "onClick"])]),
44009
44037
  _: 2
44010
44038
  }, 1024), q(ae, {
44011
- items: Hn(e),
44039
+ items: Un(e),
44012
44040
  content: {
44013
44041
  align: "end",
44014
44042
  sideOffset: 5
@@ -44060,8 +44088,8 @@ var hU = /*#__PURE__*/ XH({
44060
44088
  }, {
44061
44089
  text: L(() => [
44062
44090
  J("智能调度:" + P(e.label), 1),
44063
- e.confidence === null ? Y("", !0) : (U(), W("small", LW, "置信度 " + P(Number(e.confidence).toFixed(2)), 1)),
44064
- e.detail?.[0]?.duration_ms == null ? Y("", !0) : (U(), W("small", RW, "耗时 " + P(vt(e.detail[0].duration_ms)), 1))
44091
+ e.confidence === null ? Y("", !0) : (U(), W("small", VW, "置信度 " + P(Number(e.confidence).toFixed(2)), 1)),
44092
+ e.detail?.[0]?.duration_ms == null ? Y("", !0) : (U(), W("small", HW, "耗时 " + P(vt(e.detail[0].duration_ms)), 1))
44065
44093
  ]),
44066
44094
  actions: L(() => [I(i).access?.can_manage ? (U(), W("button", {
44067
44095
  key: 0,
@@ -44071,7 +44099,7 @@ var hU = /*#__PURE__*/ XH({
44071
44099
  "aria-label": "这次调度判断得好",
44072
44100
  title: "判断得好",
44073
44101
  onClick: (t) => dt(e, "good")
44074
- }, [q(re, { name: "i-lucide-thumbs-up" })], 10, zW)) : Y("", !0), I(i).access?.can_manage ? (U(), W("button", {
44102
+ }, [q(re, { name: "i-lucide-thumbs-up" })], 10, UW)) : Y("", !0), I(i).access?.can_manage ? (U(), W("button", {
44075
44103
  key: 1,
44076
44104
  type: "button",
44077
44105
  class: M(["channel-schedule-rate", { "is-on": e.feedback === "bad" }]),
@@ -44079,8 +44107,8 @@ var hU = /*#__PURE__*/ XH({
44079
44107
  "aria-label": "这次调度判断得不好",
44080
44108
  title: "判断得不好",
44081
44109
  onClick: (t) => dt(e, "bad")
44082
- }, [q(re, { name: "i-lucide-thumbs-down" })], 10, BW)) : Y("", !0)]),
44083
- default: L(() => [(U(!0), W(H, null, B(e.detail, (e, t) => (U(), W("p", { key: t }, [K("span", null, "问:" + P(e.question) + "(" + P(e.choices.map(ct).join(" / ")) + ")", 1), K("span", null, [J("答:" + P(e.choice ? ct(e.choice) : "无"), 1), e.probabilities[e.choice] === void 0 ? Y("", !0) : (U(), W("small", VW, "概率 " + P(Number(e.probabilities[e.choice]).toFixed(2)), 1))])]))), 128))]),
44110
+ }, [q(re, { name: "i-lucide-thumbs-down" })], 10, WW)) : Y("", !0)]),
44111
+ default: L(() => [(U(!0), W(H, null, B(e.detail, (e, t) => (U(), W("p", { key: t }, [K("span", null, "问:" + P(e.question) + "(" + P(e.choices.map(ct).join(" / ")) + ")", 1), K("span", null, [J("答:" + P(e.choice ? ct(e.choice) : "无"), 1), e.probabilities[e.choice] === void 0 ? Y("", !0) : (U(), W("small", GW, "概率 " + P(Number(e.probabilities[e.choice]).toFixed(2)), 1))])]))), 128))]),
44084
44112
  _: 2
44085
44113
  }, 1032, [
44086
44114
  "skipped",
@@ -44095,7 +44123,7 @@ var hU = /*#__PURE__*/ XH({
44095
44123
  K("label", null, [t[35] ||= J("应该由谁回答", -1), vr(K("select", { "onUpdate:modelValue": t[7] ||= (e) => ut.value.should_be = e }, [(U(!0), W(H, null, B(pt.value, (e) => (U(), W("option", {
44096
44124
  key: e.value,
44097
44125
  value: e.value
44098
- }, P(e.label), 9, UW))), 128))], 512), [[$l, ut.value.should_be]])]),
44126
+ }, P(e.label), 9, qW))), 128))], 512), [[$l, ut.value.should_be]])]),
44099
44127
  vr(K("input", {
44100
44128
  "onUpdate:modelValue": t[8] ||= (e) => ut.value.note = e,
44101
44129
  type: "text",
@@ -44121,7 +44149,7 @@ var hU = /*#__PURE__*/ XH({
44121
44149
  note: ""
44122
44150
  }
44123
44151
  })
44124
- ], 40, HW)) : Y("", !0)], 64))), 128)),
44152
+ ], 40, KW)) : Y("", !0)], 64))), 128)),
44125
44153
  (U(!0), W(H, null, B(lt.value.get(e.id) || [], (t) => (U(), G(jH, {
44126
44154
  key: `arrangement-${t.id}`,
44127
44155
  icon: "i-lucide-list-ordered",
@@ -44150,7 +44178,7 @@ var hU = /*#__PURE__*/ XH({
44150
44178
  body: "channel-message-body"
44151
44179
  }
44152
44180
  }, {
44153
- body: L(() => [K("div", WW, [
44181
+ body: L(() => [K("div", JW, [
44154
44182
  q(x, {
44155
44183
  src: I(a).identities[e.expert]?.icon,
44156
44184
  text: I(a).identities[e.expert]?.initials || "?",
@@ -44163,8 +44191,8 @@ var hU = /*#__PURE__*/ XH({
44163
44191
  "alt",
44164
44192
  "class"
44165
44193
  ]),
44166
- K("div", GW, [K("div", KW, [K("strong", null, P(I(a).display_name(e.expert)), 1)])]),
44167
- K("span", qW, "已错过 · 安排 #" + P(e.id), 1)
44194
+ K("div", YW, [K("div", XW, [K("strong", null, P(I(a).display_name(e.expert)), 1)])]),
44195
+ K("span", ZW, "已错过 · 安排 #" + P(e.id), 1)
44168
44196
  ]), t[36] ||= K("div", {
44169
44197
  class: "channel-message-text",
44170
44198
  role: "status"
@@ -44173,12 +44201,12 @@ var hU = /*#__PURE__*/ XH({
44173
44201
  }, 1032, ["id", "data-author"]))), 128))
44174
44202
  ], 64))
44175
44203
  ], 64))), 128))]))), 128)),
44176
- (Qt.value === "end" || $t.value === "end") && !I(i).query && !I(i).mention_only ? (U(), W("div", JW, [Qt.value === "end" ? (U(), G(qH, {
44204
+ (Qt.value === "end" || $t.value === "end") && !I(i).query && !I(i).mention_only ? (U(), W("div", QW, [Qt.value === "end" ? (U(), G(qH, {
44177
44205
  key: 0,
44178
44206
  ref: (e) => /* @__PURE__ */ ln(r) ? r.value = e : r = e,
44179
44207
  onEdit: t[10] ||= (e) => n("edit")
44180
44208
  }, null, 512)) : Y("", !0), $t.value === "end" ? (U(), G(SU, { key: 1 })) : Y("", !0)])) : Y("", !0),
44181
- Ze.value ? (U(), W("div", YW, [Ze.value.is_host ? (U(), G(jH, {
44209
+ Ze.value ? (U(), W("div", $W, [Ze.value.is_host ? (U(), G(jH, {
44182
44210
  key: 0,
44183
44211
  id: `execution-${Ze.value.id}`,
44184
44212
  icon: "i-lucide-list-ordered",
@@ -44193,7 +44221,7 @@ var hU = /*#__PURE__*/ XH({
44193
44221
  ref_key: "reply_glow",
44194
44222
  ref: be,
44195
44223
  class: "channel-reply-glow"
44196
- }, P(Ze.value.text), 513)], 8, XW), K("small", null, "已用 " + P(_t.value), 1)]),
44224
+ }, P(Ze.value.text), 513)], 8, eG), K("small", null, "已用 " + P(_t.value), 1)]),
44197
44225
  _: 1
44198
44226
  }, 8, ["id", "label"])) : (U(), G(E, {
44199
44227
  key: 1,
@@ -44211,7 +44239,7 @@ var hU = /*#__PURE__*/ XH({
44211
44239
  body: "channel-message-body"
44212
44240
  }
44213
44241
  }, {
44214
- body: L(() => [K("div", ZW, [
44242
+ body: L(() => [K("div", tG, [
44215
44243
  q(x, {
44216
44244
  src: I(a).identities[Ze.value.author]?.icon,
44217
44245
  text: I(a).identities[Ze.value.author]?.initials || "?",
@@ -44224,41 +44252,41 @@ var hU = /*#__PURE__*/ XH({
44224
44252
  "alt",
44225
44253
  "class"
44226
44254
  ]),
44227
- K("div", QW, [K("div", $W, [K("strong", null, P(I(a).display_name(Ze.value.author)), 1), Ze.value.round ? (U(), W("span", eG, P(Ze.value.round), 1)) : Y("", !0)])]),
44228
- K("span", tG, P(Ze.value.manual ? "手动启动" : `已用 ${_t.value}`), 1)
44255
+ K("div", nG, [K("div", rG, [K("strong", null, P(I(a).display_name(Ze.value.author)), 1), Ze.value.round ? (U(), W("span", iG, P(Ze.value.round), 1)) : Y("", !0)])]),
44256
+ K("span", aG, P(Ze.value.manual ? "手动启动" : `已用 ${_t.value}`), 1)
44229
44257
  ]), K("div", {
44230
44258
  class: "channel-message-text",
44231
44259
  role: "status",
44232
44260
  "aria-label": `${I(a).display_name(Ze.value.author)} ${Ze.value.text}`
44233
- }, [Ze.value.manual ? (U(), W("span", rG, P(Ze.value.text), 1)) : (U(), W("span", {
44261
+ }, [Ze.value.manual ? (U(), W("span", sG, P(Ze.value.text), 1)) : (U(), W("span", {
44234
44262
  key: 1,
44235
44263
  ref_key: "reply_glow",
44236
44264
  ref: be,
44237
44265
  class: "channel-reply-glow"
44238
- }, P(Ze.value.text), 513))], 8, nG)]),
44266
+ }, P(Ze.value.text), 513))], 8, oG)]),
44239
44267
  _: 1
44240
44268
  }, 8, ["id", "data-author"]))])) : Y("", !0),
44241
- !Zt.value.length && !Ze.value && !ke.value.length ? (U(), W("div", iG, [
44269
+ !Zt.value.length && !Ze.value && !ke.value.length ? (U(), W("div", cG, [
44242
44270
  q(re, { name: I(i).query || I(i).mention_only ? "i-lucide-search" : "i-lucide-hash" }, null, 8, ["name"]),
44243
44271
  K("h2", null, P(I(i).query || I(i).mention_only ? "没有找到消息" : ye.value.title), 1),
44244
44272
  K("p", null, P(I(i).query || I(i).mention_only ? "试试其他关键词,或清除筛选。" : I(a).empty_discussion_message(ye.value)), 1)
44245
44273
  ])) : Y("", !0)
44246
44274
  ], 544)), t, 11),
44247
- (Zt.value.length || Ze.value) && !ve.value ? (U(), W("div", aG, [q(o, {
44275
+ (Zt.value.length || Ze.value) && !ve.value ? (U(), W("div", lG, [q(o, {
44248
44276
  icon: "i-lucide-arrow-down",
44249
44277
  color: "neutral",
44250
44278
  variant: "outline",
44251
44279
  "aria-label": "回到最新消息",
44252
44280
  class: "channel-latest-button",
44253
- onClick: En
44281
+ onClick: Dn
44254
44282
  })])) : Y("", !0),
44255
- K("div", oG, [K("div", {
44283
+ K("div", uG, [K("div", {
44256
44284
  class: "channel-composer-column",
44257
44285
  onDragover: t[23] ||= (...e) => I(a).drop_attachments && I(a).drop_attachments(...e),
44258
44286
  onDrop: t[24] ||= (...e) => I(a).drop_attachments && I(a).drop_attachments(...e),
44259
44287
  onPaste: t[25] ||= (...e) => I(a).paste_attachments && I(a).paste_attachments(...e),
44260
44288
  onKeydownCapture: t[26] ||= (e) => {
44261
- Gt(e), Gn(e);
44289
+ Gt(e), Kn(e);
44262
44290
  },
44263
44291
  onInput: Ut,
44264
44292
  onClick: Ut,
@@ -44321,7 +44349,7 @@ var hU = /*#__PURE__*/ XH({
44321
44349
  ])),
44322
44350
  K("span", null, P(Pt[e] ? `全体成员(${Ie.value.length} 位)` : I(a).display_name(e)), 1),
44323
44351
  K("small", null, "@" + P(e), 1)
44324
- ], 40, sG))), 128)), Bt.value.length ? Y("", !0) : (U(), W("p", cG, "没有匹配的成员"))], 512)]),
44352
+ ], 40, dG))), 128)), Bt.value.length ? Y("", !0) : (U(), W("p", fG, "没有匹配的成员"))], 512)]),
44325
44353
  _: 1
44326
44354
  }, 8, [
44327
44355
  "open",
@@ -44337,7 +44365,7 @@ var hU = /*#__PURE__*/ XH({
44337
44365
  "submit-on-enter": !0,
44338
44366
  autofocus: !1,
44339
44367
  rows: 1,
44340
- maxrows: OG,
44368
+ maxrows: MG,
44341
44369
  placeholder: `发消息到 # ${ye.value.title}`,
44342
44370
  "aria-label": "留言正文",
44343
44371
  role: "combobox",
@@ -44354,10 +44382,10 @@ var hU = /*#__PURE__*/ XH({
44354
44382
  base: "channel-editor",
44355
44383
  footer: "channel-composer-footer"
44356
44384
  },
44357
- onSubmit: Wn
44385
+ onSubmit: Gn
44358
44386
  }, {
44359
44387
  header: L(() => [
44360
- I(i).attachment_drafts.length ? (U(), W("div", lG, [(U(!0), W(H, null, B(I(i).attachment_drafts, (e) => (U(), W("div", {
44388
+ I(i).attachment_drafts.length ? (U(), W("div", pG, [(U(!0), W(H, null, B(I(i).attachment_drafts, (e) => (U(), W("div", {
44361
44389
  key: e.id,
44362
44390
  class: M(e.preview_url ? "attachment-draft-image" : "attachment-draft-file")
44363
44391
  }, [e.preview_url ? (U(), W("img", {
@@ -44365,49 +44393,49 @@ var hU = /*#__PURE__*/ XH({
44365
44393
  src: e.preview_url,
44366
44394
  alt: e.file_name,
44367
44395
  title: e.file_name
44368
- }, null, 8, uG)) : (U(), W(H, { key: 1 }, [K("span", { innerHTML: I(a).attachment_file_icon(e.file_name) }, null, 8, dG), K("span", fG, [K("span", { title: e.file_name }, P(e.file_name), 9, pG), K("small", null, P(I(a).attachment_size(e.size)), 1)])], 64)), K("button", {
44396
+ }, null, 8, mG)) : (U(), W(H, { key: 1 }, [K("span", { innerHTML: I(a).attachment_file_icon(e.file_name) }, null, 8, hG), K("span", gG, [K("span", { title: e.file_name }, P(e.file_name), 9, _G), K("small", null, P(I(a).attachment_size(e.size)), 1)])], 64)), K("button", {
44369
44397
  type: "button",
44370
44398
  class: "attachment-remove",
44371
44399
  "aria-label": `移除 ${e.file_name}`,
44372
44400
  disabled: I(i).sending_message,
44373
44401
  onClick: (t) => I(s)("remove_attachment", e.id)
44374
- }, [q(re, { name: "i-lucide-x" })], 8, mG)], 2))), 128))])) : Y("", !0),
44402
+ }, [q(re, { name: "i-lucide-x" })], 8, vG)], 2))), 128))])) : Y("", !0),
44375
44403
  I(i).composer_error || I(i).upload_status ? (U(), W("p", {
44376
44404
  key: 1,
44377
44405
  class: "attachment-status",
44378
44406
  role: I(i).composer_error ? "alert" : "status"
44379
- }, P(I(i).composer_error || I(i).upload_status), 9, hG)) : Y("", !0),
44380
- we.value ? (U(), W("div", gG, [
44407
+ }, P(I(i).composer_error || I(i).upload_status), 9, yG)) : Y("", !0),
44408
+ we.value ? (U(), W("div", bG, [
44381
44409
  q(re, { name: "i-lucide-user-round-x" }),
44382
44410
  K("span", null, P(I(a).display_name(we.value.name)) + " 待注册:在其会话中粘贴启动指令", 1),
44383
44411
  I(i).access?.can_manage ? (U(), G(o, {
44384
44412
  key: 0,
44385
- icon: In.value === we.value.name ? "i-lucide-check" : "i-lucide-copy",
44386
- label: In.value === we.value.name ? "已复制" : "复制启动指令",
44413
+ icon: Ln.value === we.value.name ? "i-lucide-check" : "i-lucide-copy",
44414
+ label: Ln.value === we.value.name ? "已复制" : "复制启动指令",
44387
44415
  "aria-live": "polite",
44388
44416
  size: "xs",
44389
44417
  color: "neutral",
44390
44418
  variant: "ghost",
44391
44419
  class: "channel-launch-copy",
44392
- onClick: t[14] ||= (e) => zn(we.value.name)
44420
+ onClick: t[14] ||= (e) => Bn(we.value.name)
44393
44421
  }, null, 8, ["icon", "label"])) : Y("", !0)
44394
44422
  ])) : Y("", !0),
44395
- Te.value ? (U(), W("div", _G, [
44423
+ Te.value ? (U(), W("div", xG, [
44396
44424
  q(re, { name: "i-lucide-clock" }),
44397
44425
  K("span", null, P(Te.value), 1),
44398
44426
  Se(Ce.value) && I(i).access?.can_manage ? (U(), G(o, {
44399
44427
  key: 0,
44400
- icon: In.value === Ce.value.name ? "i-lucide-check" : "i-lucide-copy",
44401
- label: In.value === Ce.value.name ? "已复制" : "复制启动指令",
44428
+ icon: Ln.value === Ce.value.name ? "i-lucide-check" : "i-lucide-copy",
44429
+ label: Ln.value === Ce.value.name ? "已复制" : "复制启动指令",
44402
44430
  "aria-live": "polite",
44403
44431
  size: "xs",
44404
44432
  color: "neutral",
44405
44433
  variant: "ghost",
44406
44434
  class: "channel-launch-copy",
44407
- onClick: t[15] ||= (e) => zn(Ce.value.name)
44435
+ onClick: t[15] ||= (e) => Bn(Ce.value.name)
44408
44436
  }, null, 8, ["icon", "label"])) : Y("", !0)
44409
44437
  ])) : Y("", !0),
44410
- I(i).reply_to || I(i).turn_reply_to ? (U(), W("div", vG, [
44438
+ I(i).reply_to || I(i).turn_reply_to ? (U(), W("div", SG, [
44411
44439
  q(re, { name: "i-lucide-corner-up-left" }),
44412
44440
  K("span", null, P(I(i).turn_reply_to ? `回答安排 #${I(i).turn_reply_to} · ${I(a).display_name(ye.value.host)} 代发` : `回复 #${I(i).reply_to}`), 1),
44413
44441
  q(o, {
@@ -44419,7 +44447,7 @@ var hU = /*#__PURE__*/ XH({
44419
44447
  onClick: t[16] ||= (e) => I(s)(I(i).turn_reply_to ? "cancel_answer" : "cancel_reply")
44420
44448
  }, null, 8, ["aria-label"])
44421
44449
  ])) : Y("", !0),
44422
- g.value ? (U(), W("div", yG, [q(le, {
44450
+ g.value ? (U(), W("div", CG, [q(le, {
44423
44451
  modelValue: I(m),
44424
44452
  "onUpdate:modelValue": t[17] ||= (e) => /* @__PURE__ */ ln(m) ? m.value = e : null,
44425
44453
  rows: 2,
@@ -44446,14 +44474,14 @@ var hU = /*#__PURE__*/ XH({
44446
44474
  disabled: I(i).sending_message,
44447
44475
  onClick: t[19] ||= (e) => I(s)("choose_attachments")
44448
44476
  }, null, 8, ["disabled"]),
44449
- Re.value.length ? (U(), W("div", xG, [t[38] ||= K("span", null, "代发", -1), (U(!0), W(H, null, B(Re.value, (e) => (U(), W("button", {
44477
+ Re.value.length ? (U(), W("div", TG, [t[38] ||= K("span", null, "代发", -1), (U(!0), W(H, null, B(Re.value, (e) => (U(), W("button", {
44450
44478
  key: e.id,
44451
44479
  type: "button",
44452
44480
  "aria-pressed": I(i).free_proxy === e.name,
44453
44481
  class: M({ "is-on": I(i).free_proxy === e.name }),
44454
44482
  onClick: (t) => I(s)("set_proxy", e.name)
44455
- }, P(I(a).display_name(e.name)), 11, SG))), 128))])) : Y("", !0),
44456
- Ee.value ? Y("", !0) : (U(), W("div", CG, [q(N, {
44483
+ }, P(I(a).display_name(e.name)), 11, EG))), 128))])) : Y("", !0),
44484
+ Ee.value ? Y("", !0) : (U(), W("div", DG, [q(N, {
44457
44485
  modelValue: I(f),
44458
44486
  "onUpdate:modelValue": t[20] ||= (e) => /* @__PURE__ */ ln(f) ? f.value = e : null,
44459
44487
  items: xt.value,
@@ -44508,7 +44536,7 @@ var hU = /*#__PURE__*/ XH({
44508
44536
  title: "发送 · Enter",
44509
44537
  disabled: !Fe.value,
44510
44538
  loading: I(c) === "send" || I(i).sending_message,
44511
- onClick: Wn
44539
+ onClick: Gn
44512
44540
  }, null, 8, ["disabled", "loading"])
44513
44541
  ]),
44514
44542
  default: L(() => [Ot.value ? (U(), W("div", {
@@ -44518,7 +44546,7 @@ var hU = /*#__PURE__*/ XH({
44518
44546
  class: "channel-editor channel-editor-mirror",
44519
44547
  "aria-hidden": "true",
44520
44548
  innerHTML: Ot.value
44521
- }, null, 8, bG)) : Y("", !0)]),
44549
+ }, null, 8, wG)) : Y("", !0)]),
44522
44550
  _: 1
44523
44551
  }, 8, [
44524
44552
  "modelValue",
@@ -44529,16 +44557,16 @@ var hU = /*#__PURE__*/ XH({
44529
44557
  "aria-activedescendant",
44530
44558
  "class"
44531
44559
  ]),
44532
- K("div", wG, [Ee.value ? (U(), W("span", TG, [
44560
+ K("div", OG, [Ee.value ? (U(), W("span", kG, [
44533
44561
  J(P(Pe.value), 1),
44534
44562
  t[39] ||= K("span", { class: "channel-note-divider" }, "·", -1),
44535
44563
  t[40] ||= J("手动成员需在原会话触发", -1)
44536
- ])) : (U(), W("span", EG, [
44564
+ ])) : (U(), W("span", AG, [
44537
44565
  J(P(Tt.value), 1),
44538
44566
  Be.value.length ? (U(), W(H, { key: 0 }, [t[41] ||= K("span", { class: "channel-note-divider" }, "·", -1), J("直接提问 " + P(Be.value.join("、")) + ",不计轮次", 1)], 64)) : Y("", !0),
44539
44567
  t[42] ||= K("span", { class: "channel-note-divider" }, "·", -1),
44540
44568
  t[43] ||= J("在线 AI 的观点需代发", -1)
44541
- ])), K("span", DG, [u.value ? (U(), W("span", {
44569
+ ])), K("span", jG, [u.value ? (U(), W("span", {
44542
44570
  key: 0,
44543
44571
  class: M({ "is-near-limit": d.value })
44544
44572
  }, [J(P(u.value) + " / " + P(I(a).max_message_length), 1), t[44] ||= K("span", { class: "channel-note-divider" }, "·", -1)], 2)) : Y("", !0), t[45] ||= K("span", { class: "channel-key-hint" }, [
@@ -44554,7 +44582,7 @@ var hU = /*#__PURE__*/ XH({
44554
44582
  ], 2);
44555
44583
  };
44556
44584
  }
44557
- }, [["__scopeId", "data-v-2db0c1cd"]]), dK = {
44585
+ }, [["__scopeId", "data-v-aa960fd1"]]), mK = {
44558
44586
  slots: {
44559
44587
  root: "relative inline-flex items-center",
44560
44588
  base: ["rounded-md", "transition-colors"],
@@ -44982,7 +45010,7 @@ var hU = /*#__PURE__*/ XH({
44982
45010
  color: "primary",
44983
45011
  variant: "outline"
44984
45012
  }
44985
- }, fK = /*@__PURE__*/ Object.assign({ inheritAttrs: !1 }, {
45013
+ }, hK = /*@__PURE__*/ Object.assign({ inheritAttrs: !1 }, {
44986
45014
  __name: "InputMenu",
44987
45015
  props: /*@__PURE__*/ Fa({
44988
45016
  as: {
@@ -45262,7 +45290,7 @@ var hU = /*#__PURE__*/ XH({
45262
45290
  required: !1
45263
45291
  }
45264
45292
  } }), _e = Z(() => oA({
45265
- extend: dK,
45293
+ extend: mK,
45266
45294
  ...l.ui?.inputMenu || {}
45267
45295
  })({
45268
45296
  color: le.value,
@@ -45756,16 +45784,16 @@ var hU = /*#__PURE__*/ XH({
45756
45784
  ])
45757
45785
  ], 64));
45758
45786
  }
45759
- }), pK = { class: "api-settings" }, mK = {
45787
+ }), gK = { class: "api-settings" }, _K = {
45760
45788
  class: "api-field",
45761
45789
  title: "Base URL"
45762
- }, hK = {
45790
+ }, vK = {
45763
45791
  class: "api-field",
45764
45792
  title: "OpenRouter 等兼容服务可选 Chat Completions,并填写该服务的完整模型 ID。"
45765
- }, gK = { class: "api-field" }, _K = { class: "api-field" }, vK = { class: "api-inline" }, yK = {
45793
+ }, yK = { class: "api-field" }, bK = { class: "api-field" }, xK = { class: "api-inline" }, SK = {
45766
45794
  key: 0,
45767
45795
  role: "alert"
45768
- }, bK = "••••••••••••", xK = /*#__PURE__*/ XH({
45796
+ }, CK = "••••••••••••", wK = /*#__PURE__*/ XH({
45769
45797
  __name: "ApiSettings",
45770
45798
  props: { name: {
45771
45799
  type: String,
@@ -45807,9 +45835,9 @@ var hU = /*#__PURE__*/ XH({
45807
45835
  }
45808
45836
  }
45809
45837
  return (t, n) => {
45810
- let u = YV, m = bH, h = MA, g = fK;
45811
- return U(), W("div", pK, [
45812
- K("label", mK, [n[6] ||= K("span", null, "地址", -1), q(u, {
45838
+ let u = YV, m = bH, h = MA, g = hK;
45839
+ return U(), W("div", gK, [
45840
+ K("label", _K, [n[6] ||= K("span", null, "地址", -1), q(u, {
45813
45841
  "model-value": i.value.base_url || "",
45814
45842
  "aria-label": `${e.name} Base URL`,
45815
45843
  placeholder: "Base URL",
@@ -45817,7 +45845,7 @@ var hU = /*#__PURE__*/ XH({
45817
45845
  size: "xs",
45818
45846
  "onUpdate:modelValue": n[0] ||= (e) => f("base_url", e)
45819
45847
  }, null, 8, ["model-value", "aria-label"])]),
45820
- K("div", hK, [n[7] ||= K("span", null, "协议", -1), q(m, {
45848
+ K("div", vK, [n[7] ||= K("span", null, "协议", -1), q(m, {
45821
45849
  "model-value": i.value.api_protocol || "",
45822
45850
  items: d,
45823
45851
  "aria-label": `${e.name} API 请求协议`,
@@ -45825,7 +45853,7 @@ var hU = /*#__PURE__*/ XH({
45825
45853
  size: "xs",
45826
45854
  "onUpdate:modelValue": n[1] ||= (e) => f("api_protocol", e)
45827
45855
  }, null, 8, ["model-value", "aria-label"])]),
45828
- K("div", gK, [n[8] ||= K("span", null, "密钥", -1), q(u, {
45856
+ K("div", yK, [n[8] ||= K("span", null, "密钥", -1), q(u, {
45829
45857
  modelValue: o.value,
45830
45858
  "onUpdate:modelValue": n[3] ||= (e) => o.value = e,
45831
45859
  type: "text",
@@ -45833,7 +45861,7 @@ var hU = /*#__PURE__*/ XH({
45833
45861
  spellcheck: "false",
45834
45862
  "data-1p-ignore": "",
45835
45863
  "data-lpignore": "true",
45836
- placeholder: i.value.api_key_ref ? bK : "填写 API Key",
45864
+ placeholder: i.value.api_key_ref ? CK : "填写 API Key",
45837
45865
  title: i.value.api_key_ref && !o.value ? "已保存;本机不回传密钥,输入新 Key 可更换" : void 0,
45838
45866
  "aria-label": `${e.name} API Key`,
45839
45867
  size: "xs",
@@ -45869,7 +45897,7 @@ var hU = /*#__PURE__*/ XH({
45869
45897
  "loading",
45870
45898
  "ui"
45871
45899
  ])]),
45872
- K("div", _K, [n[9] ||= K("span", null, "模型", -1), K("div", vK, [q(g, {
45900
+ K("div", bK, [n[9] ||= K("span", null, "模型", -1), K("div", xK, [q(g, {
45873
45901
  mode: "autocomplete",
45874
45902
  "ignore-filter": "",
45875
45903
  "model-value": i.value.model || "",
@@ -45899,30 +45927,30 @@ var hU = /*#__PURE__*/ XH({
45899
45927
  "loading",
45900
45928
  "disabled"
45901
45929
  ])])]),
45902
- l.value || a.value.error ? (U(), W("p", yK, P(l.value || a.value.error), 1)) : Y("", !0)
45930
+ l.value || a.value.error ? (U(), W("p", SK, P(l.value || a.value.error), 1)) : Y("", !0)
45903
45931
  ]);
45904
45932
  };
45905
45933
  }
45906
- }, [["__scopeId", "data-v-9bf1d860"]]), SK = {
45934
+ }, [["__scopeId", "data-v-9bf1d860"]]), TK = {
45907
45935
  key: 0,
45908
45936
  class: "project-field"
45909
- }, CK = ["disabled"], wK = {
45937
+ }, EK = ["disabled"], DK = {
45910
45938
  key: 0,
45911
45939
  class: "project-note"
45912
- }, TK = ["title"], EK = { class: "project-box-actions" }, DK = {
45940
+ }, OK = ["title"], kK = { class: "project-box-actions" }, AK = {
45913
45941
  key: 0,
45914
45942
  class: "project-rows",
45915
45943
  "aria-label": "常用项目"
45916
- }, OK = { class: "project-tile" }, kK = { class: "project-edit" }, AK = { class: "project-text" }, jK = ["title"], MK = { class: "project-actions" }, NK = {
45944
+ }, jK = { class: "project-tile" }, MK = { class: "project-edit" }, NK = { class: "project-text" }, PK = ["title"], FK = { class: "project-actions" }, IK = {
45917
45945
  key: 1,
45918
45946
  class: "project-add",
45919
45947
  role: "group",
45920
45948
  "aria-label": "添加项目"
45921
- }, PK = { class: "project-add-actions" }, FK = {
45949
+ }, LK = { class: "project-add-actions" }, RK = {
45922
45950
  key: 3,
45923
45951
  role: "alert",
45924
45952
  class: "project-error"
45925
- }, IK = { class: "project-footer" }, LK = /*#__PURE__*/ XH({
45953
+ }, zK = { class: "project-footer" }, BK = /*#__PURE__*/ XH({
45926
45954
  __name: "ProjectDirectoryField",
45927
45955
  props: {
45928
45956
  placeholder: {
@@ -46015,7 +46043,7 @@ var hU = /*#__PURE__*/ XH({
46015
46043
  }
46016
46044
  return (e, n) => {
46017
46045
  let r = sA, i = CH, u = YV, f = MA, ne = zV, re = YH;
46018
- return U(), W(H, null, [a.value ? (U(), W("div", SK, [q(i, {
46046
+ return U(), W(H, null, [a.value ? (U(), W("div", TK, [q(i, {
46019
46047
  items: h.value,
46020
46048
  content: {
46021
46049
  align: "start",
@@ -46038,9 +46066,9 @@ var hU = /*#__PURE__*/ XH({
46038
46066
  name: "i-lucide-chevron-down",
46039
46067
  class: "project-select-chevron"
46040
46068
  })
46041
- ], 10, CK)]),
46069
+ ], 10, EK)]),
46042
46070
  _: 1
46043
- }, 8, ["items", "disabled"]), a.value.online ? Y("", !0) : (U(), W("p", wK, [q(r, { name: "i-lucide-moon" }), J("电脑「" + P(a.value.name) + "」当前离线,创建请求会等它上线后执行。", 1)]))])) : (U(), W("div", {
46071
+ }, 8, ["items", "disabled"]), a.value.online ? Y("", !0) : (U(), W("p", DK, [q(r, { name: "i-lucide-moon" }), J("电脑「" + P(a.value.name) + "」当前离线,创建请求会等它上线后执行。", 1)]))])) : (U(), W("div", {
46044
46072
  key: 1,
46045
46073
  class: M(["project-box", {
46046
46074
  "is-disabled": t.disabled,
@@ -46051,7 +46079,7 @@ var hU = /*#__PURE__*/ XH({
46051
46079
  key: 0,
46052
46080
  class: "project-chip",
46053
46081
  title: l.value.path
46054
- }, [q(r, { name: "i-lucide-folder" }), J(P(l.value.name), 1)], 8, TK)) : Y("", !0),
46082
+ }, [q(r, { name: "i-lucide-folder" }), J(P(l.value.name), 1)], 8, OK)) : Y("", !0),
46055
46083
  q(u, {
46056
46084
  "model-value": c.value,
46057
46085
  placeholder: t.placeholder,
@@ -46065,7 +46093,7 @@ var hU = /*#__PURE__*/ XH({
46065
46093
  "placeholder",
46066
46094
  "disabled"
46067
46095
  ]),
46068
- K("div", EK, [o.value.length ? (U(), G(i, {
46096
+ K("div", kK, [o.value.length ? (U(), G(i, {
46069
46097
  key: 0,
46070
46098
  items: h.value,
46071
46099
  content: {
@@ -46130,10 +46158,10 @@ var hU = /*#__PURE__*/ XH({
46130
46158
  class: "project-manager dialog-form",
46131
46159
  onSubmit: uu(te, ["prevent"])
46132
46160
  }, [
46133
- _.value.length ? (U(), W("ul", DK, [(U(!0), W(H, null, B(_.value, (e, t) => (U(), W("li", {
46161
+ _.value.length ? (U(), W("ul", AK, [(U(!0), W(H, null, B(_.value, (e, t) => (U(), W("li", {
46134
46162
  key: t,
46135
46163
  class: M(["project-row", { "is-editing": v.value === t }])
46136
- }, [K("span", OK, [q(r, { name: "i-lucide-folder" })]), v.value === t ? (U(), W(H, { key: 0 }, [K("div", kK, [q(u, {
46164
+ }, [K("span", jK, [q(r, { name: "i-lucide-folder" })]), v.value === t ? (U(), W(H, { key: 0 }, [K("div", MK, [q(u, {
46137
46165
  modelValue: e.name,
46138
46166
  "onUpdate:modelValue": (t) => e.name = t,
46139
46167
  placeholder: "项目名称",
@@ -46168,7 +46196,7 @@ var hU = /*#__PURE__*/ XH({
46168
46196
  "aria-label": "完成编辑",
46169
46197
  disabled: !O(e),
46170
46198
  onClick: n[0] ||= (e) => v.value = -1
46171
- }, null, 8, ["disabled"])], 64)) : (U(), W(H, { key: 1 }, [K("div", AK, [K("strong", null, P(e.name), 1), K("small", { title: e.path }, P(e.path), 9, jK)]), K("div", MK, [q(f, {
46199
+ }, null, 8, ["disabled"])], 64)) : (U(), W(H, { key: 1 }, [K("div", NK, [K("strong", null, P(e.name), 1), K("small", { title: e.path }, P(e.path), 9, PK)]), K("div", FK, [q(f, {
46172
46200
  icon: "i-lucide-pencil",
46173
46201
  color: "neutral",
46174
46202
  variant: "ghost",
@@ -46185,7 +46213,7 @@ var hU = /*#__PURE__*/ XH({
46185
46213
  "aria-label": `移除 ${e.name}`,
46186
46214
  onClick: (e) => k(t)
46187
46215
  }, null, 8, ["aria-label", "onClick"])])], 64))], 2))), 128))])) : Y("", !0),
46188
- y.value ? (U(), W("div", NK, [
46216
+ y.value ? (U(), W("div", IK, [
46189
46217
  q(ne, {
46190
46218
  label: "文件夹",
46191
46219
  description: s.value ? "" : "运行 codiscuss 的电脑上的完整路径"
@@ -46225,7 +46253,7 @@ var hU = /*#__PURE__*/ XH({
46225
46253
  }, null, 8, ["modelValue", "onKeydown"])]),
46226
46254
  _: 1
46227
46255
  }),
46228
- K("div", PK, [_.value.length ? (U(), G(f, {
46256
+ K("div", LK, [_.value.length ? (U(), G(f, {
46229
46257
  key: 0,
46230
46258
  label: "取消",
46231
46259
  color: "neutral",
@@ -46247,8 +46275,8 @@ var hU = /*#__PURE__*/ XH({
46247
46275
  class: "project-add-trigger",
46248
46276
  onClick: T
46249
46277
  }, [q(r, { name: "i-lucide-plus" }), n[9] ||= J("添加项目", -1)])),
46250
- S.value ? (U(), W("p", FK, [q(r, { name: "i-lucide-circle-alert" }), J(P(S.value), 1)])) : Y("", !0),
46251
- K("div", IK, [q(f, {
46278
+ S.value ? (U(), W("p", RK, [q(r, { name: "i-lucide-circle-alert" }), J(P(S.value), 1)])) : Y("", !0),
46279
+ K("div", zK, [q(f, {
46252
46280
  label: "取消",
46253
46281
  color: "neutral",
46254
46282
  variant: "ghost",
@@ -46264,22 +46292,22 @@ var hU = /*#__PURE__*/ XH({
46264
46292
  }, 8, ["open"])], 64);
46265
46293
  };
46266
46294
  }
46267
- }, [["__scopeId", "data-v-db76a0df"]]), RK = {
46295
+ }, [["__scopeId", "data-v-db76a0df"]]), VK = {
46268
46296
  class: "launch-settings",
46269
46297
  "aria-label": "启动配置"
46270
- }, zK = { class: "launch-connect-command" }, BK = {
46298
+ }, HK = { class: "launch-connect-command" }, UK = {
46271
46299
  key: 0,
46272
46300
  role: "alert",
46273
46301
  class: "fine-print"
46274
- }, VK = { class: "launch-effective" }, HK = { class: "launch-client-fields" }, UK = ["onClick"], WK = { key: 7 }, GK = { class: "launch-client-fields" }, KK = { class: "form-two-columns" }, qK = {
46302
+ }, WK = { class: "launch-effective" }, GK = { class: "launch-client-fields" }, KK = ["onClick"], qK = { key: 7 }, JK = { class: "launch-client-fields" }, YK = { class: "form-two-columns" }, XK = {
46275
46303
  key: 0,
46276
46304
  role: "alert",
46277
46305
  class: "fine-print"
46278
- }, JK = {
46306
+ }, ZK = {
46279
46307
  key: 1,
46280
46308
  role: "status",
46281
46309
  class: "fine-print"
46282
- }, YK = /*#__PURE__*/ XH({
46310
+ }, QK = /*#__PURE__*/ XH({
46283
46311
  __name: "LaunchSettings",
46284
46312
  props: {
46285
46313
  participants: {
@@ -46320,7 +46348,7 @@ var hU = /*#__PURE__*/ XH({
46320
46348
  e && t && o.value.forEach((e) => r.load_launch_models(e));
46321
46349
  }, { immediate: !0 }), (e, m) => {
46322
46350
  let h = MA, g = bH, _ = zV, v = YV, y = HV;
46323
- return U(), W("section", RK, [I(n).launch.available ? (U(), W(H, { key: 1 }, [
46351
+ return U(), W("section", VK, [I(n).launch.available ? (U(), W(H, { key: 1 }, [
46324
46352
  m[9] ||= K("h3", null, "启动配置", -1),
46325
46353
  m[10] ||= K("p", { class: "fine-print" }, "接入配置可保存供后续讨论复用。API 不需要安装 AI 软件;App 需要保持运行;CLI 按需启动。", -1),
46326
46354
  (U(!0), W(H, null, B(o.value, (e) => (U(), W("details", {
@@ -46329,12 +46357,12 @@ var hU = /*#__PURE__*/ XH({
46329
46357
  class: "launch-client"
46330
46358
  }, [
46331
46359
  K("summary", null, P(e) + " · " + P(I(r).launch_summary(e).client) + " · " + P(I(r).launch_summary(e).session), 1),
46332
- K("p", VK, [
46360
+ K("p", WK, [
46333
46361
  J("工作目录:" + P(I(r).launch_summary(e).cwd) + "(" + P(I(r).launch_summary(e).access) + ")", 1),
46334
46362
  m[7] ||= K("br", null, null, -1),
46335
46363
  J("项目:" + P(I(r).launch_summary(e).project), 1)
46336
46364
  ]),
46337
- K("div", HK, [
46365
+ K("div", GK, [
46338
46366
  q(_, { label: `${e} 执行客户端` }, {
46339
46367
  default: L(() => [q(g, {
46340
46368
  "model-value": s(e).adapter || "",
@@ -46377,7 +46405,7 @@ var hU = /*#__PURE__*/ XH({
46377
46405
  ])]),
46378
46406
  _: 2
46379
46407
  }, 1024)),
46380
- s(e).adapter === "api" ? (U(), G(xK, {
46408
+ s(e).adapter === "api" ? (U(), G(wK, {
46381
46409
  key: 2,
46382
46410
  name: e
46383
46411
  }, null, 8, ["name"])) : t.modelSelection && f(e).supported ? (U(), G(_, {
@@ -46401,7 +46429,7 @@ var hU = /*#__PURE__*/ XH({
46401
46429
  type: "button",
46402
46430
  class: "model-retry",
46403
46431
  onClick: (t) => I(r).load_launch_models(e, !0)
46404
- }, "重新读取模型列表", 8, UK)) : Y("", !0)]),
46432
+ }, "重新读取模型列表", 8, KK)) : Y("", !0)]),
46405
46433
  _: 2
46406
46434
  }, 1032, ["help"])) : Y("", !0),
46407
46435
  t.modelSelection && f(e).efforts?.length ? (U(), G(_, {
@@ -46445,7 +46473,7 @@ var hU = /*#__PURE__*/ XH({
46445
46473
  }, null, 8, ["model-value", "onUpdate:modelValue"])]),
46446
46474
  _: 2
46447
46475
  }, 1024)) : Y("", !0),
46448
- s(e).adapter === "api" ? Y("", !0) : (U(), W("details", WK, [m[8] ||= K("summary", null, "会话与目录覆盖(可选)", -1), K("div", GK, [
46476
+ s(e).adapter === "api" ? Y("", !0) : (U(), W("details", qK, [m[8] ||= K("summary", null, "会话与目录覆盖(可选)", -1), K("div", JK, [
46449
46477
  q(_, { label: "复用会话 ID(仅本次)" }, {
46450
46478
  default: L(() => [q(v, {
46451
46479
  "model-value": s(e).session_id || "",
@@ -46504,13 +46532,13 @@ var hU = /*#__PURE__*/ XH({
46504
46532
  ])]))
46505
46533
  ])
46506
46534
  ]))), 128)),
46507
- K("div", KK, [
46535
+ K("div", YK, [
46508
46536
  t.workspace ? (U(), G(_, {
46509
46537
  key: 0,
46510
46538
  label: "本次工作目录(可选)",
46511
46539
  help: "要一起查看的项目目录;留空时 AI 只在讨论私有目录工作"
46512
46540
  }, {
46513
- default: L(() => [q(LK, { placeholder: "已有目录的完整路径" })]),
46541
+ default: L(() => [q(BK, { placeholder: "已有目录的完整路径" })]),
46514
46542
  _: 1
46515
46543
  })) : Y("", !0),
46516
46544
  q(_, { label: "本次 AI 项目(可选)" }, {
@@ -46543,11 +46571,11 @@ var hU = /*#__PURE__*/ XH({
46543
46571
  loading: I(a) === "save_launch_defaults",
46544
46572
  onClick: m[4] ||= (e) => I(i)("save_launch_defaults")
46545
46573
  }, null, 8, ["loading"]),
46546
- I(n).launch.error ? (U(), W("p", qK, P(I(n).launch.error), 1)) : I(n).launch.notice ? (U(), W("p", JK, P(I(n).launch.notice), 1)) : Y("", !0)
46574
+ I(n).launch.error ? (U(), W("p", XK, P(I(n).launch.error), 1)) : I(n).launch.notice ? (U(), W("p", ZK, P(I(n).launch.notice), 1)) : Y("", !0)
46547
46575
  ], 64)) : (U(), W(H, { key: 0 }, [
46548
46576
  m[5] ||= K("h3", null, "连接这台电脑", -1),
46549
46577
  m[6] ||= K("p", { class: "fine-print" }, "先安装并配置 codiscuss,在运行 AI 的这台电脑上执行以下命令,使用命令打开的网页完成连接。浏览器询问时允许访问本机网络。", -1),
46550
- K("div", zK, [K("code", null, P(I(n).launch.connect_command), 1), q(h, {
46578
+ K("div", HK, [K("code", null, P(I(n).launch.connect_command), 1), q(h, {
46551
46579
  icon: "i-lucide-copy",
46552
46580
  "aria-label": "复制本机连接命令",
46553
46581
  variant: "ghost",
@@ -46561,93 +46589,93 @@ var hU = /*#__PURE__*/ XH({
46561
46589
  loading: I(a) === "retry_launch_connection",
46562
46590
  onClick: m[1] ||= (e) => I(i)("retry_launch_connection")
46563
46591
  }, null, 8, ["loading"]),
46564
- I(n).launch.error ? (U(), W("p", BK, P(I(n).launch.error), 1)) : Y("", !0)
46592
+ I(n).launch.error ? (U(), W("p", UK, P(I(n).launch.error), 1)) : Y("", !0)
46565
46593
  ], 64))]);
46566
46594
  };
46567
46595
  }
46568
- }, [["__scopeId", "data-v-ac191f08"]]), XK = { class: "page-heading" }, ZK = { class: "topic-brief" }, QK = { class: "host-status" }, $K = {
46596
+ }, [["__scopeId", "data-v-ac191f08"]]), $K = { class: "page-heading" }, eq = { class: "topic-brief" }, tq = { class: "host-status" }, nq = {
46569
46597
  key: 0,
46570
46598
  class: "turn-panel"
46571
- }, eq = { class: "turn-header" }, tq = { class: "turn-panel host-turn" }, nq = { class: "turn-header" }, rq = { class: "turn-expert" }, iq = { class: "turn-question" }, aq = {
46599
+ }, rq = { class: "turn-header" }, iq = { class: "turn-panel host-turn" }, aq = { class: "turn-header" }, oq = { class: "turn-expert" }, sq = { class: "turn-question" }, cq = {
46572
46600
  key: 0,
46573
46601
  class: "button-row turn-actions"
46574
- }, oq = {
46602
+ }, lq = {
46575
46603
  key: 1,
46576
46604
  class: "turn-empty"
46577
- }, sq = {
46605
+ }, uq = {
46578
46606
  key: 2,
46579
46607
  class: "fine-print"
46580
- }, cq = { class: "form-footer" }, lq = ["href"], uq = {
46608
+ }, dq = { class: "form-footer" }, fq = ["href"], pq = {
46581
46609
  key: 0,
46582
46610
  class: "fine-print host-schedule-hint"
46583
- }, dq = { class: "page-heading access-heading" }, fq = {
46611
+ }, mq = { class: "page-heading access-heading" }, hq = {
46584
46612
  key: 0,
46585
46613
  class: "access-evidence",
46586
46614
  "aria-label": "实际执行进展",
46587
46615
  role: "status"
46588
- }, pq = {
46616
+ }, gq = {
46589
46617
  key: 0,
46590
46618
  class: "fine-print"
46591
- }, mq = {
46619
+ }, _q = {
46592
46620
  key: 1,
46593
46621
  class: "access-setup",
46594
46622
  "aria-label": "网页启动入口"
46595
- }, hq = {
46623
+ }, vq = {
46596
46624
  key: 1,
46597
46625
  class: "access-repair"
46598
- }, gq = { class: "access-repair-heading" }, _q = {
46626
+ }, yq = { class: "access-repair-heading" }, bq = {
46599
46627
  key: 0,
46600
46628
  class: "access-repair-fields"
46601
- }, vq = {
46629
+ }, xq = {
46602
46630
  key: 0,
46603
46631
  role: "status",
46604
46632
  class: "fine-print"
46605
- }, yq = {
46633
+ }, Sq = {
46606
46634
  key: 1,
46607
46635
  role: "alert",
46608
46636
  class: "fine-print"
46609
- }, bq = {
46637
+ }, Cq = {
46610
46638
  key: 2,
46611
46639
  class: "fine-print"
46612
- }, xq = {
46640
+ }, wq = {
46613
46641
  key: 3,
46614
46642
  class: "fine-print"
46615
- }, Sq = {
46643
+ }, Tq = {
46616
46644
  key: 4,
46617
46645
  class: "fine-print"
46618
- }, Cq = {
46646
+ }, Eq = {
46619
46647
  key: 2,
46620
46648
  class: "access-setup",
46621
46649
  "aria-label": "全自动接入步骤"
46622
- }, wq = { class: "access-section-title" }, Tq = {
46650
+ }, Dq = { class: "access-section-title" }, Oq = {
46623
46651
  href: "https://github.com/huyan1458/ai_co_discuss/blob/main/docs/runner.md#常驻讨论服务",
46624
46652
  target: "_blank",
46625
46653
  rel: "noopener",
46626
46654
  class: "subtle-link"
46627
- }, Eq = { class: "access-steps" }, Dq = { class: "access-command" }, Oq = { class: "access-command" }, kq = {
46655
+ }, kq = { class: "access-steps" }, Aq = { class: "access-command" }, jq = { class: "access-command" }, Mq = {
46628
46656
  key: 3,
46629
46657
  class: "access-disclosure access-workspace"
46630
- }, Aq = { class: "access-disclosure-body" }, jq = { class: "form-two-columns" }, Mq = ["open"], Nq = { class: "access-disclosure-body" }, Pq = {
46658
+ }, Nq = { class: "access-disclosure-body" }, Pq = { class: "form-two-columns" }, Fq = ["open"], Iq = { class: "access-disclosure-body" }, Lq = {
46631
46659
  key: 0,
46632
46660
  class: "fine-print"
46633
- }, Fq = {
46661
+ }, Rq = {
46634
46662
  class: "access-member-list",
46635
46663
  "aria-label": "成员接入"
46636
- }, Iq = { class: "access-member-copy" }, Lq = { key: 1 }, Rq = { class: "button-row" }, zq = {
46664
+ }, zq = { class: "access-member-copy" }, Bq = { key: 1 }, Vq = { class: "button-row" }, Hq = {
46637
46665
  key: 1,
46638
46666
  role: "alert",
46639
46667
  class: "access-member-error"
46640
- }, Bq = {
46668
+ }, Uq = {
46641
46669
  key: 2,
46642
46670
  role: "status",
46643
46671
  class: "fine-print"
46644
- }, Vq = { class: "access-reading" }, Hq = { class: "access-address" }, Uq = {
46672
+ }, Wq = { class: "access-reading" }, Gq = { class: "access-address" }, Kq = {
46645
46673
  key: 3,
46646
46674
  class: "fine-print"
46647
- }, Wq = {
46675
+ }, qq = {
46648
46676
  key: 4,
46649
46677
  class: "access-disclosure access-limits"
46650
- }, Gq = { class: "access-limit-summary" }, Kq = { class: "access-disclosure-body" }, qq = { class: "button-row" }, Jq = /*#__PURE__*/ XH({
46678
+ }, Jq = { class: "access-limit-summary" }, Yq = { class: "access-disclosure-body" }, Xq = { class: "button-row" }, Zq = /*#__PURE__*/ XH({
46651
46679
  __name: "TopicPanel",
46652
46680
  emits: ["open", "detail"],
46653
46681
  setup(e) {
@@ -46699,7 +46727,7 @@ var hU = /*#__PURE__*/ XH({
46699
46727
  transition: { duration: .16 }
46700
46728
  }, {
46701
46729
  default: L(() => [I(t).tab === "topic" ? (U(), W(H, { key: 0 }, [
46702
- K("div", XK, [K("div", null, [
46730
+ K("div", $K, [K("div", null, [
46703
46731
  C[19] ||= K("span", { class: "eyebrow" }, "讨论进程", -1),
46704
46732
  C[20] ||= K("h2", null, "主持与安排", -1),
46705
46733
  K("p", null, "当前由 " + P(I(n).display_name(o.value.host)) + " 主持,围绕具体问题组织下一轮发言。", 1)
@@ -46711,9 +46739,9 @@ var hU = /*#__PURE__*/ XH({
46711
46739
  class: "channel-surface-button",
46712
46740
  onClick: C[0] ||= (t) => e.$emit("open", "edit")
46713
46741
  })]),
46714
- K("div", ZK, [K("div", null, [C[21] ||= K("h3", null, "讨论目标", -1), K("p", null, P(o.value.goal || "待主持人根据用户原文补全"), 1)]), K("div", null, [C[22] ||= K("h3", null, "当前焦点", -1), K("p", null, P(o.value.focus || "尚未设置当前焦点"), 1)])]),
46715
- K("div", QK, [o.value.limits ? (U(), W("section", $K, [
46716
- K("div", eq, [C[23] ||= K("h3", null, "讨论上限与进度", -1), q(T, {
46742
+ K("div", eq, [K("div", null, [C[21] ||= K("h3", null, "讨论目标", -1), K("p", null, P(o.value.goal || "待主持人根据用户原文补全"), 1)]), K("div", null, [C[22] ||= K("h3", null, "当前焦点", -1), K("p", null, P(o.value.focus || "尚未设置当前焦点"), 1)])]),
46743
+ K("div", tq, [o.value.limits ? (U(), W("section", nq, [
46744
+ K("div", rq, [C[23] ||= K("h3", null, "讨论上限与进度", -1), q(T, {
46717
46745
  color: o.value.limits.reached && o.value.phase !== "concluded" ? "warning" : "neutral",
46718
46746
  variant: "subtle"
46719
46747
  }, {
@@ -46731,8 +46759,8 @@ var hU = /*#__PURE__*/ XH({
46731
46759
  }, null, 8, ["loading"])) : Y("", !0),
46732
46760
  C[24] ||= K("p", { class: "fine-print" }, "在“编辑议题”中调整参数。自动模式由接入程序检查;手动模式由主持人或此按钮执行到限处理。", -1)
46733
46761
  ])) : Y("", !0)]),
46734
- K("section", tq, [
46735
- K("div", nq, [C[25] ||= K("h3", null, "当前发言安排", -1), q(T, {
46762
+ K("section", iq, [
46763
+ K("div", aq, [C[25] ||= K("h3", null, "当前发言安排", -1), q(T, {
46736
46764
  color: c.value ? "primary" : "neutral",
46737
46765
  variant: "subtle"
46738
46766
  }, {
@@ -46740,7 +46768,7 @@ var hU = /*#__PURE__*/ XH({
46740
46768
  _: 1
46741
46769
  }, 8, ["color"])]),
46742
46770
  s.value ? (U(), W(H, { key: 0 }, [
46743
- K("div", rq, [q(E, {
46771
+ K("div", oq, [q(E, {
46744
46772
  src: I(n).identities[s.value.expert]?.icon,
46745
46773
  text: I(n).identities[s.value.expert]?.initials,
46746
46774
  alt: s.value.expert,
@@ -46751,8 +46779,8 @@ var hU = /*#__PURE__*/ XH({
46751
46779
  "alt",
46752
46780
  "class"
46753
46781
  ]), K("div", null, [K("strong", null, P(s.value.expert), 1), K("small", null, "发言安排 #" + P(s.value.id), 1)])]),
46754
- K("p", iq, P(s.value.question), 1),
46755
- c.value ? (U(), W("div", aq, [
46782
+ K("p", sq, P(s.value.question), 1),
46783
+ c.value ? (U(), W("div", cq, [
46756
46784
  q(w, {
46757
46785
  icon: "i-lucide-copy",
46758
46786
  label: "复制通知",
@@ -46796,24 +46824,24 @@ var hU = /*#__PURE__*/ XH({
46796
46824
  class: "channel-surface-button",
46797
46825
  onClick: C[6] ||= (t) => e.$emit("detail", s.value.answer_id)
46798
46826
  })) : Y("", !0)
46799
- ], 64)) : (U(), W("p", oq, "把下一轮需要回答的问题,交给一位参与者。")),
46800
- c.value ? (U(), W("p", sq, P(I(n).turn_guidance(s.value, o.value)), 1)) : Y("", !0)
46827
+ ], 64)) : (U(), W("p", lq, "把下一轮需要回答的问题,交给一位参与者。")),
46828
+ c.value ? (U(), W("p", uq, P(I(n).turn_guidance(s.value, o.value)), 1)) : Y("", !0)
46801
46829
  ]),
46802
- K("div", cq, [K("a", {
46830
+ K("div", dq, [K("a", {
46803
46831
  href: `${d.value}/turns`,
46804
46832
  target: "_blank",
46805
46833
  rel: "noopener",
46806
46834
  class: "subtle-link"
46807
- }, [C[26] ||= J("发言安排历史 ", -1), q(D, { name: "i-lucide-arrow-up-right" })], 8, lq), q(w, {
46835
+ }, [C[26] ||= J("发言安排历史 ", -1), q(D, { name: "i-lucide-arrow-up-right" })], 8, fq), q(w, {
46808
46836
  icon: "i-lucide-plus",
46809
46837
  label: "安排下一位专家",
46810
46838
  class: "channel-primary-button",
46811
46839
  disabled: !u.value,
46812
46840
  onClick: C[7] ||= (t) => e.$emit("open", "schedule")
46813
46841
  }, null, 8, ["disabled"])]),
46814
- u.value ? Y("", !0) : (U(), W("p", uq, P(l.value ? "话题已暂停或收束,修改阶段后可以继续安排。" : c.value ? "先完成或取消当前安排,再安排下一位。" : o.value.limits?.reached ? "已达到讨论上限,请检查到限处理;需要继续时先暂停并调整参数。" : "请先在议题资料中配置参与专家。"), 1))
46842
+ u.value ? Y("", !0) : (U(), W("p", pq, P(l.value ? "话题已暂停或收束,修改阶段后可以继续安排。" : c.value ? "先完成或取消当前安排,再安排下一位。" : o.value.limits?.reached ? "已达到讨论上限,请检查到限处理;需要继续时先暂停并调整参数。" : "请先在议题资料中配置参与专家。"), 1))
46815
46843
  ], 64)) : (U(), W(H, { key: 1 }, [
46816
- K("div", dq, [C[27] ||= K("div", null, [K("h2", null, "接入 AI"), K("p", null, "讨论由本机服务唤醒 AI:在这里启动、修正软件连接或查看参与说明;成员进出在进度看板操作。")], -1), f.value ? (U(), G(T, {
46844
+ K("div", mq, [C[27] ||= K("div", null, [K("h2", null, "接入 AI"), K("p", null, "讨论由本机服务唤醒 AI:在这里启动、修正软件连接或查看参与说明;成员进出在进度看板操作。")], -1), f.value ? (U(), G(T, {
46817
46845
  key: 0,
46818
46846
  color: o.value.runtime?.status === "running" ? "primary" : "neutral",
46819
46847
  variant: "subtle"
@@ -46821,21 +46849,21 @@ var hU = /*#__PURE__*/ XH({
46821
46849
  default: L(() => [J(P(g.value), 1)]),
46822
46850
  _: 1
46823
46851
  }, 8, ["color"])) : Y("", !0)]),
46824
- f.value ? (U(), W("section", fq, [
46852
+ f.value ? (U(), W("section", hq, [
46825
46853
  C[28] ||= K("strong", null, "实际执行进展", -1),
46826
46854
  K("p", null, P(I(n).execution_label(m.value)), 1),
46827
- o.value.runtime?.status === "running" && (!m.value || ["pending", "dispatched"].includes(m.value.status)) ? (U(), W("p", pq, "尚无 AI 进入记录。请核对本机服务及对应软件的登录和工具权限。")) : Y("", !0)
46855
+ o.value.runtime?.status === "running" && (!m.value || ["pending", "dispatched"].includes(m.value.status)) ? (U(), W("p", gq, "尚无 AI 进入记录。请核对本机服务及对应软件的登录和工具权限。")) : Y("", !0)
46828
46856
  ])) : Y("", !0),
46829
- f.value && I(t).launch.available ? (U(), W("section", mq, [
46857
+ f.value && I(t).launch.available ? (U(), W("section", _q, [
46830
46858
  C[31] ||= K("div", { class: "access-section-title" }, [K("h3", null, "从网页启动"), K("span", { class: "fine-print" }, "本机执行")], -1),
46831
- o.value.runtime?.status === "ready" ? (U(), W(H, { key: 0 }, [q(YK, { participants: v.value }, null, 8, ["participants"]), q(w, {
46859
+ o.value.runtime?.status === "ready" ? (U(), W(H, { key: 0 }, [q(QK, { participants: v.value }, null, 8, ["participants"]), q(w, {
46832
46860
  label: "启动讨论",
46833
46861
  icon: "i-lucide-play",
46834
46862
  class: "channel-primary-button",
46835
46863
  loading: I(i) === "launch_current_room",
46836
46864
  onClick: C[8] ||= (e) => I(r)("launch_current_room")
46837
- }, null, 8, ["loading"])], 64)) : o.value.runtime?.status === "paused" && !o.value.archived && !I(t).launch.remote ? (U(), W("div", hq, [
46838
- K("div", gq, [C[29] ||= K("h3", null, "修正本场软件连接", -1), q(w, {
46865
+ }, null, 8, ["loading"])], 64)) : o.value.runtime?.status === "paused" && !o.value.archived && !I(t).launch.remote ? (U(), W("div", vq, [
46866
+ K("div", yq, [C[29] ||= K("h3", null, "修正本场软件连接", -1), q(w, {
46839
46867
  label: "读取本场配置",
46840
46868
  variant: "outline",
46841
46869
  color: "neutral",
@@ -46844,7 +46872,7 @@ var hU = /*#__PURE__*/ XH({
46844
46872
  onClick: C[9] ||= (e) => I(r)("load_room_configuration")
46845
46873
  }, null, 8, ["loading"])]),
46846
46874
  C[30] ||= K("div", { class: "access-repair-description" }, [K("p", null, "修正软件路径,或切换 Codex 的 App / CLI 接入。保留原房间、发言进度和会话,保存后到进度看板重启。"), K("p", { class: "fine-print" }, "App 需保持运行,模型与文件权限在 App 内设置。切回 CLI 前须让 App 释放原聊天;未释放时执行仍会暂停。")], -1),
46847
- h.value ? (U(), W("div", _q, [
46875
+ h.value ? (U(), W("div", bq, [
46848
46876
  (U(!0), W(H, null, B(h.value.participants, (e, t) => (U(), W("div", {
46849
46877
  key: t,
46850
46878
  class: "form-two-columns"
@@ -46879,19 +46907,19 @@ var hU = /*#__PURE__*/ XH({
46879
46907
  loading: I(i) === "save_room_configuration",
46880
46908
  onClick: C[10] ||= (e) => I(r)("save_room_configuration")
46881
46909
  }, null, 8, ["loading"]),
46882
- h.value.notice ? (U(), W("p", vq, P(h.value.notice), 1)) : Y("", !0)
46910
+ h.value.notice ? (U(), W("p", xq, P(h.value.notice), 1)) : Y("", !0)
46883
46911
  ])) : Y("", !0),
46884
- I(t).launch.repair_error ? (U(), W("p", yq, P(I(t).launch.repair_error), 1)) : Y("", !0)
46885
- ])) : o.value.runtime?.status === "paused" && I(t).launch.remote ? (U(), W("p", bq, "讨论已暂停,可在进度看板重启。线上连接暂不提供已登记房间的软件路径修正。")) : o.value.runtime?.status === "running" ? (U(), W("p", xq, "讨论正在运行。")) : (U(), W("p", Sq, "本场讨论已停止或结束,已有记录保留。")),
46912
+ I(t).launch.repair_error ? (U(), W("p", Sq, P(I(t).launch.repair_error), 1)) : Y("", !0)
46913
+ ])) : o.value.runtime?.status === "paused" && I(t).launch.remote ? (U(), W("p", Cq, "讨论已暂停,可在进度看板重启。线上连接暂不提供已登记房间的软件路径修正。")) : o.value.runtime?.status === "running" ? (U(), W("p", wq, "讨论正在运行。")) : (U(), W("p", Tq, "本场讨论已停止或结束,已有记录保留。")),
46886
46914
  C[32] ||= K("p", { class: "access-host-entry" }, [
46887
46915
  J("另一种入口:在 AI 工具对话中调用 "),
46888
46916
  K("code", null, "discuss-host"),
46889
46917
  J(",由当前会话主持。")
46890
46918
  ], -1)
46891
- ])) : f.value ? (U(), W("section", Cq, [q(YK, { participants: v.value }, null, 8, ["participants"]), K("details", null, [
46919
+ ])) : f.value ? (U(), W("section", Eq, [q(QK, { participants: v.value }, null, 8, ["participants"]), K("details", null, [
46892
46920
  C[44] ||= K("summary", null, "手动下载与登记配置", -1),
46893
- K("div", wq, [C[34] ||= K("h3", null, "首次接入", -1), K("a", Tq, [C[33] ||= J("配置说明 ", -1), q(D, { name: "i-lucide-arrow-up-right" })])]),
46894
- K("ol", Eq, [
46921
+ K("div", Dq, [C[34] ||= K("h3", null, "首次接入", -1), K("a", Oq, [C[33] ||= J("配置说明 ", -1), q(D, { name: "i-lucide-arrow-up-right" })])]),
46922
+ K("ol", kq, [
46895
46923
  K("li", null, [
46896
46924
  C[35] ||= K("span", { class: "access-step-number" }, "1", -1),
46897
46925
  C[36] ||= K("div", null, [K("h4", null, "下载接入配置"), K("p", null, "包含当前房间信息。下载后,补齐本机软件路径与会话配置。")], -1),
@@ -46907,7 +46935,7 @@ var hU = /*#__PURE__*/ XH({
46907
46935
  K("li", null, [C[39] ||= K("span", { class: "access-step-number" }, "2", -1), K("div", null, [
46908
46936
  C[37] ||= K("h4", null, "登记到本机服务", -1),
46909
46937
  C[38] ||= K("p", null, "在下载文件所在目录执行;也可以将文件名换成完整路径。", -1),
46910
- K("div", Dq, [K("code", null, P(_.value), 1), q(w, {
46938
+ K("div", Aq, [K("code", null, P(_.value), 1), q(w, {
46911
46939
  icon: "i-lucide-copy",
46912
46940
  color: "neutral",
46913
46941
  variant: "ghost",
@@ -46918,7 +46946,7 @@ var hU = /*#__PURE__*/ XH({
46918
46946
  K("li", null, [C[43] ||= K("span", { class: "access-step-number" }, "3", -1), K("div", null, [
46919
46947
  C[41] ||= K("h4", null, "启动服务,保持终端打开", -1),
46920
46948
  C[42] ||= K("p", null, "启动服务不会自动开始讨论。已暂停的讨论可在进度看板点“重启”。", -1),
46921
- K("div", Oq, [C[40] ||= K("code", null, "codiscuss", -1), q(w, {
46949
+ K("div", jq, [C[40] ||= K("code", null, "codiscuss", -1), q(w, {
46922
46950
  icon: "i-lucide-copy",
46923
46951
  color: "neutral",
46924
46952
  variant: "ghost",
@@ -46928,10 +46956,10 @@ var hU = /*#__PURE__*/ XH({
46928
46956
  ])])
46929
46957
  ])
46930
46958
  ])])) : Y("", !0),
46931
- !f.value || !I(t).launch.available ? (U(), W("details", kq, [K("summary", null, [C[45] ||= K("span", null, [J("项目与工作目录 "), K("small", null, "可选")], -1), q(D, {
46959
+ !f.value || !I(t).launch.available ? (U(), W("details", Mq, [K("summary", null, [C[45] ||= K("span", null, [J("项目与工作目录 "), K("small", null, "可选")], -1), q(D, {
46932
46960
  name: "i-lucide-chevron-down",
46933
46961
  class: "disclosure-icon"
46934
- })]), K("div", Aq, [C[46] ||= K("p", null, "指定 AI 使用的本机项目和目录,留空使用默认位置。仅保存在本机配置中。", -1), K("div", jq, [q(ee, { label: "AI 软件中的项目" }, {
46962
+ })]), K("div", Nq, [C[46] ||= K("p", null, "指定 AI 使用的本机项目和目录,留空使用默认位置。仅保存在本机配置中。", -1), K("div", Pq, [q(ee, { label: "AI 软件中的项目" }, {
46935
46963
  default: L(() => [q(k, {
46936
46964
  "model-value": I(t).fields["runtime-project"],
46937
46965
  placeholder: "项目名称",
@@ -46954,9 +46982,9 @@ var hU = /*#__PURE__*/ XH({
46954
46982
  }, [K("summary", null, [K("span", null, P(f.value ? "成员参与说明与阅读地址" : "复制指令,交给对应的 AI"), 1), q(D, {
46955
46983
  name: "i-lucide-chevron-down",
46956
46984
  class: "disclosure-icon"
46957
- })]), K("div", Nq, [
46958
- y.value || b.value ? (U(), W("p", Pq, P([y.value && "手动成员:复制启动指令,交给你自己的 AI 会话。", b.value && "网页成员只读,回答由你或授权主持人代发。"].filter(Boolean).join("")), 1)) : Y("", !0),
46959
- K("ul", Fq, [(U(!0), W(H, null, B(p.value.members || [], (e) => (U(), W("li", { key: e.name }, [
46985
+ })]), K("div", Iq, [
46986
+ y.value || b.value ? (U(), W("p", Lq, P([y.value && "手动成员:复制启动指令,交给你自己的 AI 会话。", b.value && "网页成员只读,回答由你或授权主持人代发。"].filter(Boolean).join("")), 1)) : Y("", !0),
46987
+ K("ul", Rq, [(U(!0), W(H, null, B(p.value.members || [], (e) => (U(), W("li", { key: e.name }, [
46960
46988
  q(E, {
46961
46989
  src: I(n).identities[e.name]?.icon,
46962
46990
  text: I(n).identities[e.name]?.initials,
@@ -46969,16 +46997,16 @@ var hU = /*#__PURE__*/ XH({
46969
46997
  "alt",
46970
46998
  "class"
46971
46999
  ]),
46972
- K("div", Iq, [
47000
+ K("div", zq, [
46973
47001
  K("strong", null, P(e.name), 1),
46974
47002
  K("span", null, P(e.access === "online" ? "网页代发" : e.access === "runner" ? "本机唤醒 · 自行发言" : "手动接入 · 自行发言"), 1),
46975
47003
  e.access === "manual" ? (U(), W("small", {
46976
47004
  key: 0,
46977
47005
  class: M({ "is-registered": (o.value.members || []).find((t) => t.name === e.name)?.registered_at })
46978
47006
  }, P((o.value.members || []).find((t) => t.name === e.name)?.registered_at ? "已注册" : "待注册"), 3)) : Y("", !0),
46979
- e.access !== "online" && !e.available ? (U(), W("small", Lq, "当前浏览器没有此成员的私有配置")) : Y("", !0)
47007
+ e.access !== "online" && !e.available ? (U(), W("small", Bq, "当前浏览器没有此成员的私有配置")) : Y("", !0)
46980
47008
  ]),
46981
- K("div", Rq, [e.access === "manual" ? (U(), W(H, { key: 0 }, [q(w, {
47009
+ K("div", Vq, [e.access === "manual" ? (U(), W(H, { key: 0 }, [q(w, {
46982
47010
  icon: "i-lucide-rocket",
46983
47011
  label: "复制启动指令",
46984
47012
  "aria-label": `复制 ${e.name} 含凭证的启动指令`,
@@ -47032,25 +47060,25 @@ var hU = /*#__PURE__*/ XH({
47032
47060
  "onClick"
47033
47061
  ])], 64))])
47034
47062
  ]))), 128))]),
47035
- p.value.error ? (U(), W("p", zq, P(p.value.error), 1)) : p.value.notice ? (U(), W("p", Bq, P(p.value.notice), 1)) : Y("", !0),
47063
+ p.value.error ? (U(), W("p", Hq, P(p.value.error), 1)) : p.value.notice ? (U(), W("p", Uq, P(p.value.notice), 1)) : Y("", !0),
47036
47064
  C[48] ||= K("p", { class: "fine-print" }, "复制说明或下载配置不代表 AI 已接入,请以实际回答和运行记录为准。", -1),
47037
- K("details", Vq, [C[47] ||= K("summary", null, "查看房间阅读地址", -1), K("div", Hq, [K("code", null, P(d.value), 1), q(w, {
47065
+ K("details", Wq, [C[47] ||= K("summary", null, "查看房间阅读地址", -1), K("div", Gq, [K("code", null, P(d.value), 1), q(w, {
47038
47066
  icon: "i-lucide-copy",
47039
47067
  color: "neutral",
47040
47068
  variant: "ghost",
47041
47069
  "aria-label": "复制阅读地址",
47042
47070
  onClick: C[16] ||= (e) => I(r)("copy", d.value)
47043
47071
  })])]),
47044
- d.value.includes("127.0.0.1") || d.value.includes("localhost") ? (U(), W("p", Uq, "本机地址仅本机可访问。在线 AI 需要公网阅读地址,或由用户提供材料。")) : Y("", !0)
47045
- ])], 8, Mq),
47046
- o.value.limits ? (U(), W("details", Wq, [K("summary", null, [
47072
+ d.value.includes("127.0.0.1") || d.value.includes("localhost") ? (U(), W("p", Kq, "本机地址仅本机可访问。在线 AI 需要公网阅读地址,或由用户提供材料。")) : Y("", !0)
47073
+ ])], 8, Fq),
47074
+ o.value.limits ? (U(), W("details", qq, [K("summary", null, [
47047
47075
  C[49] ||= K("span", null, "讨论上限与进度", -1),
47048
- K("span", Gq, P(S.value), 1),
47076
+ K("span", Jq, P(S.value), 1),
47049
47077
  q(D, {
47050
47078
  name: "i-lucide-chevron-down",
47051
47079
  class: "disclosure-icon"
47052
47080
  })
47053
- ]), K("div", Kq, [K("p", null, P(I(n).limits_label(o.value.limits)), 1), K("div", qq, [q(w, {
47081
+ ]), K("div", Yq, [K("p", null, P(I(n).limits_label(o.value.limits)), 1), K("div", Xq, [q(w, {
47054
47082
  icon: "i-lucide-pencil",
47055
47083
  label: "编辑讨论上限",
47056
47084
  variant: "outline",
@@ -47075,10 +47103,10 @@ var hU = /*#__PURE__*/ XH({
47075
47103
  ]);
47076
47104
  };
47077
47105
  }
47078
- }, [["__scopeId", "data-v-9f594065"]]), Yq = { slots: {
47106
+ }, [["__scopeId", "data-v-9f594065"]]), Qq = { slots: {
47079
47107
  root: "",
47080
47108
  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"
47081
- } }, Xq = {
47109
+ } }, $q = {
47082
47110
  __name: "Collapsible",
47083
47111
  props: {
47084
47112
  as: {
@@ -47114,7 +47142,7 @@ var hU = /*#__PURE__*/ XH({
47114
47142
  emits: ["update:open"],
47115
47143
  setup(e, { emit: t }) {
47116
47144
  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({
47117
- extend: Yq,
47145
+ extend: Qq,
47118
47146
  ...o.ui?.collapsible || {}
47119
47147
  })());
47120
47148
  return (e, t) => (U(), G(I(Kg), X(I(s), {
@@ -47137,7 +47165,7 @@ var hU = /*#__PURE__*/ XH({
47137
47165
  _: 3
47138
47166
  }, 16, ["class"]));
47139
47167
  }
47140
- }, Zq = {
47168
+ }, eJ = {
47141
47169
  slots: {
47142
47170
  root: "relative flex items-start",
47143
47171
  container: "flex items-center",
@@ -47525,7 +47553,7 @@ var hU = /*#__PURE__*/ XH({
47525
47553
  variant: "list",
47526
47554
  indicator: "start"
47527
47555
  }
47528
- }, Qq = /*@__PURE__*/ Object.assign({ inheritAttrs: !1 }, {
47556
+ }, tJ = /*@__PURE__*/ Object.assign({ inheritAttrs: !1 }, {
47529
47557
  __name: "Checkbox",
47530
47558
  props: {
47531
47559
  as: {
@@ -47619,7 +47647,7 @@ var hU = /*#__PURE__*/ XH({
47619
47647
  let { "data-state": e, ...t } = C;
47620
47648
  return t;
47621
47649
  }), T = Z(() => oA({
47622
- extend: Zq,
47650
+ extend: eJ,
47623
47651
  ...o.ui?.checkbox || {}
47624
47652
  })({
47625
47653
  size: b.value,
@@ -47710,16 +47738,16 @@ var hU = /*#__PURE__*/ XH({
47710
47738
  "class"
47711
47739
  ]));
47712
47740
  }
47713
- }), $q = { class: "effort-field" }, eJ = {
47741
+ }), nJ = { class: "effort-field" }, rJ = {
47714
47742
  key: 0,
47715
47743
  class: "effort-caption",
47716
47744
  "aria-hidden": "true"
47717
- }, tJ = [
47745
+ }, iJ = [
47718
47746
  "aria-label",
47719
47747
  "aria-valuemax",
47720
47748
  "aria-valuenow",
47721
47749
  "aria-valuetext"
47722
- ], nJ = ["title"], rJ = 4.5, iJ = 6, aJ = 8, oJ = 1 / 240, sJ = .001, cJ = .01, lJ = .05, uJ = 10, dJ = 4, fJ = /*#__PURE__*/ XH({
47750
+ ], aJ = ["title"], oJ = 4.5, sJ = 6, cJ = 8, lJ = 1 / 240, uJ = .001, dJ = .01, fJ = .05, pJ = 10, mJ = 4, hJ = /*#__PURE__*/ XH({
47723
47751
  __name: "EffortSlider",
47724
47752
  props: {
47725
47753
  items: {
@@ -47749,18 +47777,18 @@ var hU = /*#__PURE__*/ XH({
47749
47777
  pointer: null
47750
47778
  }), 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;
47751
47779
  function v(e) {
47752
- let t = c.hand ?? c.target, n = c.hand === null ? rJ : iJ, r = (e, r) => _(e - t, r, n) + (e < 0 || e > o.value ? _(e - g(e), r, aJ) : 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);
47780
+ let t = c.hand ?? c.target, n = c.hand === null ? oJ : sJ, r = (e, r) => _(e - t, r, n) + (e < 0 || e > o.value ? _(e - g(e), r, cJ) : 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);
47753
47781
  c.x += e * (a + 2 * l + 2 * d + p) / 6, c.v += e * (s + 2 * u + 2 * f + m) / 6;
47754
47782
  }
47755
47783
  function y(e) {
47756
47784
  d = 0;
47757
- let t = Math.min(lJ, (e - f) / 1e3);
47785
+ let t = Math.min(fJ, (e - f) / 1e3);
47758
47786
  for (f = e; t > 0;) {
47759
- let e = Math.min(oJ, t);
47787
+ let e = Math.min(lJ, t);
47760
47788
  v(e), t -= e;
47761
47789
  }
47762
47790
  let n = c.hand ?? c.target;
47763
- Math.abs(c.x - n) < sJ && Math.abs(c.v) < cJ ? (c.x = n, c.v = 0) : d = requestAnimationFrame(y);
47791
+ Math.abs(c.x - n) < uJ && Math.abs(c.v) < dJ ? (c.x = n, c.v = 0) : d = requestAnimationFrame(y);
47764
47792
  }
47765
47793
  function b() {
47766
47794
  i.value ? (cancelAnimationFrame(d), d = 0, c.x = c.hand ?? c.target, c.v = 0) : d ||= (f = performance.now(), requestAnimationFrame(y));
@@ -47770,17 +47798,17 @@ var hU = /*#__PURE__*/ XH({
47770
47798
  }
47771
47799
  function S(e) {
47772
47800
  let t = a.value.getBoundingClientRect();
47773
- return g((e.clientX - t.left - uJ) / Math.max(1, t.width - 20) * o.value);
47801
+ return g((e.clientX - t.left - pJ) / Math.max(1, t.width - 20) * o.value);
47774
47802
  }
47775
47803
  function C(e) {
47776
47804
  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());
47777
47805
  }
47778
47806
  function w(e) {
47779
- c.pointer === e.pointerId && (h ||= Math.abs(e.clientX - p) > dJ, c.hand = g(S(e) + m), b());
47807
+ c.pointer === e.pointerId && (h ||= Math.abs(e.clientX - p) > mJ, c.hand = g(S(e) + m), b());
47780
47808
  }
47781
47809
  function T(e) {
47782
47810
  if (c.pointer !== e.pointerId) return;
47783
- let t = h ? c.x + c.v / (4 * Math.PI * rJ) : c.hand;
47811
+ let t = h ? c.x + c.v / (4 * Math.PI * oJ) : c.hand;
47784
47812
  c.hand = null, c.pointer = null, x(t);
47785
47813
  }
47786
47814
  function E(e) {
@@ -47803,7 +47831,7 @@ var hU = /*#__PURE__*/ XH({
47803
47831
  i
47804
47832
  ], () => {
47805
47833
  c.target = s.value, b();
47806
- }), ta(() => cancelAnimationFrame(d)), (t, n) => (U(), W("div", $q, [e.caption ? (U(), W("div", eJ, [K("span", null, P(e.caption), 1), q(Cc, {
47834
+ }), ta(() => cancelAnimationFrame(d)), (t, n) => (U(), W("div", nJ, [e.caption ? (U(), W("div", rJ, [K("span", null, P(e.caption), 1), q(Cc, {
47807
47835
  name: I(i) ? "" : "effort-value",
47808
47836
  mode: "out-in"
47809
47837
  }, {
@@ -47841,59 +47869,59 @@ var hU = /*#__PURE__*/ XH({
47841
47869
  "aria-hidden": "true",
47842
47870
  style: fe({ "--at": t / o.value }),
47843
47871
  title: e.label
47844
- }, null, 14, nJ))), 128)),
47872
+ }, null, 14, aJ))), 128)),
47845
47873
  n[1] ||= K("span", {
47846
47874
  class: "effort-slider-thumb",
47847
47875
  "aria-hidden": "true"
47848
47876
  }, null, -1)
47849
- ], 46, tJ)]));
47877
+ ], 46, iJ)]));
47850
47878
  }
47851
- }, [["__scopeId", "data-v-f27db748"]]), pJ = ["data-identity", "data-face"], mJ = ["inert", "aria-hidden"], hJ = { class: "expert-card-identity" }, gJ = {
47879
+ }, [["__scopeId", "data-v-f27db748"]]), gJ = ["data-identity", "data-face"], _J = ["inert", "aria-hidden"], vJ = { class: "expert-card-identity" }, yJ = {
47852
47880
  key: 0,
47853
47881
  class: "expert-card-badge"
47854
- }, _J = { class: "expert-card-facts" }, vJ = ["title"], yJ = {
47882
+ }, bJ = { class: "expert-card-facts" }, xJ = ["title"], SJ = {
47855
47883
  key: 0,
47856
47884
  "aria-hidden": "true"
47857
- }, bJ = {
47885
+ }, CJ = {
47858
47886
  key: 0,
47859
47887
  class: "expert-card-manual"
47860
- }, xJ = { key: 0 }, SJ = {
47888
+ }, wJ = { key: 0 }, TJ = {
47861
47889
  key: 1,
47862
47890
  class: "expert-card-flip"
47863
- }, CJ = ["aria-label"], wJ = [
47891
+ }, EJ = ["aria-label"], DJ = [
47864
47892
  "aria-checked",
47865
47893
  "tabindex",
47866
47894
  "data-mode",
47867
47895
  "onClick"
47868
- ], TJ = { class: "expert-card-tools" }, EJ = [
47896
+ ], OJ = { class: "expert-card-tools" }, kJ = [
47869
47897
  "aria-pressed",
47870
47898
  "aria-label",
47871
47899
  "title"
47872
- ], DJ = ["aria-label"], OJ = ["inert", "aria-hidden"], kJ = { class: "expert-card-back-body" }, AJ = { class: "expert-card-heading" }, jJ = ["role"], MJ = {
47900
+ ], AJ = ["aria-label"], jJ = ["inert", "aria-hidden"], MJ = { class: "expert-card-back-body" }, NJ = { class: "expert-card-heading" }, PJ = ["role"], FJ = {
47873
47901
  key: 1,
47874
47902
  class: "expert-card-field"
47875
- }, NJ = {
47903
+ }, IJ = {
47876
47904
  key: 2,
47877
47905
  class: "expert-card-field"
47878
- }, PJ = {
47906
+ }, LJ = {
47879
47907
  key: 3,
47880
47908
  class: "expert-card-check"
47881
- }, FJ = {
47909
+ }, RJ = {
47882
47910
  key: 4,
47883
47911
  class: "expert-card-field"
47884
- }, IJ = ["aria-label"], LJ = ["aria-checked", "onClick"], RJ = { class: "expert-card-field" }, zJ = {
47912
+ }, zJ = ["aria-label"], BJ = ["aria-checked", "onClick"], VJ = { class: "expert-card-field" }, HJ = {
47885
47913
  key: 0,
47886
47914
  class: "expert-card-catalog"
47887
- }, BJ = {
47915
+ }, UJ = {
47888
47916
  key: 1,
47889
47917
  class: "expert-card-effort"
47890
- }, VJ = {
47918
+ }, WJ = {
47891
47919
  key: 2,
47892
47920
  class: "expert-card-note"
47893
- }, HJ = ["aria-label", "disabled"], UJ = {
47921
+ }, GJ = ["aria-label", "disabled"], KJ = {
47894
47922
  key: 7,
47895
47923
  class: "expert-card-note"
47896
- }, WJ = { class: "expert-card-flip-actions" }, GJ = ["aria-label"], KJ = ["aria-label"], qJ = 180, JJ = "[role='listbox'], [role='menu'], [data-reka-popper-content-wrapper]", YJ = /*#__PURE__*/ XH({
47924
+ }, qJ = { class: "expert-card-flip-actions" }, JJ = ["aria-label"], YJ = ["aria-label"], XJ = 180, ZJ = "[role='listbox'], [role='menu'], [data-reka-popper-content-wrapper]", QJ = /*#__PURE__*/ XH({
47897
47925
  __name: "ExpertCard",
47898
47926
  props: {
47899
47927
  name: {
@@ -48046,7 +48074,7 @@ var hU = /*#__PURE__*/ XH({
48046
48074
  });
48047
48075
  }
48048
48076
  function ge(e) {
48049
- let t = e >= qJ / 2;
48077
+ let t = e >= XJ / 2;
48050
48078
  f.value !== t && (f.value = t, he());
48051
48079
  }
48052
48080
  let N = o.on("change", ge), _e = o.on("animationComplete", he), ve = null, ye = "";
@@ -48078,12 +48106,12 @@ var hU = /*#__PURE__*/ XH({
48078
48106
  d.value && (e.stopPropagation(), e.preventDefault(), xe());
48079
48107
  }
48080
48108
  function Te(e) {
48081
- c.value?.contains(e.target) || e.target.closest?.(JJ) || be(!1);
48109
+ c.value?.contains(e.target) || e.target.closest?.(ZJ) || be(!1);
48082
48110
  }
48083
48111
  return R(d, (e) => {
48084
48112
  e ? document.addEventListener("pointerdown", Te, !0) : document.removeEventListener("pointerdown", Te, !0);
48085
48113
  }), R([d, s], ([e, t]) => {
48086
- let n = e ? qJ : 0;
48114
+ let n = e ? XJ : 0;
48087
48115
  t ? (o.jump(n), he()) : o.set(n);
48088
48116
  }), R(() => [
48089
48117
  te.value,
@@ -48129,7 +48157,7 @@ var hU = /*#__PURE__*/ XH({
48129
48157
  onClick: n[0] ||= (e) => be(!0)
48130
48158
  }, {
48131
48159
  default: L(() => [
48132
- K("span", hJ, [
48160
+ K("span", vJ, [
48133
48161
  q(s, {
48134
48162
  src: I(a).identities[e.name]?.icon,
48135
48163
  text: I(a).identities[e.name]?.initials,
@@ -48143,14 +48171,14 @@ var hU = /*#__PURE__*/ XH({
48143
48171
  "class"
48144
48172
  ]),
48145
48173
  K("strong", null, P(e.name), 1),
48146
- e.host ? (U(), W("span", gJ, "主持")) : Y("", !0)
48174
+ e.host ? (U(), W("span", yJ, "主持")) : Y("", !0)
48147
48175
  ]),
48148
- K("dl", _J, [(U(!0), W(H, null, B(le.value, (e) => (U(), W("div", { key: e.label }, [K("dt", null, P(e.label), 1), K("dd", {
48176
+ K("dl", bJ, [(U(!0), W(H, null, B(le.value, (e) => (U(), W("div", { key: e.label }, [K("dt", null, P(e.label), 1), K("dd", {
48149
48177
  class: M(e.tone ? ["expert-card-status", `is-${e.tone}`] : ""),
48150
48178
  title: e.value
48151
- }, [e.tone ? (U(), W("i", yJ)) : Y("", !0), J(P(e.value), 1)], 10, vJ)]))), 128))]),
48152
- C.value ? (U(), W("div", bJ, [n[9] ||= K("p", null, "会话自行注册后才算到场。", -1), T.value ? (U(), W("p", xJ, P(T.value), 1)) : Y("", !0)])) : Y("", !0),
48153
- O.value ? (U(), W("span", SJ, [q(d, { name: "i-lucide-settings-2" }), n[10] ||= J("设置", -1)])) : Y("", !0)
48179
+ }, [e.tone ? (U(), W("i", SJ)) : Y("", !0), J(P(e.value), 1)], 10, xJ)]))), 128))]),
48180
+ C.value ? (U(), W("div", CJ, [n[9] ||= K("p", null, "会话自行注册后才算到场。", -1), T.value ? (U(), W("p", wJ, P(T.value), 1)) : Y("", !0)])) : Y("", !0),
48181
+ O.value ? (U(), W("span", TJ, [q(d, { name: "i-lucide-settings-2" }), n[10] ||= J("设置", -1)])) : Y("", !0)
48154
48182
  ]),
48155
48183
  _: 1
48156
48184
  }, 8, [
@@ -48173,8 +48201,8 @@ var hU = /*#__PURE__*/ XH({
48173
48201
  tabindex: e.mode === t ? 0 : -1,
48174
48202
  "data-mode": t,
48175
48203
  onClick: (e) => r("mode", t)
48176
- }, P(_[t]), 9, wJ))), 128))], 40, CJ)) : Y("", !0),
48177
- K("span", TJ, [e.hostable ? (U(), W("button", {
48204
+ }, P(_[t]), 9, DJ))), 128))], 40, EJ)) : Y("", !0),
48205
+ K("span", OJ, [e.hostable ? (U(), W("button", {
48178
48206
  key: 0,
48179
48207
  type: "button",
48180
48208
  class: "expert-card-host",
@@ -48182,19 +48210,19 @@ var hU = /*#__PURE__*/ XH({
48182
48210
  "aria-label": e.host ? `${e.name} 是主持人` : `设 ${e.name} 为主持人`,
48183
48211
  title: e.host ? "主持人" : "设为主持人",
48184
48212
  onClick: n[1] ||= (e) => r("host")
48185
- }, [q(d, { name: "i-lucide-crown" })], 8, EJ)) : Y("", !0), K("button", {
48213
+ }, [q(d, { name: "i-lucide-crown" })], 8, kJ)) : Y("", !0), K("button", {
48186
48214
  type: "button",
48187
48215
  "aria-label": `移出 ${e.name}`,
48188
48216
  title: "移出",
48189
48217
  onClick: n[2] ||= (e) => r("remove")
48190
- }, [q(d, { name: "i-lucide-x" })], 8, DJ)])
48191
- ], 8, mJ), O.value ? (U(), W("div", {
48218
+ }, [q(d, { name: "i-lucide-x" })], 8, AJ)])
48219
+ ], 8, _J), O.value ? (U(), W("div", {
48192
48220
  key: 0,
48193
48221
  class: "expert-card-face expert-card-back",
48194
48222
  inert: !f.value,
48195
48223
  "aria-hidden": !f.value
48196
- }, [K("div", kJ, [
48197
- K("div", AJ, [K("strong", null, [J(P(e.name), 1), K("span", null, "设置" + P(j.value ? " · 不访问项目" : ""), 1)]), v.value ? (U(), G(x, {
48224
+ }, [K("div", MJ, [
48225
+ K("div", NJ, [K("strong", null, [J(P(e.name), 1), K("span", null, "设置" + P(j.value ? " · 不访问项目" : ""), 1)]), v.value ? (U(), G(x, {
48198
48226
  key: 0,
48199
48227
  icon: "i-lucide-zap",
48200
48228
  "aria-label": `检查 ${e.name} 的 API 配置`,
@@ -48215,8 +48243,8 @@ var hU = /*#__PURE__*/ XH({
48215
48243
  key: 0,
48216
48244
  role: y.value.state === "error" ? "alert" : "status",
48217
48245
  class: "expert-card-check"
48218
- }, P(y.value.message), 9, jJ)) : Y("", !0),
48219
- g.value && m.value.length > 1 ? (U(), W("div", MJ, [n[11] ||= K("span", null, "接入", -1), q(S, {
48246
+ }, P(y.value.message), 9, PJ)) : Y("", !0),
48247
+ g.value && m.value.length > 1 ? (U(), W("div", FJ, [n[11] ||= K("span", null, "接入", -1), q(S, {
48220
48248
  "model-value": p.value.adapter || "",
48221
48249
  items: m.value,
48222
48250
  placeholder: "选择 API / App / CLI",
@@ -48245,7 +48273,7 @@ var hU = /*#__PURE__*/ XH({
48245
48273
  "aria-label",
48246
48274
  "onUpdate:modelValue"
48247
48275
  ])]))), 128)),
48248
- E.value ? (U(), W("div", NJ, [n[12] ||= K("span", null, "会话", -1), q(w, {
48276
+ E.value ? (U(), W("div", IJ, [n[12] ||= K("span", null, "会话", -1), q(w, {
48249
48277
  "model-value": e.session,
48250
48278
  placeholder: "续接已有会话 ID,留空则新建",
48251
48279
  "aria-label": `${e.name} 要续接的已有会话 ID`,
@@ -48253,8 +48281,8 @@ var hU = /*#__PURE__*/ XH({
48253
48281
  class: "w-full",
48254
48282
  "onUpdate:modelValue": n[4] ||= (e) => r("session", e)
48255
48283
  }, null, 8, ["model-value", "aria-label"])])) : Y("", !0),
48256
- E.value && e.session.trim() && T.value ? (U(), W("p", PJ, P(T.value), 1)) : Y("", !0),
48257
- A.value ? (U(), W("div", FJ, [n[13] ||= K("span", null, "项目", -1), K("div", {
48284
+ E.value && e.session.trim() && T.value ? (U(), W("p", LJ, P(T.value), 1)) : Y("", !0),
48285
+ A.value ? (U(), W("div", RJ, [n[13] ||= K("span", null, "项目", -1), K("div", {
48258
48286
  class: "expert-card-modes",
48259
48287
  role: "radiogroup",
48260
48288
  "aria-label": `${e.name} 的项目文件权限`
@@ -48270,12 +48298,12 @@ var hU = /*#__PURE__*/ XH({
48270
48298
  role: "radio",
48271
48299
  "aria-checked": oe.value === t.value,
48272
48300
  onClick: (n) => I(a).write_launch(e.name, "project_access", t.value)
48273
- }, P(t.label), 9, LJ)), 64))], 8, IJ)])) : Y("", !0),
48274
- v.value ? (U(), G(xK, {
48301
+ }, P(t.label), 9, BJ)), 64))], 8, zJ)])) : Y("", !0),
48302
+ v.value ? (U(), G(wK, {
48275
48303
  key: 5,
48276
48304
  name: e.name
48277
48305
  }, null, 8, ["name"])) : te.value && !me.value.length ? (U(), W(H, { key: 6 }, [
48278
- K("div", RJ, [n[14] ||= K("span", null, "模型", -1), q(S, {
48306
+ K("div", VJ, [n[14] ||= K("span", null, "模型", -1), q(S, {
48279
48307
  "model-value": p.value.model || "__default__",
48280
48308
  items: k.value.items,
48281
48309
  title: k.value.source,
@@ -48289,12 +48317,12 @@ var hU = /*#__PURE__*/ XH({
48289
48317
  "title",
48290
48318
  "aria-label"
48291
48319
  ])]),
48292
- k.value.loading || k.value.error ? (U(), W("div", zJ, [K("span", null, P(k.value.loading ? "正在读取软件模型列表…" : k.value.error), 1), !k.value.loading && k.value.error && I(i).launch.available ? (U(), W("button", {
48320
+ k.value.loading || k.value.error ? (U(), W("div", HJ, [K("span", null, P(k.value.loading ? "正在读取软件模型列表…" : k.value.error), 1), !k.value.loading && k.value.error && I(i).launch.available ? (U(), W("button", {
48293
48321
  key: 0,
48294
48322
  type: "button",
48295
48323
  onClick: n[6] ||= (t) => I(a).load_launch_models(e.name, !0)
48296
48324
  }, "重试")) : Y("", !0)])) : Y("", !0),
48297
- re.value ? (U(), W("div", BJ, [q(fJ, {
48325
+ re.value ? (U(), W("div", UJ, [q(hJ, {
48298
48326
  caption: "强度",
48299
48327
  items: re.value,
48300
48328
  "model-value": p.value.effort || "",
@@ -48304,7 +48332,7 @@ var hU = /*#__PURE__*/ XH({
48304
48332
  "items",
48305
48333
  "model-value",
48306
48334
  "label"
48307
- ])])) : (U(), W("p", VJ, P(k.value.effort_note), 1)),
48335
+ ])])) : (U(), W("p", WJ, P(k.value.effort_note), 1)),
48308
48336
  K("button", {
48309
48337
  type: "button",
48310
48338
  class: "expert-card-defaults",
@@ -48312,31 +48340,31 @@ var hU = /*#__PURE__*/ XH({
48312
48340
  "aria-label": `恢复 ${e.name} 的默认模型与强度`,
48313
48341
  disabled: !p.value.model && !p.value.effort,
48314
48342
  onClick: Se
48315
- }, "恢复默认", 8, HJ)
48316
- ], 64)) : (U(), W("p", UJ, [q(d, { name: e.mode === "online" ? "i-lucide-globe" : "i-lucide-monitor" }, null, 8, ["name"]), J(P(ne.value), 1)]))
48317
- ]), K("span", WJ, [K("button", {
48343
+ }, "恢复默认", 8, GJ)
48344
+ ], 64)) : (U(), W("p", KJ, [q(d, { name: e.mode === "online" ? "i-lucide-globe" : "i-lucide-monitor" }, null, 8, ["name"]), J(P(ne.value), 1)]))
48345
+ ]), K("span", qJ, [K("button", {
48318
48346
  type: "button",
48319
48347
  class: "expert-card-flip is-cancel",
48320
48348
  "aria-label": `放弃 ${e.name} 的修改`,
48321
48349
  onClick: xe
48322
- }, "取消", 8, GJ), K("button", {
48350
+ }, "取消", 8, JJ), K("button", {
48323
48351
  ref_key: "back_button",
48324
48352
  ref: u,
48325
48353
  type: "button",
48326
48354
  class: "expert-card-flip is-done",
48327
48355
  "aria-label": `保存并返回 ${e.name} 角色卡片`,
48328
48356
  onClick: n[8] ||= (e) => be(!1)
48329
- }, [q(d, { name: "i-lucide-check" }), n[15] ||= J("完成", -1)], 8, KJ)])], 8, OJ)) : Y("", !0)]),
48357
+ }, [q(d, { name: "i-lucide-check" }), n[15] ||= J("完成", -1)], 8, YJ)])], 8, jJ)) : Y("", !0)]),
48330
48358
  _: 1
48331
- }, 8, ["style"])], 42, pJ);
48359
+ }, 8, ["style"])], 42, gJ);
48332
48360
  };
48333
48361
  }
48334
- }, [["__scopeId", "data-v-efe0a27a"]]), XJ = ["aria-label"], ZJ = [
48362
+ }, [["__scopeId", "data-v-efe0a27a"]]), $J = ["aria-label"], eY = [
48335
48363
  "disabled",
48336
48364
  "title",
48337
48365
  "aria-label",
48338
48366
  "onClick"
48339
- ], QJ = /*#__PURE__*/ XH({
48367
+ ], tY = /*#__PURE__*/ XH({
48340
48368
  __name: "RosterAdd",
48341
48369
  props: {
48342
48370
  label: {
@@ -48384,17 +48412,17 @@ var hU = /*#__PURE__*/ XH({
48384
48412
  ]),
48385
48413
  J(P(e.name), 1),
48386
48414
  q(o, { name: "i-lucide-plus" })
48387
- ], 8, ZJ))), 128))], 8, XJ);
48415
+ ], 8, eY))), 128))], 8, $J);
48388
48416
  };
48389
48417
  }
48390
- }, [["__scopeId", "data-v-155b366c"]]), $J = { class: "scheduler-settings" }, eY = { class: "scheduler-title" }, tY = { class: "scheduler-description" }, nY = {
48418
+ }, [["__scopeId", "data-v-155b366c"]]), nY = { class: "scheduler-settings" }, rY = { class: "scheduler-title" }, iY = { class: "scheduler-description" }, aY = {
48391
48419
  key: 0,
48392
48420
  class: "scheduler-cards"
48393
- }, rY = { class: "scheduler-identity" }, iY = { class: "scheduler-facts" }, aY = ["title"], oY = { class: "scheduler-flip" }, sY = { class: "scheduler-tools" }, cY = ["aria-label"], lY = { class: "scheduler-back" }, uY = { class: "scheduler-heading" }, dY = { class: "scheduler-field" }, fY = { class: "scheduler-field" }, pY = {
48421
+ }, oY = { class: "scheduler-identity" }, sY = { class: "scheduler-facts" }, cY = ["title"], lY = { class: "scheduler-flip" }, uY = { class: "scheduler-tools" }, dY = ["aria-label"], fY = { class: "scheduler-back" }, pY = { class: "scheduler-heading" }, mY = { class: "scheduler-field" }, hY = { class: "scheduler-field" }, gY = {
48394
48422
  key: 0,
48395
48423
  role: "alert",
48396
48424
  class: "scheduler-error"
48397
- }, mY = ["role"], hY = { class: "scheduler-flip-actions" }, gY = "••••••••••••", _Y = /*#__PURE__*/ XH({
48425
+ }, _Y = ["role"], vY = { class: "scheduler-flip-actions" }, yY = "••••••••••••", bY = /*#__PURE__*/ XH({
48398
48426
  __name: "SchedulerSettings",
48399
48427
  props: {
48400
48428
  free: {
@@ -48505,9 +48533,9 @@ var hU = /*#__PURE__*/ XH({
48505
48533
  }
48506
48534
  }
48507
48535
  return (t, a) => {
48508
- let g = WV, D = pA, O = sA, ee = MA, k = fK, te = YV;
48509
- return U(), W("div", $J, [
48510
- K("div", null, [K("p", eY, [
48536
+ let g = WV, D = pA, O = sA, ee = MA, k = hK, te = YV;
48537
+ return U(), W("div", nY, [
48538
+ K("div", null, [K("p", rY, [
48511
48539
  a[5] ||= J("智能调度", -1),
48512
48540
  q(g, {
48513
48541
  size: "xs",
@@ -48518,16 +48546,16 @@ var hU = /*#__PURE__*/ XH({
48518
48546
  _: 1
48519
48547
  }),
48520
48548
  a[6] ||= K("small", null, "可选", -1)
48521
- ]), K("p", tY, P(e.blocker ? `${T.value}(${e.blocker})` : T.value), 1)]),
48522
- q(QJ, {
48549
+ ]), K("p", iY, P(e.blocker ? `${T.value}(${e.blocker})` : T.value), 1)]),
48550
+ q(tY, {
48523
48551
  ref_key: "add_row",
48524
48552
  ref: l,
48525
48553
  label: "添加决策模型",
48526
48554
  items: u.value,
48527
48555
  onAdd: y
48528
48556
  }, null, 8, ["items"]),
48529
- c.value ? (U(), W("div", nY, [K("div", { class: M(["scheduler-card", { "is-editing": h.value }]) }, [h.value ? (U(), W(H, { key: 1 }, [K("div", lY, [
48530
- K("div", uY, [K("strong", null, [J(P(x.value), 1), a[11] ||= K("span", null, "设置", -1)]), q(ee, {
48557
+ c.value ? (U(), W("div", aY, [K("div", { class: M(["scheduler-card", { "is-editing": h.value }]) }, [h.value ? (U(), W(H, { key: 1 }, [K("div", fY, [
48558
+ K("div", pY, [K("strong", null, [J(P(x.value), 1), a[11] ||= K("span", null, "设置", -1)]), q(ee, {
48531
48559
  icon: "i-lucide-zap",
48532
48560
  "aria-label": "检查智能调度配置",
48533
48561
  title: "检查配置:向决策模型发送一道极短的是非题,核对供应商、模型与密钥",
@@ -48542,7 +48570,7 @@ var hU = /*#__PURE__*/ XH({
48542
48570
  "loading",
48543
48571
  "disabled"
48544
48572
  ])]),
48545
- K("div", dY, [a[12] ||= K("span", null, "模型", -1), q(k, {
48573
+ K("div", mY, [a[12] ||= K("span", null, "模型", -1), q(k, {
48546
48574
  mode: "autocomplete",
48547
48575
  "ignore-filter": "",
48548
48576
  "model-value": i.value.model || "",
@@ -48554,7 +48582,7 @@ var hU = /*#__PURE__*/ XH({
48554
48582
  class: "w-full",
48555
48583
  "onUpdate:modelValue": a[0] ||= (e) => I(r).write_scheduler("model", e)
48556
48584
  }, null, 8, ["model-value", "items"])]),
48557
- K("div", fY, [a[13] ||= K("span", null, "密钥", -1), q(te, {
48585
+ K("div", hY, [a[13] ||= K("span", null, "密钥", -1), q(te, {
48558
48586
  modelValue: d.value,
48559
48587
  "onUpdate:modelValue": a[2] ||= (e) => d.value = e,
48560
48588
  type: "text",
@@ -48562,7 +48590,7 @@ var hU = /*#__PURE__*/ XH({
48562
48590
  spellcheck: "false",
48563
48591
  "data-1p-ignore": "",
48564
48592
  "data-lpignore": "true",
48565
- placeholder: i.value.api_key_ref ? gY : "填写所选供应商的 API Key",
48593
+ placeholder: i.value.api_key_ref ? yY : "填写所选供应商的 API Key",
48566
48594
  title: i.value.api_key_ref && !d.value ? "已保存;本机不回传密钥,输入新 Key 可更换" : void 0,
48567
48595
  "aria-label": "智能调度 API Key",
48568
48596
  size: "xs",
@@ -48597,14 +48625,14 @@ var hU = /*#__PURE__*/ XH({
48597
48625
  "loading",
48598
48626
  "ui"
48599
48627
  ])]),
48600
- m.value ? (U(), W("p", pY, P(m.value), 1)) : Y("", !0),
48628
+ m.value ? (U(), W("p", gY, P(m.value), 1)) : Y("", !0),
48601
48629
  C.value.message ? (U(), W("p", {
48602
48630
  key: 1,
48603
48631
  role: C.value.state === "error" ? "alert" : "status",
48604
48632
  class: M(C.value.state === "error" ? "scheduler-error" : "scheduler-ok")
48605
- }, P(C.value.message), 11, mY)) : Y("", !0),
48633
+ }, P(C.value.message), 11, _Y)) : Y("", !0),
48606
48634
  a[14] ||= K("p", { class: "scheduler-note" }, "决策模型只做选择、不生成文本,只按输入计费。判断时会把房间标题和最近 10 条消息发给所选供应商;密钥只存本机。", -1)
48607
- ]), K("span", hY, [K("button", {
48635
+ ]), K("span", vY, [K("button", {
48608
48636
  type: "button",
48609
48637
  class: "scheduler-flip is-cancel",
48610
48638
  "aria-label": "放弃决策模型的修改",
@@ -48621,7 +48649,7 @@ var hU = /*#__PURE__*/ XH({
48621
48649
  title: "点击设置",
48622
48650
  onClick: _
48623
48651
  }, [
48624
- K("span", rY, [q(D, {
48652
+ K("span", oY, [q(D, {
48625
48653
  src: s[i.value.provider]?.icon,
48626
48654
  text: x.value.slice(0, 2),
48627
48655
  alt: x.value,
@@ -48633,40 +48661,40 @@ var hU = /*#__PURE__*/ XH({
48633
48661
  "alt",
48634
48662
  "class"
48635
48663
  ]), K("strong", null, P(x.value), 1)]),
48636
- K("dl", iY, [K("div", null, [a[8] ||= K("dt", null, "状态", -1), K("dd", { class: M(`is-${S.value.tone}`) }, [a[7] ||= K("i", { "aria-hidden": "true" }, null, -1), J(P(S.value.text), 1)], 2)]), K("div", null, [a[9] ||= K("dt", null, "模型", -1), K("dd", { title: i.value.model }, P(i.value.model || "未选择"), 9, aY)])]),
48637
- K("span", oY, [q(O, { name: "i-lucide-settings-2" }), a[10] ||= J("设置", -1)])
48638
- ]), K("span", sY, [K("button", {
48664
+ K("dl", sY, [K("div", null, [a[8] ||= K("dt", null, "状态", -1), K("dd", { class: M(`is-${S.value.tone}`) }, [a[7] ||= K("i", { "aria-hidden": "true" }, null, -1), J(P(S.value.text), 1)], 2)]), K("div", null, [a[9] ||= K("dt", null, "模型", -1), K("dd", { title: i.value.model }, P(i.value.model || "未选择"), 9, cY)])]),
48665
+ K("span", lY, [q(O, { name: "i-lucide-settings-2" }), a[10] ||= J("设置", -1)])
48666
+ ]), K("span", uY, [K("button", {
48639
48667
  type: "button",
48640
48668
  "aria-label": `移出决策模型 ${x.value}`,
48641
48669
  title: "移出",
48642
48670
  onClick: b
48643
- }, [q(O, { name: "i-lucide-x" })], 8, cY)])], 64))], 2)])) : Y("", !0)
48671
+ }, [q(O, { name: "i-lucide-x" })], 8, dY)])], 64))], 2)])) : Y("", !0)
48644
48672
  ]);
48645
48673
  };
48646
48674
  }
48647
- }, [["__scopeId", "data-v-3e1049d5"]]), vY = { class: "create-discussion" }, yY = {
48675
+ }, [["__scopeId", "data-v-3e1049d5"]]), xY = { class: "create-discussion" }, SY = {
48648
48676
  key: 0,
48649
48677
  class: "create-connect",
48650
48678
  role: "status"
48651
- }, bY = { class: "create-connect-command" }, xY = {
48679
+ }, CY = { class: "create-connect-command" }, wY = {
48652
48680
  key: 1,
48653
48681
  class: "channel-create-location"
48654
- }, SY = { class: "create-section" }, CY = { class: "create-section" }, wY = {
48682
+ }, TY = { class: "create-section" }, EY = { class: "create-section" }, DY = {
48655
48683
  key: 0,
48656
48684
  class: "create-experts",
48657
48685
  role: "group",
48658
48686
  "aria-label": "参与的 AI"
48659
- }, TY = {
48687
+ }, OY = {
48660
48688
  key: 1,
48661
48689
  class: "create-experts-empty"
48662
- }, EY = {
48690
+ }, kY = {
48663
48691
  key: 2,
48664
48692
  class: "fine-print create-hint create-host-hint"
48665
- }, DY = { class: "create-section" }, OY = { class: "create-footer" }, kY = {
48693
+ }, AY = { class: "create-section" }, jY = { class: "create-footer" }, MY = {
48666
48694
  key: 0,
48667
48695
  role: "alert",
48668
48696
  class: "create-error"
48669
- }, AY = { class: "create-footer-row" }, jY = ["title"], MY = "new-expert-modes", NY = 3e3, PY = /*#__PURE__*/ XH({
48697
+ }, NY = { class: "create-footer-row" }, PY = ["title"], FY = "new-expert-modes", IY = 3e3, LY = /*#__PURE__*/ XH({
48670
48698
  __name: "CreateDiscussion",
48671
48699
  props: { targetFolder: {
48672
48700
  type: Object,
@@ -48674,7 +48702,7 @@ var hU = /*#__PURE__*/ XH({
48674
48702
  } },
48675
48703
  emits: ["submit", "cancel"],
48676
48704
  setup(e, { emit: t }) {
48677
- let n = t, { view: r, bridge: i, pending: a, act: o } = xr("discussion"), s = Object.keys(i.identities).filter((e) => e !== "用户"), c = (e) => `new-room-${e}`, l = (e) => r.value.fields[c(e)] ?? "", u = (e, t) => i.write_field(c(e), t), d = Z(() => !!r.value.create_discussion), f = Z(() => r.value.experts[MY] || {}), p = /* @__PURE__ */ F([]), m = Z(() => Object.keys(f.value).filter((e) => f.value[e]));
48705
+ let n = t, { view: r, bridge: i, pending: a, act: o } = xr("discussion"), s = Object.keys(i.identities).filter((e) => e !== "用户"), c = (e) => `new-room-${e}`, l = (e) => r.value.fields[c(e)] ?? "", u = (e, t) => i.write_field(c(e), t), d = Z(() => !!r.value.create_discussion), f = Z(() => r.value.experts[FY] || {}), p = /* @__PURE__ */ F([]), m = Z(() => Object.keys(f.value).filter((e) => f.value[e]));
48678
48706
  R(m, (e) => {
48679
48707
  p.value = [...p.value.filter((t) => e.includes(t)), ...e.filter((e) => !p.value.includes(e))];
48680
48708
  }, { immediate: !0 });
@@ -48698,14 +48726,14 @@ var hU = /*#__PURE__*/ XH({
48698
48726
  Qi(() => {
48699
48727
  ae(), ie = window.setInterval(() => {
48700
48728
  re.value && !document.hidden && o("check_launch_connection");
48701
- }, NY);
48729
+ }, IY);
48702
48730
  }), ta(() => window.clearInterval(ie));
48703
48731
  function oe(e) {
48704
48732
  i.write_create_discussion(e), Qn(ae);
48705
48733
  }
48706
48734
  let se = (e) => i.launch_clients[e]?.some((e) => e.value !== "api"), ce = (e) => d.value && e === v.value ? [] : ["cli", "manual"];
48707
48735
  function le(e, t) {
48708
- t === "cli" && !se(e) && !r.value.launch.profiles[e]?.adapter && i.write_launch(e, "adapter", "api"), i.write_expert(MY, e, t), ae();
48736
+ t === "cli" && !se(e) && !r.value.launch.profiles[e]?.adapter && i.write_launch(e, "adapter", "api"), i.write_expert(FY, e, t), ae();
48709
48737
  }
48710
48738
  function ue(e) {
48711
48739
  if (f.value[e] === "online") return {
@@ -48744,7 +48772,7 @@ var hU = /*#__PURE__*/ XH({
48744
48772
  aria_label: `添加 ${e} 实例`
48745
48773
  })));
48746
48774
  function pe(e) {
48747
- i.launch_clients[e] && (!se(e) && !r.value.launch.profiles[e]?.adapter && i.write_launch(e, "adapter", "api"), g(e) ? i.add_instance(MY, e, "cli") : le(e, "cli"), ae());
48775
+ i.launch_clients[e] && (!se(e) && !r.value.launch.profiles[e]?.adapter && i.write_launch(e, "adapter", "api"), g(e) ? i.add_instance(FY, e, "cli") : le(e, "cli"), ae());
48748
48776
  }
48749
48777
  function me(e) {
48750
48778
  le(e, ""), Qn(() => _.value?.focus_first());
@@ -48765,21 +48793,21 @@ var hU = /*#__PURE__*/ XH({
48765
48793
  return t.join(" · ");
48766
48794
  });
48767
48795
  return (t, s) => {
48768
- let c = sA, p = MA, m = YV, g = zV, x = Qq, T = HV;
48769
- return U(), W("div", vY, [K("form", {
48796
+ let c = sA, p = MA, m = YV, g = zV, x = tJ, T = HV;
48797
+ return U(), W("div", xY, [K("form", {
48770
48798
  id: "create-discussion-form",
48771
48799
  class: "create-scroll dialog-form",
48772
48800
  onSubmit: uu(he, ["prevent"])
48773
48801
  }, [
48774
- re.value ? (U(), W("div", yY, [K("p", null, [q(c, { name: "i-lucide-plug-zap" }), s[9] ||= J("本机服务未连接,连接后才能唤醒本机 AI。在运行 AI 的电脑上执行下面的命令并完成网页授权,连上后自动检测。", -1)]), K("div", bY, [K("code", null, P(I(r).launch.connect_command), 1), q(p, {
48802
+ re.value ? (U(), W("div", SY, [K("p", null, [q(c, { name: "i-lucide-plug-zap" }), s[9] ||= J("本机服务未连接,连接后才能唤醒本机 AI。在运行 AI 的电脑上执行下面的命令并完成网页授权,连上后自动检测。", -1)]), K("div", CY, [K("code", null, P(I(r).launch.connect_command), 1), q(p, {
48775
48803
  icon: "i-lucide-copy",
48776
48804
  "aria-label": "复制本机连接命令",
48777
48805
  variant: "ghost",
48778
48806
  color: "neutral",
48779
48807
  onClick: s[0] ||= (e) => I(o)("copy", I(r).launch.connect_command)
48780
48808
  })])])) : Y("", !0),
48781
- e.targetFolder?.id ? (U(), W("p", xY, [q(c, { name: "i-lucide-folder" }), J(P(e.targetFolder.name), 1)])) : Y("", !0),
48782
- K("section", SY, [
48809
+ e.targetFolder?.id ? (U(), W("p", wY, [q(c, { name: "i-lucide-folder" }), J(P(e.targetFolder.name), 1)])) : Y("", !0),
48810
+ K("section", TY, [
48783
48811
  s[10] ||= K("h3", null, [K("span", null, "1"), J("这次做什么")], -1),
48784
48812
  q(g, {
48785
48813
  label: "话题名称",
@@ -48801,20 +48829,20 @@ var hU = /*#__PURE__*/ XH({
48801
48829
  label: "项目目录(可选)",
48802
48830
  description: I(r).launch.available ? "本机唤醒的成员在此目录读写文件;不填则各用软件默认目录。" : C.value ? `由电脑「${C.value.name}」唤醒的成员在所选项目中读写文件;不选则各用软件默认目录。` : "连接本机服务后可指定:本机唤醒的成员将在此目录读写文件。"
48803
48831
  }, {
48804
- default: L(() => [q(LK, { disabled: !w.value }, null, 8, ["disabled"])]),
48832
+ default: L(() => [q(BK, { disabled: !w.value }, null, 8, ["disabled"])]),
48805
48833
  _: 1
48806
48834
  }, 8, ["description"])
48807
48835
  ]),
48808
- K("section", CY, [
48836
+ K("section", EY, [
48809
48837
  s[11] ||= K("h3", null, [K("span", null, "2"), J("谁来参与")], -1),
48810
- q(QJ, {
48838
+ q(tY, {
48811
48839
  ref_key: "library",
48812
48840
  ref: _,
48813
48841
  label: "添加 AI",
48814
48842
  items: fe.value,
48815
48843
  onAdd: pe
48816
48844
  }, null, 8, ["items"]),
48817
- h.value.length ? (U(), W("div", wY, [(U(!0), W(H, null, B(h.value, (e) => (U(), G(YJ, {
48845
+ h.value.length ? (U(), W("div", DY, [(U(!0), W(H, null, B(h.value, (e) => (U(), G(QJ, {
48818
48846
  key: e,
48819
48847
  name: e,
48820
48848
  mode: f.value[e],
@@ -48836,14 +48864,14 @@ var hU = /*#__PURE__*/ XH({
48836
48864
  "onHost",
48837
48865
  "onRemove",
48838
48866
  "onMode"
48839
- ]))), 128))])) : (U(), W("p", TY, "请至少添加一位成员。同一平台可添加多位,各自独立会话。")),
48840
- h.value.length ? (U(), W("div", EY, [q(c, { name: "i-lucide-crown" }), K("span", null, P(y.value.length ? "点卡片上的皇冠指定主持人:没 @ 任何人的消息由它分配;其他成员只在被你或主持人点名时发言。" : "需要一位本地 AI 做主持人,没 @ 的消息才有人接。"), 1)])) : Y("", !0),
48841
- q(_Y, {
48867
+ ]))), 128))])) : (U(), W("p", OY, "请至少添加一位成员。同一平台可添加多位,各自独立会话。")),
48868
+ h.value.length ? (U(), W("div", kY, [q(c, { name: "i-lucide-crown" }), K("span", null, P(y.value.length ? "点卡片上的皇冠指定主持人:没 @ 任何人的消息由它分配;其他成员只在被你或主持人点名时发言。" : "需要一位本地 AI 做主持人,没 @ 的消息才有人接。"), 1)])) : Y("", !0),
48869
+ q(bY, {
48842
48870
  free: !0,
48843
48871
  blocker: te.value
48844
48872
  }, null, 8, ["blocker"])
48845
48873
  ]),
48846
- K("section", DY, [
48874
+ K("section", AY, [
48847
48875
  s[12] ||= K("h3", null, [K("span", null, "3"), J("推进方式(可选)")], -1),
48848
48876
  q(x, {
48849
48877
  "model-value": d.value,
@@ -48889,7 +48917,7 @@ var hU = /*#__PURE__*/ XH({
48889
48917
  "execution_minutes"
48890
48918
  ])], 64)) : Y("", !0)
48891
48919
  ])
48892
- ], 32), K("footer", OY, [D.value && I(r).launch.error ? (U(), W("p", kY, P(I(r).launch.error), 1)) : Y("", !0), K("div", AY, [
48920
+ ], 32), K("footer", jY, [D.value && I(r).launch.error ? (U(), W("p", MY, P(I(r).launch.error), 1)) : Y("", !0), K("div", NY, [
48893
48921
  K("span", {
48894
48922
  class: M(["create-summary", { "is-blocked": A.value }]),
48895
48923
  title: A.value || ge.value,
@@ -48897,7 +48925,7 @@ var hU = /*#__PURE__*/ XH({
48897
48925
  }, [A.value ? (U(), G(c, {
48898
48926
  key: 0,
48899
48927
  name: "i-lucide-circle-alert"
48900
- })) : Y("", !0), J(P(A.value ? `还差:${A.value}` : h.value.length || d.value ? ge.value : ""), 1)], 10, jY),
48928
+ })) : Y("", !0), J(P(A.value ? `还差:${A.value}` : h.value.length || d.value ? ge.value : ""), 1)], 10, PY),
48901
48929
  q(p, {
48902
48930
  label: "取消",
48903
48931
  color: "neutral",
@@ -48921,46 +48949,46 @@ var hU = /*#__PURE__*/ XH({
48921
48949
  ])])]);
48922
48950
  };
48923
48951
  }
48924
- }, [["__scopeId", "data-v-61eb0b0c"]]), FY = {
48952
+ }, [["__scopeId", "data-v-61eb0b0c"]]), RY = {
48925
48953
  class: "account-settings",
48926
48954
  "aria-labelledby": "account-heading"
48927
- }, IY = {
48955
+ }, zY = {
48928
48956
  key: 0,
48929
48957
  class: "fine-print",
48930
48958
  role: "status"
48931
- }, LY = ["aria-label"], RY = { class: "fine-print account-intro" }, zY = {
48959
+ }, BY = ["aria-label"], VY = { class: "fine-print account-intro" }, HY = {
48932
48960
  key: 0,
48933
48961
  class: "account-message is-error",
48934
48962
  role: "status"
48935
- }, BY = {
48963
+ }, UY = {
48936
48964
  key: 1,
48937
48965
  class: "fine-print"
48938
- }, VY = {
48966
+ }, WY = {
48939
48967
  key: 1,
48940
48968
  class: "fine-print"
48941
- }, HY = {
48969
+ }, GY = {
48942
48970
  key: 2,
48943
48971
  class: "account-message is-error",
48944
48972
  role: "alert"
48945
- }, UY = {
48973
+ }, KY = {
48946
48974
  key: 3,
48947
48975
  class: "account-message",
48948
48976
  role: "status"
48949
- }, WY = { class: "account-actions" }, GY = {
48977
+ }, qY = { class: "account-actions" }, JY = {
48950
48978
  key: 2,
48951
48979
  class: "account-profile"
48952
- }, KY = { class: "account-identity" }, qY = { class: "account-avatar-actions" }, JY = { class: "account-name-row" }, YY = {
48980
+ }, YY = { class: "account-identity" }, XY = { class: "account-avatar-actions" }, ZY = { class: "account-name-row" }, QY = {
48953
48981
  key: 0,
48954
48982
  class: "account-message is-error",
48955
48983
  role: "alert"
48956
- }, XY = {
48984
+ }, $Y = {
48957
48985
  key: 1,
48958
48986
  class: "account-message",
48959
48987
  role: "status"
48960
- }, ZY = {
48988
+ }, eX = {
48961
48989
  key: 2,
48962
48990
  class: "account-signout account-actions"
48963
- }, QY = {
48991
+ }, tX = {
48964
48992
  __name: "AccountSettings",
48965
48993
  setup(e) {
48966
48994
  let { view: t, bridge: n } = xr("discussion"), r = Z(() => t.value.admin), i = Z(() => r.value.profile), a = Z(() => r.value.loaded ? r.value.registered ? r.value.logged_in ? "profile" : "login" : "register" : "loading"), o = /* @__PURE__ */ F(""), s = /* @__PURE__ */ Yt({
@@ -49028,13 +49056,13 @@ var hU = /*#__PURE__*/ XH({
49028
49056
  }
49029
49057
  return (e, t) => {
49030
49058
  let p = YV, y = zV, b = MA, x = pA;
49031
- return U(), W("section", FY, [t[8] ||= K("h3", { id: "account-heading" }, "账号", -1), a.value === "loading" ? (U(), W("p", IY, "正在读取账号状态…")) : a.value === "register" || a.value === "login" ? (U(), W("form", {
49059
+ return U(), W("section", RY, [t[8] ||= K("h3", { id: "account-heading" }, "账号", -1), a.value === "loading" ? (U(), W("p", zY, "正在读取账号状态…")) : a.value === "register" || a.value === "login" ? (U(), W("form", {
49032
49060
  key: 1,
49033
49061
  class: "dialog-form account-form",
49034
49062
  "aria-label": a.value === "register" ? "设置管理员账号" : "登录管理员账号",
49035
49063
  onSubmit: uu(m, ["prevent"])
49036
49064
  }, [
49037
- K("p", RY, [a.value === "register" ? (U(), W(H, { key: 0 }, [J("设置站点管理员账号:名称和头像对所有访客可见,登录后可在没有房间凭据的浏览器中存档、恢复、删除房间。")], 64)) : (U(), W(H, { key: 1 }, [J("登录后可管理房间;未登录时仍可阅读并使用本浏览器创建的房间。")], 64))]),
49065
+ K("p", VY, [a.value === "register" ? (U(), W(H, { key: 0 }, [J("设置站点管理员账号:名称和头像对所有访客可见,登录后可在没有房间凭据的浏览器中存档、恢复、删除房间。")], 64)) : (U(), W(H, { key: 1 }, [J("登录后可管理房间;未登录时仍可阅读并使用本浏览器创建的房间。")], 64))]),
49038
49066
  q(y, {
49039
49067
  label: "用户名",
49040
49068
  description: a.value === "register" ? "1–30 个字符,也是公开显示的名称" : void 0,
@@ -49101,18 +49129,18 @@ var hU = /*#__PURE__*/ XH({
49101
49129
  }, null, 8, ["modelValue", "disabled"])]),
49102
49130
  _: 1
49103
49131
  }),
49104
- f.value ? (U(), W("p", zY, "服务端未配置安装令牌,暂时无法注册。本地版请设置环境变量 DISCUSS_ADMIN_SETUP_KEY 后重启;Cloudflare 版请配置部署机密 ADMIN_SETUP_KEY。")) : (U(), W("p", BY, [...t[6] ||= [
49132
+ f.value ? (U(), W("p", HY, "服务端未配置安装令牌,暂时无法注册。本地版请设置环境变量 DISCUSS_ADMIN_SETUP_KEY 后重启;Cloudflare 版请配置部署机密 ADMIN_SETUP_KEY。")) : (U(), W("p", UY, [...t[6] ||= [
49105
49133
  J("首个注册者需要安装令牌,防止他人抢注。本地版见服务端启动日志;Cloudflare 版为部署机密 ADMIN_SETUP_KEY。忘记密码:本地版运行 ", -1),
49106
49134
  K("code", null, "python server.py --reset-admin", -1),
49107
49135
  J(" 后重新注册;Cloudflare 版需清空管理员表(见部署文档)。", -1)
49108
49136
  ]]))
49109
- ], 64)) : (U(), W("p", VY, [...t[7] ||= [
49137
+ ], 64)) : (U(), W("p", WY, [...t[7] ||= [
49110
49138
  J("忘记密码:本地版运行 ", -1),
49111
49139
  K("code", null, "python server.py --reset-admin", -1),
49112
49140
  J(" 后重新注册;Cloudflare 版需清空管理员表(见部署文档)。", -1)
49113
49141
  ]])),
49114
- s.auth.error ? (U(), W("p", HY, P(s.auth.error), 1)) : s.auth.notice ? (U(), W("p", UY, P(s.auth.notice), 1)) : Y("", !0),
49115
- K("div", WY, [q(b, {
49142
+ s.auth.error ? (U(), W("p", GY, P(s.auth.error), 1)) : s.auth.notice ? (U(), W("p", KY, P(s.auth.notice), 1)) : Y("", !0),
49143
+ K("div", qY, [q(b, {
49116
49144
  type: "submit",
49117
49145
  class: "channel-primary-button",
49118
49146
  label: a.value === "register" ? "创建并登录" : "登录",
@@ -49123,13 +49151,13 @@ var hU = /*#__PURE__*/ XH({
49123
49151
  "loading",
49124
49152
  "disabled"
49125
49153
  ])])
49126
- ], 40, LY)) : (U(), W("div", GY, [
49127
- K("div", KY, [q(x, {
49154
+ ], 40, BY)) : (U(), W("div", JY, [
49155
+ K("div", YY, [q(x, {
49128
49156
  src: I(n).identities.用户.icon,
49129
49157
  alt: `${I(n).display_name("用户")} 的头像`,
49130
49158
  size: "lg",
49131
49159
  class: "channel-avatar user account-avatar"
49132
- }, null, 8, ["src", "alt"]), K("div", qY, [
49160
+ }, null, 8, ["src", "alt"]), K("div", XY, [
49133
49161
  K("input", {
49134
49162
  ref_key: "avatar_input",
49135
49163
  ref: u,
@@ -49167,7 +49195,7 @@ var hU = /*#__PURE__*/ XH({
49167
49195
  label: "显示名称",
49168
49196
  description: "即用户名,对所有访客可见"
49169
49197
  }, {
49170
- default: L(() => [K("div", JY, [q(p, {
49198
+ default: L(() => [K("div", ZY, [q(p, {
49171
49199
  modelValue: l.value,
49172
49200
  "onUpdate:modelValue": t[5] ||= (e) => l.value = e,
49173
49201
  autocomplete: "username",
@@ -49185,8 +49213,8 @@ var hU = /*#__PURE__*/ XH({
49185
49213
  }, null, 8, ["loading", "disabled"])])]),
49186
49214
  _: 1
49187
49215
  })], 32),
49188
- s.profile.error ? (U(), W("p", YY, P(s.profile.error), 1)) : s.profile.notice ? (U(), W("p", XY, P(s.profile.notice), 1)) : Y("", !0),
49189
- r.value.local ? Y("", !0) : (U(), W("div", ZY, [q(b, {
49216
+ s.profile.error ? (U(), W("p", QY, P(s.profile.error), 1)) : s.profile.notice ? (U(), W("p", $Y, P(s.profile.notice), 1)) : Y("", !0),
49217
+ r.value.local ? Y("", !0) : (U(), W("div", eX, [q(b, {
49190
49218
  label: "退出登录",
49191
49219
  icon: "i-lucide-log-out",
49192
49220
  color: "neutral",
@@ -49199,65 +49227,65 @@ var hU = /*#__PURE__*/ XH({
49199
49227
  ]))]);
49200
49228
  };
49201
49229
  }
49202
- }, $Y = {
49230
+ }, nX = {
49203
49231
  key: 0,
49204
49232
  class: "channel-archive-manager"
49205
- }, eX = { class: "channel-archive-toolbar" }, tX = {
49233
+ }, rX = { class: "channel-archive-toolbar" }, iX = {
49206
49234
  key: 0,
49207
49235
  class: "channel-archive-confirm channel-archive-bulk",
49208
49236
  role: "alert"
49209
- }, nX = {
49237
+ }, aX = {
49210
49238
  key: 1,
49211
49239
  role: "alert",
49212
49240
  class: "channel-directory-error"
49213
- }, rX = { class: "channel-archive-results" }, iX = {
49241
+ }, oX = { class: "channel-archive-results" }, sX = {
49214
49242
  key: 0,
49215
49243
  class: "channel-archive-list",
49216
49244
  "aria-label": "已存档房间列表"
49217
- }, aX = { class: "channel-archive-row" }, oX = { class: "channel-archive-info" }, sX = [
49245
+ }, cX = { class: "channel-archive-row" }, lX = { class: "channel-archive-info" }, uX = [
49218
49246
  "title",
49219
49247
  "disabled",
49220
49248
  "onClick"
49221
- ], cX = { key: 0 }, lX = ["datetime"], uX = { class: "channel-archive-actions" }, dX = {
49249
+ ], dX = { key: 0 }, fX = ["datetime"], pX = { class: "channel-archive-actions" }, mX = {
49222
49250
  key: 0,
49223
49251
  class: "channel-archive-confirm channel-archive-bulk",
49224
49252
  role: "alert"
49225
- }, fX = {
49253
+ }, hX = {
49226
49254
  key: 1,
49227
49255
  class: "channel-archive-empty"
49228
- }, pX = { class: "fine-print" }, mX = { class: "dialog-actions" }, hX = { class: "dialog-actions" }, gX = { class: "channel-management-target" }, _X = {
49256
+ }, gX = { class: "fine-print" }, _X = { class: "dialog-actions" }, vX = { class: "dialog-actions" }, yX = { class: "channel-management-target" }, bX = {
49229
49257
  key: 0,
49230
49258
  class: "fine-print"
49231
- }, vX = {
49259
+ }, xX = {
49232
49260
  key: 1,
49233
49261
  class: "fine-print"
49234
- }, yX = {
49262
+ }, SX = {
49235
49263
  key: 2,
49236
49264
  class: "fine-print"
49237
- }, bX = { class: "dialog-actions" }, xX = { key: 4 }, SX = { class: "theme-choices" }, CX = ["aria-pressed", "onClick"], wX = { class: "theme-check" }, TX = { class: "channel-reading-setting" }, EX = {
49265
+ }, CX = { class: "dialog-actions" }, wX = { key: 4 }, TX = { class: "theme-choices" }, EX = ["aria-pressed", "onClick"], DX = { class: "theme-check" }, OX = { class: "channel-reading-setting" }, kX = {
49238
49266
  class: "channel-reading-options",
49239
49267
  role: "group",
49240
49268
  "aria-labelledby": "channel-reading-label"
49241
- }, DX = { class: "channel-reading-setting" }, OX = {
49269
+ }, AX = { class: "channel-reading-setting" }, jX = {
49242
49270
  class: "channel-reading-options channel-effect-options",
49243
49271
  role: "group",
49244
49272
  "aria-labelledby": "channel-effects-label"
49245
- }, kX = { class: "form-two-columns" }, AX = { class: "advanced-content" }, jX = {
49273
+ }, MX = { class: "form-two-columns" }, NX = { class: "advanced-content" }, PX = {
49246
49274
  key: 0,
49247
49275
  class: "fine-print"
49248
- }, MX = { class: "advanced-content" }, NX = { class: "expert-fields" }, PX = { class: "dialog-actions" }, FX = { class: "dialog-actions" }, IX = {
49276
+ }, FX = { class: "advanced-content" }, IX = { class: "expert-fields" }, LX = { class: "dialog-actions" }, RX = { class: "dialog-actions" }, zX = {
49249
49277
  key: 8,
49250
49278
  class: "original-message"
49251
- }, LX = {
49279
+ }, BX = {
49252
49280
  key: 0,
49253
49281
  role: "alert"
49254
- }, RX = { class: "original-meta" }, zX = { class: "fine-print" }, BX = {
49282
+ }, VX = { class: "original-meta" }, HX = { class: "fine-print" }, UX = {
49255
49283
  key: 0,
49256
49284
  class: "channel-answer-summary"
49257
- }, VX = { class: "message-prose" }, HX = { class: "message-prose" }, UX = ["innerHTML"], WX = {
49285
+ }, WX = { class: "message-prose" }, GX = { class: "message-prose" }, KX = ["innerHTML"], qX = {
49258
49286
  key: 2,
49259
49287
  class: "fine-print"
49260
- }, GX = "topic-expert-modes", KX = {
49288
+ }, JX = "topic-expert-modes", YX = {
49261
49289
  __name: "WorkspaceDialogs",
49262
49290
  props: /*@__PURE__*/ Fa({
49263
49291
  detailId: {
@@ -49507,7 +49535,7 @@ var hU = /*#__PURE__*/ XH({
49507
49535
  }
49508
49536
  let Se = (e) => e.preventDefault();
49509
49537
  return (t, c) => {
49510
- let x = YV, S = bH, le = MA, ue = zV, ve = sA, Ce = HV, we = Xq, Te = WV, Ee = YH;
49538
+ let x = YV, S = bH, le = MA, ue = zV, ve = sA, Ce = HV, we = $q, Te = WV, Ee = YH;
49511
49539
  return U(), G(Ee, {
49512
49540
  open: d.value,
49513
49541
  "onUpdate:open": c[25] ||= (e) => d.value = e,
@@ -49535,8 +49563,8 @@ var hU = /*#__PURE__*/ XH({
49535
49563
  } : void 0,
49536
49564
  "onAfter:leave": be
49537
49565
  }, {
49538
- body: L(() => [a.value === "archives" ? (U(), W("section", $Y, [
49539
- K("div", eX, [
49566
+ body: L(() => [a.value === "archives" ? (U(), W("section", nX, [
49567
+ K("div", rX, [
49540
49568
  q(x, {
49541
49569
  modelValue: h.value,
49542
49570
  "onUpdate:modelValue": c[0] ||= (e) => h.value = e,
@@ -49565,7 +49593,7 @@ var hU = /*#__PURE__*/ XH({
49565
49593
  }
49566
49594
  }, null, 8, ["label", "disabled"])
49567
49595
  ]),
49568
- b.value && v.value.length ? (U(), W("div", tX, [
49596
+ b.value && v.value.length ? (U(), W("div", iX, [
49569
49597
  K("span", null, "将永久删除当前列表中的 " + P(v.value.length) + " 个房间及其全部记录,无法撤销。", 1),
49570
49598
  q(le, {
49571
49599
  label: "取消",
@@ -49581,20 +49609,20 @@ var hU = /*#__PURE__*/ XH({
49581
49609
  onClick: D
49582
49610
  })
49583
49611
  ])) : Y("", !0),
49584
- I(o).directory_error ? (U(), W("p", nX, P(I(o).directory_error), 1)) : Y("", !0),
49585
- K("div", rX, [v.value.length ? (U(), W("ul", iX, [(U(!0), W(H, null, B(v.value, (e) => (U(), W("li", {
49612
+ I(o).directory_error ? (U(), W("p", aX, P(I(o).directory_error), 1)) : Y("", !0),
49613
+ K("div", oX, [v.value.length ? (U(), W("ul", sX, [(U(!0), W(H, null, B(v.value, (e) => (U(), W("li", {
49586
49614
  key: e.id,
49587
49615
  class: "channel-archive-item"
49588
- }, [K("div", aX, [K("div", oX, [K("button", {
49616
+ }, [K("div", cX, [K("div", lX, [K("button", {
49589
49617
  class: "channel-archive-title",
49590
49618
  title: e.title,
49591
49619
  disabled: !!I(u),
49592
49620
  onClick: (t) => T(e)
49593
- }, P(e.title), 9, sX), K("small", null, [e.created_at ? (U(), W("span", cX, [
49621
+ }, P(e.title), 9, uX), K("small", null, [e.created_at ? (U(), W("span", dX, [
49594
49622
  c[26] ||= J("创建于 ", -1),
49595
- K("time", { datetime: e.created_at }, P(C(e.created_at)), 9, lX),
49623
+ K("time", { datetime: e.created_at }, P(C(e.created_at)), 9, fX),
49596
49624
  c[27] ||= J(" · ", -1)
49597
- ])) : Y("", !0), J(P(e.message_count) + " 条消息", 1)])]), K("div", uX, [q(le, {
49625
+ ])) : Y("", !0), J(P(e.message_count) + " 条消息", 1)])]), K("div", pX, [q(le, {
49598
49626
  "aria-label": `彻底删除 ${e.title}`,
49599
49627
  title: "彻底删除",
49600
49628
  icon: "i-lucide-trash-2",
@@ -49626,7 +49654,7 @@ var hU = /*#__PURE__*/ XH({
49626
49654
  "aria-label",
49627
49655
  "disabled",
49628
49656
  "onClick"
49629
- ])])]), y.value === e.id ? (U(), W("div", dX, [
49657
+ ])])]), y.value === e.id ? (U(), W("div", mX, [
49630
49658
  K("span", null, "永久删除「" + P(e.title) + "」及其全部记录,无法撤销。", 1),
49631
49659
  q(le, {
49632
49660
  label: "取消",
@@ -49642,12 +49670,12 @@ var hU = /*#__PURE__*/ XH({
49642
49670
  disabled: w(e),
49643
49671
  onClick: E
49644
49672
  }, null, 8, ["disabled"])
49645
- ])) : Y("", !0)]))), 128))])) : (U(), W("p", fX, P(m.value.length ? "没有匹配的存档房间" : "暂无已存档房间"), 1))])
49673
+ ])) : Y("", !0)]))), 128))])) : (U(), W("p", hX, P(m.value.length ? "没有匹配的存档房间" : "暂无已存档房间"), 1))])
49646
49674
  ])) : a.value === "delete-folder" ? (U(), W("form", {
49647
49675
  key: 1,
49648
49676
  class: "dialog-form",
49649
49677
  onSubmit: uu(re, ["prevent"])
49650
- }, [K("p", pX, "移除「" + P(e.targetFolder?.name) + "」后,房间不再归属文件夹,所有消息和存档状态都会保留。", 1), K("div", mX, [q(le, {
49678
+ }, [K("p", gX, "移除「" + P(e.targetFolder?.name) + "」后,房间不再归属文件夹,所有消息和存档状态都会保留。", 1), K("div", _X, [q(le, {
49651
49679
  label: "取消",
49652
49680
  color: "neutral",
49653
49681
  variant: "ghost",
@@ -49678,7 +49706,7 @@ var hU = /*#__PURE__*/ XH({
49678
49706
  "modelValue",
49679
49707
  "aria-label",
49680
49708
  "readonly"
49681
- ]), K("div", hX, [q(le, {
49709
+ ]), K("div", vX, [q(le, {
49682
49710
  label: "取消",
49683
49711
  color: "neutral",
49684
49712
  variant: "ghost",
@@ -49703,10 +49731,10 @@ var hU = /*#__PURE__*/ XH({
49703
49731
  class: "dialog-form",
49704
49732
  onSubmit: uu(te, ["prevent"])
49705
49733
  }, [
49706
- K("p", gX, [J(P(e.targetRoom?.title) + " ", 1), K("span", null, "· " + P(e.targetRoom?.message_count) + " 条消息", 1)]),
49707
- a.value === "archive" ? (U(), W("p", _X, "存档后可在侧栏「已存档」中查阅与恢复。已有发言安排会保留;专家需在下次检查时停止自己的定时任务。")) : Y("", !0),
49708
- a.value === "restore" ? (U(), W("p", vX, "恢复不会自动继续讨论;需要继续时,在主持设置中调整阶段。")) : Y("", !0),
49709
- a.value === "delete" ? (U(), W("p", yX, "消息、共识和发言安排将一起删除,无法撤销。")) : Y("", !0),
49734
+ K("p", yX, [J(P(e.targetRoom?.title) + " ", 1), K("span", null, "· " + P(e.targetRoom?.message_count) + " 条消息", 1)]),
49735
+ a.value === "archive" ? (U(), W("p", bX, "存档后可在侧栏「已存档」中查阅与恢复。已有发言安排会保留;专家需在下次检查时停止自己的定时任务。")) : Y("", !0),
49736
+ a.value === "restore" ? (U(), W("p", xX, "恢复不会自动继续讨论;需要继续时,在主持设置中调整阶段。")) : Y("", !0),
49737
+ a.value === "delete" ? (U(), W("p", SX, "消息、共识和发言安排将一起删除,无法撤销。")) : Y("", !0),
49710
49738
  a.value === "rename" ? (U(), G(ue, {
49711
49739
  key: 3,
49712
49740
  label: "房间名称",
@@ -49723,7 +49751,7 @@ var hU = /*#__PURE__*/ XH({
49723
49751
  }, null, 8, ["modelValue"])]),
49724
49752
  _: 1
49725
49753
  })) : Y("", !0),
49726
- K("div", bX, [q(le, {
49754
+ K("div", CX, [q(le, {
49727
49755
  label: "取消",
49728
49756
  color: "neutral",
49729
49757
  variant: "ghost",
@@ -49740,10 +49768,10 @@ var hU = /*#__PURE__*/ XH({
49740
49768
  "loading",
49741
49769
  "disabled"
49742
49770
  ])])
49743
- ], 32)) : a.value === "settings" ? (U(), W("div", xX, [
49744
- q(QY),
49771
+ ], 32)) : a.value === "settings" ? (U(), W("div", wX, [
49772
+ q(tX),
49745
49773
  c[32] ||= K("h3", { class: "account-appearance-heading" }, "外观", -1),
49746
- K("div", SX, [(U(), W(H, null, B(he, (e) => K("button", {
49774
+ K("div", TX, [(U(), W(H, null, B(he, (e) => K("button", {
49747
49775
  key: e.value,
49748
49776
  class: M({ chosen: I(o).theme === e.value }),
49749
49777
  "aria-pressed": I(o).theme === e.value,
@@ -49758,12 +49786,12 @@ var hU = /*#__PURE__*/ XH({
49758
49786
  K("b")
49759
49787
  ], -1)]], 2),
49760
49788
  K("span", null, [K("strong", null, P(e.title), 1), K("small", null, P(e.description), 1)]),
49761
- K("span", wX, [I(o).theme === e.value ? (U(), G(ve, {
49789
+ K("span", DX, [I(o).theme === e.value ? (U(), G(ve, {
49762
49790
  key: 0,
49763
49791
  name: "i-lucide-check"
49764
49792
  })) : Y("", !0)])
49765
- ], 10, CX)), 64))]),
49766
- K("section", TX, [c[29] ||= K("h3", { id: "channel-reading-label" }, "对话宽度", -1), K("div", EX, [(U(!0), W(H, null, B(e.readingOptions, (e) => (U(), G(le, {
49793
+ ], 10, EX)), 64))]),
49794
+ K("section", OX, [c[29] ||= K("h3", { id: "channel-reading-label" }, "对话宽度", -1), K("div", kX, [(U(!0), W(H, null, B(e.readingOptions, (e) => (U(), G(le, {
49767
49795
  key: e.value,
49768
49796
  label: e.label,
49769
49797
  color: "neutral",
@@ -49777,9 +49805,9 @@ var hU = /*#__PURE__*/ XH({
49777
49805
  "aria-pressed",
49778
49806
  "onClick"
49779
49807
  ]))), 128))])]),
49780
- K("section", DX, [
49808
+ K("section", AX, [
49781
49809
  c[30] ||= K("h3", { id: "channel-effects-label" }, "视觉效果", -1),
49782
- K("div", OX, [(U(!0), W(H, null, B(e.effectOptions, (e) => (U(), G(le, {
49810
+ K("div", jX, [(U(!0), W(H, null, B(e.effectOptions, (e) => (U(), G(le, {
49783
49811
  key: e.value,
49784
49812
  label: e.label,
49785
49813
  color: "neutral",
@@ -49795,7 +49823,7 @@ var hU = /*#__PURE__*/ XH({
49795
49823
  ]))), 128))]),
49796
49824
  c[31] ||= K("p", { class: "fine-print" }, "精简模式关闭毛玻璃模糊与多层阴影,适合配置较低或需要更流畅滚动的设备。", -1)
49797
49825
  ])
49798
- ])) : a.value === "create" ? (U(), G(PY, {
49826
+ ])) : a.value === "create" ? (U(), G(LY, {
49799
49827
  key: 5,
49800
49828
  "target-folder": e.targetFolder,
49801
49829
  onSubmit: N,
@@ -49830,7 +49858,7 @@ var hU = /*#__PURE__*/ XH({
49830
49858
  }, null, 8, ["model-value"])]),
49831
49859
  _: 1
49832
49860
  }),
49833
- K("div", kX, [q(ue, { label: "主持人" }, {
49861
+ K("div", MX, [q(ue, { label: "主持人" }, {
49834
49862
  default: L(() => [q(S, {
49835
49863
  "model-value": I(o).fields[ge("host")],
49836
49864
  items: I(A),
@@ -49864,7 +49892,7 @@ var hU = /*#__PURE__*/ XH({
49864
49892
  }, null, 8, ["model-value"])]),
49865
49893
  _: 1
49866
49894
  })) : Y("", !0),
49867
- K("section", AX, [
49895
+ K("section", NX, [
49868
49896
  c[33] ||= K("h3", null, "讨论上限", -1),
49869
49897
  q(bU, {
49870
49898
  ref_key: "topic_limits",
@@ -49884,14 +49912,14 @@ var hU = /*#__PURE__*/ XH({
49884
49912
  "execution",
49885
49913
  "disabled"
49886
49914
  ]),
49887
- ce.value ? (U(), W("p", jX, "修改上限前,请先把阶段保存为“已暂停”。")) : Y("", !0)
49915
+ ce.value ? (U(), W("p", PX, "修改上限前,请先把阶段保存为“已暂停”。")) : Y("", !0)
49888
49916
  ]),
49889
49917
  q(we, {
49890
49918
  open: oe.value,
49891
49919
  "onUpdate:open": c[20] ||= (e) => oe.value = e,
49892
49920
  class: "advanced-fields"
49893
49921
  }, {
49894
- content: L(() => [K("div", MX, [
49922
+ content: L(() => [K("div", FX, [
49895
49923
  (U(), W(H, null, B([
49896
49924
  {
49897
49925
  key: "user_request",
@@ -49918,11 +49946,11 @@ var hU = /*#__PURE__*/ XH({
49918
49946
  }, null, 8, ["model-value", "onUpdate:modelValue"])]),
49919
49947
  _: 2
49920
49948
  }, 1032, ["label"])), 64)),
49921
- K("div", NX, [(U(!0), W(H, null, B(I(ie), (e) => (U(), W("div", { key: e }, [K("label", null, P(e), 1), q(S, {
49922
- "model-value": I(o).experts[GX]?.[e] || "none",
49949
+ K("div", IX, [(U(!0), W(H, null, B(I(ie), (e) => (U(), W("div", { key: e }, [K("label", null, P(e), 1), q(S, {
49950
+ "model-value": I(o).experts[JX]?.[e] || "none",
49923
49951
  items: ae,
49924
49952
  "aria-label": `${e} 参与方式`,
49925
- "onUpdate:modelValue": (t) => I(s).write_expert(GX, e, t === "none" ? "" : t)
49953
+ "onUpdate:modelValue": (t) => I(s).write_expert(JX, e, t === "none" ? "" : t)
49926
49954
  }, null, 8, [
49927
49955
  "model-value",
49928
49956
  "aria-label",
@@ -49940,7 +49968,7 @@ var hU = /*#__PURE__*/ XH({
49940
49968
  }, null, 8, ["trailing-icon"])]),
49941
49969
  _: 1
49942
49970
  }, 8, ["open"]),
49943
- K("div", PX, [q(le, {
49971
+ K("div", LX, [q(le, {
49944
49972
  label: "取消",
49945
49973
  color: "neutral",
49946
49974
  variant: "ghost",
@@ -49984,7 +50012,7 @@ var hU = /*#__PURE__*/ XH({
49984
50012
  _: 1
49985
50013
  }),
49986
50014
  c[35] ||= K("p", { class: "fine-print" }, "创建后为待通知状态;由主持人实际联系专家。", -1),
49987
- K("div", FX, [q(le, {
50015
+ K("div", RX, [q(le, {
49988
50016
  label: "取消",
49989
50017
  variant: "ghost",
49990
50018
  color: "neutral",
@@ -49995,8 +50023,8 @@ var hU = /*#__PURE__*/ XH({
49995
50023
  label: "创建发言安排",
49996
50024
  loading: I(u) === "schedule"
49997
50025
  }, null, 8, ["loading"])])
49998
- ], 32)) : a.value === "message" ? (U(), W("div", IX, [fe.value ? (U(), W("p", LX, P(fe.value), 1)) : de.value ? (U(), W(H, { key: 1 }, [
49999
- K("div", RX, [
50026
+ ], 32)) : a.value === "message" ? (U(), W("div", zX, [fe.value ? (U(), W("p", BX, P(fe.value), 1)) : de.value ? (U(), W(H, { key: 1 }, [
50027
+ K("div", VX, [
50000
50028
  K("strong", null, P(I(s).display_name(de.value.author)), 1),
50001
50029
  K("span", null, "#" + P(de.value.id), 1),
50002
50030
  q(Te, {
@@ -50007,14 +50035,14 @@ var hU = /*#__PURE__*/ XH({
50007
50035
  _: 1
50008
50036
  })
50009
50037
  ]),
50010
- K("p", zX, P(I(s).provenance(de.value)) + " · " + P(new Date(de.value.created_at).toLocaleString("zh-CN")), 1),
50011
- de.value.summary ? (U(), W("section", BX, [K("small", null, "回答摘要 · " + P(I(s).display_name(de.value.summary_by)), 1), K("p", VX, P(de.value.summary), 1)])) : Y("", !0),
50012
- K("p", HX, P(de.value.text), 1),
50038
+ K("p", HX, P(I(s).provenance(de.value)) + " · " + P(new Date(de.value.created_at).toLocaleString("zh-CN")), 1),
50039
+ de.value.summary ? (U(), W("section", UX, [K("small", null, "回答摘要 · " + P(I(s).display_name(de.value.summary_by)), 1), K("p", WX, P(de.value.summary), 1)])) : Y("", !0),
50040
+ K("p", GX, P(de.value.text), 1),
50013
50041
  de.value.attachments?.length ? (U(), W("div", {
50014
50042
  key: 1,
50015
50043
  onClick: ye,
50016
50044
  innerHTML: I(s).attachment_markup(de.value.attachments)
50017
- }, null, 8, UX)) : Y("", !0),
50045
+ }, null, 8, KX)) : Y("", !0),
50018
50046
  de.value.reply_to ? (U(), G(le, {
50019
50047
  key: 2,
50020
50048
  label: `查看被回复的原文 #${de.value.reply_to}`,
@@ -50024,7 +50052,7 @@ var hU = /*#__PURE__*/ XH({
50024
50052
  class: "channel-surface-button",
50025
50053
  onClick: xe
50026
50054
  }, null, 8, ["label"])) : Y("", !0)
50027
- ], 64)) : (U(), W("p", WX, "正在读取原文…"))])) : Y("", !0)]),
50055
+ ], 64)) : (U(), W("p", qX, "正在读取原文…"))])) : Y("", !0)]),
50028
50056
  _: 1
50029
50057
  }, 8, [
50030
50058
  "open",
@@ -50035,7 +50063,7 @@ var hU = /*#__PURE__*/ XH({
50035
50063
  ]);
50036
50064
  };
50037
50065
  }
50038
- }, qX = {
50066
+ }, XX = {
50039
50067
  __name: "ContextMenuContent",
50040
50068
  props: {
50041
50069
  items: {
@@ -50330,7 +50358,7 @@ var hU = /*#__PURE__*/ XH({
50330
50358
  "disabled",
50331
50359
  "text-value",
50332
50360
  "class"
50333
- ]), q(qX, X({
50361
+ ]), q(XX, X({
50334
50362
  sub: "",
50335
50363
  class: r.ui?.content,
50336
50364
  ui: e.ui,
@@ -50441,7 +50469,7 @@ var hU = /*#__PURE__*/ XH({
50441
50469
  _: 3
50442
50470
  }, 16)], 64));
50443
50471
  }
50444
- }, JX = {
50472
+ }, ZX = {
50445
50473
  slots: {
50446
50474
  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",
50447
50475
  viewport: "relative divide-y divide-default scroll-py-1 overflow-y-auto flex-1",
@@ -50629,7 +50657,7 @@ var hU = /*#__PURE__*/ XH({
50629
50657
  }
50630
50658
  ],
50631
50659
  defaultVariants: { size: "md" }
50632
- }, YX = {
50660
+ }, QX = {
50633
50661
  __name: "ContextMenu",
50634
50662
  props: {
50635
50663
  size: {
@@ -50699,7 +50727,7 @@ var hU = /*#__PURE__*/ XH({
50699
50727
  emits: ["update:open"],
50700
50728
  setup(e, { emit: t }) {
50701
50729
  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({
50702
- extend: JX,
50730
+ extend: ZX,
50703
50731
  ...o.ui?.contextMenu || {}
50704
50732
  })({ size: a.size }));
50705
50733
  return (e, t) => (U(), G(I(iC), N(Ss(I(s))), {
@@ -50711,7 +50739,7 @@ var hU = /*#__PURE__*/ XH({
50711
50739
  }, {
50712
50740
  default: L(() => [V(e.$slots, "default")]),
50713
50741
  _: 3
50714
- }, 8, ["disabled", "class"])) : Y("", !0), q(qX, X({
50742
+ }, 8, ["disabled", "class"])) : Y("", !0), q(XX, X({
50715
50743
  class: u.value.content({ class: [!i.default && I(a).class, I(a).ui?.content] }),
50716
50744
  ui: u.value,
50717
50745
  "ui-override": I(a).ui
@@ -50741,47 +50769,47 @@ var hU = /*#__PURE__*/ XH({
50741
50769
  _: 3
50742
50770
  }, 16));
50743
50771
  }
50744
- }, XX = { class: "channel-directory-manager" }, ZX = { class: "channel-directory-heading" }, QX = ["aria-expanded"], $X = { class: "channel-directory-actions" }, eZ = {
50772
+ }, $X = { class: "channel-directory-manager" }, eZ = { class: "channel-directory-heading" }, tZ = ["aria-expanded"], nZ = { class: "channel-directory-actions" }, rZ = {
50745
50773
  "aria-label": "协作房间列表",
50746
50774
  class: "channel-room-list",
50747
50775
  "data-room-directory": ""
50748
- }, tZ = ["data-room-folder", "data-drag-folder"], nZ = [
50776
+ }, iZ = ["data-room-folder", "data-drag-folder"], aZ = [
50749
50777
  "disabled",
50750
50778
  "aria-label",
50751
50779
  "aria-expanded",
50752
50780
  "onKeydown",
50753
50781
  "onClick"
50754
- ], rZ = { class: "channel-folder-name" }, iZ = { class: "channel-folder-actions" }, aZ = {
50782
+ ], oZ = { class: "channel-folder-name" }, sZ = { class: "channel-folder-actions" }, cZ = {
50755
50783
  class: "channel-directory-count",
50756
50784
  "aria-hidden": "true"
50757
- }, oZ = ["data-drop-folder"], sZ = {
50785
+ }, lZ = ["data-drop-folder"], uZ = {
50758
50786
  key: 0,
50759
50787
  class: "channel-directory-empty",
50760
50788
  role: "status"
50761
- }, cZ = ["data-drag-room"], lZ = [
50789
+ }, dZ = ["data-drag-room"], fZ = [
50762
50790
  "aria-label",
50763
50791
  "disabled",
50764
50792
  "onKeydown"
50765
- ], uZ = [
50793
+ ], pZ = [
50766
50794
  "title",
50767
50795
  "aria-label",
50768
50796
  "aria-current",
50769
50797
  "onClick"
50770
- ], dZ = { class: "channel-room-actions" }, fZ = {
50798
+ ], mZ = { class: "channel-room-actions" }, hZ = {
50771
50799
  key: 0,
50772
50800
  class: "channel-directory-empty"
50773
- }, pZ = {
50801
+ }, gZ = {
50774
50802
  key: 0,
50775
50803
  class: "channel-archive-count"
50776
- }, mZ = {
50804
+ }, _Z = {
50777
50805
  key: 0,
50778
50806
  role: "status",
50779
50807
  class: "channel-directory-notice"
50780
- }, hZ = {
50808
+ }, vZ = {
50781
50809
  key: 1,
50782
50810
  role: "alert",
50783
50811
  class: "channel-directory-error"
50784
- }, gZ = {
50812
+ }, yZ = {
50785
50813
  __name: "ChannelDirectory",
50786
50814
  emits: [
50787
50815
  "select",
@@ -50995,8 +51023,8 @@ var hU = /*#__PURE__*/ XH({
50995
51023
  ];
50996
51024
  }
50997
51025
  return (e, t) => {
50998
- let u = MA, _ = sA, v = CH, x = $V, S = YX;
50999
- return U(), W("div", XX, [
51026
+ let u = MA, _ = sA, v = CH, x = $V, S = QX;
51027
+ return U(), W("div", $X, [
51000
51028
  q(u, {
51001
51029
  label: "新建对话",
51002
51030
  icon: "i-lucide-plus",
@@ -51005,12 +51033,12 @@ var hU = /*#__PURE__*/ XH({
51005
51033
  disabled: I(r).directory_pending.includes("create-room"),
51006
51034
  onClick: t[0] ||= (e) => n("create", null)
51007
51035
  }, null, 8, ["disabled"]),
51008
- K("div", ZX, [K("button", {
51036
+ K("div", eZ, [K("button", {
51009
51037
  type: "button",
51010
51038
  class: "channel-section-toggle",
51011
51039
  "aria-expanded": m.value,
51012
51040
  onClick: t[1] ||= (e) => m.value = !m.value
51013
- }, [q(_, { name: m.value ? "i-lucide-chevron-down" : "i-lucide-chevron-right" }, null, 8, ["name"]), t[7] ||= J("协作房间", -1)], 8, QX), K("div", $X, [
51041
+ }, [q(_, { name: m.value ? "i-lucide-chevron-down" : "i-lucide-chevron-right" }, null, 8, ["name"]), t[7] ||= J("协作房间", -1)], 8, tZ), K("div", nZ, [
51014
51042
  q(v, {
51015
51043
  items: d.value,
51016
51044
  content: {
@@ -51052,7 +51080,7 @@ var hU = /*#__PURE__*/ XH({
51052
51080
  onChange: p
51053
51081
  }, null, 544)
51054
51082
  ])]),
51055
- vr(K("nav", eZ, [(U(!0), W(H, null, B(l.value, (e, s) => (U(), W("section", {
51083
+ vr(K("nav", rZ, [(U(!0), W(H, null, B(l.value, (e, s) => (U(), W("section", {
51056
51084
  key: e.order_id,
51057
51085
  class: "channel-folder-section",
51058
51086
  "data-room-folder": e.id,
@@ -51082,9 +51110,9 @@ var hU = /*#__PURE__*/ XH({
51082
51110
  }, [
51083
51111
  q(_, { name: h.value.has(e.id) ? "i-lucide-chevron-right" : "i-lucide-chevron-down" }, null, 8, ["name"]),
51084
51112
  q(_, { name: "i-lucide-folder" }),
51085
- K("span", rZ, P(e.name), 1)
51086
- ], 40, nZ),
51087
- K("div", iZ, [q(v, {
51113
+ K("span", oZ, P(e.name), 1)
51114
+ ], 40, aZ),
51115
+ K("div", sZ, [q(v, {
51088
51116
  items: g(e, s),
51089
51117
  content: {
51090
51118
  align: "start",
@@ -51118,12 +51146,12 @@ var hU = /*#__PURE__*/ XH({
51118
51146
  ])]),
51119
51147
  _: 2
51120
51148
  }, 1032, ["text"])]),
51121
- K("small", aZ, P(e.pending ? "保存中" : e.rooms.length), 1)
51149
+ K("small", cZ, P(e.pending ? "保存中" : e.rooms.length), 1)
51122
51150
  ], 2)) : Y("", !0), !e.id || !h.value.has(e.id) ? (U(), W("div", {
51123
51151
  key: 1,
51124
51152
  class: M(e.id ? "channel-folder-rooms" : "channel-root-rooms"),
51125
51153
  "data-drop-folder": e.id ? void 0 : ""
51126
- }, [I(r).creating_room && (I(r).creating_room.folder_id || "") === e.id ? (U(), W("p", sZ, "正在创建:" + P(I(r).creating_room.title), 1)) : Y("", !0), (U(!0), W(H, null, B(e.rooms, (s, c) => (U(), G(S, {
51154
+ }, [I(r).creating_room && (I(r).creating_room.folder_id || "") === e.id ? (U(), W("p", uZ, "正在创建:" + P(I(r).creating_room.title), 1)) : Y("", !0), (U(!0), W(H, null, B(e.rooms, (s, c) => (U(), G(S, {
51127
51155
  key: s.id,
51128
51156
  items: b(s, c, s.folder_id || null, e.rooms.length),
51129
51157
  ui: { content: "channel-menu channel-topic-menu" }
@@ -51148,7 +51176,7 @@ var hU = /*#__PURE__*/ XH({
51148
51176
  direction: 1,
51149
51177
  folder_id: s.folder_id || null
51150
51178
  }), ["prevent"]), ["down"])]
51151
- }, [q(_, { name: "i-lucide-grip-vertical" })], 40, lZ),
51179
+ }, [q(_, { name: "i-lucide-grip-vertical" })], 40, fZ),
51152
51180
  K("button", {
51153
51181
  class: "channel-room-select",
51154
51182
  "data-drag-title": "",
@@ -51157,8 +51185,8 @@ var hU = /*#__PURE__*/ XH({
51157
51185
  "aria-current": s.id === I(r).room?.id ? "page" : void 0,
51158
51186
  onPointerdown: t[5] ||= (e) => !I(o) && I(i).start_drag(e),
51159
51187
  onClick: (e) => n("select", s.id)
51160
- }, [K("span", null, P(s.title), 1)], 40, uZ),
51161
- K("div", dZ, [q(x, {
51188
+ }, [K("span", null, P(s.title), 1)], 40, pZ),
51189
+ K("div", mZ, [q(x, {
51162
51190
  text: s.archived ? "恢复房间" : "存档房间",
51163
51191
  ui: { content: "channel-topic-tooltip" }
51164
51192
  }, {
@@ -51199,9 +51227,9 @@ var hU = /*#__PURE__*/ XH({
51199
51227
  }, null, 8, ["aria-label"])]),
51200
51228
  _: 2
51201
51229
  }, 1032, ["items"])])
51202
- ], 10, cZ)]),
51230
+ ], 10, dZ)]),
51203
51231
  _: 2
51204
- }, 1032, ["items"]))), 128))], 10, oZ)) : Y("", !0)], 8, tZ))), 128)), s.value.length ? Y("", !0) : (U(), W("p", fZ, "暂无协作房间"))], 512), [[Vc, m.value]]),
51232
+ }, 1032, ["items"]))), 128))], 10, lZ)) : Y("", !0)], 8, iZ))), 128)), s.value.length ? Y("", !0) : (U(), W("p", hZ, "暂无协作房间"))], 512), [[Vc, m.value]]),
51205
51233
  vr(q(u, {
51206
51234
  icon: "i-lucide-archive",
51207
51235
  color: "neutral",
@@ -51210,48 +51238,48 @@ var hU = /*#__PURE__*/ XH({
51210
51238
  "aria-haspopup": "dialog",
51211
51239
  onClick: t[6] ||= (e) => n("archives")
51212
51240
  }, {
51213
- default: L(() => [t[8] ||= K("span", { class: "channel-archive-label" }, "已存档", -1), c.value ? (U(), W("small", pZ, P(c.value), 1)) : Y("", !0)]),
51241
+ default: L(() => [t[8] ||= K("span", { class: "channel-archive-label" }, "已存档", -1), c.value ? (U(), W("small", gZ, P(c.value), 1)) : Y("", !0)]),
51214
51242
  _: 1
51215
51243
  }, 512), [[Vc, m.value]]),
51216
- I(r).directory_notice ? (U(), W("p", mZ, P(I(r).directory_notice), 1)) : Y("", !0),
51217
- I(r).directory_error ? (U(), W("p", hZ, P(I(r).directory_error), 1)) : Y("", !0)
51244
+ I(r).directory_notice ? (U(), W("p", _Z, P(I(r).directory_notice), 1)) : Y("", !0),
51245
+ I(r).directory_error ? (U(), W("p", vZ, P(I(r).directory_error), 1)) : Y("", !0)
51218
51246
  ]);
51219
51247
  };
51220
51248
  }
51221
- }, _Z = {
51249
+ }, bZ = {
51222
51250
  key: 0,
51223
51251
  class: "pb-invite",
51224
51252
  "aria-label": "启动手动成员"
51225
- }, vZ = { class: "pb-invite-lead" }, yZ = {
51253
+ }, xZ = { class: "pb-invite-lead" }, SZ = {
51226
51254
  key: 0,
51227
51255
  role: "alert",
51228
51256
  class: "pb-free-note is-error"
51229
- }, bZ = { class: "pb-invite-launches" }, xZ = { class: "pb-invite-footer" }, SZ = {
51257
+ }, CZ = { class: "pb-invite-launches" }, wZ = { class: "pb-invite-footer" }, TZ = {
51230
51258
  class: "pb-invite-library",
51231
51259
  role: "group",
51232
51260
  "aria-label": "选择 AI(可多选)"
51233
- }, CZ = [
51261
+ }, EZ = [
51234
51262
  "aria-pressed",
51235
51263
  "title",
51236
51264
  "onClick"
51237
- ], wZ = {
51265
+ ], DZ = {
51238
51266
  key: 0,
51239
51267
  class: "pb-invite-cards"
51240
- }, TZ = {
51268
+ }, OZ = {
51241
51269
  key: 0,
51242
51270
  class: "fine-print"
51243
- }, EZ = ["aria-hidden"], DZ = {
51271
+ }, kZ = ["aria-hidden"], AZ = {
51244
51272
  key: 2,
51245
51273
  class: "pb-invite-empty"
51246
- }, OZ = {
51274
+ }, jZ = {
51247
51275
  key: 3,
51248
51276
  role: "alert",
51249
51277
  class: "fine-print"
51250
- }, kZ = {
51278
+ }, MZ = {
51251
51279
  key: 4,
51252
51280
  role: "alert",
51253
51281
  class: "pb-free-note is-error"
51254
- }, AZ = { class: "pb-invite-footer" }, jZ = 2e3, MZ = /*#__PURE__*/ XH({
51282
+ }, NZ = { class: "pb-invite-footer" }, PZ = 2e3, FZ = /*#__PURE__*/ XH({
51255
51283
  __name: "InviteDialog",
51256
51284
  props: /*@__PURE__*/ Fa({ description: {
51257
51285
  type: String,
@@ -51269,7 +51297,7 @@ var hU = /*#__PURE__*/ XH({
51269
51297
  async function u(e) {
51270
51298
  clearTimeout(l), c.value = "", await i("copy_member_launch", e) && (c.value = e, l = setTimeout(() => {
51271
51299
  c.value = "";
51272
- }, jZ));
51300
+ }, PZ));
51273
51301
  }
51274
51302
  let d = /* @__PURE__ */ F([]), f = 0, p = /* @__PURE__ */ F([]), m = /* @__PURE__ */ F(!1), h = Z(() => Object.keys(r.launch_clients)), g = Z(() => (o.value.members || []).map((e) => e.name)), _ = (e) => g.value.filter((t) => r.platform_of(t) === e).length, v = Z(() => [...d.value.filter((e) => e.mode !== "manual"), ...d.value.filter((e) => e.mode === "manual")]), y = Z(() => {
51275
51303
  let e = [...g.value];
@@ -51333,10 +51361,10 @@ var hU = /*#__PURE__*/ XH({
51333
51361
  body: "dialog-body"
51334
51362
  }
51335
51363
  }, {
51336
- body: L(() => [p.value.length && !d.value.length ? (U(), W("div", _Z, [
51337
- K("p", vZ, P(p.value.length > 1 ? `${p.value.length} 位手动成员已加入` : "手动成员已加入") + ",把启动指令交给各自的 AI 会话,注册后才算到场。", 1),
51338
- I(n).access?.error ? (U(), W("p", yZ, P(I(n).access.error), 1)) : Y("", !0),
51339
- K("ul", bZ, [(U(!0), W(H, null, B(p.value, (e) => (U(), W("li", { key: e }, [
51364
+ body: L(() => [p.value.length && !d.value.length ? (U(), W("div", bZ, [
51365
+ K("p", xZ, P(p.value.length > 1 ? `${p.value.length} 位手动成员已加入` : "手动成员已加入") + ",把启动指令交给各自的 AI 会话,注册后才算到场。", 1),
51366
+ I(n).access?.error ? (U(), W("p", SZ, P(I(n).access.error), 1)) : Y("", !0),
51367
+ K("ul", CZ, [(U(!0), W(H, null, B(p.value, (e) => (U(), W("li", { key: e }, [
51340
51368
  q(l, {
51341
51369
  src: I(r).identities[I(r).platform_of(e)]?.icon,
51342
51370
  text: I(r).identities[I(r).platform_of(e)]?.initials,
@@ -51371,7 +51399,7 @@ var hU = /*#__PURE__*/ XH({
51371
51399
  ])
51372
51400
  ]))), 128))]),
51373
51401
  o[3] ||= K("p", { class: "fine-print" }, "指令含该成员的凭证,只交给对应的会话;关闭后仍可在参与者列表中复制。", -1),
51374
- K("div", xZ, [q(f, {
51402
+ K("div", wZ, [q(f, {
51375
51403
  label: "完成",
51376
51404
  class: "channel-primary-button",
51377
51405
  onClick: o[0] ||= (e) => t.value = !1
@@ -51382,7 +51410,7 @@ var hU = /*#__PURE__*/ XH({
51382
51410
  "aria-label": "邀请专家",
51383
51411
  onSubmit: uu(w, ["prevent"])
51384
51412
  }, [
51385
- K("div", SZ, [(U(!0), W(H, null, B(h.value, (e) => (U(), W("button", {
51413
+ K("div", TZ, [(U(!0), W(H, null, B(h.value, (e) => (U(), W("button", {
51386
51414
  key: e,
51387
51415
  type: "button",
51388
51416
  "aria-pressed": d.value.some((t) => t.name === e),
@@ -51399,11 +51427,11 @@ var hU = /*#__PURE__*/ XH({
51399
51427
  "text",
51400
51428
  "alt",
51401
51429
  "class"
51402
- ]), J(P(e), 1)], 8, CZ))), 128))]),
51403
- d.value.length ? (U(), W("div", wZ, [(U(!0), W(H, null, B(d.value, (e) => (U(), W("div", {
51430
+ ]), J(P(e), 1)], 8, EZ))), 128))]),
51431
+ d.value.length ? (U(), W("div", DZ, [(U(!0), W(H, null, B(d.value, (e) => (U(), W("div", {
51404
51432
  key: e.id,
51405
51433
  class: "pb-invite-pick"
51406
- }, [q(YJ, {
51434
+ }, [q(QJ, {
51407
51435
  name: e.name,
51408
51436
  mode: e.mode,
51409
51437
  choices: ["cli", "manual"],
@@ -51420,15 +51448,15 @@ var hU = /*#__PURE__*/ XH({
51420
51448
  "onMode",
51421
51449
  "onSession",
51422
51450
  "onRemove"
51423
- ]), y.value.get(e) === e.name ? Y("", !0) : (U(), W("p", TZ, "同一 AI 已有实例,将以 " + P(y.value.get(e)) + " 加入,使用独立会话。", 1))]))), 128))])) : Y("", !0),
51451
+ ]), y.value.get(e) === e.name ? Y("", !0) : (U(), W("p", OZ, "同一 AI 已有实例,将以 " + P(y.value.get(e)) + " 加入,使用独立会话。", 1))]))), 128))])) : Y("", !0),
51424
51452
  d.value.length ? (U(), W("p", {
51425
51453
  key: 1,
51426
51454
  class: M(["fine-print", { "pb-invite-reserved": !(d.value.some((e) => e.mode === "manual") && d.value.some((e) => e.mode !== "manual")) }]),
51427
51455
  "aria-hidden": !(d.value.some((e) => e.mode === "manual") && d.value.some((e) => e.mode !== "manual"))
51428
- }, "手动启动的成员排在程序启动的成员之后加入队列。", 10, EZ)) : (U(), W("p", DZ, "选择一位或多位 AI(同一 AI 可重复添加),点卡片翻面设置软件、模型与项目权限。")),
51429
- d.value.some((e) => e.mode === "cli") && !I(n).launch.available ? (U(), W("p", OZ, "邀请需要本机服务,请在运行 AI 的电脑打开本机网站。")) : Y("", !0),
51430
- m.value && I(n).free_error ? (U(), W("p", kZ, P(I(n).free_error), 1)) : Y("", !0),
51431
- K("div", AZ, [q(f, {
51456
+ }, "手动启动的成员排在程序启动的成员之后加入队列。", 10, kZ)) : (U(), W("p", AZ, "选择一位或多位 AI(同一 AI 可重复添加),点卡片翻面设置软件、模型与项目权限。")),
51457
+ d.value.some((e) => e.mode === "cli") && !I(n).launch.available ? (U(), W("p", jZ, "邀请需要本机服务,请在运行 AI 的电脑打开本机网站。")) : Y("", !0),
51458
+ m.value && I(n).free_error ? (U(), W("p", MZ, P(I(n).free_error), 1)) : Y("", !0),
51459
+ K("div", NZ, [q(f, {
51432
51460
  label: "取消",
51433
51461
  color: "neutral",
51434
51462
  variant: "ghost",
@@ -51450,40 +51478,40 @@ var hU = /*#__PURE__*/ XH({
51450
51478
  }, 8, ["open", "description"]);
51451
51479
  };
51452
51480
  }
51453
- }, [["__scopeId", "data-v-3ca69064"]]), NZ = { class: "speaking-order" }, PZ = {
51481
+ }, [["__scopeId", "data-v-3ca69064"]]), IZ = { class: "speaking-order" }, LZ = {
51454
51482
  key: 0,
51455
51483
  class: "speaking-order-divider",
51456
51484
  "aria-hidden": "true"
51457
- }, FZ = ["data-key", "data-movable"], IZ = [
51485
+ }, RZ = ["data-key", "data-movable"], zZ = [
51458
51486
  "aria-disabled",
51459
51487
  "aria-label",
51460
51488
  "title",
51461
51489
  "onPointerdown",
51462
51490
  "onKeydown"
51463
- ], LZ = { class: "speaking-order-number" }, RZ = {
51491
+ ], BZ = { class: "speaking-order-number" }, VZ = {
51464
51492
  key: 1,
51465
51493
  class: "speaking-order-place",
51466
51494
  title: "已发言",
51467
51495
  "aria-label": "已发言"
51468
- }, zZ = ["title"], BZ = {
51496
+ }, HZ = ["title"], UZ = {
51469
51497
  key: 0,
51470
51498
  class: "speaking-order-later"
51471
- }, VZ = {
51499
+ }, WZ = {
51472
51500
  key: 1,
51473
51501
  class: "speaking-order-divider",
51474
51502
  "aria-hidden": "true"
51475
- }, HZ = {
51503
+ }, GZ = {
51476
51504
  key: 0,
51477
51505
  role: "status",
51478
51506
  class: "pb-free-note"
51479
- }, UZ = {
51507
+ }, KZ = {
51480
51508
  key: 1,
51481
51509
  role: "alert",
51482
51510
  class: "pb-free-note is-error"
51483
- }, WZ = {
51511
+ }, qZ = {
51484
51512
  class: "speaking-order-live",
51485
51513
  "aria-live": "polite"
51486
- }, GZ = "发言顺序刚有变化,已更新为最新顺序,请重新调整", KZ = /*#__PURE__*/ XH({
51514
+ }, JZ = "发言顺序刚有变化,已更新为最新顺序,请重新调整", YZ = /*#__PURE__*/ XH({
51487
51515
  __name: "SpeakingOrder",
51488
51516
  props: {
51489
51517
  away: {
@@ -51503,7 +51531,7 @@ var hU = /*#__PURE__*/ XH({
51503
51531
  }), c = Z(() => s.value.kind === "default" ? "idle" : "queued"), l = Z(() => !!n.value.access?.can_manage && !o.value.archived && s.value.movable.length > 1), u = {
51504
51532
  queue: "不在本次依次回答中",
51505
51533
  turns: "本轮未安排"
51506
- }, d = Z(() => s.value.kind === "default" ? "拖动设置默认发言顺序,@全体依次 按此顺序;聚焦后可用上下方向键" : "拖动调整还没发言的顺序,立即生效;聚焦后可用上下方向键"), f = /* @__PURE__ */ F(!1), p = Z(() => f.value ? GZ : n.value.order_error?.room_id === o.value.id ? n.value.order_error.message : ""), m = /* @__PURE__ */ F(null), h = /* @__PURE__ */ F(null), g = /* @__PURE__ */ F(null), _ = /* @__PURE__ */ F("");
51534
+ }, d = Z(() => s.value.kind === "default" ? "拖动设置默认发言顺序,@全体依次 按此顺序;聚焦后可用上下方向键" : "拖动调整还没发言的顺序,立即生效;聚焦后可用上下方向键"), f = /* @__PURE__ */ F(!1), p = Z(() => f.value ? JZ : n.value.order_error?.room_id === o.value.id ? n.value.order_error.message : ""), m = /* @__PURE__ */ F(null), h = /* @__PURE__ */ F(null), g = /* @__PURE__ */ F(null), _ = /* @__PURE__ */ F("");
51507
51535
  R(() => s.value.revision, () => {
51508
51536
  g.value = null;
51509
51537
  }), R(() => o.value.id, () => {
@@ -51590,13 +51618,13 @@ var hU = /*#__PURE__*/ XH({
51590
51618
  }
51591
51619
  return (e, n) => {
51592
51620
  let i = sA;
51593
- return U(), W("div", NZ, [
51621
+ return U(), W("div", IZ, [
51594
51622
  K("ul", {
51595
51623
  ref_key: "list",
51596
51624
  ref: m,
51597
51625
  class: M(["pb-members", { "is-dragging": h.value }])
51598
51626
  }, [
51599
- (U(!0), W(H, null, B(y.value, (t, r) => (U(), W(H, { key: t.key }, [t.outside ? (U(), W("li", PZ, [K("span", null, P(u[s.value.kind]), 1)])) : Y("", !0), K("li", {
51627
+ (U(!0), W(H, null, B(y.value, (t, r) => (U(), W(H, { key: t.key }, [t.outside ? (U(), W("li", LZ, [K("span", null, P(u[s.value.kind]), 1)])) : Y("", !0), K("li", {
51600
51628
  class: M(["pb-member speaking-order-row", [
51601
51629
  `is-${t.state}`,
51602
51630
  E(r),
@@ -51617,19 +51645,19 @@ var hU = /*#__PURE__*/ XH({
51617
51645
  onPointercancel: n[0] ||= (e) => w(e, !0),
51618
51646
  onLostpointercapture: n[1] ||= (e) => w(e, !0),
51619
51647
  onKeydown: [fu((e) => D(e, b(r), -1), ["up"]), fu((e) => D(e, b(r), 1), ["down"])]
51620
- }, [K("span", LZ, P(t.place), 1), q(i, {
51648
+ }, [K("span", BZ, P(t.place), 1), q(i, {
51621
51649
  name: "i-lucide-grip-vertical",
51622
51650
  class: "speaking-order-handle"
51623
- })], 40, IZ)) : t.state === "done" ? (U(), W("span", RZ, [q(i, { name: "i-lucide-check" })])) : (U(), W("span", {
51651
+ })], 40, zZ)) : t.state === "done" ? (U(), W("span", VZ, [q(i, { name: "i-lucide-check" })])) : (U(), W("span", {
51624
51652
  key: 2,
51625
51653
  class: "speaking-order-place",
51626
51654
  title: t.state === "speaking" ? "正在发言" : void 0
51627
- }, P(t.place || ""), 9, zZ)), V(e.$slots, "default", {
51655
+ }, P(t.place || ""), 9, HZ)), V(e.$slots, "default", {
51628
51656
  item: t,
51629
51657
  place: t.place
51630
- }, void 0, !0)], 10, FZ)], 64))), 128)),
51631
- s.value.later?.length ? (U(), W("li", BZ, [K("details", null, [K("summary", null, "后续已排 " + P(s.value.later.length) + " 轮", 1), K("ol", null, [(U(!0), W(H, null, B(s.value.later, (e, n) => (U(), W("li", { key: n }, [K("span", null, P(t.round ? `第 ${t.round + n + 1} 轮` : `后续第 ${n + 1} 轮`), 1), J(P(e.map((e) => I(r).display_name(e)).join(" → ")), 1)]))), 128))])])])) : Y("", !0),
51632
- t.away.length ? (U(), W("li", VZ, [...n[2] ||= [K("span", null, "已离开", -1)]])) : Y("", !0),
51658
+ }, void 0, !0)], 10, RZ)], 64))), 128)),
51659
+ s.value.later?.length ? (U(), W("li", UZ, [K("details", null, [K("summary", null, "后续已排 " + P(s.value.later.length) + " 轮", 1), K("ol", null, [(U(!0), W(H, null, B(s.value.later, (e, n) => (U(), W("li", { key: n }, [K("span", null, P(t.round ? `第 ${t.round + n + 1} 轮` : `后续第 ${n + 1} 轮`), 1), J(P(e.map((e) => I(r).display_name(e)).join(" → ")), 1)]))), 128))])])])) : Y("", !0),
51660
+ t.away.length ? (U(), W("li", WZ, [...n[2] ||= [K("span", null, "已离开", -1)]])) : Y("", !0),
51633
51661
  (U(!0), W(H, null, B(t.away, (t) => (U(), W("li", {
51634
51662
  key: `away-${t}`,
51635
51663
  class: "pb-member speaking-order-row is-away"
@@ -51641,78 +51669,78 @@ var hU = /*#__PURE__*/ XH({
51641
51669
  place: 0
51642
51670
  }, void 0, !0)]))), 128))
51643
51671
  ], 2),
51644
- p.value === GZ ? (U(), W("p", HZ, P(p.value), 1)) : p.value ? (U(), W("p", UZ, P(p.value), 1)) : Y("", !0),
51645
- K("p", WZ, P(_.value), 1)
51672
+ p.value === JZ ? (U(), W("p", GZ, P(p.value), 1)) : p.value ? (U(), W("p", KZ, P(p.value), 1)) : Y("", !0),
51673
+ K("p", qZ, P(_.value), 1)
51646
51674
  ]);
51647
51675
  };
51648
51676
  }
51649
- }, [["__scopeId", "data-v-dc33a051"]]), qZ = {
51677
+ }, [["__scopeId", "data-v-dc33a051"]]), XZ = {
51650
51678
  key: 0,
51651
51679
  class: "pb-header"
51652
- }, JZ = { class: "pb-mode" }, YZ = { class: "pb-status-line" }, XZ = { role: "status" }, ZZ = {
51680
+ }, ZZ = { class: "pb-mode" }, QZ = { class: "pb-status-line" }, $Z = { role: "status" }, eQ = {
51653
51681
  key: 0,
51654
51682
  class: "pb-mode"
51655
- }, QZ = {
51683
+ }, tQ = {
51656
51684
  key: 0,
51657
51685
  class: "pb-status-detail"
51658
- }, $Z = {
51686
+ }, nQ = {
51659
51687
  key: 1,
51660
51688
  class: "pb-status-detail"
51661
- }, eQ = { class: "pb-error-detail" }, tQ = {
51689
+ }, rQ = { class: "pb-error-detail" }, iQ = {
51662
51690
  key: 3,
51663
51691
  class: "pb-meters"
51664
- }, nQ = { class: "pb-meter-label" }, rQ = {
51692
+ }, aQ = { class: "pb-meter-label" }, oQ = {
51665
51693
  key: 0,
51666
51694
  class: "pb-bar"
51667
- }, iQ = {
51695
+ }, sQ = {
51668
51696
  key: 1,
51669
51697
  class: "pb-section",
51670
51698
  "aria-label": "当前焦点"
51671
- }, aQ = {
51699
+ }, cQ = {
51672
51700
  class: "pb-section",
51673
51701
  "aria-label": "发言顺序"
51674
- }, oQ = { class: "pb-heading" }, sQ = {
51702
+ }, lQ = { class: "pb-heading" }, uQ = {
51675
51703
  key: 0,
51676
51704
  class: "pb-status-detail pb-held"
51677
- }, cQ = { class: "pb-member-body" }, lQ = { class: "pb-member-name" }, uQ = { class: "pb-member-body" }, dQ = { class: "pb-member-name" }, fQ = {
51705
+ }, dQ = { class: "pb-member-body" }, fQ = { class: "pb-member-name" }, pQ = { class: "pb-member-body" }, mQ = { class: "pb-member-name" }, hQ = {
51678
51706
  key: 0,
51679
51707
  class: "pb-member-model",
51680
51708
  title: "本场启动配置;默认模型与默认强度由对应软件决定"
51681
- }, pQ = {
51709
+ }, gQ = {
51682
51710
  key: 1,
51683
51711
  class: "pb-member-model",
51684
51712
  title: "续接你已有的会话;它工作时请不要在原窗口继续操作"
51685
- }, mQ = { key: 0 }, hQ = {
51713
+ }, _Q = { key: 0 }, vQ = {
51686
51714
  key: 3,
51687
51715
  class: "pb-member-manual"
51688
- }, gQ = { key: 0 }, _Q = ["onClick"], vQ = {
51716
+ }, yQ = { key: 0 }, bQ = ["onClick"], xQ = {
51689
51717
  key: 1,
51690
51718
  role: "alert",
51691
51719
  class: "pb-free-note is-error"
51692
- }, yQ = {
51720
+ }, SQ = {
51693
51721
  key: 2,
51694
51722
  role: "status",
51695
51723
  class: "pb-free-note"
51696
- }, bQ = {
51724
+ }, CQ = {
51697
51725
  key: 2,
51698
51726
  class: "pb-actions",
51699
51727
  "aria-label": "操作"
51700
- }, xQ = {
51728
+ }, wQ = {
51701
51729
  key: 3,
51702
51730
  class: "pb-section",
51703
51731
  "aria-label": "阶段耗时"
51704
- }, SQ = { class: "pb-timing-heading" }, CQ = ["aria-label"], wQ = { class: "pb-timing-totals" }, TQ = ["title"], EQ = { class: "pb-timings" }, DQ = { class: "pb-timing-who" }, OQ = { class: "pb-timing-stages" }, kQ = ["title"], AQ = {
51732
+ }, TQ = { class: "pb-timing-heading" }, EQ = ["aria-label"], DQ = { class: "pb-timing-totals" }, OQ = ["title"], kQ = { class: "pb-timings" }, AQ = { class: "pb-timing-who" }, jQ = { class: "pb-timing-stages" }, MQ = ["title"], NQ = {
51705
51733
  key: 0,
51706
51734
  class: "pb-note"
51707
- }, jQ = { class: "pb-connection" }, MQ = { class: "fine-print" }, NQ = {
51735
+ }, PQ = { class: "pb-connection" }, FQ = { class: "fine-print" }, IQ = {
51708
51736
  key: 0,
51709
51737
  role: "status",
51710
51738
  class: "fine-print"
51711
- }, PQ = {
51739
+ }, LQ = {
51712
51740
  key: 2,
51713
51741
  role: "alert",
51714
51742
  class: "fine-print"
51715
- }, FQ = { key: 2 }, IQ = { class: "pb-invite-footer" }, LQ = { class: "progress-ending" }, RQ = ["disabled"], zQ = 2e3, BQ = 90, VQ = 100, HQ = /*#__PURE__*/ XH({
51743
+ }, RQ = { key: 2 }, zQ = { class: "pb-invite-footer" }, BQ = { class: "progress-ending" }, VQ = ["disabled"], HQ = 2e3, UQ = 90, WQ = 100, GQ = /*#__PURE__*/ XH({
51716
51744
  __name: "ProgressBoard",
51717
51745
  props: { docked: {
51718
51746
  type: Boolean,
@@ -51723,7 +51751,7 @@ var hU = /*#__PURE__*/ XH({
51723
51751
  async function l(e) {
51724
51752
  clearTimeout(c), s.value = "", await i("copy_member_launch", e) && (s.value = e, c = setTimeout(() => {
51725
51753
  s.value = "";
51726
- }, zQ));
51754
+ }, HQ));
51727
51755
  }
51728
51756
  let u = /* @__PURE__ */ F(!1), d = /* @__PURE__ */ F(null), f = /* @__PURE__ */ F(!1), p = ["pending", "notified"], m = {
51729
51757
  dispatched: "已交付,等待开始",
@@ -51755,7 +51783,7 @@ var hU = /*#__PURE__*/ XH({
51755
51783
  R(() => _.value.id, () => {
51756
51784
  he.value = !1;
51757
51785
  });
51758
- let ge = Z(() => x.value?.question || _.value.focus || _.value.goal || ""), N = Z(() => ge.value.length > BQ), _e = Z(() => y.value.timings || {
51786
+ let ge = Z(() => x.value?.question || _.value.focus || _.value.goal || ""), N = Z(() => ge.value.length > UQ), _e = Z(() => y.value.timings || {
51759
51787
  items: [],
51760
51788
  totals: {},
51761
51789
  count: 0
@@ -51789,7 +51817,7 @@ var hU = /*#__PURE__*/ XH({
51789
51817
  };
51790
51818
  let e = ce.value;
51791
51819
  if (e) {
51792
- let t = e.result.startsWith(e.name) ? e.result : `${r.display_name(e.name)} 执行失败:${e.result}`, n = t.split("\n")[0], i = n.length > VQ ? `${n.slice(0, VQ)}…` : n;
51820
+ let t = e.result.startsWith(e.name) ? e.result : `${r.display_name(e.name)} 执行失败:${e.result}`, n = t.split("\n")[0], i = n.length > WQ ? `${n.slice(0, WQ)}…` : n;
51793
51821
  return {
51794
51822
  tone: "error",
51795
51823
  title: "已暂停",
@@ -51934,18 +51962,18 @@ var hU = /*#__PURE__*/ XH({
51934
51962
  return (e, c) => {
51935
51963
  let f = MA, p = sA, m = pA, v = CH, T = bH, k = zV, se = YH;
51936
51964
  return U(), W("div", { class: M(["progress-board", { "is-docked": t.docked }]) }, [
51937
- t.docked ? (U(), W("header", qZ, [c[18] ||= K("strong", null, "讨论进度", -1), K("span", JZ, P(b.value ? "全自动" : "手动"), 1)])) : Y("", !0),
51965
+ t.docked ? (U(), W("header", XZ, [c[18] ||= K("strong", null, "讨论进度", -1), K("span", ZZ, P(b.value ? "全自动" : "手动"), 1)])) : Y("", !0),
51938
51966
  K("section", {
51939
51967
  class: M(["pb-status", `is-${be.value.tone}`]),
51940
51968
  "aria-label": "讨论状态"
51941
51969
  }, [
51942
- K("div", YZ, [
51970
+ K("div", QZ, [
51943
51971
  c[19] ||= K("span", { class: "pb-dot" }, null, -1),
51944
- K("strong", XZ, P(be.value.title), 1),
51945
- t.docked ? Y("", !0) : (U(), W("span", ZZ, P(b.value ? "全自动" : "手动"), 1))
51972
+ K("strong", $Z, P(be.value.title), 1),
51973
+ t.docked ? Y("", !0) : (U(), W("span", eQ, P(b.value ? "全自动" : "手动"), 1))
51946
51974
  ]),
51947
- be.value.detail ? (U(), W("p", QZ, P(be.value.detail), 1)) : Y("", !0),
51948
- be.value.full_detail ? (U(), W("details", $Z, [c[20] ||= K("summary", null, "查看错误详情", -1), K("pre", eQ, P(be.value.full_detail), 1)])) : Y("", !0),
51975
+ be.value.detail ? (U(), W("p", tQ, P(be.value.detail), 1)) : Y("", !0),
51976
+ be.value.full_detail ? (U(), W("details", nQ, [c[20] ||= K("summary", null, "查看错误详情", -1), K("pre", rQ, P(be.value.full_detail), 1)])) : Y("", !0),
51949
51977
  ue.value && I(n).launch.available && !I(n).launch.remote ? (U(), G(f, {
51950
51978
  key: 2,
51951
51979
  icon: "i-lucide-arrow-left-right",
@@ -51957,12 +51985,12 @@ var hU = /*#__PURE__*/ XH({
51957
51985
  disabled: !!I(a),
51958
51986
  onClick: c[0] ||= (e) => Ee(ue.value, "codex")
51959
51987
  }, null, 8, ["disabled"])) : Y("", !0),
51960
- xe.value.length ? (U(), W("div", tQ, [(U(!0), W(H, null, B(xe.value, (e) => (U(), W("div", {
51988
+ xe.value.length ? (U(), W("div", iQ, [(U(!0), W(H, null, B(xe.value, (e) => (U(), W("div", {
51961
51989
  key: e.label,
51962
51990
  class: "pb-meter"
51963
- }, [K("div", nQ, [K("span", null, P(e.label), 1), K("b", null, P(e.text), 1)]), e.ratio === null ? Y("", !0) : (U(), W("div", rQ, [K("i", { style: fe({ width: `${Math.min(100, Math.round(e.ratio * 100))}%` }) }, null, 4)]))]))), 128))])) : Y("", !0)
51991
+ }, [K("div", aQ, [K("span", null, P(e.label), 1), K("b", null, P(e.text), 1)]), e.ratio === null ? Y("", !0) : (U(), W("div", oQ, [K("i", { style: fe({ width: `${Math.min(100, Math.round(e.ratio * 100))}%` }) }, null, 4)]))]))), 128))])) : Y("", !0)
51964
51992
  ], 2),
51965
- ge.value ? (U(), W("section", iQ, [
51993
+ ge.value ? (U(), W("section", sQ, [
51966
51994
  c[21] ||= K("h4", null, "当前焦点", -1),
51967
51995
  K("p", { class: M(["pb-focus", { "is-expanded": u.value }]) }, P(ge.value), 3),
51968
51996
  N.value ? (U(), W("button", {
@@ -51972,15 +52000,15 @@ var hU = /*#__PURE__*/ XH({
51972
52000
  onClick: c[1] ||= (e) => u.value = !u.value
51973
52001
  }, P(u.value ? "收起" : "展开"), 1)) : Y("", !0)
51974
52002
  ])) : Y("", !0),
51975
- K("section", aQ, [
51976
- K("div", oQ, [c[23] ||= K("h4", null, "发言顺序", -1), me.value ? (U(), W("button", {
52003
+ K("section", cQ, [
52004
+ K("div", lQ, [c[23] ||= K("h4", null, "发言顺序", -1), me.value ? (U(), W("button", {
51977
52005
  key: 0,
51978
52006
  type: "button",
51979
52007
  class: "pb-link",
51980
52008
  onClick: Te
51981
52009
  }, [q(p, { name: "i-lucide-plus" }), c[22] ||= J("邀请", -1)])) : Y("", !0)]),
51982
- _.value.held_since && x.value && !S.value ? (U(), W("p", sQ, "用户有新操作," + P(I(r).display_name(x.value.expert)) + " 说完后交给主持人", 1)) : Y("", !0),
51983
- q(KZ, {
52010
+ _.value.held_since && x.value && !S.value ? (U(), W("p", uQ, "用户有新操作," + P(I(r).display_name(x.value.expert)) + " 说完后交给主持人", 1)) : Y("", !0),
52011
+ q(YZ, {
51984
52012
  away: de.value.map((e) => e.name),
51985
52013
  round: Se.value
51986
52014
  }, {
@@ -51997,7 +52025,7 @@ var hU = /*#__PURE__*/ XH({
51997
52025
  "alt",
51998
52026
  "class"
51999
52027
  ]),
52000
- K("div", cQ, [K("div", lQ, [J(P(I(r).display_name(e.name)), 1), c[24] ||= K("small", null, "暂离", -1)]), c[25] ||= K("div", { class: "pb-member-status is-neutral" }, [K("span", { class: "pb-dot" }), J("保留位置和会话,不参与安排")], -1)]),
52028
+ K("div", dQ, [K("div", fQ, [J(P(I(r).display_name(e.name)), 1), c[24] ||= K("small", null, "暂离", -1)]), c[25] ||= K("div", { class: "pb-member-status is-neutral" }, [K("span", { class: "pb-dot" }), J("保留位置和会话,不参与安排")], -1)]),
52001
52029
  we({ name: e.name }).length ? (U(), G(v, {
52002
52030
  key: 0,
52003
52031
  items: we({ name: e.name }),
@@ -52027,8 +52055,8 @@ var hU = /*#__PURE__*/ XH({
52027
52055
  "alt",
52028
52056
  "class"
52029
52057
  ]),
52030
- K("div", uQ, [
52031
- K("div", dQ, [
52058
+ K("div", pQ, [
52059
+ K("div", mQ, [
52032
52060
  J(P(I(r).display_name(e.name)), 1),
52033
52061
  e.is_host ? (U(), G(p, {
52034
52062
  key: 0,
@@ -52037,22 +52065,22 @@ var hU = /*#__PURE__*/ XH({
52037
52065
  })) : Y("", !0),
52038
52066
  K("small", null, P(e.is_host ? `主持 · ${e.mode}` : e.mode), 1)
52039
52067
  ]),
52040
- e.model ? (U(), W("div", fQ, P(e.model), 1)) : Y("", !0),
52041
- pe(e.name)?.session_mode === "borrowed" ? (U(), W("div", pQ, "借用已有会话")) : Y("", !0),
52068
+ e.model ? (U(), W("div", hQ, P(e.model), 1)) : Y("", !0),
52069
+ pe(e.name)?.session_mode === "borrowed" ? (U(), W("div", gQ, "借用已有会话")) : Y("", !0),
52042
52070
  w.value ? Y("", !0) : (U(), W("div", {
52043
52071
  key: 2,
52044
52072
  class: M(["pb-member-status", `is-${e.tone}`])
52045
52073
  }, [
52046
52074
  c[26] ||= K("span", { class: "pb-dot" }, null, -1),
52047
52075
  J(P(e.text), 1),
52048
- e.failures ? (U(), W("small", mQ, " · 失败 " + P(e.failures) + " 次", 1)) : Y("", !0)
52076
+ e.failures ? (U(), W("small", _Q, " · 失败 " + P(e.failures) + " 次", 1)) : Y("", !0)
52049
52077
  ], 2)),
52050
- e.manual && !w.value ? (U(), W("div", hQ, [!pe(e.name)?.registered_at && !e.is_host ? (U(), W("span", gQ, "需在它的会话中注册,才算到场")) : Y("", !0), A.value ? (U(), W("button", {
52078
+ e.manual && !w.value ? (U(), W("div", vQ, [!pe(e.name)?.registered_at && !e.is_host ? (U(), W("span", yQ, "需在它的会话中注册,才算到场")) : Y("", !0), A.value ? (U(), W("button", {
52051
52079
  key: 1,
52052
52080
  type: "button",
52053
52081
  class: "pb-link",
52054
52082
  onClick: (t) => l(e.name)
52055
- }, [q(p, { name: s.value === e.name ? "i-lucide-check" : "i-lucide-rocket" }, null, 8, ["name"]), J(P(s.value === e.name ? "已复制" : "复制启动指令"), 1)], 8, _Q)) : Y("", !0)])) : Y("", !0)
52083
+ }, [q(p, { name: s.value === e.name ? "i-lucide-check" : "i-lucide-rocket" }, null, 8, ["name"]), J(P(s.value === e.name ? "已复制" : "复制启动指令"), 1)], 8, bQ)) : Y("", !0)])) : Y("", !0)
52056
52084
  ]),
52057
52085
  we(e).length ? (U(), G(v, {
52058
52086
  key: 0,
@@ -52073,9 +52101,9 @@ var hU = /*#__PURE__*/ XH({
52073
52101
  ], 64))), 128))]),
52074
52102
  _: 1
52075
52103
  }, 8, ["away", "round"]),
52076
- !he.value && I(n).free_error && _.value.phase !== "paused" ? (U(), W("p", vQ, P(I(n).free_error), 1)) : I(n).free_notice ? (U(), W("p", yQ, P(I(n).free_notice), 1)) : Y("", !0)
52104
+ !he.value && I(n).free_error && _.value.phase !== "paused" ? (U(), W("p", xQ, P(I(n).free_error), 1)) : I(n).free_notice ? (U(), W("p", SQ, P(I(n).free_notice), 1)) : Y("", !0)
52077
52105
  ]),
52078
- oe.value ? (U(), W("section", bQ, [
52106
+ oe.value ? (U(), W("section", CQ, [
52079
52107
  ne.value ? (U(), G(f, {
52080
52108
  key: 0,
52081
52109
  icon: "i-lucide-rotate-ccw",
@@ -52157,8 +52185,8 @@ var hU = /*#__PURE__*/ XH({
52157
52185
  onClick: c[6] ||= (e) => o.value = !0
52158
52186
  }, null, 8, ["disabled"])) : Y("", !0)
52159
52187
  ])) : Y("", !0),
52160
- b.value && _e.value.count ? (U(), W("section", xQ, [
52161
- K("div", SQ, [c[27] ||= K("h4", null, "耗时", -1), K("small", null, "共 " + P(_e.value.count) + " 次执行", 1)]),
52188
+ b.value && _e.value.count ? (U(), W("section", wQ, [
52189
+ K("div", TQ, [c[27] ||= K("h4", null, "耗时", -1), K("small", null, "共 " + P(_e.value.count) + " 次执行", 1)]),
52162
52190
  K("div", {
52163
52191
  class: "pb-timing-bar",
52164
52192
  role: "img",
@@ -52167,18 +52195,18 @@ var hU = /*#__PURE__*/ XH({
52167
52195
  key: e.key,
52168
52196
  class: M(`is-${e.key}`),
52169
52197
  style: fe({ width: `${e.percent}%` })
52170
- }, null, 6))), 128))], 8, CQ),
52171
- K("dl", wQ, [(U(!0), W(H, null, B(Oe.value, (e) => (U(), W("div", {
52198
+ }, null, 6))), 128))], 8, EQ),
52199
+ K("dl", DQ, [(U(!0), W(H, null, B(Oe.value, (e) => (U(), W("div", {
52172
52200
  key: e.key,
52173
52201
  title: e.hint
52174
- }, [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(ke(e.seconds)), 1), K("small", null, P(e.percent) + "%", 1)])], 8, TQ))), 128))]),
52175
- K("details", EQ, [
52202
+ }, [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(ke(e.seconds)), 1), K("small", null, P(e.percent) + "%", 1)])], 8, OQ))), 128))]),
52203
+ K("details", kQ, [
52176
52204
  c[28] ||= K("summary", null, "查看每次执行", -1),
52177
- K("ol", null, [(U(!0), W(H, null, B(_e.value.items, (e) => (U(), W("li", { key: e.id }, [K("span", DQ, [J("#" + P(e.id) + " " + P(I(r).display_name(e.participant)), 1), K("small", null, P(e.role === "host" ? "主持" : "专家") + " · " + P(g[e.status] || e.status), 1)]), K("span", OQ, [(U(), W(H, null, B(h, (t) => K("span", {
52205
+ K("ol", null, [(U(!0), W(H, null, B(_e.value.items, (e) => (U(), W("li", { key: e.id }, [K("span", AQ, [J("#" + P(e.id) + " " + P(I(r).display_name(e.participant)), 1), K("small", null, P(e.role === "host" ? "主持" : "专家") + " · " + P(g[e.status] || e.status), 1)]), K("span", jQ, [(U(), W(H, null, B(h, (t) => K("span", {
52178
52206
  key: t.key,
52179
52207
  title: t.hint
52180
- }, P(t.label) + " " + P(ke(e[t.key])), 9, kQ)), 64))])]))), 128))]),
52181
- _e.value.count > _e.value.items.length ? (U(), W("p", AQ, "只列出最近 " + P(_e.value.items.length) + " 次,共 " + P(_e.value.count) + " 次执行。", 1)) : Y("", !0)
52208
+ }, P(t.label) + " " + P(ke(e[t.key])), 9, MQ)), 64))])]))), 128))]),
52209
+ _e.value.count > _e.value.items.length ? (U(), W("p", NQ, "只列出最近 " + P(_e.value.items.length) + " 次,共 " + P(_e.value.count) + " 次执行。", 1)) : Y("", !0)
52182
52210
  ])
52183
52211
  ])) : Y("", !0),
52184
52212
  q(se, {
@@ -52191,7 +52219,7 @@ var hU = /*#__PURE__*/ XH({
52191
52219
  body: "dialog-body"
52192
52220
  }
52193
52221
  }, {
52194
- body: L(() => [K("div", jQ, [y.value.status === "running" ? (U(), W(H, { key: 0 }, [c[29] ||= K("p", null, "切换前需要暂停讨论,当前执行会停止,原发言安排保留。", -1), q(f, {
52222
+ body: L(() => [K("div", PQ, [y.value.status === "running" ? (U(), W(H, { key: 0 }, [c[29] ||= K("p", null, "切换前需要暂停讨论,当前执行会停止,原发言安排保留。", -1), q(f, {
52195
52223
  label: "暂停并读取配置",
52196
52224
  icon: "i-lucide-pause",
52197
52225
  class: "channel-primary-button",
@@ -52214,7 +52242,7 @@ var hU = /*#__PURE__*/ XH({
52214
52242
  }, null, 8, ["model-value", "disabled"])]),
52215
52243
  _: 1
52216
52244
  }),
52217
- K("p", MQ, P(ye.value.adapter === "codex" ? "App 需保持运行,模型与权限沿用原聊天设置。" : "切回 CLI 前,需让 App 释放原聊天;仍被占用时无法执行。"), 1),
52245
+ K("p", FQ, P(ye.value.adapter === "codex" ? "App 需保持运行,模型与权限沿用原聊天设置。" : "切回 CLI 前,需让 App 释放原聊天;仍被占用时无法执行。"), 1),
52218
52246
  q(f, {
52219
52247
  label: "保存接入方式",
52220
52248
  class: "channel-primary-button",
@@ -52222,7 +52250,7 @@ var hU = /*#__PURE__*/ XH({
52222
52250
  disabled: !!I(a),
52223
52251
  onClick: c[8] ||= (e) => I(i)("save_room_configuration")
52224
52252
  }, null, 8, ["loading", "disabled"]),
52225
- I(n).launch.repair?.notice ? (U(), W("p", NQ, P(I(n).launch.repair.notice), 1)) : Y("", !0),
52253
+ I(n).launch.repair?.notice ? (U(), W("p", IQ, P(I(n).launch.repair.notice), 1)) : Y("", !0),
52226
52254
  I(n).launch.repair?.applied && ne.value ? (U(), G(f, {
52227
52255
  key: 1,
52228
52256
  label: "重启讨论",
@@ -52242,10 +52270,10 @@ var hU = /*#__PURE__*/ XH({
52242
52270
  color: "neutral",
52243
52271
  loading: !!I(a),
52244
52272
  onClick: De
52245
- }, null, 8, ["loading"])), I(n).launch.repair_error ? (U(), W("p", PQ, P(I(n).launch.repair_error), 1)) : Y("", !0)], 64)) : (U(), W("p", FQ, "本场状态已变化,请关闭后重新核对。"))])]),
52273
+ }, null, 8, ["loading"])), I(n).launch.repair_error ? (U(), W("p", LQ, P(I(n).launch.repair_error), 1)) : Y("", !0)], 64)) : (U(), W("p", RQ, "本场状态已变化,请关闭后重新核对。"))])]),
52246
52274
  _: 1
52247
52275
  }, 8, ["open"]),
52248
- q(MZ, {
52276
+ q(FZ, {
52249
52277
  open: he.value,
52250
52278
  "onUpdate:open": c[11] ||= (e) => he.value = e,
52251
52279
  description: "新专家由程序按本机软件配置启动,或由你手动启动,加入本轮发言队列。"
@@ -52271,7 +52299,7 @@ var hU = /*#__PURE__*/ XH({
52271
52299
  minutes: ee.value,
52272
52300
  "onUpdate:minutes": c[13] ||= (e) => ee.value = e,
52273
52301
  execution: !1
52274
- }, null, 8, ["rounds", "minutes"]), K("div", IQ, [q(f, {
52302
+ }, null, 8, ["rounds", "minutes"]), K("div", zQ, [q(f, {
52275
52303
  label: "取消",
52276
52304
  color: "neutral",
52277
52305
  variant: "ghost",
@@ -52296,18 +52324,18 @@ var hU = /*#__PURE__*/ XH({
52296
52324
  body: "dialog-body"
52297
52325
  }
52298
52326
  }, {
52299
- body: L(() => [K("div", LQ, [K("button", {
52327
+ body: L(() => [K("div", BQ, [K("button", {
52300
52328
  type: "button",
52301
52329
  class: "progress-ending-option",
52302
52330
  disabled: C.value || !!I(a),
52303
52331
  onClick: c[16] ||= (e) => Me("end_room_discussion")
52304
- }, [...c[30] ||= [K("strong", null, "结束讨论", -1), K("span", null, "保留全部记录,自动运行随之停止,房间回到自由协作;需要总结时可直接请主持人写一份。", -1)]], 8, RQ)])]),
52332
+ }, [...c[30] ||= [K("strong", null, "结束讨论", -1), K("span", null, "保留全部记录,自动运行随之停止,房间回到自由协作;需要总结时可直接请主持人写一份。", -1)]], 8, VQ)])]),
52305
52333
  _: 1
52306
52334
  }, 8, ["open"])
52307
52335
  ], 2);
52308
52336
  };
52309
52337
  }
52310
- }, [["__scopeId", "data-v-a5185122"]]), UQ = { class: "progress-panel-anchor" }, WQ = ["aria-expanded", "aria-label"], GQ = { class: "progress-chip-text" }, KQ = { class: "progress-chip-rounds" }, qQ = {
52338
+ }, [["__scopeId", "data-v-a5185122"]]), KQ = { class: "progress-panel-anchor" }, qQ = ["aria-expanded", "aria-label"], JQ = { class: "progress-chip-text" }, YQ = { class: "progress-chip-rounds" }, XQ = {
52311
52339
  __name: "ProgressPanel",
52312
52340
  setup(e) {
52313
52341
  let { view: t, bridge: n } = xr("discussion"), r = /* @__PURE__ */ F(!1), i = Z(() => t.value.room), a = Z(() => i.value.limits || {}), o = Z(() => {
@@ -52334,7 +52362,7 @@ var hU = /*#__PURE__*/ XH({
52334
52362
  }), s = Z(() => a.value.round_cap || a.value.max_rounds ? n.limit_rounds(a.value).text.replace(" / ", "/") : n.progress_round(i.value)), c = Z(() => `${o.value.title} · ${s.value}`);
52335
52363
  return (e, t) => {
52336
52364
  let n = $V, a = NV;
52337
- return U(), W("div", UQ, [q(n, { text: "查看讨论进度" }, {
52365
+ return U(), W("div", KQ, [q(n, { text: "查看讨论进度" }, {
52338
52366
  default: L(() => [K("button", {
52339
52367
  type: "button",
52340
52368
  class: M(["progress-chip", `is-${o.value.tone}`]),
@@ -52342,7 +52370,7 @@ var hU = /*#__PURE__*/ XH({
52342
52370
  "aria-expanded": r.value,
52343
52371
  "aria-label": `查看讨论进度:${c.value}`,
52344
52372
  onClick: t[0] ||= (e) => r.value = !0
52345
- }, [t[2] ||= K("span", { class: "progress-dot" }, null, -1), K("span", GQ, [J(P(o.value.title), 1), K("span", KQ, " · " + P(s.value), 1)])], 10, WQ)]),
52373
+ }, [t[2] ||= K("span", { class: "progress-dot" }, null, -1), K("span", JQ, [J(P(o.value.title), 1), K("span", YQ, " · " + P(s.value), 1)])], 10, qQ)]),
52346
52374
  _: 1
52347
52375
  }), q(a, {
52348
52376
  open: r.value,
@@ -52355,12 +52383,12 @@ var hU = /*#__PURE__*/ XH({
52355
52383
  body: "progress-drawer-body"
52356
52384
  }
52357
52385
  }, {
52358
- body: L(() => [q(HQ)]),
52386
+ body: L(() => [q(GQ)]),
52359
52387
  _: 1
52360
52388
  }, 8, ["open", "description"])]);
52361
52389
  };
52362
52390
  }
52363
- }, JQ = { class: "start-discussion-footer" }, YQ = 3, XQ = /*#__PURE__*/ XH({
52391
+ }, ZQ = { class: "start-discussion-footer" }, QQ = 3, $Q = /*#__PURE__*/ XH({
52364
52392
  __name: "StartDiscussionDialog",
52365
52393
  props: {
52366
52394
  open: {
@@ -52371,9 +52399,9 @@ var hU = /*#__PURE__*/ XH({
52371
52399
  },
52372
52400
  emits: ["update:open"],
52373
52401
  setup(e) {
52374
- let t = ro(e, "open"), { view: n, act: r, pending: i } = xr("discussion"), a = /* @__PURE__ */ F(""), o = /* @__PURE__ */ F(YQ), s = /* @__PURE__ */ F(0), c = /* @__PURE__ */ F(""), l = /* @__PURE__ */ F(!1), u = /* @__PURE__ */ F(null);
52402
+ let t = ro(e, "open"), { view: n, act: r, pending: i } = xr("discussion"), a = /* @__PURE__ */ F(""), o = /* @__PURE__ */ F(QQ), s = /* @__PURE__ */ F(0), c = /* @__PURE__ */ F(""), l = /* @__PURE__ */ F(!1), u = /* @__PURE__ */ F(null);
52375
52403
  R(t, (e) => {
52376
- e && (a.value = "", o.value = YQ, s.value = 0, c.value = "", l.value = !1);
52404
+ e && (a.value = "", o.value = QQ, s.value = 0, c.value = "", l.value = !1);
52377
52405
  });
52378
52406
  async function d() {
52379
52407
  u.value?.settle();
@@ -52387,7 +52415,7 @@ var hU = /*#__PURE__*/ XH({
52387
52415
  }) && (t.value = !1);
52388
52416
  }
52389
52417
  return (e, r) => {
52390
- let f = HV, p = zV, m = Qq, h = MA, g = YH;
52418
+ let f = HV, p = zV, m = tJ, h = MA, g = YH;
52391
52419
  return U(), G(g, {
52392
52420
  open: t.value,
52393
52421
  "onUpdate:open": r[6] ||= (e) => t.value = e,
@@ -52441,7 +52469,7 @@ var hU = /*#__PURE__*/ XH({
52441
52469
  "minutes",
52442
52470
  "execution_minutes"
52443
52471
  ]),
52444
- K("div", JQ, [q(h, {
52472
+ K("div", ZQ, [q(h, {
52445
52473
  label: "取消",
52446
52474
  color: "neutral",
52447
52475
  variant: "ghost",
@@ -52459,58 +52487,58 @@ var hU = /*#__PURE__*/ XH({
52459
52487
  }, 8, ["open"]);
52460
52488
  };
52461
52489
  }
52462
- }, [["__scopeId", "data-v-dee972d6"]]), ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q = { class: "pb-mode" }, e$ = { class: "pb-status-line" }, t$ = { role: "status" }, n$ = {
52490
+ }, [["__scopeId", "data-v-dee972d6"]]), e$ = { class: "progress-board is-docked" }, t$ = { class: "pb-header" }, n$ = { class: "pb-mode" }, r$ = { class: "pb-status-line" }, i$ = { role: "status" }, a$ = {
52463
52491
  key: 0,
52464
52492
  class: "pb-status-detail"
52465
- }, r$ = { class: "pb-meters" }, i$ = { class: "pb-meter-label" }, a$ = {
52493
+ }, o$ = { class: "pb-meters" }, s$ = { class: "pb-meter-label" }, c$ = {
52466
52494
  key: 0,
52467
52495
  class: "pb-bar"
52468
- }, o$ = {
52496
+ }, l$ = {
52469
52497
  key: 0,
52470
52498
  class: "pb-section",
52471
52499
  "aria-label": "当前任务"
52472
- }, s$ = {
52500
+ }, u$ = {
52473
52501
  class: "pb-section",
52474
52502
  "aria-label": "发言顺序"
52475
- }, c$ = { class: "pb-member-body" }, l$ = { class: "pb-member-name" }, u$ = {
52503
+ }, d$ = { class: "pb-member-body" }, f$ = { class: "pb-member-name" }, p$ = {
52476
52504
  key: 0,
52477
52505
  class: "pb-member-model"
52478
- }, d$ = {
52506
+ }, m$ = {
52479
52507
  key: 1,
52480
52508
  class: "pb-member-model",
52481
52509
  title: "它工作时请不要在原窗口继续操作"
52482
- }, f$ = {
52510
+ }, h$ = {
52483
52511
  key: 0,
52484
52512
  role: "alert",
52485
52513
  class: "pb-free-note is-error"
52486
- }, p$ = {
52514
+ }, g$ = {
52487
52515
  key: 1,
52488
52516
  role: "status",
52489
52517
  class: "pb-free-note"
52490
- }, m$ = {
52518
+ }, _$ = {
52491
52519
  key: 2,
52492
52520
  role: "alert",
52493
52521
  class: "pb-free-note is-error"
52494
- }, h$ = {
52522
+ }, v$ = {
52495
52523
  key: 3,
52496
52524
  role: "status",
52497
52525
  class: "pb-free-note"
52498
- }, g$ = {
52526
+ }, y$ = {
52499
52527
  key: 1,
52500
52528
  class: "pb-section",
52501
52529
  "aria-label": "头脑风暴"
52502
- }, _$ = ["onClick"], v$ = {
52530
+ }, b$ = ["onClick"], x$ = {
52503
52531
  key: 2,
52504
52532
  class: "pb-actions",
52505
52533
  "aria-label": "操作"
52506
- }, y$ = {
52534
+ }, S$ = {
52507
52535
  key: 0,
52508
52536
  class: "pb-free-note"
52509
- }, b$ = {
52537
+ }, C$ = {
52510
52538
  key: 3,
52511
52539
  class: "pb-section",
52512
52540
  "aria-label": "执行耗时"
52513
- }, x$ = { class: "pb-timing-heading" }, S$ = { class: "pb-timings" }, C$ = { class: "pb-timing-who" }, w$ = { class: "pb-timing-stages" }, T$ = 90, E$ = /*#__PURE__*/ XH({
52541
+ }, w$ = { class: "pb-timing-heading" }, T$ = { class: "pb-timings" }, E$ = { class: "pb-timing-who" }, D$ = { class: "pb-timing-stages" }, O$ = 90, k$ = /*#__PURE__*/ XH({
52514
52542
  __name: "FreeBoard",
52515
52543
  setup(e) {
52516
52544
  let { view: t, bridge: n, act: r, pending: i } = xr("discussion"), a = ["dispatched", "started"], o = {
@@ -52666,32 +52694,32 @@ var hU = /*#__PURE__*/ XH({
52666
52694
  D.value = !1;
52667
52695
  }), (e, i) => {
52668
52696
  let a = pA, p = sA, h = MA, ee = CH;
52669
- return U(), W("div", ZQ, [
52670
- K("header", QQ, [i[5] ||= K("strong", null, "自由协作", -1), K("span", $Q, P(u.value ? `${I(n).display_name(u.value.name)} 主持` : "无主持人"), 1)]),
52697
+ return U(), W("div", e$, [
52698
+ K("header", t$, [i[5] ||= K("strong", null, "自由协作", -1), K("span", n$, P(u.value ? `${I(n).display_name(u.value.name)} 主持` : "无主持人"), 1)]),
52671
52699
  K("section", {
52672
52700
  class: M(["pb-status", `is-${y.value.tone}`]),
52673
52701
  "aria-label": "房间状态"
52674
52702
  }, [
52675
- K("div", e$, [i[6] ||= K("span", { class: "pb-dot" }, null, -1), K("strong", t$, P(y.value.title), 1)]),
52676
- y.value.detail ? (U(), W("p", n$, P(y.value.detail), 1)) : Y("", !0),
52677
- K("div", r$, [(U(!0), W(H, null, B(b.value, (e) => (U(), W("div", {
52703
+ K("div", r$, [i[6] ||= K("span", { class: "pb-dot" }, null, -1), K("strong", i$, P(y.value.title), 1)]),
52704
+ y.value.detail ? (U(), W("p", a$, P(y.value.detail), 1)) : Y("", !0),
52705
+ K("div", o$, [(U(!0), W(H, null, B(b.value, (e) => (U(), W("div", {
52678
52706
  key: e.label,
52679
52707
  class: "pb-meter"
52680
- }, [K("div", i$, [K("span", null, P(e.label), 1), K("b", null, P(e.text), 1)]), e.ratio === null ? Y("", !0) : (U(), W("div", a$, [K("i", { style: fe({ width: `${Math.min(100, Math.round(e.ratio * 100))}%` }) }, null, 4)]))]))), 128))])
52708
+ }, [K("div", s$, [K("span", null, P(e.label), 1), K("b", null, P(e.text), 1)]), e.ratio === null ? Y("", !0) : (U(), W("div", c$, [K("i", { style: fe({ width: `${Math.min(100, Math.round(e.ratio * 100))}%` }) }, null, 4)]))]))), 128))])
52681
52709
  ], 2),
52682
- x.value ? (U(), W("section", o$, [
52710
+ x.value ? (U(), W("section", l$, [
52683
52711
  i[7] ||= K("h4", null, "当前任务", -1),
52684
52712
  K("p", { class: M(["pb-focus", { "is-expanded": S.value }]) }, P(x.value), 3),
52685
- x.value.length > T$ ? (U(), W("button", {
52713
+ x.value.length > O$ ? (U(), W("button", {
52686
52714
  key: 0,
52687
52715
  type: "button",
52688
52716
  class: "pb-link",
52689
52717
  onClick: i[0] ||= (e) => S.value = !S.value
52690
52718
  }, P(S.value ? "收起" : "展开"), 1)) : Y("", !0)
52691
52719
  ])) : Y("", !0),
52692
- K("section", s$, [
52720
+ K("section", u$, [
52693
52721
  i[9] ||= K("h4", null, "发言顺序", -1),
52694
- q(KZ, { away: f.value }, {
52722
+ q(YZ, { away: f.value }, {
52695
52723
  default: L(({ item: e }) => [(U(!0), W(H, null, B([d(e.name)].filter(Boolean), (t) => (U(), W(H, { key: t.id }, [
52696
52724
  q(a, {
52697
52725
  src: I(n).identities[t.name]?.icon,
@@ -52705,8 +52733,8 @@ var hU = /*#__PURE__*/ XH({
52705
52733
  "alt",
52706
52734
  "class"
52707
52735
  ]),
52708
- K("div", c$, [
52709
- K("div", l$, [
52736
+ K("div", d$, [
52737
+ K("div", f$, [
52710
52738
  J(P(I(n).display_name(t.name)), 1),
52711
52739
  t.role === "host" ? (U(), G(p, {
52712
52740
  key: 0,
@@ -52715,8 +52743,8 @@ var hU = /*#__PURE__*/ XH({
52715
52743
  })) : Y("", !0),
52716
52744
  K("small", null, P(t.role === "host" ? `主持 · ${s[t.access]}` : s[t.access]), 1)
52717
52745
  ]),
52718
- v(t) ? (U(), W("div", u$, P(v(t)), 1)) : Y("", !0),
52719
- t.session_mode === "borrowed" ? (U(), W("div", d$, "借用已有会话")) : Y("", !0),
52746
+ v(t) ? (U(), W("div", p$, P(v(t)), 1)) : Y("", !0),
52747
+ t.session_mode === "borrowed" ? (U(), W("div", m$, "借用已有会话")) : Y("", !0),
52720
52748
  K("div", { class: M(["pb-member-status", `is-${g(t)}`]) }, [i[8] ||= K("span", { class: "pb-dot" }, null, -1), J(P(_(t, e.state)), 1)], 2)
52721
52749
  ]),
52722
52750
  q(ee, {
@@ -52741,8 +52769,8 @@ var hU = /*#__PURE__*/ XH({
52741
52769
  key: e.executions.join("-"),
52742
52770
  class: "pb-free-note is-warning"
52743
52771
  }, "可能冲突:" + P(e.members.map((e) => I(n).display_name(e)).join(" 与 ")) + " 的重叠执行观察到 " + P(e.files.join("、")) + " 变化;修改者未确认。", 1))), 128)),
52744
- I(t).free_error ? (U(), W("p", f$, P(I(t).free_error), 1)) : I(t).free_notice ? (U(), W("p", p$, P(I(t).free_notice), 1)) : Y("", !0),
52745
- I(t).access?.error ? (U(), W("p", m$, P(I(t).access.error), 1)) : I(t).access?.notice ? (U(), W("p", h$, P(I(t).access.notice), 1)) : Y("", !0),
52772
+ I(t).free_error ? (U(), W("p", h$, P(I(t).free_error), 1)) : I(t).free_notice ? (U(), W("p", g$, P(I(t).free_notice), 1)) : Y("", !0),
52773
+ I(t).access?.error ? (U(), W("p", _$, P(I(t).access.error), 1)) : I(t).access?.notice ? (U(), W("p", v$, P(I(t).access.notice), 1)) : Y("", !0),
52746
52774
  c.value.archived ? Y("", !0) : (U(), G(h, {
52747
52775
  key: 4,
52748
52776
  icon: "i-lucide-plus",
@@ -52754,13 +52782,13 @@ var hU = /*#__PURE__*/ XH({
52754
52782
  onClick: i[1] ||= (e) => E.value = !0
52755
52783
  }))
52756
52784
  ]),
52757
- c.value.linked_rooms?.length ? (U(), W("section", g$, [i[10] ||= K("h4", null, "头脑风暴", -1), (U(!0), W(H, null, B(c.value.linked_rooms, (e) => (U(), W("button", {
52785
+ c.value.linked_rooms?.length ? (U(), W("section", y$, [i[10] ||= K("h4", null, "头脑风暴", -1), (U(!0), W(H, null, B(c.value.linked_rooms, (e) => (U(), W("button", {
52758
52786
  key: e.id,
52759
52787
  type: "button",
52760
52788
  class: "pb-link pb-free-linked",
52761
52789
  onClick: (t) => I(r)("room", e.id)
52762
- }, [J(P(e.title), 1), K("small", null, P(I(n).phases[e.phase] || e.phase), 1)], 8, _$))), 128))])) : Y("", !0),
52763
- c.value.archived ? Y("", !0) : (U(), W("section", v$, [q(h, {
52790
+ }, [J(P(e.title), 1), K("small", null, P(I(n).phases[e.phase] || e.phase), 1)], 8, b$))), 128))])) : Y("", !0),
52791
+ c.value.archived ? Y("", !0) : (U(), W("section", x$, [q(h, {
52764
52792
  icon: "i-lucide-messages-square",
52765
52793
  label: "开启讨论",
52766
52794
  size: "sm",
@@ -52770,13 +52798,13 @@ var hU = /*#__PURE__*/ XH({
52770
52798
  title: "由主持人推进成员轮流发言,到上限或结束后房间回到自由协作",
52771
52799
  disabled: !O.value,
52772
52800
  onClick: i[2] ||= (e) => D.value = !0
52773
- }, null, 8, ["disabled"]), O.value ? Y("", !0) : (U(), W("p", y$, "开启讨论需要一位由本机唤醒的 AI 主持人。"))])),
52774
- C.value.items.length ? (U(), W("section", b$, [K("div", x$, [i[11] ||= K("h4", null, "耗时", -1), K("small", null, "共 " + P(C.value.items.length) + " 次执行 · " + P(w(C.value.total)), 1)]), K("details", S$, [i[12] ||= K("summary", null, "查看每次执行", -1), K("ol", null, [(U(!0), W(H, null, B(C.value.items, (e) => (U(), W("li", { key: e.id }, [K("span", C$, [J("#" + P(e.id) + " " + P(m(e.member_id)), 1), K("small", null, P(o[e.status] || e.status), 1)]), K("span", w$, [K("span", null, "用时 " + P(w(e.seconds)), 1)])]))), 128))])])])) : Y("", !0),
52775
- q(XQ, {
52801
+ }, null, 8, ["disabled"]), O.value ? Y("", !0) : (U(), W("p", S$, "开启讨论需要一位由本机唤醒的 AI 主持人。"))])),
52802
+ C.value.items.length ? (U(), W("section", C$, [K("div", w$, [i[11] ||= K("h4", null, "耗时", -1), K("small", null, "共 " + P(C.value.items.length) + " 次执行 · " + P(w(C.value.total)), 1)]), K("details", T$, [i[12] ||= K("summary", null, "查看每次执行", -1), K("ol", null, [(U(!0), W(H, null, B(C.value.items, (e) => (U(), W("li", { key: e.id }, [K("span", E$, [J("#" + P(e.id) + " " + P(m(e.member_id)), 1), K("small", null, P(o[e.status] || e.status), 1)]), K("span", D$, [K("span", null, "用时 " + P(w(e.seconds)), 1)])]))), 128))])])])) : Y("", !0),
52803
+ q($Q, {
52776
52804
  open: D.value,
52777
52805
  "onUpdate:open": i[3] ||= (e) => D.value = e
52778
52806
  }, null, 8, ["open"]),
52779
- q(MZ, {
52807
+ q(FZ, {
52780
52808
  open: E.value,
52781
52809
  "onUpdate:open": i[4] ||= (e) => E.value = e,
52782
52810
  description: "新成员加入后不打断其他成员;点卡片翻面可设置软件、模型、项目权限和要续接的已有会话。"
@@ -52784,47 +52812,47 @@ var hU = /*#__PURE__*/ XH({
52784
52812
  ]);
52785
52813
  };
52786
52814
  }
52787
- }, [["__scopeId", "data-v-11a4b3fe"]]), D$ = {
52815
+ }, [["__scopeId", "data-v-11a4b3fe"]]), A$ = {
52788
52816
  id: "channel-sidebar",
52789
52817
  class: "channel-sidebar",
52790
52818
  "aria-label": "房间导航"
52791
- }, O$ = { class: "channel-sidebar-content" }, k$ = { class: "channel-directory-heading channel-tools-heading" }, A$ = ["aria-expanded"], j$ = { class: "channel-sidebar-footer" }, M$ = ["aria-label"], N$ = { class: "channel-self" }, P$ = ["title"], F$ = [
52819
+ }, j$ = { class: "channel-sidebar-content" }, M$ = { class: "channel-directory-heading channel-tools-heading" }, N$ = ["aria-expanded"], P$ = { class: "channel-sidebar-footer" }, F$ = ["aria-label"], I$ = { class: "channel-self" }, L$ = ["title"], R$ = [
52792
52820
  "aria-valuemax",
52793
52821
  "aria-valuenow",
52794
52822
  "aria-valuetext"
52795
- ], I$ = { class: "channel-main" }, L$ = { class: "channel-header" }, R$ = { class: "channel-title-icon" }, z$ = { class: "channel-title" }, B$ = { class: "channel-title-copy" }, V$ = ["title"], H$ = {
52823
+ ], z$ = { class: "channel-main" }, B$ = { class: "channel-header" }, V$ = { class: "channel-title-icon" }, H$ = { class: "channel-title" }, U$ = { class: "channel-title-copy" }, W$ = ["title"], G$ = {
52796
52824
  key: 0,
52797
52825
  class: "channel-header-context"
52798
- }, U$ = { class: "channel-header-actions" }, W$ = {
52826
+ }, K$ = { class: "channel-header-actions" }, q$ = {
52799
52827
  key: 0,
52800
52828
  class: "channel-launch-recovery",
52801
52829
  "aria-label": "未完成的创建或启动请求"
52802
- }, G$ = { role: "status" }, K$ = { class: "button-row" }, q$ = {
52830
+ }, J$ = { role: "status" }, Y$ = { class: "button-row" }, X$ = {
52803
52831
  key: 1,
52804
52832
  class: "channel-tabbar"
52805
- }, J$ = { class: "channel-brief-inner" }, Y$ = { class: "channel-brief-heading" }, X$ = ["aria-label", "aria-expanded"], Z$ = {
52833
+ }, Z$ = { class: "channel-brief-inner" }, Q$ = { class: "channel-brief-heading" }, $$ = ["aria-label", "aria-expanded"], e1 = {
52806
52834
  key: 0,
52807
52835
  class: "channel-brief-preview"
52808
- }, Q$ = {
52836
+ }, t1 = {
52809
52837
  id: "channel-brief-content",
52810
52838
  class: "channel-brief-content"
52811
- }, $$ = ["innerHTML"], e1 = { class: "channel-brief-footer" }, t1 = { class: "channel-brief-status" }, n1 = { class: "channel-content" }, r1 = {
52839
+ }, n1 = ["innerHTML"], r1 = { class: "channel-brief-footer" }, i1 = { class: "channel-brief-status" }, a1 = { class: "channel-content" }, o1 = {
52812
52840
  key: 0,
52813
52841
  class: "content-page channel-summary",
52814
52842
  role: "tabpanel",
52815
52843
  "aria-label": "共识"
52816
- }, i1 = { class: "page-heading" }, a1 = { class: "form-footer" }, o1 = {
52844
+ }, s1 = { class: "page-heading" }, c1 = { class: "form-footer" }, l1 = {
52817
52845
  key: 1,
52818
52846
  class: "channel-empty"
52819
- }, s1 = ["aria-valuenow", "aria-valuetext"], c1 = {
52847
+ }, u1 = ["aria-valuenow", "aria-valuetext"], d1 = {
52820
52848
  key: 2,
52821
52849
  id: "channel-member-rail",
52822
52850
  class: "channel-member-rail",
52823
52851
  "aria-label": "当前焦点与讨论进度"
52824
- }, l1 = { class: "channel-rail-board" }, u1 = {
52852
+ }, f1 = { class: "channel-rail-board" }, p1 = {
52825
52853
  key: 2,
52826
52854
  class: "progress-board is-docked"
52827
- }, d1 = { class: "channel-detail-title" }, f1 = { class: "info-section" }, p1 = "ai-codiscuss-channel-layout", m1 = 220, h1 = 440, g1 = 280, _1 = 16, v1 = 180, y1 = 400, b1 = 248, x1 = 16, S1 = 480, C1 = 1200, w1 = 0, T1 = {
52855
+ }, m1 = { class: "channel-detail-title" }, h1 = { class: "info-section" }, g1 = "ai-codiscuss-channel-layout", _1 = 220, v1 = 440, y1 = 280, b1 = 16, x1 = 180, S1 = 400, C1 = 248, w1 = 16, T1 = 480, E1 = 1200, D1 = 0, O1 = {
52828
52856
  __name: "ChannelWorkspace",
52829
52857
  setup(e) {
52830
52858
  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 = [{
@@ -52846,14 +52874,14 @@ var hU = /*#__PURE__*/ XH({
52846
52874
  label: "宽",
52847
52875
  width: 1240
52848
52876
  }
52849
- }, b = Te(), 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 >= C1), k = Z(() => t.value.tab === "discussion" && !O.value), te = Z(() => ee.value && t.value.tab === "discussion" ? O.value ? "展开房间概览" : "收起房间概览" : "房间资料与参与者"), ne = Z(() => {
52877
+ }, b = Te(), 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 >= E1), k = Z(() => t.value.tab === "discussion" && !O.value), te = Z(() => ee.value && t.value.tab === "discussion" ? O.value ? "展开房间概览" : "收起房间概览" : "房间资料与参与者"), ne = Z(() => {
52850
52878
  let e = document.createElement("template");
52851
52879
  return e.innerHTML = o.value?.rendered_brief || "", e.content.textContent.replace(/\s+/g, " ").trim();
52852
- }), re = /* @__PURE__ */ F(null), ie = /* @__PURE__ */ F(0), A = null, j = /* @__PURE__ */ F(null), ae = /* @__PURE__ */ F(null), oe = Z(() => Math.min(y1, Math.max(v1, T.value - S1 - w1))), se = Z(() => Math.min(w.value, oe.value)), ce = Z(() => ({
52880
+ }), re = /* @__PURE__ */ F(null), ie = /* @__PURE__ */ F(0), A = null, j = /* @__PURE__ */ F(null), ae = /* @__PURE__ */ F(null), oe = Z(() => Math.min(S1, Math.max(x1, T.value - T1 - D1))), se = Z(() => Math.min(w.value, oe.value)), ce = Z(() => ({
52853
52881
  "--channel-reading-width": `${y[x.value].width}px`,
52854
52882
  "--channel-rail-width": `${C.value}px`,
52855
52883
  "--channel-topbar-height": `${ie.value}px`,
52856
- "--channel-main-columns": E.value ? "minmax(0, 1fr)" : `${se.value}px ${w1}px minmax(0, 1fr)`
52884
+ "--channel-main-columns": E.value ? "minmax(0, 1fr)" : `${se.value}px ${D1}px minmax(0, 1fr)`
52857
52885
  })), le = Object.entries(y).map(([e, t]) => ({
52858
52886
  value: e,
52859
52887
  label: t.label
@@ -52936,12 +52964,12 @@ var hU = /*#__PURE__*/ XH({
52936
52964
  }
52937
52965
  function Te() {
52938
52966
  try {
52939
- let e = JSON.parse(localStorage.getItem(p1)) || {};
52967
+ let e = JSON.parse(localStorage.getItem(g1)) || {};
52940
52968
  return {
52941
52969
  reading: Object.hasOwn(y, e.reading) ? e.reading : "default",
52942
52970
  effects: e.effects === "reduced" ? "reduced" : "full",
52943
- rail: Number.isFinite(e.rail) ? Math.min(h1, Math.max(m1, e.rail)) : g1,
52944
- nav: Number.isFinite(e.nav) ? Math.min(y1, Math.max(v1, e.nav)) : Ee(),
52971
+ rail: Number.isFinite(e.rail) ? Math.min(v1, Math.max(_1, e.rail)) : y1,
52972
+ nav: Number.isFinite(e.nav) ? Math.min(S1, Math.max(x1, e.nav)) : Ee(),
52945
52973
  collapsed: e.collapsed === !0,
52946
52974
  brief_collapsed: e.brief_collapsed === !0,
52947
52975
  rail_collapsed: e.rail_collapsed === !0
@@ -52950,7 +52978,7 @@ var hU = /*#__PURE__*/ XH({
52950
52978
  return {
52951
52979
  reading: "default",
52952
52980
  effects: "full",
52953
- rail: g1,
52981
+ rail: y1,
52954
52982
  nav: Ee(),
52955
52983
  collapsed: !1,
52956
52984
  brief_collapsed: !1,
@@ -52959,11 +52987,11 @@ var hU = /*#__PURE__*/ XH({
52959
52987
  }
52960
52988
  }
52961
52989
  function Ee() {
52962
- return typeof window > "u" ? b1 : window.innerWidth >= 1900 ? 280 : window.innerWidth <= 980 ? 220 : b1;
52990
+ return typeof window > "u" ? C1 : window.innerWidth >= 1900 ? 280 : window.innerWidth <= 980 ? 220 : C1;
52963
52991
  }
52964
52992
  function De() {
52965
52993
  try {
52966
- localStorage.setItem(p1, JSON.stringify({
52994
+ localStorage.setItem(g1, JSON.stringify({
52967
52995
  reading: x.value,
52968
52996
  effects: S.value,
52969
52997
  rail: C.value,
@@ -52994,19 +53022,19 @@ var hU = /*#__PURE__*/ XH({
52994
53022
  }, e.currentTarget.setPointerCapture(e.pointerId));
52995
53023
  }
52996
53024
  function Ne(e) {
52997
- j.value?.pointer === e.pointerId && (C.value = Math.round(Math.min(h1, Math.max(m1, j.value.width + j.value.x - e.clientX))));
53025
+ j.value?.pointer === e.pointerId && (C.value = Math.round(Math.min(v1, Math.max(_1, j.value.width + j.value.x - e.clientX))));
52998
53026
  }
52999
53027
  function Pe(e) {
53000
53028
  j.value?.pointer === e.pointerId && (j.value = null, e.currentTarget.hasPointerCapture(e.pointerId) && e.currentTarget.releasePointerCapture(e.pointerId), De());
53001
53029
  }
53002
53030
  function Fe(e) {
53003
53031
  let t = {
53004
- ArrowLeft: C.value + _1,
53005
- ArrowRight: C.value - _1,
53006
- Home: m1,
53007
- End: h1
53032
+ ArrowLeft: C.value + b1,
53033
+ ArrowRight: C.value - b1,
53034
+ Home: _1,
53035
+ End: v1
53008
53036
  };
53009
- Object.hasOwn(t, e.key) && (e.preventDefault(), C.value = Math.min(h1, Math.max(m1, t[e.key])), De());
53037
+ Object.hasOwn(t, e.key) && (e.preventDefault(), C.value = Math.min(v1, Math.max(_1, t[e.key])), De());
53010
53038
  }
53011
53039
  function Ie(e) {
53012
53040
  e.button === 0 && (e.preventDefault(), e.currentTarget.focus(), ae.value = {
@@ -53016,19 +53044,19 @@ var hU = /*#__PURE__*/ XH({
53016
53044
  }, e.currentTarget.setPointerCapture(e.pointerId));
53017
53045
  }
53018
53046
  function Le(e) {
53019
- ae.value?.pointer === e.pointerId && (w.value = Math.round(Math.min(oe.value, Math.max(v1, ae.value.width + e.clientX - ae.value.x))));
53047
+ ae.value?.pointer === e.pointerId && (w.value = Math.round(Math.min(oe.value, Math.max(x1, ae.value.width + e.clientX - ae.value.x))));
53020
53048
  }
53021
53049
  function Re(e) {
53022
53050
  ae.value?.pointer === e.pointerId && (ae.value = null, e.currentTarget.hasPointerCapture(e.pointerId) && e.currentTarget.releasePointerCapture(e.pointerId), De());
53023
53051
  }
53024
53052
  function ze(e) {
53025
53053
  let t = {
53026
- ArrowLeft: se.value - x1,
53027
- ArrowRight: se.value + x1,
53028
- Home: v1,
53054
+ ArrowLeft: se.value - w1,
53055
+ ArrowRight: se.value + w1,
53056
+ Home: x1,
53029
53057
  End: oe.value
53030
53058
  };
53031
- Object.hasOwn(t, e.key) && (e.preventDefault(), w.value = Math.min(oe.value, Math.max(v1, t[e.key])), De());
53059
+ Object.hasOwn(t, e.key) && (e.preventDefault(), w.value = Math.min(oe.value, Math.max(x1, t[e.key])), De());
53032
53060
  }
53033
53061
  return (e, r) => {
53034
53062
  let y = sA, b = lH, w = pA, T = MA, O = $V, ie = WV, A = YV, de = KV, Te = HV, Ee = zV, De = NV, ke = AV;
@@ -53040,10 +53068,10 @@ var hU = /*#__PURE__*/ XH({
53040
53068
  }]),
53041
53069
  style: fe(ce.value)
53042
53070
  }, [
53043
- K("aside", D$, [
53071
+ K("aside", A$, [
53044
53072
  r[25] ||= 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),
53045
- K("div", O$, [
53046
- q(gZ, {
53073
+ K("div", j$, [
53074
+ q(yZ, {
53047
53075
  onSelect: ye,
53048
53076
  onManage: _e,
53049
53077
  onCreate: xe,
@@ -53052,12 +53080,12 @@ var hU = /*#__PURE__*/ XH({
53052
53080
  onDeleteFolder: we,
53053
53081
  onArchives: ve
53054
53082
  }),
53055
- K("div", k$, [K("button", {
53083
+ K("div", M$, [K("button", {
53056
53084
  type: "button",
53057
53085
  class: "channel-section-toggle",
53058
53086
  "aria-expanded": f.value,
53059
53087
  onClick: r[0] ||= (e) => f.value = !f.value
53060
- }, [q(y, { name: f.value ? "i-lucide-chevron-down" : "i-lucide-chevron-right" }, null, 8, ["name"]), r[24] ||= J("频道工具", -1)], 8, A$)]),
53088
+ }, [q(y, { name: f.value ? "i-lucide-chevron-down" : "i-lucide-chevron-right" }, null, 8, ["name"]), r[24] ||= J("频道工具", -1)], 8, N$)]),
53061
53089
  f.value ? (U(), G(b, {
53062
53090
  key: 0,
53063
53091
  items: he.value,
@@ -53073,7 +53101,7 @@ var hU = /*#__PURE__*/ XH({
53073
53101
  }
53074
53102
  }, null, 8, ["items"])) : Y("", !0)
53075
53103
  ]),
53076
- K("footer", j$, [K("button", {
53104
+ K("footer", P$, [K("button", {
53077
53105
  type: "button",
53078
53106
  class: "channel-self-button",
53079
53107
  "aria-label": `账号与设置:${I(n).display_name(I(_))}${ge.value ? "," + ge.value : ""}`,
@@ -53089,10 +53117,10 @@ var hU = /*#__PURE__*/ XH({
53089
53117
  "text",
53090
53118
  "alt",
53091
53119
  "class"
53092
- ]), K("span", N$, [K("strong", null, P(I(n).display_name(I(_))), 1), K("span", { class: M(["channel-connection", { "is-action": ge.value }]) }, [K("span", {
53120
+ ]), K("span", I$, [K("strong", null, P(I(n).display_name(I(_))), 1), K("span", { class: M(["channel-connection", { "is-action": ge.value }]) }, [K("span", {
53093
53121
  class: M({ connected: I(t).connected }),
53094
53122
  title: I(t).connected ? "网站已连接" : "网站未连接"
53095
- }, null, 10, P$), J(P(ge.value || (I(t).connected ? "网站已连接" : "网站未连接")), 1)], 2)])], 8, M$), q(O, { text: "设置" }, {
53123
+ }, null, 10, L$), J(P(ge.value || (I(t).connected ? "网站已连接" : "网站未连接")), 1)], 2)])], 8, F$), q(O, { text: "设置" }, {
53096
53124
  default: L(() => [q(T, {
53097
53125
  icon: "i-lucide-settings-2",
53098
53126
  color: "neutral",
@@ -53113,7 +53141,7 @@ var hU = /*#__PURE__*/ XH({
53113
53141
  "aria-label": "调整房间栏宽度",
53114
53142
  "aria-orientation": "vertical",
53115
53143
  "aria-controls": "channel-sidebar",
53116
- "aria-valuemin": v1,
53144
+ "aria-valuemin": x1,
53117
53145
  "aria-valuemax": oe.value,
53118
53146
  "aria-valuenow": se.value,
53119
53147
  "aria-valuetext": `${se.value} 像素`,
@@ -53124,13 +53152,13 @@ var hU = /*#__PURE__*/ XH({
53124
53152
  onPointercancel: Re,
53125
53153
  onLostpointercapture: Re,
53126
53154
  onKeydown: ze
53127
- }, null, 40, F$)),
53128
- K("main", I$, [K("div", {
53155
+ }, null, 40, R$)),
53156
+ K("main", z$, [K("div", {
53129
53157
  ref_key: "topbar",
53130
53158
  ref: re,
53131
53159
  class: M(["channel-topbar", { "is-overlay": o.value && I(t).tab === "discussion" }])
53132
53160
  }, [
53133
- K("header", L$, [
53161
+ K("header", B$, [
53134
53162
  q(O, { text: E.value ? "展开房间栏" : "收起房间栏" }, {
53135
53163
  default: L(() => [q(T, {
53136
53164
  icon: "i-lucide-panel-left",
@@ -53155,8 +53183,8 @@ var hU = /*#__PURE__*/ XH({
53155
53183
  "aria-expanded": d.value,
53156
53184
  onClick: r[4] ||= (e) => d.value = !0
53157
53185
  }, null, 8, ["aria-expanded"]),
53158
- K("span", R$, [q(y, { name: "i-lucide-hash" })]),
53159
- K("div", z$, [K("div", B$, [K("h1", { title: o.value?.title }, P(o.value?.title || "共议"), 9, V$)]), o.value?.archived ? (U(), G(ie, {
53186
+ K("span", V$, [q(y, { name: "i-lucide-hash" })]),
53187
+ K("div", H$, [K("div", U$, [K("h1", { title: o.value?.title }, P(o.value?.title || "共议"), 9, W$)]), o.value?.archived ? (U(), G(ie, {
53160
53188
  key: 0,
53161
53189
  color: "neutral",
53162
53190
  variant: "subtle",
@@ -53165,12 +53193,12 @@ var hU = /*#__PURE__*/ XH({
53165
53193
  default: L(() => [...r[26] ||= [J("已存档", -1)]]),
53166
53194
  _: 1
53167
53195
  })) : Y("", !0)]),
53168
- o.value ? (U(), W("span", H$, [
53196
+ o.value ? (U(), W("span", G$, [
53169
53197
  J(P(me.value.find((e) => e.value === I(t).tab)?.label), 1),
53170
53198
  r[27] ||= K("span", null, "·", -1),
53171
53199
  J(P(o.value.message_count) + " 条记录", 1)
53172
53200
  ])) : Y("", !0),
53173
- K("div", U$, [
53201
+ K("div", K$, [
53174
53202
  I(t).tab === "discussion" ? (U(), W("form", {
53175
53203
  key: 0,
53176
53204
  class: "channel-search",
@@ -53228,7 +53256,7 @@ var hU = /*#__PURE__*/ XH({
53228
53256
  ])]),
53229
53257
  _: 1
53230
53258
  })) : Y("", !0),
53231
- o.value && !(k.value && ee.value) ? (U(), G(qQ, { key: 2 })) : Y("", !0)
53259
+ o.value && !(k.value && ee.value) ? (U(), G(XQ, { key: 2 })) : Y("", !0)
53232
53260
  ]),
53233
53261
  q(O, { text: te.value }, {
53234
53262
  default: L(() => [q(T, {
@@ -53249,12 +53277,12 @@ var hU = /*#__PURE__*/ XH({
53249
53277
  _: 1
53250
53278
  }, 8, ["text"])
53251
53279
  ]),
53252
- I(t).launch.recoveries.length ? (U(), W("section", W$, [
53280
+ I(t).launch.recoveries.length ? (U(), W("section", q$, [
53253
53281
  r[28] ||= K("h2", null, "继续未完成的请求", -1),
53254
53282
  (U(!0), W(H, null, B(I(t).launch.recoveries, (e) => (U(), W("article", { key: e.id }, [
53255
53283
  K("strong", null, P(e.title), 1),
53256
- K("p", G$, P(e.error || "启动结果尚未确认;原请求已保存在此浏览器中。"), 1),
53257
- K("div", K$, [
53284
+ K("p", J$, P(e.error || "启动结果尚未确认;原请求已保存在此浏览器中。"), 1),
53285
+ K("div", Y$, [
53258
53286
  q(T, {
53259
53287
  label: e.direct ? "继续创建房间" : "继续本次启动",
53260
53288
  size: "sm",
@@ -53287,7 +53315,7 @@ var hU = /*#__PURE__*/ XH({
53287
53315
  ]))), 128)),
53288
53316
  r[29] ||= K("small", null, "移除待办不会删除房间或停止讨论。", -1)
53289
53317
  ])) : Y("", !0),
53290
- o.value ? (U(), W("div", q$, [q(de, {
53318
+ o.value ? (U(), W("div", X$, [q(de, {
53291
53319
  modelValue: ue.value,
53292
53320
  "onUpdate:modelValue": r[9] ||= (e) => ue.value = e,
53293
53321
  items: me.value,
@@ -53302,7 +53330,7 @@ var hU = /*#__PURE__*/ XH({
53302
53330
  key: 2,
53303
53331
  class: M(["channel-host-brief", { "is-collapsed": D.value }]),
53304
53332
  "aria-label": "主持简报"
53305
- }, [K("div", J$, [K("div", Y$, [K("button", {
53333
+ }, [K("div", Z$, [K("div", Q$, [K("button", {
53306
53334
  type: "button",
53307
53335
  class: "channel-brief-toggle",
53308
53336
  "aria-label": D.value ? "展开主持简报" : "收起主持简报",
@@ -53312,8 +53340,8 @@ var hU = /*#__PURE__*/ XH({
53312
53340
  }, [
53313
53341
  q(y, { name: D.value ? "i-lucide-chevron-right" : "i-lucide-chevron-down" }, null, 8, ["name"]),
53314
53342
  K("strong", null, "主持简报" + P(D.value ? ":" : ""), 1),
53315
- D.value ? (U(), W("span", Z$, P(ne.value), 1)) : Y("", !0)
53316
- ], 8, X$), D.value ? Y("", !0) : (U(), G(T, {
53343
+ D.value ? (U(), W("span", e1, P(ne.value), 1)) : Y("", !0)
53344
+ ], 8, $$), D.value ? Y("", !0) : (U(), G(T, {
53317
53345
  key: 0,
53318
53346
  label: "更新简报",
53319
53347
  color: "neutral",
@@ -53321,19 +53349,19 @@ var hU = /*#__PURE__*/ XH({
53321
53349
  size: "xs",
53322
53350
  class: "channel-brief-update",
53323
53351
  onClick: r[10] ||= (e) => I(i)("tab", "context")
53324
- }))]), vr(K("div", Q$, [K("div", {
53352
+ }))]), vr(K("div", t1, [K("div", {
53325
53353
  class: "channel-brief-text markdown-body",
53326
53354
  innerHTML: o.value.rendered_brief
53327
- }, null, 8, $$), K("div", e1, [K("span", t1, 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)
53355
+ }, null, 8, n1), K("div", r1, [K("span", i1, 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)
53328
53356
  ], 2), o.value ? (U(), W("div", {
53329
53357
  key: 0,
53330
53358
  class: M(["channel-body", { "channel-body-discussion": I(t).tab === "discussion" }])
53331
- }, [K("div", n1, [
53332
- vr(q(uK, {
53359
+ }, [K("div", a1, [
53360
+ vr(q(pK, {
53333
53361
  onDetail: be,
53334
53362
  onEdit: r[11] ||= (e) => s.value = "edit"
53335
53363
  }, null, 512), [[Vc, I(t).tab === "discussion"]]),
53336
- I(t).tab === "context" ? (U(), W("section", r1, [K("div", i1, [r[30] ||= K("div", null, [K("h2", null, "共识与分歧"), K("p", null, "整理讨论进展,用 #消息编号 保留依据。")], -1), q(ie, {
53364
+ I(t).tab === "context" ? (U(), W("section", o1, [K("div", s1, [r[30] ||= K("div", null, [K("h2", null, "共识与分歧"), K("p", null, "整理讨论进展,用 #消息编号 保留依据。")], -1), q(ie, {
53337
53365
  color: "neutral",
53338
53366
  variant: "outline"
53339
53367
  }, {
@@ -53374,7 +53402,7 @@ var hU = /*#__PURE__*/ XH({
53374
53402
  }, null, 8, ["modelValue"])]),
53375
53403
  _: 1
53376
53404
  }),
53377
- K("div", a1, [K("span", null, "依据消息截止 #" + P(I(t).snapshot_id), 1), q(T, {
53405
+ K("div", c1, [K("span", null, "依据消息截止 #" + P(I(t).snapshot_id), 1), q(T, {
53378
53406
  type: "submit",
53379
53407
  color: "neutral",
53380
53408
  icon: "i-lucide-check",
@@ -53383,12 +53411,12 @@ var hU = /*#__PURE__*/ XH({
53383
53411
  loading: I(a) === "save_context"
53384
53412
  }, null, 8, ["loading"])])
53385
53413
  ], 32)])) : Y("", !0),
53386
- I(t).tab === "topic" || I(t).tab === "access" ? (U(), G(Jq, {
53414
+ I(t).tab === "topic" || I(t).tab === "access" ? (U(), G(Zq, {
53387
53415
  key: I(t).tab,
53388
53416
  onOpen: r[15] ||= (e) => s.value = e,
53389
53417
  onDetail: be
53390
53418
  })) : Y("", !0)
53391
- ])], 2)) : (U(), W("div", o1, [
53419
+ ])], 2)) : (U(), W("div", l1, [
53392
53420
  q(y, { name: "i-lucide-hash" }),
53393
53421
  r[31] ||= K("h2", null, "新建一个协作房间", -1),
53394
53422
  r[32] ||= K("p", null, "邀请 AI 一起协作,随时 @ 提问;需要时开启讨论,保留所有人的观点。", -1),
@@ -53407,8 +53435,8 @@ var hU = /*#__PURE__*/ XH({
53407
53435
  "aria-label": "调整右侧栏宽度",
53408
53436
  "aria-orientation": "vertical",
53409
53437
  "aria-controls": "channel-member-rail",
53410
- "aria-valuemin": m1,
53411
- "aria-valuemax": h1,
53438
+ "aria-valuemin": _1,
53439
+ "aria-valuemax": v1,
53412
53440
  "aria-valuenow": C.value,
53413
53441
  "aria-valuetext": `${C.value} 像素`,
53414
53442
  title: "拖动调整右侧栏宽度,也可使用左右方向键",
@@ -53418,11 +53446,11 @@ var hU = /*#__PURE__*/ XH({
53418
53446
  onPointercancel: Pe,
53419
53447
  onLostpointercapture: Pe,
53420
53448
  onKeydown: Fe
53421
- }, null, 40, s1)) : Y("", !0),
53422
- k.value ? (U(), W("aside", c1, [K("section", l1, [o.value && pe.value ? (U(), G(E$, { key: 0 })) : o.value ? (U(), G(HQ, {
53449
+ }, null, 40, u1)) : Y("", !0),
53450
+ k.value ? (U(), W("aside", d1, [K("section", f1, [o.value && pe.value ? (U(), G(k$, { key: 0 })) : o.value ? (U(), G(GQ, {
53423
53451
  key: 1,
53424
53452
  docked: ""
53425
- })) : (U(), W("div", u1, [...r[33] ||= [K("header", { class: "pb-header" }, [K("strong", null, "讨论进度")], -1), K("p", { class: "channel-rail-empty" }, "暂无房间,新建讨论后在这里查看进度与参与者。", -1)]]))])])) : Y("", !0),
53453
+ })) : (U(), W("div", p1, [...r[33] ||= [K("header", { class: "pb-header" }, [K("strong", null, "讨论进度")], -1), K("p", { class: "channel-rail-empty" }, "暂无房间,新建讨论后在这里查看进度与参与者。", -1)]]))])])) : Y("", !0),
53426
53454
  q(De, {
53427
53455
  open: d.value,
53428
53456
  "onUpdate:open": r[18] ||= (e) => d.value = e,
@@ -53434,7 +53462,7 @@ var hU = /*#__PURE__*/ XH({
53434
53462
  body: "channel-drawer-body"
53435
53463
  }
53436
53464
  }, {
53437
- body: L(() => [q(gZ, {
53465
+ body: L(() => [q(yZ, {
53438
53466
  onSelect: ye,
53439
53467
  onManage: _e,
53440
53468
  onCreate: xe,
@@ -53465,7 +53493,7 @@ var hU = /*#__PURE__*/ XH({
53465
53493
  }
53466
53494
  }, {
53467
53495
  body: L(() => [o.value ? (U(), W(H, { key: 0 }, [
53468
- K("div", d1, [q(y, { name: "i-lucide-hash" }), K("h2", null, P(o.value.title), 1)]),
53496
+ K("div", m1, [q(y, { name: "i-lucide-hash" }), K("h2", null, P(o.value.title), 1)]),
53469
53497
  (U(), W(H, null, B([
53470
53498
  {
53471
53499
  key: "goal",
@@ -53492,7 +53520,7 @@ var hU = /*#__PURE__*/ XH({
53492
53520
  class: "info-section"
53493
53521
  }, [K("h3", null, P(e.label), 1), K("p", null, P(o.value[e.key] || "尚未填写"), 1)])), 64)),
53494
53522
  q(ke),
53495
- K("section", f1, [r[34] ||= K("h3", null, "参与身份", -1), (U(!0), W(H, null, B(N.value, (e) => (U(), W("div", {
53523
+ K("section", h1, [r[34] ||= K("h3", null, "参与身份", -1), (U(!0), W(H, null, B(N.value, (e) => (U(), W("div", {
53496
53524
  key: e.name,
53497
53525
  class: "expert-row"
53498
53526
  }, [
@@ -53525,7 +53553,7 @@ var hU = /*#__PURE__*/ XH({
53525
53553
  ], 64)) : Y("", !0)]),
53526
53554
  _: 1
53527
53555
  }, 8, ["open"]),
53528
- q(KX, {
53556
+ q(YX, {
53529
53557
  modelValue: s.value,
53530
53558
  "onUpdate:modelValue": r[21] ||= (e) => s.value = e,
53531
53559
  "reading-width": x.value,
@@ -53549,7 +53577,7 @@ var hU = /*#__PURE__*/ XH({
53549
53577
  ], 6);
53550
53578
  };
53551
53579
  }
53552
- }, E1 = {
53580
+ }, k1 = {
53553
53581
  __name: "App",
53554
53582
  setup(e) {
53555
53583
  return br("discussion", OV()), (e, t) => {
@@ -53560,7 +53588,7 @@ var hU = /*#__PURE__*/ XH({
53560
53588
  toaster: null
53561
53589
  }, {
53562
53590
  default: L(() => [q(I(Qz), { "reduced-motion": "user" }, {
53563
- default: L(() => [q(T1)]),
53591
+ default: L(() => [q(O1)]),
53564
53592
  _: 1
53565
53593
  })]),
53566
53594
  _: 1
@@ -53570,8 +53598,8 @@ var hU = /*#__PURE__*/ XH({
53570
53598
  };
53571
53599
  //#endregion
53572
53600
  //#region frontend/main.js
53573
- function D1() {
53574
- bu(E1).use(ph).mount("#modern-root");
53601
+ function A1() {
53602
+ bu(k1).use(ph).mount("#modern-root");
53575
53603
  }
53576
- document.readyState === "loading" ? document.addEventListener("DOMContentLoaded", D1) : D1();
53604
+ document.readyState === "loading" ? document.addEventListener("DOMContentLoaded", A1) : A1();
53577
53605
  //#endregion