ai_co_discuss 0.3.0 → 0.3.2

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
@@ -47372,7 +47372,7 @@ var mU = /*#__PURE__*/ YH({
47372
47372
  read: "只读",
47373
47373
  write: "可写",
47374
47374
  auto: "自动",
47375
- full: "完全放开"
47375
+ full: "全放开"
47376
47376
  }, Oq = {
47377
47377
  claude: {
47378
47378
  read: "只放行网站命令与草稿,不改项目文件、不跑其他命令",
@@ -47655,7 +47655,9 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
47655
47655
  });
47656
47656
  function Ne() {
47657
47657
  if (Ee.value) return a.save_expert_preset(n.name);
47658
- Oe.value = `${a.platform_of(n.name)}-`, De.value = !0;
47658
+ let e = new Set(a.expert_presets().map((e) => e.name)), t = a.platform_of(n.name), r = 1;
47659
+ for (; e.has(a.preset_identity(n.name, `${t}-${r}`));) r += 1;
47660
+ Oe.value = `${t}-${r}`, De.value = !0;
47659
47661
  }
47660
47662
  async function Pe() {
47661
47663
  Ae.value || (await a.save_expert_preset(n.name, ke.value), De.value = !1);
@@ -47866,7 +47868,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
47866
47868
  inert: !f.value,
47867
47869
  "aria-hidden": !f.value
47868
47870
  }, [K("div", cJ, [
47869
- K("div", lJ, [K("strong", null, [J(P(I(a).member_label(e.name)), 1), K("span", null, "设置" + P(se.value ? " · 不访问项目" : ""), 1)]), K("span", uJ, [
47871
+ K("div", lJ, [K("strong", null, [J(P(I(a).member_label(e.name)), 1), n[19] ||= K("span", null, "设置", -1)]), K("span", uJ, [
47870
47872
  K("button", {
47871
47873
  type: "button",
47872
47874
  class: j(["expert-card-back-tool", { "is-set": Se.value }]),
@@ -47908,7 +47910,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
47908
47910
  role: y.value.state === "error" ? "alert" : "status",
47909
47911
  class: "expert-card-check"
47910
47912
  }, P(y.value.message), 9, pJ)) : Y("", !0),
47911
- g.value && m.value.length > 1 ? (U(), W("div", mJ, [n[19] ||= K("span", null, "接入", -1), q(S, {
47913
+ g.value && m.value.length > 1 ? (U(), W("div", mJ, [n[20] ||= K("span", null, "接入", -1), q(S, {
47912
47914
  "model-value": p.value.adapter || "",
47913
47915
  items: m.value,
47914
47916
  placeholder: "选择 API / App / CLI",
@@ -47937,7 +47939,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
47937
47939
  "aria-label",
47938
47940
  "onUpdate:modelValue"
47939
47941
  ])]))), 128)),
47940
- k.value ? (U(), W("div", hJ, [n[20] ||= K("span", null, "项目", -1), K("div", {
47942
+ k.value ? (U(), W("div", hJ, [n[21] ||= K("span", null, "项目", -1), K("div", {
47941
47943
  class: "expert-card-modes",
47942
47944
  role: "radiogroup",
47943
47945
  "aria-label": `${e.name} 的项目文件权限`
@@ -47953,7 +47955,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
47953
47955
  key: 3,
47954
47956
  name: e.name
47955
47957
  }, null, 8, ["name"])) : te.value && !ge.value.length ? (U(), W(H, { key: 4 }, [
47956
- K("div", vJ, [n[21] ||= K("span", null, "模型", -1), q(S, {
47958
+ K("div", vJ, [n[22] ||= K("span", null, "模型", -1), q(S, {
47957
47959
  "model-value": p.value.model || "__default__",
47958
47960
  items: O.value.items,
47959
47961
  title: O.value.source,
@@ -48020,7 +48022,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48020
48022
  class: "expert-card-flip is-done",
48021
48023
  "aria-label": `保存并返回 ${e.name} 角色卡片`,
48022
48024
  onClick: n[10] ||= (e) => be(!1)
48023
- }, [q(d, { name: "i-lucide-check" }), n[22] ||= J("完成", -1)], 8, OJ)
48025
+ }, [q(d, { name: "i-lucide-check" }), n[23] ||= J("完成", -1)], 8, OJ)
48024
48026
  ])], 8, sJ)) : Y("", !0)]),
48025
48027
  _: 1
48026
48028
  }, 8, ["style"]),
@@ -48107,7 +48109,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48107
48109
  ], 42, Rq);
48108
48110
  };
48109
48111
  }
48110
- }, [["__scopeId", "data-v-ba27f504"]]), NJ = {
48112
+ }, [["__scopeId", "data-v-765548c6"]]), NJ = {
48111
48113
  key: 0,
48112
48114
  class: "project-field"
48113
48115
  }, PJ = ["disabled"], FJ = {
@@ -48467,6 +48469,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48467
48469
  "disabled",
48468
48470
  "title",
48469
48471
  "aria-label",
48472
+ "aria-pressed",
48470
48473
  "onClick"
48471
48474
  ], ZJ = /*#__PURE__*/ YH({
48472
48475
  __name: "RosterAdd",
@@ -48499,9 +48502,11 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48499
48502
  "aria-hidden": "true"
48500
48503
  }, null, -1), n[1] ||= K("span", { class: "roster-add-label" }, "预设", -1)], 64)) : Y("", !0), K("button", {
48501
48504
  type: "button",
48505
+ class: j({ "is-selected": e.selected }),
48502
48506
  disabled: e.disabled,
48503
48507
  title: e.title,
48504
48508
  "aria-label": e.aria_label,
48509
+ "aria-pressed": e.selected === void 0 ? void 0 : e.selected,
48505
48510
  onClick: (t) => r("add", e.value)
48506
48511
  }, [
48507
48512
  q(a, {
@@ -48517,18 +48522,18 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48517
48522
  "class"
48518
48523
  ]),
48519
48524
  J(P(e.name), 1),
48520
- q(o, { name: "i-lucide-plus" })
48521
- ], 8, XJ)], 64))), 128))], 8, YJ);
48525
+ q(o, { name: e.selected ? "i-lucide-check" : "i-lucide-plus" }, null, 8, ["name"])
48526
+ ], 10, XJ)], 64))), 128))], 8, YJ);
48522
48527
  };
48523
48528
  }
