ai_co_discuss 0.2.75 → 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
@@ -42576,91 +42576,94 @@ var hU = /*#__PURE__*/ XH({
42576
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
- }, QU = { class: "channel-message-provenance" }, $U = ["title"], eW = { key: 0 }, tW = {
42579
+ }, QU = ["title"], $U = { key: 0 }, eW = {
42580
42580
  key: 0,
42581
42581
  class: "channel-message-provenance channel-message-elapsed"
42582
- }, nW = { class: "channel-message-text channel-failure-reason" }, rW = {
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
+ class: "channel-failure-actions"
42585
+ }, oW = {
42586
+ key: 2,
42584
42587
  class: "channel-failure-actions"
42585
- }, iW = {
42588
+ }, sW = {
42586
42589
  key: 0,
42587
42590
  class: "channel-failure-error",
42588
42591
  role: "alert"
42589
- }, aW = { class: "channel-message-byline" }, oW = { class: "channel-message-meta" }, sW = { class: "channel-message-author" }, cW = { class: "channel-message-round" }, lW = { class: "channel-message-provenance" }, uW = ["title"], dW = { key: 0 }, fW = { key: 1 }, pW = {
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
- }, mW = ["onToggle"], hW = ["aria-label"], gW = { class: "channel-notes" }, _W = {
42595
+ }, _W = ["onToggle"], vW = ["aria-label"], yW = { class: "channel-notes" }, bW = {
42593
42596
  key: 2,
42594
42597
  class: "channel-receipt"
42595
- }, vW = ["aria-label"], yW = ["innerHTML"], bW = {
42598
+ }, xW = ["aria-label"], SW = ["innerHTML"], CW = {
42596
42599
  key: 3,
42597
42600
  class: "channel-answer"
42598
- }, xW = ["id", "innerHTML"], SW = {
42601
+ }, wW = ["id", "innerHTML"], TW = {
42599
42602
  key: 4,
42600
42603
  class: "channel-answer-summary"
42601
- }, CW = { key: 0 }, wW = ["innerHTML"], TW = ["innerHTML"], EW = { key: 0 }, DW = ["title"], OW = { key: 1 }, kW = { key: 2 }, AW = {
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
- }, jW = { key: 0 }, MW = { key: 1 }, NW = ["aria-label"], PW = { key: 0 }, FW = { key: 1 }, IW = { class: "channel-message-actions" }, LW = { class: "channel-message-toolbar" }, RW = { key: 0 }, zW = { key: 1 }, BW = ["aria-pressed", "onClick"], VW = ["aria-pressed", "onClick"], HW = { key: 0 }, UW = ["onSubmit"], WW = ["value"], GW = { class: "channel-message-byline" }, KW = { class: "channel-message-meta" }, qW = { class: "channel-message-author" }, JW = { class: "channel-message-provenance channel-message-elapsed" }, YW = {
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
- }, XW = {
42611
+ }, $W = {
42609
42612
  key: 3,
42610
42613
  class: "channel-message-group"
42611
- }, ZW = ["aria-label"], QW = { class: "channel-message-byline" }, $W = { class: "channel-message-meta" }, eG = { class: "channel-message-author" }, tG = {
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
- }, nG = { class: "channel-message-provenance channel-message-elapsed" }, rG = ["aria-label"], iG = { key: 0 }, aG = {
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
- }, oG = {
42620
+ }, lG = {
42618
42621
  key: 2,
42619
42622
  class: "channel-latest-dock"
42620
- }, sG = { class: "channel-composer-dock" }, cG = [
42623
+ }, uG = { class: "channel-composer-dock" }, dG = [
42621
42624
  "id",
42622
42625
  "aria-selected",
42623
42626
  "onClick",
42624
42627
  "onPointermove"
42625
- ], lG = {
42628
+ ], fG = {
42626
42629
  key: 0,
42627
42630
  class: "channel-mention-empty"
42628
- }, uG = {
42631
+ }, pG = {
42629
42632
  key: 0,
42630
42633
  class: "attachment-drafts"
42631
- }, dG = [
42634
+ }, mG = [
42632
42635
  "src",
42633
42636
  "alt",
42634
42637
  "title"
42635
- ], fG = ["innerHTML"], pG = { class: "attachment-name" }, mG = ["title"], hG = [
42638
+ ], hG = ["innerHTML"], gG = { class: "attachment-name" }, _G = ["title"], vG = [
42636
42639
  "aria-label",
42637
42640
  "disabled",
42638
42641
  "onClick"
42639
- ], gG = ["role"], _G = {
42642
+ ], yG = ["role"], bG = {
42640
42643
  key: 2,
42641
42644
  class: "channel-reply-draft channel-queue-hint"
42642
- }, vG = {
42645
+ }, xG = {
42643
42646
  key: 3,
42644
42647
  class: "channel-reply-draft channel-queue-hint"
42645
- }, yG = {
42648
+ }, SG = {
42646
42649
  key: 4,
42647
42650
  class: "channel-reply-draft"
42648
- }, bG = {
42651
+ }, CG = {
42649
42652
  key: 5,
42650
42653
  class: "channel-answer-editor"
42651
- }, xG = ["innerHTML"], SG = {
42654
+ }, wG = ["innerHTML"], TG = {
42652
42655
  key: 0,
42653
42656
  class: "channel-free-recipients",
42654
42657
  role: "group",
42655
42658
  "aria-label": "代发在线成员的回答"
42656
- }, CG = ["aria-pressed", "onClick"], wG = {
42659
+ }, EG = ["aria-pressed", "onClick"], DG = {
42657
42660
  key: 1,
42658
42661
  class: "channel-composer-identity"
42659
- }, TG = { class: "channel-composer-note" }, EG = { key: 0 }, DG = { key: 1 }, OG = { class: "channel-draft-length" }, kG = 6, AG = .9, jG = 160, MG = 100, NG = 4, PG = 3, FG = 320, IG = 34, LG = 12, RG = 16, zG = 14, BG = 8, VG = 28, HG = 18, UG = 1, WG = 1.5, GG = 3, KG = 6, qG = .62, JG = .72, YG = .88, XG = .16, ZG = 12, QG = 450, $G = 8, eK = 70, tK = 20, nK = 1, rK = 18.566573373612275, iK = 78.16726685662772 / 8, 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 * AG), 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 = nK / rK, i = iK / rK, 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);
@@ -42750,7 +42753,7 @@ var hU = /*#__PURE__*/ XH({
42750
42753
  }
42751
42754
  function Ne(e) {
42752
42755
  let t = Math.max(0, Oe.value - (e.activity_at || e.created_at));
42753
- return !e.working || qe.includes(e.adapter) || t < aK ? {
42756
+ return !e.working || qe.includes(e.adapter) || t < cK ? {
42754
42757
  text: e.text,
42755
42758
  live: e.working
42756
42759
  } : e.activity === "command" ? {
@@ -42818,7 +42821,7 @@ var hU = /*#__PURE__*/ XH({
42818
42821
  "completed",
42819
42822
  "failed",
42820
42823
  "cancelled"
42821
- ].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;
42822
42825
  let t = n.answer_id || n.request_message_id, r = {
42823
42826
  ...n,
42824
42827
  label: {
@@ -42965,8 +42968,8 @@ var hU = /*#__PURE__*/ XH({
42965
42968
  R([() => Ze.value?.id, () => Ze.value?.seconds], ([e, t], n, r) => {
42966
42969
  if (ht.value = t ?? null, ht.value === null) return;
42967
42970
  let i = performance.now(), a = setInterval(() => {
42968
- ht.value = t + Math.floor((performance.now() - i) / oK);
42969
- }, oK);
42971
+ ht.value = t + Math.floor((performance.now() - i) / lK);
42972
+ }, lK);
42970
42973
  r(() => clearInterval(a));
42971
42974
  }, { immediate: !0 });
42972
42975
  function gt(e) {
@@ -43036,7 +43039,7 @@ var hU = /*#__PURE__*/ XH({
43036
43039
  kt.value && _e.value?.textareaRef && (kt.value.scrollTop = _e.value.textareaRef.scrollTop);
43037
43040
  }
43038
43041
  Qi(() => R(Ot, () => Qn(At), { flush: "post" }));
43039
- 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]: {
43040
43043
  search: "all 同时 依次",
43041
43044
  icon: "i-lucide-users"
43042
43045
  } }, Ft = (e) => {
@@ -43101,12 +43104,12 @@ var hU = /*#__PURE__*/ XH({
43101
43104
  for (let t of e.querySelectorAll("pre code, tbody")) {
43102
43105
  let n = e.ownerDocument.createRange();
43103
43106
  if (t.tagName === "TBODY") {
43104
- if (t.children.length <= PG) continue;
43107
+ if (t.children.length <= LG) continue;
43105
43108
  n.setStartAfter(t.children[2]);
43106
43109
  } else {
43107
43110
  let e = t.textContent.trimEnd().split("\n");
43108
- if (e.length <= NG) continue;
43109
- n.setStart(t.firstChild, e.slice(0, NG).join("\n").length);
43111
+ if (e.length <= IG) continue;
43112
+ n.setStart(t.firstChild, e.slice(0, IG).join("\n").length);
43110
43113
  }
43111
43114
  return n.setEnd(e, e.childNodes.length), n.deleteContents(), !0;
43112
43115
  }
@@ -43123,11 +43126,11 @@ var hU = /*#__PURE__*/ XH({
43123
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 = [];
43124
43127
  for (; i.nextNode();) a.push(i.currentNode);
43125
43128
  let o = [...a.map((e) => e.textContent).join("").trimEnd()];
43126
- if (o.length <= jG) return {
43129
+ if (o.length <= PG) return {
43127
43130
  truncated: r,
43128
43131
  html: n.innerHTML
43129
43132
  };
43130
- let s = o.slice(0, jG).join(""), c = [...s.matchAll(/[。!?;]\s*|[.!?;](?:\s|$)|\n/gu)].at(-1), l = c ? c.index + c[0].length : 0, u = [...s.slice(0, l)].length >= MG, 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;
43131
43134
  for (let e of a) {
43132
43135
  if (d > e.textContent.length) {
43133
43136
  d -= e.textContent.length;
@@ -43154,7 +43157,7 @@ var hU = /*#__PURE__*/ XH({
43154
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);
43155
43158
  e.splice(n < 0 ? e.length : n, 0, t);
43156
43159
  }
43157
- return Ee.value ? en.value : e;
43160
+ return Ee.value ? tn.value : e;
43158
43161
  }), Qt = Z(() => {
43159
43162
  let e = Date.parse(ye.value?.session?.created_at || "");
43160
43163
  if (!e) return null;
@@ -43166,7 +43169,24 @@ var hU = /*#__PURE__*/ XH({
43166
43169
  let t = Zt.value, n = t.findIndex((t) => !t.slot_card && Number(t.id) > e.ended_message_id);
43167
43170
  return n < 0 ? "end" : t[n].id;
43168
43171
  }), en = Z(() => {
43169
- 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) => ({
43170
43190
  ...e,
43171
43191
  slot_card: !0
43172
43192
  })).filter((e) => !r(e)), s = [], c = (e) => {
@@ -43174,7 +43194,7 @@ var hU = /*#__PURE__*/ XH({
43174
43194
  for (let t of (n.get(e.id) || []).sort((e, t) => e.execution_id - t.execution_id || 0)) c(t);
43175
43195
  };
43176
43196
  return a.forEach(c), [...s, ...o];
43177
- }), tn = Z(() => {
43197
+ }), nn = Z(() => {
43178
43198
  let e = [];
43179
43199
  for (let t of Zt.value) {
43180
43200
  if (t.slot_card && e.length) {
@@ -43189,7 +43209,7 @@ var hU = /*#__PURE__*/ XH({
43189
43209
  }), e.at(-1).messages.push(t);
43190
43210
  }
43191
43211
  return e;
43192
- }), nn = Z(() => {
43212
+ }), rn = Z(() => {
43193
43213
  let e = [];
43194
43214
  for (let t of Ee.value ? Zt.value.filter((e) => !e.slot_card) : i.value.messages) {
43195
43215
  let n = a.round_groups(ye.value)?.findLast((e) => e.start_id <= t.id), r = n?.number || 0;
@@ -43205,9 +43225,9 @@ var hU = /*#__PURE__*/ XH({
43205
43225
  e.at(-1).messages.push(t);
43206
43226
  }
43207
43227
  return e;
43208
- }), 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(() => {
43209
43229
  let e = 0;
43210
- return nn.value.map((t) => ({
43230
+ return rn.value.map((t) => ({
43211
43231
  number: t.number,
43212
43232
  count: t.messages.length,
43213
43233
  entries: [{
@@ -43225,49 +43245,49 @@ var hU = /*#__PURE__*/ XH({
43225
43245
  index: e++
43226
43246
  }))]
43227
43247
  }));
43228
- }), sn = Z(() => on.value.flatMap((e) => e.entries));
43229
- function cn(e) {
43248
+ }), cn = Z(() => sn.value.flatMap((e) => e.entries));
43249
+ function un(e) {
43230
43250
  return e.getBoundingClientRect().top + (parseFloat(getComputedStyle(e).getPropertyValue("--channel-topbar-height")) || 0);
43231
43251
  }
43232
- function un() {
43252
+ function dn() {
43233
43253
  let e = y.value;
43234
43254
  if (!e || !e.clientHeight) return;
43235
- ve.value = e.scrollHeight - e.scrollTop - e.clientHeight < eK;
43236
- 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);
43237
43257
  if (i && i.getBoundingClientRect().bottom > n && i.getBoundingClientRect().top < t.bottom) {
43238
43258
  T.value = E.value;
43239
43259
  return;
43240
43260
  }
43241
43261
  E.value = null;
43242
- let a = r.find((e) => e.getBoundingClientRect().bottom > n + tK);
43262
+ let a = r.find((e) => e.getBoundingClientRect().bottom > n + iK);
43243
43263
  T.value = a ? Number(a.dataset.messageId) : null;
43244
43264
  }
43245
- async function dn() {
43246
- 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();
43247
43267
  }
43248
43268
  R([
43249
43269
  () => i.value.messages,
43250
43270
  Ze,
43251
43271
  ke,
43252
43272
  Xt
43253
- ], dn, { immediate: !0 }), R([
43273
+ ], fn, { immediate: !0 }), R([
43254
43274
  () => i.value.room?.id,
43255
43275
  () => i.value.query,
43256
43276
  () => i.value.mention_only
43257
43277
  ], () => {
43258
- E.value = null, T.value = null, kn(), ve.value = !0;
43278
+ E.value = null, T.value = null, An(), ve.value = !0;
43259
43279
  }), R(() => i.value.tab, (e) => {
43260
- kn(), e === "discussion" && dn();
43280
+ An(), e === "discussion" && fn();
43261
43281
  }), R(() => i.value.room?.id, () => b.value.clear());
43262
- async function fn(e, t) {
43282
+ async function pn(e, t) {
43263
43283
  let n = t.currentTarget.closest("[data-message-id]"), r = b.value.has(e.id), i = y.value.scrollTop;
43264
- 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) - tK), 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();
43265
43285
  }
43266
- function pn(e) {
43286
+ function mn(e) {
43267
43287
  let t = y.value, n = t?.querySelector(`[data-message-id="${e}"]`);
43268
- n && (On(), E.value = e, T.value = e, t.scrollTop += n.getBoundingClientRect().top - cn(t) - tK, 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());
43269
43289
  }
43270
- function mn(e) {
43290
+ function hn(e) {
43271
43291
  (e.type !== "keydown" || [
43272
43292
  "ArrowUp",
43273
43293
  "ArrowDown",
@@ -43278,34 +43298,34 @@ var hU = /*#__PURE__*/ XH({
43278
43298
  " "
43279
43299
  ].includes(e.key)) && (E.value = null);
43280
43300
  }
43281
- function hn(e, t) {
43301
+ function gn(e, t) {
43282
43302
  let n = {
43283
43303
  ArrowUp: t - 1,
43284
43304
  ArrowDown: t + 1,
43285
43305
  Home: 0,
43286
- End: sn.value.length - 1
43306
+ End: cn.value.length - 1
43287
43307
  };
43288
43308
  if (!Object.hasOwn(n, e.key)) return;
43289
43309
  e.preventDefault();
43290
- 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));
43291
43311
  C.value.querySelectorAll("button")[r].focus({ preventScroll: !0 });
43292
43312
  }
43293
- function gn(e) {
43313
+ function _n(e) {
43294
43314
  let t = C.value;
43295
43315
  if (!t?.clientHeight || !e) return;
43296
43316
  let n = t.getBoundingClientRect(), r = e.getBoundingClientRect();
43297
- r.top < n.top + ZG ? t.scrollTop += r.top - n.top - ZG : r.bottom > n.bottom - ZG && (t.scrollTop += r.bottom - n.bottom + ZG);
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);
43298
43318
  }
43299
- async function _n() {
43300
- await Qn(), gn(C.value?.querySelector(`[data-jump-id="${T.value}"]`));
43301
- }
43302
- R(T, _n);
43303
- function vn(e, t) {
43304
- !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}"]`));
43305
43321
  }
43322
+ R(T, vn);
43306
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) {
43307
43327
  if (oe = !1, !["touch", "pen"].includes(t.pointerType)) return;
43308
- On(), w.value = !1;
43328
+ kn(), w.value = !1;
43309
43329
  let n = {
43310
43330
  pointer: t.pointerId,
43311
43331
  x: t.clientX,
@@ -43313,114 +43333,114 @@ var hU = /*#__PURE__*/ XH({
43313
43333
  target: t.currentTarget
43314
43334
  };
43315
43335
  ae = n, n.timer = setTimeout(() => {
43316
- ae === n && (oe = !0, Dn(e, { currentTarget: n.target }));
43317
- }, QG);
43336
+ ae === n && (oe = !0, On(e, { currentTarget: n.target }));
43337
+ }, tK);
43318
43338
  }
43319
- function bn() {
43339
+ function xn() {
43320
43340
  ae && clearTimeout(ae.timer), ae = null;
43321
43341
  }
43322
- function xn(e) {
43323
- ae?.pointer === e.pointerId && (e.type === "pointercancel" && (oe = !0), On());
43324
- }
43325
- function Sn(e, t) {
43326
- ["touch", "pen"].includes(t.pointerType) ? ae?.pointer === t.pointerId && Math.hypot(t.clientX - ae.x, t.clientY - ae.y) > $G && (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());
43327
43344
  }
43328
43345
  function Cn(e, t) {
43329
- 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));
43330
43347
  }
43331
- function wn(e) {
43332
- ae && e.preventDefault();
43348
+ function wn(e, t) {
43349
+ oe && t.detail !== 0 ? (oe = !1, t.preventDefault()) : mn(e.message.id);
43333
43350
  }
43334
43351
  function Tn(e) {
43335
- (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());
43336
43356
  }
43337
- function En() {
43338
- On(), E.value = null, ve.value = !0, dn();
43357
+ function Dn() {
43358
+ kn(), E.value = null, ve.value = !0, fn();
43339
43359
  }
43340
- async function Dn(e, t) {
43341
- let n = e.message, r = t.currentTarget.getBoundingClientRect(), i = C.value.getBoundingClientRect(), a = Math.min(FG, innerWidth - 24), o = i.right + RG;
43342
- if (ne.value = Math.max(LG, Math.min(o, innerWidth - a - LG)), D.value = n.id, O.value = e.key, ee.value = e.round, k.value = !0, await Qn(), !k.value || O.value !== e.key) return;
43343
- ie.value = te.value.scrollHeight + IG;
43344
- let s = (Math.max(r.top, i.top + ZG) + Math.min(r.bottom, i.bottom - ZG)) / 2 - ie.value / 2;
43345
- re.value = Math.max(LG, Math.min(s, innerHeight - ie.value - LG));
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));
43346
43366
  let c = A.value || le.get() === 0;
43347
43367
  se[c ? "jump" : "set"](re.value), ce[c ? "jump" : "set"](ie.value);
43348
43368
  }
43349
- function On(e) {
43350
- 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);
43351
43371
  }
43352
- function kn() {
43353
- bn(), k.value = !1, le.jump(0), D.value = null;
43372
+ function An() {
43373
+ xn(), k.value = !1, le.jump(0), D.value = null;
43354
43374
  }
43355
- async function An() {
43356
- kn(), r?.measure(), await dn(), await _n();
43375
+ async function jn() {
43376
+ An(), r?.measure(), await fn(), await vn();
43357
43377
  }
43358
- function jn(e) {
43378
+ function Mn(e) {
43359
43379
  let t = e.entries.length - 1;
43360
- return Math.max(-3, Math.min(t + GG, N.value - e.entries[0].index));
43380
+ return Math.max(-3, Math.min(t + JG, N.value - e.entries[0].index));
43361
43381
  }
43362
- function Mn(e, t) {
43363
- let n = N.value < 0 ? Infinity : Math.abs(t - N.value), r = Math.max(0, 1 - n / GG), i = T.value === e.message.id, a = n === 0 || i && N.value < 0, o = BG;
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;
43364
43384
  return {
43365
- scaleX: a ? VG / o : i ? HG / o : 1 + r * KG / o,
43366
- height: a ? WG : UG,
43367
- opacity: a ? YG : i ? JG : qG + r * XG
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
43368
43388
  };
43369
43389
  }
43370
43390
  R([k, A], () => {
43371
43391
  let e = +!!k.value;
43372
43392
  A.value ? (le.jump(e), se.jump(re.value), ce.jump(ie.value)) : le.set(e);
43373
- }), Qi(() => window.addEventListener("resize", An)), ta(() => window.removeEventListener("resize", An));
43374
- function Nn() {
43393
+ }), Qi(() => window.addEventListener("resize", jn)), ta(() => window.removeEventListener("resize", jn));
43394
+ function Pn() {
43375
43395
  let e = _e.value?.textareaRef;
43376
43396
  if (!e) return;
43377
43397
  e.rows = 1;
43378
43398
  let t = getComputedStyle(e), n = (e.scrollHeight - parseFloat(t.paddingTop) - parseFloat(t.paddingBottom)) / parseFloat(t.lineHeight);
43379
- e.rows = Math.min(Math.max(Math.floor(n), 1), kG);
43399
+ e.rows = Math.min(Math.max(Math.floor(n), 1), MG);
43380
43400
  }
43381
- let Pn = 0, Fn = new ResizeObserver(([e]) => {
43382
- 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());
43383
43403
  });
43384
- Qi(() => _e.value?.textareaRef && Fn.observe(_e.value.textareaRef)), ta(() => Fn.disconnect()), ta(bn);
43385
- let In = /* @__PURE__ */ F(""), Ln;
43386
- function Rn() {
43387
- 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 = "";
43388
43408
  }
43389
- async function zn(e) {
43409
+ async function Bn(e) {
43390
43410
  let t = ye.value.id;
43391
- 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));
43392
43412
  }
43393
- R([() => ye.value?.id, () => xe.value?.id], Rn), ta(Rn);
43394
- function Bn(e) {
43413
+ R([() => ye.value?.id, () => xe.value?.id], zn), ta(zn);
43414
+ function Vn(e) {
43395
43415
  return Ee.value && e.status === "failed" && i.value.access?.can_manage ? i.value.messages.find((t) => t.id === e.request_message_id) : null;
43396
43416
  }
43397
- function Vn(e) {
43398
- let t = Bn(e);
43417
+ function Hn(e) {
43418
+ let t = Vn(e);
43399
43419
  if (!t) return;
43400
43420
  let n = (ye.value.free?.requests || []).find((t) => e.request_ids?.includes(t.id));
43401
43421
  l.value = n?.purpose === "ask" && n.member ? `@${n.member} ${t.text}` : t.text, _e.value?.textareaRef?.focus();
43402
43422
  }
43403
- function Hn(e) {
43423
+ function Un(e) {
43404
43424
  return [[{
43405
43425
  label: "复制原文链接",
43406
43426
  icon: "i-lucide-link",
43407
- onSelect: () => Kn(e)
43427
+ onSelect: () => qn(e)
43408
43428
  }, {
43409
43429
  label: "查看原文",
43410
43430
  icon: "i-lucide-expand",
43411
43431
  onSelect: () => n("detail", e.id)
43412
43432
  }]];
43413
43433
  }
43414
- async function Un(e) {
43434
+ async function Wn(e) {
43415
43435
  await s("reply", e), _e.value?.textareaRef?.focus();
43416
43436
  }
43417
- async function Wn() {
43418
- !Fe.value || c.value || i.value.sending_message || (jt.value = null, ve.value = !0, await s("send"), await dn());
43419
- }
43420
- function Gn(e) {
43421
- 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());
43422
43439
  }
43423
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) {
43424
43444
  s("copy", `${location.origin}/r/${ye.value.id}/messages/${e.id}`);
43425
43445
  }
43426
43446
  return (e, t) => {
@@ -43447,20 +43467,20 @@ var hU = /*#__PURE__*/ XH({
43447
43467
  ref_key: "message_map",
43448
43468
  ref: C,
43449
43469
  class: "channel-message-map",
43450
- style: fe({ "--nav-entry-height": `${zG}px` }),
43470
+ style: fe({ "--nav-entry-height": `${HG}px` }),
43451
43471
  "aria-label": "发言快速导航",
43452
- onWheelPassive: uu(Tn, ["stop"]),
43453
- onPointerleave: On,
43454
- onFocusout: On,
43455
- onKeydown: fu(uu(On, ["stop"]), ["esc"]),
43456
- onContextmenu: wn
43457
- }, [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) => {
43458
43478
  let o = [
43459
43479
  e,
43460
43480
  I(A),
43461
43481
  k.value,
43462
- rn.value === e.number ? T.value : null,
43463
- jn(e)
43482
+ an.value === e.number ? T.value : null,
43483
+ Mn(e)
43464
43484
  ];
43465
43485
  if (r && r.el && r.key === e.entries[0].key && rc(r, o)) return r;
43466
43486
  let s = (U(), W("div", {
@@ -43478,21 +43498,21 @@ var hU = /*#__PURE__*/ XH({
43478
43498
  tabindex: !e.round && e.message.id === (T.value || I(i).messages[0]?.id) ? 0 : -1,
43479
43499
  "aria-current": !e.round && T.value === e.message.id ? "location" : void 0,
43480
43500
  "aria-describedby": k.value && O.value === e.key ? "channel-navigation-preview" : void 0,
43481
- onPointerenter: (t) => Sn(e, t),
43482
- onPointermove: (t) => Sn(e, t),
43483
- onPointerdown: (t) => yn(e, t),
43484
- onPointerup: xn,
43485
- onPointercancel: xn,
43486
- onFocus: (t) => vn(e, t),
43487
- onKeydown: (t) => hn(t, e.index),
43488
- 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)
43489
43509
  }, [e.round ? (U(), W("span", DU, P(e.number || "–"), 1)) : (U(), G(I(bV).span, {
43490
43510
  key: 1,
43491
43511
  class: "channel-jump-tick",
43492
43512
  "aria-hidden": "true",
43493
43513
  initial: !1,
43494
- animate: I(A) ? void 0 : Mn(e, e.index),
43495
- 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),
43496
43516
  transition: j
43497
43517
  }, null, 8, ["animate", "style"]))], 42, EU))), 128))], 4));
43498
43518
  return s.memo = o, s;
@@ -43512,11 +43532,11 @@ var hU = /*#__PURE__*/ XH({
43512
43532
  opacity: I(pe),
43513
43533
  scale: I(ue),
43514
43534
  height: I(ce),
43515
- "--preview-gap": `${RG}px`
43535
+ "--preview-gap": `${VG}px`
43516
43536
  }),
43517
- onPointerleave: On,
43518
- onFocusout: On,
43519
- onKeydown: fu(uu(On, ["stop"]), ["esc"])
43537
+ onPointerleave: kn,
43538
+ onFocusout: kn,
43539
+ onKeydown: fu(uu(kn, ["stop"]), ["esc"])
43520
43540
  }, {
43521
43541
  default: L(() => [K("div", {
43522
43542
  ref_key: "preview_content",
@@ -43555,8 +43575,8 @@ var hU = /*#__PURE__*/ XH({
43555
43575
  "onKeydown"
43556
43576
  ])) : Y("", !0)])),
43557
43577
  nc([
43558
- tn.value,
43559
- an.value,
43578
+ nn.value,
43579
+ on.value,
43560
43580
  T.value,
43561
43581
  b.value.size,
43562
43582
  ye.value.title,
@@ -43581,10 +43601,10 @@ var hU = /*#__PURE__*/ XH({
43581
43601
  ref: y,
43582
43602
  class: "channel-transcript",
43583
43603
  "aria-label": "聊天记录",
43584
- onScroll: un,
43585
- onWheelPassive: mn,
43586
- onTouchstartPassive: mn,
43587
- onKeydown: mn
43604
+ onScroll: dn,
43605
+ onWheelPassive: hn,
43606
+ onTouchstartPassive: hn,
43607
+ onKeydown: hn
43588
43608
  }, [
43589
43609
  !I(i).query && !I(i).mention_only && !Qt.value ? (U(), W("div", PU, [q(qH, {
43590
43610
  ref: (e) => /* @__PURE__ */ ln(r) ? r.value = e : r = e,
@@ -43602,7 +43622,7 @@ var hU = /*#__PURE__*/ XH({
43602
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))]),
43603
43623
  _: 2
43604
43624
  }, 1032, ["title"]))), 128))])) : Y("", !0),
43605
- (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", {
43606
43626
  key: e.key,
43607
43627
  class: "channel-message-group"
43608
43628
  }, [q(w, {
@@ -43616,7 +43636,7 @@ var hU = /*#__PURE__*/ XH({
43616
43636
  ref: (e) => /* @__PURE__ */ ln(r) ? r.value = e : r = e,
43617
43637
  onEdit: t[4] ||= (e) => n("edit")
43618
43638
  }, null, 512)) : Y("", !0),
43619
- e.slot_card ? (U(), G(E, {
43639
+ e.slot_card && !e.failure ? (U(), G(E, {
43620
43640
  key: 2,
43621
43641
  id: `execution-${e.id}`,
43622
43642
  "data-author": I(a).identities[e.author]?.style,
@@ -43700,15 +43720,32 @@ var hU = /*#__PURE__*/ XH({
43700
43720
  variant: "soft",
43701
43721
  size: "xs"
43702
43722
  })
43703
- ]), K("div", QU, [
43704
- K("time", { title: new Date(e.created_at).toLocaleString("zh-CN") }, P(I(a).format_time(e.created_at)), 9, $U),
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),
43705
43728
  K("span", null, "执行 #" + P(e.failure.id), 1),
43706
- e.failure.turn_id ? (U(), W("span", eW, "安排 #" + P(e.failure.turn_id), 1)) : Y("", !0)
43707
- ])]),
43708
- e.failure.elapsed_seconds == null ? Y("", !0) : (U(), W("span", tW, "耗时 " + P(gt(e.failure.elapsed_seconds)), 1))
43729
+ e.failure.turn_id ? (U(), W("span", $U, "安排 #" + P(e.failure.turn_id), 1)) : Y("", !0)
43730
+ ]))), 128))]),
43731
+ e.failure.elapsed_seconds == null ? Y("", !0) : (U(), W("span", eW, "耗时 " + P(gt(e.failure.elapsed_seconds)), 1))
43709
43732
  ]),
43710
- K("p", nW, P(e.failure.result || "执行失败,未提供原因"), 1),
43711
- e.can_retry ? (U(), W("div", rW, [q(o, {
43733
+ K("p", tW, P(e.failure.result || "执行失败,未提供原因"), 1),
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, {
43712
43749
  label: "重试",
43713
43750
  icon: "i-lucide-rotate-ccw",
43714
43751
  size: "sm",
@@ -43723,12 +43760,12 @@ var hU = /*#__PURE__*/ XH({
43723
43760
  "loading",
43724
43761
  "disabled",
43725
43762
  "onClick"
43726
- ]), I(i).free_error ? (U(), W("p", iW, P(I(i).free_error), 1)) : Y("", !0)])) : Y("", !0)
43763
+ ]), I(i).free_error ? (U(), W("p", sW, P(I(i).free_error), 1)) : Y("", !0)])) : Y("", !0)
43727
43764
  ], 8, qU)) : (U(), W(H, { key: 4 }, [
43728
43765
  nc([
43729
43766
  e,
43730
43767
  I(i).admin?.identity_version,
43731
- an.value.get(e.id),
43768
+ on.value.get(e.id),
43732
43769
  b.value.has(e.id),
43733
43770
  T.value === e.id,
43734
43771
  $e(e),
@@ -43758,7 +43795,7 @@ var hU = /*#__PURE__*/ XH({
43758
43795
  }
43759
43796
  }, {
43760
43797
  body: L(() => [
43761
- K("div", aW, [
43798
+ K("div", cW, [
43762
43799
  q(x, {
43763
43800
  src: I(a).identities[e.author]?.icon,
43764
43801
  text: I(a).identities[e.author]?.initials || "?",
@@ -43771,9 +43808,9 @@ var hU = /*#__PURE__*/ XH({
43771
43808
  "alt",
43772
43809
  "class"
43773
43810
  ]),
43774
- K("div", oW, [K("div", sW, [
43811
+ K("div", lW, [K("div", uW, [
43775
43812
  K("strong", null, P(I(a).display_name(e.author)), 1),
43776
- K("span", cW, P(an.value.get(e.id)), 1),
43813
+ K("span", dW, P(on.value.get(e.id)), 1),
43777
43814
  q(D, {
43778
43815
  size: "xs",
43779
43816
  color: "neutral",
@@ -43825,8 +43862,8 @@ var hU = /*#__PURE__*/ XH({
43825
43862
  default: L(() => [J(P(e.label), 1)]),
43826
43863
  _: 2
43827
43864
  }, 1032, ["color", "title"]))), 128))
43828
- ]), K("div", lW, [
43829
- K("time", { title: new Date(e.created_at).toLocaleString("zh-CN") }, P(I(a).format_time(e.created_at)), 9, uW),
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),
43830
43867
  q(o, {
43831
43868
  label: `#${e.id}`,
43832
43869
  color: "neutral",
@@ -43840,10 +43877,10 @@ var hU = /*#__PURE__*/ XH({
43840
43877
  "aria-label",
43841
43878
  "onClick"
43842
43879
  ]),
43843
- e.submitted_by && e.submitted_by !== e.author && (e.source !== "proxy" || e.submitted_by !== "用户") ? (U(), W("span", dW, P(I(a).display_name(e.submitted_by)) + " 代发", 1)) : Y("", !0),
43844
- e.turn_id ? (U(), W("span", fW, "回答安排 #" + 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)
43845
43882
  ])]),
43846
- bt(e) === null ? Y("", !0) : (U(), W("span", pW, "耗时 " + P(gt(bt(e))), 1))
43883
+ bt(e) === null ? Y("", !0) : (U(), W("span", gW, "耗时 " + P(gt(bt(e))), 1))
43847
43884
  ]),
43848
43885
  e.reply_to ? (U(), G(o, {
43849
43886
  key: 0,
@@ -43864,15 +43901,15 @@ var hU = /*#__PURE__*/ XH({
43864
43901
  key: 1,
43865
43902
  class: "channel-receipt",
43866
43903
  onToggle: (t) => t.target.open && je(Me(e).id)
43867
- }, [K("summary", { "aria-label": `查看 #${e.id} 的过程说明` }, "过程说明 · " + P(Me(e).notes) + " 段", 9, hW), K("ol", gW, [(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, mW)) : Y("", !0),
43868
- e.kind === "receipt" ? (U(), W("details", _W, [K("summary", { "aria-label": `查看运行回执 #${e.id}` }, "运行回执详情", 8, vW), 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", {
43869
43906
  class: "channel-message-text markdown-body",
43870
43907
  innerHTML: e.rendered_text
43871
- }, null, 8, yW)])) : (U(), W("div", bW, [K("div", {
43908
+ }, null, 8, SW)])) : (U(), W("div", CW, [K("div", {
43872
43909
  id: `channel-answer-${e.id}`,
43873
43910
  class: "channel-message-text markdown-body",
43874
43911
  innerHTML: b.value.has(e.id) ? e.rendered_text : S.value.get(e.id).html
43875
- }, null, 8, xW), S.value.get(e.id).truncated ? (U(), G(o, {
43912
+ }, null, 8, wW), S.value.get(e.id).truncated ? (U(), G(o, {
43876
43913
  key: 0,
43877
43914
  label: b.value.has(e.id) ? "收起" : "展开全文",
43878
43915
  "trailing-icon": b.value.has(e.id) ? "i-lucide-chevron-up" : "i-lucide-chevron-down",
@@ -43883,7 +43920,7 @@ var hU = /*#__PURE__*/ XH({
43883
43920
  "aria-label": `${b.value.has(e.id) ? "收起回答" : "展开完整回答"} #${e.id}`,
43884
43921
  "aria-expanded": b.value.has(e.id),
43885
43922
  "aria-controls": `channel-answer-${e.id}`,
43886
- onClick: (t) => fn(e, t)
43923
+ onClick: (t) => pn(e, t)
43887
43924
  }, null, 8, [
43888
43925
  "label",
43889
43926
  "trailing-icon",
@@ -43892,14 +43929,14 @@ var hU = /*#__PURE__*/ XH({
43892
43929
  "aria-controls",
43893
43930
  "onClick"
43894
43931
  ])) : Y("", !0)])),
43895
- e.summary ? (U(), W("div", SW, [K("small", null, [t[31] ||= J("回答摘要", -1), e.summary_by && e.summary_by !== e.author ? (U(), W("span", CW, " · " + 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", {
43896
43933
  class: "channel-message-text markdown-body",
43897
43934
  innerHTML: e.rendered_summary
43898
- }, null, 8, wW)])) : Y("", !0),
43935
+ }, null, 8, DW)])) : Y("", !0),
43899
43936
  e.attachments?.length ? (U(), W("div", {
43900
43937
  key: 5,
43901
43938
  innerHTML: I(a).attachment_markup(e.attachments)
43902
- }, null, 8, TW)) : Y("", !0),
43939
+ }, null, 8, OW)) : Y("", !0),
43903
43940
  rt.value.get(e.id) ? (U(), W("div", {
43904
43941
  key: 6,
43905
43942
  class: M(["channel-recommendation", `is-${rt.value.get(e.id).status}`]),
@@ -43910,12 +43947,12 @@ var hU = /*#__PURE__*/ XH({
43910
43947
  name: "i-lucide-zap",
43911
43948
  class: "channel-recommendation-icon"
43912
43949
  }),
43913
- e.status === "open" ? (U(), W("span", EW, [
43950
+ e.status === "open" ? (U(), W("span", kW, [
43914
43951
  t[32] ||= J("智能调度建议让 ", -1),
43915
43952
  K("strong", null, P(I(a).display_name(e.member)), 1),
43916
43953
  t[33] ||= J(" 回答", -1),
43917
- K("small", { title: `${e.label},置信度 ${Number(e.confidence).toFixed(2)}` }, "置信度 " + P(Number(e.confidence).toFixed(2)) + " · " + P(e.remaining) + " 秒", 9, DW)
43918
- ])) : e.status === "waiting" ? (U(), W("span", OW, "智能调度:主持人答完后请 " + P(I(a).display_name(e.member)) + " 回答", 1)) : (U(), W("span", kW, "智能调度:" + 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)),
43919
43956
  e.can_adopt ? (U(), W(H, { key: 3 }, [nt.value === e.message_id ? (U(), W(H, { key: 1 }, [
43920
43957
  q(o, {
43921
43958
  label: `打断主持人,改由 ${I(a).display_name(e.member)} 回答`,
@@ -43950,7 +43987,7 @@ var hU = /*#__PURE__*/ XH({
43950
43987
  onClick: (t) => e.host_busy ? nt.value = e.message_id : mt(e.message_id, "after")
43951
43988
  }, null, 8, ["aria-label", "onClick"]))], 64)) : Y("", !0)
43952
43989
  ], 64))), 128))], 2)) : Y("", !0),
43953
- Ee.value && e.suggestions?.length ? (U(), W("div", AW, [(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", jW, "已转请求 #" + 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, {
43954
43991
  key: 2,
43955
43992
  label: "转为请求",
43956
43993
  icon: "i-lucide-send",
@@ -43967,16 +44004,16 @@ var hU = /*#__PURE__*/ XH({
43967
44004
  "disabled",
43968
44005
  "aria-label",
43969
44006
  "onClick"
43970
- ])) : Y("", !0) : (U(), W("span", MW, "成员已离开"))]))), 128))])) : Y("", !0),
44007
+ ])) : Y("", !0) : (U(), W("span", FW, "成员已离开"))]))), 128))])) : Y("", !0),
43971
44008
  (U(!0), W(H, null, B(Xe.value.get(e.id) || [], (e) => (U(), W("section", {
43972
44009
  key: e.id,
43973
44010
  class: "channel-execution-report",
43974
44011
  "aria-label": `执行报告 #${e.id}`
43975
44012
  }, [
43976
44013
  K("div", null, [K("strong", null, "执行 #" + P(e.id) + " · " + P(e.label), 1)]),
43977
- e.changes?.length ? (U(), W("p", PW, "文件变化:" + P(e.changes.join("、")), 1)) : Y("", !0),
43978
- e.status !== "completed" && e.result ? (U(), W("p", FW, P(e.result), 1)) : Y("", !0),
43979
- 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, {
43980
44017
  key: 2,
43981
44018
  label: "重发",
43982
44019
  icon: "i-lucide-rotate-ccw",
@@ -43984,22 +44021,22 @@ var hU = /*#__PURE__*/ XH({
43984
44021
  variant: "soft",
43985
44022
  color: "neutral",
43986
44023
  "aria-label": `把执行 #${e.id} 的原消息填回输入框重发`,
43987
- onClick: (t) => Vn(e)
44024
+ onClick: (t) => Hn(e)
43988
44025
  }, null, 8, ["aria-label", "onClick"])) : Y("", !0)
43989
- ], 8, NW))), 128))
44026
+ ], 8, IW))), 128))
43990
44027
  ]),
