ai_co_discuss 0.3.3 → 0.3.4

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
@@ -48526,11 +48526,14 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48526
48526
  }, [["__scopeId", "data-v-b682fa87"]]), QJ = { class: "scheduler-settings" }, $J = { class: "scheduler-title" }, eY = { class: "scheduler-description" }, tY = { class: "scheduler-cards" }, nY = {
48527
48527
  key: 0,
48528
48528
  class: "scheduler-slot"
48529
- }, 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 = {
48529
+ }, rY = {
48530
+ key: 1,
48531
+ class: "scheduler-slot is-filled"
48532
+ }, iY = { class: "scheduler-identity" }, aY = { class: "scheduler-facts" }, oY = ["title"], sY = { class: "scheduler-flip" }, cY = { class: "scheduler-tools" }, lY = ["aria-label"], uY = { class: "scheduler-back" }, dY = { class: "scheduler-heading" }, fY = { class: "scheduler-field" }, pY = { class: "scheduler-field" }, mY = {
48530
48533
  key: 0,
48531
48534
  role: "alert",
48532
48535
  class: "scheduler-error"
48533
- }, mY = ["role"], hY = { class: "scheduler-flip-actions" }, gY = "••••••••••••", _Y = /*#__PURE__*/ YH({
48536
+ }, hY = ["role"], gY = { class: "scheduler-flip-actions" }, _Y = "••••••••••••", vY = /*#__PURE__*/ YH({
48534
48537
  __name: "SchedulerSettings",
48535
48538
  props: {
48536
48539
  free: {
@@ -48666,11 +48669,8 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48666
48669
  items: u.value,
48667
48670
  onAdd: y
48668
48671
  }, null, 8, ["items"]),
48669
- K("div", tY, [c.value ? (U(), W("div", {
48670
- key: 1,
48671
- class: j(["scheduler-card", { "is-editing": h.value }])
48672
- }, [h.value ? (U(), W(H, { key: 1 }, [K("div", lY, [
48673
- K("div", uY, [K("strong", null, [J(P(x.value), 1), a[13] ||= K("span", null, "设置", -1)]), q(O, {
48672
+ K("div", tY, [c.value ? (U(), W("div", rY, [K("div", { class: j(["scheduler-card", { "is-editing": h.value }]) }, [h.value ? (U(), W(H, { key: 1 }, [K("div", uY, [
48673
+ K("div", dY, [K("strong", null, [J(P(x.value), 1), a[13] ||= K("span", null, "设置", -1)]), q(O, {
48674
48674
  icon: "i-lucide-zap",
48675
48675
  "aria-label": "检查智能调度配置",
48676
48676
  title: "检查配置:向决策模型发送一道极短的是非题,核对供应商、模型与密钥",
@@ -48685,7 +48685,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48685
48685
  "loading",
48686
48686
  "disabled"
48687
48687
  ])]),
48688
- K("div", dY, [a[14] ||= K("span", null, "模型", -1), q(te, {
48688
+ K("div", fY, [a[14] ||= K("span", null, "模型", -1), q(te, {
48689
48689
  mode: "autocomplete",
48690
48690
  "ignore-filter": "",
48691
48691
  "model-value": i.value.model || "",
@@ -48697,7 +48697,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48697
48697
  class: "w-full",
48698
48698
  "onUpdate:modelValue": a[0] ||= (e) => I(r).write_scheduler("model", e)
48699
48699
  }, null, 8, ["model-value", "items"])]),
48700
- K("div", fY, [a[15] ||= K("span", null, "密钥", -1), q(ne, {
48700
+ K("div", pY, [a[15] ||= K("span", null, "密钥", -1), q(ne, {
48701
48701
  modelValue: d.value,
48702
48702
  "onUpdate:modelValue": a[2] ||= (e) => d.value = e,
48703
48703
  type: "text",
@@ -48705,7 +48705,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48705
48705
  spellcheck: "false",
48706
48706
  "data-1p-ignore": "",
48707
48707
  "data-lpignore": "true",
48708
- placeholder: i.value.api_key_ref ? gY : "填写所选供应商的 API Key",
48708
+ placeholder: i.value.api_key_ref ? _Y : "填写所选供应商的 API Key",
48709
48709
  title: i.value.api_key_ref && !d.value ? "已保存;本机不回传密钥,输入新 Key 可更换" : void 0,
48710
48710
  "aria-label": "智能调度 API Key",
48711
48711
  size: "xs",
@@ -48740,14 +48740,14 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48740
48740
  "loading",
48741
48741
  "ui"
48742
48742
  ])]),
48743
- m.value ? (U(), W("p", pY, P(m.value), 1)) : Y("", !0),
48743
+ m.value ? (U(), W("p", mY, P(m.value), 1)) : Y("", !0),
48744
48744
  C.value.message ? (U(), W("p", {
48745
48745
  key: 1,
48746
48746
  role: C.value.state === "error" ? "alert" : "status",
48747
48747
  class: j(C.value.state === "error" ? "scheduler-error" : "scheduler-ok")
48748
- }, P(C.value.message), 11, mY)) : Y("", !0),
48748
+ }, P(C.value.message), 11, hY)) : Y("", !0),
48749
48749
  a[16] ||= K("p", { class: "scheduler-note" }, "决策模型只做选择、不生成文本,只按输入计费。判断时会把房间标题和最近 10~20 条消息发给所选供应商;密钥只存本机。", -1)
48750
- ]), K("span", hY, [K("button", {
48750
+ ]), K("span", gY, [K("button", {
48751
48751
  type: "button",
48752
48752
  class: "scheduler-flip is-cancel",
48753
48753
  "aria-label": "放弃决策模型的修改",
@@ -48764,7 +48764,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48764
48764
  title: "点击设置",
48765
48765
  onClick: _
48766
48766
  }, [
48767
- K("span", rY, [q(D, {
48767
+ K("span", iY, [q(D, {
48768
48768
  src: s[i.value.provider]?.icon,
48769
48769
  text: x.value.slice(0, 2),
48770
48770
  alt: x.value,
@@ -48776,14 +48776,14 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48776
48776
  "alt",
48777
48777
  "class"
48778
48778
  ]), K("strong", null, P(x.value), 1)]),
48779
- 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)])]),
48780
- K("span", oY, [q(ee, { name: "i-lucide-settings-2" }), a[12] ||= J("设置", -1)])
48781
- ]), K("span", sY, [K("button", {
48779
+ K("dl", aY, [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, oY)])]),
48780
+ K("span", sY, [q(ee, { name: "i-lucide-settings-2" }), a[12] ||= J("设置", -1)])
48781
+ ]), K("span", cY, [K("button", {
48782
48782
  type: "button",
48783
48783
  "aria-label": `移出决策模型 ${x.value}`,
48784
48784
  title: "移出",
48785
48785
  onClick: b
48786
- }, [q(ee, { name: "i-lucide-x" })], 8, cY)])], 64))], 2)) : (U(), W("div", nY, [
48786
+ }, [q(ee, { name: "i-lucide-x" })], 8, lY)])], 64))], 2)])) : (U(), W("div", nY, [
48787
48787
  q(ee, { name: "i-lucide-zap" }),
48788
48788
  a[7] ||= K("strong", null, "决策模型槽位", -1),
48789
48789
  a[8] ||= K("span", null, "只能放一个;从上方添加,再点其他会替换", -1)
@@ -48791,29 +48791,29 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48791
48791
  ]);
48792
48792
  };
48793
48793
  }
48794
- }, [["__scopeId", "data-v-3324f536"]]), vY = { class: "create-discussion" }, yY = {
48794
+ }, [["__scopeId", "data-v-87daa49c"]]), yY = { class: "create-discussion" }, bY = {
48795
48795
  key: 0,
48796
48796
  class: "create-connect",
48797
48797
  role: "status"
48798
- }, bY = { class: "create-connect-command" }, xY = {
48798
+ }, xY = { class: "create-connect-command" }, SY = {
48799
48799
  key: 1,
48800
48800
  class: "channel-create-location"
48801
- }, SY = { class: "create-section" }, CY = { class: "create-section" }, wY = {
48801
+ }, CY = { class: "create-section" }, wY = { class: "create-section" }, TY = {
48802
48802
  key: 0,
48803
48803
  class: "create-experts",
48804
48804
  role: "group",
48805
48805
  "aria-label": "参与的 AI"
48806
- }, TY = {
48806
+ }, EY = {
48807
48807
  key: 1,
48808
48808
  class: "create-experts-empty"
48809
- }, EY = {
48809
+ }, DY = {
48810
48810
  key: 2,
48811
48811
  class: "fine-print create-hint create-host-hint"
48812
- }, DY = { class: "create-section" }, OY = { class: "create-advanced" }, kY = { class: "create-footer" }, AY = {
48812
+ }, OY = { class: "create-section" }, kY = { class: "create-advanced" }, AY = { class: "create-footer" }, jY = {
48813
48813
  key: 0,
48814
48814
  role: "alert",
48815
48815
  class: "create-error"
48816
- }, jY = { class: "create-footer-row" }, MY = ["title"], NY = "new-expert-modes", PY = 3e3, FY = "preset:", IY = /*#__PURE__*/ YH({
48816
+ }, MY = { class: "create-footer-row" }, NY = ["title"], PY = "new-expert-modes", FY = 3e3, IY = "preset:", LY = /*#__PURE__*/ YH({
48817
48817
  __name: "CreateDiscussion",
48818
48818
  props: { targetFolder: {
48819
48819
  type: Object,
@@ -48821,7 +48821,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48821
48821
  } },
48822
48822
  emits: ["submit", "cancel"],
48823
48823
  setup(e, { emit: t }) {
48824
- 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]));
48824
+ 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[PY] || {}), p = /* @__PURE__ */ F([]), m = Z(() => Object.keys(f.value).filter((e) => f.value[e]));
48825
48825
  R(m, (e) => {
48826
48826
  p.value = [...p.value.filter((t) => e.includes(t)), ...e.filter((e) => !p.value.includes(e))];
48827
48827
  }, { immediate: !0 });
@@ -48845,14 +48845,14 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48845
48845
  Qi(() => {
48846
48846
  se(), ae = window.setInterval(() => {
48847
48847
  ie.value && !document.hidden && o("check_launch_connection");
48848
- }, PY);
48848
+ }, FY);
48849
48849
  }), ta(() => window.clearInterval(ae));
48850
48850
  function ce(e) {
48851
48851
  i.write_create_discussion(e), Qn(se);
48852
48852
  }
48853
48853
  let le = (e) => i.launch_clients[e]?.some((e) => e.value !== "api"), ue = (e) => d.value && e === v.value ? [] : ["cli", "manual"];
48854
48854
  function de(e, t) {
48855
- i.write_expert(NY, e, t), se();
48855
+ i.write_expert(PY, e, t), se();
48856
48856
  }
48857
48857
  function fe(e) {
48858
48858
  if (C.value) return E(e) ? {
@@ -48882,7 +48882,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48882
48882
  title: pe(e),
48883
48883
  aria_label: `添加 ${e} 实例`
48884
48884
  })), ...r.value && i.expert_presets().map((e, t) => ({
48885
- value: FY + e.name,
48885
+ value: IY + e.name,
48886
48886
  name: e.label || e.name,
48887
48887
  ...i.identities[i.platform_of(e.name)],
48888
48888
  separated: t === 0,
@@ -48890,11 +48890,11 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48890
48890
  aria_label: `添加预设 ${e.label || e.name}`
48891
48891
  }))]);
48892
48892
  function me(e) {
48893
- if (e.startsWith(FY)) {
48893
+ if (e.startsWith(IY)) {
48894
48894
  let t = i.expert_presets().find((t) => t.name === e.slice(7));
48895
- return t && i.add_preset(NY, t, "cli"), se();
48895
+ return t && i.add_preset(PY, t, "cli"), se();
48896
48896
  }
48897
- i.launch_clients[e] && (i.default_launch_entry(e), g(e) ? i.add_instance(NY, e, "cli") : de(e, "cli"), se());
48897
+ i.launch_clients[e] && (i.default_launch_entry(e), g(e) ? i.add_instance(PY, e, "cli") : de(e, "cli"), se());
48898
48898
  }
48899
48899
  function he(e) {
48900
48900
  de(e, ""), Qn(() => _.value?.focus_first());
@@ -48916,20 +48916,20 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48916
48916
  });
48917
48917
  return (t, s) => {
48918
48918
  let c = sA, p = MA, m = YV, g = zV, x = FK, T = HV;
48919
- return U(), W("div", vY, [K("form", {
48919
+ return U(), W("div", yY, [K("form", {
48920
48920
  id: "create-discussion-form",
48921
48921
  class: "create-scroll dialog-form",
48922
48922
  onSubmit: uu(ge, ["prevent"])
48923
48923
  }, [
48924
- 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, {
48924
+ ie.value ? (U(), W("div", bY, [K("p", null, [q(c, { name: "i-lucide-plug-zap" }), s[10] ||= J("本机服务未连接,连接后才能唤醒本机 AI。在运行 AI 的电脑上执行下面的命令并完成网页授权,连上后自动检测。", -1)]), K("div", xY, [K("code", null, P(I(r).launch.connect_command), 1), q(p, {
48925
48925
  icon: "i-lucide-copy",
48926
48926
  "aria-label": "复制本机连接命令",
48927
48927
  variant: "ghost",
48928
48928
  color: "neutral",
48929
48929
  onClick: s[0] ||= (e) => I(o)("copy", I(r).launch.connect_command)
48930
48930
  })])])) : Y("", !0),
48931
- e.targetFolder?.id ? (U(), W("p", xY, [q(c, { name: "i-lucide-folder" }), J(P(e.targetFolder.name), 1)])) : Y("", !0),
48932
- K("section", SY, [
48931
+ e.targetFolder?.id ? (U(), W("p", SY, [q(c, { name: "i-lucide-folder" }), J(P(e.targetFolder.name), 1)])) : Y("", !0),
48932
+ K("section", CY, [
48933
48933
  s[11] ||= K("h3", null, [K("span", null, "1"), J("这次做什么")], -1),
48934
48934
  q(g, {
48935
48935
  label: "话题名称",
@@ -48955,7 +48955,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48955
48955
  _: 1
48956
48956
  }, 8, ["description"])
48957
48957
  ]),
48958
- K("section", CY, [
48958
+ K("section", wY, [
48959
48959
  s[12] ||= K("h3", null, [K("span", null, "2"), J("谁来参与")], -1),
48960
48960
  q(ZJ, {
48961
48961
  ref_key: "library",
@@ -48964,7 +48964,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48964
48964
  items: A.value,
48965
48965
  onAdd: me
48966
48966
  }, null, 8, ["items"]),
48967
- h.value.length ? (U(), W("div", wY, [(U(!0), W(H, null, B(h.value, (e) => (U(), G(MJ, {
48967
+ h.value.length ? (U(), W("div", TY, [(U(!0), W(H, null, B(h.value, (e) => (U(), G(MJ, {
48968
48968
  key: e,
48969
48969
  name: e,
48970
48970
  mode: f.value[e],
@@ -48986,14 +48986,14 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48986
48986
  "onHost",
48987
48987
  "onRemove",
48988
48988
  "onMode"
48989
- ]))), 128))])) : (U(), W("p", TY, "请至少添加一位成员。同一平台可添加多位,各自独立会话。")),
48990
- h.value.length ? (U(), W("div", EY, [q(c, { name: "i-lucide-crown" }), K("span", null, P(y.value.length ? "点卡片上的皇冠指定主持人:没 @ 任何人的消息由它分配;其他成员只在被你或主持人点名时发言。" : "需要一位本地 AI 做主持人,没 @ 的消息才有人接。"), 1)])) : Y("", !0),
48991
- q(_Y, {
48989
+ ]))), 128))])) : (U(), W("p", EY, "请至少添加一位成员。同一平台可添加多位,各自独立会话。")),
48990
+ h.value.length ? (U(), W("div", DY, [q(c, { name: "i-lucide-crown" }), K("span", null, P(y.value.length ? "点卡片上的皇冠指定主持人:没 @ 任何人的消息由它分配;其他成员只在被你或主持人点名时发言。" : "需要一位本地 AI 做主持人,没 @ 的消息才有人接。"), 1)])) : Y("", !0),
48991
+ q(vY, {
48992
48992
  free: !0,
48993
48993
  blocker: ne.value
48994
48994
  }, null, 8, ["blocker"])
48995
48995
  ]),
48996
- K("section", DY, [
48996
+ K("section", OY, [
48997
48997
  s[13] ||= K("h3", null, [K("span", null, "3"), J("讨论(可选)")], -1),
48998
48998
  q(x, {
48999
48999
  "model-value": d.value,
@@ -49039,7 +49039,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49039
49039
  "execution_minutes"
49040
49040
  ])], 64)) : Y("", !0)
49041
49041
  ]),
49042
- K("details", OY, [K("summary", null, [
49042
+ K("details", kY, [K("summary", null, [
49043
49043
  q(c, {
49044
49044
  name: "i-lucide-chevron-right",
49045
49045
  class: "create-advanced-icon"
@@ -49053,7 +49053,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49053
49053
  default: L(() => [...s[15] ||= [J("建房后可在房间页修改。", -1)]]),
49054
49054
  _: 1
49055
49055
  }, 8, ["model-value"])])
49056
- ], 32), K("footer", kY, [ee.value && I(r).launch.error ? (U(), W("p", AY, P(I(r).launch.error), 1)) : Y("", !0), K("div", jY, [
49056
+ ], 32), K("footer", AY, [ee.value && I(r).launch.error ? (U(), W("p", jY, P(I(r).launch.error), 1)) : Y("", !0), K("div", MY, [
49057
49057
  K("span", {
49058
49058
  class: j(["create-summary", { "is-blocked": oe.value }]),
49059
49059
  title: oe.value || _e.value,
@@ -49061,7 +49061,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49061
49061
  }, [oe.value ? (U(), G(c, {
49062
49062
  key: 0,
49063
49063
  name: "i-lucide-circle-alert"
49064
- })) : Y("", !0), J(P(oe.value ? `还差:${oe.value}` : h.value.length || d.value ? _e.value : ""), 1)], 10, MY),
49064
+ })) : Y("", !0), J(P(oe.value ? `还差:${oe.value}` : h.value.length || d.value ? _e.value : ""), 1)], 10, NY),
49065
49065
  q(p, {
49066
49066
  label: "取消",
49067
49067
  color: "neutral",
@@ -49085,46 +49085,46 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49085
49085
  ])])]);
49086
49086
  };
49087
49087
  }
49088
- }, [["__scopeId", "data-v-4da10016"]]), LY = {
49088
+ }, [["__scopeId", "data-v-4da10016"]]), RY = {
49089
49089
  class: "account-settings",
49090
49090
  "aria-labelledby": "account-heading"
49091
- }, RY = {
49091
+ }, zY = {
49092
49092
  key: 0,
49093
49093
  class: "fine-print",
49094
49094
  role: "status"
49095
- }, zY = ["aria-label"], BY = { class: "fine-print account-intro" }, VY = {
49095
+ }, BY = ["aria-label"], VY = { class: "fine-print account-intro" }, HY = {
49096
49096
  key: 0,
49097
49097
  class: "account-message is-error",
49098
49098
  role: "status"
49099
- }, HY = {
49100
- key: 1,
49101
- class: "fine-print"
49102
49099
  }, UY = {
49103
49100
  key: 1,
49104
49101
  class: "fine-print"
49105
49102
  }, WY = {
49103
+ key: 1,
49104
+ class: "fine-print"
49105
+ }, GY = {
49106
49106
  key: 2,
49107
49107
  class: "account-message is-error",
49108
49108
  role: "alert"
49109
- }, GY = {
49109
+ }, KY = {
49110
49110
  key: 3,
49111
49111
  class: "account-message",
49112
49112
  role: "status"
49113
- }, KY = { class: "account-actions" }, qY = {
49113
+ }, qY = { class: "account-actions" }, JY = {
49114
49114
  key: 2,
49115
49115
  class: "account-profile"
49116
- }, JY = { class: "account-identity" }, YY = { class: "account-avatar-actions" }, XY = { class: "account-name-row" }, ZY = {
49116
+ }, YY = { class: "account-identity" }, XY = { class: "account-avatar-actions" }, ZY = { class: "account-name-row" }, QY = {
49117
49117
  key: 0,
49118
49118
  class: "account-message is-error",
49119
49119
  role: "alert"
49120
- }, QY = {
49120
+ }, $Y = {
49121
49121
  key: 1,
49122
49122
  class: "account-message",
49123
49123
  role: "status"
49124
- }, $Y = {
49124
+ }, eX = {
49125
49125
  key: 2,
49126
49126
  class: "account-signout account-actions"
49127
- }, eX = {
49127
+ }, tX = {
49128
49128
  __name: "AccountSettings",
49129
49129
  setup(e) {
49130
49130
  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({
@@ -49192,13 +49192,13 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49192
49192
  }
49193
49193
  return (e, t) => {
49194
49194
  let p = YV, y = zV, b = MA, x = pA;
49195
- 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", {
49195
+ return U(), W("section", RY, [t[9] ||= K("h3", { id: "account-heading" }, "账号", -1), a.value === "loading" ? (U(), W("p", zY, "正在读取账号状态…")) : a.value === "register" || a.value === "login" ? (U(), W("form", {
49196
49196
  key: 1,
49197
49197
  class: "dialog-form account-form",
49198
49198
  "aria-label": a.value === "register" ? "设置管理员账号" : "登录管理员账号",
49199
49199
  onSubmit: uu(m, ["prevent"])
49200
49200
  }, [
49201
- K("p", BY, [a.value === "register" ? (U(), W(H, { key: 0 }, [J("设置站点管理员账号:名称和头像对所有访客可见,登录后可在没有房间凭据的浏览器中存档、恢复、删除房间。")], 64)) : (U(), W(H, { key: 1 }, [J("登录后可管理房间;未登录时仍可阅读并使用本浏览器创建的房间。")], 64))]),
49201
+ K("p", VY, [a.value === "register" ? (U(), W(H, { key: 0 }, [J("设置站点管理员账号:名称和头像对所有访客可见,登录后可在没有房间凭据的浏览器中存档、恢复、删除房间。")], 64)) : (U(), W(H, { key: 1 }, [J("登录后可管理房间;未登录时仍可阅读并使用本浏览器创建的房间。")], 64))]),
49202
49202
  q(y, {
49203
49203
  label: "用户名",
49204
49204
  description: a.value === "register" ? "1–30 个字符,也是公开显示的名称" : void 0,
@@ -49265,24 +49265,24 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49265
49265
  }, null, 8, ["modelValue", "disabled"])]),
49266
49266
  _: 1
49267
49267
  }),
49268
- f.value ? (U(), W("p", VY, [...t[6] ||= [
49268
+ f.value ? (U(), W("p", HY, [...t[6] ||= [
49269
49269
  J("尚无可用的注册令牌。请在部署网站的电脑上运行 ", -1),
49270
49270
  K("code", null, "codiscuss token", -1),
49271
49271
  J(",再刷新本页;本地版也可设置环境变量 DISCUSS_ADMIN_SETUP_KEY 后重启。", -1)
49272
- ]])) : (U(), W("p", HY, [...t[7] ||= [
49272
+ ]])) : (U(), W("p", UY, [...t[7] ||= [
49273
49273
  J("首个注册者需要令牌,防止他人抢注:在部署网站的电脑上运行 ", -1),
49274
49274
  K("code", null, "codiscuss token", -1),
49275
49275
  J(" 获取(一次性);本地版也可用服务端启动日志里的安装令牌。在已连接本机服务的电脑上注册时,账号与密码会保存到 ~/.codiscuss。忘记密码:本地版运行 ", -1),
49276
49276
  K("code", null, "python server.py --reset-admin", -1),
49277
49277
  J(" 后重新注册;Cloudflare 版需清空管理员表(见部署文档)。", -1)
49278
49278
  ]]))
49279
- ], 64)) : (U(), W("p", UY, [...t[8] ||= [
49279
+ ], 64)) : (U(), W("p", WY, [...t[8] ||= [
49280
49280
  J("忘记密码:本地版运行 ", -1),
49281
49281
  K("code", null, "python server.py --reset-admin", -1),
49282
49282
  J(" 后重新注册;Cloudflare 版需清空管理员表(见部署文档)。", -1)
49283
49283
  ]])),
49284
- 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),
49285
- K("div", KY, [q(b, {
49284
+ s.auth.error ? (U(), W("p", GY, P(s.auth.error), 1)) : s.auth.notice ? (U(), W("p", KY, P(s.auth.notice), 1)) : Y("", !0),
49285
+ K("div", qY, [q(b, {
49286
49286
  type: "submit",
49287
49287
  class: "channel-primary-button",
49288
49288
  label: a.value === "register" ? "创建并登录" : "登录",
@@ -49293,13 +49293,13 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49293
49293
  "loading",
49294
49294
  "disabled"
49295
49295
  ])])
49296
- ], 40, zY)) : (U(), W("div", qY, [
49297
- K("div", JY, [q(x, {
49296
+ ], 40, BY)) : (U(), W("div", JY, [
49297
+ K("div", YY, [q(x, {
49298
49298
  src: I(n).identities.用户.icon,
49299
49299
  alt: `${I(n).display_name("用户")} 的头像`,
49300
49300
  size: "lg",
49301
49301
  class: "channel-avatar user account-avatar"
49302
- }, null, 8, ["src", "alt"]), K("div", YY, [
49302
+ }, null, 8, ["src", "alt"]), K("div", XY, [
49303
49303
  K("input", {
49304
49304
  ref_key: "avatar_input",
49305
49305
  ref: u,
@@ -49337,7 +49337,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49337
49337
  label: "显示名称",
49338
49338
  description: "即用户名,对所有访客可见"
49339
49339
  }, {
49340
- default: L(() => [K("div", XY, [q(p, {
49340
+ default: L(() => [K("div", ZY, [q(p, {
49341
49341
  modelValue: l.value,
49342
49342
  "onUpdate:modelValue": t[5] ||= (e) => l.value = e,
49343
49343
  autocomplete: "username",
@@ -49355,8 +49355,8 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49355
49355
  }, null, 8, ["loading", "disabled"])])]),
49356
49356
  _: 1
49357
49357
  })], 32),
49358
- 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),
49359
- r.value.local ? Y("", !0) : (U(), W("div", $Y, [q(b, {
49358
+ s.profile.error ? (U(), W("p", QY, P(s.profile.error), 1)) : s.profile.notice ? (U(), W("p", $Y, P(s.profile.notice), 1)) : Y("", !0),
49359
+ r.value.local ? Y("", !0) : (U(), W("div", eX, [q(b, {
49360
49360
  label: "退出登录",
49361
49361
  icon: "i-lucide-log-out",
49362
49362
  color: "neutral",
@@ -49369,68 +49369,68 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49369
49369
  ]))]);
49370
49370
  };
49371
49371
  }
49372
- }, tX = {
49372
+ }, nX = {
49373
49373
  key: 0,
49374
49374
  class: "channel-archive-manager"
49375
- }, nX = { class: "channel-archive-toolbar" }, rX = {
49375
+ }, rX = { class: "channel-archive-toolbar" }, iX = {
49376
49376
  key: 0,
49377
49377
  class: "channel-archive-confirm channel-archive-bulk",
49378
49378
  role: "alert"
49379
- }, iX = {
49379
+ }, aX = {
49380
49380
  key: 1,
49381
49381
  role: "alert",
49382
49382
  class: "channel-directory-error"
49383
- }, aX = { class: "channel-archive-results" }, oX = {
49383
+ }, oX = { class: "channel-archive-results" }, sX = {
49384
49384
  key: 0,
49385
49385
  class: "channel-archive-list",
49386
49386
  "aria-label": "已存档房间列表"
49387
- }, sX = { class: "channel-archive-row" }, cX = { class: "channel-archive-info" }, lX = [
49387
+ }, cX = { class: "channel-archive-row" }, lX = { class: "channel-archive-info" }, uX = [
49388
49388
  "title",
49389
49389
  "disabled",
49390
49390
  "onClick"
49391
- ], uX = { key: 0 }, dX = ["datetime"], fX = { class: "channel-archive-actions" }, pX = {
49391
+ ], dX = { key: 0 }, fX = ["datetime"], pX = { class: "channel-archive-actions" }, mX = {
49392
49392
  key: 0,
49393
49393
  class: "channel-archive-confirm channel-archive-bulk",
49394
49394
  role: "alert"
49395
- }, mX = {
49395
+ }, hX = {
49396
49396
  key: 1,
49397
49397
  class: "channel-archive-empty"
49398
- }, hX = { class: "fine-print" }, gX = {
49398
+ }, gX = { class: "fine-print" }, _X = {
49399
49399
  key: 0,
49400
49400
  class: "fine-print"
49401
- }, _X = { class: "dialog-actions" }, vX = { class: "fine-print" }, yX = { class: "dialog-actions" }, bX = { class: "dialog-actions" }, xX = { class: "channel-management-target" }, SX = {
49401
+ }, vX = { class: "dialog-actions" }, yX = { class: "fine-print" }, bX = { class: "dialog-actions" }, xX = { class: "dialog-actions" }, SX = { class: "channel-management-target" }, CX = {
49402
49402
  key: 0,
49403
49403
  class: "fine-print"
49404
- }, CX = {
49404
+ }, wX = {
49405
49405
  key: 1,
49406
49406
  class: "fine-print"
49407
- }, wX = {
49407
+ }, TX = {
49408
49408
  key: 2,
49409
49409
  class: "fine-print"
49410
- }, 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 = {
49410
+ }, EX = { class: "dialog-actions" }, DX = { key: 5 }, OX = { class: "theme-choices" }, kX = ["aria-pressed", "onClick"], AX = { class: "theme-check" }, jX = { class: "channel-reading-setting" }, MX = {
49411
49411
  class: "channel-reading-options",
49412
49412
  role: "group",
49413
49413
  "aria-labelledby": "channel-reading-label"
49414
- }, MX = { class: "channel-reading-setting" }, NX = {
49414
+ }, NX = { class: "channel-reading-setting" }, PX = {
49415
49415
  class: "channel-reading-options channel-effect-options",
49416
49416
  role: "group",
49417
49417
  "aria-labelledby": "channel-effects-label"
49418
- }, PX = { class: "advanced-content" }, FX = {
49418
+ }, FX = { class: "advanced-content" }, IX = {
49419
49419
  key: 0,
49420
49420
  class: "fine-print"
49421
- }, IX = { class: "advanced-content" }, LX = { class: "expert-fields" }, RX = { class: "dialog-actions" }, zX = { class: "dialog-actions" }, BX = {
49421
+ }, LX = { class: "advanced-content" }, RX = { class: "expert-fields" }, zX = { class: "dialog-actions" }, BX = { class: "dialog-actions" }, VX = {
49422
49422
  key: 9,
49423
49423
  class: "original-message"
49424
- }, VX = {
49424
+ }, HX = {
49425
49425
  key: 0,
49426
49426
  role: "alert"
49427
- }, HX = { class: "original-meta" }, UX = { class: "fine-print" }, WX = {
49427
+ }, UX = { class: "original-meta" }, WX = { class: "fine-print" }, GX = {
49428
49428
  key: 0,
49429
49429
  class: "channel-answer-summary"
49430
- }, GX = { class: "message-prose" }, KX = { class: "message-prose" }, qX = ["innerHTML"], JX = {
49430
+ }, KX = { class: "message-prose" }, qX = { class: "message-prose" }, JX = ["innerHTML"], YX = {
49431
49431
  key: 2,
49432
49432
  class: "fine-print"
49433
- }, YX = "topic-expert-modes", XX = {
49433
+ }, XX = "topic-expert-modes", ZX = {
49434
49434
  __name: "WorkspaceDialogs",
49435
49435
  props: /*@__PURE__*/ Fa({
49436
49436
  detailId: {
@@ -49722,8 +49722,8 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49722
49722
  } : void 0,
49723
49723
  "onAfter:leave": xe
49724
49724
  }, {
49725
- body: L(() => [a.value === "archives" ? (U(), W("section", tX, [
49726
- K("div", nX, [
49725
+ body: L(() => [a.value === "archives" ? (U(), W("section", nX, [
49726
+ K("div", rX, [
49727
49727
  q(x, {
49728
49728
  modelValue: h.value,
49729
49729
  "onUpdate:modelValue": c[0] ||= (e) => h.value = e,
@@ -49752,7 +49752,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49752
49752
  }
49753
49753
  }, null, 8, ["label", "disabled"])
49754
49754
  ]),
49755
- b.value && v.value.length ? (U(), W("div", rX, [
49755
+ b.value && v.value.length ? (U(), W("div", iX, [
49756
49756
  K("span", null, "将永久删除当前列表中的 " + P(v.value.length) + " 个房间及其全部记录,无法撤销。", 1),
49757
49757
  q(fe, {
49758
49758
  label: "取消",
@@ -49768,20 +49768,20 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49768
49768
  onClick: ee
49769
49769
  })
49770
49770
  ])) : Y("", !0),
49771
- I(o).directory_error ? (U(), W("p", iX, P(I(o).directory_error), 1)) : Y("", !0),
49772
- K("div", aX, [v.value.length ? (U(), W("ul", oX, [(U(!0), W(H, null, B(v.value, (e) => (U(), W("li", {
49771
+ I(o).directory_error ? (U(), W("p", aX, P(I(o).directory_error), 1)) : Y("", !0),
49772
+ K("div", oX, [v.value.length ? (U(), W("ul", sX, [(U(!0), W(H, null, B(v.value, (e) => (U(), W("li", {
49773
49773
  key: e.id,
49774
49774
  class: "channel-archive-item"
49775
- }, [K("div", sX, [K("div", cX, [K("button", {
49775
+ }, [K("div", cX, [K("div", lX, [K("button", {
49776
49776
  class: "channel-archive-title",
49777
49777
  title: e.title,
49778
49778
  disabled: !!I(u),
49779
49779
  onClick: (t) => T(e)
49780
- }, P(e.title), 9, lX), K("small", null, [e.created_at ? (U(), W("span", uX, [
49780
+ }, P(e.title), 9, uX), K("small", null, [e.created_at ? (U(), W("span", dX, [
49781
49781
  c[28] ||= J("创建于 ", -1),
49782
- K("time", { datetime: e.created_at }, P(C(e.created_at)), 9, dX),
49782
+ K("time", { datetime: e.created_at }, P(C(e.created_at)), 9, fX),
49783
49783
  c[29] ||= J(" · ", -1)
49784
- ])) : Y("", !0), J(P(e.message_count) + " 条消息", 1)])]), K("div", fX, [q(fe, {
49784
+ ])) : Y("", !0), J(P(e.message_count) + " 条消息", 1)])]), K("div", pX, [q(fe, {
49785
49785
  "aria-label": `彻底删除 ${e.title}`,
49786
49786
  title: "彻底删除",
49787
49787
  icon: "i-lucide-trash-2",
@@ -49813,7 +49813,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49813
49813
  "aria-label",
49814
49814
  "disabled",
49815
49815
  "onClick"
49816
- ])])]), y.value === e.id ? (U(), W("div", pX, [
49816
+ ])])]), y.value === e.id ? (U(), W("div", mX, [
49817
49817
  K("span", null, "永久删除「" + P(e.title) + "」及其全部记录,无法撤销。", 1),
49818
49818
  q(fe, {
49819
49819
  label: "取消",
@@ -49829,15 +49829,15 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49829
49829
  disabled: w(e),
49830
49830
  onClick: E
49831
49831
  }, null, 8, ["disabled"])
49832
- ])) : Y("", !0)]))), 128))])) : (U(), W("p", mX, P(m.value.length ? "没有匹配的存档房间" : "暂无已存档房间"), 1))])
49832
+ ])) : Y("", !0)]))), 128))])) : (U(), W("p", hX, P(m.value.length ? "没有匹配的存档房间" : "暂无已存档房间"), 1))])
49833
49833
  ])) : a.value === "delete-folder" ? (U(), W("form", {
49834
49834
  key: 1,
49835
49835
  class: "dialog-form",
49836
49836
  onSubmit: c[7] ||= uu((e) => ae(!1), ["prevent"])
49837
49837
  }, [
49838
- K("p", hX, "仅移除「" + P(e.targetFolder?.name) + "」时,房间变为未分组,所有消息和存档状态都会保留。", 1),
49839
- ie.value.length ? (U(), W("p", gX, "也可以连同其中的 " + P(ie.value.length) + " 个房间一起永久删除,无法撤销。", 1)) : Y("", !0),
49840
- K("div", _X, [
49838
+ K("p", gX, "仅移除「" + P(e.targetFolder?.name) + "」时,房间变为未分组,所有消息和存档状态都会保留。", 1),
49839
+ ie.value.length ? (U(), W("p", _X, "也可以连同其中的 " + P(ie.value.length) + " 个房间一起永久删除,无法撤销。", 1)) : Y("", !0),
49840
+ K("div", vX, [
49841
49841
  q(fe, {
49842
49842
  label: "取消",
49843
49843
  color: "neutral",
@@ -49862,7 +49862,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49862
49862
  key: 2,
49863
49863
  class: "dialog-form",
49864
49864
  onSubmit: uu(oe, ["prevent"])
49865
- }, [K("p", vX, "存档「" + P(e.targetFolder?.name) + "」中的 " + P(ie.value.length) + " 个房间,文件夹保留。存档后可在侧栏「已存档」中查阅与恢复;尚未收束的讨论会暂停。", 1), K("div", yX, [q(fe, {
49865
+ }, [K("p", yX, "存档「" + P(e.targetFolder?.name) + "」中的 " + P(ie.value.length) + " 个房间,文件夹保留。存档后可在侧栏「已存档」中查阅与恢复;尚未收束的讨论会暂停。", 1), K("div", bX, [q(fe, {
49866
49866
  label: "取消",
49867
49867
  color: "neutral",
49868
49868
  variant: "ghost",
@@ -49892,7 +49892,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49892
49892
  "modelValue",
49893
49893
  "aria-label",
49894
49894
  "readonly"
49895
- ]), K("div", bX, [q(fe, {
49895
+ ]), K("div", xX, [q(fe, {
49896
49896
  label: "取消",
49897
49897
  color: "neutral",
49898
49898
  variant: "ghost",
@@ -49917,10 +49917,10 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49917
49917
  class: "dialog-form",
49918
49918
  onSubmit: uu(ne, ["prevent"])
49919
49919
  }, [
49920
- K("p", xX, [J(P(e.targetRoom?.title) + " ", 1), K("span", null, "· " + P(e.targetRoom?.message_count) + " 条消息", 1)]),
49921
- a.value === "archive" ? (U(), W("p", SX, "存档后可在侧栏「已存档」中查阅与恢复。已有发言安排会保留;专家需在下次检查时停止自己的定时任务。")) : Y("", !0),
49922
- a.value === "restore" ? (U(), W("p", CX, "恢复不会自动继续讨论;需要继续时,在主持设置中调整阶段。")) : Y("", !0),
49923
- a.value === "delete" ? (U(), W("p", wX, "消息、共识和发言安排将一起删除,无法撤销。")) : Y("", !0),
49920
+ K("p", SX, [J(P(e.targetRoom?.title) + " ", 1), K("span", null, "· " + P(e.targetRoom?.message_count) + " 条消息", 1)]),
49921
+ a.value === "archive" ? (U(), W("p", CX, "存档后可在侧栏「已存档」中查阅与恢复。已有发言安排会保留;专家需在下次检查时停止自己的定时任务。")) : Y("", !0),
49922
+ a.value === "restore" ? (U(), W("p", wX, "恢复不会自动继续讨论;需要继续时,在主持设置中调整阶段。")) : Y("", !0),
49923
+ a.value === "delete" ? (U(), W("p", TX, "消息、共识和发言安排将一起删除,无法撤销。")) : Y("", !0),
49924
49924
  a.value === "rename" ? (U(), G(pe, {
49925
49925
  key: 3,
49926
49926
  label: "房间名称",
@@ -49937,7 +49937,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49937
49937
  }, null, 8, ["modelValue"])]),
49938
49938
  _: 1
49939
49939
  })) : Y("", !0),
49940
- K("div", TX, [q(fe, {
49940
+ K("div", EX, [q(fe, {
49941
49941
  label: "取消",
49942
49942
  color: "neutral",
49943
49943
  variant: "ghost",
@@ -49954,10 +49954,10 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49954
49954
  "loading",
49955
49955
  "disabled"
49956
49956
  ])])
49957
- ], 32)) : a.value === "settings" ? (U(), W("div", EX, [
49958
- q(eX),
49957
+ ], 32)) : a.value === "settings" ? (U(), W("div", DX, [
49958
+ q(tX),
49959
49959
  c[34] ||= K("h3", { class: "account-appearance-heading" }, "外观", -1),
49960
- K("div", DX, [(U(), W(H, null, B(_e, (e) => K("button", {
49960
+ K("div", OX, [(U(), W(H, null, B(_e, (e) => K("button", {
49961
49961
  key: e.value,
49962
49962
  class: j({ chosen: I(o).theme === e.value }),
49963
49963
  "aria-pressed": I(o).theme === e.value,
@@ -49972,12 +49972,12 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49972
49972
  K("b")
49973
49973
  ], -1)]], 2),
49974
49974
  K("span", null, [K("strong", null, P(e.title), 1), K("small", null, P(e.description), 1)]),
49975
- K("span", kX, [I(o).theme === e.value ? (U(), G(ye, {
49975
+ K("span", AX, [I(o).theme === e.value ? (U(), G(ye, {
49976
49976
  key: 0,
49977
49977
  name: "i-lucide-check"
49978
49978
  })) : Y("", !0)])
49979
- ], 10, OX)), 64))]),
49980
- 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, {
49979
+ ], 10, kX)), 64))]),
49980
+ K("section", jX, [c[31] ||= K("h3", { id: "channel-reading-label" }, "对话宽度", -1), K("div", MX, [(U(!0), W(H, null, B(e.readingOptions, (e) => (U(), G(fe, {
49981
49981
  key: e.value,
49982
49982
  label: e.label,
49983
49983
  color: "neutral",
@@ -49991,9 +49991,9 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49991
49991
  "aria-pressed",
49992
49992
  "onClick"
49993
49993
  ]))), 128))])]),
49994
- K("section", MX, [
49994
+ K("section", NX, [
49995
49995
  c[32] ||= K("h3", { id: "channel-effects-label" }, "视觉效果", -1),
49996
- K("div", NX, [(U(!0), W(H, null, B(e.effectOptions, (e) => (U(), G(fe, {
49996
+ K("div", PX, [(U(!0), W(H, null, B(e.effectOptions, (e) => (U(), G(fe, {
49997
49997
  key: e.value,
49998
49998
  label: e.label,
49999
49999
  color: "neutral",
@@ -50009,7 +50009,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50009
50009
  ]))), 128))]),
50010
50010
  c[33] ||= K("p", { class: "fine-print" }, "精简模式关闭毛玻璃模糊与多层阴影,适合配置较低或需要更流畅滚动的设备。", -1)
50011
50011
  ])
50012
- ])) : a.value === "create" ? (U(), G(IY, {
50012
+ ])) : a.value === "create" ? (U(), G(LY, {
50013
50013
  key: 6,
50014
50014
  "target-folder": e.targetFolder,
50015
50015
  onSubmit: N,
@@ -50067,7 +50067,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50067
50067
  }, null, 8, ["model-value"])]),
50068
50068
  _: 1
50069
50069
  })) : Y("", !0),
50070
- K("section", PX, [
50070
+ K("section", FX, [
50071
50071
  c[35] ||= K("h3", null, "讨论上限", -1),
50072
50072
  q(yU, {
50073
50073
  ref_key: "topic_limits",
@@ -50087,14 +50087,14 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50087
50087
  "execution",
50088
50088
  "disabled"
50089
50089
  ]),
50090
- de.value ? (U(), W("p", FX, "讨论未结束时,上限不可在此修改。")) : Y("", !0)
50090
+ de.value ? (U(), W("p", IX, "讨论未结束时,上限不可在此修改。")) : Y("", !0)
50091
50091
  ]),
50092
50092
  q(Te, {
50093
50093
  open: le.value,
50094
50094
  "onUpdate:open": c[22] ||= (e) => le.value = e,
50095
50095
  class: "advanced-fields"
50096
50096
  }, {
50097
- content: L(() => [K("div", IX, [
50097
+ content: L(() => [K("div", LX, [
50098
50098
  (U(), W(H, null, B([
50099
50099
  {
50100
50100
  key: "user_request",
@@ -50121,11 +50121,11 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50121
50121
  }, null, 8, ["model-value", "onUpdate:modelValue"])]),
50122
50122
  _: 2
50123
50123
  }, 1032, ["label"])), 64)),
50124
- 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, {
50125
- "model-value": I(o).experts[YX]?.[e] || "none",
50124
+ K("div", RX, [(U(!0), W(H, null, B(I(k), (e) => (U(), W("div", { key: e }, [K("label", null, P(e), 1), q(S, {
50125
+ "model-value": I(o).experts[XX]?.[e] || "none",
50126
50126
  items: ce,
50127
50127
  "aria-label": `${e} 参与方式`,
50128
- "onUpdate:modelValue": (t) => I(s).write_expert(YX, e, t === "none" ? "" : t)
50128
+ "onUpdate:modelValue": (t) => I(s).write_expert(XX, e, t === "none" ? "" : t)
50129
50129
  }, null, 8, [
50130
50130
  "model-value",
50131
50131
  "aria-label",
@@ -50143,7 +50143,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50143
50143
  }, null, 8, ["trailing-icon"])]),
50144
50144
  _: 1
50145
50145
  }, 8, ["open"]),
50146
- K("div", RX, [q(fe, {
50146
+ K("div", zX, [q(fe, {
50147
50147
  label: "取消",
50148
50148
  color: "neutral",
50149
50149
  variant: "ghost",
@@ -50187,7 +50187,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50187
50187
  _: 1
50188
50188
  }),
50189
50189
  c[37] ||= K("p", { class: "fine-print" }, "创建后为待通知状态;由主持人实际联系专家。", -1),
50190
- K("div", zX, [q(fe, {
50190
+ K("div", BX, [q(fe, {
50191
50191
  label: "取消",
50192
50192
  variant: "ghost",
50193
50193
  color: "neutral",
@@ -50198,8 +50198,8 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50198
50198
  label: "创建发言安排",
50199
50199
  loading: I(u) === "schedule"
50200
50200
  }, null, 8, ["loading"])])
50201
- ], 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 }, [
50202
- K("div", HX, [
50201
+ ], 32)) : a.value === "message" ? (U(), W("div", VX, [me.value ? (U(), W("p", HX, P(me.value), 1)) : A.value ? (U(), W(H, { key: 1 }, [
50202
+ K("div", UX, [
50203
50203
  K("strong", null, P(I(s).display_name(A.value.author)), 1),
50204
50204
  K("span", null, "#" + P(A.value.id), 1),
50205
50205
  q(Ee, {
@@ -50210,14 +50210,14 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50210
50210
  _: 1
50211
50211
  })
50212
50212
  ]),
50213
- K("p", UX, P(I(s).provenance(A.value)) + " · " + P(new Date(A.value.created_at).toLocaleString("zh-CN")), 1),
50214
- 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),
50215
- K("p", KX, P(A.value.text), 1),
50213
+ K("p", WX, P(I(s).provenance(A.value)) + " · " + P(new Date(A.value.created_at).toLocaleString("zh-CN")), 1),
50214
+ A.value.summary ? (U(), W("section", GX, [K("small", null, "回答摘要 · " + P(I(s).display_name(A.value.summary_by)), 1), K("p", KX, P(A.value.summary), 1)])) : Y("", !0),
50215
+ K("p", qX, P(A.value.text), 1),
50216
50216
  A.value.attachments?.length ? (U(), W("div", {
50217
50217
  key: 1,
50218
50218
  onClick: be,
50219
50219
  innerHTML: I(s).attachment_markup(A.value.attachments)
50220
- }, null, 8, qX)) : Y("", !0),
50220
+ }, null, 8, JX)) : Y("", !0),
50221
50221
  A.value.reply_to ? (U(), G(fe, {
50222
50222
  key: 2,
50223
50223
  label: `查看被回复的原文 #${A.value.reply_to}`,
@@ -50227,7 +50227,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50227
50227
  class: "channel-surface-button",
50228
50228
  onClick: Se
50229
50229
  }, null, 8, ["label"])) : Y("", !0)
50230
- ], 64)) : (U(), W("p", JX, "正在读取原文…"))])) : Y("", !0)]),
50230
+ ], 64)) : (U(), W("p", YX, "正在读取原文…"))])) : Y("", !0)]),
50231
50231
  _: 1
50232
50232
  }, 8, [
50233
50233
  "open",
@@ -50238,7 +50238,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50238
50238
  ]);
50239
50239
  };
50240
50240
  }
50241
- }, ZX = {
50241
+ }, QX = {
50242
50242
  __name: "ContextMenuContent",
50243
50243
  props: {
50244
50244
  items: {
@@ -50533,7 +50533,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50533
50533
  "disabled",
50534
50534
  "text-value",
50535
50535
  "class"
50536
- ]), q(ZX, X({
50536
+ ]), q(QX, X({
50537
50537
  sub: "",
50538
50538
  class: r.ui?.content,
50539
50539
  ui: e.ui,
@@ -50644,7 +50644,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50644
50644
  _: 3
50645
50645
  }, 16)], 64));
50646
50646
  }
50647
- }, QX = {
50647
+ }, $X = {
50648
50648
  slots: {
50649
50649
  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",
50650
50650
  viewport: "relative divide-y divide-default scroll-py-1 overflow-y-auto flex-1",
@@ -50832,7 +50832,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50832
50832
  }
50833
50833
  ],
50834
50834
  defaultVariants: { size: "md" }
50835
- }, $X = {
50835
+ }, eZ = {
50836
50836
  __name: "ContextMenu",
50837
50837
  props: {
50838
50838
  size: {
@@ -50902,7 +50902,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50902
50902
  emits: ["update:open"],
50903
50903
  setup(e, { emit: t }) {
50904
50904
  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({
50905
- extend: QX,
50905
+ extend: $X,
50906
50906
  ...o.ui?.contextMenu || {}
50907
50907
  })({ size: a.size }));
50908
50908
  return (e, t) => (U(), G(I(iC), M(Ss(I(s))), {
@@ -50914,7 +50914,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50914
50914
  }, {
50915
50915
  default: L(() => [V(e.$slots, "default")]),
50916
50916
  _: 3
50917
- }, 8, ["disabled", "class"])) : Y("", !0), q(ZX, X({
50917
+ }, 8, ["disabled", "class"])) : Y("", !0), q(QX, X({
50918
50918
  class: u.value.content({ class: [!i.default && I(a).class, I(a).ui?.content] }),
50919
50919
  ui: u.value,
50920
50920
  "ui-override": I(a).ui
@@ -50944,20 +50944,20 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50944
50944
  _: 3
50945
50945
  }, 16));
50946
50946
  }
50947
- }, eZ = {
50947
+ }, tZ = {
50948
50948
  key: 0,
50949
50949
  class: "channel-import-reading"
50950
- }, tZ = {
50950
+ }, nZ = {
50951
50951
  class: "channel-import-list",
50952
50952
  "aria-live": "polite"
50953
- }, nZ = { class: "channel-import-head" }, rZ = ["title"], iZ = {
50953
+ }, rZ = { class: "channel-import-head" }, iZ = ["title"], aZ = {
50954
50954
  key: 0,
50955
50955
  role: "alert",
50956
50956
  class: "channel-import-error"
50957
- }, aZ = {
50957
+ }, oZ = {
50958
50958
  key: 1,
50959
50959
  class: "channel-import-members"
50960
- }, oZ = ["title"], sZ = { class: "dialog-actions" }, cZ = /*#__PURE__*/ YH({
50960
+ }, sZ = ["title"], cZ = { class: "dialog-actions" }, lZ = /*#__PURE__*/ YH({
50961
50961
  __name: "ImportDialog",
50962
50962
  props: {
50963
50963
  open: {
@@ -51013,21 +51013,21 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51013
51013
  }
51014
51014
  }, {
51015
51015
  body: L(() => [
51016
- !r.value.done && !r.value.rooms.length ? (U(), W("p", eZ, "正在读取备份文件…")) : Y("", !0),
51017
- K("ul", tZ, [(U(!0), W(H, null, B(r.value.rooms, (e, t) => (U(), W("li", {
51016
+ !r.value.done && !r.value.rooms.length ? (U(), W("p", tZ, "正在读取备份文件…")) : Y("", !0),
51017
+ K("ul", nZ, [(U(!0), W(H, null, B(r.value.rooms, (e, t) => (U(), W("li", {
51018
51018
  key: t,
51019
51019
  class: j(["channel-import-room", `is-${e.status}`])
51020
51020
  }, [
51021
- K("div", nZ, [
51021
+ K("div", rZ, [
51022
51022
  q(o, {
51023
51023
  name: i[e.status].icon,
51024
51024
  class: j({ "animate-spin": e.status === "importing" })
51025
51025
  }, null, 8, ["name", "class"]),
51026
- K("strong", { title: e.title }, P(e.title), 9, rZ),
51026
+ K("strong", { title: e.title }, P(e.title), 9, iZ),
51027
51027
  K("span", null, P(i[e.status].label), 1)
51028
51028
  ]),
51029
- e.error ? (U(), W("p", iZ, P(e.error), 1)) : Y("", !0),
51030
- e.members.length ? (U(), W("ul", aZ, [(U(!0), W(H, null, B(e.members, (e) => (U(), W("li", {
51029
+ e.error ? (U(), W("p", aZ, P(e.error), 1)) : Y("", !0),
51030
+ e.members.length ? (U(), W("ul", oZ, [(U(!0), W(H, null, B(e.members, (e) => (U(), W("li", {
51031
51031
  key: e.name,
51032
51032
  class: j({ "is-failed": e.failed })
51033
51033
  }, [
@@ -51036,7 +51036,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51036
51036
  e.resume ? (U(), W("code", {
51037
51037
  key: 0,
51038
51038
  title: `没有开着的原窗口时,在 ${e.resume.cwd} 运行`
51039
- }, P(e.resume.command), 9, oZ)) : Y("", !0)
51039
+ }, P(e.resume.command), 9, sZ)) : Y("", !0)
51040
51040
  ], 2))), 128))])) : Y("", !0),
51041
51041
  (U(!0), W(H, null, B(e.problems, (e) => (U(), W("p", {
51042
51042
  key: e,
@@ -51048,7 +51048,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51048
51048
  role: "alert",
51049
51049
  class: "channel-import-error is-file"
51050
51050
  }, P(e), 1))), 128)),
51051
- K("div", sZ, [q(s, {
51051
+ K("div", cZ, [q(s, {
51052
51052
  label: "完成",
51053
51053
  class: "channel-primary-button",
51054
51054
  disabled: !r.value.done,
@@ -51064,47 +51064,47 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51064
51064
  ]);
51065
51065
  };
51066
51066
  }
51067
- }, [["__scopeId", "data-v-03a2f1dd"]]), lZ = { class: "channel-directory-manager" }, uZ = { class: "channel-directory-heading" }, dZ = ["aria-expanded"], fZ = { class: "channel-directory-actions" }, pZ = {
51067
+ }, [["__scopeId", "data-v-03a2f1dd"]]), uZ = { class: "channel-directory-manager" }, dZ = { class: "channel-directory-heading" }, fZ = ["aria-expanded"], pZ = { class: "channel-directory-actions" }, mZ = {
51068
51068
  "aria-label": "协作房间列表",
51069
51069
  class: "channel-room-list",
51070
51070
  "data-room-directory": ""
51071
- }, mZ = ["data-room-folder", "data-drag-folder"], hZ = [
51071
+ }, hZ = ["data-room-folder", "data-drag-folder"], gZ = [
51072
51072
  "disabled",
51073
51073
  "aria-label",
51074
51074
  "aria-expanded",
51075
51075
  "onKeydown",
51076
51076
  "onClick"
51077
- ], gZ = { class: "channel-folder-name" }, _Z = {
51077
+ ], _Z = { class: "channel-folder-name" }, vZ = {
51078
51078
  class: "channel-directory-count",
51079
51079
  "aria-hidden": "true"
51080
- }, vZ = { class: "channel-folder-actions" }, yZ = ["data-drop-folder"], bZ = {
51080
+ }, yZ = { class: "channel-folder-actions" }, bZ = ["data-drop-folder"], xZ = {
51081
51081
  key: 0,
51082
51082
  class: "channel-directory-empty",
51083
51083
  role: "status"
51084
- }, xZ = ["data-drag-room"], SZ = [
51084
+ }, SZ = ["data-drag-room"], CZ = [
51085
51085
  "aria-label",
51086
51086
  "disabled",
51087
51087
  "onKeydown"
51088
- ], CZ = [
51088
+ ], wZ = [
51089
51089
  "title",
51090
51090
  "aria-label",
51091
51091
  "aria-current",
51092
51092
  "onClick"
51093
- ], wZ = { class: "channel-room-actions" }, TZ = {
51093
+ ], TZ = { class: "channel-room-actions" }, EZ = {
51094
51094
  key: 0,
51095
51095
  class: "channel-directory-empty"
51096
- }, EZ = {
51096
+ }, DZ = {
51097
51097
  key: 0,
51098
51098
  class: "channel-archive-count"
51099
- }, DZ = {
51099
+ }, OZ = {
51100
51100
  key: 0,
51101
51101
  role: "status",
51102
51102
  class: "channel-directory-notice"
51103
- }, OZ = {
51103
+ }, kZ = {
51104
51104
  key: 1,
51105
51105
  role: "alert",
51106
51106
  class: "channel-directory-error"
51107
- }, kZ = {
51107
+ }, AZ = {
51108
51108
  __name: "ChannelDirectory",
51109
51109
  emits: [
51110
51110
  "select",
@@ -51335,8 +51335,8 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51335
51335
  ];
51336
51336
  }
51337
51337
  return (e, t) => {
51338
- let u = MA, m = sA, h = $V, b = CH, x = $X;
51339
- return U(), W("div", lZ, [
51338
+ let u = MA, m = sA, h = $V, b = CH, x = eZ;
51339
+ return U(), W("div", uZ, [
51340
51340
  q(u, {
51341
51341
  label: "新建对话",
51342
51342
  icon: "i-lucide-plus",
@@ -51345,12 +51345,12 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51345
51345
  disabled: I(r).directory_pending.includes("create-room"),
51346
51346
  onClick: t[0] ||= (e) => n("create", null)
51347
51347
  }, null, 8, ["disabled"]),
51348
- K("div", uZ, [K("button", {
51348
+ K("div", dZ, [K("button", {
51349
51349
  type: "button",
51350
51350
  class: "channel-section-toggle",
51351
51351
  "aria-expanded": _.value,
51352
51352
  onClick: t[1] ||= (e) => _.value = !_.value
51353
- }, [q(m, { name: _.value ? "i-lucide-chevron-down" : "i-lucide-chevron-right" }, null, 8, ["name"]), t[8] ||= J("协作房间", -1)], 8, dZ), K("div", fZ, [
51353
+ }, [q(m, { name: _.value ? "i-lucide-chevron-down" : "i-lucide-chevron-right" }, null, 8, ["name"]), t[8] ||= J("协作房间", -1)], 8, fZ), K("div", pZ, [
51354
51354
  q(h, { text: "新建文件夹" }, {
51355
51355
  default: L(() => [q(u, {
51356
51356
  icon: "i-lucide-plus",
@@ -51392,7 +51392,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51392
51392
  onChange: g
51393
51393
  }, null, 544)
51394
51394
  ])]),
51395
- vr(K("nav", pZ, [(U(!0), W(H, null, B(l.value, (e, s) => (U(), W("section", {
51395
+ vr(K("nav", mZ, [(U(!0), W(H, null, B(l.value, (e, s) => (U(), W("section", {
51396
51396
  key: e.order_id,
51397
51397
  class: "channel-folder-section",
51398
51398
  "data-room-folder": e.id,
@@ -51421,9 +51421,9 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51421
51421
  }, [
51422
51422
  q(m, { name: v.value.has(e.id) ? "i-lucide-chevron-right" : "i-lucide-chevron-down" }, null, 8, ["name"]),
51423
51423
  q(m, { name: "i-lucide-folder" }),
51424
- K("span", gZ, P(e.name), 1),
51425
- K("small", _Z, P(e.pending ? "保存中" : e.rooms.length), 1)
51426
- ], 40, hZ), K("div", vZ, [q(h, { text: `在${e.name}中新建对话` }, {
51424
+ K("span", _Z, P(e.name), 1),
51425
+ K("small", vZ, P(e.pending ? "保存中" : e.rooms.length), 1)
51426
+ ], 40, gZ), K("div", yZ, [q(h, { text: `在${e.name}中新建对话` }, {
51427
51427
  default: L(() => [q(u, {
51428
51428
  icon: "i-lucide-square-pen",
51429
51429
  "aria-label": `在${e.name}中新建对话`,
@@ -51460,7 +51460,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51460
51460
  key: 1,
51461
51461
  class: j(e.id ? "channel-folder-rooms" : "channel-root-rooms"),
51462
51462
  "data-drop-folder": e.id ? void 0 : ""
51463
- }, [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, {
51463
+ }, [I(r).creating_room && (I(r).creating_room.folder_id || "") === e.id ? (U(), W("p", xZ, "正在创建:" + P(I(r).creating_room.title), 1)) : Y("", !0), (U(!0), W(H, null, B(e.rooms, (s, c) => (U(), G(x, {
51464
51464
  key: s.id,
51465
51465
  items: C(s, c, s.folder_id || null, e.rooms.length),
51466
51466
  ui: { content: "channel-menu channel-topic-menu" }
@@ -51485,7 +51485,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51485
51485
  direction: 1,
51486
51486
  folder_id: s.folder_id || null
51487
51487
  }), ["prevent"]), ["down"])]
51488
- }, [q(m, { name: "i-lucide-grip-vertical" })], 40, SZ),
51488
+ }, [q(m, { name: "i-lucide-grip-vertical" })], 40, CZ),
51489
51489
  K("button", {
51490
51490
  class: "channel-room-select",
51491
51491
  "data-drag-title": "",
@@ -51494,8 +51494,8 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51494
51494
  "aria-current": s.id === I(r).room?.id ? "page" : void 0,
51495
51495
  onPointerdown: t[5] ||= (e) => !I(o) && I(i).start_drag(e),
51496
51496
  onClick: (e) => n("select", s.id)
51497
- }, [K("span", null, P(s.title), 1)], 40, CZ),
51498
- K("div", wZ, [q(h, {
51497
+ }, [K("span", null, P(s.title), 1)], 40, wZ),
51498
+ K("div", TZ, [q(h, {
51499
51499
  text: s.archived ? "恢复房间" : "存档房间",
51500
51500
  ui: { content: "channel-topic-tooltip" }
51501
51501
  }, {
@@ -51536,9 +51536,9 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51536
51536
  }, null, 8, ["aria-label"])]),
51537
51537
  _: 2
51538
51538
  }, 1032, ["items"])])
51539
- ], 10, xZ)]),
51539
+ ], 10, SZ)]),
51540
51540
  _: 2
51541
- }, 1032, ["items"]))), 128))], 10, yZ)) : Y("", !0)], 8, mZ))), 128)), s.value.length ? Y("", !0) : (U(), W("p", TZ, "暂无协作房间"))], 512), [[Vc, _.value]]),
51541
+ }, 1032, ["items"]))), 128))], 10, bZ)) : Y("", !0)], 8, hZ))), 128)), s.value.length ? Y("", !0) : (U(), W("p", EZ, "暂无协作房间"))], 512), [[Vc, _.value]]),
51542
51542
  vr(q(u, {
51543
51543
  icon: "i-lucide-archive",
51544
51544
  color: "neutral",
@@ -51547,44 +51547,44 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51547
51547
  "aria-haspopup": "dialog",
51548
51548
  onClick: t[6] ||= (e) => n("archives")
51549
51549
  }, {
51550
- default: L(() => [t[9] ||= K("span", { class: "channel-archive-label" }, "已存档", -1), c.value ? (U(), W("small", EZ, P(c.value), 1)) : Y("", !0)]),
51550
+ default: L(() => [t[9] ||= K("span", { class: "channel-archive-label" }, "已存档", -1), c.value ? (U(), W("small", DZ, P(c.value), 1)) : Y("", !0)]),
51551
51551
  _: 1
51552
51552
  }, 512), [[Vc, _.value]]),
51553
- I(r).directory_notice ? (U(), W("p", DZ, P(I(r).directory_notice), 1)) : Y("", !0),
51554
- I(r).directory_error ? (U(), W("p", OZ, P(I(r).directory_error), 1)) : Y("", !0),
51555
- q(cZ, {
51553
+ I(r).directory_notice ? (U(), W("p", OZ, P(I(r).directory_notice), 1)) : Y("", !0),
51554
+ I(r).directory_error ? (U(), W("p", kZ, P(I(r).directory_error), 1)) : Y("", !0),
51555
+ q(lZ, {
51556
51556
  open: p.value,
51557
51557
  "onUpdate:open": t[7] ||= (e) => p.value = e
51558
51558
  }, null, 8, ["open"])
51559
51559
  ]);
51560
51560
  };
51561
51561
  }
51562
- }, AZ = {
51562
+ }, jZ = {
51563
51563
  key: 0,
51564
51564
  class: "pb-invite",
51565
51565
  "aria-label": "启动手动成员"
51566
- }, jZ = { class: "pb-invite-lead" }, MZ = {
51566
+ }, MZ = { class: "pb-invite-lead" }, NZ = {
51567
51567
  key: 0,
51568
51568
  role: "alert",
51569
51569
  class: "pb-free-note is-error"
51570
- }, NZ = { class: "pb-invite-launches" }, PZ = { class: "pb-invite-footer" }, FZ = {
51570
+ }, PZ = { class: "pb-invite-launches" }, FZ = { class: "pb-invite-footer" }, IZ = {
51571
51571
  key: 0,
51572
51572
  class: "pb-invite-cards"
51573
- }, IZ = {
51573
+ }, LZ = {
51574
51574
  key: 0,
51575
51575
  class: "fine-print"
51576
- }, LZ = ["aria-hidden"], RZ = {
51576
+ }, RZ = ["aria-hidden"], zZ = {
51577
51577
  key: 2,
51578
51578
  class: "pb-invite-empty"
51579
- }, zZ = {
51579
+ }, BZ = {
51580
51580
  key: 3,
51581
51581
  role: "alert",
51582
51582
  class: "fine-print"
51583
- }, BZ = {
51583
+ }, VZ = {
51584
51584
  key: 4,
51585
51585
  role: "alert",
51586
51586
  class: "pb-free-note is-error"
51587
- }, VZ = { class: "pb-invite-footer" }, HZ = 2e3, UZ = "preset:", WZ = /*#__PURE__*/ YH({
51587
+ }, HZ = { class: "pb-invite-footer" }, UZ = 2e3, WZ = "preset:", GZ = /*#__PURE__*/ YH({
51588
51588
  __name: "InviteDialog",
51589
51589
  props: /*@__PURE__*/ Fa({ description: {
51590
51590
  type: String,
@@ -51602,7 +51602,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51602
51602
  async function u(e) {
51603
51603
  clearTimeout(l), c.value = "", await i("copy_member_launch", e) && (c.value = e, l = setTimeout(() => {
51604
51604
  c.value = "";
51605
- }, HZ));
51605
+ }, UZ));
51606
51606
  }
51607
51607
  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(() => {
51608
51608
  let e = /* @__PURE__ */ new Set([..._.value, ...d.value.filter((e) => e.preset).map((e) => e.name)]);
@@ -51641,7 +51641,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51641
51641
  title: v(e) ? `已在场 ${v(e)} 位 · 将添加新实例` : "",
51642
51642
  aria_label: `添加 ${e} 实例`
51643
51643
  })), ...g.value.map((e, t) => ({
51644
- value: UZ + e.name,
51644
+ value: WZ + e.name,
51645
51645
  name: e.label || e.name,
51646
51646
  ...r.identities[r.platform_of(e.name)],
51647
51647
  separated: t === 0,
@@ -51649,7 +51649,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51649
51649
  aria_label: `添加预设 ${e.label || e.name}`
51650
51650
  }))]);
51651
51651
  function T(e) {
51652
- if (!e.startsWith(UZ)) return C(e);
51652
+ if (!e.startsWith(WZ)) return C(e);
51653
51653
  let t = g.value.find((t) => t.name === e.slice(7));
51654
51654
  t && E(t);
51655
51655
  }
@@ -51688,10 +51688,10 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51688
51688
  body: "dialog-body"
51689
51689
  }
51690
51690
  }, {
51691
- body: L(() => [p.value.length && !d.value.length ? (U(), W("div", AZ, [
51692
- K("p", jZ, P(p.value.length > 1 ? `${p.value.length} 位手动成员已加入` : "手动成员已加入") + ",把启动指令交给各自的 AI 会话,注册后才算到场。", 1),
51693
- I(n).access?.error ? (U(), W("p", MZ, P(I(n).access.error), 1)) : Y("", !0),
51694
- K("ul", NZ, [(U(!0), W(H, null, B(p.value, (e) => (U(), W("li", { key: e }, [
51691
+ body: L(() => [p.value.length && !d.value.length ? (U(), W("div", jZ, [
51692
+ K("p", MZ, P(p.value.length > 1 ? `${p.value.length} 位手动成员已加入` : "手动成员已加入") + ",把启动指令交给各自的 AI 会话,注册后才算到场。", 1),
51693
+ I(n).access?.error ? (U(), W("p", NZ, P(I(n).access.error), 1)) : Y("", !0),
51694
+ K("ul", PZ, [(U(!0), W(H, null, B(p.value, (e) => (U(), W("li", { key: e }, [
51695
51695
  q(l, {
51696
51696
  src: I(r).identities[I(r).platform_of(e)]?.icon,
51697
51697
  text: I(r).identities[I(r).platform_of(e)]?.initials,
@@ -51726,7 +51726,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51726
51726
  ])
51727
51727
  ]))), 128))]),
51728
51728
  o[3] ||= K("p", { class: "fine-print" }, "指令含该成员的凭证,只交给对应的会话;关闭后仍可在参与者列表中复制。", -1),
51729
- K("div", PZ, [q(f, {
51729
+ K("div", FZ, [q(f, {
51730
51730
  label: "完成",
51731
51731
  class: "channel-primary-button",
51732
51732
  onClick: o[0] ||= (e) => t.value = !1
@@ -51742,7 +51742,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51742
51742
  items: w.value,
51743
51743
  onAdd: T
51744
51744
  }, null, 8, ["items"]),
51745
- d.value.length ? (U(), W("div", FZ, [(U(!0), W(H, null, B(d.value, (e) => (U(), W("div", {
51745
+ d.value.length ? (U(), W("div", IZ, [(U(!0), W(H, null, B(d.value, (e) => (U(), W("div", {
51746
51746
  key: e.id,
51747
51747
  class: "pb-invite-pick"
51748
51748
  }, [q(MJ, {
@@ -51758,15 +51758,15 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51758
51758
  "status",
51759
51759
  "onMode",
51760
51760
  "onRemove"
51761
- ]), b.value.get(e) === e.name ? Y("", !0) : (U(), W("p", IZ, "同一 AI 已有实例,将以 " + P(b.value.get(e)) + " 加入,使用独立会话。", 1))]))), 128))])) : Y("", !0),
51761
+ ]), b.value.get(e) === e.name ? Y("", !0) : (U(), W("p", LZ, "同一 AI 已有实例,将以 " + P(b.value.get(e)) + " 加入,使用独立会话。", 1))]))), 128))])) : Y("", !0),
51762
51762
  d.value.length ? (U(), W("p", {
51763
51763
  key: 1,
51764
51764
  class: j(["fine-print", { "pb-invite-reserved": !(d.value.some((e) => e.mode === "manual") && d.value.some((e) => e.mode !== "manual")) }]),
51765
51765
  "aria-hidden": !(d.value.some((e) => e.mode === "manual") && d.value.some((e) => e.mode !== "manual"))
51766
- }, "手动启动的成员排在程序启动的成员之后加入队列。", 10, LZ)) : (U(), W("p", RZ, "选择一位或多位 AI(同一 AI 可重复添加),点卡片翻面设置软件、模型与项目权限。")),
51767
- d.value.some((e) => e.mode === "cli") && !I(n).launch.available ? (U(), W("p", zZ, "邀请需要本机服务,请在运行 AI 的电脑打开本机网站。")) : Y("", !0),
51768
- m.value && I(n).free_error ? (U(), W("p", BZ, P(I(n).free_error), 1)) : Y("", !0),
51769
- K("div", VZ, [q(f, {
51766
+ }, "手动启动的成员排在程序启动的成员之后加入队列。", 10, RZ)) : (U(), W("p", zZ, "选择一位或多位 AI(同一 AI 可重复添加),点卡片翻面设置软件、模型与项目权限。")),
51767
+ d.value.some((e) => e.mode === "cli") && !I(n).launch.available ? (U(), W("p", BZ, "邀请需要本机服务,请在运行 AI 的电脑打开本机网站。")) : Y("", !0),
51768
+ m.value && I(n).free_error ? (U(), W("p", VZ, P(I(n).free_error), 1)) : Y("", !0),
51769
+ K("div", HZ, [q(f, {
51770
51770
  label: "取消",
51771
51771
  color: "neutral",
51772
51772
  variant: "ghost",
@@ -51788,7 +51788,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51788
51788
  }, 8, ["open", "description"]);
51789
51789
  };
51790
51790
  }
51791
- }, [["__scopeId", "data-v-95048b60"]]), GZ = { class: "start-discussion-footer" }, KZ = 3, qZ = /*#__PURE__*/ YH({
51791
+ }, [["__scopeId", "data-v-95048b60"]]), KZ = { class: "start-discussion-footer" }, qZ = 3, JZ = /*#__PURE__*/ YH({
51792
51792
  __name: "StartDiscussionDialog",
51793
51793
  props: {
51794
51794
  open: {
@@ -51799,9 +51799,9 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51799
51799
  },
51800
51800
  emits: ["update:open"],
51801
51801
  setup(e) {
51802
- 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);
51802
+ let t = ro(e, "open"), { view: n, act: r, pending: i } = xr("discussion"), a = /* @__PURE__ */ F(""), o = /* @__PURE__ */ F(qZ), s = /* @__PURE__ */ F(0), c = /* @__PURE__ */ F(""), l = /* @__PURE__ */ F(!1), u = /* @__PURE__ */ F(null);
51803
51803
  R(t, (e) => {
51804
- e && (a.value = "", o.value = KZ, s.value = 0, c.value = "", l.value = !1);
51804
+ e && (a.value = "", o.value = qZ, s.value = 0, c.value = "", l.value = !1);
51805
51805
  });
51806
51806
  async function d() {
51807
51807
  u.value?.settle();
@@ -51869,7 +51869,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51869
51869
  "minutes",
51870
51870
  "execution_minutes"
51871
51871
  ]),
51872
- K("div", GZ, [q(h, {
51872
+ K("div", KZ, [q(h, {
51873
51873
  label: "取消",
51874
51874
  color: "neutral",
51875
51875
  variant: "ghost",
@@ -51887,21 +51887,21 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51887
51887
  }, 8, ["open"]);
51888
51888
  };
51889
51889
  }
51890
- }, [["__scopeId", "data-v-dee972d6"]]), JZ = { class: "pb-status-line" }, YZ = { role: "status" }, XZ = {
51890
+ }, [["__scopeId", "data-v-dee972d6"]]), YZ = { class: "pb-status-line" }, XZ = { role: "status" }, ZZ = {
51891
51891
  key: 0,
51892
51892
  class: "pb-status-detail"
51893
- }, ZZ = { class: "pb-meters" }, QZ = { class: "pb-meter-label" }, $Z = {
51893
+ }, QZ = { class: "pb-meters" }, $Z = { class: "pb-meter-label" }, eQ = {
51894
51894
  key: 0,
51895
51895
  class: "pb-bar"
51896
- }, eQ = {
51896
+ }, tQ = {
51897
51897
  key: 0,
51898
51898
  class: "pb-section",
51899
51899
  "aria-label": "当前焦点"
51900
- }, tQ = {
51900
+ }, nQ = {
51901
51901
  key: 1,
51902
51902
  class: "pb-actions",
51903
51903
  "aria-label": "讨论操作"
51904
- }, nQ = { class: "progress-ending" }, rQ = ["disabled"], iQ = 90, aQ = {
51904
+ }, rQ = { class: "progress-ending" }, iQ = ["disabled"], aQ = 90, oQ = {
51905
51905
  __name: "ProgressBoard",
51906
51906
  setup(e) {
51907
51907
  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);
@@ -51967,24 +51967,24 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51967
51967
  class: j(["pb-status", `is-${h.value.tone}`]),
51968
51968
  "aria-label": "讨论状态"
51969
51969
  }, [
51970
- K("div", JZ, [t[6] ||= K("span", { class: "pb-dot" }, null, -1), K("strong", YZ, P(h.value.title), 1)]),
51971
- h.value.detail ? (U(), W("p", XZ, P(h.value.detail), 1)) : Y("", !0),
51972
- K("div", ZZ, [(U(!0), W(H, null, B(_.value, (e) => (U(), W("div", {
51970
+ K("div", YZ, [t[6] ||= K("span", { class: "pb-dot" }, null, -1), K("strong", XZ, P(h.value.title), 1)]),
51971
+ h.value.detail ? (U(), W("p", ZZ, P(h.value.detail), 1)) : Y("", !0),
51972
+ K("div", QZ, [(U(!0), W(H, null, B(_.value, (e) => (U(), W("div", {
51973
51973
  key: e.label,
51974
51974
  class: "pb-meter"
51975
- }, [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))])
51975
+ }, [K("div", $Z, [K("span", null, P(e.label), 1), K("b", null, P(e.text), 1)]), e.ratio === null ? Y("", !0) : (U(), W("div", eQ, [K("i", { style: A({ width: `${Math.min(100, Math.round(e.ratio * 100))}%` }) }, null, 4)]))]))), 128))])
51976
51976
  ], 2),
51977
- m.value ? (U(), W("section", eQ, [
51977
+ m.value ? (U(), W("section", tQ, [
51978
51978
  t[7] ||= K("h4", null, "当前焦点", -1),
51979
51979
  K("p", { class: j(["pb-focus", { "is-expanded": p.value }]) }, P(m.value), 3),
51980
- m.value.length > iQ ? (U(), W("button", {
51980
+ m.value.length > aQ ? (U(), W("button", {
51981
51981
  key: 0,
51982
51982
  type: "button",
51983
51983
  class: "pb-link",
51984
51984
  onClick: t[0] ||= (e) => p.value = !p.value
51985
51985
  }, P(p.value ? "收起" : "展开"), 1)) : Y("", !0)
51986
51986
  ])) : Y("", !0),
51987
- a.value.archived ? Y("", !0) : (U(), W("section", tQ, [
51987
+ a.value.archived ? Y("", !0) : (U(), W("section", nQ, [
51988
51988
  l.value ? (U(), G(o, {
51989
51989
  key: 0,
51990
51990
  icon: "i-lucide-play",
@@ -52047,51 +52047,51 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
52047
52047
  body: "dialog-body"
52048
52048
  }
52049
52049
  }, {
52050
- body: L(() => [K("div", nQ, [K("button", {
52050
+ body: L(() => [K("div", rQ, [K("button", {
52051
52051
  type: "button",
52052
52052
  class: "progress-ending-option",
52053
52053
  disabled: !!I(i),
52054
52054
  onClick: v
52055
- }, [...t[8] ||= [K("strong", null, "结束讨论", -1), K("span", null, "保留全部记录,房间回到自由协作;需要总结时可直接请主持人写一份。", -1)]], 8, rQ)])]),
52055
+ }, [...t[8] ||= [K("strong", null, "结束讨论", -1), K("span", null, "保留全部记录,房间回到自由协作;需要总结时可直接请主持人写一份。", -1)]], 8, iQ)])]),
52056
52056
  _: 1
52057
52057
  }, 8, ["open"])
52058
52058
  ], 64);
52059
52059
  };
52060
52060
  }
52061
- }, oQ = { class: "speaking-order" }, sQ = {
52061
+ }, sQ = { class: "speaking-order" }, cQ = {
52062
52062
  key: 0,
52063
52063
  class: "speaking-order-divider",
52064
52064
  "aria-hidden": "true"
52065
- }, cQ = ["data-key", "data-movable"], lQ = [
52065
+ }, lQ = ["data-key", "data-movable"], uQ = [
52066
52066
  "aria-disabled",
52067
52067
  "aria-label",
52068
52068
  "title",
52069
52069
  "onPointerdown",
52070
52070
  "onKeydown"
52071
- ], uQ = { class: "speaking-order-number" }, dQ = {
52071
+ ], dQ = { class: "speaking-order-number" }, fQ = {
52072
52072
  key: 1,
52073
52073
  class: "speaking-order-place",
52074
52074
  title: "已发言",
52075
52075
  "aria-label": "已发言"
52076
- }, fQ = ["title"], pQ = {
52076
+ }, pQ = ["title"], mQ = {
52077
52077
  key: 0,
52078
52078
  class: "speaking-order-later"
52079
- }, mQ = {
52079
+ }, hQ = {
52080
52080
  key: 1,
52081
52081
  class: "speaking-order-divider",
52082
52082
  "aria-hidden": "true"
52083
- }, hQ = {
52083
+ }, gQ = {
52084
52084
  key: 0,
52085
52085
  role: "status",
52086
52086
  class: "pb-free-note"
52087
- }, gQ = {
52087
+ }, _Q = {
52088
52088
  key: 1,
52089
52089
  role: "alert",
52090
52090
  class: "pb-free-note is-error"
52091
- }, _Q = {
52091
+ }, vQ = {
52092
52092
  class: "speaking-order-live",
52093
52093
  "aria-live": "polite"
52094
- }, vQ = "发言顺序刚有变化,已更新为最新顺序,请重新调整", yQ = /*#__PURE__*/ YH({
52094
+ }, yQ = "发言顺序刚有变化,已更新为最新顺序,请重新调整", bQ = /*#__PURE__*/ YH({
52095
52095
  __name: "SpeakingOrder",
52096
52096
  props: {
52097
52097
  away: {
@@ -52111,7 +52111,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
52111
52111
  }), c = Z(() => s.value.kind === "default" ? "idle" : "queued"), l = Z(() => !!n.value.access?.can_manage && !o.value.archived && s.value.movable.length > 1), u = {
52112
52112
  queue: "不在本次依次回答中",
52113
52113
  turns: "本轮未安排"
52114
- }, 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("");
52114
+ }, d = Z(() => s.value.kind === "default" ? "拖动设置默认发言顺序,@全体依次 按此顺序;聚焦后可用上下方向键" : "拖动调整还没发言的顺序,立即生效;聚焦后可用上下方向键"), f = /* @__PURE__ */ F(!1), p = Z(() => f.value ? yQ : 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("");
52115
52115
  R(() => s.value.revision, () => {
52116
52116
  g.value = null;
52117
52117
  }), R(() => o.value.id, () => {
@@ -52198,13 +52198,13 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
52198
52198
  }
52199
52199
  return (e, n) => {
52200
52200
  let i = sA;
52201
- return U(), W("div", oQ, [
52201
+ return U(), W("div", sQ, [
52202
52202
  K("ul", {
52203
52203
  ref_key: "list",
52204
52204
  ref: m,
52205
52205
  class: j(["pb-members", { "is-dragging": h.value }])
52206
52206
  }, [
52207
- (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", {
52207
+ (U(!0), W(H, null, B(y.value, (t, r) => (U(), W(H, { key: t.key }, [t.outside ? (U(), W("li", cQ, [K("span", null, P(u[s.value.kind]), 1)])) : Y("", !0), K("li", {
52208
52208
  class: j(["pb-member speaking-order-row", [
52209
52209
  `is-${t.state}`,
52210
52210
  E(r),
@@ -52225,19 +52225,19 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
52225
52225
  onPointercancel: n[0] ||= (e) => w(e, !0),
52226
52226
  onLostpointercapture: n[1] ||= (e) => w(e, !0),
52227
52227
  onKeydown: [fu((e) => ee(e, b(r), -1), ["up"]), fu((e) => ee(e, b(r), 1), ["down"])]
52228
- }, [K("span", uQ, P(t.place), 1), q(i, {
52228
+ }, [K("span", dQ, P(t.place), 1), q(i, {
52229
52229
  name: "i-lucide-grip-vertical",
52230
52230
  class: "speaking-order-handle"
52231
- })], 40, lQ)) : t.state === "done" ? (U(), W("span", dQ, [q(i, { name: "i-lucide-check" })])) : (U(), W("span", {
52231
+ })], 40, uQ)) : t.state === "done" ? (U(), W("span", fQ, [q(i, { name: "i-lucide-check" })])) : (U(), W("span", {
52232
52232
  key: 2,
52233
52233
  class: "speaking-order-place",
52234
52234
  title: t.state === "speaking" ? "正在发言" : void 0
52235
- }, P(t.place || ""), 9, fQ)), V(e.$slots, "default", {
52235
+ }, P(t.place || ""), 9, pQ)), V(e.$slots, "default", {
52236
52236
  item: t,
52237
52237
  place: t.place
52238
- }, void 0, !0)], 10, cQ)], 64))), 128)),
52239
- 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),
52240
- t.away.length ? (U(), W("li", mQ, [...n[2] ||= [K("span", null, "已离开", -1)]])) : Y("", !0),
52238
+ }, void 0, !0)], 10, lQ)], 64))), 128)),
52239
+ s.value.later?.length ? (U(), W("li", mQ, [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),
52240
+ t.away.length ? (U(), W("li", hQ, [...n[2] ||= [K("span", null, "已离开", -1)]])) : Y("", !0),
52241
52241
  (U(!0), W(H, null, B(t.away, (t) => (U(), W("li", {
52242
52242
  key: `away-${t}`,
52243
52243
  class: "pb-member speaking-order-row is-away"
@@ -52249,13 +52249,13 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
52249
52249
  place: 0
52250
52250
  }, void 0, !0)]))), 128))
52251
52251
  ], 2),
52252
- p.value === vQ ? (U(), W("p", hQ, P(p.value), 1)) : p.value ? (U(), W("p", gQ, P(p.value), 1)) : Y("", !0),
52253
- K("p", _Q, P(_.value), 1)
52252
+ p.value === yQ ? (U(), W("p", gQ, P(p.value), 1)) : p.value ? (U(), W("p", _Q, P(p.value), 1)) : Y("", !0),
52253
+ K("p", vQ, P(_.value), 1)
52254
52254
  ]);
52255
52255
  };
52256
52256
  }
52257
- }, [["__scopeId", "data-v-dc33a051"]]), bQ = ["dispatched", "started"], xQ = (e) => e.pending > 0 || bQ.includes(e.execution?.status);
52258
- function SQ(e, { view: t, act: n, describe: r }) {
52257
+ }, [["__scopeId", "data-v-dc33a051"]]), xQ = ["dispatched", "started"], SQ = (e) => e.pending > 0 || xQ.includes(e.execution?.status);
52258
+ function CQ(e, { view: t, act: n, describe: r }) {
52259
52259
  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 = {}) => ({
52260
52260
  label: t,
52261
52261
  icon: r,
@@ -52301,7 +52301,7 @@ function SQ(e, { view: t, act: n, describe: r }) {
52301
52301
  }] : []
52302
52302
  ],
52303
52303
  [
52304
- ...xQ(e) ? [l("停止", "i-lucide-square", "interrupt")] : [],
52304
+ ...SQ(e) ? [l("停止", "i-lucide-square", "interrupt")] : [],
52305
52305
  ...s && e.pending ? [{
52306
52306
  label: "复制阅读通知",
52307
52307
  icon: "i-lucide-copy",
@@ -52322,54 +52322,54 @@ function SQ(e, { view: t, act: n, describe: r }) {
52322
52322
  }
52323
52323
  //#endregion
52324
52324
  //#region frontend/FreeBoard.vue
52325
- var CQ = { class: "progress-board is-docked" }, wQ = { class: "pb-header" }, TQ = { class: "pb-mode" }, EQ = { class: "pb-status-line" }, DQ = { role: "status" }, OQ = {
52325
+ var wQ = { class: "progress-board is-docked" }, TQ = { class: "pb-header" }, EQ = { class: "pb-mode" }, DQ = { class: "pb-status-line" }, OQ = { role: "status" }, kQ = {
52326
52326
  key: 0,
52327
52327
  class: "pb-status-detail"
52328
- }, kQ = {
52328
+ }, AQ = {
52329
52329
  key: 1,
52330
52330
  class: "pb-chain-actions"
52331
- }, AQ = { class: "pb-meters" }, jQ = { class: "pb-meter-label" }, MQ = {
52331
+ }, jQ = { class: "pb-meters" }, MQ = { class: "pb-meter-label" }, NQ = {
52332
52332
  key: 0,
52333
52333
  class: "pb-bar"
52334
- }, NQ = {
52334
+ }, PQ = {
52335
52335
  key: 2,
52336
52336
  class: "pb-section",
52337
52337
  "aria-label": "当前任务"
52338
- }, PQ = {
52338
+ }, FQ = {
52339
52339
  class: "pb-section",
52340
52340
  "aria-label": "发言顺序"
52341
- }, FQ = { class: "pb-member-body" }, IQ = ["title"], LQ = ["title"], RQ = ["title"], zQ = ["title"], BQ = {
52341
+ }, IQ = { class: "pb-member-body" }, LQ = ["title"], RQ = ["title"], zQ = ["title"], BQ = ["title"], VQ = {
52342
52342
  key: 0,
52343
52343
  role: "alert",
52344
52344
  class: "pb-free-note is-error"
52345
- }, VQ = {
52345
+ }, HQ = {
52346
52346
  key: 1,
52347
52347
  role: "status",
52348
52348
  class: "pb-free-note"
52349
- }, HQ = {
52349
+ }, UQ = {
52350
52350
  key: 2,
52351
52351
  role: "alert",
52352
52352
  class: "pb-free-note is-error"
52353
- }, UQ = {
52353
+ }, WQ = {
52354
52354
  key: 3,
52355
52355
  role: "status",
52356
52356
  class: "pb-free-note"
52357
- }, WQ = {
52357
+ }, GQ = {
52358
52358
  key: 3,
52359
52359
  class: "pb-section",
52360
52360
  "aria-label": "头脑风暴"
52361
- }, GQ = ["onClick"], KQ = {
52361
+ }, KQ = ["onClick"], qQ = {
52362
52362
  key: 4,
52363
52363
  class: "pb-actions",
52364
52364
  "aria-label": "操作"
52365
- }, qQ = {
52365
+ }, JQ = {
52366
52366
  key: 0,
52367
52367
  class: "pb-free-note"
52368
- }, JQ = {
52368
+ }, YQ = {
52369
52369
  key: 5,
52370
52370
  class: "pb-section",
52371
52371
  "aria-label": "执行耗时"
52372
- }, YQ = { class: "pb-timing-heading" }, XQ = { class: "pb-timings" }, ZQ = { class: "pb-timing-who" }, QQ = { class: "pb-timing-stages" }, $Q = 90, e$ = /*#__PURE__*/ YH({
52372
+ }, XQ = { class: "pb-timing-heading" }, ZQ = { class: "pb-timings" }, QQ = { class: "pb-timing-who" }, $Q = { class: "pb-timing-stages" }, e$ = 90, t$ = /*#__PURE__*/ YH({
52373
52373
  __name: "FreeBoard",
52374
52374
  setup(e) {
52375
52375
  let { view: t, bridge: n, act: r, pending: i } = xr("discussion"), a = ["dispatched", "started"], o = {
@@ -52384,7 +52384,7 @@ var CQ = { class: "progress-board is-docked" }, wQ = { class: "pb-header" }, TQ
52384
52384
  online: "网页代发"
52385
52385
  }, 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;
52386
52386
  function _(e) {
52387
- 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";
52387
+ return e.status === "away" ? "neutral" : g(e) ? "warning" : e.execution?.stale ? "error" : SQ(e) ? e.pending && !a.includes(e.execution?.status) ? "warning" : "primary" : e.execution?.status === "failed" ? "error" : "success";
52388
52388
  }
52389
52389
  function v(e, t) {
52390
52390
  if (e.status === "away") return "已离开:不会被唤醒,可请回";
@@ -52416,7 +52416,7 @@ var CQ = { class: "progress-board is-docked" }, wQ = { class: "pb-header" }, TQ
52416
52416
  title: "已存档",
52417
52417
  detail: ""
52418
52418
  };
52419
- let e = (l.value.members || []).filter(xQ);
52419
+ let e = (l.value.members || []).filter(SQ);
52420
52420
  if (e.some((e) => e.execution?.stale)) return {
52421
52421
  tone: "error",
52422
52422
  title: "执行失联",
@@ -52484,7 +52484,7 @@ var CQ = { class: "progress-board is-docked" }, wQ = { class: "pb-header" }, TQ
52484
52484
  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)}分`;
52485
52485
  }
52486
52486
  function re(e) {
52487
- return SQ(e, {
52487
+ return CQ(e, {
52488
52488
  view: t.value,
52489
52489
  act: r,
52490
52490
  describe: (e) => {
@@ -52509,16 +52509,16 @@ var CQ = { class: "progress-board is-docked" }, wQ = { class: "pb-header" }, TQ
52509
52509
  se.value = !1;
52510
52510
  }), (e, i) => {
52511
52511
  let a = MA, s = pA, g = sA, E = CH;
52512
- return U(), W("div", CQ, [
52513
- K("header", wQ, [K("strong", null, P(u.value ? "讨论进度" : "自由协作"), 1), K("span", TQ, P(f.value ? `${I(n).display_name(f.value.name)} 主持` : "无主持人"), 1)]),
52514
- u.value ? (U(), G(aQ, { key: 0 })) : (U(), W("section", {
52512
+ return U(), W("div", wQ, [
52513
+ K("header", TQ, [K("strong", null, P(u.value ? "讨论进度" : "自由协作"), 1), K("span", EQ, P(f.value ? `${I(n).display_name(f.value.name)} 主持` : "无主持人"), 1)]),
52514
+ u.value ? (U(), G(oQ, { key: 0 })) : (U(), W("section", {
52515
52515
  key: 1,
52516
52516
  class: j(["pb-status", `is-${T.value.tone}`]),
52517
52517
  "aria-label": "房间状态"
52518
52518
  }, [
52519
- K("div", EQ, [i[6] ||= K("span", { class: "pb-dot" }, null, -1), K("strong", DQ, P(T.value.title), 1)]),
52520
- T.value.detail ? (U(), W("p", OQ, P(T.value.detail), 1)) : Y("", !0),
52521
- 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, {
52519
+ K("div", DQ, [i[6] ||= K("span", { class: "pb-dot" }, null, -1), K("strong", OQ, P(T.value.title), 1)]),
52520
+ T.value.detail ? (U(), W("p", kQ, P(T.value.detail), 1)) : Y("", !0),
52521
+ T.value.continue_chain && I(t).access?.can_manage ? (U(), W("div", AQ, [(U(!0), W(H, null, B(S.value, (e) => (U(), G(a, {
52522
52522
  key: e,
52523
52523
  label: `继续 ${e} 轮`,
52524
52524
  icon: "i-lucide-play",
@@ -52534,24 +52534,24 @@ var CQ = { class: "progress-board is-docked" }, wQ = { class: "pb-header" }, TQ
52534
52534
  "disabled",
52535
52535
  "onClick"
52536
52536
  ]))), 128))])) : Y("", !0),
52537
- K("div", AQ, [(U(!0), W(H, null, B(ee.value, (e) => (U(), W("div", {
52537
+ K("div", jQ, [(U(!0), W(H, null, B(ee.value, (e) => (U(), W("div", {
52538
52538
  key: e.label,
52539
52539
  class: "pb-meter"
52540
- }, [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))])
52540
+ }, [K("div", MQ, [K("span", null, P(e.label), 1), K("b", null, P(e.text), 1)]), e.ratio === null ? Y("", !0) : (U(), W("div", NQ, [K("i", { style: A({ width: `${Math.min(100, Math.round(e.ratio * 100))}%` }) }, null, 4)]))]))), 128))])
52541
52541
  ], 2)),
52542
- D.value && !u.value ? (U(), W("section", NQ, [
52542
+ D.value && !u.value ? (U(), W("section", PQ, [
52543
52543
  i[7] ||= K("h4", null, "当前任务", -1),
52544
52544
  K("p", { class: j(["pb-focus", { "is-expanded": O.value }]) }, P(D.value), 3),
52545
- D.value.length > $Q ? (U(), W("button", {
52545
+ D.value.length > e$ ? (U(), W("button", {
52546
52546
  key: 0,
52547
52547
  type: "button",
52548
52548
  class: "pb-link",
52549
52549
  onClick: i[0] ||= (e) => O.value = !O.value
52550
52550
  }, P(O.value ? "收起" : "展开"), 1)) : Y("", !0)
52551
52551
  ])) : Y("", !0),
52552
- K("section", PQ, [
52552
+ K("section", FQ, [
52553
52553
  i[9] ||= K("h4", null, "发言顺序", -1),
52554
- q(yQ, {
52554
+ q(bQ, {
52555
52555
  away: m.value,
52556
52556
  round: d.value
52557
52557
  }, {
@@ -52568,7 +52568,7 @@ var CQ = { class: "progress-board is-docked" }, wQ = { class: "pb-header" }, TQ
52568
52568
  "alt",
52569
52569
  "class"
52570
52570
  ]),
52571
- K("div", FQ, [
52571
+ K("div", IQ, [
52572
52572
  K("div", {
52573
52573
  class: "pb-member-name",
52574
52574
  title: c.value.descriptions?.[r.name] || void 0
@@ -52579,17 +52579,17 @@ var CQ = { class: "progress-board is-docked" }, wQ = { class: "pb-header" }, TQ
52579
52579
  name: "i-lucide-crown",
52580
52580
  title: "主持人"
52581
52581
  })) : Y("", !0),
52582
- K("small", { title: b(r) || void 0 }, P(y(r)), 9, LQ)
52583
- ], 8, IQ),
52582
+ K("small", { title: b(r) || void 0 }, P(y(r)), 9, RQ)
52583
+ ], 8, LQ),
52584
52584
  x(r) ? (U(), W("div", {
52585
52585
  key: 0,
52586
52586
  class: "pb-member-model",
52587
52587
  title: I(n).participant_session_hint(r.name, c.value, I(t).launch.room_models)
52588
- }, P(x(r)), 9, RQ)) : Y("", !0),
52588
+ }, P(x(r)), 9, zQ)) : Y("", !0),
52589
52589
  K("div", { class: j(["pb-member-status", `is-${_(r)}`]) }, [i[8] ||= K("span", { class: "pb-dot" }, null, -1), K("span", {
52590
52590
  class: "pb-member-status-text",
52591
52591
  title: r.execution?.status === "failed" ? r.execution.result : void 0
52592
- }, P(v(r, e.state)), 9, zQ)], 2)
52592
+ }, P(v(r, e.state)), 9, BQ)], 2)
52593
52593
  ]),
52594
52594
  q(E, {
52595
52595
  items: re(r),
@@ -52613,8 +52613,8 @@ var CQ = { class: "progress-board is-docked" }, wQ = { class: "pb-header" }, TQ
52613
52613
  key: e.executions.join("-"),
52614
52614
  class: "pb-free-note is-warning"
52615
52615
  }, "可能冲突:" + P(e.members.map((e) => I(n).display_name(e)).join(" 与 ")) + " 的重叠执行观察到 " + P(e.files.join("、")) + " 变化;修改者未确认。", 1))), 128)),
52616
- 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),
52617
- 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),
52616
+ I(t).free_error ? (U(), W("p", VQ, P(I(t).free_error), 1)) : I(t).free_notice ? (U(), W("p", HQ, P(I(t).free_notice), 1)) : Y("", !0),
52617
+ I(t).access?.error ? (U(), W("p", UQ, P(I(t).access.error), 1)) : I(t).access?.notice ? (U(), W("p", WQ, P(I(t).access.notice), 1)) : Y("", !0),
52618
52618
  c.value.archived ? Y("", !0) : (U(), G(a, {
52619
52619
  key: 4,
52620
52620
  icon: "i-lucide-plus",
@@ -52626,13 +52626,13 @@ var CQ = { class: "progress-board is-docked" }, wQ = { class: "pb-header" }, TQ
52626
52626
  onClick: i[1] ||= (e) => ie.value = !0
52627
52627
  }))
52628
52628
  ]),
52629
- 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", {
52629
+ c.value.linked_rooms?.length ? (U(), W("section", GQ, [i[10] ||= K("h4", null, "头脑风暴", -1), (U(!0), W(H, null, B(c.value.linked_rooms, (e) => (U(), W("button", {
52630
52630
  key: e.id,
52631
52631
  type: "button",
52632
52632
  class: "pb-link pb-free-linked",
52633
52633
  onClick: (t) => I(r)("room", e.id)
52634
- }, [J(P(e.title), 1), K("small", null, P(I(n).phases[e.phase] || e.phase), 1)], 8, GQ))), 128))])) : Y("", !0),
52635
- !c.value.archived && !u.value ? (U(), W("section", KQ, [q(a, {
52634
+ }, [J(P(e.title), 1), K("small", null, P(I(n).phases[e.phase] || e.phase), 1)], 8, KQ))), 128))])) : Y("", !0),
52635
+ !c.value.archived && !u.value ? (U(), W("section", qQ, [q(a, {
52636
52636
  icon: "i-lucide-messages-square",
52637
52637
  label: "开启讨论",
52638
52638
  size: "sm",
@@ -52642,13 +52642,13 @@ var CQ = { class: "progress-board is-docked" }, wQ = { class: "pb-header" }, TQ
52642
52642
  title: "由主持人推进成员轮流发言,到上限或结束后房间回到自由协作",
52643
52643
  disabled: !ce.value,
52644
52644
  onClick: i[2] ||= (e) => se.value = !0
52645
- }, null, 8, ["disabled"]), ce.value ? Y("", !0) : (U(), W("p", qQ, "开启讨论需要一位由本机唤醒的 AI 主持人。"))])) : Y("", !0),
52646
- 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),
52647
- q(qZ, {
52645
+ }, null, 8, ["disabled"]), ce.value ? Y("", !0) : (U(), W("p", JQ, "开启讨论需要一位由本机唤醒的 AI 主持人。"))])) : Y("", !0),
52646
+ te.value.items.length ? (U(), W("section", YQ, [K("div", XQ, [i[11] ||= K("h4", null, "耗时", -1), K("small", null, "共 " + P(te.value.items.length) + " 次执行 · " + P(ne(te.value.total)), 1)]), K("details", ZQ, [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", QQ, [J("#" + P(e.id) + " " + P(h(e.member_id)), 1), K("small", null, P(o[e.status] || e.status), 1)]), K("span", $Q, [K("span", null, "用时 " + P(ne(e.seconds)), 1)])]))), 128))])])])) : Y("", !0),
52647
+ q(JZ, {
52648
52648
  open: se.value,
52649
52649
  "onUpdate:open": i[3] ||= (e) => se.value = e
52650
52650
  }, null, 8, ["open"]),
52651
- q(WZ, {
52651
+ q(GZ, {
52652
52652
  open: ie.value,
52653
52653
  "onUpdate:open": i[4] ||= (e) => ie.value = e,
52654
52654
  description: "新成员加入后不打断其他成员;点卡片翻面可设置软件、模型、项目权限和要续接的已有会话。"
@@ -52675,7 +52675,7 @@ var CQ = { class: "progress-board is-docked" }, wQ = { class: "pb-header" }, TQ
52675
52675
  ]);
52676
52676
  };
52677
52677
  }
52678
- }, [["__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$ = {
52678
+ }, [["__scopeId", "data-v-81d8efa9"]]), n$ = { class: "progress-panel-anchor" }, r$ = ["aria-expanded", "aria-label"], i$ = { class: "progress-chip-text" }, a$ = { class: "progress-chip-rounds" }, o$ = {
52679
52679
  __name: "ProgressPanel",
52680
52680
  setup(e) {
52681
52681
  let { view: t, bridge: n } = xr("discussion"), r = /* @__PURE__ */ F(!1), i = Z(() => t.value.room), a = Z(() => i.value.limits || {}), o = Z(() => {
@@ -52702,7 +52702,7 @@ var CQ = { class: "progress-board is-docked" }, wQ = { class: "pb-header" }, TQ
52702
52702
  }), 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}`);
52703
52703
  return (e, t) => {
52704
52704
  let n = $V, a = NV;
52705
- return U(), W("div", t$, [q(n, { text: "查看讨论进度" }, {
52705
+ return U(), W("div", n$, [q(n, { text: "查看讨论进度" }, {
52706
52706
  default: L(() => [K("button", {
52707
52707
  type: "button",
52708
52708
  class: j(["progress-chip", `is-${o.value.tone}`]),
@@ -52710,7 +52710,7 @@ var CQ = { class: "progress-board is-docked" }, wQ = { class: "pb-header" }, TQ
52710
52710
  "aria-expanded": r.value,
52711
52711
  "aria-label": `查看讨论进度:${c.value}`,
52712
52712
  onClick: t[0] ||= (e) => r.value = !0
52713
- }, [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$)]),
52713
+ }, [t[2] ||= K("span", { class: "progress-dot" }, null, -1), K("span", i$, [J(P(o.value.title), 1), K("span", a$, " · " + P(s.value), 1)])], 10, r$)]),
52714
52714
  _: 1
52715
52715
  }), q(a, {
52716
52716
  open: r.value,
@@ -52723,36 +52723,36 @@ var CQ = { class: "progress-board is-docked" }, wQ = { class: "pb-header" }, TQ
52723
52723
  body: "progress-drawer-body"
52724
52724
  }
52725
52725
  }, {
52726
- body: L(() => [q(e$)]),
52726
+ body: L(() => [q(t$)]),
52727
52727
  _: 1
52728
52728
  }, 8, ["open", "description"])]);
52729
52729
  };
52730
52730
  }
52731
- }, o$ = {
52731
+ }, s$ = {
52732
52732
  class: "merged-section discussion-history",
52733
52733
  "aria-label": "讨论记录"
52734
- }, s$ = {
52734
+ }, c$ = {
52735
52735
  key: 0,
52736
52736
  class: "fine-print"
52737
- }, c$ = { class: "history-timeline" }, l$ = {
52737
+ }, l$ = { class: "history-timeline" }, u$ = {
52738
52738
  key: 0,
52739
52739
  class: "history-free"
52740
- }, u$ = {
52740
+ }, d$ = {
52741
52741
  key: 1,
52742
52742
  class: "history-discussion"
52743
- }, d$ = { class: "history-meta" }, f$ = {
52743
+ }, f$ = { class: "history-meta" }, p$ = {
52744
52744
  key: 0,
52745
52745
  class: "fine-print"
52746
- }, p$ = {
52746
+ }, m$ = {
52747
52747
  key: 1,
52748
52748
  class: "fine-print"
52749
- }, m$ = {
52749
+ }, h$ = {
52750
52750
  key: 2,
52751
52751
  class: "history-conclusion"
52752
- }, h$ = ["onClick"], g$ = ["innerHTML"], _$ = {
52752
+ }, g$ = ["onClick"], _$ = ["innerHTML"], v$ = {
52753
52753
  key: 1,
52754
52754
  class: "fine-print"
52755
- }, v$ = ["aria-expanded", "onClick"], y$ = ["innerHTML"], b$ = /*#__PURE__*/ YH({
52755
+ }, y$ = ["aria-expanded", "onClick"], b$ = ["innerHTML"], x$ = /*#__PURE__*/ YH({
52756
52756
  __name: "DiscussionHistory",
52757
52757
  emits: ["detail"],
52758
52758
  setup(e) {
@@ -52810,16 +52810,16 @@ var CQ = { class: "progress-board is-docked" }, wQ = { class: "pb-header" }, TQ
52810
52810
  }
52811
52811
  return (e, t) => {
52812
52812
  let l = WV, d = sA;
52813
- return U(), W("section", o$, [
52813
+ return U(), W("section", s$, [
52814
52814
  t[2] ||= K("div", { class: "page-heading" }, [K("div", null, [K("h2", null, "讨论记录"), K("p", null, "每场讨论及其结束时的结论,最新的在上;自由协作的消息按段汇总。")])], -1),
52815
- i.value.discussions?.length ? Y("", !0) : (U(), W("p", s$, "还没有开启过讨论。")),
52816
- K("ol", c$, [(U(!0), W(H, null, B(c.value, (i) => (U(), W("li", {
52815
+ i.value.discussions?.length ? Y("", !0) : (U(), W("p", c$, "还没有开启过讨论。")),
52816
+ K("ol", l$, [(U(!0), W(H, null, B(c.value, (i) => (U(), W("li", {
52817
52817
  key: i.key,
52818
52818
  class: j(`is-${i.kind}`)
52819
52819
  }, [t[1] ||= K("span", {
52820
52820
  class: "history-dot",
52821
52821
  "aria-hidden": "true"
52822
- }, null, -1), i.kind === "free" ? (U(), W("p", l$, "自由协作 · " + P(i.count) + " 条消息", 1)) : (U(), W("article", u$, [
52822
+ }, null, -1), i.kind === "free" ? (U(), W("p", u$, "自由协作 · " + P(i.count) + " 条消息", 1)) : (U(), W("article", d$, [
52823
52823
  K("header", null, [K("h3", null, [K("small", null, "讨论 " + P(i.number), 1), J(P(i.goal || "未填写目标"), 1)]), q(l, {
52824
52824
  color: r[i.status]?.color || "neutral",
52825
52825
  variant: "subtle",
@@ -52828,74 +52828,74 @@ var CQ = { class: "progress-board is-docked" }, wQ = { class: "pb-header" }, TQ
52828
52828
  default: L(() => [J(P(r[i.status]?.label || i.status), 1)]),
52829
52829
  _: 2
52830
52830
  }, 1032, ["color"])]),
52831
- K("p", d$, [
52831
+ K("p", f$, [
52832
52832
  J(P(s(i.created_at)) + " 开始 · " + P(i.count) + " 条消息", 1),
52833
52833
  i.status === "concluded" && i.state !== null ? (U(), W(H, { key: 0 }, [J(" · " + P(I(n).stop_reason_label(i)), 1)], 64)) : Y("", !0),
52834
52834
  i.concluded_at ? (U(), W(H, { key: 1 }, [J(" · " + P(s(i.concluded_at)) + " 结束", 1)], 64)) : Y("", !0)
52835
52835
  ]),
52836
- i.result?.current ? (U(), W("p", f$, "结论即上方的当前共识。")) : i.result?.missing ? (U(), W("p", p$, "这场讨论结束于结论快照功能之前,没有保存当时的结论。")) : i.result ? (U(), W("div", m$, [
52836
+ i.result?.current ? (U(), W("p", p$, "结论即上方的当前共识。")) : i.result?.missing ? (U(), W("p", m$, "这场讨论结束于结论快照功能之前,没有保存当时的结论。")) : i.result ? (U(), W("div", h$, [
52837
52837
  K("small", null, [J(P(i.result.label), 1), i.result.until ? (U(), W("button", {
52838
52838
  key: 0,
52839
52839
  type: "button",
52840
52840
  class: "subtle-link",
52841
52841
  onClick: (t) => e.$emit("detail", i.result.until)
52842
- }, "整理至 #" + P(i.result.until), 9, h$)) : Y("", !0)]),
52842
+ }, "整理至 #" + P(i.result.until), 9, g$)) : Y("", !0)]),
52843
52843
  i.result.brief ? (U(), W("div", {
52844
52844
  key: 0,
52845
52845
  class: "markdown-body",
52846
52846
  innerHTML: o(i.result.brief)
52847
- }, null, 8, g$)) : i.result.state ? Y("", !0) : (U(), W("p", _$, "主持人没有留下简报或共识。")),
52847
+ }, null, 8, _$)) : i.result.state ? Y("", !0) : (U(), W("p", v$, "主持人没有留下简报或共识。")),
52848
52848
  i.result.state ? (U(), W(H, { key: 2 }, [K("button", {
52849
52849
  type: "button",
52850
52850
  class: "history-toggle",
52851
52851
  "aria-expanded": a.value.has(i.id),
52852
52852
  onClick: (e) => u(i.id)
52853
- }, [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", {
52853
+ }, [t[0] ||= J("详细共识与进度", -1), q(d, { name: a.value.has(i.id) ? "i-lucide-chevron-up" : "i-lucide-chevron-down" }, null, 8, ["name"])], 8, y$), a.value.has(i.id) ? (U(), W("div", {
52854
52854
  key: 0,
52855
52855
  class: "markdown-body history-state",
52856
52856
  innerHTML: o(i.result.state)
52857
- }, null, 8, y$)) : Y("", !0)], 64)) : Y("", !0)
52857
+ }, null, 8, b$)) : Y("", !0)], 64)) : Y("", !0)
52858
52858
  ])) : Y("", !0)
52859
52859
  ]))], 2))), 128))])
52860
52860
  ]);
52861
52861
  };
52862
52862
  }
52863
- }, [["__scopeId", "data-v-8daffdea"]]), x$ = {
52863
+ }, [["__scopeId", "data-v-8daffdea"]]), S$ = {
52864
52864
  class: "merged-section room-overview",
52865
52865
  "aria-label": "成员与设置"
52866
- }, S$ = { class: "page-heading" }, C$ = { class: "overview-section" }, w$ = {
52866
+ }, C$ = { class: "page-heading" }, w$ = { class: "overview-section" }, T$ = {
52867
52867
  key: 0,
52868
52868
  class: "overview-local",
52869
52869
  role: "status"
52870
- }, T$ = {
52870
+ }, E$ = {
52871
52871
  class: "member-cards",
52872
52872
  "aria-label": "成员"
52873
- }, E$ = { class: "member-card-head" }, D$ = { class: "member-card-name" }, O$ = ["title"], k$ = { class: "member-card-facts" }, A$ = ["aria-label", "title"], j$ = [
52873
+ }, D$ = { class: "member-card-head" }, O$ = { class: "member-card-name" }, k$ = ["title"], A$ = { class: "member-card-facts" }, j$ = ["aria-label", "title"], M$ = [
52874
52874
  "aria-checked",
52875
52875
  "disabled",
52876
52876
  "onClick"
52877
- ], M$ = { key: 1 }, N$ = ["title"], P$ = [
52877
+ ], N$ = { key: 1 }, P$ = ["title"], F$ = [
52878
52878
  "aria-label",
52879
52879
  "aria-busy",
52880
52880
  "title"
52881
- ], F$ = [
52881
+ ], I$ = [
52882
52882
  "aria-checked",
52883
52883
  "title",
52884
52884
  "disabled",
52885
52885
  "onClick"
52886
- ], I$ = ["title"], L$ = ["aria-label"], R$ = { key: 0 }, z$ = {
52886
+ ], L$ = ["title"], R$ = ["aria-label"], z$ = { key: 0 }, B$ = {
52887
52887
  key: 1,
52888
52888
  class: "overview-result is-error",
52889
52889
  role: "alert"
52890
- }, B$ = {
52890
+ }, V$ = {
52891
52891
  key: 2,
52892
52892
  class: "overview-result",
52893
52893
  role: "status"
52894
- }, V$ = ["role"], H$ = { class: "overview-section" }, U$ = { class: "overview-settings" }, W$ = { key: 0 }, G$ = {
52894
+ }, H$ = ["role"], U$ = { class: "overview-section" }, W$ = { class: "overview-settings" }, G$ = { key: 0 }, K$ = {
52895
52895
  key: 0,
52896
52896
  role: "status",
52897
52897
  class: "overview-saved"
52898
- }, K$ = { key: 1 }, q$ = { key: 1 }, J$ = { class: "overview-address" }, Y$ = { key: 2 }, X$ = 2e3, Z$ = "设为主持人", Q$ = /*#__PURE__*/ YH({
52898
+ }, q$ = { key: 1 }, J$ = { key: 1 }, Y$ = { class: "overview-address" }, X$ = { key: 2 }, Z$ = 2e3, Q$ = "设为主持人", $$ = /*#__PURE__*/ YH({
52899
52899
  __name: "RoomOverview",
52900
52900
  setup(e) {
52901
52901
  let { view: t, bridge: n, act: r } = xr("discussion"), i = {
@@ -52930,7 +52930,7 @@ var CQ = { class: "progress-board is-docked" }, wQ = { class: "pb-header" }, TQ
52930
52930
  try {
52931
52931
  await n.set_chain_rounds(e), v.value = !0, setTimeout(() => {
52932
52932
  v.value = !1;
52933
- }, X$);
52933
+ }, Z$);
52934
52934
  } catch {
52935
52935
  _.value = u.value.free?.max_rounds || 0;
52936
52936
  } finally {
@@ -53040,7 +53040,7 @@ var CQ = { class: "progress-board is-docked" }, wQ = { class: "pb-header" }, TQ
53040
53040
  }
53041
53041
  let ee = Z(() => p.value ? "—" : f.value.scheduler ? `${t.value.launch.scheduler_providers?.[f.value.scheduler.provider]?.label || f.value.scheduler.provider} · ${f.value.scheduler.model}` : "未开启");
53042
53042
  function D(e) {
53043
- let [n, i, a] = SQ(C(e), {
53043
+ let [n, i, a] = CQ(C(e), {
53044
53044
  view: t.value,
53045
53045
  act: r,
53046
53046
  describe: (e) => {
@@ -53049,8 +53049,8 @@ var CQ = { class: "progress-board is-docked" }, wQ = { class: "pb-header" }, TQ
53049
53049
  });
53050
53050
  return d.value ? {
53051
53051
  taking_part: n,
53052
- host: i.find((e) => e.label === Z$) || null,
53053
- place: [...i.filter((e) => e.label !== Z$), ...a]
53052
+ host: i.find((e) => e.label === Q$) || null,
53053
+ place: [...i.filter((e) => e.label !== Q$), ...a]
53054
53054
  } : {
53055
53055
  taking_part: n,
53056
53056
  host: null,
@@ -53077,8 +53077,8 @@ var CQ = { class: "progress-board is-docked" }, wQ = { class: "pb-header" }, TQ
53077
53077
  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 }) : "");
53078
53078
  return (e, i) => {
53079
53079
  let s = MA, l = pA, oe = sA, k = WV;
53080
- return U(), W("section", x$, [
53081
- K("div", S$, [i[5] ||= K("div", null, [K("h2", null, "成员与设置"), K("p", null, "成员的接入、权限与全部操作,以及房间的协作设置;右栏成员菜单是同样操作的快捷入口。")], -1), u.value.archived ? Y("", !0) : (U(), G(s, {
53080
+ return U(), W("section", S$, [
53081
+ K("div", C$, [i[5] ||= K("div", null, [K("h2", null, "成员与设置"), K("p", null, "成员的接入、权限与全部操作,以及房间的协作设置;右栏成员菜单是同样操作的快捷入口。")], -1), u.value.archived ? Y("", !0) : (U(), G(s, {
53082
53082
  key: 0,
53083
53083
  icon: "i-lucide-plus",
53084
53084
  label: "邀请 AI 加入",
@@ -53088,19 +53088,19 @@ var CQ = { class: "progress-board is-docked" }, wQ = { class: "pb-header" }, TQ
53088
53088
  disabled: !I(t).access?.can_manage,
53089
53089
  onClick: i[0] ||= (e) => O.value = !0
53090
53090
  }, null, 8, ["disabled"]))]),
53091
- K("section", C$, [
53091
+ K("section", w$, [
53092
53092
  i[9] ||= K("h3", null, "成员", -1),
53093
- p.value ? (U(), W("p", w$, [J(P(p.value.text), 1), p.value.retry ? (U(), W("button", {
53093
+ p.value ? (U(), W("p", T$, [J(P(p.value.text), 1), p.value.retry ? (U(), W("button", {
53094
53094
  key: 0,
53095
53095
  type: "button",
53096
53096
  class: "subtle-link",
53097
53097
  onClick: i[1] ||= (e) => I(n).reload_room_models()
53098
53098
  }, "重试")) : Y("", !0)])) : Y("", !0),
53099
- K("ul", T$, [(U(!0), W(H, null, B(x.value, (e) => (U(), W("li", {
53099
+ K("ul", E$, [(U(!0), W(H, null, B(x.value, (e) => (U(), W("li", {
53100
53100
  key: e.name,
53101
53101
  class: "member-card"
53102
53102
  }, [
53103
- K("header", E$, [
53103
+ K("header", D$, [
53104
53104
  q(l, {
53105
53105
  src: I(n).identities[e.name]?.icon,
53106
53106
  text: I(n).identities[e.name]?.initials,
@@ -53113,14 +53113,14 @@ var CQ = { class: "progress-board is-docked" }, wQ = { class: "pb-header" }, TQ
53113
53113
  "alt",
53114
53114
  "class"
53115
53115
  ]),
53116
- K("div", D$, [K("strong", null, [J(P(I(n).display_name(e.name)), 1), e.role === "host" ? (U(), G(oe, {
53116
+ K("div", O$, [K("strong", null, [J(P(I(n).display_name(e.name)), 1), e.role === "host" ? (U(), G(oe, {
53117
53117
  key: 0,
53118
53118
  name: "i-lucide-crown",
53119
53119
  title: "主持人"
53120
53120
  })) : Y("", !0)]), u.value.descriptions?.[e.name] ? (U(), W("small", {
53121
53121
  key: 0,
53122
53122
  title: u.value.descriptions[e.name]
53123
- }, P(u.value.descriptions[e.name]), 9, O$)) : Y("", !0)]),
53123
+ }, P(u.value.descriptions[e.name]), 9, k$)) : Y("", !0)]),
53124
53124
  D(e).host ? (U(), G(s, {
53125
53125
  key: 0,
53126
53126
  icon: D(e).host.icon,
@@ -53145,7 +53145,7 @@ var CQ = { class: "progress-board is-docked" }, wQ = { class: "pb-header" }, TQ
53145
53145
  _: 2
53146
53146
  }, 1032, ["color"])
53147
53147
  ]),
53148
- K("dl", k$, [
53148
+ K("dl", A$, [
53149
53149
  K("div", null, [i[6] ||= K("dt", null, "接入", -1), K("dd", null, [S(C(e)).value ? (U(), W("div", {
53150
53150
  key: 0,
53151
53151
  class: j(["expert-card-modes overview-switch", { "is-locked": !S(C(e)).editable }]),
@@ -53159,11 +53159,11 @@ var CQ = { class: "progress-board is-docked" }, wQ = { class: "pb-header" }, TQ
53159
53159
  "aria-checked": S(C(e)).value === t.value,
53160
53160
  disabled: !S(C(e)).editable || !!h.value,
53161
53161
  onClick: (n) => w(e, t.value)
53162
- }, P(t.label), 9, j$)), 64))], 10, A$)) : (U(), W("span", M$, P(S(e).text), 1))])]),
53162
+ }, P(t.label), 9, M$)), 64))], 10, j$)) : (U(), W("span", N$, P(S(e).text), 1))])]),
53163
53163
  K("div", null, [i[7] ||= K("dt", null, "模型", -1), K("dd", {
53164
53164
  class: j(["overview-model", { "overview-muted": m(e.name) }]),
53165
53165
  title: I(n).participant_model(e.name, u.value, f.value) || void 0
53166
- }, P(e.access === "runner" ? I(n).participant_model(e.name, u.value, f.value) || "—" : "在它自己的会话里设置"), 11, N$)]),
53166
+ }, P(e.access === "runner" ? I(n).participant_model(e.name, u.value, f.value) || "—" : "在它自己的会话里设置"), 11, P$)]),
53167
53167
  K("div", null, [i[8] ||= K("dt", null, "项目文件", -1), K("dd", null, [T(e).value ? (U(), W("div", {
53168
53168
  key: 0,
53169
53169
  class: j(["expert-card-modes overview-switch", { "is-locked": !T(e).editable }]),
@@ -53179,11 +53179,11 @@ var CQ = { class: "progress-board is-docked" }, wQ = { class: "pb-header" }, TQ
53179
53179
  title: t.hint,
53180
53180
  disabled: !T(e).editable || !!h.value,
53181
53181
  onClick: (n) => E(e, t.value)
53182
- }, P(t.label), 9, F$))), 128))], 10, P$)) : (U(), W("span", {
53182
+ }, P(t.label), 9, I$))), 128))], 10, F$)) : (U(), W("span", {
53183
53183
  key: 1,
53184
53184
  class: "overview-muted",
53185
53185
  title: T(e).hint
53186
- }, P(T(e).text), 9, I$))])])
53186
+ }, P(T(e).text), 9, L$))])])
53187
53187
  ]),
53188
53188
  K("footer", {
53189
53189
  class: "member-card-actions",
@@ -53202,7 +53202,7 @@ var CQ = { class: "progress-board is-docked" }, wQ = { class: "pb-header" }, TQ
53202
53202
  "label",
53203
53203
  "disabled",
53204
53204
  "onClick"
53205
- ]))), 128))]), D(e).place.length ? (U(), W("div", R$, [(U(!0), W(H, null, B(D(e).place, (e) => (U(), G(s, {
53205
+ ]))), 128))]), D(e).place.length ? (U(), W("div", z$, [(U(!0), W(H, null, B(D(e).place, (e) => (U(), G(s, {
53206
53206
  key: e.label,
53207
53207
  icon: e.icon,
53208
53208
  label: e.label,
@@ -53217,26 +53217,26 @@ var CQ = { class: "progress-board is-docked" }, wQ = { class: "pb-header" }, TQ
53217
53217
  "color",
53218
53218
  "disabled",
53219
53219
  "onClick"
53220
- ]))), 128))])) : Y("", !0)], 8, L$)
53220
+ ]))), 128))])) : Y("", !0)], 8, R$)
53221
53221
  ]))), 128))]),
53222
- 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),
53222
+ I(t).access?.error || I(t).free_error ? (U(), W("p", B$, P(I(t).access?.error || I(t).free_error), 1)) : I(t).access?.notice || I(t).free_notice ? (U(), W("p", V$, P(I(t).access?.notice || I(t).free_notice), 1)) : Y("", !0),
53223
53223
  i[10] ||= K("p", { class: "overview-result" }, "复制说明或下载配置不代表 AI 已接入,以实际回答和运行记录为准。", -1),
53224
53224
  b.value.text ? (U(), W("p", {
53225
53225
  key: 3,
53226
53226
  class: j(["overview-result", { "is-error": b.value.tone === "error" }]),
53227
53227
  role: b.value.tone === "error" ? "alert" : "status"
53228
- }, P(b.value.text), 11, V$)) : Y("", !0)
53228
+ }, P(b.value.text), 11, H$)) : Y("", !0)
53229
53229
  ]),
53230
- K("section", H$, [i[17] ||= K("h3", null, "协作设置", -1), K("dl", U$, [
53230
+ K("section", U$, [i[17] ||= K("h3", null, "协作设置", -1), K("dl", W$, [
53231
53231
  K("div", null, [i[11] ||= K("dt", null, "主持人", -1), K("dd", null, P(u.value.host ? I(n).display_name(u.value.host) : "未指定"), 1)]),
53232
53232
  K("div", null, [i[12] ||= K("dt", null, "智能调度", -1), K("dd", null, P(ee.value), 1)]),
53233
- 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, {
53233
+ u.value.free?.max_rounds ? (U(), W("div", G$, [i[13] ||= K("dt", null, "连续派活上限", -1), K("dd", null, [I(t).access?.can_manage ? (U(), W(H, { key: 0 }, [q(WK, {
53234
53234
  "model-value": _.value,
53235
53235
  disabled: g.value,
53236
53236
  "onUpdate:modelValue": y
53237
- }, 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),
53238
- d.value ? Y("", !0) : (U(), W("div", q$, [i[14] ||= K("dt", null, "逐人追问", -1), K("dd", null, P(u.value.named_followup ? "开启:主持人每轮给每位专家写针对性追问" : "关闭:首轮后请专家回应上一轮观点"), 1)])),
53239
- K("div", null, [i[15] ||= K("dt", null, "阅读地址", -1), K("dd", J$, [K("code", null, P(ie.value), 1), q(s, {
53237
+ }, null, 8, ["model-value", "disabled"]), v.value ? (U(), W("small", K$, "已保存,进行中的任务链也按新值")) : Y("", !0)], 64)) : (U(), W("span", q$, "主持人收到你的一条消息后,最多连续派活 " + P(u.value.free.max_rounds) + " 轮(派活 → 成员回答 → 交回汇总为一轮),然后停下等你", 1))])])) : Y("", !0),
53238
+ d.value ? Y("", !0) : (U(), W("div", J$, [i[14] ||= K("dt", null, "逐人追问", -1), K("dd", null, P(u.value.named_followup ? "开启:主持人每轮给每位专家写针对性追问" : "关闭:首轮后请专家回应上一轮观点"), 1)])),
53239
+ K("div", null, [i[15] ||= K("dt", null, "阅读地址", -1), K("dd", Y$, [K("code", null, P(ie.value), 1), q(s, {
53240
53240
  icon: "i-lucide-copy",
53241
53241
  color: "neutral",
53242
53242
  variant: "ghost",
@@ -53244,9 +53244,9 @@ var CQ = { class: "progress-board is-docked" }, wQ = { class: "pb-header" }, TQ
53244
53244
  "aria-label": "复制阅读地址",
53245
53245
  onClick: i[2] ||= (e) => I(r)("copy", ie.value)
53246
53246
  })])]),
53247
- ae.value ? (U(), W("div", Y$, [i[16] ||= K("dt", null, "创建时间", -1), K("dd", null, P(ae.value), 1)])) : Y("", !0)
53247
+ ae.value ? (U(), W("div", X$, [i[16] ||= K("dt", null, "创建时间", -1), K("dd", null, P(ae.value), 1)])) : Y("", !0)
53248
53248
  ])]),
53249
- q(WZ, {
53249
+ q(GZ, {
53250
53250
  open: O.value,
53251
53251
  "onUpdate:open": i[3] ||= (e) => O.value = e,
53252
53252
  description: d.value ? "新成员加入后不打断其他成员;点卡片翻面可设置软件、模型、项目权限和要续接的已有会话。" : "新专家由程序按本机软件配置启动,或由你手动启动,加入本轮发言队列。"
@@ -53273,31 +53273,31 @@ var CQ = { class: "progress-board is-docked" }, wQ = { class: "pb-header" }, TQ
53273
53273
  ]);
53274
53274
  };
53275
53275
  }
53276
- }, [["__scopeId", "data-v-cfcbc22f"]]), $$ = {
53276
+ }, [["__scopeId", "data-v-cfcbc22f"]]), e1 = {
53277
53277
  thinking: "思考",
53278
53278
  command: "命令",
53279
53279
  tool: "工具",
53280
53280
  editing: "编辑",
53281
53281
  writing: "撰写"
53282
- }, e1 = {
53282
+ }, t1 = {
53283
53283
  thinking: "model",
53284
53284
  writing: "model",
53285
53285
  command: "tool",
53286
53286
  tool: "tool",
53287
53287
  editing: "tool"
53288
- }, t1 = {
53288
+ }, n1 = {
53289
53289
  running: "进行中",
53290
53290
  done: "完成",
53291
53291
  failed: "失败",
53292
53292
  cancelled: "已撤销"
53293
- }, n1 = 3e5, r1 = .03;
53294
- function i1(e) {
53293
+ }, r1 = 3e5, i1 = .03;
53294
+ function a1(e) {
53295
53295
  if (e < 1e3) return `${Math.max(0, Math.round(e))}ms`;
53296
53296
  if (e < 1e4) return `${(e / 1e3).toFixed(1)}s`;
53297
53297
  let t = Math.round(e / 1e3);
53298
53298
  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`;
53299
53299
  }
53300
- function a1(e, t) {
53300
+ function o1(e, t) {
53301
53301
  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) => {
53302
53302
  let o = n && a === e.segments.length - 1, s = Math.min(i + t.end_ms, r);
53303
53303
  return {
@@ -53323,8 +53323,8 @@ function a1(e, t) {
53323
53323
  notes: l
53324
53324
  };
53325
53325
  }
53326
- var o1 = 18e4;
53327
- function s1(e, t) {
53326
+ var s1 = 18e4;
53327
+ function c1(e, t) {
53328
53328
  let { item: n } = e;
53329
53329
  if (n.state === "failed") return {
53330
53330
  tone: "failed",
@@ -53348,22 +53348,22 @@ function s1(e, t) {
53348
53348
  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;
53349
53349
  return o >= 18e4 ? i?.phase === "command" ? {
53350
53350
  tone: "warn",
53351
- text: `命令已运行 ${i1(o)}`
53351
+ text: `命令已运行 ${a1(o)}`
53352
53352
  } : {
53353
53353
  tone: "warn",
53354
- text: `已 ${i1(o)} 无输出,可能卡住`
53354
+ text: `已 ${a1(o)} 无输出,可能卡住`
53355
53355
  } : n.last_note ? {
53356
53356
  tone: "live",
53357
53357
  text: n.last_note
53358
53358
  } : i ? {
53359
53359
  tone: "live",
53360
- text: `${$$[i.phase]}${i.tool ? ` · ${i.tool}` : ""}中`
53360
+ text: `${e1[i.phase]}${i.tool ? ` · ${i.tool}` : ""}中`
53361
53361
  } : {
53362
53362
  tone: "live",
53363
53363
  text: "处理中"
53364
53364
  };
53365
53365
  }
53366
- function c1(e, t) {
53366
+ function l1(e, t) {
53367
53367
  return [...e.segments.map((e) => ({
53368
53368
  at: e.start,
53369
53369
  kind: "phase",
@@ -53377,7 +53377,7 @@ function c1(e, t) {
53377
53377
  text: t?.[e.index] ?? (t ? "(未能读取)" : "读取中…")
53378
53378
  }))].sort((e, t) => e.at - t.at || (e.kind === "note") - (t.kind === "note"));
53379
53379
  }
53380
- function l1(e, t, n = /* @__PURE__ */ new Map()) {
53380
+ function u1(e, t, n = /* @__PURE__ */ new Map()) {
53381
53381
  let r = t / 1e3, i = [];
53382
53382
  for (let t of e.executions) {
53383
53383
  if ((t.queued_at || t.dispatched_at || Infinity) > r) continue;
@@ -53411,7 +53411,7 @@ function l1(e, t, n = /* @__PURE__ */ new Map()) {
53411
53411
  executions: i
53412
53412
  };
53413
53413
  }
53414
- function u1(e, t, n) {
53414
+ function d1(e, t, n) {
53415
53415
  let r = e.filter((e) => e.at >= t && e.at <= n);
53416
53416
  if (r.length) return {
53417
53417
  notes: r,
@@ -53423,13 +53423,13 @@ function u1(e, t, n) {
53423
53423
  earlier: !!i
53424
53424
  };
53425
53425
  }
53426
- function d1(e, t) {
53426
+ function f1(e, t) {
53427
53427
  let n = e.executions.map((n) => ({
53428
53428
  key: `${n.source}:${n.id}`,
53429
53429
  parent: n.parent_id ? `free:${n.parent_id}` : "",
53430
53430
  item: n,
53431
53431
  truncated: n.segments.length >= e.segment_limit,
53432
- ...a1(n, t)
53432
+ ...o1(n, t)
53433
53433
  })), r = new Map(n.map((e) => [e.key, e])), i = (e) => {
53434
53434
  let t = r.get(e.parent);
53435
53435
  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);
@@ -53458,18 +53458,18 @@ function d1(e, t) {
53458
53458
  });
53459
53459
  return o;
53460
53460
  }
53461
- function f1(e, t) {
53461
+ function p1(e, t) {
53462
53462
  if (e.source === "discussion") return `run:${e.run_id || e.id}`;
53463
53463
  let n = e;
53464
53464
  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);
53465
53465
  return n.task_id ? `task:${n.task_id}` : `exec:${n.id}`;
53466
53466
  }
53467
- function p1(e, t) {
53467
+ function m1(e, t) {
53468
53468
  let n = new Map(e.executions.filter((e) => e.source === "free").map((e) => [e.id, e])), r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map();
53469
53469
  for (let a of e.executions) {
53470
- let e = f1(a, n);
53470
+ let e = p1(a, n);
53471
53471
  i.set(`${a.source}:${a.id}`, e);
53472
- let o = a1(a, t), s = r.get(e) || {
53472
+ let o = o1(a, t), s = r.get(e) || {
53473
53473
  key: e,
53474
53474
  source: a.source,
53475
53475
  start: o.start,
@@ -53487,7 +53487,7 @@ function p1(e, t) {
53487
53487
  of: i
53488
53488
  };
53489
53489
  }
53490
- function m1(e, t) {
53490
+ function h1(e, t) {
53491
53491
  let n = new Map(e.map((e, t) => [e.key, t])), r = /* @__PURE__ */ new Map(), i = (e, t) => {
53492
53492
  r.has(e) || r.set(e, []), r.get(e).push(t);
53493
53493
  };
@@ -53513,7 +53513,7 @@ function m1(e, t) {
53513
53513
  });
53514
53514
  }), r;
53515
53515
  }
53516
- var h1 = [
53516
+ var g1 = [
53517
53517
  5,
53518
53518
  10,
53519
53519
  15,
@@ -53537,8 +53537,8 @@ var h1 = [
53537
53537
  21600,
53538
53538
  43200,
53539
53539
  86400
53540
- ].map((e) => e * 1e3), g1 = .75;
53541
- function _1(e, t = !1) {
53540
+ ].map((e) => e * 1e3), _1 = .75;
53541
+ function v1(e, t = !1) {
53542
53542
  let n = e.map((e) => [e.start, e.end]).sort((e, t) => e[0] - t[0]);
53543
53543
  if (!n.length) return {
53544
53544
  start: 0,
@@ -53554,8 +53554,8 @@ function _1(e, t = !1) {
53554
53554
  n && e <= n[1] + 3e5 ? n[1] = Math.max(n[1], t) : r.push([e, t]);
53555
53555
  }
53556
53556
  let i = r.reduce((e, [t, n]) => e + (n - t), 0), a = i;
53557
- t && i && (a = h1.find((e) => e >= i / g1) ?? Math.ceil(i / g1), r.at(-1)[1] += a - i);
53558
- let o = Math.min(r1, .5 / Math.max(1, r.length - 1)), s = a ? (1 - o * (r.length - 1)) / a : 0, c = [], l = 0;
53557
+ t && i && (a = g1.find((e) => e >= i / _1) ?? Math.ceil(i / _1), r.at(-1)[1] += a - i);
53558
+ let o = Math.min(i1, .5 / Math.max(1, r.length - 1)), s = a ? (1 - o * (r.length - 1)) / a : 0, c = [], l = 0;
53559
53559
  return r.forEach(([e, t], n) => {
53560
53560
  if (n) {
53561
53561
  let t = r[n - 1][1];
@@ -53598,7 +53598,7 @@ function _1(e, t = !1) {
53598
53598
  }))
53599
53599
  };
53600
53600
  }
53601
- var v1 = [
53601
+ var y1 = [
53602
53602
  1,
53603
53603
  2,
53604
53604
  5,
@@ -53617,14 +53617,14 @@ var v1 = [
53617
53617
  21600,
53618
53618
  43200,
53619
53619
  86400
53620
- ].map((e) => e * 1e3), y1 = .12;
53621
- function b1(e, t = 6, n = {
53620
+ ].map((e) => e * 1e3), b1 = .12;
53621
+ function x1(e, t = 6, n = {
53622
53622
  from: 0,
53623
53623
  span: 1
53624
53624
  }) {
53625
53625
  let r = (e.total_ms ?? e.busy_ms) * n.span;
53626
53626
  if (!r) return [];
53627
- let i = v1.find((e) => r / e <= t) ?? v1.at(-1), a = y1 * n.span, o = [];
53627
+ let i = y1.find((e) => r / e <= t) ?? y1.at(-1), a = b1 * n.span, o = [];
53628
53628
  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) {
53629
53629
  let t = e.x(r);
53630
53630
  t < n.from || t > n.from + n.span || (!o.length || t - o.at(-1).x >= a) && o.push({
@@ -53637,8 +53637,8 @@ function b1(e, t = 6, n = {
53637
53637
  seconds: i < 6e4
53638
53638
  }));
53639
53639
  }
53640
- var x1 = .01, S1 = 2e3;
53641
- function C1(e, t) {
53640
+ var S1 = .01, C1 = 2e3;
53641
+ function w1(e, t) {
53642
53642
  let n = (e) => (e - t.from) / t.span;
53643
53643
  return {
53644
53644
  ...e,
@@ -53655,20 +53655,20 @@ function C1(e, t) {
53655
53655
  }))
53656
53656
  };
53657
53657
  }
53658
- function w1(e, t, n, r = 0) {
53659
- 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;
53658
+ function T1(e, t, n, r = 0) {
53659
+ let i = Math.max(S1, r ? C1 / r : 0), a = Math.min(1, Math.max(i, e.span * n)), o = e.from + t * e.span;
53660
53660
  return {
53661
53661
  from: Math.min(1 - a, Math.max(0, o - t * a)),
53662
53662
  span: a
53663
53663
  };
53664
53664
  }
53665
- function T1(e, t) {
53665
+ function E1(e, t) {
53666
53666
  return {
53667
53667
  from: Math.min(1 - e.span, Math.max(0, e.from + t * e.span)),
53668
53668
  span: e.span
53669
53669
  };
53670
53670
  }
53671
- function E1(e, t = Date.now()) {
53671
+ function D1(e, t = Date.now()) {
53672
53672
  let n = null;
53673
53673
  for (let t of e) for (let e of t.segments) (!n || e.seen - e.start > n.end - n.start) && (n = {
53674
53674
  ...e,
@@ -53680,7 +53680,7 @@ function E1(e, t = Date.now()) {
53680
53680
  executions: e.length,
53681
53681
  running: e.filter((e) => e.item.state === "running").length,
53682
53682
  failed: e.filter((e) => e.item.state === "failed").length,
53683
- stalled: e.filter((e) => e.item.state === "running" && s1(e, t).tone === "warn").length,
53683
+ stalled: e.filter((e) => e.item.state === "running" && c1(e, t).tone === "warn").length,
53684
53684
  tool_segments: e.reduce((e, t) => e + t.segments.filter((e) => [
53685
53685
  "command",
53686
53686
  "tool",
@@ -53691,116 +53691,116 @@ function E1(e, t = Date.now()) {
53691
53691
  }
53692
53692
  //#endregion
53693
53693
  //#region frontend/ExecutionTimeline.vue
53694
- var D1 = {
53694
+ var O1 = {
53695
53695
  class: "merged-section execution-timeline",
53696
53696
  "aria-label": "执行时间线"
53697
- }, O1 = {
53697
+ }, k1 = {
53698
53698
  key: 0,
53699
53699
  role: "alert",
53700
53700
  class: "fine-print wf-error"
53701
- }, k1 = {
53701
+ }, A1 = {
53702
53702
  key: 1,
53703
53703
  class: "fine-print"
53704
- }, A1 = { class: "wf-head" }, j1 = {
53704
+ }, j1 = { class: "wf-head" }, M1 = {
53705
53705
  key: 0,
53706
53706
  class: "wf-state is-replay"
53707
- }, M1 = {
53707
+ }, N1 = {
53708
53708
  key: 2,
53709
53709
  class: "wf-headline"
53710
- }, N1 = { class: "wf-summary" }, P1 = ["title"], F1 = ["title"], I1 = { title: "连续调用同一工具合并为一段" }, L1 = {
53710
+ }, P1 = { class: "wf-summary" }, F1 = ["title"], I1 = ["title"], L1 = { title: "连续调用同一工具合并为一段" }, R1 = {
53711
53711
  class: "wf-legend",
53712
53712
  "aria-label": "图例"
53713
- }, R1 = {
53713
+ }, z1 = {
53714
53714
  key: 0,
53715
53715
  class: "wf-legend-note"
53716
- }, z1 = {
53716
+ }, B1 = {
53717
53717
  key: 1,
53718
53718
  class: "wf-legend-note"
53719
- }, B1 = { class: "wf-axis-label" }, V1 = {
53719
+ }, V1 = { class: "wf-axis-label" }, H1 = {
53720
53720
  key: 0,
53721
53721
  class: "wf-zoom"
53722
- }, H1 = {
53722
+ }, U1 = {
53723
53723
  key: 1,
53724
53724
  class: "wf-zoom-hint",
53725
53725
  title: "Ctrl + 滚轮缩放;放大后按住中键或拖动时间轴平移,双击时间轴还原"
53726
- }, U1 = {
53726
+ }, W1 = {
53727
53727
  key: 2,
53728
53728
  class: "wf-branch"
53729
- }, W1 = ["title"], G1 = {
53729
+ }, G1 = ["title"], K1 = {
53730
53730
  key: 0,
53731
53731
  class: "wf-guides",
53732
53732
  "aria-hidden": "true"
53733
- }, K1 = [
53733
+ }, q1 = [
53734
53734
  "aria-expanded",
53735
53735
  "aria-label",
53736
53736
  "onClick"
53737
- ], q1 = {
53737
+ ], J1 = {
53738
53738
  key: 2,
53739
53739
  class: "wf-toggle-space"
53740
- }, J1 = [
53740
+ }, Y1 = [
53741
53741
  "aria-expanded",
53742
53742
  "onClick",
53743
53743
  "onMouseenter",
53744
53744
  "onMouseleave"
53745
- ], Y1 = { class: "wf-name-line" }, X1 = {
53745
+ ], X1 = { class: "wf-name-line" }, Z1 = {
53746
53746
  key: 0,
53747
53747
  class: "wf-spinner",
53748
53748
  "aria-hidden": "true"
53749
- }, Z1 = {
53749
+ }, Q1 = {
53750
53750
  key: 1,
53751
53751
  class: "wf-pill is-slowest"
53752
- }, Q1 = {
53752
+ }, $1 = {
53753
53753
  key: 0,
53754
53754
  class: "wf-live-dot",
53755
53755
  "aria-hidden": "true"
53756
- }, $1 = ["aria-label", "onMouseleave"], e0 = { class: "wf-track" }, t0 = ["data-tone"], n0 = ["onMouseenter", "onClick"], r0 = ["onMouseenter", "onClick"], i0 = [
53756
+ }, e0 = ["aria-label", "onMouseleave"], t0 = { class: "wf-track" }, n0 = ["data-tone"], r0 = ["onMouseenter", "onClick"], i0 = ["onMouseenter", "onClick"], a0 = [
53757
53757
  "data-tone",
53758
53758
  "onMouseenter",
53759
53759
  "onClick"
53760
- ], a0 = [
53760
+ ], o0 = [
53761
53761
  "data-tone",
53762
53762
  "onMouseenter",
53763
53763
  "onClick"
53764
- ], o0 = [
53764
+ ], s0 = [
53765
53765
  "data-tone",
53766
53766
  "onMouseenter",
53767
53767
  "onClick"
53768
- ], s0 = [
53768
+ ], c0 = [
53769
53769
  "aria-label",
53770
53770
  "onMouseenter",
53771
53771
  "onClick",
53772
53772
  "onFocus",
53773
53773
  "onBlur"
53774
- ], 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 = {
53774
+ ], l0 = { class: "wf-end" }, u0 = { key: 1 }, d0 = ["aria-label"], f0 = { class: "wf-detail-head" }, p0 = { key: 0 }, m0 = { key: 1 }, h0 = { class: "is-failed" }, g0 = { key: 2 }, _0 = { key: 3 }, v0 = {
53775
53775
  key: 0,
53776
53776
  class: "wf-log",
53777
53777
  "aria-label": "过程"
53778
- }, v0 = ["data-tone"], y0 = {
53778
+ }, y0 = ["data-tone"], b0 = {
53779
53779
  key: 1,
53780
53780
  class: "wf-log-note"
53781
- }, b0 = {
53781
+ }, x0 = {
53782
53782
  key: 1,
53783
53783
  class: "fine-print"
53784
- }, x0 = {
53784
+ }, S0 = {
53785
53785
  key: 1,
53786
53786
  class: "wf-player"
53787
- }, S0 = {
53787
+ }, C0 = {
53788
53788
  key: 2,
53789
53789
  class: "wf-player"
53790
- }, C0 = ["aria-label"], w0 = ["disabled"], T0 = ["max", "value"], E0 = { class: "wf-player-time" }, D0 = {
53790
+ }, w0 = ["aria-label"], T0 = ["disabled"], E0 = ["max", "value"], D0 = { class: "wf-player-time" }, O0 = {
53791
53791
  key: 3,
53792
53792
  class: "wf-foot"
53793
- }, O0 = { key: 0 }, k0 = { key: 1 }, A0 = ["role"], j0 = {
53793
+ }, k0 = { key: 0 }, A0 = { key: 1 }, j0 = ["role"], M0 = {
53794
53794
  key: 1,
53795
53795
  class: "wf-card-text"
53796
- }, M0 = {
53796
+ }, N0 = {
53797
53797
  key: 2,
53798
53798
  class: "wf-card-reason"
53799
- }, 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({
53799
+ }, P0 = { class: "wf-card-label" }, F0 = 2e3, I0 = 6e4, L0 = 100, R0 = 60, z0 = 2e4, B0 = 600, V0 = 5, H0 = 16, U0 = 90, W0 = 2, G0 = 8, K0 = 560, q0 = .0015, J0 = "latest", Y0 = "all", X0 = 22, Z0 = 5, Q0 = 52, $0 = /*#__PURE__*/ YH({
53800
53800
  __name: "ExecutionTimeline",
53801
53801
  emits: ["detail"],
53802
53802
  setup(e, { emit: t }) {
53803
- let n = t, { view: r, bridge: i } = xr("discussion"), a = o1 / 6e4, o = [
53803
+ let n = t, { view: r, bridge: i } = xr("discussion"), a = s1 / 6e4, o = [
53804
53804
  1,
53805
53805
  2,
53806
53806
  4,
@@ -53816,7 +53816,7 @@ var D1 = {
53816
53816
  let t = d.value;
53817
53817
  if (!t || w) return;
53818
53818
  w = !0;
53819
- let n = e || !S || Date.now() - C >= F0 ? 0 : S - B0;
53819
+ let n = e || !S || Date.now() - C >= I0 ? 0 : S - V0;
53820
53820
  try {
53821
53821
  let e = await i.request(`/api/rooms/${t}/timeline${n ? `?after=${n}` : ""}`);
53822
53822
  if (t !== d.value) return;
@@ -53839,7 +53839,7 @@ var D1 = {
53839
53839
  R(Z(() => re.value?.executions.some((e) => e.state === "running")), (e) => {
53840
53840
  clearInterval(T), e && (T = setInterval(() => {
53841
53841
  document.hidden || ne();
53842
- }, P0));
53842
+ }, F0));
53843
53843
  }, { immediate: !0 }), R(d, () => {
53844
53844
  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);
53845
53845
  }, { immediate: !0 }), R(() => r.value.room, (e, t) => {
@@ -53854,7 +53854,7 @@ var D1 = {
53854
53854
  };
53855
53855
  }
53856
53856
  function oe(e) {
53857
- 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)));
53857
+ c.value && e.target.closest?.(".wf-track, .wf-axis") && (e.ctrlKey || e.metaKey ? (e.preventDefault(), De.value = T1(De.value, ae(e).share, Math.exp(e.deltaY * q0), Te.value.total_ms)) : Oe.value && (e.shiftKey || Math.abs(e.deltaX) > Math.abs(e.deltaY)) && (e.preventDefault(), De.value = E1(De.value, (e.shiftKey ? e.deltaY : e.deltaX) / ae(e).width)));
53858
53858
  }
53859
53859
  function k(e) {
53860
53860
  let t = e.target.closest?.(".wf-axis");
@@ -53865,7 +53865,7 @@ var D1 = {
53865
53865
  }, e.currentTarget.setPointerCapture(e.pointerId));
53866
53866
  }
53867
53867
  function se(e) {
53868
- ie && (De.value = T1({
53868
+ ie && (De.value = E1({
53869
53869
  from: ie.from,
53870
53870
  span: De.value.span
53871
53871
  }, -(e.clientX - ie.x) / ie.width));
@@ -53891,15 +53891,15 @@ var D1 = {
53891
53891
  }), ta(() => {
53892
53892
  clearInterval(T), cancelAnimationFrame(E), document.removeEventListener("pointerdown", ue), document.removeEventListener("keydown", de), u?.disconnect();
53893
53893
  });
53894
- let fe = /* @__PURE__ */ F(q0), pe = Z(() => re.value ? p1(re.value, h.value) : {
53894
+ let fe = /* @__PURE__ */ F(J0), pe = Z(() => re.value ? m1(re.value, h.value) : {
53895
53895
  list: [],
53896
53896
  of: /* @__PURE__ */ new Map()
53897
- }), 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 : {
53897
+ }), me = Z(() => fe.value === J0 ? pe.value.list[0]?.key : fe.value === Y0 || pe.value.list.some((e) => e.key === fe.value) ? fe.value : pe.value.list[0]?.key), he = Z(() => !re.value || me.value === Y0 ? re.value : {
53898
53898
  ...re.value,
53899
53899
  executions: re.value.executions.filter((e) => pe.value.of.get(`${e.source}:${e.id}`) === me.value)
53900
53900
  });
53901
53901
  R(d, () => {
53902
- fe.value = q0;
53902
+ fe.value = J0;
53903
53903
  });
53904
53904
  let ge = (e) => new Date(e).toLocaleString("zh-CN", {
53905
53905
  month: "numeric",
@@ -53909,13 +53909,13 @@ var D1 = {
53909
53909
  hour12: !1
53910
53910
  });
53911
53911
  function _e(e) {
53912
- let t = e.task ? `${e.task.replace(/\s+/g, " ").slice(0, Y0)}${e.task.length > Y0 ? "…" : ""}` : e.source === "discussion" ? "讨论" : "执行";
53912
+ let t = e.task ? `${e.task.replace(/\s+/g, " ").slice(0, X0)}${e.task.length > X0 ? "…" : ""}` : e.source === "discussion" ? "讨论" : "执行";
53913
53913
  return `${ge(e.start)} · ${t} · ${e.count} 次${e.running ? " · 进行中" : e.failed ? " · 有失败" : ""}`;
53914
53914
  }
53915
53915
  let M = Z(() => [
53916
53916
  {
53917
53917
  label: "最近一轮(自动跟随)",
53918
- value: q0
53918
+ value: J0
53919
53919
  },
53920
53920
  ...pe.value.list.map((e) => ({
53921
53921
  label: _e(e),
@@ -53923,9 +53923,9 @@ var D1 = {
53923
53923
  })),
53924
53924
  {
53925
53925
  label: "全部执行",
53926
- value: J0
53926
+ value: Y0
53927
53927
  }
53928
- ]), N = Z(() => he.value ? d1(he.value, h.value) : []), ve = Z(() => N.value.some((e) => e.item.state === "running")), ye = Z(() => {
53928
+ ]), N = Z(() => he.value ? f1(he.value, h.value) : []), ve = Z(() => N.value.some((e) => e.item.state === "running")), ye = Z(() => {
53929
53929
  let e = Math.min(...N.value.map((e) => e.start)), t = Math.max(...N.value.map((e) => e.end));
53930
53930
  return Number.isFinite(e) ? {
53931
53931
  start: e,
@@ -53936,17 +53936,17 @@ var D1 = {
53936
53936
  end: 0,
53937
53937
  duration: 0
53938
53938
  };
53939
- }), 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 = {
53939
+ }), be = Z(() => O.position !== null && !ve.value), xe = Z(() => be.value ? ye.value.start + O.position : h.value), Se = Z(() => be.value ? f1(u1(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(() => v1(Se.value, we.value)), Ee = {
53940
53940
  from: 0,
53941
53941
  span: 1
53942
53942
  }, De = /* @__PURE__ */ F(Ee), Oe = Z(() => De.value.span < 1);
53943
53943
  R([me, d], () => {
53944
53944
  De.value = Ee;
53945
53945
  });
53946
- let ke = Z(() => C1(Te.value, De.value)), Ae = Z(() => {
53946
+ let ke = Z(() => w1(Te.value, De.value)), Ae = Z(() => {
53947
53947
  let e = we.value ? ke.value.x(xe.value) : null;
53948
53948
  return e === null || e < 0 || e > 1 ? null : e;
53949
- }), je = Z(() => Math.max(1, ye.value.duration / R0)), Me = Z(() => [{
53949
+ }), je = Z(() => Math.max(1, ye.value.duration / z0)), Me = Z(() => [{
53950
53950
  label: `自动 · ${Math.round(je.value)}×`,
53951
53951
  value: 0
53952
53952
  }, ...o.map((e) => ({
@@ -53956,7 +53956,7 @@ var D1 = {
53956
53956
  function Pe(e) {
53957
53957
  let t = ee ? Math.min(e - ee, 250) : 0;
53958
53958
  ee = e;
53959
- let n = Se.value.length <= L0 || e - D >= I0;
53959
+ let n = Se.value.length <= R0 || e - D >= L0;
53960
53960
  O.playing && (te += t * Ne.value, te >= ye.value.duration ? Object.assign(O, {
53961
53961
  position: null,
53962
53962
  playing: !1
@@ -54009,15 +54009,15 @@ var D1 = {
54009
54009
  let t = e.filter((e) => !Ve.has(e));
54010
54010
  t.forEach((e) => Ve.add(e)), t.length && (Be.value = /* @__PURE__ */ new Set([...Be.value, ...t]), setTimeout(() => {
54011
54011
  Be.value = new Set([...Be.value].filter((e) => !t.includes(e)));
54012
- }, z0));
54012
+ }, B0));
54013
54013
  }), R([me, d], () => {
54014
54014
  Ve = null;
54015
54015
  });
54016
- 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) => ({
54016
+ let Ue = Z(() => h1(Ce.value, ke.value)), We = Z(() => x1(Te.value, Math.min(G0, Math.max(W0, Math.round((l.value || 540) / U0))), De.value).map((e) => ({
54017
54017
  ...e,
54018
54018
  x: (e.x - De.value.from) / De.value.span
54019
- }))), 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(() => {
54020
- let e = Se.value, t = new Set(e.flatMap((e) => e.segments.map((e) => e1[e.phase])));
54019
+ }))), Ge = Z(() => D1(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 ? l1(qe.value, _.value.get(qe.value.item.id)) : []), Ye = Z(() => {
54020
+ let e = Se.value, t = new Set(e.flatMap((e) => e.segments.map((e) => t1[e.phase])));
54021
54021
  return [
54022
54022
  ...e.some((e) => e.queue[1] > e.queue[0]) ? [["queue", "排队"]] : [],
54023
54023
  ...e.some((e) => e.wake) ? [["wake", "唤醒"]] : [],
@@ -54030,10 +54030,10 @@ var D1 = {
54030
54030
  ];
54031
54031
  }), Xe = Z(() => Se.value.length > 0 && Se.value.every((e) => !e.segments.length)), Ze = Z(() => {
54032
54032
  let e = /* @__PURE__ */ new Map();
54033
- 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);
54033
+ 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 % Z0 + 1);
54034
54034
  return e;
54035
54035
  }), Qe = Z(() => {
54036
- let e = Z0 / (l.value || 800), t = [];
54036
+ let e = Q0 / (l.value || 800), t = [];
54037
54037
  for (let n of ke.value.folds) {
54038
54038
  let r = n.from + n.width / 2;
54039
54039
  r < 0 || r > 1 || (!t.length || r - t.at(-1).middle >= e) && t.push({
@@ -54043,12 +54043,12 @@ var D1 = {
54043
54043
  }
54044
54044
  return t;
54045
54045
  }), $e = Z(() => {
54046
- let e = Z0 / (l.value || 800);
54046
+ let e = Q0 / (l.value || 800);
54047
54047
  return We.value.filter((t) => !Qe.value.some((n) => Math.abs(t.x - n.middle) < e));
54048
54048
  });
54049
54049
  function et(e, t) {
54050
54050
  if (y.value = y.value === e.key ? "" : e.key, !y.value) return;
54051
- let n = t.currentTarget.getBoundingClientRect(), r = x.value.getBoundingClientRect(), i = Math.min(G0, r.width - 16);
54051
+ let n = t.currentTarget.getBoundingClientRect(), r = x.value.getBoundingClientRect(), i = Math.min(K0, r.width - 16);
54052
54052
  b.value = {
54053
54053
  top: n.bottom - r.top + 4,
54054
54054
  left: Math.max(8, Math.min(n.left - r.left, r.width - i - 8))
@@ -54075,15 +54075,15 @@ var D1 = {
54075
54075
  function it(e) {
54076
54076
  return [...e.item.source === "discussion" ? ["讨论"] : [], ...e.item.role === "host" ? ["主持"] : []];
54077
54077
  }
54078
- let at = (e) => s1(e, xe.value);
54078
+ let at = (e) => c1(e, xe.value);
54079
54079
  function ot(e) {
54080
54080
  let t = [
54081
54081
  i.display_name(e.item.member),
54082
54082
  rt(e),
54083
- t1[e.item.state],
54084
- `用时 ${i1(e.end - e.start)}`
54083
+ n1[e.item.state],
54084
+ `用时 ${a1(e.end - e.start)}`
54085
54085
  ];
54086
- 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(",");
54086
+ return e.wake && t.push(`唤醒 ${a1(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(",");
54087
54087
  }
54088
54088
  async function st(e) {
54089
54089
  let t = e.item.id;
@@ -54107,7 +54107,7 @@ var D1 = {
54107
54107
  let i = e.currentTarget.getBoundingClientRect(), a = n.note ? {
54108
54108
  notes: [n.note],
54109
54109
  earlier: !1
54110
- } : 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;
54110
+ } : d1(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;
54111
54111
  v.value = {
54112
54112
  key: t.key,
54113
54113
  id: dt(t, n),
@@ -54131,7 +54131,7 @@ var D1 = {
54131
54131
  }
54132
54132
  let ht = Z(() => {
54133
54133
  let e = v.value?.piece;
54134
- 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 ? " · 进行中" : ""}` : "";
54134
+ return e ? e.note ? `过程说明 · ${ct(e.note.at)}` : `${e.kind === "segment" ? `${e1[e.phase]}${e.tool ? ` · ${e.tool}` : ""}` : e.label} · ${a1(e.end - e.start)}${e.live ? " · 进行中" : ""}` : "";
54135
54135
  }), gt = Z(() => {
54136
54136
  if (!v.value) return [];
54137
54137
  let e = _.value.get(v.value.row.item.id);
@@ -54142,17 +54142,17 @@ var D1 = {
54142
54142
  });
54143
54143
  return (e, t) => {
54144
54144
  let r = bH, o = sA, s = pA;
54145
- return U(), W("section", D1, [
54145
+ return U(), W("section", O1, [
54146
54146
  t[30] ||= K("div", { class: "page-heading" }, [K("div", null, [K("h2", null, "执行时间线"), K("p", null, "本机接入程序唤醒的每次执行;点名字看详情,悬停条形看当时的过程说明。")])], -1),
54147
- m.value ? (U(), W("p", O1, P(m.value), 1)) : Y("", !0),
54148
- re.value && !Se.value.length ? (U(), W("p", k1, "还没有执行记录。")) : Y("", !0),
54147
+ m.value ? (U(), W("p", k1, P(m.value), 1)) : Y("", !0),
54148
+ re.value && !Se.value.length ? (U(), W("p", A1, "还没有执行记录。")) : Y("", !0),
54149
54149
  Se.value.length ? (U(), W("div", {
54150
54150
  key: 2,
54151
54151
  ref_key: "wf_element",
54152
54152
  ref: x,
54153
54153
  class: "wf"
54154
54154
  }, [
54155
- K("header", A1, [
54155
+ K("header", j1, [
54156
54156
  t[12] ||= K("span", { class: "wf-title" }, "执行瀑布", -1),
54157
54157
  q(r, {
54158
54158
  modelValue: fe.value,
@@ -54171,17 +54171,17 @@ var D1 = {
54171
54171
  trailingIcon: "wf-select-icon"
54172
54172
  }
54173
54173
  }, null, 8, ["modelValue", "items"]),
54174
- be.value ? (U(), W("span", j1, "回放中 · " + P(ct(xe.value)), 1)) : (U(), W("span", {
54174
+ be.value ? (U(), W("span", M1, "回放中 · " + P(ct(xe.value)), 1)) : (U(), W("span", {
54175
54175
  key: 1,
54176
54176
  class: j(["wf-state", { "is-live": Ge.value.running }])
54177
54177
  }, P(Ge.value.running ? `${Ge.value.running} 个进行中` : "均已结束"), 3)),
54178
- Ge.value.slowest ? (U(), W("span", M1, [
54178
+ Ge.value.slowest ? (U(), W("span", N1, [
54179
54179
  t[11] ||= J("最慢一步 ", -1),
54180
- 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)]),
54181
- J(" · " + P(I(i1)(Ge.value.slowest.end - Ge.value.slowest.start)), 1)
54180
+ K("b", null, [J(P(I(i).display_name(Ge.value.slowest.member)) + " · " + P(I(e1)[Ge.value.slowest.phase]), 1), Ge.value.slowest.tool ? (U(), W(H, { key: 0 }, [J(P(Ge.value.slowest.tool), 1)], 64)) : Y("", !0)]),
54181
+ J(" · " + P(I(a1)(Ge.value.slowest.end - Ge.value.slowest.start)), 1)
54182
54182
  ])) : Y("", !0)
54183
54183
  ]),
54184
- K("dl", N1, [
54184
+ K("dl", P1, [
54185
54185
  K("div", null, [t[13] ||= K("dt", null, "执行", -1), K("dd", null, [(U(), W("span", {
54186
54186
  key: Ge.value.executions,
54187
54187
  class: "wf-roll"
@@ -54197,17 +54197,17 @@ var D1 = {
54197
54197
  K("div", { title: `超过 ${a} 分钟没有输出` }, [t[16] ||= K("dt", null, "可能卡住", -1), K("dd", { class: j(Ge.value.stalled ? "is-warn" : "is-zero") }, [(U(), W("span", {
54198
54198
  key: Ge.value.stalled,
54199
54199
  class: "wf-roll"
54200
- }, P(Ge.value.stalled), 1))], 2)], 8, P1),
54201
- 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),
54202
- K("div", I1, [t[19] ||= K("dt", null, "工具与命令", -1), K("dd", { class: j({ "is-zero": !Ge.value.tool_segments }) }, [(U(), W("span", {
54200
+ }, P(Ge.value.stalled), 1))], 2)], 8, F1),
54201
+ K("div", { title: Te.value.folds.length ? `已折叠 ${Te.value.folds.length} 段超过 ${I(r1) / 6e4} 分钟的空闲` : void 0 }, [t[17] ||= K("dt", null, "有效时长", -1), K("dd", null, P(I(a1)(Te.value.busy_ms)), 1)], 8, I1),
54202
+ K("div", L1, [t[19] ||= K("dt", null, "工具与命令", -1), K("dd", { class: j({ "is-zero": !Ge.value.tool_segments }) }, [(U(), W("span", {
54203
54203
  key: Ge.value.tool_segments,
54204
54204
  class: "wf-roll"
54205
54205
  }, P(Ge.value.tool_segments), 1)), t[18] ||= J(" 段", -1)], 2)])
54206
54206
  ]),
54207
- K("ul", L1, [
54207
+ K("ul", R1, [
54208
54208
  (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)),
54209
- Ze.value.size > 1 ? (U(), W("li", R1, "颜色区分成员,深浅区分模型与工具")) : Y("", !0),
54210
- Xe.value ? (U(), W("li", z1, "这些执行都没有阶段明细:发生在接入程序上报阶段之前,或来自手动接入、在线 AI、Codex App")) : Y("", !0)
54209
+ Ze.value.size > 1 ? (U(), W("li", z1, "颜色区分成员,深浅区分模型与工具")) : Y("", !0),
54210
+ Xe.value ? (U(), W("li", B1, "这些执行都没有阶段明细:发生在接入程序上报阶段之前,或来自手动接入、在线 AI、Codex App")) : Y("", !0)
54211
54211
  ]),
54212
54212
  K("div", {
54213
54213
  class: j(["wf-grid", {
@@ -54215,7 +54215,7 @@ var D1 = {
54215
54215
  "is-panning": I(ie)
54216
54216
  }]),
54217
54217
  role: "list",
54218
- style: A({ "--wf-depth-px": `${V0}px` }),
54218
+ style: A({ "--wf-depth-px": `${H0}px` }),
54219
54219
  onWheel: oe,
54220
54220
  onMousedown: le,
54221
54221
  onPointerdown: k,
@@ -54223,14 +54223,14 @@ var D1 = {
54223
54223
  onPointerup: ce,
54224
54224
  onPointercancel: ce
54225
54225
  }, [
54226
- K("div", B1, [
54226
+ K("div", V1, [
54227
54227
  K("span", null, "执行 · " + P(Ce.value.length) + "/" + P(Se.value.length), 1),
54228
- Oe.value ? (U(), W("span", V1, [J("放大 " + P((1 / De.value.span).toFixed(1)) + "×", 1), K("button", {
54228
+ Oe.value ? (U(), W("span", H1, [J("放大 " + P((1 / De.value.span).toFixed(1)) + "×", 1), K("button", {
54229
54229
  type: "button",
54230
54230
  class: "wf-text-button",
54231
54231
  onClick: t[1] ||= (e) => De.value = Ee
54232
- }, "重置")])) : (U(), W("span", H1, "Ctrl + 滚轮缩放")),
54233
- Ke.value.length ? (U(), W("span", U1, [K("button", {
54232
+ }, "重置")])) : (U(), W("span", U1, "Ctrl + 滚轮缩放")),
54233
+ Ke.value.length ? (U(), W("span", W1, [K("button", {
54234
54234
  type: "button",
54235
54235
  class: "wf-text-button",
54236
54236
  onClick: t[2] ||= (e) => g.value = /* @__PURE__ */ new Set()
@@ -54257,7 +54257,7 @@ var D1 = {
54257
54257
  class: "wf-fold-label",
54258
54258
  style: A({ left: `${e.middle * 100}%` }),
54259
54259
  title: `${ct(e.start)} – ${ct(e.end)} 没有执行,已折叠`
54260
- }, "⋯ " + P(I(i1)(e.end - e.start)), 13, W1))), 128)),
54260
+ }, "⋯ " + P(I(a1)(e.end - e.start)), 13, G1))), 128)),
54261
54261
  Ae.value === null ? Y("", !0) : (U(), W("span", {
54262
54262
  key: 0,
54263
54263
  class: "wf-cursor-head",
@@ -54277,7 +54277,7 @@ var D1 = {
54277
54277
  class: "wf-label",
54278
54278
  style: A({ "--depth": e.depth })
54279
54279
  }, [
54280
- e.depth ? (U(), W("span", G1)) : Y("", !0),
54280
+ e.depth ? (U(), W("span", K1)) : Y("", !0),
54281
54281
  e.has_children ? (U(), W("button", {
54282
54282
  key: 1,
54283
54283
  type: "button",
@@ -54285,7 +54285,7 @@ var D1 = {
54285
54285
  "aria-expanded": !g.value.has(e.key),
54286
54286
  "aria-label": `${g.value.has(e.key) ? "展开" : "收起"} ${I(i).display_name(e.item.member)} 派出的执行`,
54287
54287
  onClick: (t) => tt(e.key)
54288
- }, [q(o, { name: "i-lucide-chevron-right" })], 10, K1)) : (U(), W("span", q1)),
54288
+ }, [q(o, { name: "i-lucide-chevron-right" })], 10, q1)) : (U(), W("span", J1)),
54289
54289
  q(s, {
54290
54290
  src: I(i).identities[e.item.member]?.icon,
54291
54291
  text: I(i).identities[e.item.member]?.initials,
@@ -54304,29 +54304,29 @@ var D1 = {
54304
54304
  "aria-expanded": y.value === e.key,
54305
54305
  onClick: (t) => et(e, t),
54306
54306
  onMouseenter: (t) => ft(t, e, {
54307
- label: I(t1)[e.item.state],
54307
+ label: I(n1)[e.item.state],
54308
54308
  start: e.start,
54309
54309
  end: e.end,
54310
54310
  text: at(e).text,
54311
54311
  live: e.item.state === "running"
54312
54312
  }),
54313
54313
  onMouseleave: (t) => mt(e)
54314
- }, [K("span", Y1, [
54315
- e.item.state === "running" ? (U(), W("i", X1)) : Y("", !0),
54314
+ }, [K("span", X1, [
54315
+ e.item.state === "running" ? (U(), W("i", Z1)) : Y("", !0),
54316
54316
  K("strong", null, P(I(i).display_name(e.item.member)), 1),
54317
54317
  (U(!0), W(H, null, B(it(e), (e) => (U(), W("em", {
54318
54318
  key: e,
54319
54319
  class: "wf-pill is-role"
54320
54320
  }, P(e), 1))), 128)),
54321
- Ge.value.slowest?.row === e.key ? (U(), W("em", Z1, "最慢")) : Y("", !0)
54322
- ]), 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)
54321
+ Ge.value.slowest?.row === e.key ? (U(), W("em", Q1, "最慢")) : Y("", !0)
54322
+ ]), K("span", { class: j(["wf-status", `is-${at(e).tone}`]) }, [at(e).tone === "live" ? (U(), W("i", $1)) : Y("", !0), J(P(at(e).text), 1)], 2)], 40, Y1)
54323
54323
  ], 4),
54324
54324
  K("div", {
54325
54325
  class: "wf-lane",
54326
54326
  role: "img",
54327
54327
  "aria-label": ot(e),
54328
54328
  onMouseleave: (t) => mt(e)
54329
- }, [K("div", e0, [
54329
+ }, [K("div", t0, [
54330
54330
  (U(!0), W(H, null, B($e.value, (e) => (U(), W("i", {
54331
54331
  key: e.at,
54332
54332
  class: "wf-gridline",
@@ -54346,7 +54346,7 @@ var D1 = {
54346
54346
  class: j(["wf-link", `is-${e.part}`]),
54347
54347
  "data-tone": Ze.value.get(e.member),
54348
54348
  style: A({ left: `${e.x * 100}%` })
54349
- }, null, 14, t0))), 128)),
54349
+ }, null, 14, n0))), 128)),
54350
54350
  Ae.value === null ? Y("", !0) : (U(), W("i", {
54351
54351
  key: 0,
54352
54352
  class: "wf-cursor",
@@ -54365,7 +54365,7 @@ var D1 = {
54365
54365
  start: e.queue[0],
54366
54366
  end: e.queue[1]
54367
54367
  })
54368
- }, null, 44, n0),
54368
+ }, null, 44, r0),
54369
54369
  e.wake ? (U(), W("i", {
54370
54370
  key: 1,
54371
54371
  class: "wf-bar is-wake",
@@ -54380,7 +54380,7 @@ var D1 = {
54380
54380
  start: e.wake[0],
54381
54381
  end: e.wake[1]
54382
54382
  })
54383
- }, null, 44, r0)) : Y("", !0),
54383
+ }, null, 44, i0)) : Y("", !0),
54384
54384
  e.work ? (U(), W("i", {
54385
54385
  key: 2,
54386
54386
  class: j(["wf-bar is-work", { "has-detail": e.segments.length }]),
@@ -54398,9 +54398,9 @@ var D1 = {
54398
54398
  end: e.work[1],
54399
54399
  live: e.item.state === "running"
54400
54400
  })
54401
- }, null, 46, i0)) : Y("", !0),
54401
+ }, null, 46, a0)) : Y("", !0),
54402
54402
  (U(!0), W(H, null, B(e.segments, (t) => (U(), W(H, { key: t.start + t.phase }, [K("i", {
54403
- class: j(["wf-bar wf-seg", [`is-${I(e1)[t.phase]}`, { "is-live": t.live }]]),
54403
+ class: j(["wf-bar wf-seg", [`is-${I(t1)[t.phase]}`, { "is-live": t.live }]]),
54404
54404
  "data-tone": Ze.value.get(e.item.member),
54405
54405
  style: A(nt(t.start, t.seen, !0)),
54406
54406
  onMouseenter: (n) => ft(n, e, {
@@ -54411,9 +54411,9 @@ var D1 = {
54411
54411
  kind: "segment",
54412
54412
  ...t
54413
54413
  })
54414
- }, null, 46, a0), t.end > t.seen ? (U(), W("i", {
54414
+ }, null, 46, o0), t.end > t.seen ? (U(), W("i", {
54415
54415
  key: 0,
54416
- class: j(["wf-bar wf-seg is-tail", `is-${I(e1)[t.phase]}`]),
54416
+ class: j(["wf-bar wf-seg is-tail", `is-${I(t1)[t.phase]}`]),
54417
54417
  "data-tone": Ze.value.get(e.item.member),
54418
54418
  style: A(nt(t.seen, t.end)),
54419
54419
  onMouseenter: (n) => ft(n, e, {
@@ -54424,7 +54424,7 @@ var D1 = {
54424
54424
  kind: "segment",
54425
54425
  ...t
54426
54426
  })
54427
- }, null, 46, o0)) : Y("", !0)], 64))), 128)),
54427
+ }, null, 46, s0)) : Y("", !0)], 64))), 128)),
54428
54428
  (U(!0), W(H, null, B(e.notes, (t) => (U(), W("button", {
54429
54429
  key: `note-${t.index}`,
54430
54430
  type: "button",
@@ -54447,15 +54447,15 @@ var D1 = {
54447
54447
  end: t.at
54448
54448
  }),
54449
54449
  onBlur: (t) => mt(e)
54450
- }, null, 44, s0))), 128))
54451
- ])], 40, $1),
54452
- K("span", c0, [
54453
- J(P(I(i1)(e.end - e.start)) + P(e.wake_approx && e.wake ? "~" : ""), 1),
54450
+ }, null, 44, c0))), 128))
54451
+ ])], 40, e0),
54452
+ K("span", l0, [
54453
+ J(P(I(a1)(e.end - e.start)) + P(e.wake_approx && e.wake ? "~" : ""), 1),
54454
54454
  e.item.state === "done" ? Y("", !0) : (U(), W("small", {
54455
54455
  key: 0,
54456
54456
  class: j(`is-${e.item.state}`)
54457
- }, P(I(t1)[e.item.state]), 3)),
54458
- e.truncated ? (U(), W("small", l0, "明细已截断")) : Y("", !0)
54457
+ }, P(I(n1)[e.item.state]), 3)),
54458
+ e.truncated ? (U(), W("small", u0, "明细已截断")) : Y("", !0)
54459
54459
  ])
54460
54460
  ], 2))), 128))
54461
54461
  ], 38),
@@ -54469,9 +54469,9 @@ var D1 = {
54469
54469
  left: `${b.value.left}px`
54470
54470
  })
54471
54471
  }, [
54472
- K("header", d0, [
54472
+ K("header", f0, [
54473
54473
  K("strong", null, P(I(i).display_name(qe.value.item.member)), 1),
54474
- K("small", null, P(rt(qe.value)) + " · " + P(I(t1)[qe.value.item.state]) + " · " + P(I(i1)(qe.value.end - qe.value.start)), 1),
54474
+ K("small", null, P(rt(qe.value)) + " · " + P(I(n1)[qe.value.item.state]) + " · " + P(I(a1)(qe.value.end - qe.value.start)), 1),
54475
54475
  K("button", {
54476
54476
  type: "button",
54477
54477
  class: "wf-card-close",
@@ -54480,47 +54480,47 @@ var D1 = {
54480
54480
  }, [q(o, { name: "i-lucide-x" })])
54481
54481
  ]),
54482
54482
  K("dl", null, [
54483
- 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", {
54483
+ qe.value.item.task ? (U(), W("div", p0, [t[22] ||= K("dt", null, "任务", -1), K("dd", null, [J(P(qe.value.item.task), 1), qe.value.item.task_id ? (U(), W("button", {
54484
54484
  key: 0,
54485
54485
  type: "button",
54486
54486
  class: "subtle-link",
54487
54487
  onClick: t[6] ||= (e) => n("detail", qe.value.item.task_id)
54488
54488
  }, "#" + P(qe.value.item.task_id), 1)) : Y("", !0)])])) : Y("", !0),
54489
- 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", {
54489
+ qe.value.item.state === "failed" ? (U(), W("div", m0, [t[23] ||= K("dt", null, "失败原因", -1), K("dd", h0, P(qe.value.item.reason || "执行失败"), 1)])) : qe.value.item.result || qe.value.item.answer_id ? (U(), W("div", g0, [t[24] ||= K("dt", null, "结果", -1), K("dd", null, [J(P(qe.value.item.result), 1), qe.value.item.answer_id ? (U(), W("button", {
54490
54490
  key: 0,
54491
54491
  type: "button",
54492
54492
  class: "subtle-link",
54493
54493
  onClick: t[7] ||= (e) => n("detail", qe.value.item.answer_id)
54494
54494
  }, "在消息中查看 #" + P(qe.value.item.answer_id), 1)) : Y("", !0)])])) : Y("", !0),
54495
- 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)
54495
+ qe.value.item.changes ? (U(), W("div", _0, [t[25] ||= K("dt", null, "改动", -1), K("dd", null, P(qe.value.item.changes) + " 个文件", 1)])) : Y("", !0)
54496
54496
  ]),
54497
- Je.value.length ? (U(), W("ol", _0, [(U(!0), W(H, null, B(Je.value, (e) => (U(), W("li", {
54497
+ Je.value.length ? (U(), W("ol", v0, [(U(!0), W(H, null, B(Je.value, (e) => (U(), W("li", {
54498
54498
  key: `${e.kind}-${e.at}-${e.phase || ""}`,
54499
54499
  class: j(`log-${e.kind}`)
54500
54500
  }, [K("time", null, P(ct(e.at)), 1), e.kind === "phase" ? (U(), W(H, { key: 0 }, [K("i", {
54501
- class: j(["wf-swatch", `is-${I(e1)[e.phase]}`]),
54501
+ class: j(["wf-swatch", `is-${I(t1)[e.phase]}`]),
54502
54502
  "data-tone": Ze.value.get(qe.value.item.member),
54503
54503
  "aria-hidden": "true"
54504
- }, null, 10, v0), K("span", null, [
54505
- J(P(I($$)[e.phase]), 1),
54504
+ }, null, 10, y0), K("span", null, [
54505
+ J(P(I(e1)[e.phase]), 1),
54506
54506
  e.tool ? (U(), W(H, { key: 0 }, [J(" · " + P(e.tool), 1)], 64)) : Y("", !0),
54507
- J(" · " + P(e.live ? "进行中" : I(i1)(e.duration)), 1)
54508
- ])], 64)) : (U(), W("span", y0, P(e.text), 1))], 2))), 128))])) : (U(), W("p", b0, "这次执行没有阶段明细或过程说明。"))
54509
- ], 12, u0)) : Y("", !0),
54510
- 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 }, [
54507
+ J(" · " + P(e.live ? "进行中" : I(a1)(e.duration)), 1)
54508
+ ])], 64)) : (U(), W("span", b0, P(e.text), 1))], 2))), 128))])) : (U(), W("p", x0, "这次执行没有阶段明细或过程说明。"))
54509
+ ], 12, d0)) : Y("", !0),
54510
+ me.value === Y0 ? (U(), W("div", S0, [...t[26] ||= [K("span", { class: "wf-player-note" }, "回放按轮进行:在上方选一轮即可回放", -1)]])) : (U(), W("div", C0, [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 }, [
54511
54511
  K("button", {
54512
54512
  type: "button",
54513
54513
  class: "wf-player-button",
54514
54514
  "aria-label": O.playing ? "暂停回放" : "回放这一轮",
54515
54515
  onClick: t[8] ||= (e) => O.playing ? Le() : Fe()
54516
- }, [q(o, { name: O.playing ? "i-lucide-pause" : "i-lucide-play" }, null, 8, ["name"])], 8, C0),
54516
+ }, [q(o, { name: O.playing ? "i-lucide-pause" : "i-lucide-play" }, null, 8, ["name"])], 8, w0),
54517
54517
  K("button", {
54518
54518
  type: "button",
54519
54519
  class: "wf-player-button",
54520
54520
  "aria-label": "从头回放",
54521
54521
  disabled: !be.value,
54522
54522
  onClick: Re
54523
- }, [q(o, { name: "i-lucide-rotate-ccw" })], 8, w0),
54523
+ }, [q(o, { name: "i-lucide-rotate-ccw" })], 8, T0),
54524
54524
  q(r, {
54525
54525
  modelValue: O.speed,
54526
54526
  "onUpdate:modelValue": t[9] ||= (e) => O.speed = e,
@@ -54547,13 +54547,13 @@ var D1 = {
54547
54547
  value: be.value ? O.position : ye.value.duration,
54548
54548
  "aria-label": "回放位置",
54549
54549
  onInput: ze
54550
- }, null, 40, T0),
54551
- K("span", E0, P(I(i1)(be.value ? O.position : ye.value.duration)) + " / " + P(I(i1)(ye.value.duration)), 1)
54550
+ }, null, 40, E0),
54551
+ K("span", D0, P(I(a1)(be.value ? O.position : ye.value.duration)) + " / " + P(I(a1)(ye.value.duration)), 1)
54552
54552
  ], 64))])),
54553
- 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", {
54553
+ Te.value.folds.length || re.value.executions.length >= re.value.execution_limit ? (U(), W("footer", O0, [Te.value.folds.length ? (U(), W("span", k0, [t[29] ||= K("i", {
54554
54554
  class: "wf-swatch is-fold",
54555
54555
  "aria-hidden": "true"
54556
- }, 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)
54556
+ }, null, -1), J("已折叠 " + P(Te.value.folds.length) + " 段超过 " + P(I(r1) / 6e4) + " 分钟的空闲", 1)])) : Y("", !0), re.value.executions.length >= re.value.execution_limit ? (U(), W("span", A0, "只列出最近 " + P(re.value.execution_limit) + " 次讨论执行与 " + P(re.value.execution_limit) + " 次协作执行", 1)) : Y("", !0)])) : Y("", !0)
54557
54557
  ], 512)) : Y("", !0),
54558
54558
  v.value ? (U(), W("div", {
54559
54559
  key: 3,
@@ -54573,79 +54573,79 @@ var D1 = {
54573
54573
  onClick: t[10] ||= (e) => v.value = null
54574
54574
  }, [q(o, { name: "i-lucide-x" })])) : Y("", !0),
54575
54575
  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)]),
54576
- 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),
54577
- 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)
54578
- ], 14, A0)) : Y("", !0)
54576
+ v.value.piece.text ? (U(), W("p", M0, P(v.value.piece.text), 1)) : v.value.row.item.reason ? (U(), W("p", N0, P(v.value.row.item.reason), 1)) : Y("", !0),
54577
+ gt.value.length ? (U(), W(H, { key: 3 }, [K("small", P0, 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)
54578
+ ], 14, j0)) : Y("", !0)
54579
54579
  ]);
54580
54580
  };
54581
54581
  }
54582
- }, [["__scopeId", "data-v-ae571187"]]), $0 = {
54582
+ }, [["__scopeId", "data-v-ae571187"]]), e2 = {
54583
54583
  id: "channel-sidebar",
54584
54584
  class: "channel-sidebar",
54585
54585
  "aria-label": "房间导航"
54586
- }, 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 = [
54586
+ }, t2 = { class: "channel-sidebar-content" }, n2 = { class: "channel-directory-heading channel-tools-heading" }, r2 = ["aria-expanded"], i2 = { class: "channel-sidebar-footer" }, a2 = ["aria-label"], o2 = { class: "channel-self" }, s2 = ["title"], c2 = [
54587
54587
  "aria-valuemax",
54588
54588
  "aria-valuenow",
54589
54589
  "aria-valuetext"
54590
- ], 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 = {
54590
+ ], l2 = { class: "channel-main" }, u2 = { class: "channel-header" }, d2 = { class: "channel-title-icon" }, f2 = { class: "channel-title" }, p2 = { class: "channel-title-copy" }, m2 = ["title"], h2 = {
54591
54591
  key: 2,
54592
54592
  class: "channel-header-context"
54593
- }, h2 = { class: "channel-header-actions" }, g2 = {
54593
+ }, g2 = { class: "channel-header-actions" }, _2 = {
54594
54594
  key: 0,
54595
54595
  class: "channel-launch-recovery",
54596
54596
  "aria-label": "未完成的创建或启动请求"
54597
- }, _2 = { role: "status" }, v2 = { class: "button-row" }, y2 = {
54597
+ }, v2 = { role: "status" }, y2 = { class: "button-row" }, b2 = {
54598
54598
  key: 1,
54599
54599
  class: "channel-tabbar"
54600
- }, b2 = { class: "channel-brief-inner" }, x2 = { class: "channel-brief-heading" }, S2 = ["aria-label", "aria-expanded"], C2 = {
54600
+ }, x2 = { class: "channel-brief-inner" }, S2 = { class: "channel-brief-heading" }, C2 = ["aria-label", "aria-expanded"], w2 = {
54601
54601
  key: 0,
54602
54602
  class: "channel-brief-preview"
54603
- }, w2 = {
54603
+ }, T2 = {
54604
54604
  id: "channel-brief-content",
54605
54605
  class: "channel-brief-content"
54606
- }, T2 = ["innerHTML"], E2 = { class: "channel-brief-footer" }, D2 = { class: "channel-brief-status" }, O2 = { class: "channel-content" }, k2 = {
54606
+ }, E2 = ["innerHTML"], D2 = { class: "channel-brief-footer" }, O2 = { class: "channel-brief-status" }, k2 = { class: "channel-content" }, A2 = {
54607
54607
  key: 0,
54608
54608
  class: "content-page merged-page",
54609
54609
  role: "tabpanel",
54610
54610
  "aria-label": "讨论"
54611
- }, A2 = {
54611
+ }, j2 = {
54612
54612
  key: 1,
54613
54613
  class: "merged-section",
54614
54614
  "aria-label": "当前讨论"
54615
- }, j2 = { class: "page-heading" }, M2 = {
54615
+ }, M2 = { class: "page-heading" }, N2 = {
54616
54616
  key: 0,
54617
54617
  class: "fine-print"
54618
- }, N2 = {
54618
+ }, P2 = {
54619
54619
  class: "merged-section channel-summary",
54620
54620
  "aria-label": "当前共识"
54621
- }, P2 = { class: "page-heading" }, F2 = { class: "form-footer" }, I2 = { class: "button-row" }, L2 = { class: "consensus-card is-brief" }, R2 = ["innerHTML"], z2 = {
54621
+ }, F2 = { class: "page-heading" }, I2 = { class: "form-footer" }, L2 = { class: "button-row" }, R2 = { class: "consensus-card is-brief" }, z2 = ["innerHTML"], B2 = {
54622
54622
  key: 0,
54623
54623
  class: "consensus-card"
54624
- }, B2 = ["innerHTML"], V2 = {
54624
+ }, V2 = ["innerHTML"], H2 = {
54625
54625
  key: 2,
54626
54626
  class: "fine-print"
54627
- }, H2 = {
54627
+ }, U2 = {
54628
54628
  key: 1,
54629
54629
  class: "content-page merged-page",
54630
54630
  role: "tabpanel",
54631
54631
  "aria-label": "房间"
54632
- }, U2 = {
54632
+ }, W2 = {
54633
54633
  key: 2,
54634
54634
  class: "content-page merged-page",
54635
54635
  role: "tabpanel",
54636
54636
  "aria-label": "执行"
54637
- }, W2 = {
54637
+ }, G2 = {
54638
54638
  key: 1,
54639
54639
  class: "channel-empty"
54640
- }, G2 = ["aria-valuenow", "aria-valuetext"], K2 = {
54640
+ }, K2 = ["aria-valuenow", "aria-valuetext"], q2 = {
54641
54641
  key: 2,
54642
54642
  id: "channel-member-rail",
54643
54643
  class: "channel-member-rail",
54644
54644
  "aria-label": "当前焦点与讨论进度"
54645
- }, q2 = { class: "channel-rail-board" }, J2 = {
54645
+ }, J2 = { class: "channel-rail-board" }, Y2 = {
54646
54646
  key: 1,
54647
54647
  class: "progress-board is-docked"
54648
- }, 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 = {
54648
+ }, X2 = { class: "channel-detail-title" }, Z2 = { class: "info-section" }, Q2 = "ai-codiscuss-channel-layout", $2 = 220, e4 = 440, t4 = 280, n4 = 16, r4 = 180, i4 = 400, a4 = 248, o4 = 16, s4 = 480, c4 = 1200, l4 = 0, u4 = {
54649
54649
  __name: "ChannelWorkspace",
54650
54650
  setup(e) {
54651
54651
  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 = [{
@@ -54667,14 +54667,14 @@ var D1 = {
54667
54667
  label: "宽",
54668
54668
  width: 1240
54669
54669
  }
54670
- }, 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), E = /* @__PURE__ */ F(b.collapsed), ee = /* @__PURE__ */ F(!0), D = /* @__PURE__ */ F(b.rail_collapsed), O = Z(() => T.value >= s4), te = Z(() => O.value && !E.value), ne = Z(() => t.value.tab === "discussion" && !D.value), re = Z(() => O.value && t.value.tab === "discussion" ? D.value ? "展开房间概览" : "收起房间概览" : "房间资料与参与者"), ie = Z(() => {
54670
+ }, 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), E = /* @__PURE__ */ F(b.collapsed), ee = /* @__PURE__ */ F(!0), D = /* @__PURE__ */ F(b.rail_collapsed), O = Z(() => T.value >= c4), te = Z(() => O.value && !E.value), ne = Z(() => t.value.tab === "discussion" && !D.value), re = Z(() => O.value && t.value.tab === "discussion" ? D.value ? "展开房间概览" : "收起房间概览" : "房间资料与参与者"), ie = Z(() => {
54671
54671
  let e = document.createElement("template");
54672
54672
  return e.innerHTML = o.value?.rendered_brief || "", e.content.textContent.replace(/\s+/g, " ").trim();
54673
- }), 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(() => ({
54673
+ }), ae = /* @__PURE__ */ F(null), oe = /* @__PURE__ */ F(0), k = null, se = /* @__PURE__ */ F(null), ce = /* @__PURE__ */ F(null), le = Z(() => Math.min(i4, Math.max(r4, T.value - s4 - l4))), ue = Z(() => Math.min(w.value, le.value)), de = Z(() => ({
54674
54674
  "--channel-reading-width": `${y[x.value].width}px`,
54675
54675
  "--channel-rail-width": `${C.value}px`,
54676
54676
  "--channel-topbar-height": `${oe.value}px`,
54677
- "--channel-main-columns": te.value ? `${ue.value}px ${c4}px minmax(0, 1fr)` : "minmax(0, 1fr)"
54677
+ "--channel-main-columns": te.value ? `${ue.value}px ${l4}px minmax(0, 1fr)` : "minmax(0, 1fr)"
54678
54678
  })), fe = Object.entries(y).map(([e, t]) => ({
54679
54679
  value: e,
54680
54680
  label: t.label
@@ -54771,12 +54771,12 @@ var D1 = {
54771
54771
  }
54772
54772
  function Ne() {
54773
54773
  try {
54774
- let e = JSON.parse(localStorage.getItem(Z2)) || {};
54774
+ let e = JSON.parse(localStorage.getItem(Q2)) || {};
54775
54775
  return {
54776
54776
  reading: Object.hasOwn(y, e.reading) ? e.reading : "default",
54777
54777
  effects: e.effects === "reduced" ? "reduced" : "full",
54778
- rail: Number.isFinite(e.rail) ? Math.min($2, Math.max(Q2, e.rail)) : e4,
54779
- nav: Number.isFinite(e.nav) ? Math.min(r4, Math.max(n4, e.nav)) : Pe(),
54778
+ rail: Number.isFinite(e.rail) ? Math.min(e4, Math.max($2, e.rail)) : t4,
54779
+ nav: Number.isFinite(e.nav) ? Math.min(i4, Math.max(r4, e.nav)) : Pe(),
54780
54780
  collapsed: e.collapsed === !0,
54781
54781
  brief_collapsed: e.brief_collapsed === !0,
54782
54782
  rail_collapsed: e.rail_collapsed === !0
@@ -54785,7 +54785,7 @@ var D1 = {
54785
54785
  return {
54786
54786
  reading: "default",
54787
54787
  effects: "full",
54788
- rail: e4,
54788
+ rail: t4,
54789
54789
  nav: Pe(),
54790
54790
  collapsed: !1,
54791
54791
  brief_collapsed: !1,
@@ -54794,11 +54794,11 @@ var D1 = {
54794
54794
  }
54795
54795
  }
54796
54796
  function Pe() {
54797
- return typeof window > "u" ? i4 : window.innerWidth >= 1900 ? 280 : window.innerWidth <= 980 ? 220 : i4;
54797
+ return typeof window > "u" ? a4 : window.innerWidth >= 1900 ? 280 : window.innerWidth <= 980 ? 220 : a4;
54798
54798
  }
54799
54799
  function Fe() {
54800
54800
  try {
54801
- localStorage.setItem(Z2, JSON.stringify({
54801
+ localStorage.setItem(Q2, JSON.stringify({
54802
54802
  reading: x.value,
54803
54803
  effects: S.value,
54804
54804
  rail: C.value,
@@ -54829,19 +54829,19 @@ var D1 = {
54829
54829
  }, e.currentTarget.setPointerCapture(e.pointerId));
54830
54830
  }
54831
54831
  function Ve(e) {
54832
- se.value?.pointer === e.pointerId && (C.value = Math.round(Math.min($2, Math.max(Q2, se.value.width + se.value.x - e.clientX))));
54832
+ se.value?.pointer === e.pointerId && (C.value = Math.round(Math.min(e4, Math.max($2, se.value.width + se.value.x - e.clientX))));
54833
54833
  }
54834
54834
  function He(e) {
54835
54835
  se.value?.pointer === e.pointerId && (se.value = null, e.currentTarget.hasPointerCapture(e.pointerId) && e.currentTarget.releasePointerCapture(e.pointerId), Fe());
54836
54836
  }
54837
54837
  function Ue(e) {
54838
54838
  let t = {
54839
- ArrowLeft: C.value + t4,
54840
- ArrowRight: C.value - t4,
54841
- Home: Q2,
54842
- End: $2
54839
+ ArrowLeft: C.value + n4,
54840
+ ArrowRight: C.value - n4,
54841
+ Home: $2,
54842
+ End: e4
54843
54843
  };
54844
- Object.hasOwn(t, e.key) && (e.preventDefault(), C.value = Math.min($2, Math.max(Q2, t[e.key])), Fe());
54844
+ Object.hasOwn(t, e.key) && (e.preventDefault(), C.value = Math.min(e4, Math.max($2, t[e.key])), Fe());
54845
54845
  }
54846
54846
  function We(e) {
54847
54847
  e.button === 0 && (e.preventDefault(), e.currentTarget.focus(), ce.value = {
@@ -54851,19 +54851,19 @@ var D1 = {
54851
54851
  }, e.currentTarget.setPointerCapture(e.pointerId));
54852
54852
  }
54853
54853
  function Ge(e) {
54854
- ce.value?.pointer === e.pointerId && (w.value = Math.round(Math.min(le.value, Math.max(n4, ce.value.width + e.clientX - ce.value.x))));
54854
+ ce.value?.pointer === e.pointerId && (w.value = Math.round(Math.min(le.value, Math.max(r4, ce.value.width + e.clientX - ce.value.x))));
54855
54855
  }
54856
54856
  function Ke(e) {
54857
54857
  ce.value?.pointer === e.pointerId && (ce.value = null, e.currentTarget.hasPointerCapture(e.pointerId) && e.currentTarget.releasePointerCapture(e.pointerId), Fe());
54858
54858
  }
54859
54859
  function qe(e) {
54860
54860
  let t = {
54861
- ArrowLeft: ue.value - a4,
54862
- ArrowRight: ue.value + a4,
54863
- Home: n4,
54861
+ ArrowLeft: ue.value - o4,
54862
+ ArrowRight: ue.value + o4,
54863
+ Home: r4,
54864
54864
  End: le.value
54865
54865
  };
54866
- Object.hasOwn(t, e.key) && (e.preventDefault(), w.value = Math.min(le.value, Math.max(n4, t[e.key])), Fe());
54866
+ Object.hasOwn(t, e.key) && (e.preventDefault(), w.value = Math.min(le.value, Math.max(r4, t[e.key])), Fe());
54867
54867
  }
54868
54868
  return (e, r) => {
54869
54869
  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;
@@ -54875,10 +54875,10 @@ var D1 = {
54875
54875
  }]),
54876
54876
  style: A(de.value)
54877
54877
  }, [
54878
- K("aside", $0, [
54878
+ K("aside", e2, [
54879
54879
  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),
54880
- K("div", e2, [
54881
- q(kZ, {
54880
+ K("div", t2, [
54881
+ q(AZ, {
54882
54882
  onSelect: Ee,
54883
54883
  onManage: we,
54884
54884
  onCreate: Oe,
@@ -54888,12 +54888,12 @@ var D1 = {
54888
54888
  onArchiveFolder: Me,
54889
54889
  onArchives: Te
54890
54890
  }),
54891
- K("div", t2, [K("button", {
54891
+ K("div", n2, [K("button", {
54892
54892
  type: "button",
54893
54893
  class: "channel-section-toggle",
54894
54894
  "aria-expanded": f.value,
54895
54895
  onClick: r[0] ||= (e) => f.value = !f.value
54896
- }, [q(y, { name: f.value ? "i-lucide-chevron-down" : "i-lucide-chevron-right" }, null, 8, ["name"]), r[29] ||= J("频道工具", -1)], 8, n2)]),
54896
+ }, [q(y, { name: f.value ? "i-lucide-chevron-down" : "i-lucide-chevron-right" }, null, 8, ["name"]), r[29] ||= J("频道工具", -1)], 8, r2)]),
54897
54897
  f.value ? (U(), G(b, {
54898
54898
  key: 0,
54899
54899
  items: xe.value,
@@ -54909,7 +54909,7 @@ var D1 = {
54909
54909
  }
54910
54910
  }, null, 8, ["items"])) : Y("", !0)
54911
54911
  ]),
54912
- K("footer", r2, [K("button", {
54912
+ K("footer", i2, [K("button", {
54913
54913
  type: "button",
54914
54914
  class: "channel-self-button",
54915
54915
  "aria-label": `账号与设置:${I(n).display_name(I(_))}${Se.value ? "," + Se.value : ""}`,
@@ -54925,10 +54925,10 @@ var D1 = {
54925
54925
  "text",
54926
54926
  "alt",
54927
54927
  "class"
54928
- ]), 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", {
54928
+ ]), K("span", o2, [K("strong", null, P(I(n).display_name(I(_))), 1), K("span", { class: j(["channel-connection", { "is-action": Se.value }]) }, [K("span", {
54929
54929
  class: j({ connected: I(t).connected }),
54930
54930
  title: I(t).connected ? "网站已连接" : "网站未连接"
54931
- }, null, 10, o2), J(P(Se.value || (I(t).connected ? "网站已连接" : "网站未连接")), 1)], 2)])], 8, i2), q(D, { text: "设置" }, {
54931
+ }, null, 10, s2), J(P(Se.value || (I(t).connected ? "网站已连接" : "网站未连接")), 1)], 2)])], 8, a2), q(D, { text: "设置" }, {
54932
54932
  default: L(() => [q(T, {
54933
54933
  icon: "i-lucide-settings-2",
54934
54934
  color: "neutral",
@@ -54949,7 +54949,7 @@ var D1 = {
54949
54949
  "aria-label": "调整房间栏宽度",
54950
54950
  "aria-orientation": "vertical",
54951
54951
  "aria-controls": "channel-sidebar",
54952
- "aria-valuemin": n4,
54952
+ "aria-valuemin": r4,
54953
54953
  "aria-valuemax": le.value,
54954
54954
  "aria-valuenow": ue.value,
54955
54955
  "aria-valuetext": `${ue.value} 像素`,
@@ -54960,13 +54960,13 @@ var D1 = {
54960
54960
  onPointercancel: Ke,
54961
54961
  onLostpointercapture: Ke,
54962
54962
  onKeydown: qe
54963
- }, null, 40, s2)) : Y("", !0),
54964
- K("main", c2, [K("div", {
54963
+ }, null, 40, c2)) : Y("", !0),
54964
+ K("main", l2, [K("div", {
54965
54965
  ref_key: "topbar",
54966
54966
  ref: ae,
54967
54967
  class: j(["channel-topbar", { "is-overlay": o.value && I(t).tab === "discussion" }])
54968
54968
  }, [
54969
- K("header", l2, [
54969
+ K("header", u2, [
54970
54970
  O.value ? (U(), G(D, {
54971
54971
  key: 0,
54972
54972
  text: E.value ? "展开房间栏" : "收起房间栏"
@@ -54994,8 +54994,8 @@ var D1 = {
54994
54994
  "aria-expanded": d.value,
54995
54995
  onClick: r[4] ||= (e) => d.value = !0
54996
54996
  }, null, 8, ["aria-expanded"])),
54997
- K("span", u2, [q(y, { name: "i-lucide-hash" })]),
54998
- K("div", d2, [K("div", f2, [K("h1", { title: o.value?.title }, P(o.value?.title || "共议"), 9, p2)]), o.value?.archived ? (U(), G(oe, {
54997
+ K("span", d2, [q(y, { name: "i-lucide-hash" })]),
54998
+ K("div", f2, [K("div", p2, [K("h1", { title: o.value?.title }, P(o.value?.title || "共议"), 9, m2)]), o.value?.archived ? (U(), G(oe, {
54999
54999
  key: 0,
55000
55000
  color: "neutral",
55001
55001
  variant: "subtle",
@@ -55004,12 +55004,12 @@ var D1 = {
55004
55004
  default: L(() => [...r[31] ||= [J("已存档", -1)]]),
55005
55005
  _: 1
55006
55006
  })) : Y("", !0)]),
55007
- o.value ? (U(), W("span", m2, [
55007
+ o.value ? (U(), W("span", h2, [
55008
55008
  J(P(me.find((e) => e.value === I(t).tab)?.label), 1),
55009
55009
  r[32] ||= K("span", null, "·", -1),
55010
55010
  J(P(o.value.message_count) + " 条记录", 1)
55011
55011
  ])) : Y("", !0),
55012
- K("div", h2, [
55012
+ K("div", g2, [
55013
55013
  I(t).tab === "discussion" ? (U(), W("form", {
55014
55014
  key: 0,
55015
55015
  class: "channel-search",
@@ -55067,7 +55067,7 @@ var D1 = {
55067
55067
  ])]),
55068
55068
  _: 1
55069
55069
  })) : Y("", !0),
55070
- o.value && !(ne.value && O.value) ? (U(), G(a$, { key: 2 })) : Y("", !0)
55070
+ o.value && !(ne.value && O.value) ? (U(), G(o$, { key: 2 })) : Y("", !0)
55071
55071
  ]),
55072
55072
  q(D, { text: re.value }, {
55073
55073
  default: L(() => [q(T, {
@@ -55088,12 +55088,12 @@ var D1 = {
55088
55088
  _: 1
55089
55089
  }, 8, ["text"])
55090
55090
  ]),
55091
- I(t).launch.recoveries.length ? (U(), W("section", g2, [
55091
+ I(t).launch.recoveries.length ? (U(), W("section", _2, [
55092
55092
  r[33] ||= K("h2", null, "继续未完成的请求", -1),
55093
55093
  (U(!0), W(H, null, B(I(t).launch.recoveries, (e) => (U(), W("article", { key: e.id }, [
55094
55094
  K("strong", null, P(e.title), 1),
55095
- K("p", _2, P(e.error || "启动结果尚未确认;原请求已保存在此浏览器中。"), 1),
55096
- K("div", v2, [
55095
+ K("p", v2, P(e.error || "启动结果尚未确认;原请求已保存在此浏览器中。"), 1),
55096
+ K("div", y2, [
55097
55097
  q(T, {
55098
55098
  label: e.direct ? "继续创建房间" : "继续本次启动",
55099
55099
  size: "sm",
@@ -55126,7 +55126,7 @@ var D1 = {
55126
55126
  ]))), 128)),
55127
55127
  r[34] ||= K("small", null, "移除待办不会删除房间或停止讨论。", -1)
55128
55128
  ])) : Y("", !0),
55129
- o.value ? (U(), W("div", y2, [q(he, {
55129
+ o.value ? (U(), W("div", b2, [q(he, {
55130
55130
  modelValue: pe.value,
55131
55131
  "onUpdate:modelValue": r[9] ||= (e) => pe.value = e,
55132
55132
  items: me,
@@ -55141,7 +55141,7 @@ var D1 = {
55141
55141
  key: 2,
55142
55142
  class: j(["channel-host-brief", { "is-collapsed": ee.value }]),
55143
55143
  "aria-label": "主持简报"
55144
- }, [K("div", b2, [K("div", x2, [K("button", {
55144
+ }, [K("div", x2, [K("div", S2, [K("button", {
55145
55145
  type: "button",
55146
55146
  class: "channel-brief-toggle",
55147
55147
  "aria-label": ee.value ? "展开主持简报" : "收起主持简报",
@@ -55151,8 +55151,8 @@ var D1 = {
55151
55151
  }, [
55152
55152
  q(y, { name: ee.value ? "i-lucide-chevron-right" : "i-lucide-chevron-down" }, null, 8, ["name"]),
55153
55153
  K("strong", null, "主持简报" + P(ee.value ? ":" : ""), 1),
55154
- ee.value ? (U(), W("span", C2, P(ie.value), 1)) : Y("", !0)
55155
- ], 8, S2), ee.value ? Y("", !0) : (U(), G(T, {
55154
+ ee.value ? (U(), W("span", w2, P(ie.value), 1)) : Y("", !0)
55155
+ ], 8, C2), ee.value ? Y("", !0) : (U(), G(T, {
55156
55156
  key: 0,
55157
55157
  label: "更新简报",
55158
55158
  color: "neutral",
@@ -55160,20 +55160,20 @@ var D1 = {
55160
55160
  size: "xs",
55161
55161
  class: "channel-brief-update",
55162
55162
  onClick: r[10] ||= (e) => I(i)("tab", "context")
55163
- }))]), vr(K("div", w2, [K("div", {
55163
+ }))]), vr(K("div", T2, [K("div", {
55164
55164
  class: "channel-brief-text markdown-body",
55165
55165
  innerHTML: o.value.rendered_brief
55166
- }, 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, !ee.value]])])], 2)) : Y("", !0)
55166
+ }, null, 8, E2), K("div", D2, [K("span", O2, P(I(n).progress_speaker(o.value)), 1), K("small", null, P(I(n).brief_meta(o.value)), 1)])], 512), [[Vc, !ee.value]])])], 2)) : Y("", !0)
55167
55167
  ], 2), o.value ? (U(), W("div", {
55168
55168
  key: 0,
55169
55169
  class: j(["channel-body", { "channel-body-discussion": I(t).tab === "discussion" }])
55170
- }, [K("div", O2, [
55170
+ }, [K("div", k2, [
55171
55171
  vr(q(uK, {
55172
55172
  onDetail: De,
55173
55173
  onEdit: r[11] ||= (e) => s.value = "edit"
55174
55174
  }, null, 512), [[Vc, I(t).tab === "discussion"]]),
55175
- I(t).tab === "history" ? (U(), W("div", k2, [
55176
- ge.value ? (U(), W("section", A2, [K("div", j2, [r[35] ||= K("div", null, [K("h2", null, "当前讨论"), K("p", null, "没有进行中的讨论。开启后由主持人推进成员轮流发言,到上限或结束后房间回到自由协作,记录与结论保留。")], -1), q(T, {
55175
+ I(t).tab === "history" ? (U(), W("div", A2, [
55176
+ ge.value ? (U(), W("section", j2, [K("div", M2, [r[35] ||= K("div", null, [K("h2", null, "当前讨论"), K("p", null, "没有进行中的讨论。开启后由主持人推进成员轮流发言,到上限或结束后房间回到自由协作,记录与结论保留。")], -1), q(T, {
55177
55177
  icon: "i-lucide-messages-square",
55178
55178
  label: "开启讨论",
55179
55179
  variant: "outline",
@@ -55181,13 +55181,13 @@ var D1 = {
55181
55181
  class: "channel-surface-button",
55182
55182
  disabled: !ve.value,
55183
55183
  onClick: r[13] ||= (e) => _e.value = !0
55184
- }, null, 8, ["disabled"])]), !ve.value && !o.value.archived ? (U(), W("p", M2, "开启讨论需要一位由本机唤醒的 AI 主持人,且本机服务在线。")) : Y("", !0)])) : (U(), G(jK, {
55184
+ }, null, 8, ["disabled"])]), !ve.value && !o.value.archived ? (U(), W("p", N2, "开启讨论需要一位由本机唤醒的 AI 主持人,且本机服务在线。")) : Y("", !0)])) : (U(), G(jK, {
55185
55185
  key: 0,
55186
55186
  section: "host",
55187
55187
  onOpen: r[12] ||= (e) => s.value = e,
55188
55188
  onDetail: De
55189
55189
  })),
55190
- 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, {
55190
+ K("section", P2, [K("div", F2, [r[36] ||= K("div", null, [K("h2", null, "当前共识"), K("p", null, "主持人整理的结论、共识与分歧,用 #消息编号 保留依据;讨论结束时保存进下方记录。")], -1), M.value ? Y("", !0) : (U(), G(T, {
55191
55191
  key: 0,
55192
55192
  icon: "i-lucide-pencil",
55193
55193
  label: "编辑",
@@ -55231,7 +55231,7 @@ var D1 = {
55231
55231
  }, null, 8, ["modelValue"])]),
55232
55232
  _: 1
55233
55233
  }),
55234
- K("div", F2, [K("span", null, "依据消息截止 #" + P(I(t).snapshot_id), 1), K("div", I2, [q(T, {
55234
+ K("div", I2, [K("span", null, "依据消息截止 #" + P(I(t).snapshot_id), 1), K("div", L2, [q(T, {
55235
55235
  label: "取消",
55236
55236
  color: "neutral",
55237
55237
  variant: "ghost",
@@ -55244,7 +55244,7 @@ var D1 = {
55244
55244
  class: "channel-primary-button",
55245
55245
  loading: I(a) === "save_context"
55246
55246
  }, null, 8, ["loading"])])])
55247
- ], 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", {
55247
+ ], 32)) : o.value.host_brief?.text || o.value.state_text ? (U(), W(H, { key: 1 }, [K("div", R2, [K("h3", null, [r[37] ||= J("主持简报", -1), o.value.state_until ? (U(), W("button", {
55248
55248
  key: 0,
55249
55249
  type: "button",
55250
55250
  class: "subtle-link",
@@ -55252,7 +55252,7 @@ var D1 = {
55252
55252
  }, "整理至 #" + P(o.value.state_until), 1)) : Y("", !0)]), K("div", {
55253
55253
  class: "markdown-body",
55254
55254
  innerHTML: o.value.rendered_brief
55255
- }, null, 8, R2)]), ye.value ? (U(), W("details", z2, [K("summary", null, [
55255
+ }, null, 8, z2)]), ye.value ? (U(), W("details", B2, [K("summary", null, [
55256
55256
  r[38] ||= K("h3", null, "详细共识与进度", -1),
55257
55257
  r[39] ||= K("span", null, "依据、已处理内容、未决问题与下一步", -1),
55258
55258
  q(y, {
@@ -55262,21 +55262,21 @@ var D1 = {
55262
55262
  ]), K("div", {
55263
55263
  class: "markdown-body consensus-state",
55264
55264
  innerHTML: ye.value
55265
- }, null, 8, B2)])) : Y("", !0)], 64)) : (U(), W("p", V2, "还没有共识。主持人会在讨论中整理,也可以点“编辑”自己写。"))]),
55266
- q(b$, { onDetail: De }),
55267
- q(qZ, {
55265
+ }, null, 8, V2)])) : Y("", !0)], 64)) : (U(), W("p", H2, "还没有共识。主持人会在讨论中整理,也可以点“编辑”自己写。"))]),
55266
+ q(x$, { onDetail: De }),
55267
+ q(JZ, {
55268
55268
  open: _e.value,
55269
55269
  "onUpdate:open": r[19] ||= (e) => _e.value = e
55270
55270
  }, null, 8, ["open"])
55271
55271
  ])) : Y("", !0),
55272
- I(t).tab === "overview" ? (U(), W("div", H2, [q(Q$), ge.value ? Y("", !0) : (U(), G(jK, {
55272
+ I(t).tab === "overview" ? (U(), W("div", U2, [q($$), ge.value ? Y("", !0) : (U(), G(jK, {
55273
55273
  key: 0,
55274
55274
  section: "access",
55275
55275
  onOpen: r[20] ||= (e) => s.value = e,
55276
55276
  onDetail: De
55277
55277
  }))])) : Y("", !0),
55278
- I(t).tab === "timeline" ? (U(), W("div", U2, [q(Q0, { onDetail: De })])) : Y("", !0)
55279
- ])], 2)) : (U(), W("div", W2, [
55278
+ I(t).tab === "timeline" ? (U(), W("div", W2, [q($0, { onDetail: De })])) : Y("", !0)
55279
+ ])], 2)) : (U(), W("div", G2, [
55280
55280
  q(y, { name: "i-lucide-hash" }),
55281
55281
  r[40] ||= K("h2", null, "新建一个协作房间", -1),
55282
55282
  r[41] ||= K("p", null, "邀请 AI 一起协作,随时 @ 提问;需要时开启讨论,保留所有人的观点。", -1),
@@ -55295,8 +55295,8 @@ var D1 = {
55295
55295
  "aria-label": "调整右侧栏宽度",
55296
55296
  "aria-orientation": "vertical",
55297
55297
  "aria-controls": "channel-member-rail",
55298
- "aria-valuemin": Q2,
55299
- "aria-valuemax": $2,
55298
+ "aria-valuemin": $2,
55299
+ "aria-valuemax": e4,
55300
55300
  "aria-valuenow": C.value,
55301
55301
  "aria-valuetext": `${C.value} 像素`,
55302
55302
  title: "拖动调整右侧栏宽度,也可使用左右方向键",
@@ -55306,8 +55306,8 @@ var D1 = {
55306
55306
  onPointercancel: He,
55307
55307
  onLostpointercapture: He,
55308
55308
  onKeydown: Ue
55309
- }, null, 40, G2)) : Y("", !0),
55310
- 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),
55309
+ }, null, 40, K2)) : Y("", !0),
55310
+ ne.value ? (U(), W("aside", q2, [K("section", J2, [o.value ? (U(), G(t$, { key: 0 })) : (U(), W("div", Y2, [...r[42] ||= [K("header", { class: "pb-header" }, [K("strong", null, "讨论进度")], -1), K("p", { class: "channel-rail-empty" }, "暂无房间,新建讨论后在这里查看进度与参与者。", -1)]]))])])) : Y("", !0),
55311
55311
  q(Pe, {
55312
55312
  open: d.value,
55313
55313
  "onUpdate:open": r[23] ||= (e) => d.value = e,
@@ -55319,7 +55319,7 @@ var D1 = {
55319
55319
  body: "channel-drawer-body"
55320
55320
  }
55321
55321
  }, {
55322
- body: L(() => [q(kZ, {
55322
+ body: L(() => [q(AZ, {
55323
55323
  onSelect: Ee,
55324
55324
  onManage: we,
55325
55325
  onCreate: Oe,
@@ -55351,7 +55351,7 @@ var D1 = {
55351
55351
  }
55352
55352
  }, {
55353
55353
  body: L(() => [o.value ? (U(), W(H, { key: 0 }, [
55354
- K("div", Y2, [q(y, { name: "i-lucide-hash" }), K("h2", null, P(o.value.title), 1)]),
55354
+ K("div", X2, [q(y, { name: "i-lucide-hash" }), K("h2", null, P(o.value.title), 1)]),
55355
55355
  (U(), W(H, null, B([
55356
55356
  {
55357
55357
  key: "goal",
@@ -55378,7 +55378,7 @@ var D1 = {
55378
55378
  class: "info-section"
55379
55379
  }, [K("h3", null, P(e.label), 1), K("p", null, P(o.value[e.key] || "尚未填写"), 1)])), 64)),
55380
55380
  q(Fe),
55381
- K("section", X2, [r[43] ||= K("h3", null, "参与身份", -1), (U(!0), W(H, null, B(Ce.value, (e) => (U(), W("div", {
55381
+ K("section", Z2, [r[43] ||= K("h3", null, "参与身份", -1), (U(!0), W(H, null, B(Ce.value, (e) => (U(), W("div", {
55382
55382
  key: e.name,
55383
55383
  class: "expert-row"
55384
55384
  }, [
@@ -55411,7 +55411,7 @@ var D1 = {
55411
55411
  ], 64)) : Y("", !0)]),
55412
55412
  _: 1
55413
55413
  }, 8, ["open"]),
55414
- q(XX, {
55414
+ q(ZX, {
55415
55415
  modelValue: s.value,
55416
55416
  "onUpdate:modelValue": r[26] ||= (e) => s.value = e,
55417
55417
  "reading-width": x.value,
@@ -55435,7 +55435,7 @@ var D1 = {
55435
55435
  ], 6);
55436
55436
  };
55437
55437
  }
55438
- }, u4 = {
55438
+ }, d4 = {
55439
55439
  __name: "App",
55440
55440
  setup(e) {
55441
55441
  return br("discussion", OV()), (e, t) => {
@@ -55446,7 +55446,7 @@ var D1 = {
55446
55446
  toaster: null
55447
55447
  }, {
55448
55448
  default: L(() => [q(I(Qz), { "reduced-motion": "user" }, {
55449
- default: L(() => [q(l4)]),
55449
+ default: L(() => [q(u4)]),
55450
55450
  _: 1
55451
55451
  })]),
55452
55452
  _: 1
@@ -55456,8 +55456,8 @@ var D1 = {
55456
55456
  };
55457
55457
  //#endregion
55458
55458
  //#region frontend/main.js
55459
- function d4() {
55460
- bu(u4).use(ph).mount("#modern-root");
55459
+ function f4() {
55460
+ bu(d4).use(ph).mount("#modern-root");
55461
55461
  }
55462
- document.readyState === "loading" ? document.addEventListener("DOMContentLoaded", d4) : d4();
55462
+ document.readyState === "loading" ? document.addEventListener("DOMContentLoaded", f4) : f4();
55463
55463
  //#endregion