48524
- }, [["__scopeId", "data-v-480b43ee"]]), QJ = { class: "scheduler-settings" }, $J = { class: "scheduler-title" }, eY = { class: "scheduler-description" }, tY = {
48529
+ }, [["__scopeId", "data-v-b682fa87"]]), QJ = { class: "scheduler-settings" }, $J = { class: "scheduler-title" }, eY = { class: "scheduler-description" }, tY = { class: "scheduler-cards" }, nY = {
48525
48530
  key: 0,
48526
- class: "scheduler-cards"
48527
- }, nY = { class: "scheduler-identity" }, rY = { class: "scheduler-facts" }, iY = ["title"], aY = { class: "scheduler-flip" }, oY = { class: "scheduler-tools" }, sY = ["aria-label"], cY = { class: "scheduler-back" }, lY = { class: "scheduler-heading" }, uY = { class: "scheduler-field" }, dY = { class: "scheduler-field" }, fY = {
48531
+ class: "scheduler-slot"
48532
+ }, 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 = {
48528
48533
  key: 0,
48529
48534
  role: "alert",
48530
48535
  class: "scheduler-error"
48531
- }, pY = ["role"], mY = { class: "scheduler-flip-actions" }, hY = "••••••••••••", gY = /*#__PURE__*/ YH({
48536
+ }, mY = ["role"], hY = { class: "scheduler-flip-actions" }, gY = "••••••••••••", _Y = /*#__PURE__*/ YH({
48532
48537
  __name: "SchedulerSettings",
48533
48538
  props: {
48534
48539
  free: {
@@ -48553,15 +48558,19 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48553
48558
  icon: "/icons/openai.svg",
48554
48559
  style: "codex"
48555
48560
  }
48556
- }, c = Z(() => !!i.value.enabled && !t.blocker), l = /* @__PURE__ */ F(null), u = Z(() => a.value.map(({ value: e, label: n }) => ({
48557
- value: e,
48558
- name: n,
48559
- initials: n.slice(0, 2),
48560
- ...s[e],
48561
- disabled: !!t.blocker || c.value,
48562
- title: c.value ? "只能添加一个决策模型,先移出当前的" : n,
48563
- aria_label: `添加决策模型 ${n}`
48564
- }))), d = /* @__PURE__ */ F(""), f = /* @__PURE__ */ F(!1), p = /* @__PURE__ */ F(!1), m = /* @__PURE__ */ F(""), h = /* @__PURE__ */ F(!1), g = null;
48561
+ }, c = Z(() => !!i.value.enabled && !t.blocker), l = /* @__PURE__ */ F(null), u = Z(() => a.value.map(({ value: e, label: n }) => {
48562
+ let r = c.value && i.value.provider === e;
48563
+ return {
48564
+ value: e,
48565
+ name: n,
48566
+ initials: n.slice(0, 2),
48567
+ ...s[e],
48568
+ disabled: !!t.blocker,
48569
+ selected: r,
48570
+ title: r ? "当前决策模型" : c.value ? `替换为 ${n}` : n,
48571
+ aria_label: c.value && !r ? `替换决策模型为 ${n}` : `添加决策模型 ${n}`
48572
+ };
48573
+ })), d = /* @__PURE__ */ F(""), f = /* @__PURE__ */ F(!1), p = /* @__PURE__ */ F(!1), m = /* @__PURE__ */ F(""), h = /* @__PURE__ */ F(!1), g = null;
48565
48574
  function _() {
48566
48575
  let { model: e, api_key_ref: t } = i.value;
48567
48576
  g = {
@@ -48574,7 +48583,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48574
48583
  g = null, d.value = "", m.value = "", h.value = !1;
48575
48584
  }
48576
48585
  function y(e) {
48577
- r.write_scheduler("provider", e), r.write_scheduler("enabled", !0);
48586
+ c.value && i.value.provider === e || (h.value = !1, g = null, r.write_scheduler("provider", e), r.write_scheduler("enabled", !0));
48578
48587
  }
48579
48588
  function b() {
48580
48589
  r.write_scheduler("enabled", !1), Qn(() => l.value?.focus_first());
@@ -48639,7 +48648,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48639
48648
  }
48640
48649
  }
48641
48650
  return (t, a) => {
48642
- let g = WV, E = pA, D = sA, O = MA, te = oq, ne = YV;
48651
+ let g = WV, E = sA, D = pA, O = MA, te = oq, ne = YV;
48643
48652
  return U(), W("div", QJ, [
48644
48653
  K("div", null, [K("p", $J, [
48645
48654
  a[5] ||= J("智能调度", -1),
@@ -48660,8 +48669,11 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48660
48669
  items: u.value,
48661
48670
  onAdd: y
48662
48671
  }, null, 8, ["items"]),
48663
- c.value ? (U(), W("div", tY, [K("div", { class: j(["scheduler-card", { "is-editing": h.value }]) }, [h.value ? (U(), W(H, { key: 1 }, [K("div", cY, [
48664
- K("div", lY, [K("strong", null, [J(P(x.value), 1), a[11] ||= K("span", null, "设置", -1)]), q(O, {
48672
+ K("div", tY, [c.value ? (U(), W("div", {
48673
+ key: 1,
48674
+ class: j(["scheduler-card", { "is-editing": h.value }])
48675
+ }, [h.value ? (U(), W(H, { key: 1 }, [K("div", lY, [
48676
+ K("div", uY, [K("strong", null, [J(P(x.value), 1), a[13] ||= K("span", null, "设置", -1)]), q(O, {
48665
48677
  icon: "i-lucide-zap",
48666
48678
  "aria-label": "检查智能调度配置",
48667
48679
  title: "检查配置:向决策模型发送一道极短的是非题,核对供应商、模型与密钥",
@@ -48676,7 +48688,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48676
48688
  "loading",
48677
48689
  "disabled"
48678
48690
  ])]),
48679
- K("div", uY, [a[12] ||= K("span", null, "模型", -1), q(te, {
48691
+ K("div", dY, [a[14] ||= K("span", null, "模型", -1), q(te, {
48680
48692
  mode: "autocomplete",
48681
48693
  "ignore-filter": "",
48682
48694
  "model-value": i.value.model || "",
@@ -48688,7 +48700,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48688
48700
  class: "w-full",
48689
48701
  "onUpdate:modelValue": a[0] ||= (e) => I(r).write_scheduler("model", e)
48690
48702
  }, null, 8, ["model-value", "items"])]),
48691
- K("div", dY, [a[13] ||= K("span", null, "密钥", -1), q(ne, {
48703
+ K("div", fY, [a[15] ||= K("span", null, "密钥", -1), q(ne, {
48692
48704
  modelValue: d.value,
48693
48705
  "onUpdate:modelValue": a[2] ||= (e) => d.value = e,
48694
48706
  type: "text",
@@ -48696,7 +48708,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48696
48708
  spellcheck: "false",
48697
48709
  "data-1p-ignore": "",
48698
48710
  "data-lpignore": "true",
48699
- placeholder: i.value.api_key_ref ? hY : "填写所选供应商的 API Key",
48711
+ placeholder: i.value.api_key_ref ? gY : "填写所选供应商的 API Key",
48700
48712
  title: i.value.api_key_ref && !d.value ? "已保存;本机不回传密钥,输入新 Key 可更换" : void 0,
48701
48713
  "aria-label": "智能调度 API Key",
48702
48714
  size: "xs",
@@ -48731,14 +48743,14 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48731
48743
  "loading",
48732
48744
  "ui"
48733
48745
  ])]),
48734
- m.value ? (U(), W("p", fY, P(m.value), 1)) : Y("", !0),
48746
+ m.value ? (U(), W("p", pY, P(m.value), 1)) : Y("", !0),
48735
48747
  C.value.message ? (U(), W("p", {
48736
48748
  key: 1,
48737
48749
  role: C.value.state === "error" ? "alert" : "status",
48738
48750
  class: j(C.value.state === "error" ? "scheduler-error" : "scheduler-ok")
48739
- }, P(C.value.message), 11, pY)) : Y("", !0),
48740
- a[14] ||= K("p", { class: "scheduler-note" }, "决策模型只做选择、不生成文本,只按输入计费。判断时会把房间标题和最近 10~20 条消息发给所选供应商;密钥只存本机。", -1)
48741
- ]), K("span", mY, [K("button", {
48751
+ }, P(C.value.message), 11, mY)) : Y("", !0),
48752
+ a[16] ||= K("p", { class: "scheduler-note" }, "决策模型只做选择、不生成文本,只按输入计费。判断时会把房间标题和最近 10~20 条消息发给所选供应商;密钥只存本机。", -1)
48753
+ ]), K("span", hY, [K("button", {
48742
48754
  type: "button",
48743
48755
  class: "scheduler-flip is-cancel",
48744
48756
  "aria-label": "放弃决策模型的修改",
@@ -48748,14 +48760,14 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48748
48760
  class: "scheduler-flip is-done",
48749
48761
  "aria-label": "完成并返回决策模型卡片",
48750
48762
  onClick: a[3] ||= (e) => h.value = !1
48751
- }, [q(D, { name: "i-lucide-check" }), a[15] ||= J("完成", -1)])])], 64)) : (U(), W(H, { key: 0 }, [K("button", {
48763
+ }, [q(E, { name: "i-lucide-check" }), a[17] ||= J("完成", -1)])])], 64)) : (U(), W(H, { key: 0 }, [K("button", {
48752
48764
  type: "button",
48753
48765
  class: "scheduler-open",
48754
48766
  "aria-label": "设置智能调度的决策模型",
48755
48767
  title: "点击设置",
48756
48768
  onClick: _
48757
48769
  }, [
48758
- K("span", nY, [q(E, {
48770
+ K("span", rY, [q(D, {
48759
48771
  src: s[i.value.provider]?.icon,
48760
48772
  text: x.value.slice(0, 2),
48761
48773
  alt: x.value,
@@ -48767,40 +48779,44 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48767
48779
  "alt",
48768
48780
  "class"
48769
48781
  ]), K("strong", null, P(x.value), 1)]),
48770
- K("dl", rY, [K("div", null, [a[8] ||= K("dt", null, "状态", -1), K("dd", { class: j(`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, iY)])]),
48771
- K("span", aY, [q(D, { name: "i-lucide-settings-2" }), a[10] ||= J("设置", -1)])
48772
- ]), K("span", oY, [K("button", {
48782
+ K("dl", iY, [K("div", null, [a[10] ||= K("dt", null, "状态", -1), K("dd", { class: j(`is-${S.value.tone}`) }, [a[9] ||= K("i", { "aria-hidden": "true" }, null, -1), J(P(S.value.text), 1)], 2)]), K("div", null, [a[11] ||= K("dt", null, "模型", -1), K("dd", { title: i.value.model }, P(i.value.model || "未选择"), 9, aY)])]),
48783
+ K("span", oY, [q(E, { name: "i-lucide-settings-2" }), a[12] ||= J("设置", -1)])
48784
+ ]), K("span", sY, [K("button", {
48773
48785
  type: "button",
48774
48786
  "aria-label": `移出决策模型 ${x.value}`,
48775
48787
  title: "移出",
48776
48788
  onClick: b
48777
- }, [q(D, { name: "i-lucide-x" })], 8, sY)])], 64))], 2)])) : Y("", !0)
48789
+ }, [q(E, { name: "i-lucide-x" })], 8, cY)])], 64))], 2)) : (U(), W("div", nY, [
48790
+ q(E, { name: "i-lucide-zap" }),
48791
+ a[7] ||= K("strong", null, "决策模型槽位", -1),
48792
+ a[8] ||= K("span", null, "只能放一个;从上方添加,再点其他会替换", -1)
48793
+ ]))])
48778
48794
  ]);
48779
48795
  };
48780
48796
  }
48781
- }, [["__scopeId", "data-v-5a7b8cc6"]]), _Y = { class: "create-discussion" }, vY = {
48797
+ }, [["__scopeId", "data-v-3324f536"]]), vY = { class: "create-discussion" }, yY = {
48782
48798
  key: 0,
48783
48799
  class: "create-connect",
48784
48800
  role: "status"
48785
- }, yY = { class: "create-connect-command" }, bY = {
48801
+ }, bY = { class: "create-connect-command" }, xY = {
48786
48802
  key: 1,
48787
48803
  class: "channel-create-location"
48788
- }, xY = { class: "create-section" }, SY = { class: "create-section" }, CY = {
48804
+ }, SY = { class: "create-section" }, CY = { class: "create-section" }, wY = {
48789
48805
  key: 0,
48790
48806
  class: "create-experts",
48791
48807
  role: "group",
48792
48808
  "aria-label": "参与的 AI"
48793
- }, wY = {
48809
+ }, TY = {
48794
48810
  key: 1,
48795
48811
  class: "create-experts-empty"
48796
- }, TY = {
48812
+ }, EY = {
48797
48813
  key: 2,
48798
48814
  class: "fine-print create-hint create-host-hint"
48799
- }, EY = { class: "create-section" }, DY = { class: "create-advanced" }, OY = { class: "create-footer" }, kY = {
48815
+ }, DY = { class: "create-section" }, OY = { class: "create-advanced" }, kY = { class: "create-footer" }, AY = {
48800
48816
  key: 0,
48801
48817
  role: "alert",
48802
48818
  class: "create-error"
48803
- }, AY = { class: "create-footer-row" }, jY = ["title"], MY = "new-expert-modes", NY = 3e3, PY = "preset:", FY = /*#__PURE__*/ YH({
48819
+ }, jY = { class: "create-footer-row" }, MY = ["title"], NY = "new-expert-modes", PY = 3e3, FY = "preset:", IY = /*#__PURE__*/ YH({
48804
48820
  __name: "CreateDiscussion",
48805
48821
  props: { targetFolder: {
48806
48822
  type: Object,
@@ -48808,7 +48824,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48808
48824
  } },
48809
48825
  emits: ["submit", "cancel"],
48810
48826
  setup(e, { emit: t }) {
48811
- 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]));
48827
+ 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[NY] || {}), p = /* @__PURE__ */ F([]), m = Z(() => Object.keys(f.value).filter((e) => f.value[e]));
48812
48828
  R(m, (e) => {
48813
48829
  p.value = [...p.value.filter((t) => e.includes(t)), ...e.filter((e) => !p.value.includes(e))];
48814
48830
  }, { immediate: !0 });
@@ -48832,14 +48848,14 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48832
48848
  Qi(() => {
48833
48849
  se(), ae = window.setInterval(() => {
48834
48850
  ie.value && !document.hidden && o("check_launch_connection");
48835
- }, NY);
48851
+ }, PY);
48836
48852
  }), ta(() => window.clearInterval(ae));
48837
48853
  function ce(e) {
48838
48854
  i.write_create_discussion(e), Qn(se);
48839
48855
  }
48840
48856
  let le = (e) => i.launch_clients[e]?.some((e) => e.value !== "api"), ue = (e) => d.value && e === v.value ? [] : ["cli", "manual"];
48841
48857
  function de(e, t) {
48842
- i.write_expert(MY, e, t), se();
48858
+ i.write_expert(NY, e, t), se();
48843
48859
  }
48844
48860
  function fe(e) {
48845
48861
  if (C.value) return ee(e) ? {
@@ -48869,7 +48885,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48869
48885
  title: pe(e),
48870
48886
  aria_label: `添加 ${e} 实例`
48871
48887
  })), ...r.value && i.expert_presets().map((e, t) => ({
48872
- value: PY + e.name,
48888
+ value: FY + e.name,
48873
48889
  name: e.label || e.name,
48874
48890
  ...i.identities[i.platform_of(e.name)],
48875
48891
  separated: t === 0,
@@ -48877,11 +48893,11 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48877
48893
  aria_label: `添加预设 ${e.label || e.name}`
48878
48894
  }))]);
48879
48895
  function me(e) {
48880
- if (e.startsWith(PY)) {
48896
+ if (e.startsWith(FY)) {
48881
48897
  let t = i.expert_presets().find((t) => t.name === e.slice(7));
48882
- return t && i.add_preset(MY, t, "cli"), se();
48898
+ return t && i.add_preset(NY, t, "cli"), se();
48883
48899
  }
48884
- i.launch_clients[e] && (i.default_launch_entry(e), g(e) ? i.add_instance(MY, e, "cli") : de(e, "cli"), se());
48900
+ i.launch_clients[e] && (i.default_launch_entry(e), g(e) ? i.add_instance(NY, e, "cli") : de(e, "cli"), se());
48885
48901
  }
48886
48902
  function he(e) {
48887
48903
  de(e, ""), Qn(() => _.value?.focus_first());
@@ -48903,20 +48919,20 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48903
48919
  });
48904
48920
  return (t, s) => {
48905
48921
  let c = sA, p = MA, m = YV, g = zV, x = FK, T = HV;
48906
- return U(), W("div", _Y, [K("form", {
48922
+ return U(), W("div", vY, [K("form", {
48907
48923
  id: "create-discussion-form",
48908
48924
  class: "create-scroll dialog-form",
48909
48925
  onSubmit: uu(ge, ["prevent"])
48910
48926
  }, [
48911
- ie.value ? (U(), W("div", vY, [K("p", null, [q(c, { name: "i-lucide-plug-zap" }), s[10] ||= J("本机服务未连接,连接后才能唤醒本机 AI。在运行 AI 的电脑上执行下面的命令并完成网页授权,连上后自动检测。", -1)]), K("div", yY, [K("code", null, P(I(r).launch.connect_command), 1), q(p, {
48927
+ ie.value ? (U(), W("div", yY, [K("p", null, [q(c, { name: "i-lucide-plug-zap" }), s[10] ||= J("本机服务未连接,连接后才能唤醒本机 AI。在运行 AI 的电脑上执行下面的命令并完成网页授权,连上后自动检测。", -1)]), K("div", bY, [K("code", null, P(I(r).launch.connect_command), 1), q(p, {
48912
48928
  icon: "i-lucide-copy",
48913
48929
  "aria-label": "复制本机连接命令",
48914
48930
  variant: "ghost",
48915
48931
  color: "neutral",
48916
48932
  onClick: s[0] ||= (e) => I(o)("copy", I(r).launch.connect_command)
48917
48933
  })])])) : Y("", !0),
48918
- e.targetFolder?.id ? (U(), W("p", bY, [q(c, { name: "i-lucide-folder" }), J(P(e.targetFolder.name), 1)])) : Y("", !0),
48919
- K("section", xY, [
48934
+ e.targetFolder?.id ? (U(), W("p", xY, [q(c, { name: "i-lucide-folder" }), J(P(e.targetFolder.name), 1)])) : Y("", !0),
48935
+ K("section", SY, [
48920
48936
  s[11] ||= K("h3", null, [K("span", null, "1"), J("这次做什么")], -1),
48921
48937
  q(g, {
48922
48938
  label: "话题名称",
@@ -48942,7 +48958,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48942
48958
  _: 1
48943
48959
  }, 8, ["description"])
48944
48960
  ]),
48945
- K("section", SY, [
48961
+ K("section", CY, [
48946
48962
  s[12] ||= K("h3", null, [K("span", null, "2"), J("谁来参与")], -1),
48947
48963
  q(ZJ, {
48948
48964
  ref_key: "library",
@@ -48951,7 +48967,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48951
48967
  items: A.value,
48952
48968
  onAdd: me
48953
48969
  }, null, 8, ["items"]),
48954
- h.value.length ? (U(), W("div", CY, [(U(!0), W(H, null, B(h.value, (e) => (U(), G(MJ, {
48970
+ h.value.length ? (U(), W("div", wY, [(U(!0), W(H, null, B(h.value, (e) => (U(), G(MJ, {
48955
48971
  key: e,
48956
48972
  name: e,
48957
48973
  mode: f.value[e],
@@ -48973,14 +48989,14 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48973
48989
  "onHost",
48974
48990
  "onRemove",
48975
48991
  "onMode"
48976
- ]))), 128))])) : (U(), W("p", wY, "请至少添加一位成员。同一平台可添加多位,各自独立会话。")),
48977
- h.value.length ? (U(), W("div", TY, [q(c, { name: "i-lucide-crown" }), K("span", null, P(y.value.length ? "点卡片上的皇冠指定主持人:没 @ 任何人的消息由它分配;其他成员只在被你或主持人点名时发言。" : "需要一位本地 AI 做主持人,没 @ 的消息才有人接。"), 1)])) : Y("", !0),
48978
- q(gY, {
48992
+ ]))), 128))])) : (U(), W("p", TY, "请至少添加一位成员。同一平台可添加多位,各自独立会话。")),
48993
+ h.value.length ? (U(), W("div", EY, [q(c, { name: "i-lucide-crown" }), K("span", null, P(y.value.length ? "点卡片上的皇冠指定主持人:没 @ 任何人的消息由它分配;其他成员只在被你或主持人点名时发言。" : "需要一位本地 AI 做主持人,没 @ 的消息才有人接。"), 1)])) : Y("", !0),
48994
+ q(_Y, {
48979
48995
  free: !0,
48980
48996
  blocker: ne.value
48981
48997
  }, null, 8, ["blocker"])
48982
48998
  ]),
48983
- K("section", EY, [
48999
+ K("section", DY, [
48984
49000
  s[13] ||= K("h3", null, [K("span", null, "3"), J("讨论(可选)")], -1),
48985
49001
  q(x, {
48986
49002
  "model-value": d.value,
@@ -49026,7 +49042,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49026
49042
  "execution_minutes"
49027
49043
  ])], 64)) : Y("", !0)
49028
49044
  ]),
49029
- K("details", DY, [K("summary", null, [
49045
+ K("details", OY, [K("summary", null, [
49030
49046
  q(c, {
49031
49047
  name: "i-lucide-chevron-right",
49032
49048
  class: "create-advanced-icon"
@@ -49040,7 +49056,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49040
49056
  default: L(() => [...s[15] ||= [J("建房后可在房间页修改。", -1)]]),
49041
49057
  _: 1
49042
49058
  }, 8, ["model-value"])])
49043
- ], 32), K("footer", OY, [E.value && I(r).launch.error ? (U(), W("p", kY, P(I(r).launch.error), 1)) : Y("", !0), K("div", AY, [
49059
+ ], 32), K("footer", kY, [E.value && I(r).launch.error ? (U(), W("p", AY, P(I(r).launch.error), 1)) : Y("", !0), K("div", jY, [
49044
49060
  K("span", {
49045
49061
  class: j(["create-summary", { "is-blocked": oe.value }]),
49046
49062
  title: oe.value || _e.value,
@@ -49048,7 +49064,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49048
49064
  }, [oe.value ? (U(), G(c, {
49049
49065
  key: 0,
49050
49066
  name: "i-lucide-circle-alert"
49051
- })) : Y("", !0), J(P(oe.value ? `还差:${oe.value}` : h.value.length || d.value ? _e.value : ""), 1)], 10, jY),
49067
+ })) : Y("", !0), J(P(oe.value ? `还差:${oe.value}` : h.value.length || d.value ? _e.value : ""), 1)], 10, MY),
49052
49068
  q(p, {
49053
49069
  label: "取消",
49054
49070
  color: "neutral",
@@ -49072,46 +49088,46 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49072
49088
  ])])]);
49073
49089
  };
49074
49090
  }
49075
- }, [["__scopeId", "data-v-4da10016"]]), IY = {
49091
+ }, [["__scopeId", "data-v-4da10016"]]), LY = {
49076
49092
  class: "account-settings",
49077
49093
  "aria-labelledby": "account-heading"
49078
- }, LY = {
49094
+ }, RY = {
49079
49095
  key: 0,
49080
49096
  class: "fine-print",
49081
49097
  role: "status"
49082
- }, RY = ["aria-label"], zY = { class: "fine-print account-intro" }, BY = {
49098
+ }, zY = ["aria-label"], BY = { class: "fine-print account-intro" }, VY = {
49083
49099
  key: 0,
49084
49100
  class: "account-message is-error",
49085
49101
  role: "status"
49086
- }, VY = {
49087
- key: 1,
49088
- class: "fine-print"
49089
49102
  }, HY = {
49090
49103
  key: 1,
49091
49104
  class: "fine-print"
49092
49105
  }, UY = {
49106
+ key: 1,
49107
+ class: "fine-print"
49108
+ }, WY = {
49093
49109
  key: 2,
49094
49110
  class: "account-message is-error",
49095
49111
  role: "alert"
49096
- }, WY = {
49112
+ }, GY = {
49097
49113
  key: 3,
49098
49114
  class: "account-message",
49099
49115
  role: "status"
49100
- }, GY = { class: "account-actions" }, KY = {
49116
+ }, KY = { class: "account-actions" }, qY = {
49101
49117
  key: 2,
49102
49118
  class: "account-profile"
49103
- }, qY = { class: "account-identity" }, JY = { class: "account-avatar-actions" }, YY = { class: "account-name-row" }, XY = {
49119
+ }, JY = { class: "account-identity" }, YY = { class: "account-avatar-actions" }, XY = { class: "account-name-row" }, ZY = {
49104
49120
  key: 0,
49105
49121
  class: "account-message is-error",
49106
49122
  role: "alert"
49107
- }, ZY = {
49123
+ }, QY = {
49108
49124
  key: 1,
49109
49125
  class: "account-message",
49110
49126
  role: "status"
49111
- }, QY = {
49127
+ }, $Y = {
49112
49128
  key: 2,
49113
49129
  class: "account-signout account-actions"
49114
- }, $Y = {
49130
+ }, eX = {
49115
49131
  __name: "AccountSettings",
49116
49132
  setup(e) {
49117
49133
  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({
@@ -49179,13 +49195,13 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49179
49195
  }
49180
49196
  return (e, t) => {
49181
49197
  let p = YV, y = zV, b = MA, x = pA;
49182
- return U(), W("section", IY, [t[9] ||= K("h3", { id: "account-heading" }, "账号", -1), a.value === "loading" ? (U(), W("p", LY, "正在读取账号状态…")) : a.value === "register" || a.value === "login" ? (U(), W("form", {
49198
+ return U(), W("section", LY, [t[9] ||= K("h3", { id: "account-heading" }, "账号", -1), a.value === "loading" ? (U(), W("p", RY, "正在读取账号状态…")) : a.value === "register" || a.value === "login" ? (U(), W("form", {
49183
49199
  key: 1,
49184
49200
  class: "dialog-form account-form",
49185
49201
  "aria-label": a.value === "register" ? "设置管理员账号" : "登录管理员账号",
49186
49202
  onSubmit: uu(m, ["prevent"])
49187
49203
  }, [
49188
- K("p", zY, [a.value === "register" ? (U(), W(H, { key: 0 }, [J("设置站点管理员账号:名称和头像对所有访客可见,登录后可在没有房间凭据的浏览器中存档、恢复、删除房间。")], 64)) : (U(), W(H, { key: 1 }, [J("登录后可管理房间;未登录时仍可阅读并使用本浏览器创建的房间。")], 64))]),
49204
+ K("p", BY, [a.value === "register" ? (U(), W(H, { key: 0 }, [J("设置站点管理员账号:名称和头像对所有访客可见,登录后可在没有房间凭据的浏览器中存档、恢复、删除房间。")], 64)) : (U(), W(H, { key: 1 }, [J("登录后可管理房间;未登录时仍可阅读并使用本浏览器创建的房间。")], 64))]),
49189
49205
  q(y, {
49190
49206
  label: "用户名",
49191
49207
  description: a.value === "register" ? "1–30 个字符,也是公开显示的名称" : void 0,
@@ -49252,24 +49268,24 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49252
49268
  }, null, 8, ["modelValue", "disabled"])]),
49253
49269
  _: 1
49254
49270
  }),
49255
- f.value ? (U(), W("p", BY, [...t[6] ||= [
49271
+ f.value ? (U(), W("p", VY, [...t[6] ||= [
49256
49272
  J("尚无可用的注册令牌。请在部署网站的电脑上运行 ", -1),
49257
49273
  K("code", null, "codiscuss token", -1),
49258
49274
  J(",再刷新本页;本地版也可设置环境变量 DISCUSS_ADMIN_SETUP_KEY 后重启。", -1)
49259
- ]])) : (U(), W("p", VY, [...t[7] ||= [
49275
+ ]])) : (U(), W("p", HY, [...t[7] ||= [
49260
49276
  J("首个注册者需要令牌,防止他人抢注:在部署网站的电脑上运行 ", -1),
49261
49277
  K("code", null, "codiscuss token", -1),
49262
49278
  J(" 获取(一次性);本地版也可用服务端启动日志里的安装令牌。在已连接本机服务的电脑上注册时,账号与密码会保存到 ~/.codiscuss。忘记密码:本地版运行 ", -1),
49263
49279
  K("code", null, "python server.py --reset-admin", -1),
49264
49280
  J(" 后重新注册;Cloudflare 版需清空管理员表(见部署文档)。", -1)
49265
49281
  ]]))
49266
- ], 64)) : (U(), W("p", HY, [...t[8] ||= [
49282
+ ], 64)) : (U(), W("p", UY, [...t[8] ||= [
49267
49283
  J("忘记密码:本地版运行 ", -1),
49268
49284
  K("code", null, "python server.py --reset-admin", -1),
49269
49285
  J(" 后重新注册;Cloudflare 版需清空管理员表(见部署文档)。", -1)
49270
49286
  ]])),
49271
- s.auth.error ? (U(), W("p", UY, P(s.auth.error), 1)) : s.auth.notice ? (U(), W("p", WY, P(s.auth.notice), 1)) : Y("", !0),
49272
- K("div", GY, [q(b, {
49287
+ s.auth.error ? (U(), W("p", WY, P(s.auth.error), 1)) : s.auth.notice ? (U(), W("p", GY, P(s.auth.notice), 1)) : Y("", !0),
49288
+ K("div", KY, [q(b, {
49273
49289
  type: "submit",
49274
49290
  class: "channel-primary-button",
49275
49291
  label: a.value === "register" ? "创建并登录" : "登录",
@@ -49280,13 +49296,13 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49280
49296
  "loading",
49281
49297
  "disabled"
49282
49298
  ])])
49283
- ], 40, RY)) : (U(), W("div", KY, [
49284
- K("div", qY, [q(x, {
49299
+ ], 40, zY)) : (U(), W("div", qY, [
49300
+ K("div", JY, [q(x, {
49285
49301
  src: I(n).identities.用户.icon,
49286
49302
  alt: `${I(n).display_name("用户")} 的头像`,
49287
49303
  size: "lg",
49288
49304
  class: "channel-avatar user account-avatar"
49289
- }, null, 8, ["src", "alt"]), K("div", JY, [
49305
+ }, null, 8, ["src", "alt"]), K("div", YY, [
49290
49306
  K("input", {
49291
49307
  ref_key: "avatar_input",
49292
49308
  ref: u,
@@ -49324,7 +49340,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49324
49340
  label: "显示名称",
49325
49341
  description: "即用户名,对所有访客可见"
49326
49342
  }, {
49327
- default: L(() => [K("div", YY, [q(p, {
49343
+ default: L(() => [K("div", XY, [q(p, {
49328
49344
  modelValue: l.value,
49329
49345
  "onUpdate:modelValue": t[5] ||= (e) => l.value = e,
49330
49346
  autocomplete: "username",
@@ -49342,8 +49358,8 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49342
49358
  }, null, 8, ["loading", "disabled"])])]),
49343
49359
  _: 1
49344
49360
  })], 32),
49345
- s.profile.error ? (U(), W("p", XY, P(s.profile.error), 1)) : s.profile.notice ? (U(), W("p", ZY, P(s.profile.notice), 1)) : Y("", !0),
49346
- r.value.local ? Y("", !0) : (U(), W("div", QY, [q(b, {
49361
+ s.profile.error ? (U(), W("p", ZY, P(s.profile.error), 1)) : s.profile.notice ? (U(), W("p", QY, P(s.profile.notice), 1)) : Y("", !0),
49362
+ r.value.local ? Y("", !0) : (U(), W("div", $Y, [q(b, {
49347
49363
  label: "退出登录",
49348
49364
  icon: "i-lucide-log-out",
49349
49365
  color: "neutral",
@@ -49356,68 +49372,68 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49356
49372
  ]))]);
49357
49373
  };
49358
49374
  }
49359
- }, eX = {
49375
+ }, tX = {
49360
49376
  key: 0,
49361
49377
  class: "channel-archive-manager"
49362
- }, tX = { class: "channel-archive-toolbar" }, nX = {
49378
+ }, nX = { class: "channel-archive-toolbar" }, rX = {
49363
49379
  key: 0,
49364
49380
  class: "channel-archive-confirm channel-archive-bulk",
49365
49381
  role: "alert"
49366
- }, rX = {
49382
+ }, iX = {
49367
49383
  key: 1,
49368
49384
  role: "alert",
49369
49385
  class: "channel-directory-error"
49370
- }, iX = { class: "channel-archive-results" }, aX = {
49386
+ }, aX = { class: "channel-archive-results" }, oX = {
49371
49387
  key: 0,
49372
49388
  class: "channel-archive-list",
49373
49389
  "aria-label": "已存档房间列表"
49374
- }, oX = { class: "channel-archive-row" }, sX = { class: "channel-archive-info" }, cX = [
49390
+ }, sX = { class: "channel-archive-row" }, cX = { class: "channel-archive-info" }, lX = [
49375
49391
  "title",
49376
49392
  "disabled",
49377
49393
  "onClick"
49378
- ], lX = { key: 0 }, uX = ["datetime"], dX = { class: "channel-archive-actions" }, fX = {
49394
+ ], uX = { key: 0 }, dX = ["datetime"], fX = { class: "channel-archive-actions" }, pX = {
49379
49395
  key: 0,
49380
49396
  class: "channel-archive-confirm channel-archive-bulk",
49381
49397
  role: "alert"
49382
- }, pX = {
49398
+ }, mX = {
49383
49399
  key: 1,
49384
49400
  class: "channel-archive-empty"
49385
- }, mX = { class: "fine-print" }, hX = {
49401
+ }, hX = { class: "fine-print" }, gX = {
49386
49402
  key: 0,
49387
49403
  class: "fine-print"
49388
- }, gX = { class: "dialog-actions" }, _X = { class: "fine-print" }, vX = { class: "dialog-actions" }, yX = { class: "dialog-actions" }, bX = { class: "channel-management-target" }, xX = {
49404
+ }, _X = { class: "dialog-actions" }, vX = { class: "fine-print" }, yX = { class: "dialog-actions" }, bX = { class: "dialog-actions" }, xX = { class: "channel-management-target" }, SX = {
49389
49405
  key: 0,
49390
49406
  class: "fine-print"
49391
- }, SX = {
49407
+ }, CX = {
49392
49408
  key: 1,
49393
49409
  class: "fine-print"
49394
- }, CX = {
49410
+ }, wX = {
49395
49411
  key: 2,
49396
49412
  class: "fine-print"
49397
- }, wX = { class: "dialog-actions" }, TX = { key: 5 }, EX = { class: "theme-choices" }, DX = ["aria-pressed", "onClick"], OX = { class: "theme-check" }, kX = { class: "channel-reading-setting" }, AX = {
49413
+ }, TX = { class: "dialog-actions" }, EX = { key: 5 }, DX = { class: "theme-choices" }, OX = ["aria-pressed", "onClick"], kX = { class: "theme-check" }, AX = { class: "channel-reading-setting" }, jX = {
49398
49414
  class: "channel-reading-options",
49399
49415
  role: "group",
49400
49416
  "aria-labelledby": "channel-reading-label"
49401
- }, jX = { class: "channel-reading-setting" }, MX = {
49417
+ }, MX = { class: "channel-reading-setting" }, NX = {
49402
49418
  class: "channel-reading-options channel-effect-options",
49403
49419
  role: "group",
49404
49420
  "aria-labelledby": "channel-effects-label"
49405
- }, NX = { class: "advanced-content" }, PX = {
49421
+ }, PX = { class: "advanced-content" }, FX = {
49406
49422
  key: 0,
49407
49423
  class: "fine-print"
49408
- }, FX = { class: "advanced-content" }, IX = { class: "expert-fields" }, LX = { class: "dialog-actions" }, RX = { class: "dialog-actions" }, zX = {
49424
+ }, IX = { class: "advanced-content" }, LX = { class: "expert-fields" }, RX = { class: "dialog-actions" }, zX = { class: "dialog-actions" }, BX = {
49409
49425
  key: 9,
49410
49426
  class: "original-message"
49411
- }, BX = {
49427
+ }, VX = {
49412
49428
  key: 0,
49413
49429
  role: "alert"
49414
- }, VX = { class: "original-meta" }, HX = { class: "fine-print" }, UX = {
49430
+ }, HX = { class: "original-meta" }, UX = { class: "fine-print" }, WX = {
49415
49431
  key: 0,
49416
49432
  class: "channel-answer-summary"
49417
- }, WX = { class: "message-prose" }, GX = { class: "message-prose" }, KX = ["innerHTML"], qX = {
49433
+ }, GX = { class: "message-prose" }, KX = { class: "message-prose" }, qX = ["innerHTML"], JX = {
49418
49434
  key: 2,
49419
49435
  class: "fine-print"
49420
- }, JX = "topic-expert-modes", YX = {
49436
+ }, YX = "topic-expert-modes", XX = {
49421
49437
  __name: "WorkspaceDialogs",
49422
49438
  props: /*@__PURE__*/ Fa({
49423
49439
  detailId: {
@@ -49709,8 +49725,8 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49709
49725
  } : void 0,
49710
49726
  "onAfter:leave": xe
49711
49727
  }, {
49712
- body: L(() => [a.value === "archives" ? (U(), W("section", eX, [
49713
- K("div", tX, [
49728
+ body: L(() => [a.value === "archives" ? (U(), W("section", tX, [
49729
+ K("div", nX, [
49714
49730
  q(x, {
49715
49731
  modelValue: h.value,
49716
49732
  "onUpdate:modelValue": c[0] ||= (e) => h.value = e,
@@ -49739,7 +49755,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49739
49755
  }
49740
49756
  }, null, 8, ["label", "disabled"])
49741
49757
  ]),
49742
- b.value && v.value.length ? (U(), W("div", nX, [
49758
+ b.value && v.value.length ? (U(), W("div", rX, [
49743
49759
  K("span", null, "将永久删除当前列表中的 " + P(v.value.length) + " 个房间及其全部记录,无法撤销。", 1),
49744
49760
  q(fe, {
49745
49761
  label: "取消",
@@ -49755,20 +49771,20 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49755
49771
  onClick: E
49756
49772
  })
49757
49773
  ])) : Y("", !0),
49758
- I(o).directory_error ? (U(), W("p", rX, P(I(o).directory_error), 1)) : Y("", !0),
49759
- K("div", iX, [v.value.length ? (U(), W("ul", aX, [(U(!0), W(H, null, B(v.value, (e) => (U(), W("li", {
49774
+ I(o).directory_error ? (U(), W("p", iX, P(I(o).directory_error), 1)) : Y("", !0),
49775
+ K("div", aX, [v.value.length ? (U(), W("ul", oX, [(U(!0), W(H, null, B(v.value, (e) => (U(), W("li", {
49760
49776
  key: e.id,
49761
49777
  class: "channel-archive-item"
49762
- }, [K("div", oX, [K("div", sX, [K("button", {
49778
+ }, [K("div", sX, [K("div", cX, [K("button", {
49763
49779
  class: "channel-archive-title",
49764
49780
  title: e.title,
49765
49781
  disabled: !!I(u),
49766
49782
  onClick: (t) => T(e)
49767
- }, P(e.title), 9, cX), K("small", null, [e.created_at ? (U(), W("span", lX, [
49783
+ }, P(e.title), 9, lX), K("small", null, [e.created_at ? (U(), W("span", uX, [
49768
49784
  c[28] ||= J("创建于 ", -1),
49769
- K("time", { datetime: e.created_at }, P(C(e.created_at)), 9, uX),
49785
+ K("time", { datetime: e.created_at }, P(C(e.created_at)), 9, dX),
49770
49786
  c[29] ||= J(" · ", -1)
49771
- ])) : Y("", !0), J(P(e.message_count) + " 条消息", 1)])]), K("div", dX, [q(fe, {
49787
+ ])) : Y("", !0), J(P(e.message_count) + " 条消息", 1)])]), K("div", fX, [q(fe, {
49772
49788
  "aria-label": `彻底删除 ${e.title}`,
49773
49789
  title: "彻底删除",
49774
49790
  icon: "i-lucide-trash-2",
@@ -49800,7 +49816,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49800
49816
  "aria-label",
49801
49817
  "disabled",
49802
49818
  "onClick"
49803
- ])])]), y.value === e.id ? (U(), W("div", fX, [
49819
+ ])])]), y.value === e.id ? (U(), W("div", pX, [
49804
49820
  K("span", null, "永久删除「" + P(e.title) + "」及其全部记录,无法撤销。", 1),
49805
49821
  q(fe, {
49806
49822
  label: "取消",
@@ -49816,15 +49832,15 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49816
49832
  disabled: w(e),
49817
49833
  onClick: ee
49818
49834
  }, null, 8, ["disabled"])
49819
- ])) : Y("", !0)]))), 128))])) : (U(), W("p", pX, P(m.value.length ? "没有匹配的存档房间" : "暂无已存档房间"), 1))])
49835
+ ])) : Y("", !0)]))), 128))])) : (U(), W("p", mX, P(m.value.length ? "没有匹配的存档房间" : "暂无已存档房间"), 1))])
49820
49836
  ])) : a.value === "delete-folder" ? (U(), W("form", {
49821
49837
  key: 1,
49822
49838
  class: "dialog-form",
49823
49839
  onSubmit: c[7] ||= uu((e) => ae(!1), ["prevent"])
49824
49840
  }, [
49825
- K("p", mX, "仅移除「" + P(e.targetFolder?.name) + "」时,房间变为未分组,所有消息和存档状态都会保留。", 1),
49826
- ie.value.length ? (U(), W("p", hX, "也可以连同其中的 " + P(ie.value.length) + " 个房间一起永久删除,无法撤销。", 1)) : Y("", !0),
49827
- K("div", gX, [
49841
+ K("p", hX, "仅移除「" + P(e.targetFolder?.name) + "」时,房间变为未分组,所有消息和存档状态都会保留。", 1),
49842
+ ie.value.length ? (U(), W("p", gX, "也可以连同其中的 " + P(ie.value.length) + " 个房间一起永久删除,无法撤销。", 1)) : Y("", !0),
49843
+ K("div", _X, [
49828
49844
  q(fe, {
49829
49845
  label: "取消",
49830
49846
  color: "neutral",
@@ -49849,7 +49865,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49849
49865
  key: 2,
49850
49866
  class: "dialog-form",
49851
49867
  onSubmit: uu(oe, ["prevent"])
49852
- }, [K("p", _X, "存档「" + P(e.targetFolder?.name) + "」中的 " + P(ie.value.length) + " 个房间,文件夹保留。存档后可在侧栏「已存档」中查阅与恢复;尚未收束的讨论会暂停。", 1), K("div", vX, [q(fe, {
49868
+ }, [K("p", vX, "存档「" + P(e.targetFolder?.name) + "」中的 " + P(ie.value.length) + " 个房间,文件夹保留。存档后可在侧栏「已存档」中查阅与恢复;尚未收束的讨论会暂停。", 1), K("div", yX, [q(fe, {
49853
49869
  label: "取消",
49854
49870
  color: "neutral",
49855
49871
  variant: "ghost",
@@ -49879,7 +49895,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49879
49895
  "modelValue",
49880
49896
  "aria-label",
49881
49897
  "readonly"
49882
- ]), K("div", yX, [q(fe, {
49898
+ ]), K("div", bX, [q(fe, {
49883
49899
  label: "取消",
49884
49900
  color: "neutral",
49885
49901
  variant: "ghost",
@@ -49904,10 +49920,10 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49904
49920
  class: "dialog-form",
49905
49921
  onSubmit: uu(ne, ["prevent"])
49906
49922
  }, [
49907
- K("p", bX, [J(P(e.targetRoom?.title) + " ", 1), K("span", null, "· " + P(e.targetRoom?.message_count) + " 条消息", 1)]),
49908
- a.value === "archive" ? (U(), W("p", xX, "存档后可在侧栏「已存档」中查阅与恢复。已有发言安排会保留;专家需在下次检查时停止自己的定时任务。")) : Y("", !0),
49909
- a.value === "restore" ? (U(), W("p", SX, "恢复不会自动继续讨论;需要继续时,在主持设置中调整阶段。")) : Y("", !0),
49910
- a.value === "delete" ? (U(), W("p", CX, "消息、共识和发言安排将一起删除,无法撤销。")) : Y("", !0),
49923
+ K("p", xX, [J(P(e.targetRoom?.title) + " ", 1), K("span", null, "· " + P(e.targetRoom?.message_count) + " 条消息", 1)]),
49924
+ a.value === "archive" ? (U(), W("p", SX, "存档后可在侧栏「已存档」中查阅与恢复。已有发言安排会保留;专家需在下次检查时停止自己的定时任务。")) : Y("", !0),
49925
+ a.value === "restore" ? (U(), W("p", CX, "恢复不会自动继续讨论;需要继续时,在主持设置中调整阶段。")) : Y("", !0),
49926
+ a.value === "delete" ? (U(), W("p", wX, "消息、共识和发言安排将一起删除,无法撤销。")) : Y("", !0),
49911
49927
  a.value === "rename" ? (U(), G(pe, {
49912
49928
  key: 3,
49913
49929
  label: "房间名称",
@@ -49924,7 +49940,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49924
49940
  }, null, 8, ["modelValue"])]),
49925
49941
  _: 1
49926
49942
  })) : Y("", !0),
49927
- K("div", wX, [q(fe, {
49943
+ K("div", TX, [q(fe, {
49928
49944
  label: "取消",
49929
49945
  color: "neutral",
49930
49946
  variant: "ghost",
@@ -49941,10 +49957,10 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49941
49957
  "loading",
49942
49958
  "disabled"
49943
49959
  ])])
49944
- ], 32)) : a.value === "settings" ? (U(), W("div", TX, [
49945
- q($Y),
49960
+ ], 32)) : a.value === "settings" ? (U(), W("div", EX, [
49961
+ q(eX),
49946
49962
  c[34] ||= K("h3", { class: "account-appearance-heading" }, "外观", -1),
49947
- K("div", EX, [(U(), W(H, null, B(_e, (e) => K("button", {
49963
+ K("div", DX, [(U(), W(H, null, B(_e, (e) => K("button", {
49948
49964
  key: e.value,
49949
49965
  class: j({ chosen: I(o).theme === e.value }),
49950
49966
  "aria-pressed": I(o).theme === e.value,
@@ -49959,12 +49975,12 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49959
49975
  K("b")
49960
49976
  ], -1)]], 2),
49961
49977
  K("span", null, [K("strong", null, P(e.title), 1), K("small", null, P(e.description), 1)]),
49962
- K("span", OX, [I(o).theme === e.value ? (U(), G(ye, {
49978
+ K("span", kX, [I(o).theme === e.value ? (U(), G(ye, {
49963
49979
  key: 0,
49964
49980
  name: "i-lucide-check"
49965
49981
  })) : Y("", !0)])
49966
- ], 10, DX)), 64))]),
49967
- K("section", kX, [c[31] ||= K("h3", { id: "channel-reading-label" }, "对话宽度", -1), K("div", AX, [(U(!0), W(H, null, B(e.readingOptions, (e) => (U(), G(fe, {
49982
+ ], 10, OX)), 64))]),
49983
+ K("section", AX, [c[31] ||= K("h3", { id: "channel-reading-label" }, "对话宽度", -1), K("div", jX, [(U(!0), W(H, null, B(e.readingOptions, (e) => (U(), G(fe, {
49968
49984
  key: e.value,
49969
49985
  label: e.label,
49970
49986
  color: "neutral",
@@ -49978,9 +49994,9 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49978
49994
  "aria-pressed",
49979
49995
  "onClick"
49980
49996
  ]))), 128))])]),
49981
- K("section", jX, [
49997
+ K("section", MX, [
49982
49998
  c[32] ||= K("h3", { id: "channel-effects-label" }, "视觉效果", -1),
49983
- K("div", MX, [(U(!0), W(H, null, B(e.effectOptions, (e) => (U(), G(fe, {
49999
+ K("div", NX, [(U(!0), W(H, null, B(e.effectOptions, (e) => (U(), G(fe, {
49984
50000
  key: e.value,
49985
50001
  label: e.label,
49986
50002
  color: "neutral",
@@ -49996,7 +50012,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49996
50012
  ]))), 128))]),
49997
50013
  c[33] ||= K("p", { class: "fine-print" }, "精简模式关闭毛玻璃模糊与多层阴影,适合配置较低或需要更流畅滚动的设备。", -1)
49998
50014
  ])
49999
- ])) : a.value === "create" ? (U(), G(FY, {
50015
+ ])) : a.value === "create" ? (U(), G(IY, {
50000
50016
  key: 6,
50001
50017
  "target-folder": e.targetFolder,
50002
50018
  onSubmit: N,
@@ -50054,7 +50070,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50054
50070
  }, null, 8, ["model-value"])]),
50055
50071
  _: 1
50056
50072
  })) : Y("", !0),
50057
- K("section", NX, [
50073
+ K("section", PX, [
50058
50074
  c[35] ||= K("h3", null, "讨论上限", -1),
50059
50075
  q(yU, {
50060
50076
  ref_key: "topic_limits",
@@ -50074,14 +50090,14 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50074
50090
  "execution",
50075
50091
  "disabled"
50076
50092
  ]),
50077
- de.value ? (U(), W("p", PX, "讨论未结束时,上限不可在此修改。")) : Y("", !0)
50093
+ de.value ? (U(), W("p", FX, "讨论未结束时,上限不可在此修改。")) : Y("", !0)
50078
50094
  ]),
50079
50095
  q(Te, {
50080
50096
  open: le.value,
50081
50097
  "onUpdate:open": c[22] ||= (e) => le.value = e,
50082
50098
  class: "advanced-fields"
50083
50099
  }, {
50084
- content: L(() => [K("div", FX, [
50100
+ content: L(() => [K("div", IX, [
50085
50101
  (U(), W(H, null, B([
50086
50102
  {
50087
50103
  key: "user_request",
@@ -50108,11 +50124,11 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50108
50124
  }, null, 8, ["model-value", "onUpdate:modelValue"])]),
50109
50125
  _: 2
50110
50126
  }, 1032, ["label"])), 64)),
50111
- K("div", IX, [(U(!0), W(H, null, B(I(k), (e) => (U(), W("div", { key: e }, [K("label", null, P(e), 1), q(S, {
50112
- "model-value": I(o).experts[JX]?.[e] || "none",
50127
+ K("div", LX, [(U(!0), W(H, null, B(I(k), (e) => (U(), W("div", { key: e }, [K("label", null, P(e), 1), q(S, {
50128
+ "model-value": I(o).experts[YX]?.[e] || "none",
50113
50129
  items: ce,
50114
50130
  "aria-label": `${e} 参与方式`,
50115
- "onUpdate:modelValue": (t) => I(s).write_expert(JX, e, t === "none" ? "" : t)
50131
+ "onUpdate:modelValue": (t) => I(s).write_expert(YX, e, t === "none" ? "" : t)
50116
50132
  }, null, 8, [
50117
50133
  "model-value",
50118
50134
  "aria-label",
@@ -50130,7 +50146,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50130
50146
  }, null, 8, ["trailing-icon"])]),
50131
50147
  _: 1
50132
50148
  }, 8, ["open"]),
50133
- K("div", LX, [q(fe, {
50149
+ K("div", RX, [q(fe, {
50134
50150
  label: "取消",
50135
50151
  color: "neutral",
50136
50152
  variant: "ghost",
@@ -50174,7 +50190,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50174
50190
  _: 1
50175
50191
  }),
50176
50192
  c[37] ||= K("p", { class: "fine-print" }, "创建后为待通知状态;由主持人实际联系专家。", -1),
50177
- K("div", RX, [q(fe, {
50193
+ K("div", zX, [q(fe, {
50178
50194
  label: "取消",
50179
50195
  variant: "ghost",
50180
50196
  color: "neutral",
@@ -50185,8 +50201,8 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50185
50201
  label: "创建发言安排",
50186
50202
  loading: I(u) === "schedule"
50187
50203
  }, null, 8, ["loading"])])
50188
- ], 32)) : a.value === "message" ? (U(), W("div", zX, [me.value ? (U(), W("p", BX, P(me.value), 1)) : A.value ? (U(), W(H, { key: 1 }, [
50189
- K("div", VX, [
50204
+ ], 32)) : a.value === "message" ? (U(), W("div", BX, [me.value ? (U(), W("p", VX, P(me.value), 1)) : A.value ? (U(), W(H, { key: 1 }, [
50205
+ K("div", HX, [
50190
50206
  K("strong", null, P(I(s).display_name(A.value.author)), 1),
50191
50207
  K("span", null, "#" + P(A.value.id), 1),
50192
50208
  q(Ee, {
@@ -50197,14 +50213,14 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50197
50213
  _: 1
50198
50214
  })
50199
50215
  ]),
50200
- K("p", HX, P(I(s).provenance(A.value)) + " · " + P(new Date(A.value.created_at).toLocaleString("zh-CN")), 1),
50201
- A.value.summary ? (U(), W("section", UX, [K("small", null, "回答摘要 · " + P(I(s).display_name(A.value.summary_by)), 1), K("p", WX, P(A.value.summary), 1)])) : Y("", !0),
50202
- K("p", GX, P(A.value.text), 1),
50216
+ K("p", UX, P(I(s).provenance(A.value)) + " · " + P(new Date(A.value.created_at).toLocaleString("zh-CN")), 1),
50217
+ A.value.summary ? (U(), W("section", WX, [K("small", null, "回答摘要 · " + P(I(s).display_name(A.value.summary_by)), 1), K("p", GX, P(A.value.summary), 1)])) : Y("", !0),
50218
+ K("p", KX, P(A.value.text), 1),
50203
50219
  A.value.attachments?.length ? (U(), W("div", {
50204
50220
  key: 1,
50205
50221
  onClick: be,
50206
50222
  innerHTML: I(s).attachment_markup(A.value.attachments)
50207
- }, null, 8, KX)) : Y("", !0),
50223
+ }, null, 8, qX)) : Y("", !0),
50208
50224
  A.value.reply_to ? (U(), G(fe, {
50209
50225
  key: 2,
50210
50226
  label: `查看被回复的原文 #${A.value.reply_to}`,
@@ -50214,7 +50230,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50214
50230
  class: "channel-surface-button",
50215
50231
  onClick: Se
50216
50232
  }, null, 8, ["label"])) : Y("", !0)
50217
- ], 64)) : (U(), W("p", qX, "正在读取原文…"))])) : Y("", !0)]),
50233
+ ], 64)) : (U(), W("p", JX, "正在读取原文…"))])) : Y("", !0)]),
50218
50234
  _: 1
50219
50235
  }, 8, [
50220
50236
  "open",
@@ -50225,7 +50241,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50225
50241
  ]);
50226
50242
  };
50227
50243
  }
50228
- }, XX = {
50244
+ }, ZX = {
50229
50245
  __name: "ContextMenuContent",
50230
50246
  props: {
50231
50247
  items: {
@@ -50520,7 +50536,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50520
50536
  "disabled",
50521
50537
  "text-value",
50522
50538
  "class"
50523
- ]), q(XX, X({
50539
+ ]), q(ZX, X({
50524
50540
  sub: "",
50525
50541
  class: r.ui?.content,
50526
50542
  ui: e.ui,
@@ -50631,7 +50647,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50631
50647
  _: 3
50632
50648
  }, 16)], 64));
50633
50649
  }
50634
- }, ZX = {
50650
+ }, QX = {
50635
50651
  slots: {
50636
50652
  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",
50637
50653
  viewport: "relative divide-y divide-default scroll-py-1 overflow-y-auto flex-1",
@@ -50819,7 +50835,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50819
50835
  }
50820
50836
  ],
50821
50837
  defaultVariants: { size: "md" }
50822
- }, QX = {
50838
+ }, $X = {
50823
50839
  __name: "ContextMenu",
50824
50840
  props: {
50825
50841
  size: {
@@ -50889,7 +50905,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50889
50905
  emits: ["update:open"],
50890
50906
  setup(e, { emit: t }) {
50891
50907
  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({
50892
- extend: ZX,
50908
+ extend: QX,
50893
50909
  ...o.ui?.contextMenu || {}
50894
50910
  })({ size: a.size }));
50895
50911
  return (e, t) => (U(), G(I(iC), M(Ss(I(s))), {
@@ -50901,7 +50917,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50901
50917
  }, {
50902
50918
  default: L(() => [V(e.$slots, "default")]),
50903
50919
  _: 3
50904
- }, 8, ["disabled", "class"])) : Y("", !0), q(XX, X({
50920
+ }, 8, ["disabled", "class"])) : Y("", !0), q(ZX, X({
50905
50921
  class: u.value.content({ class: [!i.default && I(a).class, I(a).ui?.content] }),
50906
50922
  ui: u.value,
50907
50923
  "ui-override": I(a).ui
@@ -50931,20 +50947,20 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50931
50947
  _: 3
50932
50948
  }, 16));
50933
50949
  }
50934
- }, $X = {
50950
+ }, eZ = {
50935
50951
  key: 0,
50936
50952
  class: "channel-import-reading"
50937
- }, eZ = {
50953
+ }, tZ = {
50938
50954
  class: "channel-import-list",
50939
50955
  "aria-live": "polite"
50940
- }, tZ = { class: "channel-import-head" }, nZ = ["title"], rZ = {
50956
+ }, nZ = { class: "channel-import-head" }, rZ = ["title"], iZ = {
50941
50957
  key: 0,
50942
50958
  role: "alert",
50943
50959
  class: "channel-import-error"
50944
- }, iZ = {
50960
+ }, aZ = {
50945
50961
  key: 1,
50946
50962
  class: "channel-import-members"
50947
- }, aZ = ["title"], oZ = { class: "dialog-actions" }, sZ = /*#__PURE__*/ YH({
50963
+ }, oZ = ["title"], sZ = { class: "dialog-actions" }, cZ = /*#__PURE__*/ YH({
50948
50964
  __name: "ImportDialog",
50949
50965
  props: {
50950
50966
  open: {
@@ -51000,21 +51016,21 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51000
51016
  }
51001
51017
  }, {
51002
51018
  body: L(() => [
51003
- !r.value.done && !r.value.rooms.length ? (U(), W("p", $X, "正在读取备份文件…")) : Y("", !0),
51004
- K("ul", eZ, [(U(!0), W(H, null, B(r.value.rooms, (e, t) => (U(), W("li", {
51019
+ !r.value.done && !r.value.rooms.length ? (U(), W("p", eZ, "正在读取备份文件…")) : Y("", !0),
51020
+ K("ul", tZ, [(U(!0), W(H, null, B(r.value.rooms, (e, t) => (U(), W("li", {
51005
51021
  key: t,
51006
51022
  class: j(["channel-import-room", `is-${e.status}`])
51007
51023
  }, [
51008
- K("div", tZ, [
51024
+ K("div", nZ, [
51009
51025
  q(o, {
51010
51026
  name: i[e.status].icon,
51011
51027
  class: j({ "animate-spin": e.status === "importing" })
51012
51028
  }, null, 8, ["name", "class"]),
51013
- K("strong", { title: e.title }, P(e.title), 9, nZ),
51029
+ K("strong", { title: e.title }, P(e.title), 9, rZ),
51014
51030
  K("span", null, P(i[e.status].label), 1)
51015
51031
  ]),
51016
- e.error ? (U(), W("p", rZ, P(e.error), 1)) : Y("", !0),
51017
- e.members.length ? (U(), W("ul", iZ, [(U(!0), W(H, null, B(e.members, (e) => (U(), W("li", {
51032
+ e.error ? (U(), W("p", iZ, P(e.error), 1)) : Y("", !0),
51033
+ e.members.length ? (U(), W("ul", aZ, [(U(!0), W(H, null, B(e.members, (e) => (U(), W("li", {
51018
51034
  key: e.name,
51019
51035
  class: j({ "is-failed": e.failed })
51020
51036
  }, [
@@ -51023,7 +51039,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51023
51039
  e.resume ? (U(), W("code", {
51024
51040
  key: 0,
51025
51041
  title: `没有开着的原窗口时,在 ${e.resume.cwd} 运行`
51026
- }, P(e.resume.command), 9, aZ)) : Y("", !0)
51042
+ }, P(e.resume.command), 9, oZ)) : Y("", !0)
51027
51043
  ], 2))), 128))])) : Y("", !0),
51028
51044
  (U(!0), W(H, null, B(e.problems, (e) => (U(), W("p", {
51029
51045
  key: e,
@@ -51035,7 +51051,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51035
51051
  role: "alert",
51036
51052
  class: "channel-import-error is-file"
51037
51053
  }, P(e), 1))), 128)),
51038
- K("div", oZ, [q(s, {
51054
+ K("div", sZ, [q(s, {
51039
51055
  label: "完成",
51040
51056
  class: "channel-primary-button",
51041
51057
  disabled: !r.value.done,
@@ -51051,47 +51067,47 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51051
51067
  ]);
51052
51068
  };
51053
51069
  }
51054
- }, [["__scopeId", "data-v-03a2f1dd"]]), cZ = { class: "channel-directory-manager" }, lZ = { class: "channel-directory-heading" }, uZ = ["aria-expanded"], dZ = { class: "channel-directory-actions" }, fZ = {
51070
+ }, [["__scopeId", "data-v-03a2f1dd"]]), lZ = { class: "channel-directory-manager" }, uZ = { class: "channel-directory-heading" }, dZ = ["aria-expanded"], fZ = { class: "channel-directory-actions" }, pZ = {
51055
51071
  "aria-label": "协作房间列表",
51056
51072
  class: "channel-room-list",
51057
51073
  "data-room-directory": ""
51058
- }, pZ = ["data-room-folder", "data-drag-folder"], mZ = [
51074
+ }, mZ = ["data-room-folder", "data-drag-folder"], hZ = [
51059
51075
  "disabled",
51060
51076
  "aria-label",
51061
51077
  "aria-expanded",
51062
51078
  "onKeydown",
51063
51079
  "onClick"
51064
- ], hZ = { class: "channel-folder-name" }, gZ = {
51080
+ ], gZ = { class: "channel-folder-name" }, _Z = {
51065
51081
  class: "channel-directory-count",
51066
51082
  "aria-hidden": "true"
51067
- }, _Z = { class: "channel-folder-actions" }, vZ = ["data-drop-folder"], yZ = {
51083
+ }, vZ = { class: "channel-folder-actions" }, yZ = ["data-drop-folder"], bZ = {
51068
51084
  key: 0,
51069
51085
  class: "channel-directory-empty",
51070
51086
  role: "status"
51071
- }, bZ = ["data-drag-room"], xZ = [
51087
+ }, xZ = ["data-drag-room"], SZ = [
51072
51088
  "aria-label",
51073
51089
  "disabled",
51074
51090
  "onKeydown"
51075
- ], SZ = [
51091
+ ], CZ = [
51076
51092
  "title",
51077
51093
  "aria-label",
51078
51094
  "aria-current",
51079
51095
  "onClick"
51080
- ], CZ = { class: "channel-room-actions" }, wZ = {
51096
+ ], wZ = { class: "channel-room-actions" }, TZ = {
51081
51097
  key: 0,
51082
51098
  class: "channel-directory-empty"
51083
- }, TZ = {
51099
+ }, EZ = {
51084
51100
  key: 0,
51085
51101
  class: "channel-archive-count"
51086
- }, EZ = {
51102
+ }, DZ = {
51087
51103
  key: 0,
51088
51104
  role: "status",
51089
51105
  class: "channel-directory-notice"
51090
- }, DZ = {
51106
+ }, OZ = {
51091
51107
  key: 1,
51092
51108
  role: "alert",
51093
51109
  class: "channel-directory-error"
51094
- }, OZ = {
51110
+ }, kZ = {
51095
51111
  __name: "ChannelDirectory",
51096
51112
  emits: [
51097
51113
  "select",
@@ -51322,8 +51338,8 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51322
51338
  ];
51323
51339
  }
51324
51340
  return (e, t) => {
51325
- let u = MA, m = sA, h = $V, b = CH, x = QX;
51326
- return U(), W("div", cZ, [
51341
+ let u = MA, m = sA, h = $V, b = CH, x = $X;
51342
+ return U(), W("div", lZ, [
51327
51343
  q(u, {
51328
51344
  label: "新建对话",
51329
51345
  icon: "i-lucide-plus",
@@ -51332,12 +51348,12 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51332
51348
  disabled: I(r).directory_pending.includes("create-room"),
51333
51349
  onClick: t[0] ||= (e) => n("create", null)
51334
51350
  }, null, 8, ["disabled"]),
51335
- K("div", lZ, [K("button", {
51351
+ K("div", uZ, [K("button", {
51336
51352
  type: "button",
51337
51353
  class: "channel-section-toggle",
51338
51354
  "aria-expanded": _.value,
51339
51355
  onClick: t[1] ||= (e) => _.value = !_.value
51340
- }, [q(m, { name: _.value ? "i-lucide-chevron-down" : "i-lucide-chevron-right" }, null, 8, ["name"]), t[8] ||= J("协作房间", -1)], 8, uZ), K("div", dZ, [
51356
+ }, [q(m, { name: _.value ? "i-lucide-chevron-down" : "i-lucide-chevron-right" }, null, 8, ["name"]), t[8] ||= J("协作房间", -1)], 8, dZ), K("div", fZ, [
51341
51357
  q(h, { text: "新建文件夹" }, {
51342
51358
  default: L(() => [q(u, {
51343
51359
  icon: "i-lucide-plus",
@@ -51379,7 +51395,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51379
51395
  onChange: g
51380
51396
  }, null, 544)
51381
51397
  ])]),
51382
- vr(K("nav", fZ, [(U(!0), W(H, null, B(l.value, (e, s) => (U(), W("section", {
51398
+ vr(K("nav", pZ, [(U(!0), W(H, null, B(l.value, (e, s) => (U(), W("section", {
51383
51399
  key: e.order_id,
51384
51400
  class: "channel-folder-section",
51385
51401
  "data-room-folder": e.id,
@@ -51408,9 +51424,9 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51408
51424
  }, [
51409
51425
  q(m, { name: v.value.has(e.id) ? "i-lucide-chevron-right" : "i-lucide-chevron-down" }, null, 8, ["name"]),
51410
51426
  q(m, { name: "i-lucide-folder" }),
51411
- K("span", hZ, P(e.name), 1),
51412
- K("small", gZ, P(e.pending ? "保存中" : e.rooms.length), 1)
51413
- ], 40, mZ), K("div", _Z, [q(h, { text: `在${e.name}中新建对话` }, {
51427
+ K("span", gZ, P(e.name), 1),
51428
+ K("small", _Z, P(e.pending ? "保存中" : e.rooms.length), 1)
51429
+ ], 40, hZ), K("div", vZ, [q(h, { text: `在${e.name}中新建对话` }, {
51414
51430
  default: L(() => [q(u, {
51415
51431
  icon: "i-lucide-square-pen",
51416
51432
  "aria-label": `在${e.name}中新建对话`,
@@ -51447,7 +51463,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51447
51463
  key: 1,
51448
51464
  class: j(e.id ? "channel-folder-rooms" : "channel-root-rooms"),
51449
51465
  "data-drop-folder": e.id ? void 0 : ""
51450
- }, [I(r).creating_room && (I(r).creating_room.folder_id || "") === e.id ? (U(), W("p", yZ, "正在创建:" + P(I(r).creating_room.title), 1)) : Y("", !0), (U(!0), W(H, null, B(e.rooms, (s, c) => (U(), G(x, {
51466
+ }, [I(r).creating_room && (I(r).creating_room.folder_id || "") === e.id ? (U(), W("p", bZ, "正在创建:" + P(I(r).creating_room.title), 1)) : Y("", !0), (U(!0), W(H, null, B(e.rooms, (s, c) => (U(), G(x, {
51451
51467
  key: s.id,
51452
51468
  items: C(s, c, s.folder_id || null, e.rooms.length),
51453
51469
  ui: { content: "channel-menu channel-topic-menu" }
@@ -51472,7 +51488,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51472
51488
  direction: 1,
51473
51489
  folder_id: s.folder_id || null
51474
51490
  }), ["prevent"]), ["down"])]
51475
- }, [q(m, { name: "i-lucide-grip-vertical" })], 40, xZ),
51491
+ }, [q(m, { name: "i-lucide-grip-vertical" })], 40, SZ),
51476
51492
  K("button", {
51477
51493
  class: "channel-room-select",
51478
51494
  "data-drag-title": "",
@@ -51481,8 +51497,8 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51481
51497
  "aria-current": s.id === I(r).room?.id ? "page" : void 0,
51482
51498
  onPointerdown: t[5] ||= (e) => !I(o) && I(i).start_drag(e),
51483
51499
  onClick: (e) => n("select", s.id)
51484
- }, [K("span", null, P(s.title), 1)], 40, SZ),
51485
- K("div", CZ, [q(h, {
51500
+ }, [K("span", null, P(s.title), 1)], 40, CZ),
51501
+ K("div", wZ, [q(h, {
51486
51502
  text: s.archived ? "恢复房间" : "存档房间",
51487
51503
  ui: { content: "channel-topic-tooltip" }
51488
51504
  }, {
@@ -51523,9 +51539,9 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51523
51539
  }, null, 8, ["aria-label"])]),
51524
51540
  _: 2
51525
51541
  }, 1032, ["items"])])
51526
- ], 10, bZ)]),
51542
+ ], 10, xZ)]),
51527
51543
  _: 2
51528
- }, 1032, ["items"]))), 128))], 10, vZ)) : Y("", !0)], 8, pZ))), 128)), s.value.length ? Y("", !0) : (U(), W("p", wZ, "暂无协作房间"))], 512), [[Vc, _.value]]),
51544
+ }, 1032, ["items"]))), 128))], 10, yZ)) : Y("", !0)], 8, mZ))), 128)), s.value.length ? Y("", !0) : (U(), W("p", TZ, "暂无协作房间"))], 512), [[Vc, _.value]]),
51529
51545
  vr(q(u, {
51530
51546
  icon: "i-lucide-archive",
51531
51547
  color: "neutral",
@@ -51534,44 +51550,44 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51534
51550
  "aria-haspopup": "dialog",
51535
51551
  onClick: t[6] ||= (e) => n("archives")
51536
51552
  }, {
51537
- default: L(() => [t[9] ||= K("span", { class: "channel-archive-label" }, "已存档", -1), c.value ? (U(), W("small", TZ, P(c.value), 1)) : Y("", !0)]),
51553
+ default: L(() => [t[9] ||= K("span", { class: "channel-archive-label" }, "已存档", -1), c.value ? (U(), W("small", EZ, P(c.value), 1)) : Y("", !0)]),
51538
51554
  _: 1
51539
51555
  }, 512), [[Vc, _.value]]),
51540
- I(r).directory_notice ? (U(), W("p", EZ, P(I(r).directory_notice), 1)) : Y("", !0),
51541
- I(r).directory_error ? (U(), W("p", DZ, P(I(r).directory_error), 1)) : Y("", !0),
51542
- q(sZ, {
51556
+ I(r).directory_notice ? (U(), W("p", DZ, P(I(r).directory_notice), 1)) : Y("", !0),
51557
+ I(r).directory_error ? (U(), W("p", OZ, P(I(r).directory_error), 1)) : Y("", !0),
51558
+ q(cZ, {
51543
51559
  open: p.value,
51544
51560
  "onUpdate:open": t[7] ||= (e) => p.value = e
51545
51561
  }, null, 8, ["open"])
51546
51562
  ]);
51547
51563
  };
51548
51564
  }
51549
- }, kZ = {
51565
+ }, AZ = {
51550
51566
  key: 0,
51551
51567
  class: "pb-invite",
51552
51568
  "aria-label": "启动手动成员"
51553
- }, AZ = { class: "pb-invite-lead" }, jZ = {
51569
+ }, jZ = { class: "pb-invite-lead" }, MZ = {
51554
51570
  key: 0,
51555
51571
  role: "alert",
51556
51572
  class: "pb-free-note is-error"
51557
- }, MZ = { class: "pb-invite-launches" }, NZ = { class: "pb-invite-footer" }, PZ = {
51573
+ }, NZ = { class: "pb-invite-launches" }, PZ = { class: "pb-invite-footer" }, FZ = {
51558
51574
  key: 0,
51559
51575
  class: "pb-invite-cards"
51560
- }, FZ = {
51576
+ }, IZ = {
51561
51577
  key: 0,
51562
51578
  class: "fine-print"
51563
- }, IZ = ["aria-hidden"], LZ = {
51579
+ }, LZ = ["aria-hidden"], RZ = {
51564
51580
  key: 2,
51565
51581
  class: "pb-invite-empty"
51566
- }, RZ = {
51582
+ }, zZ = {
51567
51583
  key: 3,
51568
51584
  role: "alert",
51569
51585
  class: "fine-print"
51570
- }, zZ = {
51586
+ }, BZ = {
51571
51587
  key: 4,
51572
51588
  role: "alert",
51573
51589
  class: "pb-free-note is-error"
51574
- }, BZ = { class: "pb-invite-footer" }, VZ = 2e3, HZ = "preset:", UZ = /*#__PURE__*/ YH({
51590
+ }, VZ = { class: "pb-invite-footer" }, HZ = 2e3, UZ = "preset:", WZ = /*#__PURE__*/ YH({
51575
51591
  __name: "InviteDialog",
51576
51592
  props: /*@__PURE__*/ Fa({ description: {
51577
51593
  type: String,
@@ -51589,7 +51605,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51589
51605
  async function u(e) {
51590
51606
  clearTimeout(l), c.value = "", await i("copy_member_launch", e) && (c.value = e, l = setTimeout(() => {
51591
51607
  c.value = "";
51592
- }, VZ));
51608
+ }, HZ));
51593
51609
  }
51594
51610
  let d = /* @__PURE__ */ F([]), f = 0, p = /* @__PURE__ */ F([]), m = /* @__PURE__ */ F(!1), h = Z(() => Object.keys(r.launch_clients)), g = Z(() => n.value && r.expert_presets()), _ = Z(() => (o.value.members || []).map((e) => e.name)), v = (e) => _.value.filter((t) => r.platform_of(t) === e).length, y = Z(() => [...d.value.filter((e) => e.mode !== "manual"), ...d.value.filter((e) => e.mode === "manual")]), b = Z(() => {
51595
51611
  let e = /* @__PURE__ */ new Set([..._.value, ...d.value.filter((e) => e.preset).map((e) => e.name)]);
@@ -51628,7 +51644,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51628
51644
  title: v(e) ? `已在场 ${v(e)} 位 · 将添加新实例` : "",
51629
51645
  aria_label: `添加 ${e} 实例`
51630
51646
  })), ...g.value.map((e, t) => ({
51631
- value: HZ + e.name,
51647
+ value: UZ + e.name,
51632
51648
  name: e.label || e.name,
51633
51649
  ...r.identities[r.platform_of(e.name)],
51634
51650
  separated: t === 0,
@@ -51636,7 +51652,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51636
51652
  aria_label: `添加预设 ${e.label || e.name}`
51637
51653
  }))]);
51638
51654
  function T(e) {
51639
- if (!e.startsWith(HZ)) return C(e);
51655
+ if (!e.startsWith(UZ)) return C(e);
51640
51656
  let t = g.value.find((t) => t.name === e.slice(7));
51641
51657
  t && ee(t);
51642
51658
  }
@@ -51675,10 +51691,10 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51675
51691
  body: "dialog-body"
51676
51692
  }
51677
51693
  }, {
51678
- body: L(() => [p.value.length && !d.value.length ? (U(), W("div", kZ, [
51679
- K("p", AZ, P(p.value.length > 1 ? `${p.value.length} 位手动成员已加入` : "手动成员已加入") + ",把启动指令交给各自的 AI 会话,注册后才算到场。", 1),
51680
- I(n).access?.error ? (U(), W("p", jZ, P(I(n).access.error), 1)) : Y("", !0),
51681
- K("ul", MZ, [(U(!0), W(H, null, B(p.value, (e) => (U(), W("li", { key: e }, [
51694
+ body: L(() => [p.value.length && !d.value.length ? (U(), W("div", AZ, [
51695
+ K("p", jZ, P(p.value.length > 1 ? `${p.value.length} 位手动成员已加入` : "手动成员已加入") + ",把启动指令交给各自的 AI 会话,注册后才算到场。", 1),
51696
+ I(n).access?.error ? (U(), W("p", MZ, P(I(n).access.error), 1)) : Y("", !0),
51697
+ K("ul", NZ, [(U(!0), W(H, null, B(p.value, (e) => (U(), W("li", { key: e }, [
51682
51698
  q(l, {
51683
51699
  src: I(r).identities[I(r).platform_of(e)]?.icon,
51684
51700
  text: I(r).identities[I(r).platform_of(e)]?.initials,
@@ -51713,7 +51729,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51713
51729
  ])
51714
51730
  ]))), 128))]),
51715
51731
  o[3] ||= K("p", { class: "fine-print" }, "指令含该成员的凭证,只交给对应的会话;关闭后仍可在参与者列表中复制。", -1),
51716
- K("div", NZ, [q(f, {
51732
+ K("div", PZ, [q(f, {
51717
51733
  label: "完成",
51718
51734
  class: "channel-primary-button",
51719
51735
  onClick: o[0] ||= (e) => t.value = !1
@@ -51729,7 +51745,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51729
51745
  items: w.value,
51730
51746
  onAdd: T
51731
51747
  }, null, 8, ["items"]),
51732
- d.value.length ? (U(), W("div", PZ, [(U(!0), W(H, null, B(d.value, (e) => (U(), W("div", {
51748
+ d.value.length ? (U(), W("div", FZ, [(U(!0), W(H, null, B(d.value, (e) => (U(), W("div", {
51733
51749
  key: e.id,
51734
51750
  class: "pb-invite-pick"
51735
51751
  }, [q(MJ, {
@@ -51745,15 +51761,15 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51745
51761
  "status",
51746
51762
  "onMode",
51747
51763
  "onRemove"
51748
- ]), b.value.get(e) === e.name ? Y("", !0) : (U(), W("p", FZ, "同一 AI 已有实例,将以 " + P(b.value.get(e)) + " 加入,使用独立会话。", 1))]))), 128))])) : Y("", !0),
51764
+ ]), b.value.get(e) === e.name ? Y("", !0) : (U(), W("p", IZ, "同一 AI 已有实例,将以 " + P(b.value.get(e)) + " 加入,使用独立会话。", 1))]))), 128))])) : Y("", !0),
51749
51765
  d.value.length ? (U(), W("p", {
51750
51766
  key: 1,
51751
51767
  class: j(["fine-print", { "pb-invite-reserved": !(d.value.some((e) => e.mode === "manual") && d.value.some((e) => e.mode !== "manual")) }]),
51752
51768
  "aria-hidden": !(d.value.some((e) => e.mode === "manual") && d.value.some((e) => e.mode !== "manual"))
51753
- }, "手动启动的成员排在程序启动的成员之后加入队列。", 10, IZ)) : (U(), W("p", LZ, "选择一位或多位 AI(同一 AI 可重复添加),点卡片翻面设置软件、模型与项目权限。")),
51754
- d.value.some((e) => e.mode === "cli") && !I(n).launch.available ? (U(), W("p", RZ, "邀请需要本机服务,请在运行 AI 的电脑打开本机网站。")) : Y("", !0),
51755
- m.value && I(n).free_error ? (U(), W("p", zZ, P(I(n).free_error), 1)) : Y("", !0),
51756
- K("div", BZ, [q(f, {
51769
+ }, "手动启动的成员排在程序启动的成员之后加入队列。", 10, LZ)) : (U(), W("p", RZ, "选择一位或多位 AI(同一 AI 可重复添加),点卡片翻面设置软件、模型与项目权限。")),
51770
+ d.value.some((e) => e.mode === "cli") && !I(n).launch.available ? (U(), W("p", zZ, "邀请需要本机服务,请在运行 AI 的电脑打开本机网站。")) : Y("", !0),
51771
+ m.value && I(n).free_error ? (U(), W("p", BZ, P(I(n).free_error), 1)) : Y("", !0),
51772
+ K("div", VZ, [q(f, {
51757
51773
  label: "取消",
51758
51774
  color: "neutral",
51759
51775
  variant: "ghost",
@@ -51775,7 +51791,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51775
51791
  }, 8, ["open", "description"]);
51776
51792
  };
51777
51793
  }
51778
- }, [["__scopeId", "data-v-95048b60"]]), WZ = { class: "start-discussion-footer" }, GZ = 3, KZ = /*#__PURE__*/ YH({
51794
+ }, [["__scopeId", "data-v-95048b60"]]), GZ = { class: "start-discussion-footer" }, KZ = 3, qZ = /*#__PURE__*/ YH({
51779
51795
  __name: "StartDiscussionDialog",
51780
51796
  props: {
51781
51797
  open: {
@@ -51786,9 +51802,9 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51786
51802
  },
51787
51803
  emits: ["update:open"],
51788
51804
  setup(e) {
51789
- let t = ro(e, "open"), { view: n, act: r, pending: i } = xr("discussion"), a = /* @__PURE__ */ F(""), o = /* @__PURE__ */ F(GZ), s = /* @__PURE__ */ F(0), c = /* @__PURE__ */ F(""), l = /* @__PURE__ */ F(!1), u = /* @__PURE__ */ F(null);
51805
+ let t = ro(e, "open"), { view: n, act: r, pending: i } = xr("discussion"), a = /* @__PURE__ */ F(""), o = /* @__PURE__ */ F(KZ), s = /* @__PURE__ */ F(0), c = /* @__PURE__ */ F(""), l = /* @__PURE__ */ F(!1), u = /* @__PURE__ */ F(null);
51790
51806
  R(t, (e) => {
51791
- e && (a.value = "", o.value = GZ, s.value = 0, c.value = "", l.value = !1);
51807
+ e && (a.value = "", o.value = KZ, s.value = 0, c.value = "", l.value = !1);
51792
51808
  });
51793
51809
  async function d() {
51794
51810
  u.value?.settle();
@@ -51856,7 +51872,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51856
51872
  "minutes",
51857
51873
  "execution_minutes"
51858
51874
  ]),
51859
- K("div", WZ, [q(h, {
51875
+ K("div", GZ, [q(h, {
51860
51876
  label: "取消",
51861
51877
  color: "neutral",
51862
51878
  variant: "ghost",
@@ -51874,21 +51890,21 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51874
51890
  }, 8, ["open"]);
51875
51891
  };
51876
51892
  }
51877
- }, [["__scopeId", "data-v-dee972d6"]]), qZ = { class: "pb-status-line" }, JZ = { role: "status" }, YZ = {
51893
+ }, [["__scopeId", "data-v-dee972d6"]]), JZ = { class: "pb-status-line" }, YZ = { role: "status" }, XZ = {
51878
51894
  key: 0,
51879
51895
  class: "pb-status-detail"
51880
- }, XZ = { class: "pb-meters" }, ZZ = { class: "pb-meter-label" }, QZ = {
51896
+ }, ZZ = { class: "pb-meters" }, QZ = { class: "pb-meter-label" }, $Z = {
51881
51897
  key: 0,
51882
51898
  class: "pb-bar"
51883
- }, $Z = {
51899
+ }, eQ = {
51884
51900
  key: 0,
51885
51901
  class: "pb-section",
51886
51902
  "aria-label": "当前焦点"
51887
- }, eQ = {
51903
+ }, tQ = {
51888
51904
  key: 1,
51889
51905
  class: "pb-actions",
51890
51906
  "aria-label": "讨论操作"
51891
- }, tQ = { class: "progress-ending" }, nQ = ["disabled"], rQ = 90, iQ = {
51907
+ }, nQ = { class: "progress-ending" }, rQ = ["disabled"], iQ = 90, aQ = {
51892
51908
  __name: "ProgressBoard",
51893
51909
  setup(e) {
51894
51910
  let { view: t, bridge: n, act: r, pending: i } = xr("discussion"), a = Z(() => t.value.room), o = Z(() => a.value.session), s = Z(() => a.value.limits || {}), c = /* @__PURE__ */ F(0);
@@ -51954,24 +51970,24 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51954
51970
  class: j(["pb-status", `is-${h.value.tone}`]),
51955
51971
  "aria-label": "讨论状态"
51956
51972
  }, [
51957
- K("div", qZ, [t[6] ||= K("span", { class: "pb-dot" }, null, -1), K("strong", JZ, P(h.value.title), 1)]),
51958
- h.value.detail ? (U(), W("p", YZ, P(h.value.detail), 1)) : Y("", !0),
51959
- K("div", XZ, [(U(!0), W(H, null, B(_.value, (e) => (U(), W("div", {
51973
+ K("div", JZ, [t[6] ||= K("span", { class: "pb-dot" }, null, -1), K("strong", YZ, P(h.value.title), 1)]),
51974
+ h.value.detail ? (U(), W("p", XZ, P(h.value.detail), 1)) : Y("", !0),
51975
+ K("div", ZZ, [(U(!0), W(H, null, B(_.value, (e) => (U(), W("div", {
51960
51976
  key: e.label,
51961
51977
  class: "pb-meter"
51962
- }, [K("div", ZZ, [K("span", null, P(e.label), 1), K("b", null, P(e.text), 1)]), e.ratio === null ? Y("", !0) : (U(), W("div", QZ, [K("i", { style: A({ width: `${Math.min(100, Math.round(e.ratio * 100))}%` }) }, null, 4)]))]))), 128))])
51978
+ }, [K("div", QZ, [K("span", null, P(e.label), 1), K("b", null, P(e.text), 1)]), e.ratio === null ? Y("", !0) : (U(), W("div", $Z, [K("i", { style: A({ width: `${Math.min(100, Math.round(e.ratio * 100))}%` }) }, null, 4)]))]))), 128))])
51963
51979
  ], 2),
51964
- m.value ? (U(), W("section", $Z, [
51980
+ m.value ? (U(), W("section", eQ, [
51965
51981
  t[7] ||= K("h4", null, "当前焦点", -1),
51966
51982
  K("p", { class: j(["pb-focus", { "is-expanded": p.value }]) }, P(m.value), 3),
51967
- m.value.length > rQ ? (U(), W("button", {
51983
+ m.value.length > iQ ? (U(), W("button", {
51968
51984
  key: 0,
51969
51985
  type: "button",
51970
51986
  class: "pb-link",
51971
51987
  onClick: t[0] ||= (e) => p.value = !p.value
51972
51988
  }, P(p.value ? "收起" : "展开"), 1)) : Y("", !0)
51973
51989
  ])) : Y("", !0),
51974
- a.value.archived ? Y("", !0) : (U(), W("section", eQ, [
51990
+ a.value.archived ? Y("", !0) : (U(), W("section", tQ, [
51975
51991
  l.value ? (U(), G(o, {
51976
51992
  key: 0,
51977
51993
  icon: "i-lucide-play",
@@ -52034,51 +52050,51 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
52034
52050
  body: "dialog-body"
52035
52051
  }
52036
52052
  }, {
52037
- body: L(() => [K("div", tQ, [K("button", {
52053
+ body: L(() => [K("div", nQ, [K("button", {
52038
52054
  type: "button",
52039
52055
  class: "progress-ending-option",
52040
52056
  disabled: !!I(i),
52041
52057
  onClick: v
52042
- }, [...t[8] ||= [K("strong", null, "结束讨论", -1), K("span", null, "保留全部记录,房间回到自由协作;需要总结时可直接请主持人写一份。", -1)]], 8, nQ)])]),
52058
+ }, [...t[8] ||= [K("strong", null, "结束讨论", -1), K("span", null, "保留全部记录,房间回到自由协作;需要总结时可直接请主持人写一份。", -1)]], 8, rQ)])]),
52043
52059
  _: 1
52044
52060
  }, 8, ["open"])
52045
52061
  ], 64);
52046
52062
  };
52047
52063
  }
52048
- }, aQ = { class: "speaking-order" }, oQ = {
52064
+ }, oQ = { class: "speaking-order" }, sQ = {
52049
52065
  key: 0,
52050
52066
  class: "speaking-order-divider",
52051
52067
  "aria-hidden": "true"
52052
- }, sQ = ["data-key", "data-movable"], cQ = [
52068
+ }, cQ = ["data-key", "data-movable"], lQ = [
52053
52069
  "aria-disabled",
52054
52070
  "aria-label",
52055
52071
  "title",
52056
52072
  "onPointerdown",
52057
52073
  "onKeydown"
52058
- ], lQ = { class: "speaking-order-number" }, uQ = {
52074
+ ], uQ = { class: "speaking-order-number" }, dQ = {
52059
52075
  key: 1,
52060
52076
  class: "speaking-order-place",
52061
52077
  title: "已发言",
52062
52078
  "aria-label": "已发言"
52063
- }, dQ = ["title"], fQ = {
52079
+ }, fQ = ["title"], pQ = {
52064
52080
  key: 0,
52065
52081
  class: "speaking-order-later"
52066
- }, pQ = {
52082
+ }, mQ = {
52067
52083
  key: 1,
52068
52084
  class: "speaking-order-divider",
52069
52085
  "aria-hidden": "true"
52070
- }, mQ = {
52086
+ }, hQ = {
52071
52087
  key: 0,
52072
52088
  role: "status",
52073
52089
  class: "pb-free-note"
52074
- }, hQ = {
52090
+ }, gQ = {
52075
52091
  key: 1,
52076
52092
  role: "alert",
52077
52093
  class: "pb-free-note is-error"
52078
- }, gQ = {
52094
+ }, _Q = {
52079
52095
  class: "speaking-order-live",
52080
52096
  "aria-live": "polite"
52081
- }, _Q = "发言顺序刚有变化,已更新为最新顺序,请重新调整", vQ = /*#__PURE__*/ YH({
52097
+ }, vQ = "发言顺序刚有变化,已更新为最新顺序,请重新调整", yQ = /*#__PURE__*/ YH({
52082
52098
  __name: "SpeakingOrder",
52083
52099
  props: {
52084
52100
  away: {
@@ -52098,7 +52114,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
52098
52114
  }), c = Z(() => s.value.kind === "default" ? "idle" : "queued"), l = Z(() => !!n.value.access?.can_manage && !o.value.archived && s.value.movable.length > 1), u = {
52099
52115
  queue: "不在本次依次回答中",
52100
52116
  turns: "本轮未安排"
52101
- }, d = Z(() => s.value.kind === "default" ? "拖动设置默认发言顺序,@全体依次 按此顺序;聚焦后可用上下方向键" : "拖动调整还没发言的顺序,立即生效;聚焦后可用上下方向键"), f = /* @__PURE__ */ F(!1), p = Z(() => f.value ? _Q : 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("");
52117
+ }, d = Z(() => s.value.kind === "default" ? "拖动设置默认发言顺序,@全体依次 按此顺序;聚焦后可用上下方向键" : "拖动调整还没发言的顺序,立即生效;聚焦后可用上下方向键"), f = /* @__PURE__ */ F(!1), p = Z(() => f.value ? vQ : 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("");
52102
52118
  R(() => s.value.revision, () => {
52103
52119
  g.value = null;
52104
52120
  }), R(() => o.value.id, () => {
@@ -52185,13 +52201,13 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
52185
52201
  }
52186
52202
  return (e, n) => {
52187
52203
  let i = sA;
52188
- return U(), W("div", aQ, [
52204
+ return U(), W("div", oQ, [
52189
52205
  K("ul", {
52190
52206
  ref_key: "list",
52191
52207
  ref: m,
52192
52208
  class: j(["pb-members", { "is-dragging": h.value }])
52193
52209
  }, [
52194
- (U(!0), W(H, null, B(y.value, (t, r) => (U(), W(H, { key: t.key }, [t.outside ? (U(), W("li", oQ, [K("span", null, P(u[s.value.kind]), 1)])) : Y("", !0), K("li", {
52210
+ (U(!0), W(H, null, B(y.value, (t, r) => (U(), W(H, { key: t.key }, [t.outside ? (U(), W("li", sQ, [K("span", null, P(u[s.value.kind]), 1)])) : Y("", !0), K("li", {
52195
52211
  class: j(["pb-member speaking-order-row", [
52196
52212
  `is-${t.state}`,
52197
52213
  ee(r),
@@ -52212,19 +52228,19 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
52212
52228
  onPointercancel: n[0] ||= (e) => w(e, !0),
52213
52229
  onLostpointercapture: n[1] ||= (e) => w(e, !0),
52214
52230
  onKeydown: [fu((e) => E(e, b(r), -1), ["up"]), fu((e) => E(e, b(r), 1), ["down"])]
52215
- }, [K("span", lQ, P(t.place), 1), q(i, {
52231
+ }, [K("span", uQ, P(t.place), 1), q(i, {
52216
52232
  name: "i-lucide-grip-vertical",
52217
52233
  class: "speaking-order-handle"
52218
- })], 40, cQ)) : t.state === "done" ? (U(), W("span", uQ, [q(i, { name: "i-lucide-check" })])) : (U(), W("span", {
52234
+ })], 40, lQ)) : t.state === "done" ? (U(), W("span", dQ, [q(i, { name: "i-lucide-check" })])) : (U(), W("span", {
52219
52235
  key: 2,
52220
52236
  class: "speaking-order-place",
52221
52237
  title: t.state === "speaking" ? "正在发言" : void 0
52222
- }, P(t.place || ""), 9, dQ)), V(e.$slots, "default", {
52238
+ }, P(t.place || ""), 9, fQ)), V(e.$slots, "default", {
52223
52239
  item: t,
52224
52240
  place: t.place
52225
- }, void 0, !0)], 10, sQ)], 64))), 128)),
52226
- s.value.later?.length ? (U(), W("li", fQ, [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),
52227
- t.away.length ? (U(), W("li", pQ, [...n[2] ||= [K("span", null, "已离开", -1)]])) : Y("", !0),
52241
+ }, void 0, !0)], 10, cQ)], 64))), 128)),
52242
+ s.value.later?.length ? (U(), W("li", pQ, [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),
52243
+ t.away.length ? (U(), W("li", mQ, [...n[2] ||= [K("span", null, "已离开", -1)]])) : Y("", !0),
52228
52244
  (U(!0), W(H, null, B(t.away, (t) => (U(), W("li", {
52229
52245
  key: `away-${t}`,
52230
52246
  class: "pb-member speaking-order-row is-away"
@@ -52236,13 +52252,13 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
52236
52252
  place: 0
52237
52253
  }, void 0, !0)]))), 128))
52238
52254
  ], 2),
52239
- p.value === _Q ? (U(), W("p", mQ, P(p.value), 1)) : p.value ? (U(), W("p", hQ, P(p.value), 1)) : Y("", !0),
52240
- K("p", gQ, P(_.value), 1)
52255
+ p.value === vQ ? (U(), W("p", hQ, P(p.value), 1)) : p.value ? (U(), W("p", gQ, P(p.value), 1)) : Y("", !0),
52256
+ K("p", _Q, P(_.value), 1)
52241
52257
  ]);
52242
52258
  };
52243
52259
  }
52244
- }, [["__scopeId", "data-v-dc33a051"]]), yQ = ["dispatched", "started"], bQ = (e) => e.pending > 0 || yQ.includes(e.execution?.status);
52245
- function xQ(e, { view: t, act: n, describe: r }) {
52260
+ }, [["__scopeId", "data-v-dc33a051"]]), bQ = ["dispatched", "started"], xQ = (e) => e.pending > 0 || bQ.includes(e.execution?.status);
52261
+ function SQ(e, { view: t, act: n, describe: r }) {
52246
52262
  let i = t.access, a = i?.members?.find((t) => t.name === e.name)?.available, o = !i?.can_manage, s = e.manual_source === "web" || e.access === "online", c = ["active", "paused"].includes(t.room?.session?.status) && e.role === "host", l = (t, r, i, a = {}) => ({
52247
52263
  label: t,
52248
52264
  icon: r,
@@ -52288,7 +52304,7 @@ function xQ(e, { view: t, act: n, describe: r }) {
52288
52304
  }] : []
52289
52305
  ],
52290
52306
  [
52291
- ...bQ(e) ? [l("停止", "i-lucide-square", "interrupt")] : [],
52307
+ ...xQ(e) ? [l("停止", "i-lucide-square", "interrupt")] : [],
52292
52308
  ...s && e.pending ? [{
52293
52309
  label: "复制阅读通知",
52294
52310
  icon: "i-lucide-copy",
@@ -52309,54 +52325,54 @@ function xQ(e, { view: t, act: n, describe: r }) {
52309
52325
  }
52310
52326
  //#endregion
52311
52327
  //#region frontend/FreeBoard.vue
52312
- var SQ = { class: "progress-board is-docked" }, CQ = { class: "pb-header" }, wQ = { class: "pb-mode" }, TQ = { class: "pb-status-line" }, EQ = { role: "status" }, DQ = {
52328
+ var CQ = { class: "progress-board is-docked" }, wQ = { class: "pb-header" }, TQ = { class: "pb-mode" }, EQ = { class: "pb-status-line" }, DQ = { role: "status" }, OQ = {
52313
52329
  key: 0,
52314
52330
  class: "pb-status-detail"
52315
- }, OQ = {
52331
+ }, kQ = {
52316
52332
  key: 1,
52317
52333
  class: "pb-chain-actions"
52318
- }, kQ = { class: "pb-meters" }, AQ = { class: "pb-meter-label" }, jQ = {
52334
+ }, AQ = { class: "pb-meters" }, jQ = { class: "pb-meter-label" }, MQ = {
52319
52335
  key: 0,
52320
52336
  class: "pb-bar"
52321
- }, MQ = {
52337
+ }, NQ = {
52322
52338
  key: 2,
52323
52339
  class: "pb-section",
52324
52340
  "aria-label": "当前任务"
52325
- }, NQ = {
52341
+ }, PQ = {
52326
52342
  class: "pb-section",
52327
52343
  "aria-label": "发言顺序"
52328
- }, PQ = { class: "pb-member-body" }, FQ = ["title"], IQ = ["title"], LQ = ["title"], RQ = ["title"], zQ = {
52344
+ }, FQ = { class: "pb-member-body" }, IQ = ["title"], LQ = ["title"], RQ = ["title"], zQ = ["title"], BQ = {
52329
52345
  key: 0,
52330
52346
  role: "alert",
52331
52347
  class: "pb-free-note is-error"
52332
- }, BQ = {
52348
+ }, VQ = {
52333
52349
  key: 1,
52334
52350
  role: "status",
52335
52351
  class: "pb-free-note"
52336
- }, VQ = {
52352
+ }, HQ = {
52337
52353
  key: 2,
52338
52354
  role: "alert",
52339
52355
  class: "pb-free-note is-error"
52340
- }, HQ = {
52356
+ }, UQ = {
52341
52357
  key: 3,
52342
52358
  role: "status",
52343
52359
  class: "pb-free-note"
52344
- }, UQ = {
52360
+ }, WQ = {
52345
52361
  key: 3,
52346
52362
  class: "pb-section",
52347
52363
  "aria-label": "头脑风暴"
52348
- }, WQ = ["onClick"], GQ = {
52364
+ }, GQ = ["onClick"], KQ = {
52349
52365
  key: 4,
52350
52366
  class: "pb-actions",
52351
52367
  "aria-label": "操作"
52352
- }, KQ = {
52368
+ }, qQ = {
52353
52369
  key: 0,
52354
52370
  class: "pb-free-note"
52355
- }, qQ = {
52371
+ }, JQ = {
52356
52372
  key: 5,
52357
52373
  class: "pb-section",
52358
52374
  "aria-label": "执行耗时"
52359
- }, JQ = { class: "pb-timing-heading" }, YQ = { class: "pb-timings" }, XQ = { class: "pb-timing-who" }, ZQ = { class: "pb-timing-stages" }, QQ = 90, $Q = /*#__PURE__*/ YH({
52375
+ }, YQ = { class: "pb-timing-heading" }, XQ = { class: "pb-timings" }, ZQ = { class: "pb-timing-who" }, QQ = { class: "pb-timing-stages" }, $Q = 90, e$ = /*#__PURE__*/ YH({
52360
52376
  __name: "FreeBoard",
52361
52377
  setup(e) {
52362
52378
  let { view: t, bridge: n, act: r, pending: i } = xr("discussion"), a = ["dispatched", "started"], o = {
@@ -52371,7 +52387,7 @@ var SQ = { class: "progress-board is-docked" }, CQ = { class: "pb-header" }, wQ
52371
52387
  online: "网页代发"
52372
52388
  }, c = Z(() => t.value.room), l = Z(() => c.value.free || {}), u = Z(() => ["active", "paused"].includes(c.value.session?.status)), d = Z(() => u.value ? c.value.current_turn?.round || (c.value.completed_rounds || 0) + 1 : 0), f = Z(() => (l.value.members || []).find((e) => e.role === "host" && e.status === "active")), p = (e) => (l.value.members || []).find((t) => t.name === e), m = Z(() => (l.value.members || []).filter((e) => e.status === "away").map((e) => e.name)), h = (e) => n.display_name((l.value.members || []).find((t) => t.id === e)?.name || "成员"), g = (e) => e.access === "manual" && e.manual_source !== "web" && e.status === "active" && !e.registered_at;
52373
52389
  function _(e) {
52374
- return e.status === "away" ? "neutral" : g(e) ? "warning" : e.execution?.stale ? "error" : bQ(e) ? e.pending && !a.includes(e.execution?.status) ? "warning" : "primary" : e.execution?.status === "failed" ? "error" : "success";
52390
+ return e.status === "away" ? "neutral" : g(e) ? "warning" : e.execution?.stale ? "error" : xQ(e) ? e.pending && !a.includes(e.execution?.status) ? "warning" : "primary" : e.execution?.status === "failed" ? "error" : "success";
52375
52391
  }
52376
52392
  function v(e, t) {
52377
52393
  if (e.status === "away") return "已离开:不会被唤醒,可请回";
@@ -52403,7 +52419,7 @@ var SQ = { class: "progress-board is-docked" }, CQ = { class: "pb-header" }, wQ
52403
52419
  title: "已存档",
52404
52420
  detail: ""
52405
52421
  };
52406
- let e = (l.value.members || []).filter(bQ);
52422
+ let e = (l.value.members || []).filter(xQ);
52407
52423
  if (e.some((e) => e.execution?.stale)) return {
52408
52424
  tone: "error",
52409
52425
  title: "执行失联",
@@ -52471,7 +52487,7 @@ var SQ = { class: "progress-board is-docked" }, CQ = { class: "pb-header" }, wQ
52471
52487
  return e == null ? "—" : e < 60 ? `${e}秒` : e < 3600 ? `${Math.floor(e / 60)}分${String(e % 60).padStart(2, "0")}秒` : `${Math.floor(e / 3600)}小时${Math.floor(e % 3600 / 60)}分`;
52472
52488
  }
52473
52489
  function re(e) {
52474
- return xQ(e, {
52490
+ return SQ(e, {
52475
52491
  view: t.value,
52476
52492
  act: r,
52477
52493
  describe: (e) => {
@@ -52496,16 +52512,16 @@ var SQ = { class: "progress-board is-docked" }, CQ = { class: "pb-header" }, wQ
52496
52512
  se.value = !1;
52497
52513
  }), (e, i) => {
52498
52514
  let a = MA, s = pA, g = sA, ee = CH;
52499
- return U(), W("div", SQ, [
52500
- K("header", CQ, [K("strong", null, P(u.value ? "讨论进度" : "自由协作"), 1), K("span", wQ, P(f.value ? `${I(n).display_name(f.value.name)} 主持` : "无主持人"), 1)]),
52501
- u.value ? (U(), G(iQ, { key: 0 })) : (U(), W("section", {
52515
+ return U(), W("div", CQ, [
52516
+ K("header", wQ, [K("strong", null, P(u.value ? "讨论进度" : "自由协作"), 1), K("span", TQ, P(f.value ? `${I(n).display_name(f.value.name)} 主持` : "无主持人"), 1)]),
52517
+ u.value ? (U(), G(aQ, { key: 0 })) : (U(), W("section", {
52502
52518
  key: 1,
52503
52519
  class: j(["pb-status", `is-${T.value.tone}`]),
52504
52520
  "aria-label": "房间状态"
52505
52521
  }, [
52506
- K("div", TQ, [i[6] ||= K("span", { class: "pb-dot" }, null, -1), K("strong", EQ, P(T.value.title), 1)]),
52507
- T.value.detail ? (U(), W("p", DQ, P(T.value.detail), 1)) : Y("", !0),
52508
- T.value.continue_chain && I(t).access?.can_manage ? (U(), W("div", OQ, [(U(!0), W(H, null, B(S.value, (e) => (U(), G(a, {
52522
+ K("div", EQ, [i[6] ||= K("span", { class: "pb-dot" }, null, -1), K("strong", DQ, P(T.value.title), 1)]),
52523
+ T.value.detail ? (U(), W("p", OQ, P(T.value.detail), 1)) : Y("", !0),
52524
+ T.value.continue_chain && I(t).access?.can_manage ? (U(), W("div", kQ, [(U(!0), W(H, null, B(S.value, (e) => (U(), G(a, {
52509
52525
  key: e,
52510
52526
  label: `继续 ${e} 轮`,
52511
52527
  icon: "i-lucide-play",
@@ -52521,24 +52537,24 @@ var SQ = { class: "progress-board is-docked" }, CQ = { class: "pb-header" }, wQ
52521
52537
  "disabled",
52522
52538
  "onClick"
52523
52539
  ]))), 128))])) : Y("", !0),
52524
- K("div", kQ, [(U(!0), W(H, null, B(E.value, (e) => (U(), W("div", {
52540
+ K("div", AQ, [(U(!0), W(H, null, B(E.value, (e) => (U(), W("div", {
52525
52541
  key: e.label,
52526
52542
  class: "pb-meter"
52527
- }, [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", jQ, [K("i", { style: A({ width: `${Math.min(100, Math.round(e.ratio * 100))}%` }) }, null, 4)]))]))), 128))])
52543
+ }, [K("div", jQ, [K("span", null, P(e.label), 1), K("b", null, P(e.text), 1)]), e.ratio === null ? Y("", !0) : (U(), W("div", MQ, [K("i", { style: A({ width: `${Math.min(100, Math.round(e.ratio * 100))}%` }) }, null, 4)]))]))), 128))])
52528
52544
  ], 2)),
52529
- D.value && !u.value ? (U(), W("section", MQ, [
52545
+ D.value && !u.value ? (U(), W("section", NQ, [
52530
52546
  i[7] ||= K("h4", null, "当前任务", -1),
52531
52547
  K("p", { class: j(["pb-focus", { "is-expanded": O.value }]) }, P(D.value), 3),
52532
- D.value.length > QQ ? (U(), W("button", {
52548
+ D.value.length > $Q ? (U(), W("button", {
52533
52549
  key: 0,
52534
52550
  type: "button",
52535
52551
  class: "pb-link",
52536
52552
  onClick: i[0] ||= (e) => O.value = !O.value
52537
52553
  }, P(O.value ? "收起" : "展开"), 1)) : Y("", !0)
52538
52554
  ])) : Y("", !0),
52539
- K("section", NQ, [
52555
+ K("section", PQ, [
52540
52556
  i[9] ||= K("h4", null, "发言顺序", -1),
52541
- q(vQ, {
52557
+ q(yQ, {
52542
52558
  away: m.value,
52543
52559
  round: d.value
52544
52560
  }, {
@@ -52555,7 +52571,7 @@ var SQ = { class: "progress-board is-docked" }, CQ = { class: "pb-header" }, wQ
52555
52571
  "alt",
52556
52572
  "class"
52557
52573
  ]),
52558
- K("div", PQ, [
52574
+ K("div", FQ, [
52559
52575
  K("div", {
52560
52576
  class: "pb-member-name",
52561
52577
  title: c.value.descriptions?.[r.name] || void 0
@@ -52566,17 +52582,17 @@ var SQ = { class: "progress-board is-docked" }, CQ = { class: "pb-header" }, wQ
52566
52582
  name: "i-lucide-crown",
52567
52583
  title: "主持人"
52568
52584
  })) : Y("", !0),
52569
- K("small", { title: b(r) || void 0 }, P(y(r)), 9, IQ)
52570
- ], 8, FQ),
52585
+ K("small", { title: b(r) || void 0 }, P(y(r)), 9, LQ)
52586
+ ], 8, IQ),
52571
52587
  x(r) ? (U(), W("div", {
52572
52588
  key: 0,
52573
52589
  class: "pb-member-model",
52574
52590
  title: I(n).participant_session_hint(r.name, c.value, I(t).launch.room_models)
52575
- }, P(x(r)), 9, LQ)) : Y("", !0),
52591
+ }, P(x(r)), 9, RQ)) : Y("", !0),
52576
52592
  K("div", { class: j(["pb-member-status", `is-${_(r)}`]) }, [i[8] ||= K("span", { class: "pb-dot" }, null, -1), K("span", {
52577
52593
  class: "pb-member-status-text",
52578
52594
  title: r.execution?.status === "failed" ? r.execution.result : void 0
52579
- }, P(v(r, e.state)), 9, RQ)], 2)
52595
+ }, P(v(r, e.state)), 9, zQ)], 2)
52580
52596
  ]),
52581
52597
  q(ee, {
52582
52598
  items: re(r),
@@ -52600,8 +52616,8 @@ var SQ = { class: "progress-board is-docked" }, CQ = { class: "pb-header" }, wQ
52600
52616
  key: e.executions.join("-"),
52601
52617
  class: "pb-free-note is-warning"
52602
52618
  }, "可能冲突:" + P(e.members.map((e) => I(n).display_name(e)).join(" 与 ")) + " 的重叠执行观察到 " + P(e.files.join("、")) + " 变化;修改者未确认。", 1))), 128)),
52603
- I(t).free_error ? (U(), W("p", zQ, P(I(t).free_error), 1)) : I(t).free_notice ? (U(), W("p", BQ, P(I(t).free_notice), 1)) : Y("", !0),
52604
- I(t).access?.error ? (U(), W("p", VQ, P(I(t).access.error), 1)) : I(t).access?.notice ? (U(), W("p", HQ, P(I(t).access.notice), 1)) : Y("", !0),
52619
+ I(t).free_error ? (U(), W("p", BQ, P(I(t).free_error), 1)) : I(t).free_notice ? (U(), W("p", VQ, P(I(t).free_notice), 1)) : Y("", !0),
52620
+ I(t).access?.error ? (U(), W("p", HQ, P(I(t).access.error), 1)) : I(t).access?.notice ? (U(), W("p", UQ, P(I(t).access.notice), 1)) : Y("", !0),
52605
52621
  c.value.archived ? Y("", !0) : (U(), G(a, {
52606
52622
  key: 4,
52607
52623
  icon: "i-lucide-plus",
@@ -52613,13 +52629,13 @@ var SQ = { class: "progress-board is-docked" }, CQ = { class: "pb-header" }, wQ
52613
52629
  onClick: i[1] ||= (e) => ie.value = !0
52614
52630
  }))
52615
52631
  ]),
52616
- c.value.linked_rooms?.length ? (U(), W("section", UQ, [i[10] ||= K("h4", null, "头脑风暴", -1), (U(!0), W(H, null, B(c.value.linked_rooms, (e) => (U(), W("button", {
52632
+ c.value.linked_rooms?.length ? (U(), W("section", WQ, [i[10] ||= K("h4", null, "头脑风暴", -1), (U(!0), W(H, null, B(c.value.linked_rooms, (e) => (U(), W("button", {
52617
52633
  key: e.id,
52618
52634
  type: "button",
52619
52635
  class: "pb-link pb-free-linked",
52620
52636
  onClick: (t) => I(r)("room", e.id)
52621
- }, [J(P(e.title), 1), K("small", null, P(I(n).phases[e.phase] || e.phase), 1)], 8, WQ))), 128))])) : Y("", !0),
52622
- !c.value.archived && !u.value ? (U(), W("section", GQ, [q(a, {
52637
+ }, [J(P(e.title), 1), K("small", null, P(I(n).phases[e.phase] || e.phase), 1)], 8, GQ))), 128))])) : Y("", !0),
52638
+ !c.value.archived && !u.value ? (U(), W("section", KQ, [q(a, {
52623
52639
  icon: "i-lucide-messages-square",
52624
52640
  label: "开启讨论",
52625
52641
  size: "sm",
@@ -52629,13 +52645,13 @@ var SQ = { class: "progress-board is-docked" }, CQ = { class: "pb-header" }, wQ
52629
52645
  title: "由主持人推进成员轮流发言,到上限或结束后房间回到自由协作",
52630
52646
  disabled: !ce.value,
52631
52647
  onClick: i[2] ||= (e) => se.value = !0
52632
- }, null, 8, ["disabled"]), ce.value ? Y("", !0) : (U(), W("p", KQ, "开启讨论需要一位由本机唤醒的 AI 主持人。"))])) : Y("", !0),
52633
- te.value.items.length ? (U(), W("section", qQ, [K("div", JQ, [i[11] ||= K("h4", null, "耗时", -1), K("small", null, "共 " + P(te.value.items.length) + " 次执行 · " + P(ne(te.value.total)), 1)]), K("details", YQ, [i[12] ||= K("summary", null, "查看每次执行", -1), K("ol", null, [(U(!0), W(H, null, B(te.value.items, (e) => (U(), W("li", { key: e.id }, [K("span", XQ, [J("#" + P(e.id) + " " + P(h(e.member_id)), 1), K("small", null, P(o[e.status] || e.status), 1)]), K("span", ZQ, [K("span", null, "用时 " + P(ne(e.seconds)), 1)])]))), 128))])])])) : Y("", !0),
52634
- q(KZ, {
52648
+ }, null, 8, ["disabled"]), ce.value ? Y("", !0) : (U(), W("p", qQ, "开启讨论需要一位由本机唤醒的 AI 主持人。"))])) : Y("", !0),
52649
+ te.value.items.length ? (U(), W("section", JQ, [K("div", YQ, [i[11] ||= K("h4", null, "耗时", -1), K("small", null, "共 " + P(te.value.items.length) + " 次执行 · " + P(ne(te.value.total)), 1)]), K("details", XQ, [i[12] ||= K("summary", null, "查看每次执行", -1), K("ol", null, [(U(!0), W(H, null, B(te.value.items, (e) => (U(), W("li", { key: e.id }, [K("span", ZQ, [J("#" + P(e.id) + " " + P(h(e.member_id)), 1), K("small", null, P(o[e.status] || e.status), 1)]), K("span", QQ, [K("span", null, "用时 " + P(ne(e.seconds)), 1)])]))), 128))])])])) : Y("", !0),
52650
+ q(qZ, {
52635
52651
  open: se.value,
52636
52652
  "onUpdate:open": i[3] ||= (e) => se.value = e
52637
52653
  }, null, 8, ["open"]),
52638
- q(UZ, {
52654
+ q(WZ, {
52639
52655
  open: ie.value,
52640
52656
  "onUpdate:open": i[4] ||= (e) => ie.value = e,
52641
52657
  description: "新成员加入后不打断其他成员;点卡片翻面可设置软件、模型、项目权限和要续接的已有会话。"
@@ -52662,7 +52678,7 @@ var SQ = { class: "progress-board is-docked" }, CQ = { class: "pb-header" }, wQ
52662
52678
  ]);
52663
52679
  };
52664
52680
  }
52665
- }, [["__scopeId", "data-v-81d8efa9"]]), e$ = { class: "progress-panel-anchor" }, t$ = ["aria-expanded", "aria-label"], n$ = { class: "progress-chip-text" }, r$ = { class: "progress-chip-rounds" }, i$ = {
52681
+ }, [["__scopeId", "data-v-81d8efa9"]]), t$ = { class: "progress-panel-anchor" }, n$ = ["aria-expanded", "aria-label"], r$ = { class: "progress-chip-text" }, i$ = { class: "progress-chip-rounds" }, a$ = {
52666
52682
  __name: "ProgressPanel",
52667
52683
  setup(e) {
52668
52684
  let { view: t, bridge: n } = xr("discussion"), r = /* @__PURE__ */ F(!1), i = Z(() => t.value.room), a = Z(() => i.value.limits || {}), o = Z(() => {
@@ -52689,7 +52705,7 @@ var SQ = { class: "progress-board is-docked" }, CQ = { class: "pb-header" }, wQ
52689
52705
  }), 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}`);
52690
52706
  return (e, t) => {
52691
52707
  let n = $V, a = NV;
52692
- return U(), W("div", e$, [q(n, { text: "查看讨论进度" }, {
52708
+ return U(), W("div", t$, [q(n, { text: "查看讨论进度" }, {
52693
52709
  default: L(() => [K("button", {
52694
52710
  type: "button",
52695
52711
  class: j(["progress-chip", `is-${o.value.tone}`]),
@@ -52697,7 +52713,7 @@ var SQ = { class: "progress-board is-docked" }, CQ = { class: "pb-header" }, wQ
52697
52713
  "aria-expanded": r.value,
52698
52714
  "aria-label": `查看讨论进度:${c.value}`,
52699
52715
  onClick: t[0] ||= (e) => r.value = !0
52700
- }, [t[2] ||= K("span", { class: "progress-dot" }, null, -1), K("span", n$, [J(P(o.value.title), 1), K("span", r$, " · " + P(s.value), 1)])], 10, t$)]),
52716
+ }, [t[2] ||= K("span", { class: "progress-dot" }, null, -1), K("span", r$, [J(P(o.value.title), 1), K("span", i$, " · " + P(s.value), 1)])], 10, n$)]),
52701
52717
  _: 1
52702
52718
  }), q(a, {
52703
52719
  open: r.value,
@@ -52710,36 +52726,36 @@ var SQ = { class: "progress-board is-docked" }, CQ = { class: "pb-header" }, wQ
52710
52726
  body: "progress-drawer-body"
52711
52727
  }
52712
52728
  }, {
52713
- body: L(() => [q($Q)]),
52729
+ body: L(() => [q(e$)]),
52714
52730
  _: 1
52715
52731
  }, 8, ["open", "description"])]);
52716
52732
  };
52717
52733
  }
52718
- }, a$ = {
52734
+ }, o$ = {
52719
52735
  class: "merged-section discussion-history",
52720
52736
  "aria-label": "讨论记录"
52721
- }, o$ = {
52737
+ }, s$ = {
52722
52738
  key: 0,
52723
52739
  class: "fine-print"
52724
- }, s$ = { class: "history-timeline" }, c$ = {
52740
+ }, c$ = { class: "history-timeline" }, l$ = {
52725
52741
  key: 0,
52726
52742
  class: "history-free"
52727
- }, l$ = {
52743
+ }, u$ = {
52728
52744
  key: 1,
52729
52745
  class: "history-discussion"
52730
- }, u$ = { class: "history-meta" }, d$ = {
52746
+ }, d$ = { class: "history-meta" }, f$ = {
52731
52747
  key: 0,
52732
52748
  class: "fine-print"
52733
- }, f$ = {
52749
+ }, p$ = {
52734
52750
  key: 1,
52735
52751
  class: "fine-print"
52736
- }, p$ = {
52752
+ }, m$ = {
52737
52753
  key: 2,
52738
52754
  class: "history-conclusion"
52739
- }, m$ = ["onClick"], h$ = ["innerHTML"], g$ = {
52755
+ }, h$ = ["onClick"], g$ = ["innerHTML"], _$ = {
52740
52756
  key: 1,
52741
52757
  class: "fine-print"
52742
- }, _$ = ["aria-expanded", "onClick"], v$ = ["innerHTML"], y$ = /*#__PURE__*/ YH({
52758
+ }, v$ = ["aria-expanded", "onClick"], y$ = ["innerHTML"], b$ = /*#__PURE__*/ YH({
52743
52759
  __name: "DiscussionHistory",
52744
52760
  emits: ["detail"],
52745
52761
  setup(e) {
@@ -52797,16 +52813,16 @@ var SQ = { class: "progress-board is-docked" }, CQ = { class: "pb-header" }, wQ
52797
52813
  }
52798
52814
  return (e, t) => {
52799
52815
  let l = WV, d = sA;
52800
- return U(), W("section", a$, [
52816
+ return U(), W("section", o$, [
52801
52817
  t[2] ||= K("div", { class: "page-heading" }, [K("div", null, [K("h2", null, "讨论记录"), K("p", null, "每场讨论及其结束时的结论,最新的在上;自由协作的消息按段汇总。")])], -1),
52802
- i.value.discussions?.length ? Y("", !0) : (U(), W("p", o$, "还没有开启过讨论。")),
52803
- K("ol", s$, [(U(!0), W(H, null, B(c.value, (i) => (U(), W("li", {
52818
+ i.value.discussions?.length ? Y("", !0) : (U(), W("p", s$, "还没有开启过讨论。")),
52819
+ K("ol", c$, [(U(!0), W(H, null, B(c.value, (i) => (U(), W("li", {
52804
52820
  key: i.key,
52805
52821
  class: j(`is-${i.kind}`)
52806
52822
  }, [t[1] ||= K("span", {
52807
52823
  class: "history-dot",
52808
52824
  "aria-hidden": "true"
52809
- }, null, -1), i.kind === "free" ? (U(), W("p", c$, "自由协作 · " + P(i.count) + " 条消息", 1)) : (U(), W("article", l$, [
52825
+ }, null, -1), i.kind === "free" ? (U(), W("p", l$, "自由协作 · " + P(i.count) + " 条消息", 1)) : (U(), W("article", u$, [
52810
52826
  K("header", null, [K("h3", null, [K("small", null, "讨论 " + P(i.number), 1), J(P(i.goal || "未填写目标"), 1)]), q(l, {
52811
52827
  color: r[i.status]?.color || "neutral",
52812
52828
  variant: "subtle",
@@ -52815,74 +52831,74 @@ var SQ = { class: "progress-board is-docked" }, CQ = { class: "pb-header" }, wQ
52815
52831
  default: L(() => [J(P(r[i.status]?.label || i.status), 1)]),
52816
52832
  _: 2
52817
52833
  }, 1032, ["color"])]),
52818
- K("p", u$, [
52834
+ K("p", d$, [
52819
52835
  J(P(s(i.created_at)) + " 开始 · " + P(i.count) + " 条消息", 1),
52820
52836
  i.status === "concluded" && i.state !== null ? (U(), W(H, { key: 0 }, [J(" · " + P(I(n).stop_reason_label(i)), 1)], 64)) : Y("", !0),
52821
52837
  i.concluded_at ? (U(), W(H, { key: 1 }, [J(" · " + P(s(i.concluded_at)) + " 结束", 1)], 64)) : Y("", !0)
52822
52838
  ]),
52823
- i.result?.current ? (U(), W("p", d$, "结论即上方的当前共识。")) : i.result?.missing ? (U(), W("p", f$, "这场讨论结束于结论快照功能之前,没有保存当时的结论。")) : i.result ? (U(), W("div", p$, [
52839
+ i.result?.current ? (U(), W("p", f$, "结论即上方的当前共识。")) : i.result?.missing ? (U(), W("p", p$, "这场讨论结束于结论快照功能之前,没有保存当时的结论。")) : i.result ? (U(), W("div", m$, [
52824
52840
  K("small", null, [J(P(i.result.label), 1), i.result.until ? (U(), W("button", {
52825
52841
  key: 0,
52826
52842
  type: "button",
52827
52843
  class: "subtle-link",
52828
52844
  onClick: (t) => e.$emit("detail", i.result.until)
52829
- }, "整理至 #" + P(i.result.until), 9, m$)) : Y("", !0)]),
52845
+ }, "整理至 #" + P(i.result.until), 9, h$)) : Y("", !0)]),
52830
52846
  i.result.brief ? (U(), W("div", {
52831
52847
  key: 0,
52832
52848
  class: "markdown-body",
52833
52849
  innerHTML: o(i.result.brief)
52834
- }, null, 8, h$)) : i.result.state ? Y("", !0) : (U(), W("p", g$, "主持人没有留下简报或共识。")),
52850
+ }, null, 8, g$)) : i.result.state ? Y("", !0) : (U(), W("p", _$, "主持人没有留下简报或共识。")),
52835
52851
  i.result.state ? (U(), W(H, { key: 2 }, [K("button", {
52836
52852
  type: "button",
52837
52853
  class: "history-toggle",
52838
52854
  "aria-expanded": a.value.has(i.id),
52839
52855
  onClick: (e) => u(i.id)
52840
- }, [t[0] ||= J("详细共识与进度", -1), q(d, { name: a.value.has(i.id) ? "i-lucide-chevron-up" : "i-lucide-chevron-down" }, null, 8, ["name"])], 8, _$), a.value.has(i.id) ? (U(), W("div", {
52856
+ }, [t[0] ||= J("详细共识与进度", -1), q(d, { name: a.value.has(i.id) ? "i-lucide-chevron-up" : "i-lucide-chevron-down" }, null, 8, ["name"])], 8, v$), a.value.has(i.id) ? (U(), W("div", {
52841
52857
  key: 0,
52842
52858
  class: "markdown-body history-state",
52843
52859
  innerHTML: o(i.result.state)
52844
- }, null, 8, v$)) : Y("", !0)], 64)) : Y("", !0)
52860
+ }, null, 8, y$)) : Y("", !0)], 64)) : Y("", !0)
52845
52861
  ])) : Y("", !0)
52846
52862
  ]))], 2))), 128))])
52847
52863
  ]);
52848
52864
  };
52849
52865
  }
52850
- }, [["__scopeId", "data-v-8daffdea"]]), b$ = {
52866
+ }, [["__scopeId", "data-v-8daffdea"]]), x$ = {
52851
52867
  class: "merged-section room-overview",
52852
52868
  "aria-label": "成员与设置"
52853
- }, x$ = { class: "page-heading" }, S$ = { class: "overview-section" }, C$ = {
52869
+ }, S$ = { class: "page-heading" }, C$ = { class: "overview-section" }, w$ = {
52854
52870
  key: 0,
52855
52871
  class: "overview-local",
52856
52872
  role: "status"
52857
- }, w$ = {
52873
+ }, T$ = {
52858
52874
  class: "member-cards",
52859
52875
  "aria-label": "成员"
52860
- }, T$ = { class: "member-card-head" }, E$ = { class: "member-card-name" }, D$ = ["title"], O$ = { class: "member-card-facts" }, k$ = ["aria-label", "title"], A$ = [
52876
+ }, E$ = { class: "member-card-head" }, D$ = { class: "member-card-name" }, O$ = ["title"], k$ = { class: "member-card-facts" }, A$ = ["aria-label", "title"], j$ = [
52861
52877
  "aria-checked",
52862
52878
  "disabled",
52863
52879
  "onClick"
52864
- ], j$ = { key: 1 }, M$ = ["title"], N$ = [
52880
+ ], M$ = { key: 1 }, N$ = ["title"], P$ = [
52865
52881
  "aria-label",
52866
52882
  "aria-busy",
52867
52883
  "title"
52868
- ], P$ = [
52884
+ ], F$ = [
52869
52885
  "aria-checked",
52870
52886
  "title",
52871
52887
  "disabled",
52872
52888
  "onClick"
52873
- ], F$ = ["title"], I$ = ["aria-label"], L$ = { key: 0 }, R$ = {
52889
+ ], I$ = ["title"], L$ = ["aria-label"], R$ = { key: 0 }, z$ = {
52874
52890
  key: 1,
52875
52891
  class: "overview-result is-error",
52876
52892
  role: "alert"
52877
- }, z$ = {
52893
+ }, B$ = {
52878
52894
  key: 2,
52879
52895
  class: "overview-result",
52880
52896
  role: "status"
52881
- }, B$ = ["role"], V$ = { class: "overview-section" }, H$ = { class: "overview-settings" }, U$ = { key: 0 }, W$ = {
52897
+ }, V$ = ["role"], H$ = { class: "overview-section" }, U$ = { class: "overview-settings" }, W$ = { key: 0 }, G$ = {
52882
52898
  key: 0,
52883
52899
  role: "status",
52884
52900
  class: "overview-saved"
52885
- }, G$ = { key: 1 }, K$ = { key: 1 }, q$ = { class: "overview-address" }, J$ = { key: 2 }, Y$ = 2e3, X$ = /*#__PURE__*/ YH({
52901
+ }, K$ = { key: 1 }, q$ = { key: 1 }, J$ = { class: "overview-address" }, Y$ = { key: 2 }, X$ = 2e3, Z$ = "设为主持人", Q$ = /*#__PURE__*/ YH({
52886
52902
  __name: "RoomOverview",
52887
52903
  setup(e) {
52888
52904
  let { view: t, bridge: n, act: r } = xr("discussion"), i = {
@@ -52917,7 +52933,7 @@ var SQ = { class: "progress-board is-docked" }, CQ = { class: "pb-header" }, wQ
52917
52933
  try {
52918
52934
  await n.set_chain_rounds(e), v.value = !0, setTimeout(() => {
52919
52935
  v.value = !1;
52920
- }, Y$);
52936
+ }, X$);
52921
52937
  } catch {
52922
52938
  _.value = u.value.free?.max_rounds || 0;
52923
52939
  } finally {
@@ -53027,16 +53043,21 @@ var SQ = { class: "progress-board is-docked" }, CQ = { class: "pb-header" }, wQ
53027
53043
  }
53028
53044
  let E = Z(() => p.value ? "—" : f.value.scheduler ? `${t.value.launch.scheduler_providers?.[f.value.scheduler.provider]?.label || f.value.scheduler.provider} · ${f.value.scheduler.model}` : "未开启");
53029
53045
  function D(e) {
53030
- let [n, i, a] = xQ(C(e), {
53046
+ let [n, i, a] = SQ(C(e), {
53031
53047
  view: t.value,
53032
53048
  act: r,
53033
53049
  describe: (e) => {
53034
53050
  te.value = e;
53035
53051
  }
53036
53052
  });
53037
- return {
53053
+ return d.value ? {
53054
+ taking_part: n,
53055
+ host: i.find((e) => e.label === Z$) || null,
53056
+ place: [...i.filter((e) => e.label !== Z$), ...a]
53057
+ } : {
53038
53058
  taking_part: n,
53039
- place: d.value ? [...i, ...a] : []
53059
+ host: null,
53060
+ place: []
53040
53061
  };
53041
53062
  }
53042
53063
  let O = /* @__PURE__ */ F(!1), te = /* @__PURE__ */ F(""), ne = /* @__PURE__ */ F(!1);
@@ -53059,8 +53080,8 @@ var SQ = { class: "progress-board is-docked" }, CQ = { class: "pb-header" }, wQ
53059
53080
  let ie = Z(() => `${location.origin}/r/${u.value.id}`), ae = Z(() => u.value.created_at ? new Date(u.value.created_at).toLocaleString("zh-CN", { hour12: !1 }) : "");
53060
53081
  return (e, i) => {
53061
53082
  let s = MA, l = pA, oe = sA, k = WV;
53062
- return U(), W("section", b$, [
53063
- K("div", x$, [i[5] ||= K("div", null, [K("h2", null, "成员与设置"), K("p", null, "成员的接入、权限与全部操作,以及房间的协作设置;右栏成员菜单是同样操作的快捷入口。")], -1), u.value.archived ? Y("", !0) : (U(), G(s, {
53083
+ return U(), W("section", x$, [
53084
+ K("div", S$, [i[5] ||= K("div", null, [K("h2", null, "成员与设置"), K("p", null, "成员的接入、权限与全部操作,以及房间的协作设置;右栏成员菜单是同样操作的快捷入口。")], -1), u.value.archived ? Y("", !0) : (U(), G(s, {
53064
53085
  key: 0,
53065
53086
  icon: "i-lucide-plus",
53066
53087
  label: "邀请 AI 加入",
@@ -53070,19 +53091,19 @@ var SQ = { class: "progress-board is-docked" }, CQ = { class: "pb-header" }, wQ
53070
53091
  disabled: !I(t).access?.can_manage,
53071
53092
  onClick: i[0] ||= (e) => O.value = !0
53072
53093
  }, null, 8, ["disabled"]))]),
53073
- K("section", S$, [
53094
+ K("section", C$, [
53074
53095
  i[9] ||= K("h3", null, "成员", -1),
53075
- p.value ? (U(), W("p", C$, [J(P(p.value.text), 1), p.value.retry ? (U(), W("button", {
53096
+ p.value ? (U(), W("p", w$, [J(P(p.value.text), 1), p.value.retry ? (U(), W("button", {
53076
53097
  key: 0,
53077
53098
  type: "button",
53078
53099
  class: "subtle-link",
53079
53100
  onClick: i[1] ||= (e) => I(n).reload_room_models()
53080
53101
  }, "重试")) : Y("", !0)])) : Y("", !0),
53081
- K("ul", w$, [(U(!0), W(H, null, B(x.value, (e) => (U(), W("li", {
53102
+ K("ul", T$, [(U(!0), W(H, null, B(x.value, (e) => (U(), W("li", {
53082
53103
  key: e.name,
53083
53104
  class: "member-card"
53084
53105
  }, [
53085
- K("header", T$, [
53106
+ K("header", E$, [
53086
53107
  q(l, {
53087
53108
  src: I(n).identities[e.name]?.icon,
53088
53109
  text: I(n).identities[e.name]?.initials,
@@ -53095,14 +53116,29 @@ var SQ = { class: "progress-board is-docked" }, CQ = { class: "pb-header" }, wQ
53095
53116
  "alt",
53096
53117
  "class"
53097
53118
  ]),
53098
- K("div", E$, [K("strong", null, [J(P(I(n).display_name(e.name)), 1), e.role === "host" ? (U(), G(oe, {
53119
+ K("div", D$, [K("strong", null, [J(P(I(n).display_name(e.name)), 1), e.role === "host" ? (U(), G(oe, {
53099
53120
  key: 0,
53100
53121
  name: "i-lucide-crown",
53101
53122
  title: "主持人"
53102
53123
  })) : Y("", !0)]), u.value.descriptions?.[e.name] ? (U(), W("small", {
53103
53124
  key: 0,
53104
53125
  title: u.value.descriptions[e.name]
53105
- }, P(u.value.descriptions[e.name]), 9, D$)) : Y("", !0)]),
53126
+ }, P(u.value.descriptions[e.name]), 9, O$)) : Y("", !0)]),
53127
+ D(e).host ? (U(), G(s, {
53128
+ key: 0,
53129
+ icon: D(e).host.icon,
53130
+ label: D(e).host.label,
53131
+ size: "xs",
53132
+ variant: "ghost",
53133
+ color: "neutral",
53134
+ disabled: D(e).host.disabled,
53135
+ onClick: (t) => D(e).host.onSelect()
53136
+ }, null, 8, [
53137
+ "icon",
53138
+ "label",
53139
+ "disabled",
53140
+ "onClick"
53141
+ ])) : Y("", !0),
53106
53142
  q(k, {
53107
53143
  color: o(e) ? "warning" : e.status === "active" ? "success" : "neutral",
53108
53144
  variant: "subtle",
@@ -53112,7 +53148,7 @@ var SQ = { class: "progress-board is-docked" }, CQ = { class: "pb-header" }, wQ
53112
53148
  _: 2
53113
53149
  }, 1032, ["color"])
53114
53150
  ]),
53115
- K("dl", O$, [
53151
+ K("dl", k$, [
53116
53152
  K("div", null, [i[6] ||= K("dt", null, "接入", -1), K("dd", null, [S(C(e)).value ? (U(), W("div", {
53117
53153
  key: 0,
53118
53154
  class: j(["expert-card-modes overview-switch", { "is-locked": !S(C(e)).editable }]),
@@ -53126,11 +53162,11 @@ var SQ = { class: "progress-board is-docked" }, CQ = { class: "pb-header" }, wQ
53126
53162
  "aria-checked": S(C(e)).value === t.value,
53127
53163
  disabled: !S(C(e)).editable || !!h.value,
53128
53164
  onClick: (n) => w(e, t.value)
53129
- }, P(t.label), 9, A$)), 64))], 10, k$)) : (U(), W("span", j$, P(S(e).text), 1))])]),
53165
+ }, P(t.label), 9, j$)), 64))], 10, A$)) : (U(), W("span", M$, P(S(e).text), 1))])]),
53130
53166
  K("div", null, [i[7] ||= K("dt", null, "模型", -1), K("dd", {
53131
53167
  class: j(["overview-model", { "overview-muted": m(e.name) }]),
53132
53168
  title: I(n).participant_model(e.name, u.value, f.value) || void 0
53133
- }, P(e.access === "runner" ? I(n).participant_model(e.name, u.value, f.value) || "—" : "在它自己的会话里设置"), 11, M$)]),
53169
+ }, P(e.access === "runner" ? I(n).participant_model(e.name, u.value, f.value) || "—" : "在它自己的会话里设置"), 11, N$)]),
53134
53170
  K("div", null, [i[8] ||= K("dt", null, "项目文件", -1), K("dd", null, [T(e).value ? (U(), W("div", {
53135
53171
  key: 0,
53136
53172
  class: j(["expert-card-modes overview-switch", { "is-locked": !T(e).editable }]),
@@ -53146,11 +53182,11 @@ var SQ = { class: "progress-board is-docked" }, CQ = { class: "pb-header" }, wQ
53146
53182
  title: t.hint,
53147
53183
  disabled: !T(e).editable || !!h.value,
53148
53184
  onClick: (n) => ee(e, t.value)
53149
- }, P(t.label), 9, P$))), 128))], 10, N$)) : (U(), W("span", {
53185
+ }, P(t.label), 9, F$))), 128))], 10, P$)) : (U(), W("span", {
53150
53186
  key: 1,
53151
53187
  class: "overview-muted",
53152
53188
  title: T(e).hint
53153
- }, P(T(e).text), 9, F$))])])
53189
+ }, P(T(e).text), 9, I$))])])
53154
53190
  ]),
53155
53191
  K("footer", {
53156
53192
  class: "member-card-actions",
@@ -53169,7 +53205,7 @@ var SQ = { class: "progress-board is-docked" }, CQ = { class: "pb-header" }, wQ
53169
53205
  "label",
53170
53206
  "disabled",
53171
53207
  "onClick"
53172
- ]))), 128))]), D(e).place.length ? (U(), W("div", L$, [(U(!0), W(H, null, B(D(e).place, (e) => (U(), G(s, {
53208
+ ]))), 128))]), D(e).place.length ? (U(), W("div", R$, [(U(!0), W(H, null, B(D(e).place, (e) => (U(), G(s, {
53173
53209
  key: e.label,
53174
53210
  icon: e.icon,
53175
53211
  label: e.label,
@@ -53184,26 +53220,26 @@ var SQ = { class: "progress-board is-docked" }, CQ = { class: "pb-header" }, wQ
53184
53220
  "color",
53185
53221
  "disabled",
53186
53222
  "onClick"
53187
- ]))), 128))])) : Y("", !0)], 8, I$)
53223
+ ]))), 128))])) : Y("", !0)], 8, L$)
53188
53224
  ]))), 128))]),
53189
- I(t).access?.error || I(t).free_error ? (U(), W("p", R$, P(I(t).access?.error || I(t).free_error), 1)) : I(t).access?.notice || I(t).free_notice ? (U(), W("p", z$, P(I(t).access?.notice || I(t).free_notice), 1)) : Y("", !0),
53225
+ I(t).access?.error || I(t).free_error ? (U(), W("p", z$, P(I(t).access?.error || I(t).free_error), 1)) : I(t).access?.notice || I(t).free_notice ? (U(), W("p", B$, P(I(t).access?.notice || I(t).free_notice), 1)) : Y("", !0),
53190
53226
  i[10] ||= K("p", { class: "overview-result" }, "复制说明或下载配置不代表 AI 已接入,以实际回答和运行记录为准。", -1),
53191
53227
  b.value.text ? (U(), W("p", {
53192
53228
  key: 3,
53193
53229
  class: j(["overview-result", { "is-error": b.value.tone === "error" }]),
53194
53230
  role: b.value.tone === "error" ? "alert" : "status"
53195
- }, P(b.value.text), 11, B$)) : Y("", !0)
53231
+ }, P(b.value.text), 11, V$)) : Y("", !0)
53196
53232
  ]),
53197
- K("section", V$, [i[17] ||= K("h3", null, "协作设置", -1), K("dl", H$, [
53233
+ K("section", H$, [i[17] ||= K("h3", null, "协作设置", -1), K("dl", U$, [
53198
53234
  K("div", null, [i[11] ||= K("dt", null, "主持人", -1), K("dd", null, P(u.value.host ? I(n).display_name(u.value.host) : "未指定"), 1)]),
53199
53235
  K("div", null, [i[12] ||= K("dt", null, "智能调度", -1), K("dd", null, P(E.value), 1)]),
53200
- u.value.free?.max_rounds ? (U(), W("div", U$, [i[13] ||= K("dt", null, "连续派活上限", -1), K("dd", null, [I(t).access?.can_manage ? (U(), W(H, { key: 0 }, [q(WK, {
53236
+ u.value.free?.max_rounds ? (U(), W("div", W$, [i[13] ||= K("dt", null, "连续派活上限", -1), K("dd", null, [I(t).access?.can_manage ? (U(), W(H, { key: 0 }, [q(WK, {
53201
53237
  "model-value": _.value,
53202
53238
  disabled: g.value,
53203
53239
  "onUpdate:modelValue": y
53204
- }, null, 8, ["model-value", "disabled"]), v.value ? (U(), W("small", W$, "已保存,进行中的任务链也按新值")) : Y("", !0)], 64)) : (U(), W("span", G$, "主持人收到你的一条消息后,最多连续派活 " + P(u.value.free.max_rounds) + " 轮(派活 → 成员回答 → 交回汇总为一轮),然后停下等你", 1))])])) : Y("", !0),
53205
- d.value ? Y("", !0) : (U(), W("div", K$, [i[14] ||= K("dt", null, "逐人追问", -1), K("dd", null, P(u.value.named_followup ? "开启:主持人每轮给每位专家写针对性追问" : "关闭:首轮后请专家回应上一轮观点"), 1)])),
53206
- K("div", null, [i[15] ||= K("dt", null, "阅读地址", -1), K("dd", q$, [K("code", null, P(ie.value), 1), q(s, {
53240
+ }, null, 8, ["model-value", "disabled"]), v.value ? (U(), W("small", G$, "已保存,进行中的任务链也按新值")) : Y("", !0)], 64)) : (U(), W("span", K$, "主持人收到你的一条消息后,最多连续派活 " + P(u.value.free.max_rounds) + " 轮(派活 → 成员回答 → 交回汇总为一轮),然后停下等你", 1))])])) : Y("", !0),
53241
+ d.value ? Y("", !0) : (U(), W("div", q$, [i[14] ||= K("dt", null, "逐人追问", -1), K("dd", null, P(u.value.named_followup ? "开启:主持人每轮给每位专家写针对性追问" : "关闭:首轮后请专家回应上一轮观点"), 1)])),
53242
+ K("div", null, [i[15] ||= K("dt", null, "阅读地址", -1), K("dd", J$, [K("code", null, P(ie.value), 1), q(s, {
53207
53243
  icon: "i-lucide-copy",
53208
53244
  color: "neutral",
53209
53245
  variant: "ghost",
@@ -53211,9 +53247,9 @@ var SQ = { class: "progress-board is-docked" }, CQ = { class: "pb-header" }, wQ
53211
53247
  "aria-label": "复制阅读地址",
53212
53248
  onClick: i[2] ||= (e) => I(r)("copy", ie.value)
53213
53249
  })])]),
53214
- ae.value ? (U(), W("div", J$, [i[16] ||= K("dt", null, "创建时间", -1), K("dd", null, P(ae.value), 1)])) : Y("", !0)
53250
+ ae.value ? (U(), W("div", Y$, [i[16] ||= K("dt", null, "创建时间", -1), K("dd", null, P(ae.value), 1)])) : Y("", !0)
53215
53251
  ])]),
53216
- q(UZ, {
53252
+ q(WZ, {
53217
53253
  open: O.value,
53218
53254
  "onUpdate:open": i[3] ||= (e) => O.value = e,
53219
53255
  description: d.value ? "新成员加入后不打断其他成员;点卡片翻面可设置软件、模型、项目权限和要续接的已有会话。" : "新专家由程序按本机软件配置启动,或由你手动启动,加入本轮发言队列。"
@@ -53240,31 +53276,31 @@ var SQ = { class: "progress-board is-docked" }, CQ = { class: "pb-header" }, wQ
53240
53276
  ]);
53241
53277
  };
53242
53278
  }
53243
- }, [["__scopeId", "data-v-736b326d"]]), Z$ = {
53279
+ }, [["__scopeId", "data-v-cfcbc22f"]]), $$ = {
53244
53280
  thinking: "思考",
53245
53281
  command: "命令",
53246
53282
  tool: "工具",
53247
53283
  editing: "编辑",
53248
53284
  writing: "撰写"
53249
- }, Q$ = {
53285
+ }, e1 = {
53250
53286
  thinking: "model",
53251
53287
  writing: "model",
53252
53288
  command: "tool",
53253
53289
  tool: "tool",
53254
53290
  editing: "tool"
53255
- }, $$ = {
53291
+ }, t1 = {
53256
53292
  running: "进行中",
53257
53293
  done: "完成",
53258
53294
  failed: "失败",
53259
53295
  cancelled: "已撤销"
53260
- }, e1 = 3e5, t1 = .03;
53261
- function n1(e) {
53296
+ }, n1 = 3e5, r1 = .03;
53297
+ function i1(e) {
53262
53298
  if (e < 1e3) return `${Math.max(0, Math.round(e))}ms`;
53263
53299
  if (e < 1e4) return `${(e / 1e3).toFixed(1)}s`;
53264
53300
  let t = Math.round(e / 1e3);
53265
53301
  return t < 60 ? `${t}s` : t < 3600 ? `${Math.floor(t / 60)}m ${String(t % 60).padStart(2, "0")}s` : `${Math.floor(t / 3600)}h ${String(Math.floor(t % 3600 / 60)).padStart(2, "0")}m`;
53266
53302
  }
53267
- function r1(e, t) {
53303
+ function a1(e, t) {
53268
53304
  let n = e.state === "running", r = e.finished_at ? e.finished_at * 1e3 : t, i = e.dispatched_at ? e.dispatched_at * 1e3 : 0, a = Math.min(e.queued_at ? e.queued_at * 1e3 : i || r, i || r), o = i ? e.segments.map((t, a) => {
53269
53305
  let o = n && a === e.segments.length - 1, s = Math.min(i + t.end_ms, r);
53270
53306
  return {
@@ -53290,8 +53326,8 @@ function r1(e, t) {
53290
53326
  notes: l
53291
53327
  };
53292
53328
  }
53293
- var i1 = 18e4;
53294
- function a1(e, t) {
53329
+ var o1 = 18e4;
53330
+ function s1(e, t) {
53295
53331
  let { item: n } = e;
53296
53332
  if (n.state === "failed") return {
53297
53333
  tone: "failed",
@@ -53315,22 +53351,22 @@ function a1(e, t) {
53315
53351
  let r = n.dispatched_at * 1e3, i = n.segments.at(-1), a = Math.max(n.activity_at ? n.activity_at * 1e3 : 0, i ? r + i.end_ms : 0, ...(n.notes || []).map((e) => e * 1e3)), o = a ? t - a : 0;
53316
53352
  return o >= 18e4 ? i?.phase === "command" ? {
53317
53353
  tone: "warn",
53318
- text: `命令已运行 ${n1(o)}`
53354
+ text: `命令已运行 ${i1(o)}`
53319
53355
  } : {
53320
53356
  tone: "warn",
53321
- text: `已 ${n1(o)} 无输出,可能卡住`
53357
+ text: `已 ${i1(o)} 无输出,可能卡住`
53322
53358
  } : n.last_note ? {
53323
53359
  tone: "live",
53324
53360
  text: n.last_note
53325
53361
  } : i ? {
53326
53362
  tone: "live",
53327
- text: `${Z$[i.phase]}${i.tool ? ` · ${i.tool}` : ""}中`
53363
+ text: `${$$[i.phase]}${i.tool ? ` · ${i.tool}` : ""}中`
53328
53364
  } : {
53329
53365
  tone: "live",
53330
53366
  text: "处理中"
53331
53367
  };
53332
53368
  }
53333
- function o1(e, t) {
53369
+ function c1(e, t) {
53334
53370
  return [...e.segments.map((e) => ({
53335
53371
  at: e.start,
53336
53372
  kind: "phase",
@@ -53344,7 +53380,7 @@ function o1(e, t) {
53344
53380
  text: t?.[e.index] ?? (t ? "(未能读取)" : "读取中…")
53345
53381
  }))].sort((e, t) => e.at - t.at || (e.kind === "note") - (t.kind === "note"));
53346
53382
  }
53347
- function s1(e, t, n = /* @__PURE__ */ new Map()) {
53383
+ function l1(e, t, n = /* @__PURE__ */ new Map()) {
53348
53384
  let r = t / 1e3, i = [];
53349
53385
  for (let t of e.executions) {
53350
53386
  if ((t.queued_at || t.dispatched_at || Infinity) > r) continue;
@@ -53378,7 +53414,7 @@ function s1(e, t, n = /* @__PURE__ */ new Map()) {
53378
53414
  executions: i
53379
53415
  };
53380
53416
  }
53381
- function c1(e, t, n) {
53417
+ function u1(e, t, n) {
53382
53418
  let r = e.filter((e) => e.at >= t && e.at <= n);
53383
53419
  if (r.length) return {
53384
53420
  notes: r,
@@ -53390,13 +53426,13 @@ function c1(e, t, n) {
53390
53426
  earlier: !!i
53391
53427
  };
53392
53428
  }
53393
- function l1(e, t) {
53429
+ function d1(e, t) {
53394
53430
  let n = e.executions.map((n) => ({
53395
53431
  key: `${n.source}:${n.id}`,
53396
53432
  parent: n.parent_id ? `free:${n.parent_id}` : "",
53397
53433
  item: n,
53398
53434
  truncated: n.segments.length >= e.segment_limit,
53399
- ...r1(n, t)
53435
+ ...a1(n, t)
53400
53436
  })), r = new Map(n.map((e) => [e.key, e])), i = (e) => {
53401
53437
  let t = r.get(e.parent);
53402
53438
  for (let n = /* @__PURE__ */ new Set([e.key]); t?.item.member === e.item.member && !n.has(t.key); t = r.get(t.parent)) n.add(t.key);
@@ -53425,18 +53461,18 @@ function l1(e, t) {
53425
53461
  });
53426
53462
  return o;
53427
53463
  }
53428
- function u1(e, t) {
53464
+ function f1(e, t) {
53429
53465
  if (e.source === "discussion") return `run:${e.run_id || e.id}`;
53430
53466
  let n = e;
53431
53467
  for (let r = /* @__PURE__ */ new Set([e.id]); n.parent_id && t.has(n.parent_id) && !r.has(n.parent_id); n = t.get(n.parent_id)) r.add(n.parent_id);
53432
53468
  return n.task_id ? `task:${n.task_id}` : `exec:${n.id}`;
53433
53469
  }
53434
- function d1(e, t) {
53470
+ function p1(e, t) {
53435
53471
  let n = new Map(e.executions.filter((e) => e.source === "free").map((e) => [e.id, e])), r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map();
53436
53472
  for (let a of e.executions) {
53437
- let e = u1(a, n);
53473
+ let e = f1(a, n);
53438
53474
  i.set(`${a.source}:${a.id}`, e);
53439
- let o = r1(a, t), s = r.get(e) || {
53475
+ let o = a1(a, t), s = r.get(e) || {
53440
53476
  key: e,
53441
53477
  source: a.source,
53442
53478
  start: o.start,
@@ -53454,7 +53490,7 @@ function d1(e, t) {
53454
53490
  of: i
53455
53491
  };
53456
53492
  }
53457
- function f1(e, t) {
53493
+ function m1(e, t) {
53458
53494
  let n = new Map(e.map((e, t) => [e.key, t])), r = /* @__PURE__ */ new Map(), i = (e, t) => {
53459
53495
  r.has(e) || r.set(e, []), r.get(e).push(t);
53460
53496
  };
@@ -53480,7 +53516,7 @@ function f1(e, t) {
53480
53516
  });
53481
53517
  }), r;
53482
53518
  }
53483
- var p1 = [
53519
+ var h1 = [
53484
53520
  5,
53485
53521
  10,
53486
53522
  15,
@@ -53504,8 +53540,8 @@ var p1 = [
53504
53540
  21600,
53505
53541
  43200,
53506
53542
  86400
53507
- ].map((e) => e * 1e3), m1 = .75;
53508
- function h1(e, t = !1) {
53543
+ ].map((e) => e * 1e3), g1 = .75;
53544
+ function _1(e, t = !1) {
53509
53545
  let n = e.map((e) => [e.start, e.end]).sort((e, t) => e[0] - t[0]);
53510
53546
  if (!n.length) return {
53511
53547
  start: 0,
@@ -53521,8 +53557,8 @@ function h1(e, t = !1) {
53521
53557
  n && e <= n[1] + 3e5 ? n[1] = Math.max(n[1], t) : r.push([e, t]);
53522
53558
  }
53523
53559
  let i = r.reduce((e, [t, n]) => e + (n - t), 0), a = i;
53524
- t && i && (a = p1.find((e) => e >= i / m1) ?? Math.ceil(i / m1), r.at(-1)[1] += a - i);
53525
- let o = Math.min(t1, .5 / Math.max(1, r.length - 1)), s = a ? (1 - o * (r.length - 1)) / a : 0, c = [], l = 0;
53560
+ t && i && (a = h1.find((e) => e >= i / g1) ?? Math.ceil(i / g1), r.at(-1)[1] += a - i);
53561
+ let o = Math.min(r1, .5 / Math.max(1, r.length - 1)), s = a ? (1 - o * (r.length - 1)) / a : 0, c = [], l = 0;
53526
53562
  return r.forEach(([e, t], n) => {
53527
53563
  if (n) {
53528
53564
  let t = r[n - 1][1];
@@ -53565,7 +53601,7 @@ function h1(e, t = !1) {
53565
53601
  }))
53566
53602
  };
53567
53603
  }
53568
- var g1 = [
53604
+ var v1 = [
53569
53605
  1,
53570
53606
  2,
53571
53607
  5,
@@ -53584,14 +53620,14 @@ var g1 = [
53584
53620
  21600,
53585
53621
  43200,
53586
53622
  86400
53587
- ].map((e) => e * 1e3), _1 = .12;
53588
- function v1(e, t = 6, n = {
53623
+ ].map((e) => e * 1e3), y1 = .12;
53624
+ function b1(e, t = 6, n = {
53589
53625
  from: 0,
53590
53626
  span: 1
53591
53627
  }) {
53592
53628
  let r = (e.total_ms ?? e.busy_ms) * n.span;
53593
53629
  if (!r) return [];
53594
- let i = g1.find((e) => r / e <= t) ?? g1.at(-1), a = _1 * n.span, o = [];
53630
+ let i = v1.find((e) => r / e <= t) ?? v1.at(-1), a = y1 * n.span, o = [];
53595
53631
  for (let t of e.spans) if (!(t.from + t.width < n.from || t.from > n.from + n.span)) for (let r = Math.ceil(t.start / i) * i; r <= t.end; r += i) {
53596
53632
  let t = e.x(r);
53597
53633
  t < n.from || t > n.from + n.span || (!o.length || t - o.at(-1).x >= a) && o.push({
@@ -53604,8 +53640,8 @@ function v1(e, t = 6, n = {
53604
53640
  seconds: i < 6e4
53605
53641
  }));
53606
53642
  }
53607
- var y1 = .01, b1 = 2e3;
53608
- function x1(e, t) {
53643
+ var x1 = .01, S1 = 2e3;
53644
+ function C1(e, t) {
53609
53645
  let n = (e) => (e - t.from) / t.span;
53610
53646
  return {
53611
53647
  ...e,
@@ -53622,20 +53658,20 @@ function x1(e, t) {
53622
53658
  }))
53623
53659
  };
53624
53660
  }
53625
- function S1(e, t, n, r = 0) {
53626
- let i = Math.max(y1, r ? b1 / r : 0), a = Math.min(1, Math.max(i, e.span * n)), o = e.from + t * e.span;
53661
+ function w1(e, t, n, r = 0) {
53662
+ let i = Math.max(x1, r ? S1 / r : 0), a = Math.min(1, Math.max(i, e.span * n)), o = e.from + t * e.span;
53627
53663
  return {
53628
53664
  from: Math.min(1 - a, Math.max(0, o - t * a)),
53629
53665
  span: a
53630
53666
  };
53631
53667
  }
53632
- function C1(e, t) {
53668
+ function T1(e, t) {
53633
53669
  return {
53634
53670
  from: Math.min(1 - e.span, Math.max(0, e.from + t * e.span)),
53635
53671
  span: e.span
53636
53672
  };
53637
53673
  }
53638
- function w1(e, t = Date.now()) {
53674
+ function E1(e, t = Date.now()) {
53639
53675
  let n = null;
53640
53676
  for (let t of e) for (let e of t.segments) (!n || e.seen - e.start > n.end - n.start) && (n = {
53641
53677
  ...e,
@@ -53647,7 +53683,7 @@ function w1(e, t = Date.now()) {
53647
53683
  executions: e.length,
53648
53684
  running: e.filter((e) => e.item.state === "running").length,
53649
53685
  failed: e.filter((e) => e.item.state === "failed").length,
53650
- stalled: e.filter((e) => e.item.state === "running" && a1(e, t).tone === "warn").length,
53686
+ stalled: e.filter((e) => e.item.state === "running" && s1(e, t).tone === "warn").length,
53651
53687
  tool_segments: e.reduce((e, t) => e + t.segments.filter((e) => [
53652
53688
  "command",
53653
53689
  "tool",
@@ -53658,116 +53694,116 @@ function w1(e, t = Date.now()) {
53658
53694
  }
53659
53695
  //#endregion
53660
53696
  //#region frontend/ExecutionTimeline.vue
53661
- var T1 = {
53697
+ var D1 = {
53662
53698
  class: "merged-section execution-timeline",
53663
53699
  "aria-label": "执行时间线"
53664
- }, E1 = {
53700
+ }, O1 = {
53665
53701
  key: 0,
53666
53702
  role: "alert",
53667
53703
  class: "fine-print wf-error"
53668
- }, D1 = {
53704
+ }, k1 = {
53669
53705
  key: 1,
53670
53706
  class: "fine-print"
53671
- }, O1 = { class: "wf-head" }, k1 = {
53707
+ }, A1 = { class: "wf-head" }, j1 = {
53672
53708
  key: 0,
53673
53709
  class: "wf-state is-replay"
53674
- }, A1 = {
53710
+ }, M1 = {
53675
53711
  key: 2,
53676
53712
  class: "wf-headline"
53677
- }, j1 = { class: "wf-summary" }, M1 = ["title"], N1 = ["title"], P1 = { title: "连续调用同一工具合并为一段" }, F1 = {
53713
+ }, N1 = { class: "wf-summary" }, P1 = ["title"], F1 = ["title"], I1 = { title: "连续调用同一工具合并为一段" }, L1 = {
53678
53714
  class: "wf-legend",
53679
53715
  "aria-label": "图例"
53680
- }, I1 = {
53716
+ }, R1 = {
53681
53717
  key: 0,
53682
53718
  class: "wf-legend-note"
53683
- }, L1 = {
53719
+ }, z1 = {
53684
53720
  key: 1,
53685
53721
  class: "wf-legend-note"
53686
- }, R1 = { class: "wf-axis-label" }, z1 = {
53722
+ }, B1 = { class: "wf-axis-label" }, V1 = {
53687
53723
  key: 0,
53688
53724
  class: "wf-zoom"
53689
- }, B1 = {
53725
+ }, H1 = {
53690
53726
  key: 1,
53691
53727
  class: "wf-zoom-hint",
53692
53728
  title: "Ctrl + 滚轮缩放;放大后按住中键或拖动时间轴平移,双击时间轴还原"
53693
- }, V1 = {
53729
+ }, U1 = {
53694
53730
  key: 2,
53695
53731
  class: "wf-branch"
53696
- }, H1 = ["title"], U1 = {
53732
+ }, W1 = ["title"], G1 = {
53697
53733
  key: 0,
53698
53734
  class: "wf-guides",
53699
53735
  "aria-hidden": "true"
53700
- }, W1 = [
53736
+ }, K1 = [
53701
53737
  "aria-expanded",
53702
53738
  "aria-label",
53703
53739
  "onClick"
53704
- ], G1 = {
53740
+ ], q1 = {
53705
53741
  key: 2,
53706
53742
  class: "wf-toggle-space"
53707
- }, K1 = [
53743
+ }, J1 = [
53708
53744
  "aria-expanded",
53709
53745
  "onClick",
53710
53746
  "onMouseenter",
53711
53747
  "onMouseleave"
53712
- ], q1 = { class: "wf-name-line" }, J1 = {
53748
+ ], Y1 = { class: "wf-name-line" }, X1 = {
53713
53749
  key: 0,
53714
53750
  class: "wf-spinner",
53715
53751
  "aria-hidden": "true"
53716
- }, Y1 = {
53752
+ }, Z1 = {
53717
53753
  key: 1,
53718
53754
  class: "wf-pill is-slowest"
53719
- }, X1 = {
53755
+ }, Q1 = {
53720
53756
  key: 0,
53721
53757
  class: "wf-live-dot",
53722
53758
  "aria-hidden": "true"
53723
- }, Z1 = ["aria-label", "onMouseleave"], Q1 = { class: "wf-track" }, $1 = ["data-tone"], e0 = ["onMouseenter", "onClick"], t0 = ["onMouseenter", "onClick"], n0 = [
53759
+ }, $1 = ["aria-label", "onMouseleave"], e0 = { class: "wf-track" }, t0 = ["data-tone"], n0 = ["onMouseenter", "onClick"], r0 = ["onMouseenter", "onClick"], i0 = [
53724
53760
  "data-tone",
53725
53761
  "onMouseenter",
53726
53762
  "onClick"
53727
- ], r0 = [
53763
+ ], a0 = [
53728
53764
  "data-tone",
53729
53765
  "onMouseenter",
53730
53766
  "onClick"
53731
- ], i0 = [
53767
+ ], o0 = [
53732
53768
  "data-tone",
53733
53769
  "onMouseenter",
53734
53770
  "onClick"
53735
- ], a0 = [
53771
+ ], s0 = [
53736
53772
  "aria-label",
53737
53773
  "onMouseenter",
53738
53774
  "onClick",
53739
53775
  "onFocus",
53740
53776
  "onBlur"
53741
- ], o0 = { class: "wf-end" }, s0 = { key: 1 }, c0 = ["aria-label"], l0 = { class: "wf-detail-head" }, u0 = { key: 0 }, d0 = { key: 1 }, f0 = { class: "is-failed" }, p0 = { key: 2 }, m0 = { key: 3 }, h0 = {
53777
+ ], c0 = { class: "wf-end" }, l0 = { key: 1 }, u0 = ["aria-label"], d0 = { class: "wf-detail-head" }, f0 = { key: 0 }, p0 = { key: 1 }, m0 = { class: "is-failed" }, h0 = { key: 2 }, g0 = { key: 3 }, _0 = {
53742
53778
  key: 0,
53743
53779
  class: "wf-log",
53744
53780
  "aria-label": "过程"
53745
- }, g0 = ["data-tone"], _0 = {
53781
+ }, v0 = ["data-tone"], y0 = {
53746
53782
  key: 1,
53747
53783
  class: "wf-log-note"
53748
- }, v0 = {
53784
+ }, b0 = {
53749
53785
  key: 1,
53750
53786
  class: "fine-print"
53751
- }, y0 = {
53787
+ }, x0 = {
53752
53788
  key: 1,
53753
53789
  class: "wf-player"
53754
- }, b0 = {
53790
+ }, S0 = {
53755
53791
  key: 2,
53756
53792
  class: "wf-player"
53757
- }, x0 = ["aria-label"], S0 = ["disabled"], C0 = ["max", "value"], w0 = { class: "wf-player-time" }, T0 = {
53793
+ }, C0 = ["aria-label"], w0 = ["disabled"], T0 = ["max", "value"], E0 = { class: "wf-player-time" }, D0 = {
53758
53794
  key: 3,
53759
53795
  class: "wf-foot"
53760
- }, E0 = { key: 0 }, D0 = { key: 1 }, O0 = ["role"], k0 = {
53796
+ }, O0 = { key: 0 }, k0 = { key: 1 }, A0 = ["role"], j0 = {
53761
53797
  key: 1,
53762
53798
  class: "wf-card-text"
53763
- }, A0 = {
53799
+ }, M0 = {
53764
53800
  key: 2,
53765
53801
  class: "wf-card-reason"
53766
- }, j0 = { class: "wf-card-label" }, M0 = 2e3, N0 = 6e4, P0 = 100, F0 = 60, I0 = 2e4, L0 = 600, R0 = 5, z0 = 16, B0 = 90, V0 = 2, H0 = 8, U0 = 560, W0 = .0015, G0 = "latest", K0 = "all", q0 = 22, J0 = 5, Y0 = 52, X0 = /*#__PURE__*/ YH({
53802
+ }, N0 = { class: "wf-card-label" }, P0 = 2e3, F0 = 6e4, I0 = 100, L0 = 60, R0 = 2e4, z0 = 600, B0 = 5, V0 = 16, H0 = 90, U0 = 2, W0 = 8, G0 = 560, K0 = .0015, q0 = "latest", J0 = "all", Y0 = 22, X0 = 5, Z0 = 52, Q0 = /*#__PURE__*/ YH({
53767
53803
  __name: "ExecutionTimeline",
53768
53804
  emits: ["detail"],
53769
53805
  setup(e, { emit: t }) {
53770
- let n = t, { view: r, bridge: i } = xr("discussion"), a = i1 / 6e4, o = [
53806
+ let n = t, { view: r, bridge: i } = xr("discussion"), a = o1 / 6e4, o = [
53771
53807
  1,
53772
53808
  2,
53773
53809
  4,
@@ -53783,7 +53819,7 @@ var T1 = {
53783
53819
  let t = d.value;
53784
53820
  if (!t || w) return;
53785
53821
  w = !0;
53786
- let n = e || !S || Date.now() - C >= N0 ? 0 : S - R0;
53822
+ let n = e || !S || Date.now() - C >= F0 ? 0 : S - B0;
53787
53823
  try {
53788
53824
  let e = await i.request(`/api/rooms/${t}/timeline${n ? `?after=${n}` : ""}`);
53789
53825
  if (t !== d.value) return;
@@ -53806,7 +53842,7 @@ var T1 = {
53806
53842
  R(Z(() => re.value?.executions.some((e) => e.state === "running")), (e) => {
53807
53843
  clearInterval(T), e && (T = setInterval(() => {
53808
53844
  document.hidden || ne();
53809
- }, M0));
53845
+ }, P0));
53810
53846
  }, { immediate: !0 }), R(d, () => {
53811
53847
  f.value = /* @__PURE__ */ new Map(), p.value = null, g.value = /* @__PURE__ */ new Set(), _.value = /* @__PURE__ */ new Map(), v.value = null, y.value = "", S = 0, ne(!0);
53812
53848
  }, { immediate: !0 }), R(() => r.value.room, (e, t) => {
@@ -53821,7 +53857,7 @@ var T1 = {
53821
53857
  };
53822
53858
  }
53823
53859
  function oe(e) {
53824
- c.value && e.target.closest?.(".wf-track, .wf-axis") && (e.ctrlKey || e.metaKey ? (e.preventDefault(), De.value = S1(De.value, ae(e).share, Math.exp(e.deltaY * W0), Te.value.total_ms)) : Oe.value && (e.shiftKey || Math.abs(e.deltaX) > Math.abs(e.deltaY)) && (e.preventDefault(), De.value = C1(De.value, (e.shiftKey ? e.deltaY : e.deltaX) / ae(e).width)));
53860
+ c.value && e.target.closest?.(".wf-track, .wf-axis") && (e.ctrlKey || e.metaKey ? (e.preventDefault(), De.value = w1(De.value, ae(e).share, Math.exp(e.deltaY * K0), Te.value.total_ms)) : Oe.value && (e.shiftKey || Math.abs(e.deltaX) > Math.abs(e.deltaY)) && (e.preventDefault(), De.value = T1(De.value, (e.shiftKey ? e.deltaY : e.deltaX) / ae(e).width)));
53825
53861
  }
53826
53862
  function k(e) {
53827
53863
  let t = e.target.closest?.(".wf-axis");
@@ -53832,7 +53868,7 @@ var T1 = {
53832
53868
  }, e.currentTarget.setPointerCapture(e.pointerId));
53833
53869
  }
53834
53870
  function se(e) {
53835
- ie && (De.value = C1({
53871
+ ie && (De.value = T1({
53836
53872
  from: ie.from,
53837
53873
  span: De.value.span
53838
53874
  }, -(e.clientX - ie.x) / ie.width));
@@ -53858,15 +53894,15 @@ var T1 = {
53858
53894
  }), ta(() => {
53859
53895
  clearInterval(T), cancelAnimationFrame(ee), document.removeEventListener("pointerdown", ue), document.removeEventListener("keydown", de), u?.disconnect();
53860
53896
  });
53861
- let fe = /* @__PURE__ */ F(G0), pe = Z(() => re.value ? d1(re.value, h.value) : {
53897
+ let fe = /* @__PURE__ */ F(q0), pe = Z(() => re.value ? p1(re.value, h.value) : {
53862
53898
  list: [],
53863
53899
  of: /* @__PURE__ */ new Map()
53864
- }), me = Z(() => fe.value === G0 ? pe.value.list[0]?.key : fe.value === K0 || pe.value.list.some((e) => e.key === fe.value) ? fe.value : pe.value.list[0]?.key), he = Z(() => !re.value || me.value === K0 ? re.value : {
53900
+ }), me = Z(() => fe.value === q0 ? pe.value.list[0]?.key : fe.value === J0 || pe.value.list.some((e) => e.key === fe.value) ? fe.value : pe.value.list[0]?.key), he = Z(() => !re.value || me.value === J0 ? re.value : {
53865
53901
  ...re.value,
53866
53902
  executions: re.value.executions.filter((e) => pe.value.of.get(`${e.source}:${e.id}`) === me.value)
53867
53903
  });
53868
53904
  R(d, () => {
53869
- fe.value = G0;
53905
+ fe.value = q0;
53870
53906
  });
53871
53907
  let ge = (e) => new Date(e).toLocaleString("zh-CN", {
53872
53908
  month: "numeric",
@@ -53876,13 +53912,13 @@ var T1 = {
53876
53912
  hour12: !1
53877
53913
  });
53878
53914
  function _e(e) {
53879
- let t = e.task ? `${e.task.replace(/\s+/g, " ").slice(0, q0)}${e.task.length > q0 ? "…" : ""}` : e.source === "discussion" ? "讨论" : "执行";
53915
+ let t = e.task ? `${e.task.replace(/\s+/g, " ").slice(0, Y0)}${e.task.length > Y0 ? "…" : ""}` : e.source === "discussion" ? "讨论" : "执行";
53880
53916
  return `${ge(e.start)} · ${t} · ${e.count} 次${e.running ? " · 进行中" : e.failed ? " · 有失败" : ""}`;
53881
53917
  }
53882
53918
  let M = Z(() => [
53883
53919
  {
53884
53920
  label: "最近一轮(自动跟随)",
53885
- value: G0
53921
+ value: q0
53886
53922
  },
53887
53923
  ...pe.value.list.map((e) => ({
53888
53924
  label: _e(e),
@@ -53890,9 +53926,9 @@ var T1 = {
53890
53926
  })),
53891
53927
  {
53892
53928
  label: "全部执行",
53893
- value: K0
53929
+ value: J0
53894
53930
  }
53895
- ]), N = Z(() => he.value ? l1(he.value, h.value) : []), ve = Z(() => N.value.some((e) => e.item.state === "running")), ye = Z(() => {
53931
+ ]), N = Z(() => he.value ? d1(he.value, h.value) : []), ve = Z(() => N.value.some((e) => e.item.state === "running")), ye = Z(() => {
53896
53932
  let e = Math.min(...N.value.map((e) => e.start)), t = Math.max(...N.value.map((e) => e.end));
53897
53933
  return Number.isFinite(e) ? {
53898
53934
  start: e,
@@ -53903,17 +53939,17 @@ var T1 = {
53903
53939
  end: 0,
53904
53940
  duration: 0
53905
53941
  };
53906
- }), be = Z(() => O.position !== null && !ve.value), xe = Z(() => be.value ? ye.value.start + O.position : h.value), Se = Z(() => be.value ? l1(s1(he.value, xe.value, _.value), xe.value) : N.value), Ce = Z(() => Se.value.filter((e) => !e.ancestors.some((e) => g.value.has(e)))), we = Z(() => Se.value.some((e) => e.item.state === "running")), Te = Z(() => h1(Se.value, we.value)), Ee = {
53942
+ }), be = Z(() => O.position !== null && !ve.value), xe = Z(() => be.value ? ye.value.start + O.position : h.value), Se = Z(() => be.value ? d1(l1(he.value, xe.value, _.value), xe.value) : N.value), Ce = Z(() => Se.value.filter((e) => !e.ancestors.some((e) => g.value.has(e)))), we = Z(() => Se.value.some((e) => e.item.state === "running")), Te = Z(() => _1(Se.value, we.value)), Ee = {
53907
53943
  from: 0,
53908
53944
  span: 1
53909
53945
  }, De = /* @__PURE__ */ F(Ee), Oe = Z(() => De.value.span < 1);
53910
53946
  R([me, d], () => {
53911
53947
  De.value = Ee;
53912
53948
  });
53913
- let ke = Z(() => x1(Te.value, De.value)), Ae = Z(() => {
53949
+ let ke = Z(() => C1(Te.value, De.value)), Ae = Z(() => {
53914
53950
  let e = we.value ? ke.value.x(xe.value) : null;
53915
53951
  return e === null || e < 0 || e > 1 ? null : e;
53916
- }), je = Z(() => Math.max(1, ye.value.duration / I0)), Me = Z(() => [{
53952
+ }), je = Z(() => Math.max(1, ye.value.duration / R0)), Me = Z(() => [{
53917
53953
  label: `自动 · ${Math.round(je.value)}×`,
53918
53954
  value: 0
53919
53955
  }, ...o.map((e) => ({
@@ -53923,7 +53959,7 @@ var T1 = {
53923
53959
  function Pe(e) {
53924
53960
  let t = E ? Math.min(e - E, 250) : 0;
53925
53961
  E = e;
53926
- let n = Se.value.length <= F0 || e - D >= P0;
53962
+ let n = Se.value.length <= L0 || e - D >= I0;
53927
53963
  O.playing && (te += t * Ne.value, te >= ye.value.duration ? Object.assign(O, {
53928
53964
  position: null,
53929
53965
  playing: !1
@@ -53976,15 +54012,15 @@ var T1 = {
53976
54012
  let t = e.filter((e) => !Ve.has(e));
53977
54013
  t.forEach((e) => Ve.add(e)), t.length && (Be.value = /* @__PURE__ */ new Set([...Be.value, ...t]), setTimeout(() => {
53978
54014
  Be.value = new Set([...Be.value].filter((e) => !t.includes(e)));
53979
- }, L0));
54015
+ }, z0));
53980
54016
  }), R([me, d], () => {
53981
54017
  Ve = null;
53982
54018
  });
53983
- let Ue = Z(() => f1(Ce.value, ke.value)), We = Z(() => v1(Te.value, Math.min(H0, Math.max(V0, Math.round((l.value || 540) / B0))), De.value).map((e) => ({
54019
+ let Ue = Z(() => m1(Ce.value, ke.value)), We = Z(() => b1(Te.value, Math.min(W0, Math.max(U0, Math.round((l.value || 540) / H0))), De.value).map((e) => ({
53984
54020
  ...e,
53985
54021
  x: (e.x - De.value.from) / De.value.span
53986
- }))), Ge = Z(() => w1(Se.value, xe.value)), Ke = Z(() => Se.value.filter((e) => e.has_children).map((e) => e.key)), qe = Z(() => Se.value.find((e) => e.key === y.value)), Je = Z(() => qe.value ? o1(qe.value, _.value.get(qe.value.item.id)) : []), Ye = Z(() => {
53987
- let e = Se.value, t = new Set(e.flatMap((e) => e.segments.map((e) => Q$[e.phase])));
54022
+ }))), Ge = Z(() => E1(Se.value, xe.value)), Ke = Z(() => Se.value.filter((e) => e.has_children).map((e) => e.key)), qe = Z(() => Se.value.find((e) => e.key === y.value)), Je = Z(() => qe.value ? c1(qe.value, _.value.get(qe.value.item.id)) : []), Ye = Z(() => {
54023
+ let e = Se.value, t = new Set(e.flatMap((e) => e.segments.map((e) => e1[e.phase])));
53988
54024
  return [
53989
54025
  ...e.some((e) => e.queue[1] > e.queue[0]) ? [["queue", "排队"]] : [],
53990
54026
  ...e.some((e) => e.wake) ? [["wake", "唤醒"]] : [],
@@ -53997,10 +54033,10 @@ var T1 = {
53997
54033
  ];
53998
54034
  }), Xe = Z(() => Se.value.length > 0 && Se.value.every((e) => !e.segments.length)), Ze = Z(() => {
53999
54035
  let e = /* @__PURE__ */ new Map();
54000
- for (let t of [...Se.value].sort((e, t) => e.start - t.start)) e.has(t.item.member) || e.set(t.item.member, e.size % J0 + 1);
54036
+ for (let t of [...Se.value].sort((e, t) => e.start - t.start)) e.has(t.item.member) || e.set(t.item.member, e.size % X0 + 1);
54001
54037
  return e;
54002
54038
  }), Qe = Z(() => {
54003
- let e = Y0 / (l.value || 800), t = [];
54039
+ let e = Z0 / (l.value || 800), t = [];
54004
54040
  for (let n of ke.value.folds) {
54005
54041
  let r = n.from + n.width / 2;
54006
54042
  r < 0 || r > 1 || (!t.length || r - t.at(-1).middle >= e) && t.push({
@@ -54010,12 +54046,12 @@ var T1 = {
54010
54046
  }
54011
54047
  return t;
54012
54048
  }), $e = Z(() => {
54013
- let e = Y0 / (l.value || 800);
54049
+ let e = Z0 / (l.value || 800);
54014
54050
  return We.value.filter((t) => !Qe.value.some((n) => Math.abs(t.x - n.middle) < e));
54015
54051
  });
54016
54052
  function et(e, t) {
54017
54053
  if (y.value = y.value === e.key ? "" : e.key, !y.value) return;
54018
- let n = t.currentTarget.getBoundingClientRect(), r = x.value.getBoundingClientRect(), i = Math.min(U0, r.width - 16);
54054
+ let n = t.currentTarget.getBoundingClientRect(), r = x.value.getBoundingClientRect(), i = Math.min(G0, r.width - 16);
54019
54055
  b.value = {
54020
54056
  top: n.bottom - r.top + 4,
54021
54057
  left: Math.max(8, Math.min(n.left - r.left, r.width - i - 8))
@@ -54042,15 +54078,15 @@ var T1 = {
54042
54078
  function it(e) {
54043
54079
  return [...e.item.source === "discussion" ? ["讨论"] : [], ...e.item.role === "host" ? ["主持"] : []];
54044
54080
  }
54045
- let at = (e) => a1(e, xe.value);
54081
+ let at = (e) => s1(e, xe.value);
54046
54082
  function ot(e) {
54047
54083
  let t = [
54048
54084
  i.display_name(e.item.member),
54049
54085
  rt(e),
54050
- $$[e.item.state],
54051
- `用时 ${n1(e.end - e.start)}`
54086
+ t1[e.item.state],
54087
+ `用时 ${i1(e.end - e.start)}`
54052
54088
  ];
54053
- return e.wake && t.push(`唤醒 ${n1(e.wake[1] - e.wake[0])}${e.wake_approx ? "(约)" : ""}`), !e.segments.length && e.work && t.push("无阶段明细"), e.notes.length && t.push(`${e.notes.length} 段过程说明`), t.join(",");
54089
+ return e.wake && t.push(`唤醒 ${i1(e.wake[1] - e.wake[0])}${e.wake_approx ? "(约)" : ""}`), !e.segments.length && e.work && t.push("无阶段明细"), e.notes.length && t.push(`${e.notes.length} 段过程说明`), t.join(",");
54054
54090
  }
54055
54091
  async function st(e) {
54056
54092
  let t = e.item.id;
@@ -54074,7 +54110,7 @@ var T1 = {
54074
54110
  let i = e.currentTarget.getBoundingClientRect(), a = n.note ? {
54075
54111
  notes: [n.note],
54076
54112
  earlier: !1
54077
- } : c1(t.notes, n.start, n.end), o = Math.min(360, window.innerWidth - 16), s = i.bottom + 6, c = s + 160 > window.innerHeight && i.top > 200 ? Math.max(8, i.top - 6 - 200) : s;
54113
+ } : u1(t.notes, n.start, n.end), o = Math.min(360, window.innerWidth - 16), s = i.bottom + 6, c = s + 160 > window.innerHeight && i.top > 200 ? Math.max(8, i.top - 6 - 200) : s;
54078
54114
  v.value = {
54079
54115
  key: t.key,
54080
54116
  id: dt(t, n),
@@ -54098,7 +54134,7 @@ var T1 = {
54098
54134
  }
54099
54135
  let ht = Z(() => {
54100
54136
  let e = v.value?.piece;
54101
- return e ? e.note ? `过程说明 · ${ct(e.note.at)}` : `${e.kind === "segment" ? `${Z$[e.phase]}${e.tool ? ` · ${e.tool}` : ""}` : e.label} · ${n1(e.end - e.start)}${e.live ? " · 进行中" : ""}` : "";
54137
+ return e ? e.note ? `过程说明 · ${ct(e.note.at)}` : `${e.kind === "segment" ? `${$$[e.phase]}${e.tool ? ` · ${e.tool}` : ""}` : e.label} · ${i1(e.end - e.start)}${e.live ? " · 进行中" : ""}` : "";
54102
54138
  }), gt = Z(() => {
54103
54139
  if (!v.value) return [];
54104
54140
  let e = _.value.get(v.value.row.item.id);
@@ -54109,17 +54145,17 @@ var T1 = {
54109
54145
  });
54110
54146
  return (e, t) => {
54111
54147
  let r = bH, o = sA, s = pA;
54112
- return U(), W("section", T1, [
54148
+ return U(), W("section", D1, [
54113
54149
  t[30] ||= K("div", { class: "page-heading" }, [K("div", null, [K("h2", null, "执行时间线"), K("p", null, "本机接入程序唤醒的每次执行;点名字看详情,悬停条形看当时的过程说明。")])], -1),
54114
- m.value ? (U(), W("p", E1, P(m.value), 1)) : Y("", !0),
54115
- re.value && !Se.value.length ? (U(), W("p", D1, "还没有执行记录。")) : Y("", !0),
54150
+ m.value ? (U(), W("p", O1, P(m.value), 1)) : Y("", !0),
54151
+ re.value && !Se.value.length ? (U(), W("p", k1, "还没有执行记录。")) : Y("", !0),
54116
54152
  Se.value.length ? (U(), W("div", {
54117
54153
  key: 2,
54118
54154
  ref_key: "wf_element",
54119
54155
  ref: x,
54120
54156
  class: "wf"
54121
54157
  }, [
54122
- K("header", O1, [
54158
+ K("header", A1, [
54123
54159
  t[12] ||= K("span", { class: "wf-title" }, "执行瀑布", -1),
54124
54160
  q(r, {
54125
54161
  modelValue: fe.value,
@@ -54138,17 +54174,17 @@ var T1 = {
54138
54174
  trailingIcon: "wf-select-icon"
54139
54175
  }
54140
54176
  }, null, 8, ["modelValue", "items"]),
54141
- be.value ? (U(), W("span", k1, "回放中 · " + P(ct(xe.value)), 1)) : (U(), W("span", {
54177
+ be.value ? (U(), W("span", j1, "回放中 · " + P(ct(xe.value)), 1)) : (U(), W("span", {
54142
54178
  key: 1,
54143
54179
  class: j(["wf-state", { "is-live": Ge.value.running }])
54144
54180
  }, P(Ge.value.running ? `${Ge.value.running} 个进行中` : "均已结束"), 3)),
54145
- Ge.value.slowest ? (U(), W("span", A1, [
54181
+ Ge.value.slowest ? (U(), W("span", M1, [
54146
54182
  t[11] ||= J("最慢一步 ", -1),
54147
- K("b", null, [J(P(I(i).display_name(Ge.value.slowest.member)) + " · " + P(I(Z$)[Ge.value.slowest.phase]), 1), Ge.value.slowest.tool ? (U(), W(H, { key: 0 }, [J(P(Ge.value.slowest.tool), 1)], 64)) : Y("", !0)]),
54148
- J(" · " + P(I(n1)(Ge.value.slowest.end - Ge.value.slowest.start)), 1)
54183
+ K("b", null, [J(P(I(i).display_name(Ge.value.slowest.member)) + " · " + P(I($$)[Ge.value.slowest.phase]), 1), Ge.value.slowest.tool ? (U(), W(H, { key: 0 }, [J(P(Ge.value.slowest.tool), 1)], 64)) : Y("", !0)]),
54184
+ J(" · " + P(I(i1)(Ge.value.slowest.end - Ge.value.slowest.start)), 1)
54149
54185
  ])) : Y("", !0)
54150
54186
  ]),
54151
- K("dl", j1, [
54187
+ K("dl", N1, [
54152
54188
  K("div", null, [t[13] ||= K("dt", null, "执行", -1), K("dd", null, [(U(), W("span", {
54153
54189
  key: Ge.value.executions,
54154
54190
  class: "wf-roll"
@@ -54164,17 +54200,17 @@ var T1 = {
54164
54200
  K("div", { title: `超过 ${a} 分钟没有输出` }, [t[16] ||= K("dt", null, "可能卡住", -1), K("dd", { class: j(Ge.value.stalled ? "is-warn" : "is-zero") }, [(U(), W("span", {
54165
54201
  key: Ge.value.stalled,
54166
54202
  class: "wf-roll"
54167
- }, P(Ge.value.stalled), 1))], 2)], 8, M1),
54168
- K("div", { title: Te.value.folds.length ? `已折叠 ${Te.value.folds.length} 段超过 ${I(e1) / 6e4} 分钟的空闲` : void 0 }, [t[17] ||= K("dt", null, "有效时长", -1), K("dd", null, P(I(n1)(Te.value.busy_ms)), 1)], 8, N1),
54169
- K("div", P1, [t[19] ||= K("dt", null, "工具与命令", -1), K("dd", { class: j({ "is-zero": !Ge.value.tool_segments }) }, [(U(), W("span", {
54203
+ }, P(Ge.value.stalled), 1))], 2)], 8, P1),
54204
+ K("div", { title: Te.value.folds.length ? `已折叠 ${Te.value.folds.length} 段超过 ${I(n1) / 6e4} 分钟的空闲` : void 0 }, [t[17] ||= K("dt", null, "有效时长", -1), K("dd", null, P(I(i1)(Te.value.busy_ms)), 1)], 8, F1),
54205
+ K("div", I1, [t[19] ||= K("dt", null, "工具与命令", -1), K("dd", { class: j({ "is-zero": !Ge.value.tool_segments }) }, [(U(), W("span", {
54170
54206
  key: Ge.value.tool_segments,
54171
54207
  class: "wf-roll"
54172
54208
  }, P(Ge.value.tool_segments), 1)), t[18] ||= J(" 段", -1)], 2)])
54173
54209
  ]),
54174
- K("ul", F1, [
54210
+ K("ul", L1, [
54175
54211
  (U(!0), W(H, null, B(Ye.value, ([e, t]) => (U(), W("li", { key: e }, [K("i", { class: j(["wf-swatch", `is-${e}`]) }, null, 2), J(P(t), 1)]))), 128)),
54176
- Ze.value.size > 1 ? (U(), W("li", I1, "颜色区分成员,深浅区分模型与工具")) : Y("", !0),
54177
- Xe.value ? (U(), W("li", L1, "这些执行都没有阶段明细:发生在接入程序上报阶段之前,或来自手动接入、在线 AI、Codex App")) : Y("", !0)
54212
+ Ze.value.size > 1 ? (U(), W("li", R1, "颜色区分成员,深浅区分模型与工具")) : Y("", !0),
54213
+ Xe.value ? (U(), W("li", z1, "这些执行都没有阶段明细:发生在接入程序上报阶段之前,或来自手动接入、在线 AI、Codex App")) : Y("", !0)
54178
54214
  ]),
54179
54215
  K("div", {
54180
54216
  class: j(["wf-grid", {
@@ -54182,7 +54218,7 @@ var T1 = {
54182
54218
  "is-panning": I(ie)
54183
54219
  }]),
54184
54220
  role: "list",
54185
- style: A({ "--wf-depth-px": `${z0}px` }),
54221
+ style: A({ "--wf-depth-px": `${V0}px` }),
54186
54222
  onWheel: oe,
54187
54223
  onMousedown: le,
54188
54224
  onPointerdown: k,
@@ -54190,14 +54226,14 @@ var T1 = {
54190
54226
  onPointerup: ce,
54191
54227
  onPointercancel: ce
54192
54228
  }, [
54193
- K("div", R1, [
54229
+ K("div", B1, [
54194
54230
  K("span", null, "执行 · " + P(Ce.value.length) + "/" + P(Se.value.length), 1),
54195
- Oe.value ? (U(), W("span", z1, [J("放大 " + P((1 / De.value.span).toFixed(1)) + "×", 1), K("button", {
54231
+ Oe.value ? (U(), W("span", V1, [J("放大 " + P((1 / De.value.span).toFixed(1)) + "×", 1), K("button", {
54196
54232
  type: "button",
54197
54233
  class: "wf-text-button",
54198
54234
  onClick: t[1] ||= (e) => De.value = Ee
54199
- }, "重置")])) : (U(), W("span", B1, "Ctrl + 滚轮缩放")),
54200
- Ke.value.length ? (U(), W("span", V1, [K("button", {
54235
+ }, "重置")])) : (U(), W("span", H1, "Ctrl + 滚轮缩放")),
54236
+ Ke.value.length ? (U(), W("span", U1, [K("button", {
54201
54237
  type: "button",
54202
54238
  class: "wf-text-button",
54203
54239
  onClick: t[2] ||= (e) => g.value = /* @__PURE__ */ new Set()
@@ -54224,7 +54260,7 @@ var T1 = {
54224
54260
  class: "wf-fold-label",
54225
54261
  style: A({ left: `${e.middle * 100}%` }),
54226
54262
  title: `${ct(e.start)} – ${ct(e.end)} 没有执行,已折叠`
54227
- }, "⋯ " + P(I(n1)(e.end - e.start)), 13, H1))), 128)),
54263
+ }, "⋯ " + P(I(i1)(e.end - e.start)), 13, W1))), 128)),
54228
54264
  Ae.value === null ? Y("", !0) : (U(), W("span", {
54229
54265
  key: 0,
54230
54266
  class: "wf-cursor-head",
@@ -54244,7 +54280,7 @@ var T1 = {
54244
54280
  class: "wf-label",
54245
54281
  style: A({ "--depth": e.depth })
54246
54282
  }, [
54247
- e.depth ? (U(), W("span", U1)) : Y("", !0),
54283
+ e.depth ? (U(), W("span", G1)) : Y("", !0),
54248
54284
  e.has_children ? (U(), W("button", {
54249
54285
  key: 1,
54250
54286
  type: "button",
@@ -54252,7 +54288,7 @@ var T1 = {
54252
54288
  "aria-expanded": !g.value.has(e.key),
54253
54289
  "aria-label": `${g.value.has(e.key) ? "展开" : "收起"} ${I(i).display_name(e.item.member)} 派出的执行`,
54254
54290
  onClick: (t) => tt(e.key)
54255
- }, [q(o, { name: "i-lucide-chevron-right" })], 10, W1)) : (U(), W("span", G1)),
54291
+ }, [q(o, { name: "i-lucide-chevron-right" })], 10, K1)) : (U(), W("span", q1)),
54256
54292
  q(s, {
54257
54293
  src: I(i).identities[e.item.member]?.icon,
54258
54294
  text: I(i).identities[e.item.member]?.initials,
@@ -54271,29 +54307,29 @@ var T1 = {
54271
54307
  "aria-expanded": y.value === e.key,
54272
54308
  onClick: (t) => et(e, t),
54273
54309
  onMouseenter: (t) => ft(t, e, {
54274
- label: I($$)[e.item.state],
54310
+ label: I(t1)[e.item.state],
54275
54311
  start: e.start,
54276
54312
  end: e.end,
54277
54313
  text: at(e).text,
54278
54314
  live: e.item.state === "running"
54279
54315
  }),
54280
54316
  onMouseleave: (t) => mt(e)
54281
- }, [K("span", q1, [
54282
- e.item.state === "running" ? (U(), W("i", J1)) : Y("", !0),
54317
+ }, [K("span", Y1, [
54318
+ e.item.state === "running" ? (U(), W("i", X1)) : Y("", !0),
54283
54319
  K("strong", null, P(I(i).display_name(e.item.member)), 1),
54284
54320
  (U(!0), W(H, null, B(it(e), (e) => (U(), W("em", {
54285
54321
  key: e,
54286
54322
  class: "wf-pill is-role"
54287
54323
  }, P(e), 1))), 128)),
54288
- Ge.value.slowest?.row === e.key ? (U(), W("em", Y1, "最慢")) : Y("", !0)
54289
- ]), K("span", { class: j(["wf-status", `is-${at(e).tone}`]) }, [at(e).tone === "live" ? (U(), W("i", X1)) : Y("", !0), J(P(at(e).text), 1)], 2)], 40, K1)
54324
+ Ge.value.slowest?.row === e.key ? (U(), W("em", Z1, "最慢")) : Y("", !0)
54325
+ ]), K("span", { class: j(["wf-status", `is-${at(e).tone}`]) }, [at(e).tone === "live" ? (U(), W("i", Q1)) : Y("", !0), J(P(at(e).text), 1)], 2)], 40, J1)
54290
54326
  ], 4),
54291
54327
  K("div", {
54292
54328
  class: "wf-lane",
54293
54329
  role: "img",
54294
54330
  "aria-label": ot(e),
54295
54331
  onMouseleave: (t) => mt(e)
54296
- }, [K("div", Q1, [
54332
+ }, [K("div", e0, [
54297
54333
  (U(!0), W(H, null, B($e.value, (e) => (U(), W("i", {
54298
54334
  key: e.at,
54299
54335
  class: "wf-gridline",
@@ -54313,7 +54349,7 @@ var T1 = {
54313
54349
  class: j(["wf-link", `is-${e.part}`]),
54314
54350
  "data-tone": Ze.value.get(e.member),
54315
54351
  style: A({ left: `${e.x * 100}%` })
54316
- }, null, 14, $1))), 128)),
54352
+ }, null, 14, t0))), 128)),
54317
54353
  Ae.value === null ? Y("", !0) : (U(), W("i", {
54318
54354
  key: 0,
54319
54355
  class: "wf-cursor",
@@ -54332,7 +54368,7 @@ var T1 = {
54332
54368
  start: e.queue[0],
54333
54369
  end: e.queue[1]
54334
54370
  })
54335
- }, null, 44, e0),
54371
+ }, null, 44, n0),
54336
54372
  e.wake ? (U(), W("i", {
54337
54373
  key: 1,
54338
54374
  class: "wf-bar is-wake",
@@ -54347,7 +54383,7 @@ var T1 = {
54347
54383
  start: e.wake[0],
54348
54384
  end: e.wake[1]
54349
54385
  })
54350
- }, null, 44, t0)) : Y("", !0),
54386
+ }, null, 44, r0)) : Y("", !0),
54351
54387
  e.work ? (U(), W("i", {
54352
54388
  key: 2,
54353
54389
  class: j(["wf-bar is-work", { "has-detail": e.segments.length }]),
@@ -54365,9 +54401,9 @@ var T1 = {
54365
54401
  end: e.work[1],
54366
54402
  live: e.item.state === "running"
54367
54403
  })
54368
- }, null, 46, n0)) : Y("", !0),
54404
+ }, null, 46, i0)) : Y("", !0),
54369
54405
  (U(!0), W(H, null, B(e.segments, (t) => (U(), W(H, { key: t.start + t.phase }, [K("i", {
54370
- class: j(["wf-bar wf-seg", [`is-${I(Q$)[t.phase]}`, { "is-live": t.live }]]),
54406
+ class: j(["wf-bar wf-seg", [`is-${I(e1)[t.phase]}`, { "is-live": t.live }]]),
54371
54407
  "data-tone": Ze.value.get(e.item.member),
54372
54408
  style: A(nt(t.start, t.seen, !0)),
54373
54409
  onMouseenter: (n) => ft(n, e, {
@@ -54378,9 +54414,9 @@ var T1 = {
54378
54414
  kind: "segment",
54379
54415
  ...t
54380
54416
  })
54381
- }, null, 46, r0), t.end > t.seen ? (U(), W("i", {
54417
+ }, null, 46, a0), t.end > t.seen ? (U(), W("i", {
54382
54418
  key: 0,
54383
- class: j(["wf-bar wf-seg is-tail", `is-${I(Q$)[t.phase]}`]),
54419
+ class: j(["wf-bar wf-seg is-tail", `is-${I(e1)[t.phase]}`]),
54384
54420
  "data-tone": Ze.value.get(e.item.member),
54385
54421
  style: A(nt(t.seen, t.end)),
54386
54422
  onMouseenter: (n) => ft(n, e, {
@@ -54391,7 +54427,7 @@ var T1 = {
54391
54427
  kind: "segment",
54392
54428
  ...t
54393
54429
  })
54394
- }, null, 46, i0)) : Y("", !0)], 64))), 128)),
54430
+ }, null, 46, o0)) : Y("", !0)], 64))), 128)),
54395
54431
  (U(!0), W(H, null, B(e.notes, (t) => (U(), W("button", {
54396
54432
  key: `note-${t.index}`,
54397
54433
  type: "button",
@@ -54414,15 +54450,15 @@ var T1 = {
54414
54450
  end: t.at
54415
54451
  }),
54416
54452
  onBlur: (t) => mt(e)
54417
- }, null, 44, a0))), 128))
54418
- ])], 40, Z1),
54419
- K("span", o0, [
54420
- J(P(I(n1)(e.end - e.start)) + P(e.wake_approx && e.wake ? "~" : ""), 1),
54453
+ }, null, 44, s0))), 128))
54454
+ ])], 40, $1),
54455
+ K("span", c0, [
54456
+ J(P(I(i1)(e.end - e.start)) + P(e.wake_approx && e.wake ? "~" : ""), 1),
54421
54457
  e.item.state === "done" ? Y("", !0) : (U(), W("small", {
54422
54458
  key: 0,
54423
54459
  class: j(`is-${e.item.state}`)
54424
- }, P(I($$)[e.item.state]), 3)),
54425
- e.truncated ? (U(), W("small", s0, "明细已截断")) : Y("", !0)
54460
+ }, P(I(t1)[e.item.state]), 3)),
54461
+ e.truncated ? (U(), W("small", l0, "明细已截断")) : Y("", !0)
54426
54462
  ])
54427
54463
  ], 2))), 128))
54428
54464
  ], 38),
@@ -54436,9 +54472,9 @@ var T1 = {
54436
54472
  left: `${b.value.left}px`
54437
54473
  })
54438
54474
  }, [
54439
- K("header", l0, [
54475
+ K("header", d0, [
54440
54476
  K("strong", null, P(I(i).display_name(qe.value.item.member)), 1),
54441
- K("small", null, P(rt(qe.value)) + " · " + P(I($$)[qe.value.item.state]) + " · " + P(I(n1)(qe.value.end - qe.value.start)), 1),
54477
+ K("small", null, P(rt(qe.value)) + " · " + P(I(t1)[qe.value.item.state]) + " · " + P(I(i1)(qe.value.end - qe.value.start)), 1),
54442
54478
  K("button", {
54443
54479
  type: "button",
54444
54480
  class: "wf-card-close",
@@ -54447,47 +54483,47 @@ var T1 = {
54447
54483
  }, [q(o, { name: "i-lucide-x" })])
54448
54484
  ]),
54449
54485
  K("dl", null, [
54450
- qe.value.item.task ? (U(), W("div", u0, [t[22] ||= K("dt", null, "任务", -1), K("dd", null, [J(P(qe.value.item.task), 1), qe.value.item.task_id ? (U(), W("button", {
54486
+ qe.value.item.task ? (U(), W("div", f0, [t[22] ||= K("dt", null, "任务", -1), K("dd", null, [J(P(qe.value.item.task), 1), qe.value.item.task_id ? (U(), W("button", {
54451
54487
  key: 0,
54452
54488
  type: "button",
54453
54489
  class: "subtle-link",
54454
54490
  onClick: t[6] ||= (e) => n("detail", qe.value.item.task_id)
54455
54491
  }, "#" + P(qe.value.item.task_id), 1)) : Y("", !0)])])) : Y("", !0),
54456
- qe.value.item.state === "failed" ? (U(), W("div", d0, [t[23] ||= K("dt", null, "失败原因", -1), K("dd", f0, P(qe.value.item.reason || "执行失败"), 1)])) : qe.value.item.result || qe.value.item.answer_id ? (U(), W("div", p0, [t[24] ||= K("dt", null, "结果", -1), K("dd", null, [J(P(qe.value.item.result), 1), qe.value.item.answer_id ? (U(), W("button", {
54492
+ qe.value.item.state === "failed" ? (U(), W("div", p0, [t[23] ||= K("dt", null, "失败原因", -1), K("dd", m0, P(qe.value.item.reason || "执行失败"), 1)])) : qe.value.item.result || qe.value.item.answer_id ? (U(), W("div", h0, [t[24] ||= K("dt", null, "结果", -1), K("dd", null, [J(P(qe.value.item.result), 1), qe.value.item.answer_id ? (U(), W("button", {
54457
54493
  key: 0,
54458
54494
  type: "button",
54459
54495
  class: "subtle-link",
54460
54496
  onClick: t[7] ||= (e) => n("detail", qe.value.item.answer_id)
54461
54497
  }, "在消息中查看 #" + P(qe.value.item.answer_id), 1)) : Y("", !0)])])) : Y("", !0),
54462
- qe.value.item.changes ? (U(), W("div", m0, [t[25] ||= K("dt", null, "改动", -1), K("dd", null, P(qe.value.item.changes) + " 个文件", 1)])) : Y("", !0)
54498
+ qe.value.item.changes ? (U(), W("div", g0, [t[25] ||= K("dt", null, "改动", -1), K("dd", null, P(qe.value.item.changes) + " 个文件", 1)])) : Y("", !0)
54463
54499
  ]),
54464
- Je.value.length ? (U(), W("ol", h0, [(U(!0), W(H, null, B(Je.value, (e) => (U(), W("li", {
54500
+ Je.value.length ? (U(), W("ol", _0, [(U(!0), W(H, null, B(Je.value, (e) => (U(), W("li", {
54465
54501
  key: `${e.kind}-${e.at}-${e.phase || ""}`,
54466
54502
  class: j(`log-${e.kind}`)
54467
54503
  }, [K("time", null, P(ct(e.at)), 1), e.kind === "phase" ? (U(), W(H, { key: 0 }, [K("i", {
54468
- class: j(["wf-swatch", `is-${I(Q$)[e.phase]}`]),
54504
+ class: j(["wf-swatch", `is-${I(e1)[e.phase]}`]),
54469
54505
  "data-tone": Ze.value.get(qe.value.item.member),
54470
54506
  "aria-hidden": "true"
54471
- }, null, 10, g0), K("span", null, [
54472
- J(P(I(Z$)[e.phase]), 1),
54507
+ }, null, 10, v0), K("span", null, [
54508
+ J(P(I($$)[e.phase]), 1),
54473
54509
  e.tool ? (U(), W(H, { key: 0 }, [J(" · " + P(e.tool), 1)], 64)) : Y("", !0),
54474
- J(" · " + P(e.live ? "进行中" : I(n1)(e.duration)), 1)
54475
- ])], 64)) : (U(), W("span", _0, P(e.text), 1))], 2))), 128))])) : (U(), W("p", v0, "这次执行没有阶段明细或过程说明。"))
54476
- ], 12, c0)) : Y("", !0),
54477
- me.value === K0 ? (U(), W("div", y0, [...t[26] ||= [K("span", { class: "wf-player-note" }, "回放按轮进行:在上方选一轮即可回放", -1)]])) : (U(), W("div", b0, [ve.value ? (U(), W(H, { key: 0 }, [t[27] ||= K("span", { class: "wf-state is-live" }, "实时", -1), t[28] ||= K("span", { class: "wf-player-note" }, "这一轮结束后可以回放", -1)], 64)) : (U(), W(H, { key: 1 }, [
54510
+ J(" · " + P(e.live ? "进行中" : I(i1)(e.duration)), 1)
54511
+ ])], 64)) : (U(), W("span", y0, P(e.text), 1))], 2))), 128))])) : (U(), W("p", b0, "这次执行没有阶段明细或过程说明。"))
54512
+ ], 12, u0)) : Y("", !0),
54513
+ me.value === J0 ? (U(), W("div", x0, [...t[26] ||= [K("span", { class: "wf-player-note" }, "回放按轮进行:在上方选一轮即可回放", -1)]])) : (U(), W("div", S0, [ve.value ? (U(), W(H, { key: 0 }, [t[27] ||= K("span", { class: "wf-state is-live" }, "实时", -1), t[28] ||= K("span", { class: "wf-player-note" }, "这一轮结束后可以回放", -1)], 64)) : (U(), W(H, { key: 1 }, [
54478
54514
  K("button", {
54479
54515
  type: "button",
54480
54516
  class: "wf-player-button",
54481
54517
  "aria-label": O.playing ? "暂停回放" : "回放这一轮",
54482
54518
  onClick: t[8] ||= (e) => O.playing ? Le() : Fe()
54483
- }, [q(o, { name: O.playing ? "i-lucide-pause" : "i-lucide-play" }, null, 8, ["name"])], 8, x0),
54519
+ }, [q(o, { name: O.playing ? "i-lucide-pause" : "i-lucide-play" }, null, 8, ["name"])], 8, C0),
54484
54520
  K("button", {
54485
54521
  type: "button",
54486
54522
  class: "wf-player-button",
54487
54523
  "aria-label": "从头回放",
54488
54524
  disabled: !be.value,
54489
54525
  onClick: Re
54490
- }, [q(o, { name: "i-lucide-rotate-ccw" })], 8, S0),
54526
+ }, [q(o, { name: "i-lucide-rotate-ccw" })], 8, w0),
54491
54527
  q(r, {
54492
54528
  modelValue: O.speed,
54493
54529
  "onUpdate:modelValue": t[9] ||= (e) => O.speed = e,
@@ -54514,13 +54550,13 @@ var T1 = {
54514
54550
  value: be.value ? O.position : ye.value.duration,
54515
54551
  "aria-label": "回放位置",
54516
54552
  onInput: ze
54517
- }, null, 40, C0),
54518
- K("span", w0, P(I(n1)(be.value ? O.position : ye.value.duration)) + " / " + P(I(n1)(ye.value.duration)), 1)
54553
+ }, null, 40, T0),
54554
+ K("span", E0, P(I(i1)(be.value ? O.position : ye.value.duration)) + " / " + P(I(i1)(ye.value.duration)), 1)
54519
54555
  ], 64))])),
54520
- Te.value.folds.length || re.value.executions.length >= re.value.execution_limit ? (U(), W("footer", T0, [Te.value.folds.length ? (U(), W("span", E0, [t[29] ||= K("i", {
54556
+ Te.value.folds.length || re.value.executions.length >= re.value.execution_limit ? (U(), W("footer", D0, [Te.value.folds.length ? (U(), W("span", O0, [t[29] ||= K("i", {
54521
54557
  class: "wf-swatch is-fold",
54522
54558
  "aria-hidden": "true"
54523
- }, null, -1), J("已折叠 " + P(Te.value.folds.length) + " 段超过 " + P(I(e1) / 6e4) + " 分钟的空闲", 1)])) : Y("", !0), re.value.executions.length >= re.value.execution_limit ? (U(), W("span", D0, "只列出最近 " + P(re.value.execution_limit) + " 次讨论执行与 " + P(re.value.execution_limit) + " 次协作执行", 1)) : Y("", !0)])) : Y("", !0)
54559
+ }, null, -1), J("已折叠 " + P(Te.value.folds.length) + " 段超过 " + P(I(n1) / 6e4) + " 分钟的空闲", 1)])) : Y("", !0), re.value.executions.length >= re.value.execution_limit ? (U(), W("span", k0, "只列出最近 " + P(re.value.execution_limit) + " 次讨论执行与 " + P(re.value.execution_limit) + " 次协作执行", 1)) : Y("", !0)])) : Y("", !0)
54524
54560
  ], 512)) : Y("", !0),
54525
54561
  v.value ? (U(), W("div", {
54526
54562
  key: 3,
@@ -54540,79 +54576,79 @@ var T1 = {
54540
54576
  onClick: t[10] ||= (e) => v.value = null
54541
54577
  }, [q(o, { name: "i-lucide-x" })])) : Y("", !0),
54542
54578
  K("small", null, [J(P(ct(v.value.piece.start)), 1), v.value.piece.end > v.value.piece.start ? (U(), W(H, { key: 0 }, [J(" – " + P(v.value.piece.live ? "现在" : ct(v.value.piece.end)), 1)], 64)) : Y("", !0)]),
54543
- v.value.piece.text ? (U(), W("p", k0, P(v.value.piece.text), 1)) : v.value.row.item.reason ? (U(), W("p", A0, P(v.value.row.item.reason), 1)) : Y("", !0),
54544
- gt.value.length ? (U(), W(H, { key: 3 }, [K("small", j0, P(v.value.related.earlier ? "此前的过程说明" : "过程说明"), 1), K("ol", null, [(U(!0), W(H, null, B(gt.value, (e) => (U(), W("li", { key: e.at + e.text }, [K("time", null, P(ct(e.at)), 1), J(P(e.text), 1)]))), 128))])], 64)) : Y("", !0)
54545
- ], 14, O0)) : Y("", !0)
54579
+ v.value.piece.text ? (U(), W("p", j0, P(v.value.piece.text), 1)) : v.value.row.item.reason ? (U(), W("p", M0, P(v.value.row.item.reason), 1)) : Y("", !0),
54580
+ gt.value.length ? (U(), W(H, { key: 3 }, [K("small", N0, P(v.value.related.earlier ? "此前的过程说明" : "过程说明"), 1), K("ol", null, [(U(!0), W(H, null, B(gt.value, (e) => (U(), W("li", { key: e.at + e.text }, [K("time", null, P(ct(e.at)), 1), J(P(e.text), 1)]))), 128))])], 64)) : Y("", !0)
54581
+ ], 14, A0)) : Y("", !0)
54546
54582
  ]);
54547
54583
  };
54548
54584
  }
54549
- }, [["__scopeId", "data-v-ae571187"]]), Z0 = {
54585
+ }, [["__scopeId", "data-v-ae571187"]]), $0 = {
54550
54586
  id: "channel-sidebar",
54551
54587
  class: "channel-sidebar",
54552
54588
  "aria-label": "房间导航"
54553
- }, Q0 = { class: "channel-sidebar-content" }, $0 = { class: "channel-directory-heading channel-tools-heading" }, e2 = ["aria-expanded"], t2 = { class: "channel-sidebar-footer" }, n2 = ["aria-label"], r2 = { class: "channel-self" }, i2 = ["title"], a2 = [
54589
+ }, e2 = { class: "channel-sidebar-content" }, t2 = { class: "channel-directory-heading channel-tools-heading" }, n2 = ["aria-expanded"], r2 = { class: "channel-sidebar-footer" }, i2 = ["aria-label"], a2 = { class: "channel-self" }, o2 = ["title"], s2 = [
54554
54590
  "aria-valuemax",
54555
54591
  "aria-valuenow",
54556
54592
  "aria-valuetext"
54557
- ], o2 = { class: "channel-main" }, s2 = { class: "channel-header" }, c2 = { class: "channel-title-icon" }, l2 = { class: "channel-title" }, u2 = { class: "channel-title-copy" }, d2 = ["title"], f2 = {
54593
+ ], c2 = { class: "channel-main" }, l2 = { class: "channel-header" }, u2 = { class: "channel-title-icon" }, d2 = { class: "channel-title" }, f2 = { class: "channel-title-copy" }, p2 = ["title"], m2 = {
54558
54594
  key: 2,
54559
54595
  class: "channel-header-context"
54560
- }, p2 = { class: "channel-header-actions" }, m2 = {
54596
+ }, h2 = { class: "channel-header-actions" }, g2 = {
54561
54597
  key: 0,
54562
54598
  class: "channel-launch-recovery",
54563
54599
  "aria-label": "未完成的创建或启动请求"
54564
- }, h2 = { role: "status" }, g2 = { class: "button-row" }, _2 = {
54600
+ }, _2 = { role: "status" }, v2 = { class: "button-row" }, y2 = {
54565
54601
  key: 1,
54566
54602
  class: "channel-tabbar"
54567
- }, v2 = { class: "channel-brief-inner" }, y2 = { class: "channel-brief-heading" }, b2 = ["aria-label", "aria-expanded"], x2 = {
54603
+ }, b2 = { class: "channel-brief-inner" }, x2 = { class: "channel-brief-heading" }, S2 = ["aria-label", "aria-expanded"], C2 = {
54568
54604
  key: 0,
54569
54605
  class: "channel-brief-preview"
54570
- }, S2 = {
54606
+ }, w2 = {
54571
54607
  id: "channel-brief-content",
54572
54608
  class: "channel-brief-content"
54573
- }, C2 = ["innerHTML"], w2 = { class: "channel-brief-footer" }, T2 = { class: "channel-brief-status" }, E2 = { class: "channel-content" }, D2 = {
54609
+ }, T2 = ["innerHTML"], E2 = { class: "channel-brief-footer" }, D2 = { class: "channel-brief-status" }, O2 = { class: "channel-content" }, k2 = {
54574
54610
  key: 0,
54575
54611
  class: "content-page merged-page",
54576
54612
  role: "tabpanel",
54577
54613
  "aria-label": "讨论"
54578
- }, O2 = {
54614
+ }, A2 = {
54579
54615
  key: 1,
54580
54616
  class: "merged-section",
54581
54617
  "aria-label": "当前讨论"
54582
- }, k2 = { class: "page-heading" }, A2 = {
54618
+ }, j2 = { class: "page-heading" }, M2 = {
54583
54619
  key: 0,
54584
54620
  class: "fine-print"
54585
- }, j2 = {
54621
+ }, N2 = {
54586
54622
  class: "merged-section channel-summary",
54587
54623
  "aria-label": "当前共识"
54588
- }, M2 = { class: "page-heading" }, N2 = { class: "form-footer" }, P2 = { class: "button-row" }, F2 = { class: "consensus-card is-brief" }, I2 = ["innerHTML"], L2 = {
54624
+ }, P2 = { class: "page-heading" }, F2 = { class: "form-footer" }, I2 = { class: "button-row" }, L2 = { class: "consensus-card is-brief" }, R2 = ["innerHTML"], z2 = {
54589
54625
  key: 0,
54590
54626
  class: "consensus-card"
54591
- }, R2 = ["innerHTML"], z2 = {
54627
+ }, B2 = ["innerHTML"], V2 = {
54592
54628
  key: 2,
54593
54629
  class: "fine-print"
54594
- }, B2 = {
54630
+ }, H2 = {
54595
54631
  key: 1,
54596
54632
  class: "content-page merged-page",
54597
54633
  role: "tabpanel",
54598
54634
  "aria-label": "房间"
54599
- }, V2 = {
54635
+ }, U2 = {
54600
54636
  key: 2,
54601
54637
  class: "content-page merged-page",
54602
54638
  role: "tabpanel",
54603
54639
  "aria-label": "执行"
54604
- }, H2 = {
54640
+ }, W2 = {
54605
54641
  key: 1,
54606
54642
  class: "channel-empty"
54607
- }, U2 = ["aria-valuenow", "aria-valuetext"], W2 = {
54643
+ }, G2 = ["aria-valuenow", "aria-valuetext"], K2 = {
54608
54644
  key: 2,
54609
54645
  id: "channel-member-rail",
54610
54646
  class: "channel-member-rail",
54611
54647
  "aria-label": "当前焦点与讨论进度"
54612
- }, G2 = { class: "channel-rail-board" }, K2 = {
54648
+ }, q2 = { class: "channel-rail-board" }, J2 = {
54613
54649
  key: 1,
54614
54650
  class: "progress-board is-docked"
54615
- }, q2 = { class: "channel-detail-title" }, J2 = { class: "info-section" }, Y2 = "ai-codiscuss-channel-layout", X2 = 220, Z2 = 440, Q2 = 280, $2 = 16, e4 = 180, t4 = 400, n4 = 248, r4 = 16, i4 = 480, a4 = 1200, o4 = 0, s4 = {
54651
+ }, Y2 = { class: "channel-detail-title" }, X2 = { class: "info-section" }, Z2 = "ai-codiscuss-channel-layout", Q2 = 220, $2 = 440, e4 = 280, t4 = 16, n4 = 180, r4 = 400, i4 = 248, a4 = 16, o4 = 480, s4 = 1200, c4 = 0, l4 = {
54616
54652
  __name: "ChannelWorkspace",
54617
54653
  setup(e) {
54618
54654
  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 = [{
@@ -54634,14 +54670,14 @@ var T1 = {
54634
54670
  label: "宽",
54635
54671
  width: 1240
54636
54672
  }
54637
- }, b = Ne(), 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), ee = /* @__PURE__ */ F(b.collapsed), E = /* @__PURE__ */ F(!0), D = /* @__PURE__ */ F(b.rail_collapsed), O = Z(() => T.value >= a4), te = Z(() => O.value && !ee.value), ne = Z(() => t.value.tab === "discussion" && !D.value), re = Z(() => O.value && t.value.tab === "discussion" ? D.value ? "展开房间概览" : "收起房间概览" : "房间资料与参与者"), ie = Z(() => {
54673
+ }, b = Ne(), 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), ee = /* @__PURE__ */ F(b.collapsed), E = /* @__PURE__ */ F(!0), D = /* @__PURE__ */ F(b.rail_collapsed), O = Z(() => T.value >= s4), te = Z(() => O.value && !ee.value), ne = Z(() => t.value.tab === "discussion" && !D.value), re = Z(() => O.value && t.value.tab === "discussion" ? D.value ? "展开房间概览" : "收起房间概览" : "房间资料与参与者"), ie = Z(() => {
54638
54674
  let e = document.createElement("template");
54639
54675
  return e.innerHTML = o.value?.rendered_brief || "", e.content.textContent.replace(/\s+/g, " ").trim();
54640
- }), ae = /* @__PURE__ */ F(null), oe = /* @__PURE__ */ F(0), k = null, se = /* @__PURE__ */ F(null), ce = /* @__PURE__ */ F(null), le = Z(() => Math.min(t4, Math.max(e4, T.value - i4 - o4))), ue = Z(() => Math.min(w.value, le.value)), de = Z(() => ({
54676
+ }), ae = /* @__PURE__ */ F(null), oe = /* @__PURE__ */ F(0), k = null, se = /* @__PURE__ */ F(null), ce = /* @__PURE__ */ F(null), le = Z(() => Math.min(r4, Math.max(n4, T.value - o4 - c4))), ue = Z(() => Math.min(w.value, le.value)), de = Z(() => ({
54641
54677
  "--channel-reading-width": `${y[x.value].width}px`,
54642
54678
  "--channel-rail-width": `${C.value}px`,
54643
54679
  "--channel-topbar-height": `${oe.value}px`,
54644
- "--channel-main-columns": te.value ? `${ue.value}px ${o4}px minmax(0, 1fr)` : "minmax(0, 1fr)"
54680
+ "--channel-main-columns": te.value ? `${ue.value}px ${c4}px minmax(0, 1fr)` : "minmax(0, 1fr)"
54645
54681
  })), fe = Object.entries(y).map(([e, t]) => ({
54646
54682
  value: e,
54647
54683
  label: t.label
@@ -54738,12 +54774,12 @@ var T1 = {
54738
54774
  }
54739
54775
  function Ne() {
54740
54776
  try {
54741
- let e = JSON.parse(localStorage.getItem(Y2)) || {};
54777
+ let e = JSON.parse(localStorage.getItem(Z2)) || {};
54742
54778
  return {
54743
54779
  reading: Object.hasOwn(y, e.reading) ? e.reading : "default",
54744
54780
  effects: e.effects === "reduced" ? "reduced" : "full",
54745
- rail: Number.isFinite(e.rail) ? Math.min(Z2, Math.max(X2, e.rail)) : Q2,
54746
- nav: Number.isFinite(e.nav) ? Math.min(t4, Math.max(e4, e.nav)) : Pe(),
54781
+ rail: Number.isFinite(e.rail) ? Math.min($2, Math.max(Q2, e.rail)) : e4,
54782
+ nav: Number.isFinite(e.nav) ? Math.min(r4, Math.max(n4, e.nav)) : Pe(),
54747
54783
  collapsed: e.collapsed === !0,
54748
54784
  brief_collapsed: e.brief_collapsed === !0,
54749
54785
  rail_collapsed: e.rail_collapsed === !0
@@ -54752,7 +54788,7 @@ var T1 = {
54752
54788
  return {
54753
54789
  reading: "default",
54754
54790
  effects: "full",
54755
- rail: Q2,
54791
+ rail: e4,
54756
54792
  nav: Pe(),
54757
54793
  collapsed: !1,
54758
54794
  brief_collapsed: !1,
@@ -54761,11 +54797,11 @@ var T1 = {
54761
54797
  }
54762
54798
  }
54763
54799
  function Pe() {
54764
- return typeof window > "u" ? n4 : window.innerWidth >= 1900 ? 280 : window.innerWidth <= 980 ? 220 : n4;
54800
+ return typeof window > "u" ? i4 : window.innerWidth >= 1900 ? 280 : window.innerWidth <= 980 ? 220 : i4;
54765
54801
  }
54766
54802
  function Fe() {
54767
54803
  try {
54768
- localStorage.setItem(Y2, JSON.stringify({
54804
+ localStorage.setItem(Z2, JSON.stringify({
54769
54805
  reading: x.value,
54770
54806
  effects: S.value,
54771
54807
  rail: C.value,
@@ -54796,19 +54832,19 @@ var T1 = {
54796
54832
  }, e.currentTarget.setPointerCapture(e.pointerId));
54797
54833
  }
54798
54834
  function Ve(e) {
54799
- se.value?.pointer === e.pointerId && (C.value = Math.round(Math.min(Z2, Math.max(X2, se.value.width + se.value.x - e.clientX))));
54835
+ se.value?.pointer === e.pointerId && (C.value = Math.round(Math.min($2, Math.max(Q2, se.value.width + se.value.x - e.clientX))));
54800
54836
  }
54801
54837
  function He(e) {
54802
54838
  se.value?.pointer === e.pointerId && (se.value = null, e.currentTarget.hasPointerCapture(e.pointerId) && e.currentTarget.releasePointerCapture(e.pointerId), Fe());
54803
54839
  }
54804
54840
  function Ue(e) {
54805
54841
  let t = {
54806
- ArrowLeft: C.value + $2,
54807
- ArrowRight: C.value - $2,
54808
- Home: X2,
54809
- End: Z2
54842
+ ArrowLeft: C.value + t4,
54843
+ ArrowRight: C.value - t4,
54844
+ Home: Q2,
54845
+ End: $2
54810
54846
  };
54811
- Object.hasOwn(t, e.key) && (e.preventDefault(), C.value = Math.min(Z2, Math.max(X2, t[e.key])), Fe());
54847
+ Object.hasOwn(t, e.key) && (e.preventDefault(), C.value = Math.min($2, Math.max(Q2, t[e.key])), Fe());
54812
54848
  }
54813
54849
  function We(e) {
54814
54850
  e.button === 0 && (e.preventDefault(), e.currentTarget.focus(), ce.value = {
@@ -54818,19 +54854,19 @@ var T1 = {
54818
54854
  }, e.currentTarget.setPointerCapture(e.pointerId));
54819
54855
  }
54820
54856
  function Ge(e) {
54821
- ce.value?.pointer === e.pointerId && (w.value = Math.round(Math.min(le.value, Math.max(e4, ce.value.width + e.clientX - ce.value.x))));
54857
+ ce.value?.pointer === e.pointerId && (w.value = Math.round(Math.min(le.value, Math.max(n4, ce.value.width + e.clientX - ce.value.x))));
54822
54858
  }
54823
54859
  function Ke(e) {
54824
54860
  ce.value?.pointer === e.pointerId && (ce.value = null, e.currentTarget.hasPointerCapture(e.pointerId) && e.currentTarget.releasePointerCapture(e.pointerId), Fe());
54825
54861
  }
54826
54862
  function qe(e) {
54827
54863
  let t = {
54828
- ArrowLeft: ue.value - r4,
54829
- ArrowRight: ue.value + r4,
54830
- Home: e4,
54864
+ ArrowLeft: ue.value - a4,
54865
+ ArrowRight: ue.value + a4,
54866
+ Home: n4,
54831
54867
  End: le.value
54832
54868
  };
54833
- Object.hasOwn(t, e.key) && (e.preventDefault(), w.value = Math.min(le.value, Math.max(e4, t[e.key])), Fe());
54869
+ Object.hasOwn(t, e.key) && (e.preventDefault(), w.value = Math.min(le.value, Math.max(n4, t[e.key])), Fe());
54834
54870
  }
54835
54871
  return (e, r) => {
54836
54872
  let y = sA, b = lH, w = pA, T = MA, D = $V, oe = WV, k = YV, he = KV, N = HV, Ne = zV, Pe = NV, Fe = AV;
@@ -54842,10 +54878,10 @@ var T1 = {
54842
54878
  }]),
54843
54879
  style: A(de.value)
54844
54880
  }, [
54845
- K("aside", Z0, [
54881
+ K("aside", $0, [
54846
54882
  r[30] ||= ws("<header class=\"channel-workspace-heading\"><span class=\"channel-brand-icon\" aria-hidden=\"true\"><svg class=\"channel-brand-dark\" viewBox=\"0 0 100 100\"><defs><linearGradient id=\"brand-d0\" gradientUnits=\"userSpaceOnUse\" x1=\"4.5\" y1=\"64\" x2=\"95.5\" y2=\"64\"><stop offset=\"0.0%\" stop-color=\"#e9ebed\"></stop><stop offset=\"6.3%\" stop-color=\"#e2e5e7\"></stop><stop offset=\"12.5%\" stop-color=\"#dcdee1\"></stop><stop offset=\"18.8%\" stop-color=\"#d5d8db\"></stop><stop offset=\"25.0%\" stop-color=\"#ced2d5\"></stop><stop offset=\"31.3%\" stop-color=\"#c8cbcf\"></stop><stop offset=\"37.5%\" stop-color=\"#c1c5ca\"></stop><stop offset=\"43.8%\" stop-color=\"#babfc4\"></stop><stop offset=\"50.0%\" stop-color=\"#b4b9be\"></stop><stop offset=\"56.3%\" stop-color=\"#a9aeb3\"></stop><stop offset=\"62.5%\" stop-color=\"#9ea3a9\"></stop><stop offset=\"68.8%\" stop-color=\"#93999f\"></stop><stop offset=\"75.0%\" stop-color=\"#888e95\"></stop><stop offset=\"81.3%\" stop-color=\"#7e848a\"></stop><stop offset=\"87.5%\" stop-color=\"#737a80\"></stop><stop offset=\"93.8%\" stop-color=\"#697077\"></stop><stop offset=\"100.0%\" stop-color=\"#5f666d\"></stop></linearGradient><linearGradient id=\"brand-d1\" gradientUnits=\"userSpaceOnUse\" x1=\"8.5\" y1=\"36\" x2=\"91.5\" y2=\"36\"><stop offset=\"0.0%\" stop-color=\"#3f86ff\"></stop><stop offset=\"6.3%\" stop-color=\"#5588ff\"></stop><stop offset=\"12.5%\" stop-color=\"#6889ff\"></stop><stop offset=\"18.8%\" stop-color=\"#788aff\"></stop><stop offset=\"25.0%\" stop-color=\"#878bff\"></stop><stop offset=\"31.3%\" stop-color=\"#958cff\"></stop><stop offset=\"37.5%\" stop-color=\"#a78aef\"></stop><stop offset=\"43.8%\" stop-color=\"#b986d7\"></stop><stop offset=\"50.0%\" stop-color=\"#ca80bf\"></stop><stop offset=\"56.3%\" stop-color=\"#da78a6\"></stop><stop offset=\"62.5%\" stop-color=\"#ea6e8c\"></stop><stop offset=\"68.8%\" stop-color=\"#f56d78\"></stop><stop offset=\"75.0%\" stop-color=\"#f77f72\"></stop><stop offset=\"81.3%\" stop-color=\"#f8906b\"></stop><stop offset=\"87.5%\" stop-color=\"#f9a163\"></stop><stop offset=\"93.8%\" stop-color=\"#fab058\"></stop><stop offset=\"100.0%\" stop-color=\"#fac04a\"></stop></linearGradient><linearGradient id=\"brand-d2\" gradientUnits=\"userSpaceOnUse\" x1=\"28.021\" y1=\"95.435\" x2=\"39.978\" y2=\"4.564\"><stop offset=\"0.0%\" stop-color=\"#d06a49\"></stop><stop offset=\"6.3%\" stop-color=\"#d36f4f\"></stop><stop offset=\"12.5%\" stop-color=\"#d67456\"></stop><stop offset=\"18.8%\" stop-color=\"#d97a5c\"></stop><stop offset=\"25.0%\" stop-color=\"#dc7f62\"></stop><stop offset=\"31.3%\" stop-color=\"#df8468\"></stop><stop offset=\"37.5%\" stop-color=\"#e2896e\"></stop><stop offset=\"43.8%\" stop-color=\"#e58e74\"></stop><stop offset=\"50.0%\" stop-color=\"#e8937a\"></stop><stop offset=\"56.3%\" stop-color=\"#eb9d85\"></stop><stop offset=\"62.5%\" stop-color=\"#eea68f\"></stop><stop offset=\"68.8%\" stop-color=\"#f1b09a\"></stop><stop offset=\"75.0%\" stop-color=\"#f4baa4\"></stop><stop offset=\"81.3%\" stop-color=\"#f6c3af\"></stop><stop offset=\"87.5%\" stop-color=\"#f9cdb9\"></stop><stop offset=\"93.8%\" stop-color=\"#fbd6c4\"></stop><stop offset=\"100.0%\" stop-color=\"#fde0cf\"></stop></linearGradient><linearGradient id=\"brand-d3\" gradientUnits=\"userSpaceOnUse\" x1=\"71.978\" y1=\"95.435\" x2=\"60.021\" y2=\"4.564\"><stop offset=\"0.0%\" stop-color=\"#4a5cff\"></stop><stop offset=\"6.3%\" stop-color=\"#5062ff\"></stop><stop offset=\"12.5%\" stop-color=\"#5768ff\"></stop><stop offset=\"18.8%\" stop-color=\"#5d6dff\"></stop><stop offset=\"25.0%\" stop-color=\"#6472ff\"></stop><stop offset=\"31.3%\" stop-color=\"#6b77ff\"></stop><stop offset=\"37.5%\" stop-color=\"#717cff\"></stop><stop offset=\"43.8%\" stop-color=\"#7881ff\"></stop><stop offset=\"50.0%\" stop-color=\"#7f86ff\"></stop><stop offset=\"56.3%\" stop-color=\"#8990ff\"></stop><stop offset=\"62.5%\" stop-color=\"#9399ff\"></stop><stop offset=\"68.8%\" stop-color=\"#9da2ff\"></stop><stop offset=\"75.0%\" stop-color=\"#a8abff\"></stop><stop offset=\"81.3%\" stop-color=\"#b3b4ff\"></stop><stop offset=\"87.5%\" stop-color=\"#bebdff\"></stop><stop offset=\"93.8%\" stop-color=\"#c9c5ff\"></stop><stop offset=\"100.0%\" stop-color=\"#d4ceff\"></stop></linearGradient><clipPath id=\"brand-d4\"><polygon points=\"16,46.5 84,46.5 84,25.5 16,25.5\"></polygon></clipPath><clipPath id=\"brand-d5\"><polygon points=\"16,48.5 84,48.5 84,23.5 16,23.5\"></polygon></clipPath><clipPath id=\"brand-d6\"><polygon points=\"81.410,86.630 71.410,10.630 50.589,13.369 60.589,89.369\"></polygon></clipPath><clipPath id=\"brand-d7\"><polygon points=\"83.393,86.369 73.393,10.369 48.606,13.630 58.606,89.630\"></polygon></clipPath><clipPath id=\"brand-d8\"><polygon points=\"12,74.5 88,74.5 88,53.5 12,53.5\"></polygon></clipPath><clipPath id=\"brand-d9\"><polygon points=\"12,76.5 88,76.5 88,51.5 12,51.5\"></polygon></clipPath><clipPath id=\"brand-d10\"><polygon points=\"39.410,89.369 49.410,13.369 28.589,10.630 18.589,86.630\"></polygon></clipPath><clipPath id=\"brand-d11\"><polygon points=\"41.393,89.630 51.393,13.630 26.606,10.369 16.606,86.369\"></polygon></clipPath></defs><line x1=\"12\" y1=\"64\" x2=\"88\" y2=\"64\" stroke=\"url(#brand-d0)\" stroke-width=\"15\" stroke-linecap=\"round\"></line><line x1=\"16\" y1=\"36\" x2=\"84\" y2=\"36\" stroke=\"url(#brand-d1)\" stroke-width=\"15\" stroke-linecap=\"round\"></line><line x1=\"29\" y1=\"88\" x2=\"39\" y2=\"12\" stroke=\"url(#brand-d2)\" stroke-width=\"15\" stroke-linecap=\"round\"></line><line x1=\"71\" y1=\"88\" x2=\"61\" y2=\"12\" stroke=\"url(#brand-d3)\" stroke-width=\"15\" stroke-linecap=\"round\"></line><g clip-path=\"url(#brand-d4)\"><line x1=\"29\" y1=\"88\" x2=\"39\" y2=\"12\" stroke=\"#202127\" stroke-width=\"21\" stroke-linecap=\"round\"></line></g><g clip-path=\"url(#brand-d5)\"><line x1=\"29\" y1=\"88\" x2=\"39\" y2=\"12\" stroke=\"url(#brand-d2)\" stroke-width=\"15\" stroke-linecap=\"round\"></line></g><g clip-path=\"url(#brand-d6)\"><line x1=\"16\" y1=\"36\" x2=\"84\" y2=\"36\" stroke=\"#202127\" stroke-width=\"21\" stroke-linecap=\"round\"></line></g><g clip-path=\"url(#brand-d7)\"><line x1=\"16\" y1=\"36\" x2=\"84\" y2=\"36\" stroke=\"url(#brand-d1)\" stroke-width=\"15\" stroke-linecap=\"round\"></line></g><g clip-path=\"url(#brand-d8)\"><line x1=\"71\" y1=\"88\" x2=\"61\" y2=\"12\" stroke=\"#202127\" stroke-width=\"21\" stroke-linecap=\"round\"></line></g><g clip-path=\"url(#brand-d9)\"><line x1=\"71\" y1=\"88\" x2=\"61\" y2=\"12\" stroke=\"url(#brand-d3)\" stroke-width=\"15\" stroke-linecap=\"round\"></line></g><g clip-path=\"url(#brand-d10)\"><line x1=\"12\" y1=\"64\" x2=\"88\" y2=\"64\" stroke=\"#202127\" stroke-width=\"21\" stroke-linecap=\"round\"></line></g><g clip-path=\"url(#brand-d11)\"><line x1=\"12\" y1=\"64\" x2=\"88\" y2=\"64\" stroke=\"url(#brand-d0)\" stroke-width=\"15\" stroke-linecap=\"round\"></line></g></svg><svg class=\"channel-brand-light\" viewBox=\"0 0 100 100\"><defs><linearGradient id=\"brand-l0\" gradientUnits=\"userSpaceOnUse\" x1=\"4.5\" y1=\"64\" x2=\"95.5\" y2=\"64\"><stop offset=\"0.0%\" stop-color=\"#0b0d0f\"></stop><stop offset=\"6.3%\" stop-color=\"#101315\"></stop><stop offset=\"12.5%\" stop-color=\"#16191b\"></stop><stop offset=\"18.8%\" stop-color=\"#1c1f22\"></stop><stop offset=\"25.0%\" stop-color=\"#222529\"></stop><stop offset=\"31.3%\" stop-color=\"#282c2f\"></stop><stop offset=\"37.5%\" stop-color=\"#2e3237\"></stop><stop offset=\"43.8%\" stop-color=\"#34393e\"></stop><stop offset=\"50.0%\" stop-color=\"#3b4045\"></stop><stop offset=\"56.3%\" stop-color=\"#484d52\"></stop><stop offset=\"62.5%\" stop-color=\"#555a5f\"></stop><stop offset=\"68.8%\" stop-color=\"#62676d\"></stop><stop offset=\"75.0%\" stop-color=\"#70757b\"></stop><stop offset=\"81.3%\" stop-color=\"#7e8389\"></stop><stop offset=\"87.5%\" stop-color=\"#8c9297\"></stop><stop offset=\"93.8%\" stop-color=\"#9aa0a6\"></stop><stop offset=\"100.0%\" stop-color=\"#a9afb5\"></stop></linearGradient><linearGradient id=\"brand-l1\" gradientUnits=\"userSpaceOnUse\" x1=\"8.5\" y1=\"36\" x2=\"91.5\" y2=\"36\"><stop offset=\"0.0%\" stop-color=\"#2f7bff\"></stop><stop offset=\"6.3%\" stop-color=\"#487cff\"></stop><stop offset=\"12.5%\" stop-color=\"#5a7cff\"></stop><stop offset=\"18.8%\" stop-color=\"#6a7dff\"></stop><stop offset=\"25.0%\" stop-color=\"#797dff\"></stop><stop offset=\"31.3%\" stop-color=\"#877dff\"></stop><stop offset=\"37.5%\" stop-color=\"#997cee\"></stop><stop offset=\"43.8%\" stop-color=\"#ae79d3\"></stop><stop offset=\"50.0%\" stop-color=\"#c174b8\"></stop><stop offset=\"56.3%\" stop-color=\"#d36b9d\"></stop><stop offset=\"62.5%\" stop-color=\"#e56080\"></stop><stop offset=\"68.8%\" stop-color=\"#f15d69\"></stop><stop offset=\"75.0%\" stop-color=\"#f37162\"></stop><stop offset=\"81.3%\" stop-color=\"#f5835a\"></stop><stop offset=\"87.5%\" stop-color=\"#f79550\"></stop><stop offset=\"93.8%\" stop-color=\"#f8a542\"></stop><stop offset=\"100.0%\" stop-color=\"#f8b52c\"></stop></linearGradient><linearGradient id=\"brand-l2\" gradientUnits=\"userSpaceOnUse\" x1=\"28.021\" y1=\"95.435\" x2=\"39.978\" y2=\"4.564\"><stop offset=\"0.0%\" stop-color=\"#b9502f\"></stop><stop offset=\"6.3%\" stop-color=\"#bd5534\"></stop><stop offset=\"12.5%\" stop-color=\"#c15a39\"></stop><stop offset=\"18.8%\" stop-color=\"#c55f3e\"></stop><stop offset=\"25.0%\" stop-color=\"#c96443\"></stop><stop offset=\"31.3%\" stop-color=\"#cd6848\"></stop><stop offset=\"37.5%\" stop-color=\"#d16d4d\"></stop><stop offset=\"43.8%\" stop-color=\"#d57252\"></stop><stop offset=\"50.0%\" stop-color=\"#d97757\"></stop><stop offset=\"56.3%\" stop-color=\"#dd8060\"></stop><stop offset=\"62.5%\" stop-color=\"#e08a69\"></stop><stop offset=\"68.8%\" stop-color=\"#e49372\"></stop><stop offset=\"75.0%\" stop-color=\"#e79c7b\"></stop><stop offset=\"81.3%\" stop-color=\"#eaa584\"></stop><stop offset=\"87.5%\" stop-color=\"#edae8d\"></stop><stop offset=\"93.8%\" stop-color=\"#f0b796\"></stop><stop offset=\"100.0%\" stop-color=\"#f3c09f\"></stop></linearGradient><linearGradient id=\"brand-l3\" gradientUnits=\"userSpaceOnUse\" x1=\"71.978\" y1=\"95.435\" x2=\"60.021\" y2=\"4.564\"><stop offset=\"0.0%\" stop-color=\"#2b33e6\"></stop><stop offset=\"6.3%\" stop-color=\"#3139e9\"></stop><stop offset=\"12.5%\" stop-color=\"#363fec\"></stop><stop offset=\"18.8%\" stop-color=\"#3c44ef\"></stop><stop offset=\"25.0%\" stop-color=\"#4249f3\"></stop><stop offset=\"31.3%\" stop-color=\"#484ef6\"></stop><stop offset=\"37.5%\" stop-color=\"#4e53f9\"></stop><stop offset=\"43.8%\" stop-color=\"#5457fc\"></stop><stop offset=\"50.0%\" stop-color=\"#5a5cff\"></stop><stop offset=\"56.3%\" stop-color=\"#6569ff\"></stop><stop offset=\"62.5%\" stop-color=\"#7075ff\"></stop><stop offset=\"68.8%\" stop-color=\"#7c80ff\"></stop><stop offset=\"75.0%\" stop-color=\"#888bff\"></stop><stop offset=\"81.3%\" stop-color=\"#9595ff\"></stop><stop offset=\"87.5%\" stop-color=\"#a29fff\"></stop><stop offset=\"93.8%\" stop-color=\"#afa9ff\"></stop><stop offset=\"100.0%\" stop-color=\"#bdb3ff\"></stop></linearGradient><clipPath id=\"brand-l4\"><polygon points=\"16,46.5 84,46.5 84,25.5 16,25.5\"></polygon></clipPath><clipPath id=\"brand-l5\"><polygon points=\"16,48.5 84,48.5 84,23.5 16,23.5\"></polygon></clipPath><clipPath id=\"brand-l6\"><polygon points=\"81.410,86.630 71.410,10.630 50.589,13.369 60.589,89.369\"></polygon></clipPath><clipPath id=\"brand-l7\"><polygon points=\"83.393,86.369 73.393,10.369 48.606,13.630 58.606,89.630\"></polygon></clipPath><clipPath id=\"brand-l8\"><polygon points=\"12,74.5 88,74.5 88,53.5 12,53.5\"></polygon></clipPath><clipPath id=\"brand-l9\"><polygon points=\"12,76.5 88,76.5 88,51.5 12,51.5\"></polygon></clipPath><clipPath id=\"brand-l10\"><polygon points=\"39.410,89.369 49.410,13.369 28.589,10.630 18.589,86.630\"></polygon></clipPath><clipPath id=\"brand-l11\"><polygon points=\"41.393,89.630 51.393,13.630 26.606,10.369 16.606,86.369\"></polygon></clipPath></defs><line x1=\"12\" y1=\"64\" x2=\"88\" y2=\"64\" stroke=\"url(#brand-l0)\" stroke-width=\"15\" stroke-linecap=\"round\"></line><line x1=\"16\" y1=\"36\" x2=\"84\" y2=\"36\" stroke=\"url(#brand-l1)\" stroke-width=\"15\" stroke-linecap=\"round\"></line><line x1=\"29\" y1=\"88\" x2=\"39\" y2=\"12\" stroke=\"url(#brand-l2)\" stroke-width=\"15\" stroke-linecap=\"round\"></line><line x1=\"71\" y1=\"88\" x2=\"61\" y2=\"12\" stroke=\"url(#brand-l3)\" stroke-width=\"15\" stroke-linecap=\"round\"></line><g clip-path=\"url(#brand-l4)\"><line x1=\"29\" y1=\"88\" x2=\"39\" y2=\"12\" stroke=\"#f6f6f6\" stroke-width=\"21\" stroke-linecap=\"round\"></line></g><g clip-path=\"url(#brand-l5)\"><line x1=\"29\" y1=\"88\" x2=\"39\" y2=\"12\" stroke=\"url(#brand-l2)\" stroke-width=\"15\" stroke-linecap=\"round\"></line></g><g clip-path=\"url(#brand-l6)\"><line x1=\"16\" y1=\"36\" x2=\"84\" y2=\"36\" stroke=\"#f6f6f6\" stroke-width=\"21\" stroke-linecap=\"round\"></line></g><g clip-path=\"url(#brand-l7)\"><line x1=\"16\" y1=\"36\" x2=\"84\" y2=\"36\" stroke=\"url(#brand-l1)\" stroke-width=\"15\" stroke-linecap=\"round\"></line></g><g clip-path=\"url(#brand-l8)\"><line x1=\"71\" y1=\"88\" x2=\"61\" y2=\"12\" stroke=\"#f6f6f6\" stroke-width=\"21\" stroke-linecap=\"round\"></line></g><g clip-path=\"url(#brand-l9)\"><line x1=\"71\" y1=\"88\" x2=\"61\" y2=\"12\" stroke=\"url(#brand-l3)\" stroke-width=\"15\" stroke-linecap=\"round\"></line></g><g clip-path=\"url(#brand-l10)\"><line x1=\"12\" y1=\"64\" x2=\"88\" y2=\"64\" stroke=\"#f6f6f6\" stroke-width=\"21\" stroke-linecap=\"round\"></line></g><g clip-path=\"url(#brand-l11)\"><line x1=\"12\" y1=\"64\" x2=\"88\" y2=\"64\" stroke=\"url(#brand-l0)\" stroke-width=\"15\" stroke-linecap=\"round\"></line></g></svg></span><span class=\"channel-brand-text\"><strong>共议</strong><span>AI CoDiscuss</span></span></header>", 1),
54847
- K("div", Q0, [
54848
- q(OZ, {
54883
+ K("div", e2, [
54884
+ q(kZ, {
54849
54885
  onSelect: Ee,
54850
54886
  onManage: we,
54851
54887
  onCreate: Oe,
@@ -54855,12 +54891,12 @@ var T1 = {
54855
54891
  onArchiveFolder: Me,
54856
54892
  onArchives: Te
54857
54893
  }),
54858
- K("div", $0, [K("button", {
54894
+ K("div", t2, [K("button", {
54859
54895
  type: "button",
54860
54896
  class: "channel-section-toggle",
54861
54897
  "aria-expanded": f.value,
54862
54898
  onClick: r[0] ||= (e) => f.value = !f.value
54863
- }, [q(y, { name: f.value ? "i-lucide-chevron-down" : "i-lucide-chevron-right" }, null, 8, ["name"]), r[29] ||= J("频道工具", -1)], 8, e2)]),
54899
+ }, [q(y, { name: f.value ? "i-lucide-chevron-down" : "i-lucide-chevron-right" }, null, 8, ["name"]), r[29] ||= J("频道工具", -1)], 8, n2)]),
54864
54900
  f.value ? (U(), G(b, {
54865
54901
  key: 0,
54866
54902
  items: xe.value,
@@ -54876,7 +54912,7 @@ var T1 = {
54876
54912
  }
54877
54913
  }, null, 8, ["items"])) : Y("", !0)
54878
54914
  ]),
54879
- K("footer", t2, [K("button", {
54915
+ K("footer", r2, [K("button", {
54880
54916
  type: "button",
54881
54917
  class: "channel-self-button",
54882
54918
  "aria-label": `账号与设置:${I(n).display_name(I(_))}${Se.value ? "," + Se.value : ""}`,
@@ -54892,10 +54928,10 @@ var T1 = {
54892
54928
  "text",
54893
54929
  "alt",
54894
54930
  "class"
54895
- ]), K("span", r2, [K("strong", null, P(I(n).display_name(I(_))), 1), K("span", { class: j(["channel-connection", { "is-action": Se.value }]) }, [K("span", {
54931
+ ]), K("span", a2, [K("strong", null, P(I(n).display_name(I(_))), 1), K("span", { class: j(["channel-connection", { "is-action": Se.value }]) }, [K("span", {
54896
54932
  class: j({ connected: I(t).connected }),
54897
54933
  title: I(t).connected ? "网站已连接" : "网站未连接"
54898
- }, null, 10, i2), J(P(Se.value || (I(t).connected ? "网站已连接" : "网站未连接")), 1)], 2)])], 8, n2), q(D, { text: "设置" }, {
54934
+ }, null, 10, o2), J(P(Se.value || (I(t).connected ? "网站已连接" : "网站未连接")), 1)], 2)])], 8, i2), q(D, { text: "设置" }, {
54899
54935
  default: L(() => [q(T, {
54900
54936
  icon: "i-lucide-settings-2",
54901
54937
  color: "neutral",
@@ -54916,7 +54952,7 @@ var T1 = {
54916
54952
  "aria-label": "调整房间栏宽度",
54917
54953
  "aria-orientation": "vertical",
54918
54954
  "aria-controls": "channel-sidebar",
54919
- "aria-valuemin": e4,
54955
+ "aria-valuemin": n4,
54920
54956
  "aria-valuemax": le.value,
54921
54957
  "aria-valuenow": ue.value,
54922
54958
  "aria-valuetext": `${ue.value} 像素`,
@@ -54927,13 +54963,13 @@ var T1 = {
54927
54963
  onPointercancel: Ke,
54928
54964
  onLostpointercapture: Ke,
54929
54965
  onKeydown: qe
54930
- }, null, 40, a2)) : Y("", !0),
54931
- K("main", o2, [K("div", {
54966
+ }, null, 40, s2)) : Y("", !0),
54967
+ K("main", c2, [K("div", {
54932
54968
  ref_key: "topbar",
54933
54969
  ref: ae,
54934
54970
  class: j(["channel-topbar", { "is-overlay": o.value && I(t).tab === "discussion" }])
54935
54971
  }, [
54936
- K("header", s2, [
54972
+ K("header", l2, [
54937
54973
  O.value ? (U(), G(D, {
54938
54974
  key: 0,
54939
54975
  text: ee.value ? "展开房间栏" : "收起房间栏"
@@ -54961,8 +54997,8 @@ var T1 = {
54961
54997
  "aria-expanded": d.value,
54962
54998
  onClick: r[4] ||= (e) => d.value = !0
54963
54999
  }, null, 8, ["aria-expanded"])),
54964
- K("span", c2, [q(y, { name: "i-lucide-hash" })]),
54965
- K("div", l2, [K("div", u2, [K("h1", { title: o.value?.title }, P(o.value?.title || "共议"), 9, d2)]), o.value?.archived ? (U(), G(oe, {
55000
+ K("span", u2, [q(y, { name: "i-lucide-hash" })]),
55001
+ K("div", d2, [K("div", f2, [K("h1", { title: o.value?.title }, P(o.value?.title || "共议"), 9, p2)]), o.value?.archived ? (U(), G(oe, {
54966
55002
  key: 0,
54967
55003
  color: "neutral",
54968
55004
  variant: "subtle",
@@ -54971,12 +55007,12 @@ var T1 = {
54971
55007
  default: L(() => [...r[31] ||= [J("已存档", -1)]]),
54972
55008
  _: 1
54973
55009
  })) : Y("", !0)]),
54974
- o.value ? (U(), W("span", f2, [
55010
+ o.value ? (U(), W("span", m2, [
54975
55011
  J(P(me.find((e) => e.value === I(t).tab)?.label), 1),
54976
55012
  r[32] ||= K("span", null, "·", -1),
54977
55013
  J(P(o.value.message_count) + " 条记录", 1)
54978
55014
  ])) : Y("", !0),
54979
- K("div", p2, [
55015
+ K("div", h2, [
54980
55016
  I(t).tab === "discussion" ? (U(), W("form", {
54981
55017
  key: 0,
54982
55018
  class: "channel-search",
@@ -55034,7 +55070,7 @@ var T1 = {
55034
55070
  ])]),
55035
55071
  _: 1
55036
55072
  })) : Y("", !0),
55037
- o.value && !(ne.value && O.value) ? (U(), G(i$, { key: 2 })) : Y("", !0)
55073
+ o.value && !(ne.value && O.value) ? (U(), G(a$, { key: 2 })) : Y("", !0)
55038
55074
  ]),
55039
55075
  q(D, { text: re.value }, {
55040
55076
  default: L(() => [q(T, {
@@ -55055,12 +55091,12 @@ var T1 = {
55055
55091
  _: 1
55056
55092
  }, 8, ["text"])
55057
55093
  ]),
55058
- I(t).launch.recoveries.length ? (U(), W("section", m2, [
55094
+ I(t).launch.recoveries.length ? (U(), W("section", g2, [
55059
55095
  r[33] ||= K("h2", null, "继续未完成的请求", -1),
55060
55096
  (U(!0), W(H, null, B(I(t).launch.recoveries, (e) => (U(), W("article", { key: e.id }, [
55061
55097
  K("strong", null, P(e.title), 1),
55062
- K("p", h2, P(e.error || "启动结果尚未确认;原请求已保存在此浏览器中。"), 1),
55063
- K("div", g2, [
55098
+ K("p", _2, P(e.error || "启动结果尚未确认;原请求已保存在此浏览器中。"), 1),
55099
+ K("div", v2, [
55064
55100
  q(T, {
55065
55101
  label: e.direct ? "继续创建房间" : "继续本次启动",
55066
55102
  size: "sm",
@@ -55093,7 +55129,7 @@ var T1 = {
55093
55129
  ]))), 128)),
55094
55130
  r[34] ||= K("small", null, "移除待办不会删除房间或停止讨论。", -1)
55095
55131
  ])) : Y("", !0),
55096
- o.value ? (U(), W("div", _2, [q(he, {
55132
+ o.value ? (U(), W("div", y2, [q(he, {
55097
55133
  modelValue: pe.value,
55098
55134
  "onUpdate:modelValue": r[9] ||= (e) => pe.value = e,
55099
55135
  items: me,
@@ -55108,7 +55144,7 @@ var T1 = {
55108
55144
  key: 2,
55109
55145
  class: j(["channel-host-brief", { "is-collapsed": E.value }]),
55110
55146
  "aria-label": "主持简报"
55111
- }, [K("div", v2, [K("div", y2, [K("button", {
55147
+ }, [K("div", b2, [K("div", x2, [K("button", {
55112
55148
  type: "button",
55113
55149
  class: "channel-brief-toggle",
55114
55150
  "aria-label": E.value ? "展开主持简报" : "收起主持简报",
@@ -55118,8 +55154,8 @@ var T1 = {
55118
55154
  }, [
55119
55155
  q(y, { name: E.value ? "i-lucide-chevron-right" : "i-lucide-chevron-down" }, null, 8, ["name"]),
55120
55156
  K("strong", null, "主持简报" + P(E.value ? ":" : ""), 1),
55121
- E.value ? (U(), W("span", x2, P(ie.value), 1)) : Y("", !0)
55122
- ], 8, b2), E.value ? Y("", !0) : (U(), G(T, {
55157
+ E.value ? (U(), W("span", C2, P(ie.value), 1)) : Y("", !0)
55158
+ ], 8, S2), E.value ? Y("", !0) : (U(), G(T, {
55123
55159
  key: 0,
55124
55160
  label: "更新简报",
55125
55161
  color: "neutral",
@@ -55127,20 +55163,20 @@ var T1 = {
55127
55163
  size: "xs",
55128
55164
  class: "channel-brief-update",
55129
55165
  onClick: r[10] ||= (e) => I(i)("tab", "context")
55130
- }))]), vr(K("div", S2, [K("div", {
55166
+ }))]), vr(K("div", w2, [K("div", {
55131
55167
  class: "channel-brief-text markdown-body",
55132
55168
  innerHTML: o.value.rendered_brief
55133
- }, null, 8, C2), K("div", w2, [K("span", T2, P(I(n).progress_speaker(o.value)), 1), K("small", null, P(I(n).brief_meta(o.value)), 1)])], 512), [[Vc, !E.value]])])], 2)) : Y("", !0)
55169
+ }, null, 8, T2), K("div", E2, [K("span", D2, P(I(n).progress_speaker(o.value)), 1), K("small", null, P(I(n).brief_meta(o.value)), 1)])], 512), [[Vc, !E.value]])])], 2)) : Y("", !0)
55134
55170
  ], 2), o.value ? (U(), W("div", {
55135
55171
  key: 0,
55136
55172
  class: j(["channel-body", { "channel-body-discussion": I(t).tab === "discussion" }])
55137
- }, [K("div", E2, [
55173
+ }, [K("div", O2, [
55138
55174
  vr(q(uK, {
55139
55175
  onDetail: De,
55140
55176
  onEdit: r[11] ||= (e) => s.value = "edit"
55141
55177
  }, null, 512), [[Vc, I(t).tab === "discussion"]]),
55142
- I(t).tab === "history" ? (U(), W("div", D2, [
55143
- ge.value ? (U(), W("section", O2, [K("div", k2, [r[35] ||= K("div", null, [K("h2", null, "当前讨论"), K("p", null, "没有进行中的讨论。开启后由主持人推进成员轮流发言,到上限或结束后房间回到自由协作,记录与结论保留。")], -1), q(T, {
55178
+ I(t).tab === "history" ? (U(), W("div", k2, [
55179
+ ge.value ? (U(), W("section", A2, [K("div", j2, [r[35] ||= K("div", null, [K("h2", null, "当前讨论"), K("p", null, "没有进行中的讨论。开启后由主持人推进成员轮流发言,到上限或结束后房间回到自由协作,记录与结论保留。")], -1), q(T, {
55144
55180
  icon: "i-lucide-messages-square",
55145
55181
  label: "开启讨论",
55146
55182
  variant: "outline",
@@ -55148,13 +55184,13 @@ var T1 = {
55148
55184
  class: "channel-surface-button",
55149
55185
  disabled: !ve.value,
55150
55186
  onClick: r[13] ||= (e) => _e.value = !0
55151
- }, null, 8, ["disabled"])]), !ve.value && !o.value.archived ? (U(), W("p", A2, "开启讨论需要一位由本机唤醒的 AI 主持人,且本机服务在线。")) : Y("", !0)])) : (U(), G(jK, {
55187
+ }, null, 8, ["disabled"])]), !ve.value && !o.value.archived ? (U(), W("p", M2, "开启讨论需要一位由本机唤醒的 AI 主持人,且本机服务在线。")) : Y("", !0)])) : (U(), G(jK, {
55152
55188
  key: 0,
55153
55189
  section: "host",
55154
55190
  onOpen: r[12] ||= (e) => s.value = e,
55155
55191
  onDetail: De
55156
55192
  })),
55157
- K("section", j2, [K("div", M2, [r[36] ||= K("div", null, [K("h2", null, "当前共识"), K("p", null, "主持人整理的结论、共识与分歧,用 #消息编号 保留依据;讨论结束时保存进下方记录。")], -1), M.value ? Y("", !0) : (U(), G(T, {
55193
+ K("section", N2, [K("div", P2, [r[36] ||= K("div", null, [K("h2", null, "当前共识"), K("p", null, "主持人整理的结论、共识与分歧,用 #消息编号 保留依据;讨论结束时保存进下方记录。")], -1), M.value ? Y("", !0) : (U(), G(T, {
55158
55194
  key: 0,
55159
55195
  icon: "i-lucide-pencil",
55160
55196
  label: "编辑",
@@ -55198,7 +55234,7 @@ var T1 = {
55198
55234
  }, null, 8, ["modelValue"])]),
55199
55235
  _: 1
55200
55236
  }),
55201
- K("div", N2, [K("span", null, "依据消息截止 #" + P(I(t).snapshot_id), 1), K("div", P2, [q(T, {
55237
+ K("div", F2, [K("span", null, "依据消息截止 #" + P(I(t).snapshot_id), 1), K("div", I2, [q(T, {
55202
55238
  label: "取消",
55203
55239
  color: "neutral",
55204
55240
  variant: "ghost",
@@ -55211,7 +55247,7 @@ var T1 = {
55211
55247
  class: "channel-primary-button",
55212
55248
  loading: I(a) === "save_context"
55213
55249
  }, null, 8, ["loading"])])])
55214
- ], 32)) : o.value.host_brief?.text || o.value.state_text ? (U(), W(H, { key: 1 }, [K("div", F2, [K("h3", null, [r[37] ||= J("主持简报", -1), o.value.state_until ? (U(), W("button", {
55250
+ ], 32)) : o.value.host_brief?.text || o.value.state_text ? (U(), W(H, { key: 1 }, [K("div", L2, [K("h3", null, [r[37] ||= J("主持简报", -1), o.value.state_until ? (U(), W("button", {
55215
55251
  key: 0,
55216
55252
  type: "button",
55217
55253
  class: "subtle-link",
@@ -55219,7 +55255,7 @@ var T1 = {
55219
55255
  }, "整理至 #" + P(o.value.state_until), 1)) : Y("", !0)]), K("div", {
55220
55256
  class: "markdown-body",
55221
55257
  innerHTML: o.value.rendered_brief
55222
- }, null, 8, I2)]), ye.value ? (U(), W("details", L2, [K("summary", null, [
55258
+ }, null, 8, R2)]), ye.value ? (U(), W("details", z2, [K("summary", null, [
55223
55259
  r[38] ||= K("h3", null, "详细共识与进度", -1),
55224
55260
  r[39] ||= K("span", null, "依据、已处理内容、未决问题与下一步", -1),
55225
55261
  q(y, {
@@ -55229,21 +55265,21 @@ var T1 = {
55229
55265
  ]), K("div", {
55230
55266
  class: "markdown-body consensus-state",
55231
55267
  innerHTML: ye.value
55232
- }, null, 8, R2)])) : Y("", !0)], 64)) : (U(), W("p", z2, "还没有共识。主持人会在讨论中整理,也可以点“编辑”自己写。"))]),
55233
- q(y$, { onDetail: De }),
55234
- q(KZ, {
55268
+ }, null, 8, B2)])) : Y("", !0)], 64)) : (U(), W("p", V2, "还没有共识。主持人会在讨论中整理,也可以点“编辑”自己写。"))]),
55269
+ q(b$, { onDetail: De }),
55270
+ q(qZ, {
55235
55271
  open: _e.value,
55236
55272
  "onUpdate:open": r[19] ||= (e) => _e.value = e
55237
55273
  }, null, 8, ["open"])
55238
55274
  ])) : Y("", !0),
55239
- I(t).tab === "overview" ? (U(), W("div", B2, [q(X$), ge.value ? Y("", !0) : (U(), G(jK, {
55275
+ I(t).tab === "overview" ? (U(), W("div", H2, [q(Q$), ge.value ? Y("", !0) : (U(), G(jK, {
55240
55276
  key: 0,
55241
55277
  section: "access",
55242
55278
  onOpen: r[20] ||= (e) => s.value = e,
55243
55279
  onDetail: De
55244
55280
  }))])) : Y("", !0),
55245
- I(t).tab === "timeline" ? (U(), W("div", V2, [q(X0, { onDetail: De })])) : Y("", !0)
55246
- ])], 2)) : (U(), W("div", H2, [
55281
+ I(t).tab === "timeline" ? (U(), W("div", U2, [q(Q0, { onDetail: De })])) : Y("", !0)
55282
+ ])], 2)) : (U(), W("div", W2, [
55247
55283
  q(y, { name: "i-lucide-hash" }),
55248
55284
  r[40] ||= K("h2", null, "新建一个协作房间", -1),
55249
55285
  r[41] ||= K("p", null, "邀请 AI 一起协作,随时 @ 提问;需要时开启讨论,保留所有人的观点。", -1),
@@ -55262,8 +55298,8 @@ var T1 = {
55262
55298
  "aria-label": "调整右侧栏宽度",
55263
55299
  "aria-orientation": "vertical",
55264
55300
  "aria-controls": "channel-member-rail",
55265
- "aria-valuemin": X2,
55266
- "aria-valuemax": Z2,
55301
+ "aria-valuemin": Q2,
55302
+ "aria-valuemax": $2,
55267
55303
  "aria-valuenow": C.value,
55268
55304
  "aria-valuetext": `${C.value} 像素`,
55269
55305
  title: "拖动调整右侧栏宽度,也可使用左右方向键",
@@ -55273,8 +55309,8 @@ var T1 = {
55273
55309
  onPointercancel: He,
55274
55310
  onLostpointercapture: He,
55275
55311
  onKeydown: Ue
55276
- }, null, 40, U2)) : Y("", !0),
55277
- ne.value ? (U(), W("aside", W2, [K("section", G2, [o.value ? (U(), G($Q, { key: 0 })) : (U(), W("div", K2, [...r[42] ||= [K("header", { class: "pb-header" }, [K("strong", null, "讨论进度")], -1), K("p", { class: "channel-rail-empty" }, "暂无房间,新建讨论后在这里查看进度与参与者。", -1)]]))])])) : Y("", !0),
55312
+ }, null, 40, G2)) : Y("", !0),
55313
+ ne.value ? (U(), W("aside", K2, [K("section", q2, [o.value ? (U(), G(e$, { key: 0 })) : (U(), W("div", J2, [...r[42] ||= [K("header", { class: "pb-header" }, [K("strong", null, "讨论进度")], -1), K("p", { class: "channel-rail-empty" }, "暂无房间,新建讨论后在这里查看进度与参与者。", -1)]]))])])) : Y("", !0),
55278
55314
  q(Pe, {
55279
55315
  open: d.value,
55280
55316
  "onUpdate:open": r[23] ||= (e) => d.value = e,
@@ -55286,7 +55322,7 @@ var T1 = {
55286
55322
  body: "channel-drawer-body"
55287
55323
  }
55288
55324
  }, {
55289
- body: L(() => [q(OZ, {
55325
+ body: L(() => [q(kZ, {
55290
55326
  onSelect: Ee,
55291
55327
  onManage: we,
55292
55328
  onCreate: Oe,
@@ -55318,7 +55354,7 @@ var T1 = {
55318
55354
  }
55319
55355
  }, {
55320
55356
  body: L(() => [o.value ? (U(), W(H, { key: 0 }, [
55321
- K("div", q2, [q(y, { name: "i-lucide-hash" }), K("h2", null, P(o.value.title), 1)]),
55357
+ K("div", Y2, [q(y, { name: "i-lucide-hash" }), K("h2", null, P(o.value.title), 1)]),
55322
55358
  (U(), W(H, null, B([
55323
55359
  {
55324
55360
  key: "goal",
@@ -55345,7 +55381,7 @@ var T1 = {
55345
55381
  class: "info-section"
55346
55382
  }, [K("h3", null, P(e.label), 1), K("p", null, P(o.value[e.key] || "尚未填写"), 1)])), 64)),
55347
55383
  q(Fe),
55348
- K("section", J2, [r[43] ||= K("h3", null, "参与身份", -1), (U(!0), W(H, null, B(Ce.value, (e) => (U(), W("div", {
55384
+ K("section", X2, [r[43] ||= K("h3", null, "参与身份", -1), (U(!0), W(H, null, B(Ce.value, (e) => (U(), W("div", {
55349
55385
  key: e.name,
55350
55386
  class: "expert-row"
55351
55387
  }, [
@@ -55378,7 +55414,7 @@ var T1 = {
55378
55414
  ], 64)) : Y("", !0)]),
55379
55415
  _: 1
55380
55416
  }, 8, ["open"]),
55381
- q(YX, {
55417
+ q(XX, {
55382
55418
  modelValue: s.value,
55383
55419
  "onUpdate:modelValue": r[26] ||= (e) => s.value = e,
55384
55420
  "reading-width": x.value,
@@ -55402,7 +55438,7 @@ var T1 = {
55402
55438
  ], 6);
55403
55439
  };
55404
55440
  }
55405
- }, c4 = {
55441
+ }, u4 = {
55406
55442
  __name: "App",
55407
55443
  setup(e) {
55408
55444
  return br("discussion", OV()), (e, t) => {
@@ -55413,7 +55449,7 @@ var T1 = {
55413
55449
  toaster: null
55414
55450
  }, {
55415
55451
  default: L(() => [q(I(Qz), { "reduced-motion": "user" }, {
55416
- default: L(() => [q(s4)]),
55452
+ default: L(() => [q(l4)]),
55417
55453
  _: 1
55418
55454
  })]),
55419
55455
  _: 1
@@ -55423,8 +55459,8 @@ var T1 = {
55423
55459
  };
55424
55460
  //#endregion
55425
55461
  //#region frontend/main.js
55426
- function l4() {
55427
- bu(c4).use(ph).mount("#modern-root");
55462
+ function d4() {
55463
+ bu(u4).use(ph).mount("#modern-root");
55428
55464
  }
55429
- document.readyState === "loading" ? document.addEventListener("DOMContentLoaded", l4) : l4();
55465
+ document.readyState === "loading" ? document.addEventListener("DOMContentLoaded", d4) : d4();
55430
55466
  //#endregion