43991
- header: L(() => [K("div", IW, [K("div", LW, [q(ie, { text: "回复" }, {
44028
+ header: L(() => [K("div", zW, [K("div", BW, [q(ie, { text: "回复" }, {
43992
44029
  default: L(() => [q(o, {
43993
44030
  icon: "i-lucide-corner-up-left",
43994
44031
  size: "xs",
43995
44032
  color: "neutral",
43996
44033
  variant: "ghost",
43997
44034
  "aria-label": `回复 #${e.id}`,
43998
- onClick: (t) => Un(e)
44035
+ onClick: (t) => Wn(e)
43999
44036
  }, null, 8, ["aria-label", "onClick"])]),
44000
44037
  _: 2
44001
44038
  }, 1024), q(ae, {
44002
- items: Hn(e),
44039
+ items: Un(e),
44003
44040
  content: {
44004
44041
  align: "end",
44005
44042
  sideOffset: 5
@@ -44051,8 +44088,8 @@ var hU = /*#__PURE__*/ XH({
44051
44088
  }, {
44052
44089
  text: L(() => [
44053
44090
  J("智能调度:" + P(e.label), 1),
44054
- e.confidence === null ? Y("", !0) : (U(), W("small", RW, "置信度 " + P(Number(e.confidence).toFixed(2)), 1)),
44055
- e.detail?.[0]?.duration_ms == null ? Y("", !0) : (U(), W("small", zW, "耗时 " + 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))
44056
44093
  ]),
44057
44094
  actions: L(() => [I(i).access?.can_manage ? (U(), W("button", {
44058
44095
  key: 0,
@@ -44062,7 +44099,7 @@ var hU = /*#__PURE__*/ XH({
44062
44099
  "aria-label": "这次调度判断得好",
44063
44100
  title: "判断得好",
44064
44101
  onClick: (t) => dt(e, "good")
44065
- }, [q(re, { name: "i-lucide-thumbs-up" })], 10, BW)) : 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", {
44066
44103
  key: 1,
44067
44104
  type: "button",
44068
44105
  class: M(["channel-schedule-rate", { "is-on": e.feedback === "bad" }]),
@@ -44070,8 +44107,8 @@ var hU = /*#__PURE__*/ XH({
44070
44107
  "aria-label": "这次调度判断得不好",
44071
44108
  title: "判断得不好",
44072
44109
  onClick: (t) => dt(e, "bad")
44073
- }, [q(re, { name: "i-lucide-thumbs-down" })], 10, VW)) : Y("", !0)]),
44074
- 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", HW, "概率 " + 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))]),
44075
44112
  _: 2
44076
44113
  }, 1032, [
44077
44114
  "skipped",
@@ -44086,7 +44123,7 @@ var hU = /*#__PURE__*/ XH({
44086
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", {
44087
44124
  key: e.value,
44088
44125
  value: e.value
44089
- }, P(e.label), 9, WW))), 128))], 512), [[$l, ut.value.should_be]])]),
44126
+ }, P(e.label), 9, qW))), 128))], 512), [[$l, ut.value.should_be]])]),
44090
44127
  vr(K("input", {
44091
44128
  "onUpdate:modelValue": t[8] ||= (e) => ut.value.note = e,
44092
44129
  type: "text",
@@ -44112,7 +44149,7 @@ var hU = /*#__PURE__*/ XH({
44112
44149
  note: ""
44113
44150
  }
44114
44151
  })
44115
- ], 40, UW)) : Y("", !0)], 64))), 128)),
44152
+ ], 40, KW)) : Y("", !0)], 64))), 128)),
44116
44153
  (U(!0), W(H, null, B(lt.value.get(e.id) || [], (t) => (U(), G(jH, {
44117
44154
  key: `arrangement-${t.id}`,
44118
44155
  icon: "i-lucide-list-ordered",
@@ -44141,7 +44178,7 @@ var hU = /*#__PURE__*/ XH({
44141
44178
  body: "channel-message-body"
44142
44179
  }
44143
44180
  }, {
44144
- body: L(() => [K("div", GW, [
44181
+ body: L(() => [K("div", JW, [
44145
44182
  q(x, {
44146
44183
  src: I(a).identities[e.expert]?.icon,
44147
44184
  text: I(a).identities[e.expert]?.initials || "?",
@@ -44154,8 +44191,8 @@ var hU = /*#__PURE__*/ XH({
44154
44191
  "alt",
44155
44192
  "class"
44156
44193
  ]),
44157
- K("div", KW, [K("div", qW, [K("strong", null, P(I(a).display_name(e.expert)), 1)])]),
44158
- K("span", JW, "已错过 · 安排 #" + 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)
44159
44196
  ]), t[36] ||= K("div", {
44160
44197
  class: "channel-message-text",
44161
44198
  role: "status"
@@ -44164,12 +44201,12 @@ var hU = /*#__PURE__*/ XH({
44164
44201
  }, 1032, ["id", "data-author"]))), 128))
44165
44202
  ], 64))
44166
44203
  ], 64))), 128))]))), 128)),
44167
- (Qt.value === "end" || $t.value === "end") && !I(i).query && !I(i).mention_only ? (U(), W("div", YW, [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, {
44168
44205
  key: 0,
44169
44206
  ref: (e) => /* @__PURE__ */ ln(r) ? r.value = e : r = e,
44170
44207
  onEdit: t[10] ||= (e) => n("edit")
44171
44208
  }, null, 512)) : Y("", !0), $t.value === "end" ? (U(), G(SU, { key: 1 })) : Y("", !0)])) : Y("", !0),
44172
- Ze.value ? (U(), W("div", XW, [Ze.value.is_host ? (U(), G(jH, {
44209
+ Ze.value ? (U(), W("div", $W, [Ze.value.is_host ? (U(), G(jH, {
44173
44210
  key: 0,
44174
44211
  id: `execution-${Ze.value.id}`,
44175
44212
  icon: "i-lucide-list-ordered",
@@ -44184,7 +44221,7 @@ var hU = /*#__PURE__*/ XH({
44184
44221
  ref_key: "reply_glow",
44185
44222
  ref: be,
44186
44223
  class: "channel-reply-glow"
44187
- }, P(Ze.value.text), 513)], 8, ZW), K("small", null, "已用 " + P(_t.value), 1)]),
44224
+ }, P(Ze.value.text), 513)], 8, eG), K("small", null, "已用 " + P(_t.value), 1)]),
44188
44225
  _: 1
44189
44226
  }, 8, ["id", "label"])) : (U(), G(E, {
44190
44227
  key: 1,
@@ -44202,7 +44239,7 @@ var hU = /*#__PURE__*/ XH({
44202
44239
  body: "channel-message-body"
44203
44240
  }
44204
44241
  }, {
44205
- body: L(() => [K("div", QW, [
44242
+ body: L(() => [K("div", tG, [
44206
44243
  q(x, {
44207
44244
  src: I(a).identities[Ze.value.author]?.icon,
44208
44245
  text: I(a).identities[Ze.value.author]?.initials || "?",
@@ -44215,41 +44252,41 @@ var hU = /*#__PURE__*/ XH({
44215
44252
  "alt",
44216
44253
  "class"
44217
44254
  ]),
44218
- K("div", $W, [K("div", eG, [K("strong", null, P(I(a).display_name(Ze.value.author)), 1), Ze.value.round ? (U(), W("span", tG, P(Ze.value.round), 1)) : Y("", !0)])]),
44219
- K("span", nG, 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)
44220
44257
  ]), K("div", {
44221
44258
  class: "channel-message-text",
44222
44259
  role: "status",
44223
44260
  "aria-label": `${I(a).display_name(Ze.value.author)} ${Ze.value.text}`
44224
- }, [Ze.value.manual ? (U(), W("span", iG, P(Ze.value.text), 1)) : (U(), W("span", {
44261
+ }, [Ze.value.manual ? (U(), W("span", sG, P(Ze.value.text), 1)) : (U(), W("span", {
44225
44262
  key: 1,
44226
44263
  ref_key: "reply_glow",
44227
44264
  ref: be,
44228
44265
  class: "channel-reply-glow"
44229
- }, P(Ze.value.text), 513))], 8, rG)]),
44266
+ }, P(Ze.value.text), 513))], 8, oG)]),
44230
44267
  _: 1
44231
44268
  }, 8, ["id", "data-author"]))])) : Y("", !0),
44232
- !Zt.value.length && !Ze.value && !ke.value.length ? (U(), W("div", aG, [
44269
+ !Zt.value.length && !Ze.value && !ke.value.length ? (U(), W("div", cG, [
44233
44270
  q(re, { name: I(i).query || I(i).mention_only ? "i-lucide-search" : "i-lucide-hash" }, null, 8, ["name"]),
44234
44271
  K("h2", null, P(I(i).query || I(i).mention_only ? "没有找到消息" : ye.value.title), 1),
44235
44272
  K("p", null, P(I(i).query || I(i).mention_only ? "试试其他关键词,或清除筛选。" : I(a).empty_discussion_message(ye.value)), 1)
44236
44273
  ])) : Y("", !0)
44237
44274
  ], 544)), t, 11),
44238
- (Zt.value.length || Ze.value) && !ve.value ? (U(), W("div", oG, [q(o, {
44275
+ (Zt.value.length || Ze.value) && !ve.value ? (U(), W("div", lG, [q(o, {
44239
44276
  icon: "i-lucide-arrow-down",
44240
44277
  color: "neutral",
44241
44278
  variant: "outline",
44242
44279
  "aria-label": "回到最新消息",
44243
44280
  class: "channel-latest-button",
44244
- onClick: En
44281
+ onClick: Dn
44245
44282
  })])) : Y("", !0),
44246
- K("div", sG, [K("div", {
44283
+ K("div", uG, [K("div", {
44247
44284
  class: "channel-composer-column",
44248
44285
  onDragover: t[23] ||= (...e) => I(a).drop_attachments && I(a).drop_attachments(...e),
44249
44286
  onDrop: t[24] ||= (...e) => I(a).drop_attachments && I(a).drop_attachments(...e),
44250
44287
  onPaste: t[25] ||= (...e) => I(a).paste_attachments && I(a).paste_attachments(...e),
44251
44288
  onKeydownCapture: t[26] ||= (e) => {
44252
- Gt(e), Gn(e);
44289
+ Gt(e), Kn(e);
44253
44290
  },
44254
44291
  onInput: Ut,
44255
44292
  onClick: Ut,
@@ -44312,7 +44349,7 @@ var hU = /*#__PURE__*/ XH({
44312
44349
  ])),
44313
44350
  K("span", null, P(Pt[e] ? `全体成员(${Ie.value.length} 位)` : I(a).display_name(e)), 1),
44314
44351
  K("small", null, "@" + P(e), 1)
44315
- ], 40, cG))), 128)), Bt.value.length ? Y("", !0) : (U(), W("p", lG, "没有匹配的成员"))], 512)]),
44352
+ ], 40, dG))), 128)), Bt.value.length ? Y("", !0) : (U(), W("p", fG, "没有匹配的成员"))], 512)]),
44316
44353
  _: 1
44317
44354
  }, 8, [
44318
44355
  "open",
@@ -44328,7 +44365,7 @@ var hU = /*#__PURE__*/ XH({
44328
44365
  "submit-on-enter": !0,
44329
44366
  autofocus: !1,
44330
44367
  rows: 1,
44331
- maxrows: kG,
44368
+ maxrows: MG,
44332
44369
  placeholder: `发消息到 # ${ye.value.title}`,
44333
44370
  "aria-label": "留言正文",
44334
44371
  role: "combobox",
@@ -44345,10 +44382,10 @@ var hU = /*#__PURE__*/ XH({
44345
44382
  base: "channel-editor",
44346
44383
  footer: "channel-composer-footer"
44347
44384
  },
44348
- onSubmit: Wn
44385
+ onSubmit: Gn
44349
44386
  }, {
44350
44387
  header: L(() => [
44351
- I(i).attachment_drafts.length ? (U(), W("div", uG, [(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", {
44352
44389
  key: e.id,
44353
44390
  class: M(e.preview_url ? "attachment-draft-image" : "attachment-draft-file")
44354
44391
  }, [e.preview_url ? (U(), W("img", {
@@ -44356,49 +44393,49 @@ var hU = /*#__PURE__*/ XH({
44356
44393
  src: e.preview_url,
44357
44394
  alt: e.file_name,
44358
44395
  title: e.file_name
44359
- }, null, 8, dG)) : (U(), W(H, { key: 1 }, [K("span", { innerHTML: I(a).attachment_file_icon(e.file_name) }, null, 8, fG), K("span", pG, [K("span", { title: e.file_name }, P(e.file_name), 9, mG), 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", {
44360
44397
  type: "button",
44361
44398
  class: "attachment-remove",
44362
44399
  "aria-label": `移除 ${e.file_name}`,
44363
44400
  disabled: I(i).sending_message,
44364
44401
  onClick: (t) => I(s)("remove_attachment", e.id)
44365
- }, [q(re, { name: "i-lucide-x" })], 8, hG)], 2))), 128))])) : Y("", !0),
44402
+ }, [q(re, { name: "i-lucide-x" })], 8, vG)], 2))), 128))])) : Y("", !0),
44366
44403
  I(i).composer_error || I(i).upload_status ? (U(), W("p", {
44367
44404
  key: 1,
44368
44405
  class: "attachment-status",
44369
44406
  role: I(i).composer_error ? "alert" : "status"
44370
- }, P(I(i).composer_error || I(i).upload_status), 9, gG)) : Y("", !0),
44371
- we.value ? (U(), W("div", _G, [
44407
+ }, P(I(i).composer_error || I(i).upload_status), 9, yG)) : Y("", !0),
44408
+ we.value ? (U(), W("div", bG, [
44372
44409
  q(re, { name: "i-lucide-user-round-x" }),
44373
44410
  K("span", null, P(I(a).display_name(we.value.name)) + " 待注册:在其会话中粘贴启动指令", 1),
44374
44411
  I(i).access?.can_manage ? (U(), G(o, {
44375
44412
  key: 0,
44376
- icon: In.value === we.value.name ? "i-lucide-check" : "i-lucide-copy",
44377
- 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 ? "已复制" : "复制启动指令",
44378
44415
  "aria-live": "polite",
44379
44416
  size: "xs",
44380
44417
  color: "neutral",
44381
44418
  variant: "ghost",
44382
44419
  class: "channel-launch-copy",
44383
- onClick: t[14] ||= (e) => zn(we.value.name)
44420
+ onClick: t[14] ||= (e) => Bn(we.value.name)
44384
44421
  }, null, 8, ["icon", "label"])) : Y("", !0)
44385
44422
  ])) : Y("", !0),
44386
- Te.value ? (U(), W("div", vG, [
44423
+ Te.value ? (U(), W("div", xG, [
44387
44424
  q(re, { name: "i-lucide-clock" }),
44388
44425
  K("span", null, P(Te.value), 1),
44389
44426
  Se(Ce.value) && I(i).access?.can_manage ? (U(), G(o, {
44390
44427
  key: 0,
44391
- icon: In.value === Ce.value.name ? "i-lucide-check" : "i-lucide-copy",
44392
- 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 ? "已复制" : "复制启动指令",
44393
44430
  "aria-live": "polite",
44394
44431
  size: "xs",
44395
44432
  color: "neutral",
44396
44433
  variant: "ghost",
44397
44434
  class: "channel-launch-copy",
44398
- onClick: t[15] ||= (e) => zn(Ce.value.name)
44435
+ onClick: t[15] ||= (e) => Bn(Ce.value.name)
44399
44436
  }, null, 8, ["icon", "label"])) : Y("", !0)
44400
44437
  ])) : Y("", !0),
44401
- I(i).reply_to || I(i).turn_reply_to ? (U(), W("div", yG, [
44438
+ I(i).reply_to || I(i).turn_reply_to ? (U(), W("div", SG, [
44402
44439
  q(re, { name: "i-lucide-corner-up-left" }),
44403
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),
44404
44441
  q(o, {
@@ -44410,7 +44447,7 @@ var hU = /*#__PURE__*/ XH({
44410
44447
  onClick: t[16] ||= (e) => I(s)(I(i).turn_reply_to ? "cancel_answer" : "cancel_reply")
44411
44448
  }, null, 8, ["aria-label"])
44412
44449
  ])) : Y("", !0),
44413
- g.value ? (U(), W("div", bG, [q(le, {
44450
+ g.value ? (U(), W("div", CG, [q(le, {
44414
44451
  modelValue: I(m),
44415
44452
  "onUpdate:modelValue": t[17] ||= (e) => /* @__PURE__ */ ln(m) ? m.value = e : null,
44416
44453
  rows: 2,
@@ -44437,14 +44474,14 @@ var hU = /*#__PURE__*/ XH({
44437
44474
  disabled: I(i).sending_message,
44438
44475
  onClick: t[19] ||= (e) => I(s)("choose_attachments")
44439
44476
  }, null, 8, ["disabled"]),
44440
- Re.value.length ? (U(), W("div", SG, [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", {
44441
44478
  key: e.id,
44442
44479
  type: "button",
44443
44480
  "aria-pressed": I(i).free_proxy === e.name,
44444
44481
  class: M({ "is-on": I(i).free_proxy === e.name }),
44445
44482
  onClick: (t) => I(s)("set_proxy", e.name)
44446
- }, P(I(a).display_name(e.name)), 11, CG))), 128))])) : Y("", !0),
44447
- Ee.value ? Y("", !0) : (U(), W("div", wG, [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, {
44448
44485
  modelValue: I(f),
44449
44486
  "onUpdate:modelValue": t[20] ||= (e) => /* @__PURE__ */ ln(f) ? f.value = e : null,
44450
44487
  items: xt.value,
@@ -44499,7 +44536,7 @@ var hU = /*#__PURE__*/ XH({
44499
44536
  title: "发送 · Enter",
44500
44537
  disabled: !Fe.value,
44501
44538
  loading: I(c) === "send" || I(i).sending_message,
44502
- onClick: Wn
44539
+ onClick: Gn
44503
44540
  }, null, 8, ["disabled", "loading"])
44504
44541
  ]),
44505
44542
  default: L(() => [Ot.value ? (U(), W("div", {
@@ -44509,7 +44546,7 @@ var hU = /*#__PURE__*/ XH({
44509
44546
  class: "channel-editor channel-editor-mirror",
44510
44547
  "aria-hidden": "true",
44511
44548
  innerHTML: Ot.value
44512
- }, null, 8, xG)) : Y("", !0)]),
44549
+ }, null, 8, wG)) : Y("", !0)]),
44513
44550
  _: 1
44514
44551
  }, 8, [
44515
44552
  "modelValue",
@@ -44520,16 +44557,16 @@ var hU = /*#__PURE__*/ XH({
44520
44557
  "aria-activedescendant",
44521
44558
  "class"
44522
44559
  ]),
44523
- K("div", TG, [Ee.value ? (U(), W("span", EG, [
44560
+ K("div", OG, [Ee.value ? (U(), W("span", kG, [
44524
44561
  J(P(Pe.value), 1),
44525
44562
  t[39] ||= K("span", { class: "channel-note-divider" }, "·", -1),
44526
44563
  t[40] ||= J("手动成员需在原会话触发", -1)
44527
- ])) : (U(), W("span", DG, [
44564
+ ])) : (U(), W("span", AG, [
44528
44565
  J(P(Tt.value), 1),
44529
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),
44530
44567
  t[42] ||= K("span", { class: "channel-note-divider" }, "·", -1),
44531
44568
  t[43] ||= J("在线 AI 的观点需代发", -1)
44532
- ])), K("span", OG, [u.value ? (U(), W("span", {
44569
+ ])), K("span", jG, [u.value ? (U(), W("span", {
44533
44570
  key: 0,
44534
44571
  class: M({ "is-near-limit": d.value })
44535
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" }, [
@@ -44545,7 +44582,7 @@ var hU = /*#__PURE__*/ XH({
44545
44582
  ], 2);
44546
44583
  };
44547
44584
  }
44548
- }, [["__scopeId", "data-v-45aaa601"]]), dK = {
44585
+ }, [["__scopeId", "data-v-aa960fd1"]]), mK = {
44549
44586
  slots: {
44550
44587
  root: "relative inline-flex items-center",
44551
44588
  base: ["rounded-md", "transition-colors"],
@@ -44973,7 +45010,7 @@ var hU = /*#__PURE__*/ XH({
44973
45010
  color: "primary",
44974
45011
  variant: "outline"
44975
45012
  }
44976
- }, fK = /*@__PURE__*/ Object.assign({ inheritAttrs: !1 }, {
45013
+ }, hK = /*@__PURE__*/ Object.assign({ inheritAttrs: !1 }, {
44977
45014
  __name: "InputMenu",
44978
45015
  props: /*@__PURE__*/ Fa({
44979
45016
  as: {
@@ -45253,7 +45290,7 @@ var hU = /*#__PURE__*/ XH({
45253
45290
  required: !1
45254
45291
  }
45255
45292
  } }), _e = Z(() => oA({
45256
- extend: dK,
45293
+ extend: mK,
45257
45294
  ...l.ui?.inputMenu || {}
45258
45295
  })({
45259
45296
  color: le.value,
@@ -45747,16 +45784,16 @@ var hU = /*#__PURE__*/ XH({
45747
45784
  ])
45748
45785
  ], 64));
45749
45786
  }
45750
- }), pK = { class: "api-settings" }, mK = {
45787
+ }), gK = { class: "api-settings" }, _K = {
45751
45788
  class: "api-field",
45752
45789
  title: "Base URL"
45753
- }, hK = {
45790
+ }, vK = {
45754
45791
  class: "api-field",
45755
45792
  title: "OpenRouter 等兼容服务可选 Chat Completions,并填写该服务的完整模型 ID。"
45756
- }, 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 = {
45757
45794
  key: 0,
45758
45795
  role: "alert"
45759
- }, bK = "••••••••••••", xK = /*#__PURE__*/ XH({
45796
+ }, CK = "••••••••••••", wK = /*#__PURE__*/ XH({
45760
45797
  __name: "ApiSettings",
45761
45798
  props: { name: {
45762
45799
  type: String,
@@ -45798,9 +45835,9 @@ var hU = /*#__PURE__*/ XH({
45798
45835
  }
45799
45836
  }
45800
45837
  return (t, n) => {
45801
- let u = YV, m = bH, h = MA, g = fK;
45802
- return U(), W("div", pK, [
45803
- 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, {
45804
45841
  "model-value": i.value.base_url || "",
45805
45842
  "aria-label": `${e.name} Base URL`,
45806
45843
  placeholder: "Base URL",
@@ -45808,7 +45845,7 @@ var hU = /*#__PURE__*/ XH({
45808
45845
  size: "xs",
45809
45846
  "onUpdate:modelValue": n[0] ||= (e) => f("base_url", e)
45810
45847
  }, null, 8, ["model-value", "aria-label"])]),
45811
- K("div", hK, [n[7] ||= K("span", null, "协议", -1), q(m, {
45848
+ K("div", vK, [n[7] ||= K("span", null, "协议", -1), q(m, {
45812
45849
  "model-value": i.value.api_protocol || "",
45813
45850
  items: d,
45814
45851
  "aria-label": `${e.name} API 请求协议`,
@@ -45816,7 +45853,7 @@ var hU = /*#__PURE__*/ XH({
45816
45853
  size: "xs",
45817
45854
  "onUpdate:modelValue": n[1] ||= (e) => f("api_protocol", e)
45818
45855
  }, null, 8, ["model-value", "aria-label"])]),
45819
- K("div", gK, [n[8] ||= K("span", null, "密钥", -1), q(u, {
45856
+ K("div", yK, [n[8] ||= K("span", null, "密钥", -1), q(u, {
45820
45857
  modelValue: o.value,
45821
45858
  "onUpdate:modelValue": n[3] ||= (e) => o.value = e,
45822
45859
  type: "text",
@@ -45824,7 +45861,7 @@ var hU = /*#__PURE__*/ XH({
45824
45861
  spellcheck: "false",
45825
45862
  "data-1p-ignore": "",
45826
45863
  "data-lpignore": "true",
45827
- placeholder: i.value.api_key_ref ? bK : "填写 API Key",
45864
+ placeholder: i.value.api_key_ref ? CK : "填写 API Key",
45828
45865
  title: i.value.api_key_ref && !o.value ? "已保存;本机不回传密钥,输入新 Key 可更换" : void 0,
45829
45866
  "aria-label": `${e.name} API Key`,
45830
45867
  size: "xs",
@@ -45860,7 +45897,7 @@ var hU = /*#__PURE__*/ XH({
45860
45897
  "loading",
45861
45898
  "ui"
45862
45899
  ])]),
45863
- 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, {
45864
45901
  mode: "autocomplete",
45865
45902
  "ignore-filter": "",
45866
45903
  "model-value": i.value.model || "",
@@ -45890,30 +45927,30 @@ var hU = /*#__PURE__*/ XH({
45890
45927
  "loading",
45891
45928
  "disabled"
45892
45929
  ])])]),
45893
- 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)
45894
45931
  ]);
45895
45932
  };
45896
45933
  }
45897
- }, [["__scopeId", "data-v-9bf1d860"]]), SK = {
45934
+ }, [["__scopeId", "data-v-9bf1d860"]]), TK = {
45898
45935
  key: 0,
45899
45936
  class: "project-field"
45900
- }, CK = ["disabled"], wK = {
45937
+ }, EK = ["disabled"], DK = {
45901
45938
  key: 0,
45902
45939
  class: "project-note"
45903
- }, TK = ["title"], EK = { class: "project-box-actions" }, DK = {
45940
+ }, OK = ["title"], kK = { class: "project-box-actions" }, AK = {
45904
45941
  key: 0,
45905
45942
  class: "project-rows",
45906
45943
  "aria-label": "常用项目"
45907
- }, 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 = {
45908
45945
  key: 1,
45909
45946
  class: "project-add",
45910
45947
  role: "group",
45911
45948
  "aria-label": "添加项目"
45912
- }, PK = { class: "project-add-actions" }, FK = {
45949
+ }, LK = { class: "project-add-actions" }, RK = {
45913
45950
  key: 3,
45914
45951
  role: "alert",
45915
45952
  class: "project-error"
45916
- }, IK = { class: "project-footer" }, LK = /*#__PURE__*/ XH({
45953
+ }, zK = { class: "project-footer" }, BK = /*#__PURE__*/ XH({
45917
45954
  __name: "ProjectDirectoryField",
45918
45955
  props: {
45919
45956
  placeholder: {
@@ -46006,7 +46043,7 @@ var hU = /*#__PURE__*/ XH({
46006
46043
  }
46007
46044
  return (e, n) => {
46008
46045
  let r = sA, i = CH, u = YV, f = MA, ne = zV, re = YH;
46009
- 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, {
46010
46047
  items: h.value,
46011
46048
  content: {
46012
46049
  align: "start",
@@ -46029,9 +46066,9 @@ var hU = /*#__PURE__*/ XH({
46029
46066
  name: "i-lucide-chevron-down",
46030
46067
  class: "project-select-chevron"
46031
46068
  })
46032
- ], 10, CK)]),
46069
+ ], 10, EK)]),
46033
46070
  _: 1
46034
- }, 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", {
46035
46072
  key: 1,
46036
46073
  class: M(["project-box", {
46037
46074
  "is-disabled": t.disabled,
@@ -46042,7 +46079,7 @@ var hU = /*#__PURE__*/ XH({
46042
46079
  key: 0,
46043
46080
  class: "project-chip",
46044
46081
  title: l.value.path
46045
- }, [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),
46046
46083
  q(u, {
46047
46084
  "model-value": c.value,
46048
46085
  placeholder: t.placeholder,
@@ -46056,7 +46093,7 @@ var hU = /*#__PURE__*/ XH({
46056
46093
  "placeholder",
46057
46094
  "disabled"
46058
46095
  ]),
46059
- K("div", EK, [o.value.length ? (U(), G(i, {
46096
+ K("div", kK, [o.value.length ? (U(), G(i, {
46060
46097
  key: 0,
46061
46098
  items: h.value,
46062
46099
  content: {
@@ -46121,10 +46158,10 @@ var hU = /*#__PURE__*/ XH({
46121
46158
  class: "project-manager dialog-form",
46122
46159
  onSubmit: uu(te, ["prevent"])
46123
46160
  }, [
46124
- _.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", {
46125
46162
  key: t,
46126
46163
  class: M(["project-row", { "is-editing": v.value === t }])
46127
- }, [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, {
46128
46165
  modelValue: e.name,
46129
46166
  "onUpdate:modelValue": (t) => e.name = t,
46130
46167
  placeholder: "项目名称",
@@ -46159,7 +46196,7 @@ var hU = /*#__PURE__*/ XH({
46159
46196
  "aria-label": "完成编辑",
46160
46197
  disabled: !O(e),
46161
46198
  onClick: n[0] ||= (e) => v.value = -1
46162
- }, 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, {
46163
46200
  icon: "i-lucide-pencil",
46164
46201
  color: "neutral",
46165
46202
  variant: "ghost",
@@ -46176,7 +46213,7 @@ var hU = /*#__PURE__*/ XH({
46176
46213
  "aria-label": `移除 ${e.name}`,
46177
46214
  onClick: (e) => k(t)
46178
46215
  }, null, 8, ["aria-label", "onClick"])])], 64))], 2))), 128))])) : Y("", !0),
46179
- y.value ? (U(), W("div", NK, [
46216
+ y.value ? (U(), W("div", IK, [
46180
46217
  q(ne, {
46181
46218
  label: "文件夹",
46182
46219
  description: s.value ? "" : "运行 codiscuss 的电脑上的完整路径"
@@ -46216,7 +46253,7 @@ var hU = /*#__PURE__*/ XH({
46216
46253
  }, null, 8, ["modelValue", "onKeydown"])]),
46217
46254
  _: 1
46218
46255
  }),
46219
- K("div", PK, [_.value.length ? (U(), G(f, {
46256
+ K("div", LK, [_.value.length ? (U(), G(f, {
46220
46257
  key: 0,
46221
46258
  label: "取消",
46222
46259
  color: "neutral",
@@ -46238,8 +46275,8 @@ var hU = /*#__PURE__*/ XH({
46238
46275
  class: "project-add-trigger",
46239
46276
  onClick: T
46240
46277
  }, [q(r, { name: "i-lucide-plus" }), n[9] ||= J("添加项目", -1)])),
46241
- S.value ? (U(), W("p", FK, [q(r, { name: "i-lucide-circle-alert" }), J(P(S.value), 1)])) : Y("", !0),
46242
- 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, {
46243
46280
  label: "取消",
46244
46281
  color: "neutral",
46245
46282
  variant: "ghost",
@@ -46255,22 +46292,22 @@ var hU = /*#__PURE__*/ XH({
46255
46292
  }, 8, ["open"])], 64);
46256
46293
  };
46257
46294
  }
46258
- }, [["__scopeId", "data-v-db76a0df"]]), RK = {
46295
+ }, [["__scopeId", "data-v-db76a0df"]]), VK = {
46259
46296
  class: "launch-settings",
46260
46297
  "aria-label": "启动配置"
46261
- }, zK = { class: "launch-connect-command" }, BK = {
46298
+ }, HK = { class: "launch-connect-command" }, UK = {
46262
46299
  key: 0,
46263
46300
  role: "alert",
46264
46301
  class: "fine-print"
46265
- }, 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 = {
46266
46303
  key: 0,
46267
46304
  role: "alert",
46268
46305
  class: "fine-print"
46269
- }, JK = {
46306
+ }, ZK = {
46270
46307
  key: 1,
46271
46308
  role: "status",
46272
46309
  class: "fine-print"
46273
- }, YK = /*#__PURE__*/ XH({
46310
+ }, QK = /*#__PURE__*/ XH({
46274
46311
  __name: "LaunchSettings",
46275
46312
  props: {
46276
46313
  participants: {
@@ -46311,7 +46348,7 @@ var hU = /*#__PURE__*/ XH({
46311
46348
  e && t && o.value.forEach((e) => r.load_launch_models(e));
46312
46349
  }, { immediate: !0 }), (e, m) => {
46313
46350
  let h = MA, g = bH, _ = zV, v = YV, y = HV;
46314
- 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 }, [
46315
46352
  m[9] ||= K("h3", null, "启动配置", -1),
46316
46353
  m[10] ||= K("p", { class: "fine-print" }, "接入配置可保存供后续讨论复用。API 不需要安装 AI 软件;App 需要保持运行;CLI 按需启动。", -1),
46317
46354
  (U(!0), W(H, null, B(o.value, (e) => (U(), W("details", {
@@ -46320,12 +46357,12 @@ var hU = /*#__PURE__*/ XH({
46320
46357
  class: "launch-client"
46321
46358
  }, [
46322
46359
  K("summary", null, P(e) + " · " + P(I(r).launch_summary(e).client) + " · " + P(I(r).launch_summary(e).session), 1),
46323
- K("p", VK, [
46360
+ K("p", WK, [
46324
46361
  J("工作目录:" + P(I(r).launch_summary(e).cwd) + "(" + P(I(r).launch_summary(e).access) + ")", 1),
46325
46362
  m[7] ||= K("br", null, null, -1),
46326
46363
  J("项目:" + P(I(r).launch_summary(e).project), 1)
46327
46364
  ]),
46328
- K("div", HK, [
46365
+ K("div", GK, [
46329
46366
  q(_, { label: `${e} 执行客户端` }, {
46330
46367
  default: L(() => [q(g, {
46331
46368
  "model-value": s(e).adapter || "",
@@ -46368,7 +46405,7 @@ var hU = /*#__PURE__*/ XH({
46368
46405
  ])]),
46369
46406
  _: 2
46370
46407
  }, 1024)),
46371
- s(e).adapter === "api" ? (U(), G(xK, {
46408
+ s(e).adapter === "api" ? (U(), G(wK, {
46372
46409
  key: 2,
46373
46410
  name: e
46374
46411
  }, null, 8, ["name"])) : t.modelSelection && f(e).supported ? (U(), G(_, {
@@ -46392,7 +46429,7 @@ var hU = /*#__PURE__*/ XH({
46392
46429
  type: "button",
46393
46430
  class: "model-retry",
46394
46431
  onClick: (t) => I(r).load_launch_models(e, !0)
46395
- }, "重新读取模型列表", 8, UK)) : Y("", !0)]),
46432
+ }, "重新读取模型列表", 8, KK)) : Y("", !0)]),
46396
46433
  _: 2
46397
46434
  }, 1032, ["help"])) : Y("", !0),
46398
46435
  t.modelSelection && f(e).efforts?.length ? (U(), G(_, {
@@ -46436,7 +46473,7 @@ var hU = /*#__PURE__*/ XH({
46436
46473
  }, null, 8, ["model-value", "onUpdate:modelValue"])]),
46437
46474
  _: 2
46438
46475
  }, 1024)) : Y("", !0),
46439
- 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, [
46440
46477
  q(_, { label: "复用会话 ID(仅本次)" }, {
46441
46478
  default: L(() => [q(v, {
46442
46479
  "model-value": s(e).session_id || "",
@@ -46495,13 +46532,13 @@ var hU = /*#__PURE__*/ XH({
46495
46532
  ])]))
46496
46533
  ])
46497
46534
  ]))), 128)),
46498
- K("div", KK, [
46535
+ K("div", YK, [
46499
46536
  t.workspace ? (U(), G(_, {
46500
46537
  key: 0,
46501
46538
  label: "本次工作目录(可选)",
46502
46539
  help: "要一起查看的项目目录;留空时 AI 只在讨论私有目录工作"
46503
46540
  }, {
46504
- default: L(() => [q(LK, { placeholder: "已有目录的完整路径" })]),
46541
+ default: L(() => [q(BK, { placeholder: "已有目录的完整路径" })]),
46505
46542
  _: 1
46506
46543
  })) : Y("", !0),
46507
46544
  q(_, { label: "本次 AI 项目(可选)" }, {
@@ -46534,11 +46571,11 @@ var hU = /*#__PURE__*/ XH({
46534
46571
  loading: I(a) === "save_launch_defaults",
46535
46572
  onClick: m[4] ||= (e) => I(i)("save_launch_defaults")
46536
46573
  }, null, 8, ["loading"]),
46537
- 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)
46538
46575
  ], 64)) : (U(), W(H, { key: 0 }, [
46539
46576
  m[5] ||= K("h3", null, "连接这台电脑", -1),
46540
46577
  m[6] ||= K("p", { class: "fine-print" }, "先安装并配置 codiscuss,在运行 AI 的这台电脑上执行以下命令,使用命令打开的网页完成连接。浏览器询问时允许访问本机网络。", -1),
46541
- 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, {
46542
46579
  icon: "i-lucide-copy",
46543
46580
  "aria-label": "复制本机连接命令",
46544
46581
  variant: "ghost",
@@ -46552,93 +46589,93 @@ var hU = /*#__PURE__*/ XH({
46552
46589
  loading: I(a) === "retry_launch_connection",
46553
46590
  onClick: m[1] ||= (e) => I(i)("retry_launch_connection")
46554
46591
  }, null, 8, ["loading"]),
46555
- 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)
46556
46593
  ], 64))]);
46557
46594
  };
46558
46595
  }
46559
- }, [["__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 = {
46560
46597
  key: 0,
46561
46598
  class: "turn-panel"
46562
- }, 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 = {
46563
46600
  key: 0,
46564
46601
  class: "button-row turn-actions"
46565
- }, oq = {
46602
+ }, lq = {
46566
46603
  key: 1,
46567
46604
  class: "turn-empty"
46568
- }, sq = {
46605
+ }, uq = {
46569
46606
  key: 2,
46570
46607
  class: "fine-print"
46571
- }, cq = { class: "form-footer" }, lq = ["href"], uq = {
46608
+ }, dq = { class: "form-footer" }, fq = ["href"], pq = {
46572
46609
  key: 0,
46573
46610
  class: "fine-print host-schedule-hint"
46574
- }, dq = { class: "page-heading access-heading" }, fq = {
46611
+ }, mq = { class: "page-heading access-heading" }, hq = {
46575
46612
  key: 0,
46576
46613
  class: "access-evidence",
46577
46614
  "aria-label": "实际执行进展",
46578
46615
  role: "status"
46579
- }, pq = {
46616
+ }, gq = {
46580
46617
  key: 0,
46581
46618
  class: "fine-print"
46582
- }, mq = {
46619
+ }, _q = {
46583
46620
  key: 1,
46584
46621
  class: "access-setup",
46585
46622
  "aria-label": "网页启动入口"
46586
- }, hq = {
46623
+ }, vq = {
46587
46624
  key: 1,
46588
46625
  class: "access-repair"
46589
- }, gq = { class: "access-repair-heading" }, _q = {
46626
+ }, yq = { class: "access-repair-heading" }, bq = {
46590
46627
  key: 0,
46591
46628
  class: "access-repair-fields"
46592
- }, vq = {
46629
+ }, xq = {
46593
46630
  key: 0,
46594
46631
  role: "status",
46595
46632
  class: "fine-print"
46596
- }, yq = {
46633
+ }, Sq = {
46597
46634
  key: 1,
46598
46635
  role: "alert",
46599
46636
  class: "fine-print"
46600
- }, bq = {
46637
+ }, Cq = {
46601
46638
  key: 2,
46602
46639
  class: "fine-print"
46603
- }, xq = {
46640
+ }, wq = {
46604
46641
  key: 3,
46605
46642
  class: "fine-print"
46606
- }, Sq = {
46643
+ }, Tq = {
46607
46644
  key: 4,
46608
46645
  class: "fine-print"
46609
- }, Cq = {
46646
+ }, Eq = {
46610
46647
  key: 2,
46611
46648
  class: "access-setup",
46612
46649
  "aria-label": "全自动接入步骤"
46613
- }, wq = { class: "access-section-title" }, Tq = {
46650
+ }, Dq = { class: "access-section-title" }, Oq = {
46614
46651
  href: "https://github.com/huyan1458/ai_co_discuss/blob/main/docs/runner.md#常驻讨论服务",
46615
46652
  target: "_blank",
46616
46653
  rel: "noopener",
46617
46654
  class: "subtle-link"
46618
- }, 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 = {
46619
46656
  key: 3,
46620
46657
  class: "access-disclosure access-workspace"
46621
- }, 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 = {
46622
46659
  key: 0,
46623
46660
  class: "fine-print"
46624
- }, Fq = {
46661
+ }, Rq = {
46625
46662
  class: "access-member-list",
46626
46663
  "aria-label": "成员接入"
46627
- }, 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 = {
46628
46665
  key: 1,
46629
46666
  role: "alert",
46630
46667
  class: "access-member-error"
46631
- }, Bq = {
46668
+ }, Uq = {
46632
46669
  key: 2,
46633
46670
  role: "status",
46634
46671
  class: "fine-print"
46635
- }, Vq = { class: "access-reading" }, Hq = { class: "access-address" }, Uq = {
46672
+ }, Wq = { class: "access-reading" }, Gq = { class: "access-address" }, Kq = {
46636
46673
  key: 3,
46637
46674
  class: "fine-print"
46638
- }, Wq = {
46675
+ }, qq = {
46639
46676
  key: 4,
46640
46677
  class: "access-disclosure access-limits"
46641
- }, 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({
46642
46679
  __name: "TopicPanel",
46643
46680
  emits: ["open", "detail"],
46644
46681
  setup(e) {
@@ -46690,7 +46727,7 @@ var hU = /*#__PURE__*/ XH({
46690
46727
  transition: { duration: .16 }
46691
46728
  }, {
46692
46729
  default: L(() => [I(t).tab === "topic" ? (U(), W(H, { key: 0 }, [
46693
- K("div", XK, [K("div", null, [
46730
+ K("div", $K, [K("div", null, [
46694
46731
  C[19] ||= K("span", { class: "eyebrow" }, "讨论进程", -1),
46695
46732
  C[20] ||= K("h2", null, "主持与安排", -1),
46696
46733
  K("p", null, "当前由 " + P(I(n).display_name(o.value.host)) + " 主持,围绕具体问题组织下一轮发言。", 1)
@@ -46702,9 +46739,9 @@ var hU = /*#__PURE__*/ XH({
46702
46739
  class: "channel-surface-button",
46703
46740
  onClick: C[0] ||= (t) => e.$emit("open", "edit")
46704
46741
  })]),
46705
- 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)])]),
46706
- K("div", QK, [o.value.limits ? (U(), W("section", $K, [
46707
- 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, {
46708
46745
  color: o.value.limits.reached && o.value.phase !== "concluded" ? "warning" : "neutral",
46709
46746
  variant: "subtle"
46710
46747
  }, {
@@ -46722,8 +46759,8 @@ var hU = /*#__PURE__*/ XH({
46722
46759
  }, null, 8, ["loading"])) : Y("", !0),
46723
46760
  C[24] ||= K("p", { class: "fine-print" }, "在“编辑议题”中调整参数。自动模式由接入程序检查;手动模式由主持人或此按钮执行到限处理。", -1)
46724
46761
  ])) : Y("", !0)]),
46725
- K("section", tq, [
46726
- 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, {
46727
46764
  color: c.value ? "primary" : "neutral",
46728
46765
  variant: "subtle"
46729
46766
  }, {
@@ -46731,7 +46768,7 @@ var hU = /*#__PURE__*/ XH({
46731
46768
  _: 1
46732
46769
  }, 8, ["color"])]),
46733
46770
  s.value ? (U(), W(H, { key: 0 }, [
46734
- K("div", rq, [q(E, {
46771
+ K("div", oq, [q(E, {
46735
46772
  src: I(n).identities[s.value.expert]?.icon,
46736
46773
  text: I(n).identities[s.value.expert]?.initials,
46737
46774
  alt: s.value.expert,
@@ -46742,8 +46779,8 @@ var hU = /*#__PURE__*/ XH({
46742
46779
  "alt",
46743
46780
  "class"
46744
46781
  ]), K("div", null, [K("strong", null, P(s.value.expert), 1), K("small", null, "发言安排 #" + P(s.value.id), 1)])]),
46745
- K("p", iq, P(s.value.question), 1),
46746
- c.value ? (U(), W("div", aq, [
46782
+ K("p", sq, P(s.value.question), 1),
46783
+ c.value ? (U(), W("div", cq, [
46747
46784
  q(w, {
46748
46785
  icon: "i-lucide-copy",
46749
46786
  label: "复制通知",
@@ -46787,24 +46824,24 @@ var hU = /*#__PURE__*/ XH({
46787
46824
  class: "channel-surface-button",
46788
46825
  onClick: C[6] ||= (t) => e.$emit("detail", s.value.answer_id)
46789
46826
  })) : Y("", !0)
46790
- ], 64)) : (U(), W("p", oq, "把下一轮需要回答的问题,交给一位参与者。")),
46791
- 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)
46792
46829
  ]),
46793
- K("div", cq, [K("a", {
46830
+ K("div", dq, [K("a", {
46794
46831
  href: `${d.value}/turns`,
46795
46832
  target: "_blank",
46796
46833
  rel: "noopener",
46797
46834
  class: "subtle-link"
46798
- }, [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, {
46799
46836
  icon: "i-lucide-plus",
46800
46837
  label: "安排下一位专家",
46801
46838
  class: "channel-primary-button",
46802
46839
  disabled: !u.value,
46803
46840
  onClick: C[7] ||= (t) => e.$emit("open", "schedule")
46804
46841
  }, null, 8, ["disabled"])]),
46805
- 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))
46806
46843
  ], 64)) : (U(), W(H, { key: 1 }, [
46807
- 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, {
46808
46845
  key: 0,
46809
46846
  color: o.value.runtime?.status === "running" ? "primary" : "neutral",
46810
46847
  variant: "subtle"
@@ -46812,21 +46849,21 @@ var hU = /*#__PURE__*/ XH({
46812
46849
  default: L(() => [J(P(g.value), 1)]),
46813
46850
  _: 1
46814
46851
  }, 8, ["color"])) : Y("", !0)]),
46815
- f.value ? (U(), W("section", fq, [
46852
+ f.value ? (U(), W("section", hq, [
46816
46853
  C[28] ||= K("strong", null, "实际执行进展", -1),
46817
46854
  K("p", null, P(I(n).execution_label(m.value)), 1),
46818
- 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)
46819
46856
  ])) : Y("", !0),
46820
- f.value && I(t).launch.available ? (U(), W("section", mq, [
46857
+ f.value && I(t).launch.available ? (U(), W("section", _q, [
46821
46858
  C[31] ||= K("div", { class: "access-section-title" }, [K("h3", null, "从网页启动"), K("span", { class: "fine-print" }, "本机执行")], -1),
46822
- 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, {
46823
46860
  label: "启动讨论",
46824
46861
  icon: "i-lucide-play",
46825
46862
  class: "channel-primary-button",
46826
46863
  loading: I(i) === "launch_current_room",
46827
46864
  onClick: C[8] ||= (e) => I(r)("launch_current_room")
46828
- }, null, 8, ["loading"])], 64)) : o.value.runtime?.status === "paused" && !o.value.archived && !I(t).launch.remote ? (U(), W("div", hq, [
46829
- 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, {
46830
46867
  label: "读取本场配置",
46831
46868
  variant: "outline",
46832
46869
  color: "neutral",
@@ -46835,7 +46872,7 @@ var hU = /*#__PURE__*/ XH({
46835
46872
  onClick: C[9] ||= (e) => I(r)("load_room_configuration")
46836
46873
  }, null, 8, ["loading"])]),
46837
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),
46838
- h.value ? (U(), W("div", _q, [
46875
+ h.value ? (U(), W("div", bq, [
46839
46876
  (U(!0), W(H, null, B(h.value.participants, (e, t) => (U(), W("div", {
46840
46877
  key: t,
46841
46878
  class: "form-two-columns"
@@ -46870,19 +46907,19 @@ var hU = /*#__PURE__*/ XH({
46870
46907
  loading: I(i) === "save_room_configuration",
46871
46908
  onClick: C[10] ||= (e) => I(r)("save_room_configuration")
46872
46909
  }, null, 8, ["loading"]),
46873
- 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)
46874
46911
  ])) : Y("", !0),
46875
- I(t).launch.repair_error ? (U(), W("p", yq, P(I(t).launch.repair_error), 1)) : Y("", !0)
46876
- ])) : 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, "本场讨论已停止或结束,已有记录保留。")),
46877
46914
  C[32] ||= K("p", { class: "access-host-entry" }, [
46878
46915
  J("另一种入口:在 AI 工具对话中调用 "),
46879
46916
  K("code", null, "discuss-host"),
46880
46917
  J(",由当前会话主持。")
46881
46918
  ], -1)
46882
- ])) : 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, [
46883
46920
  C[44] ||= K("summary", null, "手动下载与登记配置", -1),
46884
- K("div", wq, [C[34] ||= K("h3", null, "首次接入", -1), K("a", Tq, [C[33] ||= J("配置说明 ", -1), q(D, { name: "i-lucide-arrow-up-right" })])]),
46885
- 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, [
46886
46923
  K("li", null, [
46887
46924
  C[35] ||= K("span", { class: "access-step-number" }, "1", -1),
46888
46925
  C[36] ||= K("div", null, [K("h4", null, "下载接入配置"), K("p", null, "包含当前房间信息。下载后,补齐本机软件路径与会话配置。")], -1),
@@ -46898,7 +46935,7 @@ var hU = /*#__PURE__*/ XH({
46898
46935
  K("li", null, [C[39] ||= K("span", { class: "access-step-number" }, "2", -1), K("div", null, [
46899
46936
  C[37] ||= K("h4", null, "登记到本机服务", -1),
46900
46937
  C[38] ||= K("p", null, "在下载文件所在目录执行;也可以将文件名换成完整路径。", -1),
46901
- K("div", Dq, [K("code", null, P(_.value), 1), q(w, {
46938
+ K("div", Aq, [K("code", null, P(_.value), 1), q(w, {
46902
46939
  icon: "i-lucide-copy",
46903
46940
  color: "neutral",
46904
46941
  variant: "ghost",
@@ -46909,7 +46946,7 @@ var hU = /*#__PURE__*/ XH({
46909
46946
  K("li", null, [C[43] ||= K("span", { class: "access-step-number" }, "3", -1), K("div", null, [
46910
46947
  C[41] ||= K("h4", null, "启动服务,保持终端打开", -1),
46911
46948
  C[42] ||= K("p", null, "启动服务不会自动开始讨论。已暂停的讨论可在进度看板点“重启”。", -1),
46912
- 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, {
46913
46950
  icon: "i-lucide-copy",
46914
46951
  color: "neutral",
46915
46952
  variant: "ghost",
@@ -46919,10 +46956,10 @@ var hU = /*#__PURE__*/ XH({
46919
46956
  ])])
46920
46957
  ])
46921
46958
  ])])) : Y("", !0),
46922
- !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, {
46923
46960
  name: "i-lucide-chevron-down",
46924
46961
  class: "disclosure-icon"
46925
- })]), 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 软件中的项目" }, {
46926
46963
  default: L(() => [q(k, {
46927
46964
  "model-value": I(t).fields["runtime-project"],
46928
46965
  placeholder: "项目名称",
@@ -46945,9 +46982,9 @@ var hU = /*#__PURE__*/ XH({
46945
46982
  }, [K("summary", null, [K("span", null, P(f.value ? "成员参与说明与阅读地址" : "复制指令,交给对应的 AI"), 1), q(D, {
46946
46983
  name: "i-lucide-chevron-down",
46947
46984
  class: "disclosure-icon"
46948
- })]), K("div", Nq, [
46949
- y.value || b.value ? (U(), W("p", Pq, P([y.value && "手动成员:复制启动指令,交给你自己的 AI 会话。", b.value && "网页成员只读,回答由你或授权主持人代发。"].filter(Boolean).join("")), 1)) : Y("", !0),
46950
- 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 }, [
46951
46988
  q(E, {
46952
46989
  src: I(n).identities[e.name]?.icon,
46953
46990
  text: I(n).identities[e.name]?.initials,
@@ -46960,16 +46997,16 @@ var hU = /*#__PURE__*/ XH({
46960
46997
  "alt",
46961
46998
  "class"
46962
46999
  ]),
46963
- K("div", Iq, [
47000
+ K("div", zq, [
46964
47001
  K("strong", null, P(e.name), 1),
46965
47002
  K("span", null, P(e.access === "online" ? "网页代发" : e.access === "runner" ? "本机唤醒 · 自行发言" : "手动接入 · 自行发言"), 1),
46966
47003
  e.access === "manual" ? (U(), W("small", {
46967
47004
  key: 0,
46968
47005
  class: M({ "is-registered": (o.value.members || []).find((t) => t.name === e.name)?.registered_at })
46969
47006
  }, P((o.value.members || []).find((t) => t.name === e.name)?.registered_at ? "已注册" : "待注册"), 3)) : Y("", !0),
46970
- e.access !== "online" && !e.available ? (U(), W("small", Lq, "当前浏览器没有此成员的私有配置")) : Y("", !0)
47007
+ e.access !== "online" && !e.available ? (U(), W("small", Bq, "当前浏览器没有此成员的私有配置")) : Y("", !0)
46971
47008
  ]),
46972
- 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, {
46973
47010
  icon: "i-lucide-rocket",
46974
47011
  label: "复制启动指令",
46975
47012
  "aria-label": `复制 ${e.name} 含凭证的启动指令`,
@@ -47023,25 +47060,25 @@ var hU = /*#__PURE__*/ XH({
47023
47060
  "onClick"
47024
47061
  ])], 64))])
47025
47062
  ]))), 128))]),
47026
- 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),
47027
47064
  C[48] ||= K("p", { class: "fine-print" }, "复制说明或下载配置不代表 AI 已接入,请以实际回答和运行记录为准。", -1),
47028
- 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, {
47029
47066
  icon: "i-lucide-copy",
47030
47067
  color: "neutral",
47031
47068
  variant: "ghost",
47032
47069
  "aria-label": "复制阅读地址",
47033
47070
  onClick: C[16] ||= (e) => I(r)("copy", d.value)
47034
47071
  })])]),
47035
- d.value.includes("127.0.0.1") || d.value.includes("localhost") ? (U(), W("p", Uq, "本机地址仅本机可访问。在线 AI 需要公网阅读地址,或由用户提供材料。")) : Y("", !0)
47036
- ])], 8, Mq),
47037
- 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, [
47038
47075
  C[49] ||= K("span", null, "讨论上限与进度", -1),
47039
- K("span", Gq, P(S.value), 1),
47076
+ K("span", Jq, P(S.value), 1),
47040
47077
  q(D, {
47041
47078
  name: "i-lucide-chevron-down",
47042
47079
  class: "disclosure-icon"
47043
47080
  })
47044
- ]), 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, {
47045
47082
  icon: "i-lucide-pencil",
47046
47083
  label: "编辑讨论上限",
47047
47084
  variant: "outline",
@@ -47066,10 +47103,10 @@ var hU = /*#__PURE__*/ XH({
47066
47103
  ]);
47067
47104
  };
47068
47105
  }
47069
- }, [["__scopeId", "data-v-9f594065"]]), Yq = { slots: {
47106
+ }, [["__scopeId", "data-v-9f594065"]]), Qq = { slots: {
47070
47107
  root: "",
47071
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"
47072
- } }, Xq = {
47109
+ } }, $q = {
47073
47110
  __name: "Collapsible",
47074
47111
  props: {
47075
47112
  as: {
@@ -47105,7 +47142,7 @@ var hU = /*#__PURE__*/ XH({
47105
47142
  emits: ["update:open"],
47106
47143
  setup(e, { emit: t }) {
47107
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({
47108
- extend: Yq,
47145
+ extend: Qq,
47109
47146
  ...o.ui?.collapsible || {}
47110
47147
  })());
47111
47148
  return (e, t) => (U(), G(I(Kg), X(I(s), {
@@ -47128,7 +47165,7 @@ var hU = /*#__PURE__*/ XH({
47128
47165
  _: 3
47129
47166
  }, 16, ["class"]));
47130
47167
  }
47131
- }, Zq = {
47168
+ }, eJ = {
47132
47169
  slots: {
47133
47170
  root: "relative flex items-start",
47134
47171
  container: "flex items-center",
@@ -47516,7 +47553,7 @@ var hU = /*#__PURE__*/ XH({
47516
47553
  variant: "list",
47517
47554
  indicator: "start"
47518
47555
  }
47519
- }, Qq = /*@__PURE__*/ Object.assign({ inheritAttrs: !1 }, {
47556
+ }, tJ = /*@__PURE__*/ Object.assign({ inheritAttrs: !1 }, {
47520
47557
  __name: "Checkbox",
47521
47558
  props: {
47522
47559
  as: {
@@ -47610,7 +47647,7 @@ var hU = /*#__PURE__*/ XH({
47610
47647
  let { "data-state": e, ...t } = C;
47611
47648
  return t;
47612
47649
  }), T = Z(() => oA({
47613
- extend: Zq,
47650
+ extend: eJ,
47614
47651
  ...o.ui?.checkbox || {}
47615
47652
  })({
47616
47653
  size: b.value,
@@ -47701,16 +47738,16 @@ var hU = /*#__PURE__*/ XH({
47701
47738
  "class"
47702
47739
  ]));
47703
47740
  }
47704
- }), $q = { class: "effort-field" }, eJ = {
47741
+ }), nJ = { class: "effort-field" }, rJ = {
47705
47742
  key: 0,
47706
47743
  class: "effort-caption",
47707
47744
  "aria-hidden": "true"
47708
- }, tJ = [
47745
+ }, iJ = [
47709
47746
  "aria-label",
47710
47747
  "aria-valuemax",
47711
47748
  "aria-valuenow",
47712
47749
  "aria-valuetext"
47713
- ], 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({
47714
47751
  __name: "EffortSlider",
47715
47752
  props: {
47716
47753
  items: {
@@ -47740,18 +47777,18 @@ var hU = /*#__PURE__*/ XH({
47740
47777
  pointer: null
47741
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;
47742
47779
  function v(e) {
47743
- 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);
47744
47781
  c.x += e * (a + 2 * l + 2 * d + p) / 6, c.v += e * (s + 2 * u + 2 * f + m) / 6;
47745
47782
  }
47746
47783
  function y(e) {
47747
47784
  d = 0;
47748
- let t = Math.min(lJ, (e - f) / 1e3);
47785
+ let t = Math.min(fJ, (e - f) / 1e3);
47749
47786
  for (f = e; t > 0;) {
47750
- let e = Math.min(oJ, t);
47787
+ let e = Math.min(lJ, t);
47751
47788
  v(e), t -= e;
47752
47789
  }
47753
47790
  let n = c.hand ?? c.target;
47754
- 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);
47755
47792
  }
47756
47793
  function b() {
47757
47794
  i.value ? (cancelAnimationFrame(d), d = 0, c.x = c.hand ?? c.target, c.v = 0) : d ||= (f = performance.now(), requestAnimationFrame(y));
@@ -47761,17 +47798,17 @@ var hU = /*#__PURE__*/ XH({
47761
47798
  }
47762
47799
  function S(e) {
47763
47800
  let t = a.value.getBoundingClientRect();
47764
- 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);
47765
47802
  }
47766
47803
  function C(e) {
47767
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());
47768
47805
  }
47769
47806
  function w(e) {
47770
- 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());
47771
47808
  }
47772
47809
  function T(e) {
47773
47810
  if (c.pointer !== e.pointerId) return;
47774
- 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;
47775
47812
  c.hand = null, c.pointer = null, x(t);
47776
47813
  }
47777
47814
  function E(e) {
@@ -47794,7 +47831,7 @@ var hU = /*#__PURE__*/ XH({
47794
47831
  i
47795
47832
  ], () => {
47796
47833
  c.target = s.value, b();
47797
- }), 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, {
47798
47835
  name: I(i) ? "" : "effort-value",
47799
47836
  mode: "out-in"
47800
47837
  }, {
@@ -47832,59 +47869,59 @@ var hU = /*#__PURE__*/ XH({
47832
47869
  "aria-hidden": "true",
47833
47870
  style: fe({ "--at": t / o.value }),
47834
47871
  title: e.label
47835
- }, null, 14, nJ))), 128)),
47872
+ }, null, 14, aJ))), 128)),
47836
47873
  n[1] ||= K("span", {
47837
47874
  class: "effort-slider-thumb",
47838
47875
  "aria-hidden": "true"
47839
47876
  }, null, -1)
47840
- ], 46, tJ)]));
47877
+ ], 46, iJ)]));
47841
47878
  }
47842
- }, [["__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 = {
47843
47880
  key: 0,
47844
47881
  class: "expert-card-badge"
47845
- }, _J = { class: "expert-card-facts" }, vJ = ["title"], yJ = {
47882
+ }, bJ = { class: "expert-card-facts" }, xJ = ["title"], SJ = {
47846
47883
  key: 0,
47847
47884
  "aria-hidden": "true"
47848
- }, bJ = {
47885
+ }, CJ = {
47849
47886
  key: 0,
47850
47887
  class: "expert-card-manual"
47851
- }, xJ = { key: 0 }, SJ = {
47888
+ }, wJ = { key: 0 }, TJ = {
47852
47889
  key: 1,
47853
47890
  class: "expert-card-flip"
47854
- }, CJ = ["aria-label"], wJ = [
47891
+ }, EJ = ["aria-label"], DJ = [
47855
47892
  "aria-checked",
47856
47893
  "tabindex",
47857
47894
  "data-mode",
47858
47895
  "onClick"
47859
- ], TJ = { class: "expert-card-tools" }, EJ = [
47896
+ ], OJ = { class: "expert-card-tools" }, kJ = [
47860
47897
  "aria-pressed",
47861
47898
  "aria-label",
47862
47899
  "title"
47863
- ], 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 = {
47864
47901
  key: 1,
47865
47902
  class: "expert-card-field"
47866
- }, NJ = {
47903
+ }, IJ = {
47867
47904
  key: 2,
47868
47905
  class: "expert-card-field"
47869
- }, PJ = {
47906
+ }, LJ = {
47870
47907
  key: 3,
47871
47908
  class: "expert-card-check"
47872
- }, FJ = {
47909
+ }, RJ = {
47873
47910
  key: 4,
47874
47911
  class: "expert-card-field"
47875
- }, 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 = {
47876
47913
  key: 0,
47877
47914
  class: "expert-card-catalog"
47878
- }, BJ = {
47915
+ }, UJ = {
47879
47916
  key: 1,
47880
47917
  class: "expert-card-effort"
47881
- }, VJ = {
47918
+ }, WJ = {
47882
47919
  key: 2,
47883
47920
  class: "expert-card-note"
47884
- }, HJ = ["aria-label", "disabled"], UJ = {
47921
+ }, GJ = ["aria-label", "disabled"], KJ = {
47885
47922
  key: 7,
47886
47923
  class: "expert-card-note"
47887
- }, 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({
47888
47925
  __name: "ExpertCard",
47889
47926
  props: {
47890
47927
  name: {
@@ -48037,7 +48074,7 @@ var hU = /*#__PURE__*/ XH({
48037
48074
  });
48038
48075
  }
48039
48076
  function ge(e) {
48040
- let t = e >= qJ / 2;
48077
+ let t = e >= XJ / 2;
48041
48078
  f.value !== t && (f.value = t, he());
48042
48079
  }
48043
48080
  let N = o.on("change", ge), _e = o.on("animationComplete", he), ve = null, ye = "";
@@ -48069,12 +48106,12 @@ var hU = /*#__PURE__*/ XH({
48069
48106
  d.value && (e.stopPropagation(), e.preventDefault(), xe());
48070
48107
  }
48071
48108
  function Te(e) {
48072
- c.value?.contains(e.target) || e.target.closest?.(JJ) || be(!1);
48109
+ c.value?.contains(e.target) || e.target.closest?.(ZJ) || be(!1);
48073
48110
  }
48074
48111
  return R(d, (e) => {
48075
48112
  e ? document.addEventListener("pointerdown", Te, !0) : document.removeEventListener("pointerdown", Te, !0);
48076
48113
  }), R([d, s], ([e, t]) => {
48077
- let n = e ? qJ : 0;
48114
+ let n = e ? XJ : 0;
48078
48115
  t ? (o.jump(n), he()) : o.set(n);
48079
48116
  }), R(() => [
48080
48117
  te.value,
@@ -48120,7 +48157,7 @@ var hU = /*#__PURE__*/ XH({
48120
48157
  onClick: n[0] ||= (e) => be(!0)
48121
48158
  }, {
48122
48159
  default: L(() => [
48123
- K("span", hJ, [
48160
+ K("span", vJ, [
48124
48161
  q(s, {
48125
48162
  src: I(a).identities[e.name]?.icon,
48126
48163
  text: I(a).identities[e.name]?.initials,
@@ -48134,14 +48171,14 @@ var hU = /*#__PURE__*/ XH({
48134
48171
  "class"
48135
48172
  ]),
48136
48173
  K("strong", null, P(e.name), 1),
48137
- e.host ? (U(), W("span", gJ, "主持")) : Y("", !0)
48174
+ e.host ? (U(), W("span", yJ, "主持")) : Y("", !0)
48138
48175
  ]),
48139
- 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", {
48140
48177
  class: M(e.tone ? ["expert-card-status", `is-${e.tone}`] : ""),
48141
48178
  title: e.value
48142
- }, [e.tone ? (U(), W("i", yJ)) : Y("", !0), J(P(e.value), 1)], 10, vJ)]))), 128))]),
48143
- 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),
48144
- 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)
48145
48182
  ]),
48146
48183
  _: 1
48147
48184
  }, 8, [
@@ -48164,8 +48201,8 @@ var hU = /*#__PURE__*/ XH({
48164
48201
  tabindex: e.mode === t ? 0 : -1,
48165
48202
  "data-mode": t,
48166
48203
  onClick: (e) => r("mode", t)
48167
- }, P(_[t]), 9, wJ))), 128))], 40, CJ)) : Y("", !0),
48168
- 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", {
48169
48206
  key: 0,
48170
48207
  type: "button",
48171
48208
  class: "expert-card-host",
@@ -48173,19 +48210,19 @@ var hU = /*#__PURE__*/ XH({
48173
48210
  "aria-label": e.host ? `${e.name} 是主持人` : `设 ${e.name} 为主持人`,
48174
48211
  title: e.host ? "主持人" : "设为主持人",
48175
48212
  onClick: n[1] ||= (e) => r("host")
48176
- }, [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", {
48177
48214
  type: "button",
48178
48215
  "aria-label": `移出 ${e.name}`,
48179
48216
  title: "移出",
48180
48217
  onClick: n[2] ||= (e) => r("remove")
48181
- }, [q(d, { name: "i-lucide-x" })], 8, DJ)])
48182
- ], 8, mJ), O.value ? (U(), W("div", {
48218
+ }, [q(d, { name: "i-lucide-x" })], 8, AJ)])
48219
+ ], 8, _J), O.value ? (U(), W("div", {
48183
48220
  key: 0,
48184
48221
  class: "expert-card-face expert-card-back",
48185
48222
  inert: !f.value,
48186
48223
  "aria-hidden": !f.value
48187
- }, [K("div", kJ, [
48188
- 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, {
48189
48226
  key: 0,
48190
48227
  icon: "i-lucide-zap",
48191
48228
  "aria-label": `检查 ${e.name} 的 API 配置`,
@@ -48206,8 +48243,8 @@ var hU = /*#__PURE__*/ XH({
48206
48243
  key: 0,
48207
48244
  role: y.value.state === "error" ? "alert" : "status",
48208
48245
  class: "expert-card-check"
48209
- }, P(y.value.message), 9, jJ)) : Y("", !0),
48210
- 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, {
48211
48248
  "model-value": p.value.adapter || "",
48212
48249
  items: m.value,
48213
48250
  placeholder: "选择 API / App / CLI",
@@ -48236,7 +48273,7 @@ var hU = /*#__PURE__*/ XH({
48236
48273
  "aria-label",
48237
48274
  "onUpdate:modelValue"
48238
48275
  ])]))), 128)),
48239
- 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, {
48240
48277
  "model-value": e.session,
48241
48278
  placeholder: "续接已有会话 ID,留空则新建",
48242
48279
  "aria-label": `${e.name} 要续接的已有会话 ID`,
@@ -48244,8 +48281,8 @@ var hU = /*#__PURE__*/ XH({
48244
48281
  class: "w-full",
48245
48282
  "onUpdate:modelValue": n[4] ||= (e) => r("session", e)
48246
48283
  }, null, 8, ["model-value", "aria-label"])])) : Y("", !0),
48247
- E.value && e.session.trim() && T.value ? (U(), W("p", PJ, P(T.value), 1)) : Y("", !0),
48248
- 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", {
48249
48286
  class: "expert-card-modes",
48250
48287
  role: "radiogroup",
48251
48288
  "aria-label": `${e.name} 的项目文件权限`
@@ -48261,12 +48298,12 @@ var hU = /*#__PURE__*/ XH({
48261
48298
  role: "radio",
48262
48299
  "aria-checked": oe.value === t.value,
48263
48300
  onClick: (n) => I(a).write_launch(e.name, "project_access", t.value)
48264
- }, P(t.label), 9, LJ)), 64))], 8, IJ)])) : Y("", !0),
48265
- v.value ? (U(), G(xK, {
48301
+ }, P(t.label), 9, BJ)), 64))], 8, zJ)])) : Y("", !0),
48302
+ v.value ? (U(), G(wK, {
48266
48303
  key: 5,
48267
48304
  name: e.name
48268
48305
  }, null, 8, ["name"])) : te.value && !me.value.length ? (U(), W(H, { key: 6 }, [
48269
- K("div", RJ, [n[14] ||= K("span", null, "模型", -1), q(S, {
48306
+ K("div", VJ, [n[14] ||= K("span", null, "模型", -1), q(S, {
48270
48307
  "model-value": p.value.model || "__default__",
48271
48308
  items: k.value.items,
48272
48309
  title: k.value.source,
@@ -48280,12 +48317,12 @@ var hU = /*#__PURE__*/ XH({
48280
48317
  "title",
48281
48318
  "aria-label"
48282
48319
  ])]),
48283
- 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", {
48284
48321
  key: 0,
48285
48322
  type: "button",
48286
48323
  onClick: n[6] ||= (t) => I(a).load_launch_models(e.name, !0)
48287
48324
  }, "重试")) : Y("", !0)])) : Y("", !0),
48288
- re.value ? (U(), W("div", BJ, [q(fJ, {
48325
+ re.value ? (U(), W("div", UJ, [q(hJ, {
48289
48326
  caption: "强度",
48290
48327
  items: re.value,
48291
48328
  "model-value": p.value.effort || "",
@@ -48295,7 +48332,7 @@ var hU = /*#__PURE__*/ XH({
48295
48332
  "items",
48296
48333
  "model-value",
48297
48334
  "label"
48298
- ])])) : (U(), W("p", VJ, P(k.value.effort_note), 1)),
48335
+ ])])) : (U(), W("p", WJ, P(k.value.effort_note), 1)),
48299
48336
  K("button", {
48300
48337
  type: "button",
48301
48338
  class: "expert-card-defaults",
@@ -48303,31 +48340,31 @@ var hU = /*#__PURE__*/ XH({
48303
48340
  "aria-label": `恢复 ${e.name} 的默认模型与强度`,
48304
48341
  disabled: !p.value.model && !p.value.effort,
48305
48342
  onClick: Se
48306
- }, "恢复默认", 8, HJ)
48307
- ], 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)]))
48308
- ]), 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", {
48309
48346
  type: "button",
48310
48347
  class: "expert-card-flip is-cancel",
48311
48348
  "aria-label": `放弃 ${e.name} 的修改`,
48312
48349
  onClick: xe
48313
- }, "取消", 8, GJ), K("button", {
48350
+ }, "取消", 8, JJ), K("button", {
48314
48351
  ref_key: "back_button",
48315
48352
  ref: u,
48316
48353
  type: "button",
48317
48354
  class: "expert-card-flip is-done",
48318
48355
  "aria-label": `保存并返回 ${e.name} 角色卡片`,
48319
48356
  onClick: n[8] ||= (e) => be(!1)
48320
- }, [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)]),
48321
48358
  _: 1
48322
- }, 8, ["style"])], 42, pJ);
48359
+ }, 8, ["style"])], 42, gJ);
48323
48360
  };
48324
48361
  }
48325
- }, [["__scopeId", "data-v-efe0a27a"]]), XJ = ["aria-label"], ZJ = [
48362
+ }, [["__scopeId", "data-v-efe0a27a"]]), $J = ["aria-label"], eY = [
48326
48363
  "disabled",
48327
48364
  "title",
48328
48365
  "aria-label",
48329
48366
  "onClick"
48330
- ], QJ = /*#__PURE__*/ XH({
48367
+ ], tY = /*#__PURE__*/ XH({
48331
48368
  __name: "RosterAdd",
48332
48369
  props: {
48333
48370
  label: {
@@ -48375,17 +48412,17 @@ var hU = /*#__PURE__*/ XH({
48375
48412
  ]),
48376
48413
  J(P(e.name), 1),
48377
48414
  q(o, { name: "i-lucide-plus" })
48378
- ], 8, ZJ))), 128))], 8, XJ);
48415
+ ], 8, eY))), 128))], 8, $J);
48379
48416
  };
48380
48417
  }
48381
- }, [["__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 = {
48382
48419
  key: 0,
48383
48420
  class: "scheduler-cards"
48384
- }, 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 = {
48385
48422
  key: 0,
48386
48423
  role: "alert",
48387
48424
  class: "scheduler-error"
48388
- }, mY = ["role"], hY = { class: "scheduler-flip-actions" }, gY = "••••••••••••", _Y = /*#__PURE__*/ XH({
48425
+ }, _Y = ["role"], vY = { class: "scheduler-flip-actions" }, yY = "••••••••••••", bY = /*#__PURE__*/ XH({
48389
48426
  __name: "SchedulerSettings",
48390
48427
  props: {
48391
48428
  free: {
@@ -48496,9 +48533,9 @@ var hU = /*#__PURE__*/ XH({
48496
48533
  }
48497
48534
  }
48498
48535
  return (t, a) => {
48499
- let g = WV, D = pA, O = sA, ee = MA, k = fK, te = YV;
48500
- return U(), W("div", $J, [
48501
- 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, [
48502
48539
  a[5] ||= J("智能调度", -1),
48503
48540
  q(g, {
48504
48541
  size: "xs",
@@ -48509,16 +48546,16 @@ var hU = /*#__PURE__*/ XH({
48509
48546
  _: 1
48510
48547
  }),
48511
48548
  a[6] ||= K("small", null, "可选", -1)
48512
- ]), K("p", tY, P(e.blocker ? `${T.value}(${e.blocker})` : T.value), 1)]),
48513
- q(QJ, {
48549
+ ]), K("p", iY, P(e.blocker ? `${T.value}(${e.blocker})` : T.value), 1)]),
48550
+ q(tY, {
48514
48551
  ref_key: "add_row",
48515
48552
  ref: l,
48516
48553
  label: "添加决策模型",
48517
48554
  items: u.value,
48518
48555
  onAdd: y
48519
48556
  }, null, 8, ["items"]),
48520
- 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, [
48521
- 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, {
48522
48559
  icon: "i-lucide-zap",
48523
48560
  "aria-label": "检查智能调度配置",
48524
48561
  title: "检查配置:向决策模型发送一道极短的是非题,核对供应商、模型与密钥",
@@ -48533,7 +48570,7 @@ var hU = /*#__PURE__*/ XH({
48533
48570
  "loading",
48534
48571
  "disabled"
48535
48572
  ])]),
48536
- K("div", dY, [a[12] ||= K("span", null, "模型", -1), q(k, {
48573
+ K("div", mY, [a[12] ||= K("span", null, "模型", -1), q(k, {
48537
48574
  mode: "autocomplete",
48538
48575
  "ignore-filter": "",
48539
48576
  "model-value": i.value.model || "",
@@ -48545,7 +48582,7 @@ var hU = /*#__PURE__*/ XH({
48545
48582
  class: "w-full",
48546
48583
  "onUpdate:modelValue": a[0] ||= (e) => I(r).write_scheduler("model", e)
48547
48584
  }, null, 8, ["model-value", "items"])]),
48548
- K("div", fY, [a[13] ||= K("span", null, "密钥", -1), q(te, {
48585
+ K("div", hY, [a[13] ||= K("span", null, "密钥", -1), q(te, {
48549
48586
  modelValue: d.value,
48550
48587
  "onUpdate:modelValue": a[2] ||= (e) => d.value = e,
48551
48588
  type: "text",
@@ -48553,7 +48590,7 @@ var hU = /*#__PURE__*/ XH({
48553
48590
  spellcheck: "false",
48554
48591
  "data-1p-ignore": "",
48555
48592
  "data-lpignore": "true",
48556
- placeholder: i.value.api_key_ref ? gY : "填写所选供应商的 API Key",
48593
+ placeholder: i.value.api_key_ref ? yY : "填写所选供应商的 API Key",
48557
48594
  title: i.value.api_key_ref && !d.value ? "已保存;本机不回传密钥,输入新 Key 可更换" : void 0,
48558
48595
  "aria-label": "智能调度 API Key",
48559
48596
  size: "xs",
@@ -48588,14 +48625,14 @@ var hU = /*#__PURE__*/ XH({
48588
48625
  "loading",
48589
48626
  "ui"
48590
48627
  ])]),
48591
- 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),
48592
48629
  C.value.message ? (U(), W("p", {
48593
48630
  key: 1,
48594
48631
  role: C.value.state === "error" ? "alert" : "status",
48595
48632
  class: M(C.value.state === "error" ? "scheduler-error" : "scheduler-ok")
48596
- }, P(C.value.message), 11, mY)) : Y("", !0),
48633
+ }, P(C.value.message), 11, _Y)) : Y("", !0),
48597
48634
  a[14] ||= K("p", { class: "scheduler-note" }, "决策模型只做选择、不生成文本,只按输入计费。判断时会把房间标题和最近 10 条消息发给所选供应商;密钥只存本机。", -1)
48598
- ]), K("span", hY, [K("button", {
48635
+ ]), K("span", vY, [K("button", {
48599
48636
  type: "button",
48600
48637
  class: "scheduler-flip is-cancel",
48601
48638
  "aria-label": "放弃决策模型的修改",
@@ -48612,7 +48649,7 @@ var hU = /*#__PURE__*/ XH({
48612
48649
  title: "点击设置",
48613
48650
  onClick: _
48614
48651
  }, [
48615
- K("span", rY, [q(D, {
48652
+ K("span", oY, [q(D, {
48616
48653
  src: s[i.value.provider]?.icon,
48617
48654
  text: x.value.slice(0, 2),
48618
48655
  alt: x.value,
@@ -48624,40 +48661,40 @@ var hU = /*#__PURE__*/ XH({
48624
48661
  "alt",
48625
48662
  "class"
48626
48663
  ]), K("strong", null, P(x.value), 1)]),
48627
- 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)])]),
48628
- K("span", oY, [q(O, { name: "i-lucide-settings-2" }), a[10] ||= J("设置", -1)])
48629
- ]), 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", {
48630
48667
  type: "button",
48631
48668
  "aria-label": `移出决策模型 ${x.value}`,
48632
48669
  title: "移出",
48633
48670
  onClick: b
48634
- }, [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)
48635
48672
  ]);
48636
48673
  };
48637
48674
  }
48638
- }, [["__scopeId", "data-v-3e1049d5"]]), vY = { class: "create-discussion" }, yY = {
48675
+ }, [["__scopeId", "data-v-3e1049d5"]]), xY = { class: "create-discussion" }, SY = {
48639
48676
  key: 0,
48640
48677
  class: "create-connect",
48641
48678
  role: "status"
48642
- }, bY = { class: "create-connect-command" }, xY = {
48679
+ }, CY = { class: "create-connect-command" }, wY = {
48643
48680
  key: 1,
48644
48681
  class: "channel-create-location"
48645
- }, SY = { class: "create-section" }, CY = { class: "create-section" }, wY = {
48682
+ }, TY = { class: "create-section" }, EY = { class: "create-section" }, DY = {
48646
48683
  key: 0,
48647
48684
  class: "create-experts",
48648
48685
  role: "group",
48649
48686
  "aria-label": "参与的 AI"
48650
- }, TY = {
48687
+ }, OY = {
48651
48688
  key: 1,
48652
48689
  class: "create-experts-empty"
48653
- }, EY = {
48690
+ }, kY = {
48654
48691
  key: 2,
48655
48692
  class: "fine-print create-hint create-host-hint"
48656
- }, DY = { class: "create-section" }, OY = { class: "create-footer" }, kY = {
48693
+ }, AY = { class: "create-section" }, jY = { class: "create-footer" }, MY = {
48657
48694
  key: 0,
48658
48695
  role: "alert",
48659
48696
  class: "create-error"
48660
- }, 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({
48661
48698
  __name: "CreateDiscussion",
48662
48699
  props: { targetFolder: {
48663
48700
  type: Object,
@@ -48665,7 +48702,7 @@ var hU = /*#__PURE__*/ XH({
48665
48702
  } },
48666
48703
  emits: ["submit", "cancel"],
48667
48704
  setup(e, { emit: t }) {
48668
- 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]));
48669
48706
  R(m, (e) => {
48670
48707
  p.value = [...p.value.filter((t) => e.includes(t)), ...e.filter((e) => !p.value.includes(e))];
48671
48708
  }, { immediate: !0 });
@@ -48689,14 +48726,14 @@ var hU = /*#__PURE__*/ XH({
48689
48726
  Qi(() => {
48690
48727
  ae(), ie = window.setInterval(() => {
48691
48728
  re.value && !document.hidden && o("check_launch_connection");
48692
- }, NY);
48729
+ }, IY);
48693
48730
  }), ta(() => window.clearInterval(ie));
48694
48731
  function oe(e) {
48695
48732
  i.write_create_discussion(e), Qn(ae);
48696
48733
  }
48697
48734
  let se = (e) => i.launch_clients[e]?.some((e) => e.value !== "api"), ce = (e) => d.value && e === v.value ? [] : ["cli", "manual"];
48698
48735
  function le(e, t) {
48699
- 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();
48700
48737
  }
48701
48738
  function ue(e) {
48702
48739
  if (f.value[e] === "online") return {
@@ -48735,7 +48772,7 @@ var hU = /*#__PURE__*/ XH({
48735
48772
  aria_label: `添加 ${e} 实例`
48736
48773
  })));
48737
48774
  function pe(e) {
48738
- 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());
48739
48776
  }
48740
48777
  function me(e) {
48741
48778
  le(e, ""), Qn(() => _.value?.focus_first());
@@ -48756,21 +48793,21 @@ var hU = /*#__PURE__*/ XH({
48756
48793
  return t.join(" · ");
48757
48794
  });
48758
48795
  return (t, s) => {
48759
- let c = sA, p = MA, m = YV, g = zV, x = Qq, T = HV;
48760
- 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", {
48761
48798
  id: "create-discussion-form",
48762
48799
  class: "create-scroll dialog-form",
48763
48800
  onSubmit: uu(he, ["prevent"])
48764
48801
  }, [
48765
- 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, {
48766
48803
  icon: "i-lucide-copy",
48767
48804
  "aria-label": "复制本机连接命令",
48768
48805
  variant: "ghost",
48769
48806
  color: "neutral",
48770
48807
  onClick: s[0] ||= (e) => I(o)("copy", I(r).launch.connect_command)
48771
48808
  })])])) : Y("", !0),
48772
- e.targetFolder?.id ? (U(), W("p", xY, [q(c, { name: "i-lucide-folder" }), J(P(e.targetFolder.name), 1)])) : Y("", !0),
48773
- 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, [
48774
48811
  s[10] ||= K("h3", null, [K("span", null, "1"), J("这次做什么")], -1),
48775
48812
  q(g, {
48776
48813
  label: "话题名称",
@@ -48792,20 +48829,20 @@ var hU = /*#__PURE__*/ XH({
48792
48829
  label: "项目目录(可选)",
48793
48830
  description: I(r).launch.available ? "本机唤醒的成员在此目录读写文件;不填则各用软件默认目录。" : C.value ? `由电脑「${C.value.name}」唤醒的成员在所选项目中读写文件;不选则各用软件默认目录。` : "连接本机服务后可指定:本机唤醒的成员将在此目录读写文件。"
48794
48831
  }, {
48795
- default: L(() => [q(LK, { disabled: !w.value }, null, 8, ["disabled"])]),
48832
+ default: L(() => [q(BK, { disabled: !w.value }, null, 8, ["disabled"])]),
48796
48833
  _: 1
48797
48834
  }, 8, ["description"])
48798
48835
  ]),
48799
- K("section", CY, [
48836
+ K("section", EY, [
48800
48837
  s[11] ||= K("h3", null, [K("span", null, "2"), J("谁来参与")], -1),
48801
- q(QJ, {
48838
+ q(tY, {
48802
48839
  ref_key: "library",
48803
48840
  ref: _,
48804
48841
  label: "添加 AI",
48805
48842
  items: fe.value,
48806
48843
  onAdd: pe
48807
48844
  }, null, 8, ["items"]),
48808
- 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, {
48809
48846
  key: e,
48810
48847
  name: e,
48811
48848
  mode: f.value[e],
@@ -48827,14 +48864,14 @@ var hU = /*#__PURE__*/ XH({
48827
48864
  "onHost",
48828
48865
  "onRemove",
48829
48866
  "onMode"
48830
- ]))), 128))])) : (U(), W("p", TY, "请至少添加一位成员。同一平台可添加多位,各自独立会话。")),
48831
- h.value.length ? (U(), W("div", EY, [q(c, { name: "i-lucide-crown" }), K("span", null, P(y.value.length ? "点卡片上的皇冠指定主持人:没 @ 任何人的消息由它分配;其他成员只在被你或主持人点名时发言。" : "需要一位本地 AI 做主持人,没 @ 的消息才有人接。"), 1)])) : Y("", !0),
48832
- 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, {
48833
48870
  free: !0,
48834
48871
  blocker: te.value
48835
48872
  }, null, 8, ["blocker"])
48836
48873
  ]),
48837
- K("section", DY, [
48874
+ K("section", AY, [
48838
48875
  s[12] ||= K("h3", null, [K("span", null, "3"), J("推进方式(可选)")], -1),
48839
48876
  q(x, {
48840
48877
  "model-value": d.value,
@@ -48880,7 +48917,7 @@ var hU = /*#__PURE__*/ XH({
48880
48917
  "execution_minutes"
48881
48918
  ])], 64)) : Y("", !0)
48882
48919
  ])
48883
- ], 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, [
48884
48921
  K("span", {
48885
48922
  class: M(["create-summary", { "is-blocked": A.value }]),
48886
48923
  title: A.value || ge.value,
@@ -48888,7 +48925,7 @@ var hU = /*#__PURE__*/ XH({
48888
48925
  }, [A.value ? (U(), G(c, {
48889
48926
  key: 0,
48890
48927
  name: "i-lucide-circle-alert"
48891
- })) : 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),
48892
48929
  q(p, {
48893
48930
  label: "取消",
48894
48931
  color: "neutral",
@@ -48912,46 +48949,46 @@ var hU = /*#__PURE__*/ XH({
48912
48949
  ])])]);
48913
48950
  };
48914
48951
  }
48915
- }, [["__scopeId", "data-v-61eb0b0c"]]), FY = {
48952
+ }, [["__scopeId", "data-v-61eb0b0c"]]), RY = {
48916
48953
  class: "account-settings",
48917
48954
  "aria-labelledby": "account-heading"
48918
- }, IY = {
48955
+ }, zY = {
48919
48956
  key: 0,
48920
48957
  class: "fine-print",
48921
48958
  role: "status"
48922
- }, LY = ["aria-label"], RY = { class: "fine-print account-intro" }, zY = {
48959
+ }, BY = ["aria-label"], VY = { class: "fine-print account-intro" }, HY = {
48923
48960
  key: 0,
48924
48961
  class: "account-message is-error",
48925
48962
  role: "status"
48926
- }, BY = {
48963
+ }, UY = {
48927
48964
  key: 1,
48928
48965
  class: "fine-print"
48929
- }, VY = {
48966
+ }, WY = {
48930
48967
  key: 1,
48931
48968
  class: "fine-print"
48932
- }, HY = {
48969
+ }, GY = {
48933
48970
  key: 2,
48934
48971
  class: "account-message is-error",
48935
48972
  role: "alert"
48936
- }, UY = {
48973
+ }, KY = {
48937
48974
  key: 3,
48938
48975
  class: "account-message",
48939
48976
  role: "status"
48940
- }, WY = { class: "account-actions" }, GY = {
48977
+ }, qY = { class: "account-actions" }, JY = {
48941
48978
  key: 2,
48942
48979
  class: "account-profile"
48943
- }, 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 = {
48944
48981
  key: 0,
48945
48982
  class: "account-message is-error",
48946
48983
  role: "alert"
48947
- }, XY = {
48984
+ }, $Y = {
48948
48985
  key: 1,
48949
48986
  class: "account-message",
48950
48987
  role: "status"
48951
- }, ZY = {
48988
+ }, eX = {
48952
48989
  key: 2,
48953
48990
  class: "account-signout account-actions"
48954
- }, QY = {
48991
+ }, tX = {
48955
48992
  __name: "AccountSettings",
48956
48993
  setup(e) {
48957
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({
@@ -49019,13 +49056,13 @@ var hU = /*#__PURE__*/ XH({
49019
49056
  }
49020
49057
  return (e, t) => {
49021
49058
  let p = YV, y = zV, b = MA, x = pA;
49022
- 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", {
49023
49060
  key: 1,
49024
49061
  class: "dialog-form account-form",
49025
49062
  "aria-label": a.value === "register" ? "设置管理员账号" : "登录管理员账号",
49026
49063
  onSubmit: uu(m, ["prevent"])
49027
49064
  }, [
49028
- 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))]),
49029
49066
  q(y, {
49030
49067
  label: "用户名",
49031
49068
  description: a.value === "register" ? "1–30 个字符,也是公开显示的名称" : void 0,
@@ -49092,18 +49129,18 @@ var hU = /*#__PURE__*/ XH({
49092
49129
  }, null, 8, ["modelValue", "disabled"])]),
49093
49130
  _: 1
49094
49131
  }),
49095
- 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] ||= [
49096
49133
  J("首个注册者需要安装令牌,防止他人抢注。本地版见服务端启动日志;Cloudflare 版为部署机密 ADMIN_SETUP_KEY。忘记密码:本地版运行 ", -1),
49097
49134
  K("code", null, "python server.py --reset-admin", -1),
49098
49135
  J(" 后重新注册;Cloudflare 版需清空管理员表(见部署文档)。", -1)
49099
49136
  ]]))
49100
- ], 64)) : (U(), W("p", VY, [...t[7] ||= [
49137
+ ], 64)) : (U(), W("p", WY, [...t[7] ||= [
49101
49138
  J("忘记密码:本地版运行 ", -1),
49102
49139
  K("code", null, "python server.py --reset-admin", -1),
49103
49140
  J(" 后重新注册;Cloudflare 版需清空管理员表(见部署文档)。", -1)
49104
49141
  ]])),
49105
- 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),
49106
- 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, {
49107
49144
  type: "submit",
49108
49145
  class: "channel-primary-button",
49109
49146
  label: a.value === "register" ? "创建并登录" : "登录",
@@ -49114,13 +49151,13 @@ var hU = /*#__PURE__*/ XH({
49114
49151
  "loading",
49115
49152
  "disabled"
49116
49153
  ])])
49117
- ], 40, LY)) : (U(), W("div", GY, [
49118
- K("div", KY, [q(x, {
49154
+ ], 40, BY)) : (U(), W("div", JY, [
49155
+ K("div", YY, [q(x, {
49119
49156
  src: I(n).identities.用户.icon,
49120
49157
  alt: `${I(n).display_name("用户")} 的头像`,
49121
49158
  size: "lg",
49122
49159
  class: "channel-avatar user account-avatar"
49123
- }, null, 8, ["src", "alt"]), K("div", qY, [
49160
+ }, null, 8, ["src", "alt"]), K("div", XY, [
49124
49161
  K("input", {
49125
49162
  ref_key: "avatar_input",
49126
49163
  ref: u,
@@ -49158,7 +49195,7 @@ var hU = /*#__PURE__*/ XH({
49158
49195
  label: "显示名称",
49159
49196
  description: "即用户名,对所有访客可见"
49160
49197
  }, {
49161
- default: L(() => [K("div", JY, [q(p, {
49198
+ default: L(() => [K("div", ZY, [q(p, {
49162
49199
  modelValue: l.value,
49163
49200
  "onUpdate:modelValue": t[5] ||= (e) => l.value = e,
49164
49201
  autocomplete: "username",
@@ -49176,8 +49213,8 @@ var hU = /*#__PURE__*/ XH({
49176
49213
  }, null, 8, ["loading", "disabled"])])]),
49177
49214
  _: 1
49178
49215
  })], 32),
49179
- 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),
49180
- 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, {
49181
49218
  label: "退出登录",
49182
49219
  icon: "i-lucide-log-out",
49183
49220
  color: "neutral",
@@ -49190,65 +49227,65 @@ var hU = /*#__PURE__*/ XH({
49190
49227
  ]))]);
49191
49228
  };
49192
49229
  }
49193
- }, $Y = {
49230
+ }, nX = {
49194
49231
  key: 0,
49195
49232
  class: "channel-archive-manager"
49196
- }, eX = { class: "channel-archive-toolbar" }, tX = {
49233
+ }, rX = { class: "channel-archive-toolbar" }, iX = {
49197
49234
  key: 0,
49198
49235
  class: "channel-archive-confirm channel-archive-bulk",
49199
49236
  role: "alert"
49200
- }, nX = {
49237
+ }, aX = {
49201
49238
  key: 1,
49202
49239
  role: "alert",
49203
49240
  class: "channel-directory-error"
49204
- }, rX = { class: "channel-archive-results" }, iX = {
49241
+ }, oX = { class: "channel-archive-results" }, sX = {
49205
49242
  key: 0,
49206
49243
  class: "channel-archive-list",
49207
49244
  "aria-label": "已存档房间列表"
49208
- }, aX = { class: "channel-archive-row" }, oX = { class: "channel-archive-info" }, sX = [
49245
+ }, cX = { class: "channel-archive-row" }, lX = { class: "channel-archive-info" }, uX = [
49209
49246
  "title",
49210
49247
  "disabled",
49211
49248
  "onClick"
49212
- ], cX = { key: 0 }, lX = ["datetime"], uX = { class: "channel-archive-actions" }, dX = {
49249
+ ], dX = { key: 0 }, fX = ["datetime"], pX = { class: "channel-archive-actions" }, mX = {
49213
49250
  key: 0,
49214
49251
  class: "channel-archive-confirm channel-archive-bulk",
49215
49252
  role: "alert"
49216
- }, fX = {
49253
+ }, hX = {
49217
49254
  key: 1,
49218
49255
  class: "channel-archive-empty"
49219
- }, 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 = {
49220
49257
  key: 0,
49221
49258
  class: "fine-print"
49222
- }, vX = {
49259
+ }, xX = {
49223
49260
  key: 1,
49224
49261
  class: "fine-print"
49225
- }, yX = {
49262
+ }, SX = {
49226
49263
  key: 2,
49227
49264
  class: "fine-print"
49228
- }, 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 = {
49229
49266
  class: "channel-reading-options",
49230
49267
  role: "group",
49231
49268
  "aria-labelledby": "channel-reading-label"
49232
- }, DX = { class: "channel-reading-setting" }, OX = {
49269
+ }, AX = { class: "channel-reading-setting" }, jX = {
49233
49270
  class: "channel-reading-options channel-effect-options",
49234
49271
  role: "group",
49235
49272
  "aria-labelledby": "channel-effects-label"
49236
- }, kX = { class: "form-two-columns" }, AX = { class: "advanced-content" }, jX = {
49273
+ }, MX = { class: "form-two-columns" }, NX = { class: "advanced-content" }, PX = {
49237
49274
  key: 0,
49238
49275
  class: "fine-print"
49239
- }, 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 = {
49240
49277
  key: 8,
49241
49278
  class: "original-message"
49242
- }, LX = {
49279
+ }, BX = {
49243
49280
  key: 0,
49244
49281
  role: "alert"
49245
- }, RX = { class: "original-meta" }, zX = { class: "fine-print" }, BX = {
49282
+ }, VX = { class: "original-meta" }, HX = { class: "fine-print" }, UX = {
49246
49283
  key: 0,
49247
49284
  class: "channel-answer-summary"
49248
- }, VX = { class: "message-prose" }, HX = { class: "message-prose" }, UX = ["innerHTML"], WX = {
49285
+ }, WX = { class: "message-prose" }, GX = { class: "message-prose" }, KX = ["innerHTML"], qX = {
49249
49286
  key: 2,
49250
49287
  class: "fine-print"
49251
- }, GX = "topic-expert-modes", KX = {
49288
+ }, JX = "topic-expert-modes", YX = {
49252
49289
  __name: "WorkspaceDialogs",
49253
49290
  props: /*@__PURE__*/ Fa({
49254
49291
  detailId: {
@@ -49498,7 +49535,7 @@ var hU = /*#__PURE__*/ XH({
49498
49535
  }
49499
49536
  let Se = (e) => e.preventDefault();
49500
49537
  return (t, c) => {
49501
- 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;
49502
49539
  return U(), G(Ee, {
49503
49540
  open: d.value,
49504
49541
  "onUpdate:open": c[25] ||= (e) => d.value = e,
@@ -49526,8 +49563,8 @@ var hU = /*#__PURE__*/ XH({
49526
49563
  } : void 0,
49527
49564
  "onAfter:leave": be
49528
49565
  }, {
49529
- body: L(() => [a.value === "archives" ? (U(), W("section", $Y, [
49530
- K("div", eX, [
49566
+ body: L(() => [a.value === "archives" ? (U(), W("section", nX, [
49567
+ K("div", rX, [
49531
49568
  q(x, {
49532
49569
  modelValue: h.value,
49533
49570
  "onUpdate:modelValue": c[0] ||= (e) => h.value = e,
@@ -49556,7 +49593,7 @@ var hU = /*#__PURE__*/ XH({
49556
49593
  }
49557
49594
  }, null, 8, ["label", "disabled"])
49558
49595
  ]),
49559
- b.value && v.value.length ? (U(), W("div", tX, [
49596
+ b.value && v.value.length ? (U(), W("div", iX, [
49560
49597
  K("span", null, "将永久删除当前列表中的 " + P(v.value.length) + " 个房间及其全部记录,无法撤销。", 1),
49561
49598
  q(le, {
49562
49599
  label: "取消",
@@ -49572,20 +49609,20 @@ var hU = /*#__PURE__*/ XH({
49572
49609
  onClick: D
49573
49610
  })
49574
49611
  ])) : Y("", !0),
49575
- I(o).directory_error ? (U(), W("p", nX, P(I(o).directory_error), 1)) : Y("", !0),
49576
- 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", {
49577
49614
  key: e.id,
49578
49615
  class: "channel-archive-item"
49579
- }, [K("div", aX, [K("div", oX, [K("button", {
49616
+ }, [K("div", cX, [K("div", lX, [K("button", {
49580
49617
  class: "channel-archive-title",
49581
49618
  title: e.title,
49582
49619
  disabled: !!I(u),
49583
49620
  onClick: (t) => T(e)
49584
- }, 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, [
49585
49622
  c[26] ||= J("创建于 ", -1),
49586
- 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),
49587
49624
  c[27] ||= J(" · ", -1)
49588
- ])) : 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, {
49589
49626
  "aria-label": `彻底删除 ${e.title}`,
49590
49627
  title: "彻底删除",
49591
49628
  icon: "i-lucide-trash-2",
@@ -49617,7 +49654,7 @@ var hU = /*#__PURE__*/ XH({
49617
49654
  "aria-label",
49618
49655
  "disabled",
49619
49656
  "onClick"
49620
- ])])]), y.value === e.id ? (U(), W("div", dX, [
49657
+ ])])]), y.value === e.id ? (U(), W("div", mX, [
49621
49658
  K("span", null, "永久删除「" + P(e.title) + "」及其全部记录,无法撤销。", 1),
49622
49659
  q(le, {
49623
49660
  label: "取消",
@@ -49633,12 +49670,12 @@ var hU = /*#__PURE__*/ XH({
49633
49670
  disabled: w(e),
49634
49671
  onClick: E
49635
49672
  }, null, 8, ["disabled"])
49636
- ])) : 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))])
49637
49674
  ])) : a.value === "delete-folder" ? (U(), W("form", {
49638
49675
  key: 1,
49639
49676
  class: "dialog-form",
49640
49677
  onSubmit: uu(re, ["prevent"])
49641
- }, [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, {
49642
49679
  label: "取消",
49643
49680
  color: "neutral",
49644
49681
  variant: "ghost",
@@ -49669,7 +49706,7 @@ var hU = /*#__PURE__*/ XH({
49669
49706
  "modelValue",
49670
49707
  "aria-label",
49671
49708
  "readonly"
49672
- ]), K("div", hX, [q(le, {
49709
+ ]), K("div", vX, [q(le, {
49673
49710
  label: "取消",
49674
49711
  color: "neutral",
49675
49712
  variant: "ghost",
@@ -49694,10 +49731,10 @@ var hU = /*#__PURE__*/ XH({
49694
49731
  class: "dialog-form",
49695
49732
  onSubmit: uu(te, ["prevent"])
49696
49733
  }, [
49697
- K("p", gX, [J(P(e.targetRoom?.title) + " ", 1), K("span", null, "· " + P(e.targetRoom?.message_count) + " 条消息", 1)]),
49698
- a.value === "archive" ? (U(), W("p", _X, "存档后可在侧栏「已存档」中查阅与恢复。已有发言安排会保留;专家需在下次检查时停止自己的定时任务。")) : Y("", !0),
49699
- a.value === "restore" ? (U(), W("p", vX, "恢复不会自动继续讨论;需要继续时,在主持设置中调整阶段。")) : Y("", !0),
49700
- 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),
49701
49738
  a.value === "rename" ? (U(), G(ue, {
49702
49739
  key: 3,
49703
49740
  label: "房间名称",
@@ -49714,7 +49751,7 @@ var hU = /*#__PURE__*/ XH({
49714
49751
  }, null, 8, ["modelValue"])]),
49715
49752
  _: 1
49716
49753
  })) : Y("", !0),
49717
- K("div", bX, [q(le, {
49754
+ K("div", CX, [q(le, {
49718
49755
  label: "取消",
49719
49756
  color: "neutral",
49720
49757
  variant: "ghost",
@@ -49731,10 +49768,10 @@ var hU = /*#__PURE__*/ XH({
49731
49768
  "loading",
49732
49769
  "disabled"
49733
49770
  ])])
49734
- ], 32)) : a.value === "settings" ? (U(), W("div", xX, [
49735
- q(QY),
49771
+ ], 32)) : a.value === "settings" ? (U(), W("div", wX, [
49772
+ q(tX),
49736
49773
  c[32] ||= K("h3", { class: "account-appearance-heading" }, "外观", -1),
49737
- 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", {
49738
49775
  key: e.value,
49739
49776
  class: M({ chosen: I(o).theme === e.value }),
49740
49777
  "aria-pressed": I(o).theme === e.value,
@@ -49749,12 +49786,12 @@ var hU = /*#__PURE__*/ XH({
49749
49786
  K("b")
49750
49787
  ], -1)]], 2),
49751
49788
  K("span", null, [K("strong", null, P(e.title), 1), K("small", null, P(e.description), 1)]),
49752
- K("span", wX, [I(o).theme === e.value ? (U(), G(ve, {
49789
+ K("span", DX, [I(o).theme === e.value ? (U(), G(ve, {
49753
49790
  key: 0,
49754
49791
  name: "i-lucide-check"
49755
49792
  })) : Y("", !0)])
49756
- ], 10, CX)), 64))]),
49757
- 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, {
49758
49795
  key: e.value,
49759
49796
  label: e.label,
49760
49797
  color: "neutral",
@@ -49768,9 +49805,9 @@ var hU = /*#__PURE__*/ XH({
49768
49805
  "aria-pressed",
49769
49806
  "onClick"
49770
49807
  ]))), 128))])]),
49771
- K("section", DX, [
49808
+ K("section", AX, [
49772
49809
  c[30] ||= K("h3", { id: "channel-effects-label" }, "视觉效果", -1),
49773
- 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, {
49774
49811
  key: e.value,
49775
49812
  label: e.label,
49776
49813
  color: "neutral",
@@ -49786,7 +49823,7 @@ var hU = /*#__PURE__*/ XH({
49786
49823
  ]))), 128))]),
49787
49824
  c[31] ||= K("p", { class: "fine-print" }, "精简模式关闭毛玻璃模糊与多层阴影,适合配置较低或需要更流畅滚动的设备。", -1)
49788
49825
  ])
49789
- ])) : a.value === "create" ? (U(), G(PY, {
49826
+ ])) : a.value === "create" ? (U(), G(LY, {
49790
49827
  key: 5,
49791
49828
  "target-folder": e.targetFolder,
49792
49829
  onSubmit: N,
@@ -49821,7 +49858,7 @@ var hU = /*#__PURE__*/ XH({
49821
49858
  }, null, 8, ["model-value"])]),
49822
49859
  _: 1
49823
49860
  }),
49824
- K("div", kX, [q(ue, { label: "主持人" }, {
49861
+ K("div", MX, [q(ue, { label: "主持人" }, {
49825
49862
  default: L(() => [q(S, {
49826
49863
  "model-value": I(o).fields[ge("host")],
49827
49864
  items: I(A),
@@ -49855,7 +49892,7 @@ var hU = /*#__PURE__*/ XH({
49855
49892
  }, null, 8, ["model-value"])]),
49856
49893
  _: 1
49857
49894
  })) : Y("", !0),
49858
- K("section", AX, [
49895
+ K("section", NX, [
49859
49896
  c[33] ||= K("h3", null, "讨论上限", -1),
49860
49897
  q(bU, {
49861
49898
  ref_key: "topic_limits",
@@ -49875,14 +49912,14 @@ var hU = /*#__PURE__*/ XH({
49875
49912
  "execution",
49876
49913
  "disabled"
49877
49914
  ]),
49878
- ce.value ? (U(), W("p", jX, "修改上限前,请先把阶段保存为“已暂停”。")) : Y("", !0)
49915
+ ce.value ? (U(), W("p", PX, "修改上限前,请先把阶段保存为“已暂停”。")) : Y("", !0)
49879
49916
  ]),
49880
49917
  q(we, {
49881
49918
  open: oe.value,
49882
49919
  "onUpdate:open": c[20] ||= (e) => oe.value = e,
49883
49920
  class: "advanced-fields"
49884
49921
  }, {
49885
- content: L(() => [K("div", MX, [
49922
+ content: L(() => [K("div", FX, [
49886
49923
  (U(), W(H, null, B([
49887
49924
  {
49888
49925
  key: "user_request",
@@ -49909,11 +49946,11 @@ var hU = /*#__PURE__*/ XH({
49909
49946
  }, null, 8, ["model-value", "onUpdate:modelValue"])]),
49910
49947
  _: 2
49911
49948
  }, 1032, ["label"])), 64)),
49912
- 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, {
49913
- "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",
49914
49951
  items: ae,
49915
49952
  "aria-label": `${e} 参与方式`,
49916
- "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)
49917
49954
  }, null, 8, [
49918
49955
  "model-value",
49919
49956
  "aria-label",
@@ -49931,7 +49968,7 @@ var hU = /*#__PURE__*/ XH({
49931
49968
  }, null, 8, ["trailing-icon"])]),
49932
49969
  _: 1
49933
49970
  }, 8, ["open"]),
49934
- K("div", PX, [q(le, {
49971
+ K("div", LX, [q(le, {
49935
49972
  label: "取消",
49936
49973
  color: "neutral",
49937
49974
  variant: "ghost",
@@ -49975,7 +50012,7 @@ var hU = /*#__PURE__*/ XH({
49975
50012
  _: 1
49976
50013
  }),
49977
50014
  c[35] ||= K("p", { class: "fine-print" }, "创建后为待通知状态;由主持人实际联系专家。", -1),
49978
- K("div", FX, [q(le, {
50015
+ K("div", RX, [q(le, {
49979
50016
  label: "取消",
49980
50017
  variant: "ghost",
49981
50018
  color: "neutral",
@@ -49986,8 +50023,8 @@ var hU = /*#__PURE__*/ XH({
49986
50023
  label: "创建发言安排",
49987
50024
  loading: I(u) === "schedule"
49988
50025
  }, null, 8, ["loading"])])
49989
- ], 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 }, [
49990
- 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, [
49991
50028
  K("strong", null, P(I(s).display_name(de.value.author)), 1),
49992
50029
  K("span", null, "#" + P(de.value.id), 1),
49993
50030
  q(Te, {
@@ -49998,14 +50035,14 @@ var hU = /*#__PURE__*/ XH({
49998
50035
  _: 1
49999
50036
  })
50000
50037
  ]),
50001
- K("p", zX, P(I(s).provenance(de.value)) + " · " + P(new Date(de.value.created_at).toLocaleString("zh-CN")), 1),
50002
- 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),
50003
- 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),
50004
50041
  de.value.attachments?.length ? (U(), W("div", {
50005
50042
  key: 1,
50006
50043
  onClick: ye,
50007
50044
  innerHTML: I(s).attachment_markup(de.value.attachments)
50008
- }, null, 8, UX)) : Y("", !0),
50045
+ }, null, 8, KX)) : Y("", !0),
50009
50046
  de.value.reply_to ? (U(), G(le, {
50010
50047
  key: 2,
50011
50048
  label: `查看被回复的原文 #${de.value.reply_to}`,
@@ -50015,7 +50052,7 @@ var hU = /*#__PURE__*/ XH({
50015
50052
  class: "channel-surface-button",
50016
50053
  onClick: xe
50017
50054
  }, null, 8, ["label"])) : Y("", !0)
50018
- ], 64)) : (U(), W("p", WX, "正在读取原文…"))])) : Y("", !0)]),
50055
+ ], 64)) : (U(), W("p", qX, "正在读取原文…"))])) : Y("", !0)]),
50019
50056
  _: 1
50020
50057
  }, 8, [
50021
50058
  "open",
@@ -50026,7 +50063,7 @@ var hU = /*#__PURE__*/ XH({
50026
50063
  ]);
50027
50064
  };
50028
50065
  }
50029
- }, qX = {
50066
+ }, XX = {
50030
50067
  __name: "ContextMenuContent",
50031
50068
  props: {
50032
50069
  items: {
@@ -50321,7 +50358,7 @@ var hU = /*#__PURE__*/ XH({
50321
50358
  "disabled",
50322
50359
  "text-value",
50323
50360
  "class"
50324
- ]), q(qX, X({
50361
+ ]), q(XX, X({
50325
50362
  sub: "",
50326
50363
  class: r.ui?.content,
50327
50364
  ui: e.ui,
@@ -50432,7 +50469,7 @@ var hU = /*#__PURE__*/ XH({
50432
50469
  _: 3
50433
50470
  }, 16)], 64));
50434
50471
  }
50435
- }, JX = {
50472
+ }, ZX = {
50436
50473
  slots: {
50437
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",
50438
50475
  viewport: "relative divide-y divide-default scroll-py-1 overflow-y-auto flex-1",
@@ -50620,7 +50657,7 @@ var hU = /*#__PURE__*/ XH({
50620
50657
  }
50621
50658
  ],
50622
50659
  defaultVariants: { size: "md" }
50623
- }, YX = {
50660
+ }, QX = {
50624
50661
  __name: "ContextMenu",
50625
50662
  props: {
50626
50663
  size: {
@@ -50690,7 +50727,7 @@ var hU = /*#__PURE__*/ XH({
50690
50727
  emits: ["update:open"],
50691
50728
  setup(e, { emit: t }) {
50692
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({
50693
- extend: JX,
50730
+ extend: ZX,
50694
50731
  ...o.ui?.contextMenu || {}
50695
50732
  })({ size: a.size }));
50696
50733
  return (e, t) => (U(), G(I(iC), N(Ss(I(s))), {
@@ -50702,7 +50739,7 @@ var hU = /*#__PURE__*/ XH({
50702
50739
  }, {
50703
50740
  default: L(() => [V(e.$slots, "default")]),
50704
50741
  _: 3
50705
- }, 8, ["disabled", "class"])) : Y("", !0), q(qX, X({
50742
+ }, 8, ["disabled", "class"])) : Y("", !0), q(XX, X({
50706
50743
  class: u.value.content({ class: [!i.default && I(a).class, I(a).ui?.content] }),
50707
50744
  ui: u.value,
50708
50745
  "ui-override": I(a).ui
@@ -50732,47 +50769,47 @@ var hU = /*#__PURE__*/ XH({
50732
50769
  _: 3
50733
50770
  }, 16));
50734
50771
  }
50735
- }, 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 = {
50736
50773
  "aria-label": "协作房间列表",
50737
50774
  class: "channel-room-list",
50738
50775
  "data-room-directory": ""
50739
- }, tZ = ["data-room-folder", "data-drag-folder"], nZ = [
50776
+ }, iZ = ["data-room-folder", "data-drag-folder"], aZ = [
50740
50777
  "disabled",
50741
50778
  "aria-label",
50742
50779
  "aria-expanded",
50743
50780
  "onKeydown",
50744
50781
  "onClick"
50745
- ], rZ = { class: "channel-folder-name" }, iZ = { class: "channel-folder-actions" }, aZ = {
50782
+ ], oZ = { class: "channel-folder-name" }, sZ = { class: "channel-folder-actions" }, cZ = {
50746
50783
  class: "channel-directory-count",
50747
50784
  "aria-hidden": "true"
50748
- }, oZ = ["data-drop-folder"], sZ = {
50785
+ }, lZ = ["data-drop-folder"], uZ = {
50749
50786
  key: 0,
50750
50787
  class: "channel-directory-empty",
50751
50788
  role: "status"
50752
- }, cZ = ["data-drag-room"], lZ = [
50789
+ }, dZ = ["data-drag-room"], fZ = [
50753
50790
  "aria-label",
50754
50791
  "disabled",
50755
50792
  "onKeydown"
50756
- ], uZ = [
50793
+ ], pZ = [
50757
50794
  "title",
50758
50795
  "aria-label",
50759
50796
  "aria-current",
50760
50797
  "onClick"
50761
- ], dZ = { class: "channel-room-actions" }, fZ = {
50798
+ ], mZ = { class: "channel-room-actions" }, hZ = {
50762
50799
  key: 0,
50763
50800
  class: "channel-directory-empty"
50764
- }, pZ = {
50801
+ }, gZ = {
50765
50802
  key: 0,
50766
50803
  class: "channel-archive-count"
50767
- }, mZ = {
50804
+ }, _Z = {
50768
50805
  key: 0,
50769
50806
  role: "status",
50770
50807
  class: "channel-directory-notice"
50771
- }, hZ = {
50808
+ }, vZ = {
50772
50809
  key: 1,
50773
50810
  role: "alert",
50774
50811
  class: "channel-directory-error"
50775
- }, gZ = {
50812
+ }, yZ = {
50776
50813
  __name: "ChannelDirectory",
50777
50814
  emits: [
50778
50815
  "select",
@@ -50986,8 +51023,8 @@ var hU = /*#__PURE__*/ XH({
50986
51023
  ];
50987
51024
  }
50988
51025
  return (e, t) => {
50989
- let u = MA, _ = sA, v = CH, x = $V, S = YX;
50990
- return U(), W("div", XX, [
51026
+ let u = MA, _ = sA, v = CH, x = $V, S = QX;
51027
+ return U(), W("div", $X, [
50991
51028
  q(u, {
50992
51029
  label: "新建对话",
50993
51030
  icon: "i-lucide-plus",
@@ -50996,12 +51033,12 @@ var hU = /*#__PURE__*/ XH({
50996
51033
  disabled: I(r).directory_pending.includes("create-room"),
50997
51034
  onClick: t[0] ||= (e) => n("create", null)
50998
51035
  }, null, 8, ["disabled"]),
50999
- K("div", ZX, [K("button", {
51036
+ K("div", eZ, [K("button", {
51000
51037
  type: "button",
51001
51038
  class: "channel-section-toggle",
51002
51039
  "aria-expanded": m.value,
51003
51040
  onClick: t[1] ||= (e) => m.value = !m.value
51004
- }, [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, [
51005
51042
  q(v, {
51006
51043
  items: d.value,
51007
51044
  content: {
@@ -51043,7 +51080,7 @@ var hU = /*#__PURE__*/ XH({
51043
51080
  onChange: p
51044
51081
  }, null, 544)
51045
51082
  ])]),
51046
- 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", {
51047
51084
  key: e.order_id,
51048
51085
  class: "channel-folder-section",
51049
51086
  "data-room-folder": e.id,
@@ -51073,9 +51110,9 @@ var hU = /*#__PURE__*/ XH({
51073
51110
  }, [
51074
51111
  q(_, { name: h.value.has(e.id) ? "i-lucide-chevron-right" : "i-lucide-chevron-down" }, null, 8, ["name"]),
51075
51112
  q(_, { name: "i-lucide-folder" }),
51076
- K("span", rZ, P(e.name), 1)
51077
- ], 40, nZ),
51078
- K("div", iZ, [q(v, {
51113
+ K("span", oZ, P(e.name), 1)
51114
+ ], 40, aZ),
51115
+ K("div", sZ, [q(v, {
51079
51116
  items: g(e, s),
51080
51117
  content: {
51081
51118
  align: "start",
@@ -51109,12 +51146,12 @@ var hU = /*#__PURE__*/ XH({
51109
51146
  ])]),
51110
51147
  _: 2
51111
51148
  }, 1032, ["text"])]),
51112
- K("small", aZ, P(e.pending ? "保存中" : e.rooms.length), 1)
51149
+ K("small", cZ, P(e.pending ? "保存中" : e.rooms.length), 1)
51113
51150
  ], 2)) : Y("", !0), !e.id || !h.value.has(e.id) ? (U(), W("div", {
51114
51151
  key: 1,
51115
51152
  class: M(e.id ? "channel-folder-rooms" : "channel-root-rooms"),
51116
51153
  "data-drop-folder": e.id ? void 0 : ""
51117
- }, [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, {
51118
51155
  key: s.id,
51119
51156
  items: b(s, c, s.folder_id || null, e.rooms.length),
51120
51157
  ui: { content: "channel-menu channel-topic-menu" }
@@ -51139,7 +51176,7 @@ var hU = /*#__PURE__*/ XH({
51139
51176
  direction: 1,
51140
51177
  folder_id: s.folder_id || null
51141
51178
  }), ["prevent"]), ["down"])]
51142
- }, [q(_, { name: "i-lucide-grip-vertical" })], 40, lZ),
51179
+ }, [q(_, { name: "i-lucide-grip-vertical" })], 40, fZ),
51143
51180
  K("button", {
51144
51181
  class: "channel-room-select",
51145
51182
  "data-drag-title": "",
@@ -51148,8 +51185,8 @@ var hU = /*#__PURE__*/ XH({
51148
51185
  "aria-current": s.id === I(r).room?.id ? "page" : void 0,
51149
51186
  onPointerdown: t[5] ||= (e) => !I(o) && I(i).start_drag(e),
51150
51187
  onClick: (e) => n("select", s.id)
51151
- }, [K("span", null, P(s.title), 1)], 40, uZ),
51152
- K("div", dZ, [q(x, {
51188
+ }, [K("span", null, P(s.title), 1)], 40, pZ),
51189
+ K("div", mZ, [q(x, {
51153
51190
  text: s.archived ? "恢复房间" : "存档房间",
51154
51191
  ui: { content: "channel-topic-tooltip" }
51155
51192
  }, {
@@ -51190,9 +51227,9 @@ var hU = /*#__PURE__*/ XH({
51190
51227
  }, null, 8, ["aria-label"])]),
51191
51228
  _: 2
51192
51229
  }, 1032, ["items"])])
51193
- ], 10, cZ)]),
51230
+ ], 10, dZ)]),
51194
51231
  _: 2
51195
- }, 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]]),
51196
51233
  vr(q(u, {
51197
51234
  icon: "i-lucide-archive",
51198
51235
  color: "neutral",
@@ -51201,48 +51238,48 @@ var hU = /*#__PURE__*/ XH({
51201
51238
  "aria-haspopup": "dialog",
51202
51239
  onClick: t[6] ||= (e) => n("archives")
51203
51240
  }, {
51204
- 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)]),
51205
51242
  _: 1
51206
51243
  }, 512), [[Vc, m.value]]),
51207
- I(r).directory_notice ? (U(), W("p", mZ, P(I(r).directory_notice), 1)) : Y("", !0),
51208
- 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)
51209
51246
  ]);
51210
51247
  };
51211
51248
  }
51212
- }, _Z = {
51249
+ }, bZ = {
51213
51250
  key: 0,
51214
51251
  class: "pb-invite",
51215
51252
  "aria-label": "启动手动成员"
51216
- }, vZ = { class: "pb-invite-lead" }, yZ = {
51253
+ }, xZ = { class: "pb-invite-lead" }, SZ = {
51217
51254
  key: 0,
51218
51255
  role: "alert",
51219
51256
  class: "pb-free-note is-error"
51220
- }, bZ = { class: "pb-invite-launches" }, xZ = { class: "pb-invite-footer" }, SZ = {
51257
+ }, CZ = { class: "pb-invite-launches" }, wZ = { class: "pb-invite-footer" }, TZ = {
51221
51258
  class: "pb-invite-library",
51222
51259
  role: "group",
51223
51260
  "aria-label": "选择 AI(可多选)"
51224
- }, CZ = [
51261
+ }, EZ = [
51225
51262
  "aria-pressed",
51226
51263
  "title",
51227
51264
  "onClick"
51228
- ], wZ = {
51265
+ ], DZ = {
51229
51266
  key: 0,
51230
51267
  class: "pb-invite-cards"
51231
- }, TZ = {
51268
+ }, OZ = {
51232
51269
  key: 0,
51233
51270
  class: "fine-print"
51234
- }, EZ = ["aria-hidden"], DZ = {
51271
+ }, kZ = ["aria-hidden"], AZ = {
51235
51272
  key: 2,
51236
51273
  class: "pb-invite-empty"
51237
- }, OZ = {
51274
+ }, jZ = {
51238
51275
  key: 3,
51239
51276
  role: "alert",
51240
51277
  class: "fine-print"
51241
- }, kZ = {
51278
+ }, MZ = {
51242
51279
  key: 4,
51243
51280
  role: "alert",
51244
51281
  class: "pb-free-note is-error"
51245
- }, AZ = { class: "pb-invite-footer" }, jZ = 2e3, MZ = /*#__PURE__*/ XH({
51282
+ }, NZ = { class: "pb-invite-footer" }, PZ = 2e3, FZ = /*#__PURE__*/ XH({
51246
51283
  __name: "InviteDialog",
51247
51284
  props: /*@__PURE__*/ Fa({ description: {
51248
51285
  type: String,
@@ -51260,7 +51297,7 @@ var hU = /*#__PURE__*/ XH({
51260
51297
  async function u(e) {
51261
51298
  clearTimeout(l), c.value = "", await i("copy_member_launch", e) && (c.value = e, l = setTimeout(() => {
51262
51299
  c.value = "";
51263
- }, jZ));
51300
+ }, PZ));
51264
51301
  }
51265
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(() => {
51266
51303
  let e = [...g.value];
@@ -51324,10 +51361,10 @@ var hU = /*#__PURE__*/ XH({
51324
51361
  body: "dialog-body"
51325
51362
  }
51326
51363
  }, {
51327
- body: L(() => [p.value.length && !d.value.length ? (U(), W("div", _Z, [
51328
- K("p", vZ, P(p.value.length > 1 ? `${p.value.length} 位手动成员已加入` : "手动成员已加入") + ",把启动指令交给各自的 AI 会话,注册后才算到场。", 1),
51329
- I(n).access?.error ? (U(), W("p", yZ, P(I(n).access.error), 1)) : Y("", !0),
51330
- 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 }, [
51331
51368
  q(l, {
51332
51369
  src: I(r).identities[I(r).platform_of(e)]?.icon,
51333
51370
  text: I(r).identities[I(r).platform_of(e)]?.initials,
@@ -51362,7 +51399,7 @@ var hU = /*#__PURE__*/ XH({
51362
51399
  ])
51363
51400
  ]))), 128))]),
51364
51401
  o[3] ||= K("p", { class: "fine-print" }, "指令含该成员的凭证,只交给对应的会话;关闭后仍可在参与者列表中复制。", -1),
51365
- K("div", xZ, [q(f, {
51402
+ K("div", wZ, [q(f, {
51366
51403
  label: "完成",
51367
51404
  class: "channel-primary-button",
51368
51405
  onClick: o[0] ||= (e) => t.value = !1
@@ -51373,7 +51410,7 @@ var hU = /*#__PURE__*/ XH({
51373
51410
  "aria-label": "邀请专家",
51374
51411
  onSubmit: uu(w, ["prevent"])
51375
51412
  }, [
51376
- 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", {
51377
51414
  key: e,
51378
51415
  type: "button",
51379
51416
  "aria-pressed": d.value.some((t) => t.name === e),
@@ -51390,11 +51427,11 @@ var hU = /*#__PURE__*/ XH({
51390
51427
  "text",
51391
51428
  "alt",
51392
51429
  "class"
51393
- ]), J(P(e), 1)], 8, CZ))), 128))]),
51394
- 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", {
51395
51432
  key: e.id,
51396
51433
  class: "pb-invite-pick"
51397
- }, [q(YJ, {
51434
+ }, [q(QJ, {
51398
51435
  name: e.name,
51399
51436
  mode: e.mode,
51400
51437
  choices: ["cli", "manual"],
@@ -51411,15 +51448,15 @@ var hU = /*#__PURE__*/ XH({
51411
51448
  "onMode",
51412
51449
  "onSession",
51413
51450
  "onRemove"
51414
- ]), 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),
51415
51452
  d.value.length ? (U(), W("p", {
51416
51453
  key: 1,
51417
51454
  class: M(["fine-print", { "pb-invite-reserved": !(d.value.some((e) => e.mode === "manual") && d.value.some((e) => e.mode !== "manual")) }]),
51418
51455
  "aria-hidden": !(d.value.some((e) => e.mode === "manual") && d.value.some((e) => e.mode !== "manual"))
51419
- }, "手动启动的成员排在程序启动的成员之后加入队列。", 10, EZ)) : (U(), W("p", DZ, "选择一位或多位 AI(同一 AI 可重复添加),点卡片翻面设置软件、模型与项目权限。")),
51420
- d.value.some((e) => e.mode === "cli") && !I(n).launch.available ? (U(), W("p", OZ, "邀请需要本机服务,请在运行 AI 的电脑打开本机网站。")) : Y("", !0),
51421
- m.value && I(n).free_error ? (U(), W("p", kZ, P(I(n).free_error), 1)) : Y("", !0),
51422
- 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, {
51423
51460
  label: "取消",
51424
51461
  color: "neutral",
51425
51462
  variant: "ghost",
@@ -51441,40 +51478,40 @@ var hU = /*#__PURE__*/ XH({
51441
51478
  }, 8, ["open", "description"]);
51442
51479
  };
51443
51480
  }
51444
- }, [["__scopeId", "data-v-3ca69064"]]), NZ = { class: "speaking-order" }, PZ = {
51481
+ }, [["__scopeId", "data-v-3ca69064"]]), IZ = { class: "speaking-order" }, LZ = {
51445
51482
  key: 0,
51446
51483
  class: "speaking-order-divider",
51447
51484
  "aria-hidden": "true"
51448
- }, FZ = ["data-key", "data-movable"], IZ = [
51485
+ }, RZ = ["data-key", "data-movable"], zZ = [
51449
51486
  "aria-disabled",
51450
51487
  "aria-label",
51451
51488
  "title",
51452
51489
  "onPointerdown",
51453
51490
  "onKeydown"
51454
- ], LZ = { class: "speaking-order-number" }, RZ = {
51491
+ ], BZ = { class: "speaking-order-number" }, VZ = {
51455
51492
  key: 1,
51456
51493
  class: "speaking-order-place",
51457
51494
  title: "已发言",
51458
51495
  "aria-label": "已发言"
51459
- }, zZ = ["title"], BZ = {
51496
+ }, HZ = ["title"], UZ = {
51460
51497
  key: 0,
51461
51498
  class: "speaking-order-later"
51462
- }, VZ = {
51499
+ }, WZ = {
51463
51500
  key: 1,
51464
51501
  class: "speaking-order-divider",
51465
51502
  "aria-hidden": "true"
51466
- }, HZ = {
51503
+ }, GZ = {
51467
51504
  key: 0,
51468
51505
  role: "status",
51469
51506
  class: "pb-free-note"
51470
- }, UZ = {
51507
+ }, KZ = {
51471
51508
  key: 1,
51472
51509
  role: "alert",
51473
51510
  class: "pb-free-note is-error"
51474
- }, WZ = {
51511
+ }, qZ = {
51475
51512
  class: "speaking-order-live",
51476
51513
  "aria-live": "polite"
51477
- }, GZ = "发言顺序刚有变化,已更新为最新顺序,请重新调整", KZ = /*#__PURE__*/ XH({
51514
+ }, JZ = "发言顺序刚有变化,已更新为最新顺序,请重新调整", YZ = /*#__PURE__*/ XH({
51478
51515
  __name: "SpeakingOrder",
51479
51516
  props: {
51480
51517
  away: {
@@ -51494,7 +51531,7 @@ var hU = /*#__PURE__*/ XH({
51494
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 = {
51495
51532
  queue: "不在本次依次回答中",
51496
51533
  turns: "本轮未安排"
51497
- }, 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("");
51498
51535
  R(() => s.value.revision, () => {
51499
51536
  g.value = null;
51500
51537
  }), R(() => o.value.id, () => {
@@ -51581,13 +51618,13 @@ var hU = /*#__PURE__*/ XH({
51581
51618
  }
51582
51619
  return (e, n) => {
51583
51620
  let i = sA;
51584
- return U(), W("div", NZ, [
51621
+ return U(), W("div", IZ, [
51585
51622
  K("ul", {
51586
51623
  ref_key: "list",
51587
51624
  ref: m,
51588
51625
  class: M(["pb-members", { "is-dragging": h.value }])
51589
51626
  }, [
51590
- (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", {
51591
51628
  class: M(["pb-member speaking-order-row", [
51592
51629
  `is-${t.state}`,
51593
51630
  E(r),
@@ -51608,19 +51645,19 @@ var hU = /*#__PURE__*/ XH({
51608
51645
  onPointercancel: n[0] ||= (e) => w(e, !0),
51609
51646
  onLostpointercapture: n[1] ||= (e) => w(e, !0),
51610
51647
  onKeydown: [fu((e) => D(e, b(r), -1), ["up"]), fu((e) => D(e, b(r), 1), ["down"])]
51611
- }, [K("span", LZ, P(t.place), 1), q(i, {
51648
+ }, [K("span", BZ, P(t.place), 1), q(i, {
51612
51649
  name: "i-lucide-grip-vertical",
51613
51650
  class: "speaking-order-handle"
51614
- })], 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", {
51615
51652
  key: 2,
51616
51653
  class: "speaking-order-place",
51617
51654
  title: t.state === "speaking" ? "正在发言" : void 0
51618
- }, P(t.place || ""), 9, zZ)), V(e.$slots, "default", {
51655
+ }, P(t.place || ""), 9, HZ)), V(e.$slots, "default", {
51619
51656
  item: t,
51620
51657
  place: t.place
51621
- }, void 0, !0)], 10, FZ)], 64))), 128)),
51622
- 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),
51623
- 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),
51624
51661
  (U(!0), W(H, null, B(t.away, (t) => (U(), W("li", {
51625
51662
  key: `away-${t}`,
51626
51663
  class: "pb-member speaking-order-row is-away"
@@ -51632,78 +51669,78 @@ var hU = /*#__PURE__*/ XH({
51632
51669
  place: 0
51633
51670
  }, void 0, !0)]))), 128))
51634
51671
  ], 2),
51635
- p.value === GZ ? (U(), W("p", HZ, P(p.value), 1)) : p.value ? (U(), W("p", UZ, P(p.value), 1)) : Y("", !0),
51636
- 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)
51637
51674
  ]);
51638
51675
  };
51639
51676
  }
51640
- }, [["__scopeId", "data-v-dc33a051"]]), qZ = {
51677
+ }, [["__scopeId", "data-v-dc33a051"]]), XZ = {
51641
51678
  key: 0,
51642
51679
  class: "pb-header"
51643
- }, 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 = {
51644
51681
  key: 0,
51645
51682
  class: "pb-mode"
51646
- }, QZ = {
51683
+ }, tQ = {
51647
51684
  key: 0,
51648
51685
  class: "pb-status-detail"
51649
- }, $Z = {
51686
+ }, nQ = {
51650
51687
  key: 1,
51651
51688
  class: "pb-status-detail"
51652
- }, eQ = { class: "pb-error-detail" }, tQ = {
51689
+ }, rQ = { class: "pb-error-detail" }, iQ = {
51653
51690
  key: 3,
51654
51691
  class: "pb-meters"
51655
- }, nQ = { class: "pb-meter-label" }, rQ = {
51692
+ }, aQ = { class: "pb-meter-label" }, oQ = {
51656
51693
  key: 0,
51657
51694
  class: "pb-bar"
51658
- }, iQ = {
51695
+ }, sQ = {
51659
51696
  key: 1,
51660
51697
  class: "pb-section",
51661
51698
  "aria-label": "当前焦点"
51662
- }, aQ = {
51699
+ }, cQ = {
51663
51700
  class: "pb-section",
51664
51701
  "aria-label": "发言顺序"
51665
- }, oQ = { class: "pb-heading" }, sQ = {
51702
+ }, lQ = { class: "pb-heading" }, uQ = {
51666
51703
  key: 0,
51667
51704
  class: "pb-status-detail pb-held"
51668
- }, 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 = {
51669
51706
  key: 0,
51670
51707
  class: "pb-member-model",
51671
51708
  title: "本场启动配置;默认模型与默认强度由对应软件决定"
51672
- }, pQ = {
51709
+ }, gQ = {
51673
51710
  key: 1,
51674
51711
  class: "pb-member-model",
51675
51712
  title: "续接你已有的会话;它工作时请不要在原窗口继续操作"
51676
- }, mQ = { key: 0 }, hQ = {
51713
+ }, _Q = { key: 0 }, vQ = {
51677
51714
  key: 3,
51678
51715
  class: "pb-member-manual"
51679
- }, gQ = { key: 0 }, _Q = ["onClick"], vQ = {
51716
+ }, yQ = { key: 0 }, bQ = ["onClick"], xQ = {
51680
51717
  key: 1,
51681
51718
  role: "alert",
51682
51719
  class: "pb-free-note is-error"
51683
- }, yQ = {
51720
+ }, SQ = {
51684
51721
  key: 2,
51685
51722
  role: "status",
51686
51723
  class: "pb-free-note"
51687
- }, bQ = {
51724
+ }, CQ = {
51688
51725
  key: 2,
51689
51726
  class: "pb-actions",
51690
51727
  "aria-label": "操作"
51691
- }, xQ = {
51728
+ }, wQ = {
51692
51729
  key: 3,
51693
51730
  class: "pb-section",
51694
51731
  "aria-label": "阶段耗时"
51695
- }, 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 = {
51696
51733
  key: 0,
51697
51734
  class: "pb-note"
51698
- }, jQ = { class: "pb-connection" }, MQ = { class: "fine-print" }, NQ = {
51735
+ }, PQ = { class: "pb-connection" }, FQ = { class: "fine-print" }, IQ = {
51699
51736
  key: 0,
51700
51737
  role: "status",
51701
51738
  class: "fine-print"
51702
- }, PQ = {
51739
+ }, LQ = {
51703
51740
  key: 2,
51704
51741
  role: "alert",
51705
51742
  class: "fine-print"
51706
- }, 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({
51707
51744
  __name: "ProgressBoard",
51708
51745
  props: { docked: {
51709
51746
  type: Boolean,
@@ -51714,7 +51751,7 @@ var hU = /*#__PURE__*/ XH({
51714
51751
  async function l(e) {
51715
51752
  clearTimeout(c), s.value = "", await i("copy_member_launch", e) && (s.value = e, c = setTimeout(() => {
51716
51753
  s.value = "";
51717
- }, zQ));
51754
+ }, HQ));
51718
51755
  }
51719
51756
  let u = /* @__PURE__ */ F(!1), d = /* @__PURE__ */ F(null), f = /* @__PURE__ */ F(!1), p = ["pending", "notified"], m = {
51720
51757
  dispatched: "已交付,等待开始",
@@ -51746,7 +51783,7 @@ var hU = /*#__PURE__*/ XH({
51746
51783
  R(() => _.value.id, () => {
51747
51784
  he.value = !1;
51748
51785
  });
51749
- 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 || {
51750
51787
  items: [],
51751
51788
  totals: {},
51752
51789
  count: 0
@@ -51780,7 +51817,7 @@ var hU = /*#__PURE__*/ XH({
51780
51817
  };
51781
51818
  let e = ce.value;
51782
51819
  if (e) {
51783
- 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;
51784
51821
  return {
51785
51822
  tone: "error",
51786
51823
  title: "已暂停",
@@ -51925,18 +51962,18 @@ var hU = /*#__PURE__*/ XH({
51925
51962
  return (e, c) => {
51926
51963
  let f = MA, p = sA, m = pA, v = CH, T = bH, k = zV, se = YH;
51927
51964
  return U(), W("div", { class: M(["progress-board", { "is-docked": t.docked }]) }, [
51928
- 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),
51929
51966
  K("section", {
51930
51967
  class: M(["pb-status", `is-${be.value.tone}`]),
51931
51968
  "aria-label": "讨论状态"
51932
51969
  }, [
51933
- K("div", YZ, [
51970
+ K("div", QZ, [
51934
51971
  c[19] ||= K("span", { class: "pb-dot" }, null, -1),
51935
- K("strong", XZ, P(be.value.title), 1),
51936
- 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))
51937
51974
  ]),
51938
- be.value.detail ? (U(), W("p", QZ, P(be.value.detail), 1)) : Y("", !0),
51939
- 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),
51940
51977
  ue.value && I(n).launch.available && !I(n).launch.remote ? (U(), G(f, {
51941
51978
  key: 2,
51942
51979
  icon: "i-lucide-arrow-left-right",
@@ -51948,12 +51985,12 @@ var hU = /*#__PURE__*/ XH({
51948
51985
  disabled: !!I(a),
51949
51986
  onClick: c[0] ||= (e) => Ee(ue.value, "codex")
51950
51987
  }, null, 8, ["disabled"])) : Y("", !0),
51951
- 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", {
51952
51989
  key: e.label,
51953
51990
  class: "pb-meter"
51954
- }, [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)
51955
51992
  ], 2),
51956
- ge.value ? (U(), W("section", iQ, [
51993
+ ge.value ? (U(), W("section", sQ, [
51957
51994
  c[21] ||= K("h4", null, "当前焦点", -1),
51958
51995
  K("p", { class: M(["pb-focus", { "is-expanded": u.value }]) }, P(ge.value), 3),
51959
51996
  N.value ? (U(), W("button", {
@@ -51963,15 +52000,15 @@ var hU = /*#__PURE__*/ XH({
51963
52000
  onClick: c[1] ||= (e) => u.value = !u.value
51964
52001
  }, P(u.value ? "收起" : "展开"), 1)) : Y("", !0)
51965
52002
  ])) : Y("", !0),
51966
- K("section", aQ, [
51967
- 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", {
51968
52005
  key: 0,
51969
52006
  type: "button",
51970
52007
  class: "pb-link",
51971
52008
  onClick: Te
51972
52009
  }, [q(p, { name: "i-lucide-plus" }), c[22] ||= J("邀请", -1)])) : Y("", !0)]),
51973
- _.value.held_since && x.value && !S.value ? (U(), W("p", sQ, "用户有新操作," + P(I(r).display_name(x.value.expert)) + " 说完后交给主持人", 1)) : Y("", !0),
51974
- 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, {
51975
52012
  away: de.value.map((e) => e.name),
51976
52013
  round: Se.value
51977
52014
  }, {
@@ -51988,7 +52025,7 @@ var hU = /*#__PURE__*/ XH({
51988
52025
  "alt",
51989
52026
  "class"
51990
52027
  ]),
51991
- 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)]),
51992
52029
  we({ name: e.name }).length ? (U(), G(v, {
51993
52030
  key: 0,
51994
52031
  items: we({ name: e.name }),
@@ -52018,8 +52055,8 @@ var hU = /*#__PURE__*/ XH({
52018
52055
  "alt",
52019
52056
  "class"
52020
52057
  ]),
52021
- K("div", uQ, [
52022
- K("div", dQ, [
52058
+ K("div", pQ, [
52059
+ K("div", mQ, [
52023
52060
  J(P(I(r).display_name(e.name)), 1),
52024
52061
  e.is_host ? (U(), G(p, {
52025
52062
  key: 0,
@@ -52028,22 +52065,22 @@ var hU = /*#__PURE__*/ XH({
52028
52065
  })) : Y("", !0),
52029
52066
  K("small", null, P(e.is_host ? `主持 · ${e.mode}` : e.mode), 1)
52030
52067
  ]),
52031
- e.model ? (U(), W("div", fQ, P(e.model), 1)) : Y("", !0),
52032
- 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),
52033
52070
  w.value ? Y("", !0) : (U(), W("div", {
52034
52071
  key: 2,
52035
52072
  class: M(["pb-member-status", `is-${e.tone}`])
52036
52073
  }, [
52037
52074
  c[26] ||= K("span", { class: "pb-dot" }, null, -1),
52038
52075
  J(P(e.text), 1),
52039
- 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)
52040
52077
  ], 2)),
52041
- 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", {
52042
52079
  key: 1,
52043
52080
  type: "button",
52044
52081
  class: "pb-link",
52045
52082
  onClick: (t) => l(e.name)
52046
- }, [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)
52047
52084
  ]),
52048
52085
  we(e).length ? (U(), G(v, {
52049
52086
  key: 0,
@@ -52064,9 +52101,9 @@ var hU = /*#__PURE__*/ XH({
52064
52101
  ], 64))), 128))]),
52065
52102
  _: 1
52066
52103
  }, 8, ["away", "round"]),
52067
- !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)
52068
52105
  ]),
52069
- oe.value ? (U(), W("section", bQ, [
52106
+ oe.value ? (U(), W("section", CQ, [
52070
52107
  ne.value ? (U(), G(f, {
52071
52108
  key: 0,
52072
52109
  icon: "i-lucide-rotate-ccw",
@@ -52148,8 +52185,8 @@ var hU = /*#__PURE__*/ XH({
52148
52185
  onClick: c[6] ||= (e) => o.value = !0
52149
52186
  }, null, 8, ["disabled"])) : Y("", !0)
52150
52187
  ])) : Y("", !0),
52151
- b.value && _e.value.count ? (U(), W("section", xQ, [
52152
- 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)]),
52153
52190
  K("div", {
52154
52191
  class: "pb-timing-bar",
52155
52192
  role: "img",
@@ -52158,18 +52195,18 @@ var hU = /*#__PURE__*/ XH({
52158
52195
  key: e.key,
52159
52196
  class: M(`is-${e.key}`),
52160
52197
  style: fe({ width: `${e.percent}%` })
52161
- }, null, 6))), 128))], 8, CQ),
52162
- 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", {
52163
52200
  key: e.key,
52164
52201
  title: e.hint
52165
- }, [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))]),
52166
- 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, [
52167
52204
  c[28] ||= K("summary", null, "查看每次执行", -1),
52168
- 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", {
52169
52206
  key: t.key,
52170
52207
  title: t.hint
52171
- }, P(t.label) + " " + P(ke(e[t.key])), 9, kQ)), 64))])]))), 128))]),
52172
- _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)
52173
52210
  ])
52174
52211
  ])) : Y("", !0),
52175
52212
  q(se, {
@@ -52182,7 +52219,7 @@ var hU = /*#__PURE__*/ XH({
52182
52219
  body: "dialog-body"
52183
52220
  }
52184
52221
  }, {
52185
- 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, {
52186
52223
  label: "暂停并读取配置",
52187
52224
  icon: "i-lucide-pause",
52188
52225
  class: "channel-primary-button",
@@ -52205,7 +52242,7 @@ var hU = /*#__PURE__*/ XH({
52205
52242
  }, null, 8, ["model-value", "disabled"])]),
52206
52243
  _: 1
52207
52244
  }),
52208
- 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),
52209
52246
  q(f, {
52210
52247
  label: "保存接入方式",
52211
52248
  class: "channel-primary-button",
@@ -52213,7 +52250,7 @@ var hU = /*#__PURE__*/ XH({
52213
52250
  disabled: !!I(a),
52214
52251
  onClick: c[8] ||= (e) => I(i)("save_room_configuration")
52215
52252
  }, null, 8, ["loading", "disabled"]),
52216
- 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),
52217
52254
  I(n).launch.repair?.applied && ne.value ? (U(), G(f, {
52218
52255
  key: 1,
52219
52256
  label: "重启讨论",
@@ -52233,10 +52270,10 @@ var hU = /*#__PURE__*/ XH({
52233
52270
  color: "neutral",
52234
52271
  loading: !!I(a),
52235
52272
  onClick: De
52236
- }, 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, "本场状态已变化,请关闭后重新核对。"))])]),
52237
52274
  _: 1
52238
52275
  }, 8, ["open"]),
52239
- q(MZ, {
52276
+ q(FZ, {
52240
52277
  open: he.value,
52241
52278
  "onUpdate:open": c[11] ||= (e) => he.value = e,
52242
52279
  description: "新专家由程序按本机软件配置启动,或由你手动启动,加入本轮发言队列。"
@@ -52262,7 +52299,7 @@ var hU = /*#__PURE__*/ XH({
52262
52299
  minutes: ee.value,
52263
52300
  "onUpdate:minutes": c[13] ||= (e) => ee.value = e,
52264
52301
  execution: !1
52265
- }, null, 8, ["rounds", "minutes"]), K("div", IQ, [q(f, {
52302
+ }, null, 8, ["rounds", "minutes"]), K("div", zQ, [q(f, {
52266
52303
  label: "取消",
52267
52304
  color: "neutral",
52268
52305
  variant: "ghost",
@@ -52287,18 +52324,18 @@ var hU = /*#__PURE__*/ XH({
52287
52324
  body: "dialog-body"
52288
52325
  }
52289
52326
  }, {
52290
- body: L(() => [K("div", LQ, [K("button", {
52327
+ body: L(() => [K("div", BQ, [K("button", {
52291
52328
  type: "button",
52292
52329
  class: "progress-ending-option",
52293
52330
  disabled: C.value || !!I(a),
52294
52331
  onClick: c[16] ||= (e) => Me("end_room_discussion")
52295
- }, [...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)])]),
52296
52333
  _: 1
52297
52334
  }, 8, ["open"])
52298
52335
  ], 2);
52299
52336
  };
52300
52337
  }
52301
- }, [["__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 = {
52302
52339
  __name: "ProgressPanel",
52303
52340
  setup(e) {
52304
52341
  let { view: t, bridge: n } = xr("discussion"), r = /* @__PURE__ */ F(!1), i = Z(() => t.value.room), a = Z(() => i.value.limits || {}), o = Z(() => {
@@ -52325,7 +52362,7 @@ var hU = /*#__PURE__*/ XH({
52325
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}`);
52326
52363
  return (e, t) => {
52327
52364
  let n = $V, a = NV;
52328
- return U(), W("div", UQ, [q(n, { text: "查看讨论进度" }, {
52365
+ return U(), W("div", KQ, [q(n, { text: "查看讨论进度" }, {
52329
52366
  default: L(() => [K("button", {
52330
52367
  type: "button",
52331
52368
  class: M(["progress-chip", `is-${o.value.tone}`]),
@@ -52333,7 +52370,7 @@ var hU = /*#__PURE__*/ XH({
52333
52370
  "aria-expanded": r.value,
52334
52371
  "aria-label": `查看讨论进度:${c.value}`,
52335
52372
  onClick: t[0] ||= (e) => r.value = !0
52336
- }, [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)]),
52337
52374
  _: 1
52338
52375
  }), q(a, {
52339
52376
  open: r.value,
@@ -52346,12 +52383,12 @@ var hU = /*#__PURE__*/ XH({
52346
52383
  body: "progress-drawer-body"
52347
52384
  }
52348
52385
  }, {
52349
- body: L(() => [q(HQ)]),
52386
+ body: L(() => [q(GQ)]),
52350
52387
  _: 1
52351
52388
  }, 8, ["open", "description"])]);
52352
52389
  };
52353
52390
  }
52354
- }, JQ = { class: "start-discussion-footer" }, YQ = 3, XQ = /*#__PURE__*/ XH({
52391
+ }, ZQ = { class: "start-discussion-footer" }, QQ = 3, $Q = /*#__PURE__*/ XH({
52355
52392
  __name: "StartDiscussionDialog",
52356
52393
  props: {
52357
52394
  open: {
@@ -52362,9 +52399,9 @@ var hU = /*#__PURE__*/ XH({
52362
52399
  },
52363
52400
  emits: ["update:open"],
52364
52401
  setup(e) {
52365
- 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);
52366
52403
  R(t, (e) => {
52367
- 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);
52368
52405
  });
52369
52406
  async function d() {
52370
52407
  u.value?.settle();
@@ -52378,7 +52415,7 @@ var hU = /*#__PURE__*/ XH({
52378
52415
  }) && (t.value = !1);
52379
52416
  }
52380
52417
  return (e, r) => {
52381
- let f = HV, p = zV, m = Qq, h = MA, g = YH;
52418
+ let f = HV, p = zV, m = tJ, h = MA, g = YH;
52382
52419
  return U(), G(g, {
52383
52420
  open: t.value,
52384
52421
  "onUpdate:open": r[6] ||= (e) => t.value = e,
@@ -52432,7 +52469,7 @@ var hU = /*#__PURE__*/ XH({
52432
52469
  "minutes",
52433
52470
  "execution_minutes"
52434
52471
  ]),
52435
- K("div", JQ, [q(h, {
52472
+ K("div", ZQ, [q(h, {
52436
52473
  label: "取消",
52437
52474
  color: "neutral",
52438
52475
  variant: "ghost",
@@ -52450,58 +52487,58 @@ var hU = /*#__PURE__*/ XH({
52450
52487
  }, 8, ["open"]);
52451
52488
  };
52452
52489
  }
52453
- }, [["__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$ = {
52454
52491
  key: 0,
52455
52492
  class: "pb-status-detail"
52456
- }, r$ = { class: "pb-meters" }, i$ = { class: "pb-meter-label" }, a$ = {
52493
+ }, o$ = { class: "pb-meters" }, s$ = { class: "pb-meter-label" }, c$ = {
52457
52494
  key: 0,
52458
52495
  class: "pb-bar"
52459
- }, o$ = {
52496
+ }, l$ = {
52460
52497
  key: 0,
52461
52498
  class: "pb-section",
52462
52499
  "aria-label": "当前任务"
52463
- }, s$ = {
52500
+ }, u$ = {
52464
52501
  class: "pb-section",
52465
52502
  "aria-label": "发言顺序"
52466
- }, c$ = { class: "pb-member-body" }, l$ = { class: "pb-member-name" }, u$ = {
52503
+ }, d$ = { class: "pb-member-body" }, f$ = { class: "pb-member-name" }, p$ = {
52467
52504
  key: 0,
52468
52505
  class: "pb-member-model"
52469
- }, d$ = {
52506
+ }, m$ = {
52470
52507
  key: 1,
52471
52508
  class: "pb-member-model",
52472
52509
  title: "它工作时请不要在原窗口继续操作"
52473
- }, f$ = {
52510
+ }, h$ = {
52474
52511
  key: 0,
52475
52512
  role: "alert",
52476
52513
  class: "pb-free-note is-error"
52477
- }, p$ = {
52514
+ }, g$ = {
52478
52515
  key: 1,
52479
52516
  role: "status",
52480
52517
  class: "pb-free-note"
52481
- }, m$ = {
52518
+ }, _$ = {
52482
52519
  key: 2,
52483
52520
  role: "alert",
52484
52521
  class: "pb-free-note is-error"
52485
- }, h$ = {
52522
+ }, v$ = {
52486
52523
  key: 3,
52487
52524
  role: "status",
52488
52525
  class: "pb-free-note"
52489
- }, g$ = {
52526
+ }, y$ = {
52490
52527
  key: 1,
52491
52528
  class: "pb-section",
52492
52529
  "aria-label": "头脑风暴"
52493
- }, _$ = ["onClick"], v$ = {
52530
+ }, b$ = ["onClick"], x$ = {
52494
52531
  key: 2,
52495
52532
  class: "pb-actions",
52496
52533
  "aria-label": "操作"
52497
- }, y$ = {
52534
+ }, S$ = {
52498
52535
  key: 0,
52499
52536
  class: "pb-free-note"
52500
- }, b$ = {
52537
+ }, C$ = {
52501
52538
  key: 3,
52502
52539
  class: "pb-section",
52503
52540
  "aria-label": "执行耗时"
52504
- }, 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({
52505
52542
  __name: "FreeBoard",
52506
52543
  setup(e) {
52507
52544
  let { view: t, bridge: n, act: r, pending: i } = xr("discussion"), a = ["dispatched", "started"], o = {
@@ -52657,32 +52694,32 @@ var hU = /*#__PURE__*/ XH({
52657
52694
  D.value = !1;
52658
52695
  }), (e, i) => {
52659
52696
  let a = pA, p = sA, h = MA, ee = CH;
52660
- return U(), W("div", ZQ, [
52661
- 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)]),
52662
52699
  K("section", {
52663
52700
  class: M(["pb-status", `is-${y.value.tone}`]),
52664
52701
  "aria-label": "房间状态"
52665
52702
  }, [
52666
- K("div", e$, [i[6] ||= K("span", { class: "pb-dot" }, null, -1), K("strong", t$, P(y.value.title), 1)]),
52667
- y.value.detail ? (U(), W("p", n$, P(y.value.detail), 1)) : Y("", !0),
52668
- 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", {
52669
52706
  key: e.label,
52670
52707
  class: "pb-meter"
52671
- }, [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))])
52672
52709
  ], 2),
52673
- x.value ? (U(), W("section", o$, [
52710
+ x.value ? (U(), W("section", l$, [
52674
52711
  i[7] ||= K("h4", null, "当前任务", -1),
52675
52712
  K("p", { class: M(["pb-focus", { "is-expanded": S.value }]) }, P(x.value), 3),
52676
- x.value.length > T$ ? (U(), W("button", {
52713
+ x.value.length > O$ ? (U(), W("button", {
52677
52714
  key: 0,
52678
52715
  type: "button",
52679
52716
  class: "pb-link",
52680
52717
  onClick: i[0] ||= (e) => S.value = !S.value
52681
52718
  }, P(S.value ? "收起" : "展开"), 1)) : Y("", !0)
52682
52719
  ])) : Y("", !0),
52683
- K("section", s$, [
52720
+ K("section", u$, [
52684
52721
  i[9] ||= K("h4", null, "发言顺序", -1),
52685
- q(KZ, { away: f.value }, {
52722
+ q(YZ, { away: f.value }, {
52686
52723
  default: L(({ item: e }) => [(U(!0), W(H, null, B([d(e.name)].filter(Boolean), (t) => (U(), W(H, { key: t.id }, [
52687
52724
  q(a, {
52688
52725
  src: I(n).identities[t.name]?.icon,
@@ -52696,8 +52733,8 @@ var hU = /*#__PURE__*/ XH({
52696
52733
  "alt",
52697
52734
  "class"
52698
52735
  ]),
52699
- K("div", c$, [
52700
- K("div", l$, [
52736
+ K("div", d$, [
52737
+ K("div", f$, [
52701
52738
  J(P(I(n).display_name(t.name)), 1),
52702
52739
  t.role === "host" ? (U(), G(p, {
52703
52740
  key: 0,
@@ -52706,8 +52743,8 @@ var hU = /*#__PURE__*/ XH({
52706
52743
  })) : Y("", !0),
52707
52744
  K("small", null, P(t.role === "host" ? `主持 · ${s[t.access]}` : s[t.access]), 1)
52708
52745
  ]),
52709
- v(t) ? (U(), W("div", u$, P(v(t)), 1)) : Y("", !0),
52710
- 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),
52711
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)
52712
52749
  ]),
52713
52750
  q(ee, {
@@ -52732,8 +52769,8 @@ var hU = /*#__PURE__*/ XH({
52732
52769
  key: e.executions.join("-"),
52733
52770
  class: "pb-free-note is-warning"
52734
52771
  }, "可能冲突:" + P(e.members.map((e) => I(n).display_name(e)).join(" 与 ")) + " 的重叠执行观察到 " + P(e.files.join("、")) + " 变化;修改者未确认。", 1))), 128)),
52735
- 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),
52736
- 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),
52737
52774
  c.value.archived ? Y("", !0) : (U(), G(h, {
52738
52775
  key: 4,
52739
52776
  icon: "i-lucide-plus",
@@ -52745,13 +52782,13 @@ var hU = /*#__PURE__*/ XH({
52745
52782
  onClick: i[1] ||= (e) => E.value = !0
52746
52783
  }))
52747
52784
  ]),
52748
- 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", {
52749
52786
  key: e.id,
52750
52787
  type: "button",
52751
52788
  class: "pb-link pb-free-linked",
52752
52789
  onClick: (t) => I(r)("room", e.id)
52753
- }, [J(P(e.title), 1), K("small", null, P(I(n).phases[e.phase] || e.phase), 1)], 8, _$))), 128))])) : Y("", !0),
52754
- 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, {
52755
52792
  icon: "i-lucide-messages-square",
52756
52793
  label: "开启讨论",
52757
52794
  size: "sm",
@@ -52761,13 +52798,13 @@ var hU = /*#__PURE__*/ XH({
52761
52798
  title: "由主持人推进成员轮流发言,到上限或结束后房间回到自由协作",
52762
52799
  disabled: !O.value,
52763
52800
  onClick: i[2] ||= (e) => D.value = !0
52764
- }, null, 8, ["disabled"]), O.value ? Y("", !0) : (U(), W("p", y$, "开启讨论需要一位由本机唤醒的 AI 主持人。"))])),
52765
- 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),
52766
- 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, {
52767
52804
  open: D.value,
52768
52805
  "onUpdate:open": i[3] ||= (e) => D.value = e
52769
52806
  }, null, 8, ["open"]),
52770
- q(MZ, {
52807
+ q(FZ, {
52771
52808
  open: E.value,
52772
52809
  "onUpdate:open": i[4] ||= (e) => E.value = e,
52773
52810
  description: "新成员加入后不打断其他成员;点卡片翻面可设置软件、模型、项目权限和要续接的已有会话。"
@@ -52775,47 +52812,47 @@ var hU = /*#__PURE__*/ XH({
52775
52812
  ]);
52776
52813
  };
52777
52814
  }
52778
- }, [["__scopeId", "data-v-11a4b3fe"]]), D$ = {
52815
+ }, [["__scopeId", "data-v-11a4b3fe"]]), A$ = {
52779
52816
  id: "channel-sidebar",
52780
52817
  class: "channel-sidebar",
52781
52818
  "aria-label": "房间导航"
52782
- }, 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$ = [
52783
52820
  "aria-valuemax",
52784
52821
  "aria-valuenow",
52785
52822
  "aria-valuetext"
52786
- ], 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$ = {
52787
52824
  key: 0,
52788
52825
  class: "channel-header-context"
52789
- }, U$ = { class: "channel-header-actions" }, W$ = {
52826
+ }, K$ = { class: "channel-header-actions" }, q$ = {
52790
52827
  key: 0,
52791
52828
  class: "channel-launch-recovery",
52792
52829
  "aria-label": "未完成的创建或启动请求"
52793
- }, G$ = { role: "status" }, K$ = { class: "button-row" }, q$ = {
52830
+ }, J$ = { role: "status" }, Y$ = { class: "button-row" }, X$ = {
52794
52831
  key: 1,
52795
52832
  class: "channel-tabbar"
52796
- }, 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 = {
52797
52834
  key: 0,
52798
52835
  class: "channel-brief-preview"
52799
- }, Q$ = {
52836
+ }, t1 = {
52800
52837
  id: "channel-brief-content",
52801
52838
  class: "channel-brief-content"
52802
- }, $$ = ["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 = {
52803
52840
  key: 0,
52804
52841
  class: "content-page channel-summary",
52805
52842
  role: "tabpanel",
52806
52843
  "aria-label": "共识"
52807
- }, i1 = { class: "page-heading" }, a1 = { class: "form-footer" }, o1 = {
52844
+ }, s1 = { class: "page-heading" }, c1 = { class: "form-footer" }, l1 = {
52808
52845
  key: 1,
52809
52846
  class: "channel-empty"
52810
- }, s1 = ["aria-valuenow", "aria-valuetext"], c1 = {
52847
+ }, u1 = ["aria-valuenow", "aria-valuetext"], d1 = {
52811
52848
  key: 2,
52812
52849
  id: "channel-member-rail",
52813
52850
  class: "channel-member-rail",
52814
52851
  "aria-label": "当前焦点与讨论进度"
52815
- }, l1 = { class: "channel-rail-board" }, u1 = {
52852
+ }, f1 = { class: "channel-rail-board" }, p1 = {
52816
52853
  key: 2,
52817
52854
  class: "progress-board is-docked"
52818
- }, 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 = {
52819
52856
  __name: "ChannelWorkspace",
52820
52857
  setup(e) {
52821
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 = [{
@@ -52837,14 +52874,14 @@ var hU = /*#__PURE__*/ XH({
52837
52874
  label: "宽",
52838
52875
  width: 1240
52839
52876
  }
52840
- }, 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(() => {
52841
52878
  let e = document.createElement("template");
52842
52879
  return e.innerHTML = o.value?.rendered_brief || "", e.content.textContent.replace(/\s+/g, " ").trim();
52843
- }), 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(() => ({
52844
52881
  "--channel-reading-width": `${y[x.value].width}px`,
52845
52882
  "--channel-rail-width": `${C.value}px`,
52846
52883
  "--channel-topbar-height": `${ie.value}px`,
52847
- "--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)`
52848
52885
  })), le = Object.entries(y).map(([e, t]) => ({
52849
52886
  value: e,
52850
52887
  label: t.label
@@ -52927,12 +52964,12 @@ var hU = /*#__PURE__*/ XH({
52927
52964
  }
52928
52965
  function Te() {
52929
52966
  try {
52930
- let e = JSON.parse(localStorage.getItem(p1)) || {};
52967
+ let e = JSON.parse(localStorage.getItem(g1)) || {};
52931
52968
  return {
52932
52969
  reading: Object.hasOwn(y, e.reading) ? e.reading : "default",
52933
52970
  effects: e.effects === "reduced" ? "reduced" : "full",
52934
- rail: Number.isFinite(e.rail) ? Math.min(h1, Math.max(m1, e.rail)) : g1,
52935
- 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(),
52936
52973
  collapsed: e.collapsed === !0,
52937
52974
  brief_collapsed: e.brief_collapsed === !0,
52938
52975
  rail_collapsed: e.rail_collapsed === !0
@@ -52941,7 +52978,7 @@ var hU = /*#__PURE__*/ XH({
52941
52978
  return {
52942
52979
  reading: "default",
52943
52980
  effects: "full",
52944
- rail: g1,
52981
+ rail: y1,
52945
52982
  nav: Ee(),
52946
52983
  collapsed: !1,
52947
52984
  brief_collapsed: !1,
@@ -52950,11 +52987,11 @@ var hU = /*#__PURE__*/ XH({
52950
52987
  }
52951
52988
  }
52952
52989
  function Ee() {
52953
- 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;
52954
52991
  }
52955
52992
  function De() {
52956
52993
  try {
52957
- localStorage.setItem(p1, JSON.stringify({
52994
+ localStorage.setItem(g1, JSON.stringify({
52958
52995
  reading: x.value,
52959
52996
  effects: S.value,
52960
52997
  rail: C.value,
@@ -52985,19 +53022,19 @@ var hU = /*#__PURE__*/ XH({
52985
53022
  }, e.currentTarget.setPointerCapture(e.pointerId));
52986
53023
  }
52987
53024
  function Ne(e) {
52988
- 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))));
52989
53026
  }
52990
53027
  function Pe(e) {
52991
53028
  j.value?.pointer === e.pointerId && (j.value = null, e.currentTarget.hasPointerCapture(e.pointerId) && e.currentTarget.releasePointerCapture(e.pointerId), De());
52992
53029
  }
52993
53030
  function Fe(e) {
52994
53031
  let t = {
52995
- ArrowLeft: C.value + _1,
52996
- ArrowRight: C.value - _1,
52997
- Home: m1,
52998
- End: h1
53032
+ ArrowLeft: C.value + b1,
53033
+ ArrowRight: C.value - b1,
53034
+ Home: _1,
53035
+ End: v1
52999
53036
  };
53000
- 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());
53001
53038
  }
53002
53039
  function Ie(e) {
53003
53040
  e.button === 0 && (e.preventDefault(), e.currentTarget.focus(), ae.value = {
@@ -53007,19 +53044,19 @@ var hU = /*#__PURE__*/ XH({
53007
53044
  }, e.currentTarget.setPointerCapture(e.pointerId));
53008
53045
  }
53009
53046
  function Le(e) {
53010
- 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))));
53011
53048
  }
53012
53049
  function Re(e) {
53013
53050
  ae.value?.pointer === e.pointerId && (ae.value = null, e.currentTarget.hasPointerCapture(e.pointerId) && e.currentTarget.releasePointerCapture(e.pointerId), De());
53014
53051
  }
53015
53052
  function ze(e) {
53016
53053
  let t = {
53017
- ArrowLeft: se.value - x1,
53018
- ArrowRight: se.value + x1,
53019
- Home: v1,
53054
+ ArrowLeft: se.value - w1,
53055
+ ArrowRight: se.value + w1,
53056
+ Home: x1,
53020
53057
  End: oe.value
53021
53058
  };
53022
- 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());
53023
53060
  }
53024
53061
  return (e, r) => {
53025
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;
@@ -53031,10 +53068,10 @@ var hU = /*#__PURE__*/ XH({
53031
53068
  }]),
53032
53069
  style: fe(ce.value)
53033
53070
  }, [
53034
- K("aside", D$, [
53071
+ K("aside", A$, [
53035
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),
53036
- K("div", O$, [
53037
- q(gZ, {
53073
+ K("div", j$, [
53074
+ q(yZ, {
53038
53075
  onSelect: ye,
53039
53076
  onManage: _e,
53040
53077
  onCreate: xe,
@@ -53043,12 +53080,12 @@ var hU = /*#__PURE__*/ XH({
53043
53080
  onDeleteFolder: we,
53044
53081
  onArchives: ve
53045
53082
  }),
53046
- K("div", k$, [K("button", {
53083
+ K("div", M$, [K("button", {
53047
53084
  type: "button",
53048
53085
  class: "channel-section-toggle",
53049
53086
  "aria-expanded": f.value,
53050
53087
  onClick: r[0] ||= (e) => f.value = !f.value
53051
- }, [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$)]),
53052
53089
  f.value ? (U(), G(b, {
53053
53090
  key: 0,
53054
53091
  items: he.value,
@@ -53064,7 +53101,7 @@ var hU = /*#__PURE__*/ XH({
53064
53101
  }
53065
53102
  }, null, 8, ["items"])) : Y("", !0)
53066
53103
  ]),
53067
- K("footer", j$, [K("button", {
53104
+ K("footer", P$, [K("button", {
53068
53105
  type: "button",
53069
53106
  class: "channel-self-button",
53070
53107
  "aria-label": `账号与设置:${I(n).display_name(I(_))}${ge.value ? "," + ge.value : ""}`,
@@ -53080,10 +53117,10 @@ var hU = /*#__PURE__*/ XH({
53080
53117
  "text",
53081
53118
  "alt",
53082
53119
  "class"
53083
- ]), 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", {
53084
53121
  class: M({ connected: I(t).connected }),
53085
53122
  title: I(t).connected ? "网站已连接" : "网站未连接"
53086
- }, 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: "设置" }, {
53087
53124
  default: L(() => [q(T, {
53088
53125
  icon: "i-lucide-settings-2",
53089
53126
  color: "neutral",
@@ -53104,7 +53141,7 @@ var hU = /*#__PURE__*/ XH({
53104
53141
  "aria-label": "调整房间栏宽度",
53105
53142
  "aria-orientation": "vertical",
53106
53143
  "aria-controls": "channel-sidebar",
53107
- "aria-valuemin": v1,
53144
+ "aria-valuemin": x1,
53108
53145
  "aria-valuemax": oe.value,
53109
53146
  "aria-valuenow": se.value,
53110
53147
  "aria-valuetext": `${se.value} 像素`,
@@ -53115,13 +53152,13 @@ var hU = /*#__PURE__*/ XH({
53115
53152
  onPointercancel: Re,
53116
53153
  onLostpointercapture: Re,
53117
53154
  onKeydown: ze
53118
- }, null, 40, F$)),
53119
- K("main", I$, [K("div", {
53155
+ }, null, 40, R$)),
53156
+ K("main", z$, [K("div", {
53120
53157
  ref_key: "topbar",
53121
53158
  ref: re,
53122
53159
  class: M(["channel-topbar", { "is-overlay": o.value && I(t).tab === "discussion" }])
53123
53160
  }, [
53124
- K("header", L$, [
53161
+ K("header", B$, [
53125
53162
  q(O, { text: E.value ? "展开房间栏" : "收起房间栏" }, {
53126
53163
  default: L(() => [q(T, {
53127
53164
  icon: "i-lucide-panel-left",
@@ -53146,8 +53183,8 @@ var hU = /*#__PURE__*/ XH({
53146
53183
  "aria-expanded": d.value,
53147
53184
  onClick: r[4] ||= (e) => d.value = !0
53148
53185
  }, null, 8, ["aria-expanded"]),
53149
- K("span", R$, [q(y, { name: "i-lucide-hash" })]),
53150
- 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, {
53151
53188
  key: 0,
53152
53189
  color: "neutral",
53153
53190
  variant: "subtle",
@@ -53156,12 +53193,12 @@ var hU = /*#__PURE__*/ XH({
53156
53193
  default: L(() => [...r[26] ||= [J("已存档", -1)]]),
53157
53194
  _: 1
53158
53195
  })) : Y("", !0)]),
53159
- o.value ? (U(), W("span", H$, [
53196
+ o.value ? (U(), W("span", G$, [
53160
53197
  J(P(me.value.find((e) => e.value === I(t).tab)?.label), 1),
53161
53198
  r[27] ||= K("span", null, "·", -1),
53162
53199
  J(P(o.value.message_count) + " 条记录", 1)
53163
53200
  ])) : Y("", !0),
53164
- K("div", U$, [
53201
+ K("div", K$, [
53165
53202
  I(t).tab === "discussion" ? (U(), W("form", {
53166
53203
  key: 0,
53167
53204
  class: "channel-search",
@@ -53219,7 +53256,7 @@ var hU = /*#__PURE__*/ XH({
53219
53256
  ])]),
53220
53257
  _: 1
53221
53258
  })) : Y("", !0),
53222
- 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)
53223
53260
  ]),
53224
53261
  q(O, { text: te.value }, {
53225
53262
  default: L(() => [q(T, {
@@ -53240,12 +53277,12 @@ var hU = /*#__PURE__*/ XH({
53240
53277
  _: 1
53241
53278
  }, 8, ["text"])
53242
53279
  ]),
53243
- I(t).launch.recoveries.length ? (U(), W("section", W$, [
53280
+ I(t).launch.recoveries.length ? (U(), W("section", q$, [
53244
53281
  r[28] ||= K("h2", null, "继续未完成的请求", -1),
53245
53282
  (U(!0), W(H, null, B(I(t).launch.recoveries, (e) => (U(), W("article", { key: e.id }, [
53246
53283
  K("strong", null, P(e.title), 1),
53247
- K("p", G$, P(e.error || "启动结果尚未确认;原请求已保存在此浏览器中。"), 1),
53248
- K("div", K$, [
53284
+ K("p", J$, P(e.error || "启动结果尚未确认;原请求已保存在此浏览器中。"), 1),
53285
+ K("div", Y$, [
53249
53286
  q(T, {
53250
53287
  label: e.direct ? "继续创建房间" : "继续本次启动",
53251
53288
  size: "sm",
@@ -53278,7 +53315,7 @@ var hU = /*#__PURE__*/ XH({
53278
53315
  ]))), 128)),
53279
53316
  r[29] ||= K("small", null, "移除待办不会删除房间或停止讨论。", -1)
53280
53317
  ])) : Y("", !0),
53281
- o.value ? (U(), W("div", q$, [q(de, {
53318
+ o.value ? (U(), W("div", X$, [q(de, {
53282
53319
  modelValue: ue.value,
53283
53320
  "onUpdate:modelValue": r[9] ||= (e) => ue.value = e,
53284
53321
  items: me.value,
@@ -53293,7 +53330,7 @@ var hU = /*#__PURE__*/ XH({
53293
53330
  key: 2,
53294
53331
  class: M(["channel-host-brief", { "is-collapsed": D.value }]),
53295
53332
  "aria-label": "主持简报"
53296
- }, [K("div", J$, [K("div", Y$, [K("button", {
53333
+ }, [K("div", Z$, [K("div", Q$, [K("button", {
53297
53334
  type: "button",
53298
53335
  class: "channel-brief-toggle",
53299
53336
  "aria-label": D.value ? "展开主持简报" : "收起主持简报",
@@ -53303,8 +53340,8 @@ var hU = /*#__PURE__*/ XH({
53303
53340
  }, [
53304
53341
  q(y, { name: D.value ? "i-lucide-chevron-right" : "i-lucide-chevron-down" }, null, 8, ["name"]),
53305
53342
  K("strong", null, "主持简报" + P(D.value ? ":" : ""), 1),
53306
- D.value ? (U(), W("span", Z$, P(ne.value), 1)) : Y("", !0)
53307
- ], 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, {
53308
53345
  key: 0,
53309
53346
  label: "更新简报",
53310
53347
  color: "neutral",
@@ -53312,19 +53349,19 @@ var hU = /*#__PURE__*/ XH({
53312
53349
  size: "xs",
53313
53350
  class: "channel-brief-update",
53314
53351
  onClick: r[10] ||= (e) => I(i)("tab", "context")
53315
- }))]), vr(K("div", Q$, [K("div", {
53352
+ }))]), vr(K("div", t1, [K("div", {
53316
53353
  class: "channel-brief-text markdown-body",
53317
53354
  innerHTML: o.value.rendered_brief
53318
- }, 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)
53319
53356
  ], 2), o.value ? (U(), W("div", {
53320
53357
  key: 0,
53321
53358
  class: M(["channel-body", { "channel-body-discussion": I(t).tab === "discussion" }])
53322
- }, [K("div", n1, [
53323
- vr(q(uK, {
53359
+ }, [K("div", a1, [
53360
+ vr(q(pK, {
53324
53361
  onDetail: be,
53325
53362
  onEdit: r[11] ||= (e) => s.value = "edit"
53326
53363
  }, null, 512), [[Vc, I(t).tab === "discussion"]]),
53327
- 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, {
53328
53365
  color: "neutral",
53329
53366
  variant: "outline"
53330
53367
  }, {
@@ -53365,7 +53402,7 @@ var hU = /*#__PURE__*/ XH({
53365
53402
  }, null, 8, ["modelValue"])]),
53366
53403
  _: 1
53367
53404
  }),
53368
- 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, {
53369
53406
  type: "submit",
53370
53407
  color: "neutral",
53371
53408
  icon: "i-lucide-check",
@@ -53374,12 +53411,12 @@ var hU = /*#__PURE__*/ XH({
53374
53411
  loading: I(a) === "save_context"
53375
53412
  }, null, 8, ["loading"])])
53376
53413
  ], 32)])) : Y("", !0),
53377
- I(t).tab === "topic" || I(t).tab === "access" ? (U(), G(Jq, {
53414
+ I(t).tab === "topic" || I(t).tab === "access" ? (U(), G(Zq, {
53378
53415
  key: I(t).tab,
53379
53416
  onOpen: r[15] ||= (e) => s.value = e,
53380
53417
  onDetail: be
53381
53418
  })) : Y("", !0)
53382
- ])], 2)) : (U(), W("div", o1, [
53419
+ ])], 2)) : (U(), W("div", l1, [
53383
53420
  q(y, { name: "i-lucide-hash" }),
53384
53421
  r[31] ||= K("h2", null, "新建一个协作房间", -1),
53385
53422
  r[32] ||= K("p", null, "邀请 AI 一起协作,随时 @ 提问;需要时开启讨论,保留所有人的观点。", -1),
@@ -53398,8 +53435,8 @@ var hU = /*#__PURE__*/ XH({
53398
53435
  "aria-label": "调整右侧栏宽度",
53399
53436
  "aria-orientation": "vertical",
53400
53437
  "aria-controls": "channel-member-rail",
53401
- "aria-valuemin": m1,
53402
- "aria-valuemax": h1,
53438
+ "aria-valuemin": _1,
53439
+ "aria-valuemax": v1,
53403
53440
  "aria-valuenow": C.value,
53404
53441
  "aria-valuetext": `${C.value} 像素`,
53405
53442
  title: "拖动调整右侧栏宽度,也可使用左右方向键",
@@ -53409,11 +53446,11 @@ var hU = /*#__PURE__*/ XH({
53409
53446
  onPointercancel: Pe,
53410
53447
  onLostpointercapture: Pe,
53411
53448
  onKeydown: Fe
53412
- }, null, 40, s1)) : Y("", !0),
53413
- 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, {
53414
53451
  key: 1,
53415
53452
  docked: ""
53416
- })) : (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),
53417
53454
  q(De, {
53418
53455
  open: d.value,
53419
53456
  "onUpdate:open": r[18] ||= (e) => d.value = e,
@@ -53425,7 +53462,7 @@ var hU = /*#__PURE__*/ XH({
53425
53462
  body: "channel-drawer-body"
53426
53463
  }
53427
53464
  }, {
53428
- body: L(() => [q(gZ, {
53465
+ body: L(() => [q(yZ, {
53429
53466
  onSelect: ye,
53430
53467
  onManage: _e,
53431
53468
  onCreate: xe,
@@ -53456,7 +53493,7 @@ var hU = /*#__PURE__*/ XH({
53456
53493
  }
53457
53494
  }, {
53458
53495
  body: L(() => [o.value ? (U(), W(H, { key: 0 }, [
53459
- 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)]),
53460
53497
  (U(), W(H, null, B([
53461
53498
  {
53462
53499
  key: "goal",
@@ -53483,7 +53520,7 @@ var hU = /*#__PURE__*/ XH({
53483
53520
  class: "info-section"
53484
53521
  }, [K("h3", null, P(e.label), 1), K("p", null, P(o.value[e.key] || "尚未填写"), 1)])), 64)),
53485
53522
  q(ke),
53486
- 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", {
53487
53524
  key: e.name,
53488
53525
  class: "expert-row"
53489
53526
  }, [
@@ -53516,7 +53553,7 @@ var hU = /*#__PURE__*/ XH({
53516
53553
  ], 64)) : Y("", !0)]),
53517
53554
  _: 1
53518
53555
  }, 8, ["open"]),
53519
- q(KX, {
53556
+ q(YX, {
53520
53557
  modelValue: s.value,
53521
53558
  "onUpdate:modelValue": r[21] ||= (e) => s.value = e,
53522
53559
  "reading-width": x.value,
@@ -53540,7 +53577,7 @@ var hU = /*#__PURE__*/ XH({
53540
53577
  ], 6);
53541
53578
  };
53542
53579
  }
53543
- }, E1 = {
53580
+ }, k1 = {
53544
53581
  __name: "App",
53545
53582
  setup(e) {
53546
53583
  return br("discussion", OV()), (e, t) => {
@@ -53551,7 +53588,7 @@ var hU = /*#__PURE__*/ XH({
53551
53588
  toaster: null
53552
53589
  }, {
53553
53590
  default: L(() => [q(I(Qz), { "reduced-motion": "user" }, {
53554
- default: L(() => [q(T1)]),
53591
+ default: L(() => [q(O1)]),
53555
53592
  _: 1
53556
53593
  })]),
53557
53594
  _: 1
@@ -53561,8 +53598,8 @@ var hU = /*#__PURE__*/ XH({
53561
53598
  };
53562
53599
  //#endregion
53563
53600
  //#region frontend/main.js
53564
- function D1() {
53565
- bu(E1).use(ph).mount("#modern-root");
53601
+ function A1() {
53602
+ bu(k1).use(ph).mount("#modern-root");
53566
53603
  }
53567
- document.readyState === "loading" ? document.addEventListener("DOMContentLoaded", D1) : D1();
53604
+ document.readyState === "loading" ? document.addEventListener("DOMContentLoaded", A1) : A1();
53568
53605
  //#endregion