ai_co_discuss 0.2.86 → 0.2.87

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
@@ -46635,69 +46635,69 @@ var hU = /*#__PURE__*/ XH({
46635
46635
  ], 64))]);
46636
46636
  };
46637
46637
  }
46638
- }, [["__scopeId", "data-v-ac191f08"]]), YK = { class: "page-heading" }, XK = { class: "topic-brief" }, ZK = { class: "host-status" }, QK = {
46638
+ }, [["__scopeId", "data-v-ac191f08"]]), YK = { class: "page-heading" }, XK = { class: "topic-brief" }, ZK = {
46639
46639
  key: 0,
46640
- class: "turn-panel"
46641
- }, $K = { class: "turn-header" }, eq = { class: "turn-panel host-turn" }, tq = { class: "turn-header" }, nq = { class: "turn-expert" }, rq = { class: "turn-question" }, iq = {
46640
+ class: "host-progress"
46641
+ }, QK = {
46642
+ key: 1,
46643
+ class: "turn-panel host-turn"
46644
+ }, $K = { class: "turn-header" }, eq = { class: "turn-expert" }, tq = { class: "turn-question" }, nq = {
46642
46645
  key: 0,
46643
46646
  class: "button-row turn-actions"
46644
- }, aq = {
46645
- key: 1,
46646
- class: "turn-empty"
46647
- }, oq = {
46647
+ }, rq = { class: "fine-print" }, iq = {
46648
46648
  key: 2,
46649
- class: "fine-print"
46650
- }, sq = { class: "form-footer" }, cq = ["href"], lq = {
46651
- key: 0,
46649
+ class: "host-last-turn"
46650
+ }, aq = { class: "form-footer" }, oq = ["href"], sq = {
46651
+ key: 3,
46652
46652
  class: "fine-print host-schedule-hint"
46653
- }, uq = { class: "page-heading access-heading" }, dq = {
46653
+ }, cq = { class: "page-heading access-heading" }, lq = {
46654
46654
  key: 0,
46655
- class: "access-evidence",
46655
+ class: "host-progress access-evidence",
46656
46656
  "aria-label": "实际执行进展",
46657
46657
  role: "status"
46658
- }, fq = {
46658
+ }, uq = {
46659
46659
  key: 0,
46660
46660
  class: "fine-print"
46661
- }, pq = {
46661
+ }, dq = {
46662
46662
  key: 1,
46663
46663
  class: "access-setup",
46664
46664
  "aria-label": "网页启动入口"
46665
- }, mq = {
46665
+ }, fq = {
46666
46666
  key: 1,
46667
46667
  class: "access-repair"
46668
- }, hq = { class: "access-repair-heading" }, gq = {
46668
+ }, pq = { class: "access-repair-heading" }, mq = {
46669
46669
  key: 0,
46670
46670
  class: "access-repair-fields"
46671
- }, _q = {
46671
+ }, hq = {
46672
46672
  key: 0,
46673
46673
  role: "status",
46674
46674
  class: "fine-print"
46675
- }, vq = {
46675
+ }, gq = {
46676
46676
  key: 1,
46677
46677
  role: "alert",
46678
46678
  class: "fine-print"
46679
- }, yq = {
46679
+ }, _q = {
46680
46680
  key: 2,
46681
46681
  class: "fine-print"
46682
- }, bq = {
46682
+ }, vq = {
46683
46683
  key: 3,
46684
46684
  class: "fine-print"
46685
- }, xq = {
46685
+ }, yq = {
46686
46686
  key: 4,
46687
46687
  class: "fine-print"
46688
- }, Sq = {
46688
+ }, bq = {
46689
46689
  key: 2,
46690
46690
  class: "access-setup",
46691
46691
  "aria-label": "全自动接入步骤"
46692
- }, Cq = { class: "access-section-title" }, wq = {
46692
+ }, xq = { class: "access-section-title" }, Sq = {
46693
46693
  href: "https://github.com/huyan1458/ai_co_discuss/blob/main/docs/runner.md#常驻讨论服务",
46694
46694
  target: "_blank",
46695
46695
  rel: "noopener",
46696
46696
  class: "subtle-link"
46697
- }, Tq = { class: "access-steps" }, Eq = { class: "access-command" }, Dq = { class: "access-command" }, Oq = {
46697
+ }, Cq = { class: "access-steps" }, wq = { class: "access-command" }, Tq = { class: "access-command" }, Eq = {
46698
46698
  key: 3,
46699
46699
  class: "access-disclosure access-workspace"
46700
- }, kq = { class: "access-disclosure-body" }, Aq = { class: "form-two-columns" }, jq = /*#__PURE__*/ XH({
46700
+ }, Dq = { class: "access-disclosure-body" }, Oq = { class: "form-two-columns" }, kq = /*#__PURE__*/ XH({
46701
46701
  __name: "TopicPanel",
46702
46702
  props: { section: {
46703
46703
  type: String,
@@ -46747,108 +46747,104 @@ var hU = /*#__PURE__*/ XH({
46747
46747
  onClick: m[0] ||= (t) => e.$emit("open", "edit")
46748
46748
  })]),
46749
46749
  K("div", XK, [K("div", null, [m[18] ||= K("h3", null, "讨论目标", -1), K("p", null, P(s.value.goal || "待主持人根据用户原文补全"), 1)]), K("div", null, [m[19] ||= K("h3", null, "当前焦点", -1), K("p", null, P(s.value.focus || "尚未设置当前焦点"), 1)])]),
46750
- K("div", ZK, [s.value.limits ? (U(), W("section", QK, [
46751
- K("div", $K, [m[20] ||= K("h3", null, "讨论上限与进度", -1), q(x, {
46750
+ s.value.limits ? (U(), W("div", ZK, [
46751
+ m[20] ||= K("span", null, "进度", -1),
46752
+ K("p", null, P(I(r).limits_label(s.value.limits)), 1),
46753
+ q(x, {
46752
46754
  color: s.value.limits.reached && s.value.phase !== "concluded" ? "warning" : "neutral",
46753
46755
  variant: "subtle"
46754
46756
  }, {
46755
46757
  default: L(() => [J(P(s.value.phase === "concluded" ? "已收束" : s.value.limits.reached ? "已达上限" : s.value.limits.started_at ? "已开始计时" : "尚未计时"), 1)]),
46756
46758
  _: 1
46757
- }, 8, ["color"])]),
46758
- K("p", null, P(I(r).limits_label(s.value.limits)), 1),
46759
+ }, 8, ["color"]),
46759
46760
  s.value.limits.reached && !u.value ? (U(), G(b, {
46760
46761
  key: 0,
46761
46762
  label: "检查并执行到限处理",
46763
+ size: "xs",
46762
46764
  variant: "outline",
46763
46765
  color: "neutral",
46764
46766
  loading: I(a) === "check_limits",
46765
46767
  onClick: m[1] ||= (e) => I(i)("check_limits")
46766
- }, null, 8, ["loading"])) : Y("", !0),
46767
- m[21] ||= K("p", { class: "fine-print" }, "在“编辑议题”中调整参数。自动模式由接入程序检查;手动模式由主持人或此按钮执行到限处理。", -1)
46768
- ])) : Y("", !0)]),
46769
- K("section", eq, [
46770
- K("div", tq, [m[22] ||= K("h3", null, "当前发言安排", -1), q(x, {
46771
- color: l.value ? "primary" : "neutral",
46768
+ }, null, 8, ["loading"])) : Y("", !0)
46769
+ ])) : Y("", !0),
46770
+ l.value ? (U(), W("section", QK, [
46771
+ K("div", $K, [m[21] ||= K("h3", null, "当前发言安排", -1), q(x, {
46772
+ color: "primary",
46772
46773
  variant: "subtle"
46773
46774
  }, {
46774
46775
  default: L(() => [J(P(I(r).turn_label(c.value, s.value)), 1)]),
46775
46776
  _: 1
46776
- }, 8, ["color"])]),
46777
- c.value ? (U(), W(H, { key: 0 }, [
46778
- K("div", nq, [q(S, {
46779
- src: I(r).identities[c.value.expert]?.icon,
46780
- text: I(r).identities[c.value.expert]?.initials,
46781
- alt: c.value.expert,
46782
- class: M(["message-mark channel-avatar", I(r).identities[c.value.expert]?.style])
46783
- }, null, 8, [
46784
- "src",
46785
- "text",
46786
- "alt",
46787
- "class"
46788
- ]), K("div", null, [K("strong", null, P(c.value.expert), 1), K("small", null, "发言安排 #" + P(c.value.id), 1)])]),
46789
- K("p", rq, P(c.value.question), 1),
46790
- l.value ? (U(), W("div", iq, [
46791
- q(b, {
46792
- icon: "i-lucide-copy",
46793
- label: "复制通知",
46794
- disabled: u.value,
46795
- color: "neutral",
46796
- variant: "outline",
46797
- class: "channel-surface-button",
46798
- onClick: m[2] ||= (e) => I(i)("copy_turn")
46799
- }, null, 8, ["disabled"]),
46800
- q(b, {
46801
- icon: "i-lucide-check-check",
46802
- label: "确认已通知",
46803
- color: "neutral",
46804
- variant: "outline",
46805
- class: "channel-surface-button",
46806
- disabled: u.value || c.value.status !== "pending",
46807
- loading: I(a) === "notify",
46808
- onClick: m[3] ||= (e) => I(i)("notify")
46809
- }, null, 8, ["disabled", "loading"]),
46810
- s.value.experts[c.value.expert] === "online" ? (U(), G(b, {
46811
- key: 0,
46812
- icon: "i-lucide-message-square-plus",
46813
- label: "录入在线回答",
46814
- disabled: u.value,
46815
- class: "channel-primary-button",
46816
- onClick: m[4] ||= (e) => I(i)("prepare_answer")
46817
- }, null, 8, ["disabled"])) : Y("", !0),
46818
- q(b, {
46819
- label: "取消安排",
46820
- color: "neutral",
46821
- variant: "ghost",
46822
- onClick: m[5] ||= (e) => I(i)("cancel_turn")
46823
- })
46824
- ])) : Y("", !0),
46825
- c.value.answer_id ? (U(), G(b, {
46826
- key: 1,
46827
- icon: "i-lucide-arrow-up-right",
46828
- label: "查看回答原文",
46777
+ })]),
46778
+ K("div", eq, [q(S, {
46779
+ src: I(r).identities[c.value.expert]?.icon,
46780
+ text: I(r).identities[c.value.expert]?.initials,
46781
+ alt: c.value.expert,
46782
+ class: M(["message-mark channel-avatar", I(r).identities[c.value.expert]?.style])
46783
+ }, null, 8, [
46784
+ "src",
46785
+ "text",
46786
+ "alt",
46787
+ "class"
46788
+ ]), K("div", null, [K("strong", null, P(c.value.expert), 1), K("small", null, "发言安排 #" + P(c.value.id), 1)])]),
46789
+ K("p", tq, P(c.value.question), 1),
46790
+ p.value ? Y("", !0) : (U(), W("div", nq, [
46791
+ q(b, {
46792
+ icon: "i-lucide-copy",
46793
+ label: "复制通知",
46794
+ disabled: u.value,
46795
+ color: "neutral",
46829
46796
  variant: "outline",
46797
+ class: "channel-surface-button",
46798
+ onClick: m[2] ||= (e) => I(i)("copy_turn")
46799
+ }, null, 8, ["disabled"]),
46800
+ q(b, {
46801
+ icon: "i-lucide-check-check",
46802
+ label: "确认已通知",
46830
46803
  color: "neutral",
46804
+ variant: "outline",
46831
46805
  class: "channel-surface-button",
46832
- onClick: m[6] ||= (t) => e.$emit("detail", c.value.answer_id)
46833
- })) : Y("", !0)
46834
- ], 64)) : (U(), W("p", aq, "把下一轮需要回答的问题,交给一位参与者。")),
46835
- l.value ? (U(), W("p", oq, P(I(r).turn_guidance(c.value, s.value)), 1)) : Y("", !0)
46836
- ]),
46837
- K("div", sq, [K("a", {
46806
+ disabled: u.value || c.value.status !== "pending",
46807
+ loading: I(a) === "notify",
46808
+ onClick: m[3] ||= (e) => I(i)("notify")
46809
+ }, null, 8, ["disabled", "loading"]),
46810
+ s.value.experts[c.value.expert] === "online" ? (U(), G(b, {
46811
+ key: 0,
46812
+ icon: "i-lucide-message-square-plus",
46813
+ label: "录入在线回答",
46814
+ disabled: u.value,
46815
+ class: "channel-primary-button",
46816
+ onClick: m[4] ||= (e) => I(i)("prepare_answer")
46817
+ }, null, 8, ["disabled"])) : Y("", !0),
46818
+ q(b, {
46819
+ label: "取消安排",
46820
+ color: "neutral",
46821
+ variant: "ghost",
46822
+ onClick: m[5] ||= (e) => I(i)("cancel_turn")
46823
+ })
46824
+ ])),
46825
+ K("p", rq, P(I(r).turn_guidance(c.value, s.value)), 1)
46826
+ ])) : c.value ? (U(), W("p", iq, [J("最近一次安排:" + P(I(r).display_name(c.value.expert)) + " · #" + P(c.value.id) + " · " + P(I(r).turn_label(c.value, s.value)), 1), c.value.answer_id ? (U(), W("button", {
46827
+ key: 0,
46828
+ type: "button",
46829
+ class: "subtle-link",
46830
+ onClick: m[6] ||= (t) => e.$emit("detail", c.value.answer_id)
46831
+ }, "查看回答原文")) : Y("", !0)])) : Y("", !0),
46832
+ K("div", aq, [K("a", {
46838
46833
  href: `${f.value}/turns`,
46839
46834
  target: "_blank",
46840
46835
  rel: "noopener",
46841
46836
  class: "subtle-link"
46842
- }, [m[23] ||= J("发言安排历史 ", -1), q(C, { name: "i-lucide-arrow-up-right" })], 8, cq), q(b, {
46837
+ }, [m[22] ||= J("发言安排历史 ", -1), q(C, { name: "i-lucide-arrow-up-right" })], 8, oq), p.value ? Y("", !0) : (U(), G(b, {
46838
+ key: 0,
46843
46839
  icon: "i-lucide-plus",
46844
46840
  label: "安排下一位专家",
46845
46841
  class: "channel-primary-button",
46846
46842
  disabled: !d.value,
46847
46843
  onClick: m[7] ||= (t) => e.$emit("open", "schedule")
46848
- }, null, 8, ["disabled"])]),
46849
- d.value ? Y("", !0) : (U(), W("p", lq, P(u.value ? "话题已暂停或收束,修改阶段后可以继续安排。" : l.value ? "先完成或取消当前安排,再安排下一位。" : s.value.limits?.reached ? "已达到讨论上限,请检查到限处理;需要继续时先暂停并调整参数。" : "请先在议题资料中配置参与专家。"), 1))
46844
+ }, null, 8, ["disabled"]))]),
46845
+ !p.value && !d.value ? (U(), W("p", sq, P(u.value ? "话题已暂停或收束,修改阶段后可以继续安排。" : l.value ? "先完成或取消当前安排,再安排下一位。" : s.value.limits?.reached ? "已达到讨论上限,请检查到限处理;需要继续时先暂停并调整参数。" : "请先在议题资料中配置参与专家。"), 1)) : Y("", !0)
46850
46846
  ], 64)) : (U(), W(H, { key: 1 }, [
46851
- K("div", uq, [m[24] ||= K("div", null, [K("h2", null, "本机启动"), K("p", null, "讨论由本机服务唤醒 AI:在这里启动或修正软件连接;成员的接入操作在上方成员表。")], -1), p.value ? (U(), G(x, {
46847
+ K("div", cq, [m[23] ||= K("div", null, [K("h2", null, "本机启动"), K("p", null, "讨论由本机服务唤醒 AI:在这里启动或修正软件连接;成员的接入操作在上方成员表。")], -1), p.value ? (U(), G(x, {
46852
46848
  key: 0,
46853
46849
  color: s.value.runtime?.status === "running" ? "primary" : "neutral",
46854
46850
  variant: "subtle"
@@ -46856,80 +46852,80 @@ var hU = /*#__PURE__*/ XH({
46856
46852
  default: L(() => [J(P(_.value), 1)]),
46857
46853
  _: 1
46858
46854
  }, 8, ["color"])) : Y("", !0)]),
46859
- p.value ? (U(), W("section", dq, [
46860
- m[25] ||= K("strong", null, "实际执行进展", -1),
46855
+ p.value ? (U(), W("section", lq, [
46856
+ m[24] ||= K("span", null, "最近执行", -1),
46861
46857
  K("p", null, P(I(r).execution_label(h.value)), 1),
46862
- s.value.runtime?.status === "running" && (!h.value || ["pending", "dispatched"].includes(h.value.status)) ? (U(), W("p", fq, "尚无 AI 进入记录。请核对本机服务及对应软件的登录和工具权限。")) : Y("", !0)
46858
+ s.value.runtime?.status === "running" && (!h.value || ["pending", "dispatched"].includes(h.value.status)) ? (U(), W("p", uq, "尚无 AI 进入记录。请核对本机服务及对应软件的登录和工具权限。")) : Y("", !0)
46863
46859
  ])) : Y("", !0),
46864
- p.value && I(n).launch.available ? (U(), W("section", pq, [
46865
- m[28] ||= K("div", { class: "access-section-title" }, [K("h3", null, "从网页启动"), K("span", { class: "fine-print" }, "本机执行")], -1),
46866
- s.value.runtime?.status === "ready" ? (U(), W(H, { key: 0 }, [q(JK, { participants: y.value }, null, 8, ["participants"]), q(b, {
46860
+ p.value && I(n).launch.available ? (U(), W("section", dq, [s.value.runtime?.status === "ready" ? (U(), W(H, { key: 0 }, [
46861
+ m[25] ||= K("div", { class: "access-section-title" }, [K("h3", null, "从网页启动")], -1),
46862
+ q(JK, { participants: y.value }, null, 8, ["participants"]),
46863
+ q(b, {
46867
46864
  label: "启动讨论",
46868
46865
  icon: "i-lucide-play",
46869
46866
  class: "channel-primary-button",
46870
46867
  loading: I(a) === "launch_current_room",
46871
46868
  onClick: m[8] ||= (e) => I(i)("launch_current_room")
46872
- }, null, 8, ["loading"])], 64)) : s.value.runtime?.status === "paused" && !s.value.archived && !I(n).launch.remote ? (U(), W("div", mq, [
46873
- K("div", hq, [m[26] ||= K("h3", null, "修正本场软件连接", -1), q(b, {
46874
- label: "读取本场配置",
46875
- variant: "outline",
46876
- color: "neutral",
46877
- class: "channel-surface-button",
46878
- loading: I(a) === "load_room_configuration",
46879
- onClick: m[9] ||= (e) => I(i)("load_room_configuration")
46880
- }, null, 8, ["loading"])]),
46881
- m[27] ||= K("div", { class: "access-repair-description" }, [K("p", null, "修正软件路径,或切换 Codex 的 App / CLI 接入。保留原房间、发言进度和会话,保存后到进度看板重启。"), K("p", { class: "fine-print" }, "App 需保持运行,模型与文件权限在 App 内设置。切回 CLI 前须让 App 释放原聊天;未释放时执行仍会暂停。")], -1),
46882
- g.value ? (U(), W("div", gq, [
46883
- (U(!0), W(H, null, B(g.value.participants, (e, t) => (U(), W("div", {
46884
- key: t,
46885
- class: "form-two-columns"
46886
- }, [["codex", "codex_cli"].includes(e.adapter) ? (U(), G(T, {
46887
- key: 0,
46888
- label: `${t} · 接入方式`
46889
- }, {
46890
- default: L(() => [q(w, {
46891
- "model-value": e.adapter,
46892
- items: [{
46893
- label: "Codex App",
46894
- value: "codex"
46895
- }, {
46896
- label: "Codex CLI",
46897
- value: "codex_cli"
46898
- }],
46899
- class: "w-full",
46900
- "onUpdate:modelValue": (e) => I(r).write_room_adapter(t, e)
46901
- }, null, 8, ["model-value", "onUpdate:modelValue"])]),
46902
- _: 2
46903
- }, 1032, ["label"])) : Y("", !0), q(T, { label: `${t} · ${e.adapter === "antigravity" ? "Sidecar 目录" : "软件路径"}` }, {
46904
- default: L(() => [q(E, {
46905
- "model-value": e[e.adapter === "antigravity" ? "ipc_directory" : "executable"] || "",
46906
- class: "w-full",
46907
- "onUpdate:modelValue": (e) => I(r).write_room_connection(t, e)
46908
- }, null, 8, ["model-value", "onUpdate:modelValue"])]),
46909
- _: 2
46910
- }, 1032, ["label"])]))), 128)),
46911
- q(b, {
46912
- label: "保存本场接入设置",
46913
- class: "channel-primary-button",
46914
- loading: I(a) === "save_room_configuration",
46915
- onClick: m[10] ||= (e) => I(i)("save_room_configuration")
46916
- }, null, 8, ["loading"]),
46917
- g.value.notice ? (U(), W("p", _q, P(g.value.notice), 1)) : Y("", !0)
46918
- ])) : Y("", !0),
46919
- I(n).launch.repair_error ? (U(), W("p", vq, P(I(n).launch.repair_error), 1)) : Y("", !0)
46920
- ])) : s.value.runtime?.status === "paused" && I(n).launch.remote ? (U(), W("p", yq, "讨论已暂停,可在进度看板重启。线上连接暂不提供已登记房间的软件路径修正。")) : s.value.runtime?.status === "running" ? (U(), W("p", bq, "讨论正在运行。")) : (U(), W("p", xq, "本场讨论已停止或结束,已有记录保留。")),
46921
- m[29] ||= K("p", { class: "access-host-entry" }, [
46922
- J("另一种入口:在 AI 工具对话中调用 "),
46923
- K("code", null, "discuss-host"),
46924
- J(",由当前会话主持。")
46925
- ], -1)
46926
- ])) : p.value ? (U(), W("section", Sq, [q(JK, { participants: y.value }, null, 8, ["participants"]), K("details", null, [
46927
- m[41] ||= K("summary", null, "手动下载与登记配置", -1),
46928
- K("div", Cq, [m[31] ||= K("h3", null, "首次接入", -1), K("a", wq, [m[30] ||= J("配置说明 ", -1), q(C, { name: "i-lucide-arrow-up-right" })])]),
46929
- K("ol", Tq, [
46869
+ }, null, 8, ["loading"])
46870
+ ], 64)) : s.value.runtime?.status === "paused" && !s.value.archived && !I(n).launch.remote ? (U(), W("div", fq, [
46871
+ K("div", pq, [m[26] ||= K("h3", null, "修正本场软件连接", -1), q(b, {
46872
+ label: "读取本场配置",
46873
+ variant: "outline",
46874
+ color: "neutral",
46875
+ class: "channel-surface-button",
46876
+ loading: I(a) === "load_room_configuration",
46877
+ onClick: m[9] ||= (e) => I(i)("load_room_configuration")
46878
+ }, null, 8, ["loading"])]),
46879
+ m[27] ||= K("div", { class: "access-repair-description" }, [K("p", null, "修正软件路径,或切换 Codex 的 App / CLI 接入。保留原房间、发言进度和会话,保存后到进度看板重启。"), K("p", { class: "fine-print" }, "App 需保持运行,模型与文件权限在 App 内设置。切回 CLI 前须让 App 释放原聊天;未释放时执行仍会暂停。")], -1),
46880
+ g.value ? (U(), W("div", mq, [
46881
+ (U(!0), W(H, null, B(g.value.participants, (e, t) => (U(), W("div", {
46882
+ key: t,
46883
+ class: "form-two-columns"
46884
+ }, [["codex", "codex_cli"].includes(e.adapter) ? (U(), G(T, {
46885
+ key: 0,
46886
+ label: `${t} · 接入方式`
46887
+ }, {
46888
+ default: L(() => [q(w, {
46889
+ "model-value": e.adapter,
46890
+ items: [{
46891
+ label: "Codex App",
46892
+ value: "codex"
46893
+ }, {
46894
+ label: "Codex CLI",
46895
+ value: "codex_cli"
46896
+ }],
46897
+ class: "w-full",
46898
+ "onUpdate:modelValue": (e) => I(r).write_room_adapter(t, e)
46899
+ }, null, 8, ["model-value", "onUpdate:modelValue"])]),
46900
+ _: 2
46901
+ }, 1032, ["label"])) : Y("", !0), q(T, { label: `${t} · ${e.adapter === "antigravity" ? "Sidecar 目录" : "软件路径"}` }, {
46902
+ default: L(() => [q(E, {
46903
+ "model-value": e[e.adapter === "antigravity" ? "ipc_directory" : "executable"] || "",
46904
+ class: "w-full",
46905
+ "onUpdate:modelValue": (e) => I(r).write_room_connection(t, e)
46906
+ }, null, 8, ["model-value", "onUpdate:modelValue"])]),
46907
+ _: 2
46908
+ }, 1032, ["label"])]))), 128)),
46909
+ q(b, {
46910
+ label: "保存本场接入设置",
46911
+ class: "channel-primary-button",
46912
+ loading: I(a) === "save_room_configuration",
46913
+ onClick: m[10] ||= (e) => I(i)("save_room_configuration")
46914
+ }, null, 8, ["loading"]),
46915
+ g.value.notice ? (U(), W("p", hq, P(g.value.notice), 1)) : Y("", !0)
46916
+ ])) : Y("", !0),
46917
+ I(n).launch.repair_error ? (U(), W("p", gq, P(I(n).launch.repair_error), 1)) : Y("", !0)
46918
+ ])) : s.value.runtime?.status === "paused" && I(n).launch.remote ? (U(), W("p", _q, "讨论已暂停,可在进度看板重启。线上连接暂不提供已登记房间的软件路径修正。")) : s.value.runtime?.status === "running" ? (U(), W("p", vq, "讨论正在运行。")) : (U(), W("p", yq, "本场讨论已停止或结束,已有记录保留。")), m[28] ||= K("p", { class: "access-host-entry" }, [
46919
+ J("另一种入口:在 AI 工具对话中调用 "),
46920
+ K("code", null, "discuss-host"),
46921
+ J(",由当前会话主持。")
46922
+ ], -1)])) : p.value ? (U(), W("section", bq, [q(JK, { participants: y.value }, null, 8, ["participants"]), K("details", null, [
46923
+ m[40] ||= K("summary", null, "手动下载与登记配置", -1),
46924
+ K("div", xq, [m[30] ||= K("h3", null, "首次接入", -1), K("a", Sq, [m[29] ||= J("配置说明 ", -1), q(C, { name: "i-lucide-arrow-up-right" })])]),
46925
+ K("ol", Cq, [
46930
46926
  K("li", null, [
46931
- m[32] ||= K("span", { class: "access-step-number" }, "1", -1),
46932
- m[33] ||= K("div", null, [K("h4", null, "下载接入配置"), K("p", null, "包含当前房间信息。下载后,补齐本机软件路径与会话配置。")], -1),
46927
+ m[31] ||= K("span", { class: "access-step-number" }, "1", -1),
46928
+ m[32] ||= K("div", null, [K("h4", null, "下载接入配置"), K("p", null, "包含当前房间信息。下载后,补齐本机软件路径与会话配置。")], -1),
46933
46929
  s.value.runtime?.protected ? (U(), G(b, {
46934
46930
  key: 0,
46935
46931
  icon: "i-lucide-download",
@@ -46939,10 +46935,10 @@ var hU = /*#__PURE__*/ XH({
46939
46935
  onClick: m[11] ||= (e) => I(i)("export_runtime")
46940
46936
  }, null, 8, ["loading"])) : Y("", !0)
46941
46937
  ]),
46942
- K("li", null, [m[36] ||= K("span", { class: "access-step-number" }, "2", -1), K("div", null, [
46943
- m[34] ||= K("h4", null, "登记到本机服务", -1),
46944
- m[35] ||= K("p", null, "在下载文件所在目录执行;也可以将文件名换成完整路径。", -1),
46945
- K("div", Eq, [K("code", null, P(v.value), 1), q(b, {
46938
+ K("li", null, [m[35] ||= K("span", { class: "access-step-number" }, "2", -1), K("div", null, [
46939
+ m[33] ||= K("h4", null, "登记到本机服务", -1),
46940
+ m[34] ||= K("p", null, "在下载文件所在目录执行;也可以将文件名换成完整路径。", -1),
46941
+ K("div", wq, [K("code", null, P(v.value), 1), q(b, {
46946
46942
  icon: "i-lucide-copy",
46947
46943
  color: "neutral",
46948
46944
  variant: "ghost",
@@ -46950,10 +46946,10 @@ var hU = /*#__PURE__*/ XH({
46950
46946
  onClick: m[12] ||= (e) => I(i)("copy", v.value)
46951
46947
  })])
46952
46948
  ])]),
46953
- K("li", null, [m[40] ||= K("span", { class: "access-step-number" }, "3", -1), K("div", null, [
46954
- m[38] ||= K("h4", null, "启动服务,保持终端打开", -1),
46955
- m[39] ||= K("p", null, "启动服务不会自动开始讨论。已暂停的讨论可在进度看板点“重启”。", -1),
46956
- K("div", Dq, [m[37] ||= K("code", null, "codiscuss", -1), q(b, {
46949
+ K("li", null, [m[39] ||= K("span", { class: "access-step-number" }, "3", -1), K("div", null, [
46950
+ m[37] ||= K("h4", null, "启动服务,保持终端打开", -1),
46951
+ m[38] ||= K("p", null, "启动服务不会自动开始讨论。已暂停的讨论可在进度看板点“重启”。", -1),
46952
+ K("div", Tq, [m[36] ||= K("code", null, "codiscuss", -1), q(b, {
46957
46953
  icon: "i-lucide-copy",
46958
46954
  color: "neutral",
46959
46955
  variant: "ghost",
@@ -46963,10 +46959,10 @@ var hU = /*#__PURE__*/ XH({
46963
46959
  ])])
46964
46960
  ])
46965
46961
  ])])) : Y("", !0),
46966
- !p.value || !I(n).launch.available ? (U(), W("details", Oq, [K("summary", null, [m[42] ||= K("span", null, [J("项目与工作目录 "), K("small", null, "可选")], -1), q(C, {
46962
+ !p.value || !I(n).launch.available ? (U(), W("details", Eq, [K("summary", null, [m[41] ||= K("span", null, [J("项目与工作目录 "), K("small", null, "可选")], -1), q(C, {
46967
46963
  name: "i-lucide-chevron-down",
46968
46964
  class: "disclosure-icon"
46969
- })]), K("div", kq, [m[43] ||= K("p", null, "指定 AI 使用的本机项目和目录,留空使用默认位置。仅保存在本机配置中。", -1), K("div", Aq, [q(T, { label: "AI 软件中的项目" }, {
46965
+ })]), K("div", Dq, [m[42] ||= K("p", null, "指定 AI 使用的本机项目和目录,留空使用默认位置。仅保存在本机配置中。", -1), K("div", Oq, [q(T, { label: "AI 软件中的项目" }, {
46970
46966
  default: L(() => [q(E, {
46971
46967
  "model-value": I(n).fields["runtime-project"],
46972
46968
  placeholder: "项目名称",
@@ -46992,10 +46988,10 @@ var hU = /*#__PURE__*/ XH({
46992
46988
  ]);
46993
46989
  };
46994
46990
  }
46995
- }, [["__scopeId", "data-v-865718f9"]]), Mq = { slots: {
46991
+ }, [["__scopeId", "data-v-0af10e32"]]), Aq = { slots: {
46996
46992
  root: "",
46997
46993
  content: "data-[state=open]:animate-[collapsible-down_200ms_var(--ease-out)] data-[state=closed]:animate-[collapsible-up_200ms_var(--ease-out)] data-[state=closed]:overflow-hidden"
46998
- } }, Nq = {
46994
+ } }, jq = {
46999
46995
  __name: "Collapsible",
47000
46996
  props: {
47001
46997
  as: {
@@ -47031,7 +47027,7 @@ var hU = /*#__PURE__*/ XH({
47031
47027
  emits: ["update:open"],
47032
47028
  setup(e, { emit: t }) {
47033
47029
  let n = e, r = t, i = Aa(), a = AE("collapsible", n), o = Cm(), s = jE(om(a, "as", "defaultOpen", "open", "disabled", "unmountOnHide"), r), c = Z(() => oA({
47034
- extend: Mq,
47030
+ extend: Aq,
47035
47031
  ...o.ui?.collapsible || {}
47036
47032
  })());
47037
47033
  return (e, t) => (U(), G(I(Kg), X(I(s), {
@@ -47054,7 +47050,7 @@ var hU = /*#__PURE__*/ XH({
47054
47050
  _: 3
47055
47051
  }, 16, ["class"]));
47056
47052
  }
47057
- }, Pq = {
47053
+ }, Mq = {
47058
47054
  slots: {
47059
47055
  root: "relative flex items-start",
47060
47056
  container: "flex items-center",
@@ -47442,7 +47438,7 @@ var hU = /*#__PURE__*/ XH({
47442
47438
  variant: "list",
47443
47439
  indicator: "start"
47444
47440
  }
47445
- }, Fq = /*@__PURE__*/ Object.assign({ inheritAttrs: !1 }, {
47441
+ }, Nq = /*@__PURE__*/ Object.assign({ inheritAttrs: !1 }, {
47446
47442
  __name: "Checkbox",
47447
47443
  props: {
47448
47444
  as: {
@@ -47536,7 +47532,7 @@ var hU = /*#__PURE__*/ XH({
47536
47532
  let { "data-state": e, ...t } = C;
47537
47533
  return t;
47538
47534
  }), T = Z(() => oA({
47539
- extend: Pq,
47535
+ extend: Mq,
47540
47536
  ...o.ui?.checkbox || {}
47541
47537
  })({
47542
47538
  size: b.value,
@@ -47627,16 +47623,16 @@ var hU = /*#__PURE__*/ XH({
47627
47623
  "class"
47628
47624
  ]));
47629
47625
  }
47630
- }), Iq = { class: "effort-field" }, Lq = {
47626
+ }), Pq = { class: "effort-field" }, Fq = {
47631
47627
  key: 0,
47632
47628
  class: "effort-caption",
47633
47629
  "aria-hidden": "true"
47634
- }, Rq = [
47630
+ }, Iq = [
47635
47631
  "aria-label",
47636
47632
  "aria-valuemax",
47637
47633
  "aria-valuenow",
47638
47634
  "aria-valuetext"
47639
- ], zq = ["title"], Bq = 4.5, Vq = 6, Hq = 8, Uq = 1 / 240, Wq = .001, Gq = .01, Kq = .05, qq = 10, Jq = 4, Yq = /*#__PURE__*/ XH({
47635
+ ], Lq = ["title"], Rq = 4.5, zq = 6, Bq = 8, Vq = 1 / 240, Hq = .001, Uq = .01, Wq = .05, Gq = 10, Kq = 4, qq = /*#__PURE__*/ XH({
47640
47636
  __name: "EffortSlider",
47641
47637
  props: {
47642
47638
  items: {
@@ -47666,18 +47662,18 @@ var hU = /*#__PURE__*/ XH({
47666
47662
  pointer: null
47667
47663
  }), l = Z(() => Math.min(o.value, Math.max(0, c.x)) / o.value), u = Z(() => Math.round(Math.min(o.value, Math.max(0, c.x)))), d = 0, f = 0, p = 0, m = 0, h = !1, g = (e) => Math.min(o.value, Math.max(0, e)), _ = (e, t, n) => -((2 * Math.PI * n) ** 2) * e - 4 * Math.PI * n * t;
47668
47664
  function v(e) {
47669
- let t = c.hand ?? c.target, n = c.hand === null ? Bq : Vq, r = (e, r) => _(e - t, r, n) + (e < 0 || e > o.value ? _(e - g(e), r, Hq) : 0), i = c.x, a = c.v, s = r(i, a), l = a + s * e / 2, u = r(i + a * e / 2, l), d = a + u * e / 2, f = r(i + l * e / 2, d), p = a + f * e, m = r(i + d * e, p);
47665
+ let t = c.hand ?? c.target, n = c.hand === null ? Rq : zq, r = (e, r) => _(e - t, r, n) + (e < 0 || e > o.value ? _(e - g(e), r, Bq) : 0), i = c.x, a = c.v, s = r(i, a), l = a + s * e / 2, u = r(i + a * e / 2, l), d = a + u * e / 2, f = r(i + l * e / 2, d), p = a + f * e, m = r(i + d * e, p);
47670
47666
  c.x += e * (a + 2 * l + 2 * d + p) / 6, c.v += e * (s + 2 * u + 2 * f + m) / 6;
47671
47667
  }
47672
47668
  function y(e) {
47673
47669
  d = 0;
47674
- let t = Math.min(Kq, (e - f) / 1e3);
47670
+ let t = Math.min(Wq, (e - f) / 1e3);
47675
47671
  for (f = e; t > 0;) {
47676
- let e = Math.min(Uq, t);
47672
+ let e = Math.min(Vq, t);
47677
47673
  v(e), t -= e;
47678
47674
  }
47679
47675
  let n = c.hand ?? c.target;
47680
- Math.abs(c.x - n) < Wq && Math.abs(c.v) < Gq ? (c.x = n, c.v = 0) : d = requestAnimationFrame(y);
47676
+ Math.abs(c.x - n) < Hq && Math.abs(c.v) < Uq ? (c.x = n, c.v = 0) : d = requestAnimationFrame(y);
47681
47677
  }
47682
47678
  function b() {
47683
47679
  i.value ? (cancelAnimationFrame(d), d = 0, c.x = c.hand ?? c.target, c.v = 0) : d ||= (f = performance.now(), requestAnimationFrame(y));
@@ -47687,17 +47683,17 @@ var hU = /*#__PURE__*/ XH({
47687
47683
  }
47688
47684
  function S(e) {
47689
47685
  let t = a.value.getBoundingClientRect();
47690
- return g((e.clientX - t.left - qq) / Math.max(1, t.width - 20) * o.value);
47686
+ return g((e.clientX - t.left - Gq) / Math.max(1, t.width - 20) * o.value);
47691
47687
  }
47692
47688
  function C(e) {
47693
47689
  e.isPrimary && e.button === 0 && c.pointer === null && (e.preventDefault(), a.value.focus(), a.value.setPointerCapture(e.pointerId), c.pointer = e.pointerId, p = e.clientX, h = !1, m = e.target.closest(".effort-slider-thumb") ? c.x - S(e) : 0, c.hand = g(S(e) + m), b());
47694
47690
  }
47695
47691
  function w(e) {
47696
- c.pointer === e.pointerId && (h ||= Math.abs(e.clientX - p) > Jq, c.hand = g(S(e) + m), b());
47692
+ c.pointer === e.pointerId && (h ||= Math.abs(e.clientX - p) > Kq, c.hand = g(S(e) + m), b());
47697
47693
  }
47698
47694
  function T(e) {
47699
47695
  if (c.pointer !== e.pointerId) return;
47700
- let t = h ? c.x + c.v / (4 * Math.PI * Bq) : c.hand;
47696
+ let t = h ? c.x + c.v / (4 * Math.PI * Rq) : c.hand;
47701
47697
  c.hand = null, c.pointer = null, x(t);
47702
47698
  }
47703
47699
  function E(e) {
@@ -47720,7 +47716,7 @@ var hU = /*#__PURE__*/ XH({
47720
47716
  i
47721
47717
  ], () => {
47722
47718
  c.target = s.value, b();
47723
- }), ta(() => cancelAnimationFrame(d)), (t, n) => (U(), W("div", Iq, [e.caption ? (U(), W("div", Lq, [K("span", null, P(e.caption), 1), q(Cc, {
47719
+ }), ta(() => cancelAnimationFrame(d)), (t, n) => (U(), W("div", Pq, [e.caption ? (U(), W("div", Fq, [K("span", null, P(e.caption), 1), q(Cc, {
47724
47720
  name: I(i) ? "" : "effort-value",
47725
47721
  mode: "out-in"
47726
47722
  }, {
@@ -47758,17 +47754,17 @@ var hU = /*#__PURE__*/ XH({
47758
47754
  "aria-hidden": "true",
47759
47755
  style: fe({ "--at": t / o.value }),
47760
47756
  title: e.label
47761
- }, null, 14, zq))), 128)),
47757
+ }, null, 14, Lq))), 128)),
47762
47758
  n[1] ||= K("span", {
47763
47759
  class: "effort-slider-thumb",
47764
47760
  "aria-hidden": "true"
47765
47761
  }, null, -1)
47766
- ], 46, Rq)]));
47762
+ ], 46, Iq)]));
47767
47763
  }
47768
- }, [["__scopeId", "data-v-a98d65a2"]]), Xq = {
47764
+ }, [["__scopeId", "data-v-a98d65a2"]]), Jq = {
47769
47765
  key: 0,
47770
47766
  class: "member-text-source"
47771
- }, Zq = { class: "member-text-meta" }, Qq = { class: "member-text-footer" }, $q = /*#__PURE__*/ XH({
47767
+ }, Yq = { class: "member-text-meta" }, Xq = { class: "member-text-footer" }, Zq = /*#__PURE__*/ XH({
47772
47768
  __name: "MemberTextDialog",
47773
47769
  props: /*@__PURE__*/ Fa({
47774
47770
  title: {
@@ -47839,7 +47835,7 @@ var hU = /*#__PURE__*/ XH({
47839
47835
  class: "member-text",
47840
47836
  onSubmit: uu(s, ["prevent"])
47841
47837
  }, [
47842
- e.source ? (U(), W("div", Xq, [
47838
+ e.source ? (U(), W("div", Jq, [
47843
47839
  q(a, { name: "i-lucide-bookmark" }),
47844
47840
  K("p", null, [K("b", null, P(e.source.tag), 1), J(P(e.source.text), 1)]),
47845
47841
  K("button", {
@@ -47868,8 +47864,8 @@ var hU = /*#__PURE__*/ XH({
47868
47864
  "placeholder",
47869
47865
  "onKeydown"
47870
47866
  ]),
47871
- K("div", Zq, [K("span", null, P(e.note), 1), K("span", { class: M({ "is-near": o.value }) }, P(i.value.length) + " / " + P(e.max), 3)]),
47872
- K("div", Qq, [
47867
+ K("div", Yq, [K("span", null, P(e.note), 1), K("span", { class: M({ "is-near": o.value }) }, P(i.value.length) + " / " + P(e.max), 3)]),
47868
+ K("div", Xq, [
47873
47869
  K("div", null, [V(t.$slots, "extra", {}, void 0, !0)]),
47874
47870
  q(l, {
47875
47871
  label: "取消",
@@ -47894,7 +47890,7 @@ var hU = /*#__PURE__*/ XH({
47894
47890
  ]);
47895
47891
  };
47896
47892
  }
47897
- }, [["__scopeId", "data-v-e3ec37df"]]), eJ = 500, tJ = {
47893
+ }, [["__scopeId", "data-v-e3ec37df"]]), Qq = 500, $q = {
47898
47894
  __name: "MemberDescriptionDialog",
47899
47895
  props: /*@__PURE__*/ Fa({
47900
47896
  name: {
@@ -47952,8 +47948,8 @@ var hU = /*#__PURE__*/ XH({
47952
47948
  });
47953
47949
  }
47954
47950
  return (t, n) => {
47955
- let i = Fq;
47956
- return U(), G($q, {
47951
+ let i = Nq;
47952
+ return U(), G(Zq, {
47957
47953
  open: r.value,
47958
47954
  "onUpdate:open": n[1] ||= (e) => r.value = e,
47959
47955
  draft: a.value,
@@ -47962,7 +47958,7 @@ var hU = /*#__PURE__*/ XH({
47962
47958
  description: "擅长什么、适合分到什么工作。智能调度和 AI 主持人分派时参考,房间所有成员都能看到。",
47963
47959
  label: `${s.value.name} 的描述`,
47964
47960
  placeholder: "例如:擅长前端和交互细节,适合出方案、做评审;大段重构交给别人",
47965
- max: eJ,
47961
+ max: Qq,
47966
47962
  note: f.value,
47967
47963
  source: l.value,
47968
47964
  changed: d.value,
@@ -47988,55 +47984,55 @@ var hU = /*#__PURE__*/ XH({
47988
47984
  ]);
47989
47985
  };
47990
47986
  }
47991
- }, nJ = 4e3, rJ = {
47987
+ }, eJ = 4e3, tJ = {
47992
47988
  antigravity_cli: "多步任务中,在关键转折处用一句话写出进展再继续。",
47993
47989
  api: "你读不到本地文件,相关内容以其他成员贴出的为准,不凭文件名猜测。缺信息时在回答里写明缺什么。"
47994
- }, iJ = ["data-identity", "data-face"], aJ = ["inert", "aria-hidden"], oJ = { class: "expert-card-identity" }, sJ = { class: "expert-card-names" }, cJ = {
47990
+ }, nJ = ["data-identity", "data-face"], rJ = ["inert", "aria-hidden"], iJ = { class: "expert-card-identity" }, aJ = { class: "expert-card-names" }, oJ = {
47995
47991
  key: 0,
47996
47992
  class: "expert-card-badge"
47997
- }, lJ = ["title"], uJ = { class: "expert-card-facts" }, dJ = ["title"], fJ = {
47993
+ }, sJ = ["title"], cJ = { class: "expert-card-facts" }, lJ = ["title"], uJ = {
47998
47994
  key: 0,
47999
47995
  "aria-hidden": "true"
48000
- }, pJ = {
47996
+ }, dJ = {
48001
47997
  key: 0,
48002
47998
  class: "expert-card-manual"
48003
- }, mJ = { key: 0 }, hJ = {
47999
+ }, fJ = { key: 0 }, pJ = {
48004
48000
  key: 1,
48005
48001
  class: "expert-card-flip"
48006
- }, gJ = ["aria-label"], _J = [
48002
+ }, mJ = ["aria-label"], hJ = [
48007
48003
  "aria-checked",
48008
48004
  "tabindex",
48009
48005
  "data-mode",
48010
48006
  "onClick"
48011
- ], vJ = { class: "expert-card-tools" }, yJ = ["aria-label", "title"], bJ = [
48007
+ ], gJ = { class: "expert-card-tools" }, _J = ["aria-label", "title"], vJ = [
48012
48008
  "aria-pressed",
48013
48009
  "aria-label",
48014
48010
  "title"
48015
- ], xJ = ["aria-label"], SJ = ["inert", "aria-hidden"], CJ = { class: "expert-card-back-body" }, wJ = { class: "expert-card-heading" }, TJ = { class: "expert-card-heading-tools" }, EJ = ["aria-label", "title"], DJ = ["title", "aria-label"], OJ = ["role"], kJ = {
48011
+ ], yJ = ["aria-label"], bJ = ["inert", "aria-hidden"], xJ = { class: "expert-card-back-body" }, SJ = { class: "expert-card-heading" }, CJ = { class: "expert-card-heading-tools" }, wJ = ["aria-label", "title"], TJ = ["title", "aria-label"], EJ = ["role"], DJ = {
48016
48012
  key: 1,
48017
48013
  class: "expert-card-field"
48018
- }, AJ = {
48014
+ }, OJ = {
48019
48015
  key: 2,
48020
48016
  class: "expert-card-field"
48021
- }, jJ = {
48017
+ }, kJ = {
48022
48018
  key: 3,
48023
48019
  class: "expert-card-check"
48024
- }, MJ = {
48020
+ }, AJ = {
48025
48021
  key: 4,
48026
48022
  class: "expert-card-field"
48027
- }, NJ = ["aria-label"], PJ = ["aria-checked", "onClick"], FJ = { class: "expert-card-field" }, IJ = {
48023
+ }, jJ = ["aria-label"], MJ = ["aria-checked", "onClick"], NJ = { class: "expert-card-field" }, PJ = {
48028
48024
  key: 0,
48029
48025
  class: "expert-card-catalog"
48030
- }, LJ = {
48026
+ }, FJ = {
48031
48027
  key: 1,
48032
48028
  class: "expert-card-effort"
48033
- }, RJ = {
48029
+ }, IJ = {
48034
48030
  key: 2,
48035
48031
  class: "expert-card-note"
48036
- }, zJ = ["aria-label", "disabled"], BJ = {
48032
+ }, LJ = ["aria-label", "disabled"], RJ = {
48037
48033
  key: 7,
48038
48034
  class: "expert-card-note"
48039
- }, VJ = { class: "expert-card-flip-actions" }, HJ = ["aria-label"], UJ = ["aria-label"], WJ = 180, GJ = "[role='listbox'], [role='menu'], [data-reka-popper-content-wrapper]", KJ = /*#__PURE__*/ XH({
48035
+ }, zJ = { class: "expert-card-flip-actions" }, BJ = ["aria-label"], VJ = ["aria-label"], HJ = 180, UJ = "[role='listbox'], [role='menu'], [data-reka-popper-content-wrapper]", WJ = /*#__PURE__*/ XH({
48040
48036
  __name: "ExpertCard",
48041
48037
  props: {
48042
48038
  name: {
@@ -48189,7 +48185,7 @@ var hU = /*#__PURE__*/ XH({
48189
48185
  });
48190
48186
  }
48191
48187
  function _e(e) {
48192
- let t = e >= WJ / 2;
48188
+ let t = e >= HJ / 2;
48193
48189
  f.value !== t && (f.value = t, N());
48194
48190
  }
48195
48191
  let ve = o.on("change", _e), ye = o.on("animationComplete", N), be = null, xe = "";
@@ -48206,7 +48202,7 @@ var hU = /*#__PURE__*/ XH({
48206
48202
  function De({ text: e, as_template: t }) {
48207
48203
  a.write_description_draft(n.name, e), t && a.save_description_template(n.name, e), Te.value = !1;
48208
48204
  }
48209
- let Oe = Z(() => rJ[p.value.adapter] || ""), ke = Z(() => Object.hasOwn(p.value, "system_prompt")), Ae = Z(() => (ke.value ? p.value.system_prompt : Oe.value).trim()), je = Z(() => Ae.value ? `专属提示词(${ke.value ? "自定义" : "软件预设"}):${Ae.value.split("\n")[0]}` : "专属提示词:未设置,点击添加"), Me = /* @__PURE__ */ F(!1), Ne = /* @__PURE__ */ F(""), Pe = Z(() => Ne.value.trim() !== Ae.value), Fe = Z(() => {
48205
+ let Oe = Z(() => tJ[p.value.adapter] || ""), ke = Z(() => Object.hasOwn(p.value, "system_prompt")), Ae = Z(() => (ke.value ? p.value.system_prompt : Oe.value).trim()), je = Z(() => Ae.value ? `专属提示词(${ke.value ? "自定义" : "软件预设"}):${Ae.value.split("\n")[0]}` : "专属提示词:未设置,点击添加"), Me = /* @__PURE__ */ F(!1), Ne = /* @__PURE__ */ F(""), Pe = Z(() => Ne.value.trim() !== Ae.value), Fe = Z(() => {
48210
48206
  let e = Ne.value.trim();
48211
48207
  return e ? e === Oe.value.trim() ? "与软件预设一致,预设更新时自动跟随" : Oe.value ? "已改写,不再跟随软件预设" : "只发给这位专家,Ctrl + Enter 保存" : Oe.value ? "留空:这位专家不使用预设,也没有专属提示词" : "留空表示不使用";
48212
48208
  }), Ie = Z(() => Oe.value && Ne.value.trim() !== Oe.value.trim() ? {
@@ -48240,12 +48236,12 @@ var hU = /*#__PURE__*/ XH({
48240
48236
  d.value && (e.stopPropagation(), e.preventDefault(), Ce());
48241
48237
  }
48242
48238
  function He(e) {
48243
- Me.value || Te.value || c.value?.contains(e.target) || e.target.closest?.(GJ) || Se(!1);
48239
+ Me.value || Te.value || c.value?.contains(e.target) || e.target.closest?.(UJ) || Se(!1);
48244
48240
  }
48245
48241
  return R(d, (e) => {
48246
48242
  e ? document.addEventListener("pointerdown", He, !0) : document.removeEventListener("pointerdown", He, !0);
48247
48243
  }), R([d, s], ([e, t]) => {
48248
- let n = e ? WJ : 0;
48244
+ let n = e ? HJ : 0;
48249
48245
  t ? (o.jump(n), N()) : o.set(n);
48250
48246
  }), R(() => [
48251
48247
  te.value,
@@ -48292,7 +48288,7 @@ var hU = /*#__PURE__*/ XH({
48292
48288
  onClick: n[0] ||= (e) => Se(!0)
48293
48289
  }, {
48294
48290
  default: L(() => [
48295
- K("span", oJ, [q(s, {
48291
+ K("span", iJ, [q(s, {
48296
48292
  src: I(a).identities[e.name]?.icon,
48297
48293
  text: I(a).identities[e.name]?.initials,
48298
48294
  alt: e.name,
@@ -48303,16 +48299,16 @@ var hU = /*#__PURE__*/ XH({
48303
48299
  "text",
48304
48300
  "alt",
48305
48301
  "class"
48306
- ]), K("span", sJ, [K("span", null, [K("strong", null, P(e.name), 1), e.host ? (U(), W("span", cJ, "主持")) : Y("", !0)]), we.value ? (U(), W("small", {
48302
+ ]), K("span", aJ, [K("span", null, [K("strong", null, P(e.name), 1), e.host ? (U(), W("span", oJ, "主持")) : Y("", !0)]), we.value ? (U(), W("small", {
48307
48303
  key: 0,
48308
48304
  title: we.value
48309
- }, P(we.value), 9, lJ)) : Y("", !0)])]),
48310
- K("dl", uJ, [(U(!0), W(H, null, B(de.value, (e) => (U(), W("div", { key: e.label }, [K("dt", null, P(e.label), 1), K("dd", {
48305
+ }, P(we.value), 9, sJ)) : Y("", !0)])]),
48306
+ K("dl", cJ, [(U(!0), W(H, null, B(de.value, (e) => (U(), W("div", { key: e.label }, [K("dt", null, P(e.label), 1), K("dd", {
48311
48307
  class: M(e.tone ? ["expert-card-status", `is-${e.tone}`] : ""),
48312
48308
  title: e.value
48313
- }, [e.tone ? (U(), W("i", fJ)) : Y("", !0), J(P(e.value), 1)], 10, dJ)]))), 128))]),
48314
- C.value ? (U(), W("div", pJ, [n[14] ||= K("p", null, "会话自行注册后才算到场。", -1), T.value ? (U(), W("p", mJ, P(T.value), 1)) : Y("", !0)])) : Y("", !0),
48315
- O.value ? (U(), W("span", hJ, [q(d, { name: "i-lucide-settings-2" }), n[15] ||= J("设置", -1)])) : Y("", !0)
48309
+ }, [e.tone ? (U(), W("i", uJ)) : Y("", !0), J(P(e.value), 1)], 10, lJ)]))), 128))]),
48310
+ C.value ? (U(), W("div", dJ, [n[14] ||= K("p", null, "会话自行注册后才算到场。", -1), T.value ? (U(), W("p", fJ, P(T.value), 1)) : Y("", !0)])) : Y("", !0),
48311
+ O.value ? (U(), W("span", pJ, [q(d, { name: "i-lucide-settings-2" }), n[15] ||= J("设置", -1)])) : Y("", !0)
48316
48312
  ]),
48317
48313
  _: 1
48318
48314
  }, 8, [
@@ -48335,8 +48331,8 @@ var hU = /*#__PURE__*/ XH({
48335
48331
  tabindex: e.mode === t ? 0 : -1,
48336
48332
  "data-mode": t,
48337
48333
  onClick: (e) => r("mode", t)
48338
- }, P(_[t]), 9, _J))), 128))], 40, gJ)) : Y("", !0),
48339
- K("span", vJ, [
48334
+ }, P(_[t]), 9, hJ))), 128))], 40, mJ)) : Y("", !0),
48335
+ K("span", gJ, [
48340
48336
  O.value ? Y("", !0) : (U(), W("button", {
48341
48337
  key: 0,
48342
48338
  type: "button",
@@ -48344,7 +48340,7 @@ var hU = /*#__PURE__*/ XH({
48344
48340
  "aria-label": `编辑 ${e.name} 的描述`,
48345
48341
  title: Ee.value,
48346
48342
  onClick: n[1] ||= (e) => Te.value = !0
48347
- }, [q(d, { name: "i-lucide-user-pen" })], 10, yJ)),
48343
+ }, [q(d, { name: "i-lucide-user-pen" })], 10, _J)),
48348
48344
  e.hostable ? (U(), W("button", {
48349
48345
  key: 1,
48350
48346
  type: "button",
@@ -48353,28 +48349,28 @@ var hU = /*#__PURE__*/ XH({
48353
48349
  "aria-label": e.host ? `${e.name} 是主持人` : `设 ${e.name} 为主持人`,
48354
48350
  title: e.host ? "主持人" : "设为主持人",
48355
48351
  onClick: n[2] ||= (e) => r("host")
48356
- }, [q(d, { name: "i-lucide-crown" })], 8, bJ)) : Y("", !0),
48352
+ }, [q(d, { name: "i-lucide-crown" })], 8, vJ)) : Y("", !0),
48357
48353
  K("button", {
48358
48354
  type: "button",
48359
48355
  "aria-label": `移出 ${e.name}`,
48360
48356
  title: "移出",
48361
48357
  onClick: n[3] ||= (e) => r("remove")
48362
- }, [q(d, { name: "i-lucide-x" })], 8, xJ)
48358
+ }, [q(d, { name: "i-lucide-x" })], 8, yJ)
48363
48359
  ])
48364
- ], 8, aJ), O.value ? (U(), W("div", {
48360
+ ], 8, rJ), O.value ? (U(), W("div", {
48365
48361
  key: 0,
48366
48362
  class: "expert-card-face expert-card-back",
48367
48363
  inert: !f.value,
48368
48364
  "aria-hidden": !f.value
48369
- }, [K("div", CJ, [
48370
- K("div", wJ, [K("strong", null, [J(P(e.name), 1), K("span", null, "设置" + P(oe.value ? " · 不访问项目" : ""), 1)]), K("span", TJ, [
48365
+ }, [K("div", xJ, [
48366
+ K("div", SJ, [K("strong", null, [J(P(e.name), 1), K("span", null, "设置" + P(oe.value ? " · 不访问项目" : ""), 1)]), K("span", CJ, [
48371
48367
  K("button", {
48372
48368
  type: "button",
48373
48369
  class: M(["expert-card-back-tool", { "is-set": we.value }]),
48374
48370
  "aria-label": `编辑 ${e.name} 的描述`,
48375
48371
  title: Ee.value,
48376
48372
  onClick: n[4] ||= (e) => Te.value = !0
48377
- }, [q(d, { name: "i-lucide-user-pen" })], 10, EJ),
48373
+ }, [q(d, { name: "i-lucide-user-pen" })], 10, wJ),
48378
48374
  p.value.adapter ? (U(), W("button", {
48379
48375
  key: 0,
48380
48376
  type: "button",
@@ -48385,7 +48381,7 @@ var hU = /*#__PURE__*/ XH({
48385
48381
  title: je.value,
48386
48382
  "aria-label": `编辑 ${e.name} 的专属提示词`,
48387
48383
  onClick: Le
48388
- }, [q(d, { name: "i-lucide-scroll-text" })], 10, DJ)) : Y("", !0),
48384
+ }, [q(d, { name: "i-lucide-scroll-text" })], 10, TJ)) : Y("", !0),
48389
48385
  v.value ? (U(), G(x, {
48390
48386
  key: 1,
48391
48387
  icon: "i-lucide-zap",
@@ -48408,8 +48404,8 @@ var hU = /*#__PURE__*/ XH({
48408
48404
  key: 0,
48409
48405
  role: y.value.state === "error" ? "alert" : "status",
48410
48406
  class: "expert-card-check"
48411
- }, P(y.value.message), 9, OJ)) : Y("", !0),
48412
- g.value && m.value.length > 1 ? (U(), W("div", kJ, [n[16] ||= K("span", null, "接入", -1), q(S, {
48407
+ }, P(y.value.message), 9, EJ)) : Y("", !0),
48408
+ g.value && m.value.length > 1 ? (U(), W("div", DJ, [n[16] ||= K("span", null, "接入", -1), q(S, {
48413
48409
  "model-value": p.value.adapter || "",
48414
48410
  items: m.value,
48415
48411
  placeholder: "选择 API / App / CLI",
@@ -48438,7 +48434,7 @@ var hU = /*#__PURE__*/ XH({
48438
48434
  "aria-label",
48439
48435
  "onUpdate:modelValue"
48440
48436
  ])]))), 128)),
48441
- E.value ? (U(), W("div", AJ, [n[17] ||= K("span", null, "会话", -1), q(w, {
48437
+ E.value ? (U(), W("div", OJ, [n[17] ||= K("span", null, "会话", -1), q(w, {
48442
48438
  "model-value": e.session,
48443
48439
  placeholder: "续接已有会话 ID,留空则新建",
48444
48440
  "aria-label": `${e.name} 要续接的已有会话 ID`,
@@ -48446,8 +48442,8 @@ var hU = /*#__PURE__*/ XH({
48446
48442
  class: "w-full",
48447
48443
  "onUpdate:modelValue": n[6] ||= (e) => r("session", e)
48448
48444
  }, null, 8, ["model-value", "aria-label"])])) : Y("", !0),
48449
- E.value && e.session.trim() && T.value ? (U(), W("p", jJ, P(T.value), 1)) : Y("", !0),
48450
- ae.value ? (U(), W("div", MJ, [n[18] ||= K("span", null, "项目", -1), K("div", {
48445
+ E.value && e.session.trim() && T.value ? (U(), W("p", kJ, P(T.value), 1)) : Y("", !0),
48446
+ ae.value ? (U(), W("div", AJ, [n[18] ||= K("span", null, "项目", -1), K("div", {
48451
48447
  class: "expert-card-modes",
48452
48448
  role: "radiogroup",
48453
48449
  "aria-label": `${e.name} 的项目文件权限`
@@ -48463,12 +48459,12 @@ var hU = /*#__PURE__*/ XH({
48463
48459
  role: "radio",
48464
48460
  "aria-checked": ce.value === t.value,
48465
48461
  onClick: (n) => I(a).write_launch(e.name, "project_access", t.value)
48466
- }, P(t.label), 9, PJ)), 64))], 8, NJ)])) : Y("", !0),
48462
+ }, P(t.label), 9, MJ)), 64))], 8, jJ)])) : Y("", !0),
48467
48463
  v.value ? (U(), G(bK, {
48468
48464
  key: 5,
48469
48465
  name: e.name
48470
48466
  }, null, 8, ["name"])) : te.value && !ge.value.length ? (U(), W(H, { key: 6 }, [
48471
- K("div", FJ, [n[19] ||= K("span", null, "模型", -1), q(S, {
48467
+ K("div", NJ, [n[19] ||= K("span", null, "模型", -1), q(S, {
48472
48468
  "model-value": p.value.model || "__default__",
48473
48469
  items: k.value.items,
48474
48470
  title: k.value.source,
@@ -48482,12 +48478,12 @@ var hU = /*#__PURE__*/ XH({
48482
48478
  "title",
48483
48479
  "aria-label"
48484
48480
  ])]),
48485
- k.value.loading || k.value.error ? (U(), W("div", IJ, [K("span", null, P(k.value.loading ? "正在读取软件模型列表…" : k.value.error), 1), !k.value.loading && k.value.error && I(i).launch.available ? (U(), W("button", {
48481
+ k.value.loading || k.value.error ? (U(), W("div", PJ, [K("span", null, P(k.value.loading ? "正在读取软件模型列表…" : k.value.error), 1), !k.value.loading && k.value.error && I(i).launch.available ? (U(), W("button", {
48486
48482
  key: 0,
48487
48483
  type: "button",
48488
48484
  onClick: n[8] ||= (t) => I(a).load_launch_models(e.name, !0)
48489
48485
  }, "重试")) : Y("", !0)])) : Y("", !0),
48490
- ie.value ? (U(), W("div", LJ, [q(Yq, {
48486
+ ie.value ? (U(), W("div", FJ, [q(qq, {
48491
48487
  caption: "强度",
48492
48488
  items: ie.value,
48493
48489
  "model-value": p.value.effort || "",
@@ -48497,7 +48493,7 @@ var hU = /*#__PURE__*/ XH({
48497
48493
  "items",
48498
48494
  "model-value",
48499
48495
  "label"
48500
- ])])) : (U(), W("p", RJ, P(k.value.effort_note), 1)),
48496
+ ])])) : (U(), W("p", IJ, P(k.value.effort_note), 1)),
48501
48497
  K("button", {
48502
48498
  type: "button",
48503
48499
  class: "expert-card-defaults",
@@ -48505,24 +48501,24 @@ var hU = /*#__PURE__*/ XH({
48505
48501
  "aria-label": `恢复 ${e.name} 的默认模型与强度`,
48506
48502
  disabled: !p.value.model && !p.value.effort,
48507
48503
  onClick: ze
48508
- }, "恢复默认", 8, zJ)
48509
- ], 64)) : (U(), W("p", BJ, [q(d, { name: e.mode === "online" ? "i-lucide-globe" : "i-lucide-monitor" }, null, 8, ["name"]), J(P(ne.value), 1)]))
48510
- ]), K("span", VJ, [K("button", {
48504
+ }, "恢复默认", 8, LJ)
48505
+ ], 64)) : (U(), W("p", RJ, [q(d, { name: e.mode === "online" ? "i-lucide-globe" : "i-lucide-monitor" }, null, 8, ["name"]), J(P(ne.value), 1)]))
48506
+ ]), K("span", zJ, [K("button", {
48511
48507
  type: "button",
48512
48508
  class: "expert-card-flip is-cancel",
48513
48509
  "aria-label": `放弃 ${e.name} 的修改`,
48514
48510
  onClick: Ce
48515
- }, "取消", 8, HJ), K("button", {
48511
+ }, "取消", 8, BJ), K("button", {
48516
48512
  ref_key: "back_button",
48517
48513
  ref: u,
48518
48514
  type: "button",
48519
48515
  class: "expert-card-flip is-done",
48520
48516
  "aria-label": `保存并返回 ${e.name} 角色卡片`,
48521
48517
  onClick: n[10] ||= (e) => Se(!1)
48522
- }, [q(d, { name: "i-lucide-check" }), n[20] ||= J("完成", -1)], 8, UJ)])], 8, SJ)) : Y("", !0)]),
48518
+ }, [q(d, { name: "i-lucide-check" }), n[20] ||= J("完成", -1)], 8, VJ)])], 8, bJ)) : Y("", !0)]),
48523
48519
  _: 1
48524
48520
  }, 8, ["style"]),
48525
- q(tJ, {
48521
+ q($q, {
48526
48522
  open: Te.value,
48527
48523
  "onUpdate:open": n[11] ||= (e) => Te.value = e,
48528
48524
  name: e.name,
@@ -48537,7 +48533,7 @@ var hU = /*#__PURE__*/ XH({
48537
48533
  "text",
48538
48534
  "template"
48539
48535
  ]),
48540
- q($q, {
48536
+ q(Zq, {
48541
48537
  open: Me.value,
48542
48538
  "onUpdate:open": n[12] ||= (e) => Me.value = e,
48543
48539
  draft: Ne.value,
@@ -48546,7 +48542,7 @@ var hU = /*#__PURE__*/ XH({
48546
48542
  description: "只发给这位专家,补充它的做法与偏好;不改变权限和技能规则。",
48547
48543
  label: `${e.name} 的专属提示词`,
48548
48544
  placeholder: "例如:回答先给结论,控制在三段以内。",
48549
- max: I(nJ),
48545
+ max: I(eJ),
48550
48546
  rows: 8,
48551
48547
  note: Fe.value,
48552
48548
  source: Ie.value,
@@ -48562,15 +48558,15 @@ var hU = /*#__PURE__*/ XH({
48562
48558
  "source",
48563
48559
  "changed"
48564
48560
  ])
48565
- ], 42, iJ);
48561
+ ], 42, nJ);
48566
48562
  };
48567
48563
  }
48568
- }, [["__scopeId", "data-v-e30fab02"]]), qJ = ["aria-label"], JJ = [
48564
+ }, [["__scopeId", "data-v-e30fab02"]]), GJ = ["aria-label"], KJ = [
48569
48565
  "disabled",
48570
48566
  "title",
48571
48567
  "aria-label",
48572
48568
  "onClick"
48573
- ], YJ = /*#__PURE__*/ XH({
48569
+ ], qJ = /*#__PURE__*/ XH({
48574
48570
  __name: "RosterAdd",
48575
48571
  props: {
48576
48572
  label: {
@@ -48618,17 +48614,17 @@ var hU = /*#__PURE__*/ XH({
48618
48614
  ]),
48619
48615
  J(P(e.name), 1),
48620
48616
  q(o, { name: "i-lucide-plus" })
48621
- ], 8, JJ))), 128))], 8, qJ);
48617
+ ], 8, KJ))), 128))], 8, GJ);
48622
48618
  };
48623
48619
  }
48624
- }, [["__scopeId", "data-v-155b366c"]]), XJ = { class: "scheduler-settings" }, ZJ = { class: "scheduler-title" }, QJ = { class: "scheduler-description" }, $J = {
48620
+ }, [["__scopeId", "data-v-155b366c"]]), JJ = { class: "scheduler-settings" }, YJ = { class: "scheduler-title" }, XJ = { class: "scheduler-description" }, ZJ = {
48625
48621
  key: 0,
48626
48622
  class: "scheduler-cards"
48627
- }, eY = { class: "scheduler-identity" }, tY = { class: "scheduler-facts" }, nY = ["title"], rY = { class: "scheduler-flip" }, iY = { class: "scheduler-tools" }, aY = ["aria-label"], oY = { class: "scheduler-back" }, sY = { class: "scheduler-heading" }, cY = { class: "scheduler-field" }, lY = { class: "scheduler-field" }, uY = {
48623
+ }, QJ = { class: "scheduler-identity" }, $J = { class: "scheduler-facts" }, eY = ["title"], tY = { class: "scheduler-flip" }, nY = { class: "scheduler-tools" }, rY = ["aria-label"], iY = { class: "scheduler-back" }, aY = { class: "scheduler-heading" }, oY = { class: "scheduler-field" }, sY = { class: "scheduler-field" }, cY = {
48628
48624
  key: 0,
48629
48625
  role: "alert",
48630
48626
  class: "scheduler-error"
48631
- }, dY = ["role"], fY = { class: "scheduler-flip-actions" }, pY = "••••••••••••", mY = /*#__PURE__*/ XH({
48627
+ }, lY = ["role"], uY = { class: "scheduler-flip-actions" }, dY = "••••••••••••", fY = /*#__PURE__*/ XH({
48632
48628
  __name: "SchedulerSettings",
48633
48629
  props: {
48634
48630
  free: {
@@ -48740,8 +48736,8 @@ var hU = /*#__PURE__*/ XH({
48740
48736
  }
48741
48737
  return (t, a) => {
48742
48738
  let g = WV, D = pA, O = sA, ee = MA, k = dK, te = YV;
48743
- return U(), W("div", XJ, [
48744
- K("div", null, [K("p", ZJ, [
48739
+ return U(), W("div", JJ, [
48740
+ K("div", null, [K("p", YJ, [
48745
48741
  a[5] ||= J("智能调度", -1),
48746
48742
  q(g, {
48747
48743
  size: "xs",
@@ -48752,16 +48748,16 @@ var hU = /*#__PURE__*/ XH({
48752
48748
  _: 1
48753
48749
  }),
48754
48750
  a[6] ||= K("small", null, "可选", -1)
48755
- ]), K("p", QJ, P(e.blocker ? `${T.value}(${e.blocker})` : T.value), 1)]),
48756
- q(YJ, {
48751
+ ]), K("p", XJ, P(e.blocker ? `${T.value}(${e.blocker})` : T.value), 1)]),
48752
+ q(qJ, {
48757
48753
  ref_key: "add_row",
48758
48754
  ref: l,
48759
48755
  label: "添加决策模型",
48760
48756
  items: u.value,
48761
48757
  onAdd: y
48762
48758
  }, null, 8, ["items"]),
48763
- c.value ? (U(), W("div", $J, [K("div", { class: M(["scheduler-card", { "is-editing": h.value }]) }, [h.value ? (U(), W(H, { key: 1 }, [K("div", oY, [
48764
- K("div", sY, [K("strong", null, [J(P(x.value), 1), a[11] ||= K("span", null, "设置", -1)]), q(ee, {
48759
+ c.value ? (U(), W("div", ZJ, [K("div", { class: M(["scheduler-card", { "is-editing": h.value }]) }, [h.value ? (U(), W(H, { key: 1 }, [K("div", iY, [
48760
+ K("div", aY, [K("strong", null, [J(P(x.value), 1), a[11] ||= K("span", null, "设置", -1)]), q(ee, {
48765
48761
  icon: "i-lucide-zap",
48766
48762
  "aria-label": "检查智能调度配置",
48767
48763
  title: "检查配置:向决策模型发送一道极短的是非题,核对供应商、模型与密钥",
@@ -48776,7 +48772,7 @@ var hU = /*#__PURE__*/ XH({
48776
48772
  "loading",
48777
48773
  "disabled"
48778
48774
  ])]),
48779
- K("div", cY, [a[12] ||= K("span", null, "模型", -1), q(k, {
48775
+ K("div", oY, [a[12] ||= K("span", null, "模型", -1), q(k, {
48780
48776
  mode: "autocomplete",
48781
48777
  "ignore-filter": "",
48782
48778
  "model-value": i.value.model || "",
@@ -48788,7 +48784,7 @@ var hU = /*#__PURE__*/ XH({
48788
48784
  class: "w-full",
48789
48785
  "onUpdate:modelValue": a[0] ||= (e) => I(r).write_scheduler("model", e)
48790
48786
  }, null, 8, ["model-value", "items"])]),
48791
- K("div", lY, [a[13] ||= K("span", null, "密钥", -1), q(te, {
48787
+ K("div", sY, [a[13] ||= K("span", null, "密钥", -1), q(te, {
48792
48788
  modelValue: d.value,
48793
48789
  "onUpdate:modelValue": a[2] ||= (e) => d.value = e,
48794
48790
  type: "text",
@@ -48796,7 +48792,7 @@ var hU = /*#__PURE__*/ XH({
48796
48792
  spellcheck: "false",
48797
48793
  "data-1p-ignore": "",
48798
48794
  "data-lpignore": "true",
48799
- placeholder: i.value.api_key_ref ? pY : "填写所选供应商的 API Key",
48795
+ placeholder: i.value.api_key_ref ? dY : "填写所选供应商的 API Key",
48800
48796
  title: i.value.api_key_ref && !d.value ? "已保存;本机不回传密钥,输入新 Key 可更换" : void 0,
48801
48797
  "aria-label": "智能调度 API Key",
48802
48798
  size: "xs",
@@ -48831,14 +48827,14 @@ var hU = /*#__PURE__*/ XH({
48831
48827
  "loading",
48832
48828
  "ui"
48833
48829
  ])]),
48834
- m.value ? (U(), W("p", uY, P(m.value), 1)) : Y("", !0),
48830
+ m.value ? (U(), W("p", cY, P(m.value), 1)) : Y("", !0),
48835
48831
  C.value.message ? (U(), W("p", {
48836
48832
  key: 1,
48837
48833
  role: C.value.state === "error" ? "alert" : "status",
48838
48834
  class: M(C.value.state === "error" ? "scheduler-error" : "scheduler-ok")
48839
- }, P(C.value.message), 11, dY)) : Y("", !0),
48835
+ }, P(C.value.message), 11, lY)) : Y("", !0),
48840
48836
  a[14] ||= K("p", { class: "scheduler-note" }, "决策模型只做选择、不生成文本,只按输入计费。判断时会把房间标题和最近 10 条消息发给所选供应商;密钥只存本机。", -1)
48841
- ]), K("span", fY, [K("button", {
48837
+ ]), K("span", uY, [K("button", {
48842
48838
  type: "button",
48843
48839
  class: "scheduler-flip is-cancel",
48844
48840
  "aria-label": "放弃决策模型的修改",
@@ -48855,7 +48851,7 @@ var hU = /*#__PURE__*/ XH({
48855
48851
  title: "点击设置",
48856
48852
  onClick: _
48857
48853
  }, [
48858
- K("span", eY, [q(D, {
48854
+ K("span", QJ, [q(D, {
48859
48855
  src: s[i.value.provider]?.icon,
48860
48856
  text: x.value.slice(0, 2),
48861
48857
  alt: x.value,
@@ -48867,40 +48863,40 @@ var hU = /*#__PURE__*/ XH({
48867
48863
  "alt",
48868
48864
  "class"
48869
48865
  ]), K("strong", null, P(x.value), 1)]),
48870
- K("dl", tY, [K("div", null, [a[8] ||= K("dt", null, "状态", -1), K("dd", { class: M(`is-${S.value.tone}`) }, [a[7] ||= K("i", { "aria-hidden": "true" }, null, -1), J(P(S.value.text), 1)], 2)]), K("div", null, [a[9] ||= K("dt", null, "模型", -1), K("dd", { title: i.value.model }, P(i.value.model || "未选择"), 9, nY)])]),
48871
- K("span", rY, [q(O, { name: "i-lucide-settings-2" }), a[10] ||= J("设置", -1)])
48872
- ]), K("span", iY, [K("button", {
48866
+ K("dl", $J, [K("div", null, [a[8] ||= K("dt", null, "状态", -1), K("dd", { class: M(`is-${S.value.tone}`) }, [a[7] ||= K("i", { "aria-hidden": "true" }, null, -1), J(P(S.value.text), 1)], 2)]), K("div", null, [a[9] ||= K("dt", null, "模型", -1), K("dd", { title: i.value.model }, P(i.value.model || "未选择"), 9, eY)])]),
48867
+ K("span", tY, [q(O, { name: "i-lucide-settings-2" }), a[10] ||= J("设置", -1)])
48868
+ ]), K("span", nY, [K("button", {
48873
48869
  type: "button",
48874
48870
  "aria-label": `移出决策模型 ${x.value}`,
48875
48871
  title: "移出",
48876
48872
  onClick: b
48877
- }, [q(O, { name: "i-lucide-x" })], 8, aY)])], 64))], 2)])) : Y("", !0)
48873
+ }, [q(O, { name: "i-lucide-x" })], 8, rY)])], 64))], 2)])) : Y("", !0)
48878
48874
  ]);
48879
48875
  };
48880
48876
  }
48881
- }, [["__scopeId", "data-v-3e1049d5"]]), hY = { class: "create-discussion" }, gY = {
48877
+ }, [["__scopeId", "data-v-3e1049d5"]]), pY = { class: "create-discussion" }, mY = {
48882
48878
  key: 0,
48883
48879
  class: "create-connect",
48884
48880
  role: "status"
48885
- }, _Y = { class: "create-connect-command" }, vY = {
48881
+ }, hY = { class: "create-connect-command" }, gY = {
48886
48882
  key: 1,
48887
48883
  class: "channel-create-location"
48888
- }, yY = { class: "create-section" }, bY = { class: "create-section" }, xY = {
48884
+ }, _Y = { class: "create-section" }, vY = { class: "create-section" }, yY = {
48889
48885
  key: 0,
48890
48886
  class: "create-experts",
48891
48887
  role: "group",
48892
48888
  "aria-label": "参与的 AI"
48893
- }, SY = {
48889
+ }, bY = {
48894
48890
  key: 1,
48895
48891
  class: "create-experts-empty"
48896
- }, CY = {
48892
+ }, xY = {
48897
48893
  key: 2,
48898
48894
  class: "fine-print create-hint create-host-hint"
48899
- }, wY = { class: "create-section" }, TY = { class: "create-footer" }, EY = {
48895
+ }, SY = { class: "create-section" }, CY = { class: "create-footer" }, wY = {
48900
48896
  key: 0,
48901
48897
  role: "alert",
48902
48898
  class: "create-error"
48903
- }, DY = { class: "create-footer-row" }, OY = ["title"], kY = "new-expert-modes", AY = 3e3, jY = /*#__PURE__*/ XH({
48899
+ }, TY = { class: "create-footer-row" }, EY = ["title"], DY = "new-expert-modes", OY = 3e3, kY = /*#__PURE__*/ XH({
48904
48900
  __name: "CreateDiscussion",
48905
48901
  props: { targetFolder: {
48906
48902
  type: Object,
@@ -48908,7 +48904,7 @@ var hU = /*#__PURE__*/ XH({
48908
48904
  } },
48909
48905
  emits: ["submit", "cancel"],
48910
48906
  setup(e, { emit: t }) {
48911
- 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[kY] || {}), p = /* @__PURE__ */ F([]), m = Z(() => Object.keys(f.value).filter((e) => f.value[e]));
48907
+ 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[DY] || {}), p = /* @__PURE__ */ F([]), m = Z(() => Object.keys(f.value).filter((e) => f.value[e]));
48912
48908
  R(m, (e) => {
48913
48909
  p.value = [...p.value.filter((t) => e.includes(t)), ...e.filter((e) => !p.value.includes(e))];
48914
48910
  }, { immediate: !0 });
@@ -48932,14 +48928,14 @@ var hU = /*#__PURE__*/ XH({
48932
48928
  Qi(() => {
48933
48929
  ae(), ie = window.setInterval(() => {
48934
48930
  re.value && !document.hidden && o("check_launch_connection");
48935
- }, AY);
48931
+ }, OY);
48936
48932
  }), ta(() => window.clearInterval(ie));
48937
48933
  function oe(e) {
48938
48934
  i.write_create_discussion(e), Qn(ae);
48939
48935
  }
48940
48936
  let se = (e) => i.launch_clients[e]?.some((e) => e.value !== "api"), ce = (e) => d.value && e === v.value ? [] : ["cli", "manual"];
48941
48937
  function le(e, t) {
48942
- t === "cli" && !se(e) && !r.value.launch.profiles[e]?.adapter && i.write_launch(e, "adapter", "api"), i.write_expert(kY, e, t), ae();
48938
+ t === "cli" && !se(e) && !r.value.launch.profiles[e]?.adapter && i.write_launch(e, "adapter", "api"), i.write_expert(DY, e, t), ae();
48943
48939
  }
48944
48940
  function ue(e) {
48945
48941
  if (f.value[e] === "online") return {
@@ -48978,7 +48974,7 @@ var hU = /*#__PURE__*/ XH({
48978
48974
  aria_label: `添加 ${e} 实例`
48979
48975
  })));
48980
48976
  function pe(e) {
48981
- i.launch_clients[e] && (!se(e) && !r.value.launch.profiles[e]?.adapter && i.write_launch(e, "adapter", "api"), g(e) ? i.add_instance(kY, e, "cli") : le(e, "cli"), ae());
48977
+ i.launch_clients[e] && (!se(e) && !r.value.launch.profiles[e]?.adapter && i.write_launch(e, "adapter", "api"), g(e) ? i.add_instance(DY, e, "cli") : le(e, "cli"), ae());
48982
48978
  }
48983
48979
  function me(e) {
48984
48980
  le(e, ""), Qn(() => _.value?.focus_first());
@@ -48999,21 +48995,21 @@ var hU = /*#__PURE__*/ XH({
48999
48995
  return t.join(" · ");
49000
48996
  });
49001
48997
  return (t, s) => {
49002
- let c = sA, p = MA, m = YV, g = zV, x = Fq, T = HV;
49003
- return U(), W("div", hY, [K("form", {
48998
+ let c = sA, p = MA, m = YV, g = zV, x = Nq, T = HV;
48999
+ return U(), W("div", pY, [K("form", {
49004
49000
  id: "create-discussion-form",
49005
49001
  class: "create-scroll dialog-form",
49006
49002
  onSubmit: uu(he, ["prevent"])
49007
49003
  }, [
49008
- re.value ? (U(), W("div", gY, [K("p", null, [q(c, { name: "i-lucide-plug-zap" }), s[9] ||= J("本机服务未连接,连接后才能唤醒本机 AI。在运行 AI 的电脑上执行下面的命令并完成网页授权,连上后自动检测。", -1)]), K("div", _Y, [K("code", null, P(I(r).launch.connect_command), 1), q(p, {
49004
+ re.value ? (U(), W("div", mY, [K("p", null, [q(c, { name: "i-lucide-plug-zap" }), s[9] ||= J("本机服务未连接,连接后才能唤醒本机 AI。在运行 AI 的电脑上执行下面的命令并完成网页授权,连上后自动检测。", -1)]), K("div", hY, [K("code", null, P(I(r).launch.connect_command), 1), q(p, {
49009
49005
  icon: "i-lucide-copy",
49010
49006
  "aria-label": "复制本机连接命令",
49011
49007
  variant: "ghost",
49012
49008
  color: "neutral",
49013
49009
  onClick: s[0] ||= (e) => I(o)("copy", I(r).launch.connect_command)
49014
49010
  })])])) : Y("", !0),
49015
- e.targetFolder?.id ? (U(), W("p", vY, [q(c, { name: "i-lucide-folder" }), J(P(e.targetFolder.name), 1)])) : Y("", !0),
49016
- K("section", yY, [
49011
+ e.targetFolder?.id ? (U(), W("p", gY, [q(c, { name: "i-lucide-folder" }), J(P(e.targetFolder.name), 1)])) : Y("", !0),
49012
+ K("section", _Y, [
49017
49013
  s[10] ||= K("h3", null, [K("span", null, "1"), J("这次做什么")], -1),
49018
49014
  q(g, {
49019
49015
  label: "话题名称",
@@ -49039,16 +49035,16 @@ var hU = /*#__PURE__*/ XH({
49039
49035
  _: 1
49040
49036
  }, 8, ["description"])
49041
49037
  ]),
49042
- K("section", bY, [
49038
+ K("section", vY, [
49043
49039
  s[11] ||= K("h3", null, [K("span", null, "2"), J("谁来参与")], -1),
49044
- q(YJ, {
49040
+ q(qJ, {
49045
49041
  ref_key: "library",
49046
49042
  ref: _,
49047
49043
  label: "添加 AI",
49048
49044
  items: fe.value,
49049
49045
  onAdd: pe
49050
49046
  }, null, 8, ["items"]),
49051
- h.value.length ? (U(), W("div", xY, [(U(!0), W(H, null, B(h.value, (e) => (U(), G(KJ, {
49047
+ h.value.length ? (U(), W("div", yY, [(U(!0), W(H, null, B(h.value, (e) => (U(), G(WJ, {
49052
49048
  key: e,
49053
49049
  name: e,
49054
49050
  mode: f.value[e],
@@ -49070,14 +49066,14 @@ var hU = /*#__PURE__*/ XH({
49070
49066
  "onHost",
49071
49067
  "onRemove",
49072
49068
  "onMode"
49073
- ]))), 128))])) : (U(), W("p", SY, "请至少添加一位成员。同一平台可添加多位,各自独立会话。")),
49074
- h.value.length ? (U(), W("div", CY, [q(c, { name: "i-lucide-crown" }), K("span", null, P(y.value.length ? "点卡片上的皇冠指定主持人:没 @ 任何人的消息由它分配;其他成员只在被你或主持人点名时发言。" : "需要一位本地 AI 做主持人,没 @ 的消息才有人接。"), 1)])) : Y("", !0),
49075
- q(mY, {
49069
+ ]))), 128))])) : (U(), W("p", bY, "请至少添加一位成员。同一平台可添加多位,各自独立会话。")),
49070
+ h.value.length ? (U(), W("div", xY, [q(c, { name: "i-lucide-crown" }), K("span", null, P(y.value.length ? "点卡片上的皇冠指定主持人:没 @ 任何人的消息由它分配;其他成员只在被你或主持人点名时发言。" : "需要一位本地 AI 做主持人,没 @ 的消息才有人接。"), 1)])) : Y("", !0),
49071
+ q(fY, {
49076
49072
  free: !0,
49077
49073
  blocker: te.value
49078
49074
  }, null, 8, ["blocker"])
49079
49075
  ]),
49080
- K("section", wY, [
49076
+ K("section", SY, [
49081
49077
  s[12] ||= K("h3", null, [K("span", null, "3"), J("推进方式(可选)")], -1),
49082
49078
  q(x, {
49083
49079
  "model-value": d.value,
@@ -49123,7 +49119,7 @@ var hU = /*#__PURE__*/ XH({
49123
49119
  "execution_minutes"
49124
49120
  ])], 64)) : Y("", !0)
49125
49121
  ])
49126
- ], 32), K("footer", TY, [D.value && I(r).launch.error ? (U(), W("p", EY, P(I(r).launch.error), 1)) : Y("", !0), K("div", DY, [
49122
+ ], 32), K("footer", CY, [D.value && I(r).launch.error ? (U(), W("p", wY, P(I(r).launch.error), 1)) : Y("", !0), K("div", TY, [
49127
49123
  K("span", {
49128
49124
  class: M(["create-summary", { "is-blocked": A.value }]),
49129
49125
  title: A.value || ge.value,
@@ -49131,7 +49127,7 @@ var hU = /*#__PURE__*/ XH({
49131
49127
  }, [A.value ? (U(), G(c, {
49132
49128
  key: 0,
49133
49129
  name: "i-lucide-circle-alert"
49134
- })) : Y("", !0), J(P(A.value ? `还差:${A.value}` : h.value.length || d.value ? ge.value : ""), 1)], 10, OY),
49130
+ })) : Y("", !0), J(P(A.value ? `还差:${A.value}` : h.value.length || d.value ? ge.value : ""), 1)], 10, EY),
49135
49131
  q(p, {
49136
49132
  label: "取消",
49137
49133
  color: "neutral",
@@ -49155,46 +49151,46 @@ var hU = /*#__PURE__*/ XH({
49155
49151
  ])])]);
49156
49152
  };
49157
49153
  }
49158
- }, [["__scopeId", "data-v-61eb0b0c"]]), MY = {
49154
+ }, [["__scopeId", "data-v-61eb0b0c"]]), AY = {
49159
49155
  class: "account-settings",
49160
49156
  "aria-labelledby": "account-heading"
49161
- }, NY = {
49157
+ }, jY = {
49162
49158
  key: 0,
49163
49159
  class: "fine-print",
49164
49160
  role: "status"
49165
- }, PY = ["aria-label"], FY = { class: "fine-print account-intro" }, IY = {
49161
+ }, MY = ["aria-label"], NY = { class: "fine-print account-intro" }, PY = {
49166
49162
  key: 0,
49167
49163
  class: "account-message is-error",
49168
49164
  role: "status"
49169
- }, LY = {
49165
+ }, FY = {
49170
49166
  key: 1,
49171
49167
  class: "fine-print"
49172
- }, RY = {
49168
+ }, IY = {
49173
49169
  key: 1,
49174
49170
  class: "fine-print"
49175
- }, zY = {
49171
+ }, LY = {
49176
49172
  key: 2,
49177
49173
  class: "account-message is-error",
49178
49174
  role: "alert"
49179
- }, BY = {
49175
+ }, RY = {
49180
49176
  key: 3,
49181
49177
  class: "account-message",
49182
49178
  role: "status"
49183
- }, VY = { class: "account-actions" }, HY = {
49179
+ }, zY = { class: "account-actions" }, BY = {
49184
49180
  key: 2,
49185
49181
  class: "account-profile"
49186
- }, UY = { class: "account-identity" }, WY = { class: "account-avatar-actions" }, GY = { class: "account-name-row" }, KY = {
49182
+ }, VY = { class: "account-identity" }, HY = { class: "account-avatar-actions" }, UY = { class: "account-name-row" }, WY = {
49187
49183
  key: 0,
49188
49184
  class: "account-message is-error",
49189
49185
  role: "alert"
49190
- }, qY = {
49186
+ }, GY = {
49191
49187
  key: 1,
49192
49188
  class: "account-message",
49193
49189
  role: "status"
49194
- }, JY = {
49190
+ }, KY = {
49195
49191
  key: 2,
49196
49192
  class: "account-signout account-actions"
49197
- }, YY = {
49193
+ }, qY = {
49198
49194
  __name: "AccountSettings",
49199
49195
  setup(e) {
49200
49196
  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({
@@ -49262,13 +49258,13 @@ var hU = /*#__PURE__*/ XH({
49262
49258
  }
49263
49259
  return (e, t) => {
49264
49260
  let p = YV, y = zV, b = MA, x = pA;
49265
- return U(), W("section", MY, [t[8] ||= K("h3", { id: "account-heading" }, "账号", -1), a.value === "loading" ? (U(), W("p", NY, "正在读取账号状态…")) : a.value === "register" || a.value === "login" ? (U(), W("form", {
49261
+ return U(), W("section", AY, [t[8] ||= K("h3", { id: "account-heading" }, "账号", -1), a.value === "loading" ? (U(), W("p", jY, "正在读取账号状态…")) : a.value === "register" || a.value === "login" ? (U(), W("form", {
49266
49262
  key: 1,
49267
49263
  class: "dialog-form account-form",
49268
49264
  "aria-label": a.value === "register" ? "设置管理员账号" : "登录管理员账号",
49269
49265
  onSubmit: uu(m, ["prevent"])
49270
49266
  }, [
49271
- K("p", FY, [a.value === "register" ? (U(), W(H, { key: 0 }, [J("设置站点管理员账号:名称和头像对所有访客可见,登录后可在没有房间凭据的浏览器中存档、恢复、删除房间。")], 64)) : (U(), W(H, { key: 1 }, [J("登录后可管理房间;未登录时仍可阅读并使用本浏览器创建的房间。")], 64))]),
49267
+ K("p", NY, [a.value === "register" ? (U(), W(H, { key: 0 }, [J("设置站点管理员账号:名称和头像对所有访客可见,登录后可在没有房间凭据的浏览器中存档、恢复、删除房间。")], 64)) : (U(), W(H, { key: 1 }, [J("登录后可管理房间;未登录时仍可阅读并使用本浏览器创建的房间。")], 64))]),
49272
49268
  q(y, {
49273
49269
  label: "用户名",
49274
49270
  description: a.value === "register" ? "1–30 个字符,也是公开显示的名称" : void 0,
@@ -49335,18 +49331,18 @@ var hU = /*#__PURE__*/ XH({
49335
49331
  }, null, 8, ["modelValue", "disabled"])]),
49336
49332
  _: 1
49337
49333
  }),
49338
- f.value ? (U(), W("p", IY, "服务端未配置安装令牌,暂时无法注册。本地版请设置环境变量 DISCUSS_ADMIN_SETUP_KEY 后重启;Cloudflare 版请配置部署机密 ADMIN_SETUP_KEY。")) : (U(), W("p", LY, [...t[6] ||= [
49334
+ f.value ? (U(), W("p", PY, "服务端未配置安装令牌,暂时无法注册。本地版请设置环境变量 DISCUSS_ADMIN_SETUP_KEY 后重启;Cloudflare 版请配置部署机密 ADMIN_SETUP_KEY。")) : (U(), W("p", FY, [...t[6] ||= [
49339
49335
  J("首个注册者需要安装令牌,防止他人抢注。本地版见服务端启动日志;Cloudflare 版为部署机密 ADMIN_SETUP_KEY。忘记密码:本地版运行 ", -1),
49340
49336
  K("code", null, "python server.py --reset-admin", -1),
49341
49337
  J(" 后重新注册;Cloudflare 版需清空管理员表(见部署文档)。", -1)
49342
49338
  ]]))
49343
- ], 64)) : (U(), W("p", RY, [...t[7] ||= [
49339
+ ], 64)) : (U(), W("p", IY, [...t[7] ||= [
49344
49340
  J("忘记密码:本地版运行 ", -1),
49345
49341
  K("code", null, "python server.py --reset-admin", -1),
49346
49342
  J(" 后重新注册;Cloudflare 版需清空管理员表(见部署文档)。", -1)
49347
49343
  ]])),
49348
- s.auth.error ? (U(), W("p", zY, P(s.auth.error), 1)) : s.auth.notice ? (U(), W("p", BY, P(s.auth.notice), 1)) : Y("", !0),
49349
- K("div", VY, [q(b, {
49344
+ s.auth.error ? (U(), W("p", LY, P(s.auth.error), 1)) : s.auth.notice ? (U(), W("p", RY, P(s.auth.notice), 1)) : Y("", !0),
49345
+ K("div", zY, [q(b, {
49350
49346
  type: "submit",
49351
49347
  class: "channel-primary-button",
49352
49348
  label: a.value === "register" ? "创建并登录" : "登录",
@@ -49357,13 +49353,13 @@ var hU = /*#__PURE__*/ XH({
49357
49353
  "loading",
49358
49354
  "disabled"
49359
49355
  ])])
49360
- ], 40, PY)) : (U(), W("div", HY, [
49361
- K("div", UY, [q(x, {
49356
+ ], 40, MY)) : (U(), W("div", BY, [
49357
+ K("div", VY, [q(x, {
49362
49358
  src: I(n).identities.用户.icon,
49363
49359
  alt: `${I(n).display_name("用户")} 的头像`,
49364
49360
  size: "lg",
49365
49361
  class: "channel-avatar user account-avatar"
49366
- }, null, 8, ["src", "alt"]), K("div", WY, [
49362
+ }, null, 8, ["src", "alt"]), K("div", HY, [
49367
49363
  K("input", {
49368
49364
  ref_key: "avatar_input",
49369
49365
  ref: u,
@@ -49401,7 +49397,7 @@ var hU = /*#__PURE__*/ XH({
49401
49397
  label: "显示名称",
49402
49398
  description: "即用户名,对所有访客可见"
49403
49399
  }, {
49404
- default: L(() => [K("div", GY, [q(p, {
49400
+ default: L(() => [K("div", UY, [q(p, {
49405
49401
  modelValue: l.value,
49406
49402
  "onUpdate:modelValue": t[5] ||= (e) => l.value = e,
49407
49403
  autocomplete: "username",
@@ -49419,8 +49415,8 @@ var hU = /*#__PURE__*/ XH({
49419
49415
  }, null, 8, ["loading", "disabled"])])]),
49420
49416
  _: 1
49421
49417
  })], 32),
49422
- s.profile.error ? (U(), W("p", KY, P(s.profile.error), 1)) : s.profile.notice ? (U(), W("p", qY, P(s.profile.notice), 1)) : Y("", !0),
49423
- r.value.local ? Y("", !0) : (U(), W("div", JY, [q(b, {
49418
+ s.profile.error ? (U(), W("p", WY, P(s.profile.error), 1)) : s.profile.notice ? (U(), W("p", GY, P(s.profile.notice), 1)) : Y("", !0),
49419
+ r.value.local ? Y("", !0) : (U(), W("div", KY, [q(b, {
49424
49420
  label: "退出登录",
49425
49421
  icon: "i-lucide-log-out",
49426
49422
  color: "neutral",
@@ -49433,65 +49429,65 @@ var hU = /*#__PURE__*/ XH({
49433
49429
  ]))]);
49434
49430
  };
49435
49431
  }
49436
- }, XY = {
49432
+ }, JY = {
49437
49433
  key: 0,
49438
49434
  class: "channel-archive-manager"
49439
- }, ZY = { class: "channel-archive-toolbar" }, QY = {
49435
+ }, YY = { class: "channel-archive-toolbar" }, XY = {
49440
49436
  key: 0,
49441
49437
  class: "channel-archive-confirm channel-archive-bulk",
49442
49438
  role: "alert"
49443
- }, $Y = {
49439
+ }, ZY = {
49444
49440
  key: 1,
49445
49441
  role: "alert",
49446
49442
  class: "channel-directory-error"
49447
- }, eX = { class: "channel-archive-results" }, tX = {
49443
+ }, QY = { class: "channel-archive-results" }, $Y = {
49448
49444
  key: 0,
49449
49445
  class: "channel-archive-list",
49450
49446
  "aria-label": "已存档房间列表"
49451
- }, nX = { class: "channel-archive-row" }, rX = { class: "channel-archive-info" }, iX = [
49447
+ }, eX = { class: "channel-archive-row" }, tX = { class: "channel-archive-info" }, nX = [
49452
49448
  "title",
49453
49449
  "disabled",
49454
49450
  "onClick"
49455
- ], aX = { key: 0 }, oX = ["datetime"], sX = { class: "channel-archive-actions" }, cX = {
49451
+ ], rX = { key: 0 }, iX = ["datetime"], aX = { class: "channel-archive-actions" }, oX = {
49456
49452
  key: 0,
49457
49453
  class: "channel-archive-confirm channel-archive-bulk",
49458
49454
  role: "alert"
49459
- }, lX = {
49455
+ }, sX = {
49460
49456
  key: 1,
49461
49457
  class: "channel-archive-empty"
49462
- }, uX = { class: "fine-print" }, dX = { class: "dialog-actions" }, fX = { class: "dialog-actions" }, pX = { class: "channel-management-target" }, mX = {
49458
+ }, cX = { class: "fine-print" }, lX = { class: "dialog-actions" }, uX = { class: "dialog-actions" }, dX = { class: "channel-management-target" }, fX = {
49463
49459
  key: 0,
49464
49460
  class: "fine-print"
49465
- }, hX = {
49461
+ }, pX = {
49466
49462
  key: 1,
49467
49463
  class: "fine-print"
49468
- }, gX = {
49464
+ }, mX = {
49469
49465
  key: 2,
49470
49466
  class: "fine-print"
49471
- }, _X = { class: "dialog-actions" }, vX = { key: 4 }, yX = { class: "theme-choices" }, bX = ["aria-pressed", "onClick"], xX = { class: "theme-check" }, SX = { class: "channel-reading-setting" }, CX = {
49467
+ }, hX = { class: "dialog-actions" }, gX = { key: 4 }, _X = { class: "theme-choices" }, vX = ["aria-pressed", "onClick"], yX = { class: "theme-check" }, bX = { class: "channel-reading-setting" }, xX = {
49472
49468
  class: "channel-reading-options",
49473
49469
  role: "group",
49474
49470
  "aria-labelledby": "channel-reading-label"
49475
- }, wX = { class: "channel-reading-setting" }, TX = {
49471
+ }, SX = { class: "channel-reading-setting" }, CX = {
49476
49472
  class: "channel-reading-options channel-effect-options",
49477
49473
  role: "group",
49478
49474
  "aria-labelledby": "channel-effects-label"
49479
- }, EX = { class: "form-two-columns" }, DX = { class: "advanced-content" }, OX = {
49475
+ }, wX = { class: "form-two-columns" }, TX = { class: "advanced-content" }, EX = {
49480
49476
  key: 0,
49481
49477
  class: "fine-print"
49482
- }, kX = { class: "advanced-content" }, AX = { class: "expert-fields" }, jX = { class: "dialog-actions" }, MX = { class: "dialog-actions" }, NX = {
49478
+ }, DX = { class: "advanced-content" }, OX = { class: "expert-fields" }, kX = { class: "dialog-actions" }, AX = { class: "dialog-actions" }, jX = {
49483
49479
  key: 8,
49484
49480
  class: "original-message"
49485
- }, PX = {
49481
+ }, MX = {
49486
49482
  key: 0,
49487
49483
  role: "alert"
49488
- }, FX = { class: "original-meta" }, IX = { class: "fine-print" }, LX = {
49484
+ }, NX = { class: "original-meta" }, PX = { class: "fine-print" }, FX = {
49489
49485
  key: 0,
49490
49486
  class: "channel-answer-summary"
49491
- }, RX = { class: "message-prose" }, zX = { class: "message-prose" }, BX = ["innerHTML"], VX = {
49487
+ }, IX = { class: "message-prose" }, LX = { class: "message-prose" }, RX = ["innerHTML"], zX = {
49492
49488
  key: 2,
49493
49489
  class: "fine-print"
49494
- }, HX = "topic-expert-modes", UX = {
49490
+ }, BX = "topic-expert-modes", VX = {
49495
49491
  __name: "WorkspaceDialogs",
49496
49492
  props: /*@__PURE__*/ Fa({
49497
49493
  detailId: {
@@ -49741,7 +49737,7 @@ var hU = /*#__PURE__*/ XH({
49741
49737
  }
49742
49738
  let Se = (e) => e.preventDefault();
49743
49739
  return (t, c) => {
49744
- let x = YV, S = bH, le = MA, ue = zV, ve = sA, Ce = HV, we = Nq, Te = WV, Ee = YH;
49740
+ let x = YV, S = bH, le = MA, ue = zV, ve = sA, Ce = HV, we = jq, Te = WV, Ee = YH;
49745
49741
  return U(), G(Ee, {
49746
49742
  open: d.value,
49747
49743
  "onUpdate:open": c[25] ||= (e) => d.value = e,
@@ -49769,8 +49765,8 @@ var hU = /*#__PURE__*/ XH({
49769
49765
  } : void 0,
49770
49766
  "onAfter:leave": be
49771
49767
  }, {
49772
- body: L(() => [a.value === "archives" ? (U(), W("section", XY, [
49773
- K("div", ZY, [
49768
+ body: L(() => [a.value === "archives" ? (U(), W("section", JY, [
49769
+ K("div", YY, [
49774
49770
  q(x, {
49775
49771
  modelValue: h.value,
49776
49772
  "onUpdate:modelValue": c[0] ||= (e) => h.value = e,
@@ -49799,7 +49795,7 @@ var hU = /*#__PURE__*/ XH({
49799
49795
  }
49800
49796
  }, null, 8, ["label", "disabled"])
49801
49797
  ]),
49802
- b.value && v.value.length ? (U(), W("div", QY, [
49798
+ b.value && v.value.length ? (U(), W("div", XY, [
49803
49799
  K("span", null, "将永久删除当前列表中的 " + P(v.value.length) + " 个房间及其全部记录,无法撤销。", 1),
49804
49800
  q(le, {
49805
49801
  label: "取消",
@@ -49815,20 +49811,20 @@ var hU = /*#__PURE__*/ XH({
49815
49811
  onClick: D
49816
49812
  })
49817
49813
  ])) : Y("", !0),
49818
- I(o).directory_error ? (U(), W("p", $Y, P(I(o).directory_error), 1)) : Y("", !0),
49819
- K("div", eX, [v.value.length ? (U(), W("ul", tX, [(U(!0), W(H, null, B(v.value, (e) => (U(), W("li", {
49814
+ I(o).directory_error ? (U(), W("p", ZY, P(I(o).directory_error), 1)) : Y("", !0),
49815
+ K("div", QY, [v.value.length ? (U(), W("ul", $Y, [(U(!0), W(H, null, B(v.value, (e) => (U(), W("li", {
49820
49816
  key: e.id,
49821
49817
  class: "channel-archive-item"
49822
- }, [K("div", nX, [K("div", rX, [K("button", {
49818
+ }, [K("div", eX, [K("div", tX, [K("button", {
49823
49819
  class: "channel-archive-title",
49824
49820
  title: e.title,
49825
49821
  disabled: !!I(u),
49826
49822
  onClick: (t) => T(e)
49827
- }, P(e.title), 9, iX), K("small", null, [e.created_at ? (U(), W("span", aX, [
49823
+ }, P(e.title), 9, nX), K("small", null, [e.created_at ? (U(), W("span", rX, [
49828
49824
  c[26] ||= J("创建于 ", -1),
49829
- K("time", { datetime: e.created_at }, P(C(e.created_at)), 9, oX),
49825
+ K("time", { datetime: e.created_at }, P(C(e.created_at)), 9, iX),
49830
49826
  c[27] ||= J(" · ", -1)
49831
- ])) : Y("", !0), J(P(e.message_count) + " 条消息", 1)])]), K("div", sX, [q(le, {
49827
+ ])) : Y("", !0), J(P(e.message_count) + " 条消息", 1)])]), K("div", aX, [q(le, {
49832
49828
  "aria-label": `彻底删除 ${e.title}`,
49833
49829
  title: "彻底删除",
49834
49830
  icon: "i-lucide-trash-2",
@@ -49860,7 +49856,7 @@ var hU = /*#__PURE__*/ XH({
49860
49856
  "aria-label",
49861
49857
  "disabled",
49862
49858
  "onClick"
49863
- ])])]), y.value === e.id ? (U(), W("div", cX, [
49859
+ ])])]), y.value === e.id ? (U(), W("div", oX, [
49864
49860
  K("span", null, "永久删除「" + P(e.title) + "」及其全部记录,无法撤销。", 1),
49865
49861
  q(le, {
49866
49862
  label: "取消",
@@ -49876,12 +49872,12 @@ var hU = /*#__PURE__*/ XH({
49876
49872
  disabled: w(e),
49877
49873
  onClick: E
49878
49874
  }, null, 8, ["disabled"])
49879
- ])) : Y("", !0)]))), 128))])) : (U(), W("p", lX, P(m.value.length ? "没有匹配的存档房间" : "暂无已存档房间"), 1))])
49875
+ ])) : Y("", !0)]))), 128))])) : (U(), W("p", sX, P(m.value.length ? "没有匹配的存档房间" : "暂无已存档房间"), 1))])
49880
49876
  ])) : a.value === "delete-folder" ? (U(), W("form", {
49881
49877
  key: 1,
49882
49878
  class: "dialog-form",
49883
49879
  onSubmit: uu(re, ["prevent"])
49884
- }, [K("p", uX, "移除「" + P(e.targetFolder?.name) + "」后,房间不再归属文件夹,所有消息和存档状态都会保留。", 1), K("div", dX, [q(le, {
49880
+ }, [K("p", cX, "移除「" + P(e.targetFolder?.name) + "」后,房间不再归属文件夹,所有消息和存档状态都会保留。", 1), K("div", lX, [q(le, {
49885
49881
  label: "取消",
49886
49882
  color: "neutral",
49887
49883
  variant: "ghost",
@@ -49912,7 +49908,7 @@ var hU = /*#__PURE__*/ XH({
49912
49908
  "modelValue",
49913
49909
  "aria-label",
49914
49910
  "readonly"
49915
- ]), K("div", fX, [q(le, {
49911
+ ]), K("div", uX, [q(le, {
49916
49912
  label: "取消",
49917
49913
  color: "neutral",
49918
49914
  variant: "ghost",
@@ -49937,10 +49933,10 @@ var hU = /*#__PURE__*/ XH({
49937
49933
  class: "dialog-form",
49938
49934
  onSubmit: uu(te, ["prevent"])
49939
49935
  }, [
49940
- K("p", pX, [J(P(e.targetRoom?.title) + " ", 1), K("span", null, "· " + P(e.targetRoom?.message_count) + " 条消息", 1)]),
49941
- a.value === "archive" ? (U(), W("p", mX, "存档后可在侧栏「已存档」中查阅与恢复。已有发言安排会保留;专家需在下次检查时停止自己的定时任务。")) : Y("", !0),
49942
- a.value === "restore" ? (U(), W("p", hX, "恢复不会自动继续讨论;需要继续时,在主持设置中调整阶段。")) : Y("", !0),
49943
- a.value === "delete" ? (U(), W("p", gX, "消息、共识和发言安排将一起删除,无法撤销。")) : Y("", !0),
49936
+ K("p", dX, [J(P(e.targetRoom?.title) + " ", 1), K("span", null, "· " + P(e.targetRoom?.message_count) + " 条消息", 1)]),
49937
+ a.value === "archive" ? (U(), W("p", fX, "存档后可在侧栏「已存档」中查阅与恢复。已有发言安排会保留;专家需在下次检查时停止自己的定时任务。")) : Y("", !0),
49938
+ a.value === "restore" ? (U(), W("p", pX, "恢复不会自动继续讨论;需要继续时,在主持设置中调整阶段。")) : Y("", !0),
49939
+ a.value === "delete" ? (U(), W("p", mX, "消息、共识和发言安排将一起删除,无法撤销。")) : Y("", !0),
49944
49940
  a.value === "rename" ? (U(), G(ue, {
49945
49941
  key: 3,
49946
49942
  label: "房间名称",
@@ -49957,7 +49953,7 @@ var hU = /*#__PURE__*/ XH({
49957
49953
  }, null, 8, ["modelValue"])]),
49958
49954
  _: 1
49959
49955
  })) : Y("", !0),
49960
- K("div", _X, [q(le, {
49956
+ K("div", hX, [q(le, {
49961
49957
  label: "取消",
49962
49958
  color: "neutral",
49963
49959
  variant: "ghost",
@@ -49974,10 +49970,10 @@ var hU = /*#__PURE__*/ XH({
49974
49970
  "loading",
49975
49971
  "disabled"
49976
49972
  ])])
49977
- ], 32)) : a.value === "settings" ? (U(), W("div", vX, [
49978
- q(YY),
49973
+ ], 32)) : a.value === "settings" ? (U(), W("div", gX, [
49974
+ q(qY),
49979
49975
  c[32] ||= K("h3", { class: "account-appearance-heading" }, "外观", -1),
49980
- K("div", yX, [(U(), W(H, null, B(he, (e) => K("button", {
49976
+ K("div", _X, [(U(), W(H, null, B(he, (e) => K("button", {
49981
49977
  key: e.value,
49982
49978
  class: M({ chosen: I(o).theme === e.value }),
49983
49979
  "aria-pressed": I(o).theme === e.value,
@@ -49992,12 +49988,12 @@ var hU = /*#__PURE__*/ XH({
49992
49988
  K("b")
49993
49989
  ], -1)]], 2),
49994
49990
  K("span", null, [K("strong", null, P(e.title), 1), K("small", null, P(e.description), 1)]),
49995
- K("span", xX, [I(o).theme === e.value ? (U(), G(ve, {
49991
+ K("span", yX, [I(o).theme === e.value ? (U(), G(ve, {
49996
49992
  key: 0,
49997
49993
  name: "i-lucide-check"
49998
49994
  })) : Y("", !0)])
49999
- ], 10, bX)), 64))]),
50000
- K("section", SX, [c[29] ||= K("h3", { id: "channel-reading-label" }, "对话宽度", -1), K("div", CX, [(U(!0), W(H, null, B(e.readingOptions, (e) => (U(), G(le, {
49995
+ ], 10, vX)), 64))]),
49996
+ K("section", bX, [c[29] ||= K("h3", { id: "channel-reading-label" }, "对话宽度", -1), K("div", xX, [(U(!0), W(H, null, B(e.readingOptions, (e) => (U(), G(le, {
50001
49997
  key: e.value,
50002
49998
  label: e.label,
50003
49999
  color: "neutral",
@@ -50011,9 +50007,9 @@ var hU = /*#__PURE__*/ XH({
50011
50007
  "aria-pressed",
50012
50008
  "onClick"
50013
50009
  ]))), 128))])]),
50014
- K("section", wX, [
50010
+ K("section", SX, [
50015
50011
  c[30] ||= K("h3", { id: "channel-effects-label" }, "视觉效果", -1),
50016
- K("div", TX, [(U(!0), W(H, null, B(e.effectOptions, (e) => (U(), G(le, {
50012
+ K("div", CX, [(U(!0), W(H, null, B(e.effectOptions, (e) => (U(), G(le, {
50017
50013
  key: e.value,
50018
50014
  label: e.label,
50019
50015
  color: "neutral",
@@ -50029,7 +50025,7 @@ var hU = /*#__PURE__*/ XH({
50029
50025
  ]))), 128))]),
50030
50026
  c[31] ||= K("p", { class: "fine-print" }, "精简模式关闭毛玻璃模糊与多层阴影,适合配置较低或需要更流畅滚动的设备。", -1)
50031
50027
  ])
50032
- ])) : a.value === "create" ? (U(), G(jY, {
50028
+ ])) : a.value === "create" ? (U(), G(kY, {
50033
50029
  key: 5,
50034
50030
  "target-folder": e.targetFolder,
50035
50031
  onSubmit: N,
@@ -50064,7 +50060,7 @@ var hU = /*#__PURE__*/ XH({
50064
50060
  }, null, 8, ["model-value"])]),
50065
50061
  _: 1
50066
50062
  }),
50067
- K("div", EX, [q(ue, { label: "主持人" }, {
50063
+ K("div", wX, [q(ue, { label: "主持人" }, {
50068
50064
  default: L(() => [q(S, {
50069
50065
  "model-value": I(o).fields[ge("host")],
50070
50066
  items: I(A),
@@ -50098,7 +50094,7 @@ var hU = /*#__PURE__*/ XH({
50098
50094
  }, null, 8, ["model-value"])]),
50099
50095
  _: 1
50100
50096
  })) : Y("", !0),
50101
- K("section", DX, [
50097
+ K("section", TX, [
50102
50098
  c[33] ||= K("h3", null, "讨论上限", -1),
50103
50099
  q(bU, {
50104
50100
  ref_key: "topic_limits",
@@ -50118,14 +50114,14 @@ var hU = /*#__PURE__*/ XH({
50118
50114
  "execution",
50119
50115
  "disabled"
50120
50116
  ]),
50121
- ce.value ? (U(), W("p", OX, "修改上限前,请先把阶段保存为“已暂停”。")) : Y("", !0)
50117
+ ce.value ? (U(), W("p", EX, "修改上限前,请先把阶段保存为“已暂停”。")) : Y("", !0)
50122
50118
  ]),
50123
50119
  q(we, {
50124
50120
  open: oe.value,
50125
50121
  "onUpdate:open": c[20] ||= (e) => oe.value = e,
50126
50122
  class: "advanced-fields"
50127
50123
  }, {
50128
- content: L(() => [K("div", kX, [
50124
+ content: L(() => [K("div", DX, [
50129
50125
  (U(), W(H, null, B([
50130
50126
  {
50131
50127
  key: "user_request",
@@ -50152,11 +50148,11 @@ var hU = /*#__PURE__*/ XH({
50152
50148
  }, null, 8, ["model-value", "onUpdate:modelValue"])]),
50153
50149
  _: 2
50154
50150
  }, 1032, ["label"])), 64)),
50155
- K("div", AX, [(U(!0), W(H, null, B(I(ie), (e) => (U(), W("div", { key: e }, [K("label", null, P(e), 1), q(S, {
50156
- "model-value": I(o).experts[HX]?.[e] || "none",
50151
+ K("div", OX, [(U(!0), W(H, null, B(I(ie), (e) => (U(), W("div", { key: e }, [K("label", null, P(e), 1), q(S, {
50152
+ "model-value": I(o).experts[BX]?.[e] || "none",
50157
50153
  items: ae,
50158
50154
  "aria-label": `${e} 参与方式`,
50159
- "onUpdate:modelValue": (t) => I(s).write_expert(HX, e, t === "none" ? "" : t)
50155
+ "onUpdate:modelValue": (t) => I(s).write_expert(BX, e, t === "none" ? "" : t)
50160
50156
  }, null, 8, [
50161
50157
  "model-value",
50162
50158
  "aria-label",
@@ -50174,7 +50170,7 @@ var hU = /*#__PURE__*/ XH({
50174
50170
  }, null, 8, ["trailing-icon"])]),
50175
50171
  _: 1
50176
50172
  }, 8, ["open"]),
50177
- K("div", jX, [q(le, {
50173
+ K("div", kX, [q(le, {
50178
50174
  label: "取消",
50179
50175
  color: "neutral",
50180
50176
  variant: "ghost",
@@ -50218,7 +50214,7 @@ var hU = /*#__PURE__*/ XH({
50218
50214
  _: 1
50219
50215
  }),
50220
50216
  c[35] ||= K("p", { class: "fine-print" }, "创建后为待通知状态;由主持人实际联系专家。", -1),
50221
- K("div", MX, [q(le, {
50217
+ K("div", AX, [q(le, {
50222
50218
  label: "取消",
50223
50219
  variant: "ghost",
50224
50220
  color: "neutral",
@@ -50229,8 +50225,8 @@ var hU = /*#__PURE__*/ XH({
50229
50225
  label: "创建发言安排",
50230
50226
  loading: I(u) === "schedule"
50231
50227
  }, null, 8, ["loading"])])
50232
- ], 32)) : a.value === "message" ? (U(), W("div", NX, [fe.value ? (U(), W("p", PX, P(fe.value), 1)) : de.value ? (U(), W(H, { key: 1 }, [
50233
- K("div", FX, [
50228
+ ], 32)) : a.value === "message" ? (U(), W("div", jX, [fe.value ? (U(), W("p", MX, P(fe.value), 1)) : de.value ? (U(), W(H, { key: 1 }, [
50229
+ K("div", NX, [
50234
50230
  K("strong", null, P(I(s).display_name(de.value.author)), 1),
50235
50231
  K("span", null, "#" + P(de.value.id), 1),
50236
50232
  q(Te, {
@@ -50241,14 +50237,14 @@ var hU = /*#__PURE__*/ XH({
50241
50237
  _: 1
50242
50238
  })
50243
50239
  ]),
50244
- K("p", IX, P(I(s).provenance(de.value)) + " · " + P(new Date(de.value.created_at).toLocaleString("zh-CN")), 1),
50245
- de.value.summary ? (U(), W("section", LX, [K("small", null, "回答摘要 · " + P(I(s).display_name(de.value.summary_by)), 1), K("p", RX, P(de.value.summary), 1)])) : Y("", !0),
50246
- K("p", zX, P(de.value.text), 1),
50240
+ K("p", PX, P(I(s).provenance(de.value)) + " · " + P(new Date(de.value.created_at).toLocaleString("zh-CN")), 1),
50241
+ de.value.summary ? (U(), W("section", FX, [K("small", null, "回答摘要 · " + P(I(s).display_name(de.value.summary_by)), 1), K("p", IX, P(de.value.summary), 1)])) : Y("", !0),
50242
+ K("p", LX, P(de.value.text), 1),
50247
50243
  de.value.attachments?.length ? (U(), W("div", {
50248
50244
  key: 1,
50249
50245
  onClick: ye,
50250
50246
  innerHTML: I(s).attachment_markup(de.value.attachments)
50251
- }, null, 8, BX)) : Y("", !0),
50247
+ }, null, 8, RX)) : Y("", !0),
50252
50248
  de.value.reply_to ? (U(), G(le, {
50253
50249
  key: 2,
50254
50250
  label: `查看被回复的原文 #${de.value.reply_to}`,
@@ -50258,7 +50254,7 @@ var hU = /*#__PURE__*/ XH({
50258
50254
  class: "channel-surface-button",
50259
50255
  onClick: xe
50260
50256
  }, null, 8, ["label"])) : Y("", !0)
50261
- ], 64)) : (U(), W("p", VX, "正在读取原文…"))])) : Y("", !0)]),
50257
+ ], 64)) : (U(), W("p", zX, "正在读取原文…"))])) : Y("", !0)]),
50262
50258
  _: 1
50263
50259
  }, 8, [
50264
50260
  "open",
@@ -50269,7 +50265,7 @@ var hU = /*#__PURE__*/ XH({
50269
50265
  ]);
50270
50266
  };
50271
50267
  }
50272
- }, WX = {
50268
+ }, HX = {
50273
50269
  __name: "ContextMenuContent",
50274
50270
  props: {
50275
50271
  items: {
@@ -50564,7 +50560,7 @@ var hU = /*#__PURE__*/ XH({
50564
50560
  "disabled",
50565
50561
  "text-value",
50566
50562
  "class"
50567
- ]), q(WX, X({
50563
+ ]), q(HX, X({
50568
50564
  sub: "",
50569
50565
  class: r.ui?.content,
50570
50566
  ui: e.ui,
@@ -50675,7 +50671,7 @@ var hU = /*#__PURE__*/ XH({
50675
50671
  _: 3
50676
50672
  }, 16)], 64));
50677
50673
  }
50678
- }, GX = {
50674
+ }, UX = {
50679
50675
  slots: {
50680
50676
  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",
50681
50677
  viewport: "relative divide-y divide-default scroll-py-1 overflow-y-auto flex-1",
@@ -50863,7 +50859,7 @@ var hU = /*#__PURE__*/ XH({
50863
50859
  }
50864
50860
  ],
50865
50861
  defaultVariants: { size: "md" }
50866
- }, KX = {
50862
+ }, WX = {
50867
50863
  __name: "ContextMenu",
50868
50864
  props: {
50869
50865
  size: {
@@ -50933,7 +50929,7 @@ var hU = /*#__PURE__*/ XH({
50933
50929
  emits: ["update:open"],
50934
50930
  setup(e, { emit: t }) {
50935
50931
  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({
50936
- extend: GX,
50932
+ extend: UX,
50937
50933
  ...o.ui?.contextMenu || {}
50938
50934
  })({ size: a.size }));
50939
50935
  return (e, t) => (U(), G(I(iC), N(Ss(I(s))), {
@@ -50945,7 +50941,7 @@ var hU = /*#__PURE__*/ XH({
50945
50941
  }, {
50946
50942
  default: L(() => [V(e.$slots, "default")]),
50947
50943
  _: 3
50948
- }, 8, ["disabled", "class"])) : Y("", !0), q(WX, X({
50944
+ }, 8, ["disabled", "class"])) : Y("", !0), q(HX, X({
50949
50945
  class: u.value.content({ class: [!i.default && I(a).class, I(a).ui?.content] }),
50950
50946
  ui: u.value,
50951
50947
  "ui-override": I(a).ui
@@ -50975,47 +50971,47 @@ var hU = /*#__PURE__*/ XH({
50975
50971
  _: 3
50976
50972
  }, 16));
50977
50973
  }
50978
- }, qX = { class: "channel-directory-manager" }, JX = { class: "channel-directory-heading" }, YX = ["aria-expanded"], XX = { class: "channel-directory-actions" }, ZX = {
50974
+ }, GX = { class: "channel-directory-manager" }, KX = { class: "channel-directory-heading" }, qX = ["aria-expanded"], JX = { class: "channel-directory-actions" }, YX = {
50979
50975
  "aria-label": "协作房间列表",
50980
50976
  class: "channel-room-list",
50981
50977
  "data-room-directory": ""
50982
- }, QX = ["data-room-folder", "data-drag-folder"], $X = [
50978
+ }, XX = ["data-room-folder", "data-drag-folder"], ZX = [
50983
50979
  "disabled",
50984
50980
  "aria-label",
50985
50981
  "aria-expanded",
50986
50982
  "onKeydown",
50987
50983
  "onClick"
50988
- ], eZ = { class: "channel-folder-name" }, tZ = {
50984
+ ], QX = { class: "channel-folder-name" }, $X = {
50989
50985
  class: "channel-directory-count",
50990
50986
  "aria-hidden": "true"
50991
- }, nZ = { class: "channel-folder-actions" }, rZ = ["data-drop-folder"], iZ = {
50987
+ }, eZ = { class: "channel-folder-actions" }, tZ = ["data-drop-folder"], nZ = {
50992
50988
  key: 0,
50993
50989
  class: "channel-directory-empty",
50994
50990
  role: "status"
50995
- }, aZ = ["data-drag-room"], oZ = [
50991
+ }, rZ = ["data-drag-room"], iZ = [
50996
50992
  "aria-label",
50997
50993
  "disabled",
50998
50994
  "onKeydown"
50999
- ], sZ = [
50995
+ ], aZ = [
51000
50996
  "title",
51001
50997
  "aria-label",
51002
50998
  "aria-current",
51003
50999
  "onClick"
51004
- ], cZ = { class: "channel-room-actions" }, lZ = {
51000
+ ], oZ = { class: "channel-room-actions" }, sZ = {
51005
51001
  key: 0,
51006
51002
  class: "channel-directory-empty"
51007
- }, uZ = {
51003
+ }, cZ = {
51008
51004
  key: 0,
51009
51005
  class: "channel-archive-count"
51010
- }, dZ = {
51006
+ }, lZ = {
51011
51007
  key: 0,
51012
51008
  role: "status",
51013
51009
  class: "channel-directory-notice"
51014
- }, fZ = {
51010
+ }, uZ = {
51015
51011
  key: 1,
51016
51012
  role: "alert",
51017
51013
  class: "channel-directory-error"
51018
- }, pZ = {
51014
+ }, dZ = {
51019
51015
  __name: "ChannelDirectory",
51020
51016
  emits: [
51021
51017
  "select",
@@ -51229,8 +51225,8 @@ var hU = /*#__PURE__*/ XH({
51229
51225
  ];
51230
51226
  }
51231
51227
  return (e, t) => {
51232
- let u = MA, _ = sA, v = $V, x = CH, S = KX;
51233
- return U(), W("div", qX, [
51228
+ let u = MA, _ = sA, v = $V, x = CH, S = WX;
51229
+ return U(), W("div", GX, [
51234
51230
  q(u, {
51235
51231
  label: "新建对话",
51236
51232
  icon: "i-lucide-plus",
@@ -51239,12 +51235,12 @@ var hU = /*#__PURE__*/ XH({
51239
51235
  disabled: I(r).directory_pending.includes("create-room"),
51240
51236
  onClick: t[0] ||= (e) => n("create", null)
51241
51237
  }, null, 8, ["disabled"]),
51242
- K("div", JX, [K("button", {
51238
+ K("div", KX, [K("button", {
51243
51239
  type: "button",
51244
51240
  class: "channel-section-toggle",
51245
51241
  "aria-expanded": m.value,
51246
51242
  onClick: t[1] ||= (e) => m.value = !m.value
51247
- }, [q(_, { name: m.value ? "i-lucide-chevron-down" : "i-lucide-chevron-right" }, null, 8, ["name"]), t[7] ||= J("协作房间", -1)], 8, YX), K("div", XX, [
51243
+ }, [q(_, { name: m.value ? "i-lucide-chevron-down" : "i-lucide-chevron-right" }, null, 8, ["name"]), t[7] ||= J("协作房间", -1)], 8, qX), K("div", JX, [
51248
51244
  q(v, { text: "新建文件夹" }, {
51249
51245
  default: L(() => [q(u, {
51250
51246
  icon: "i-lucide-plus",
@@ -51286,7 +51282,7 @@ var hU = /*#__PURE__*/ XH({
51286
51282
  onChange: p
51287
51283
  }, null, 544)
51288
51284
  ])]),
51289
- vr(K("nav", ZX, [(U(!0), W(H, null, B(l.value, (e, s) => (U(), W("section", {
51285
+ vr(K("nav", YX, [(U(!0), W(H, null, B(l.value, (e, s) => (U(), W("section", {
51290
51286
  key: e.order_id,
51291
51287
  class: "channel-folder-section",
51292
51288
  "data-room-folder": e.id,
@@ -51315,9 +51311,9 @@ var hU = /*#__PURE__*/ XH({
51315
51311
  }, [
51316
51312
  q(_, { name: h.value.has(e.id) ? "i-lucide-chevron-right" : "i-lucide-chevron-down" }, null, 8, ["name"]),
51317
51313
  q(_, { name: "i-lucide-folder" }),
51318
- K("span", eZ, P(e.name), 1),
51319
- K("small", tZ, P(e.pending ? "保存中" : e.rooms.length), 1)
51320
- ], 40, $X), K("div", nZ, [q(v, { text: `在${e.name}中新建对话` }, {
51314
+ K("span", QX, P(e.name), 1),
51315
+ K("small", $X, P(e.pending ? "保存中" : e.rooms.length), 1)
51316
+ ], 40, ZX), K("div", eZ, [q(v, { text: `在${e.name}中新建对话` }, {
51321
51317
  default: L(() => [q(u, {
51322
51318
  icon: "i-lucide-square-pen",
51323
51319
  "aria-label": `在${e.name}中新建对话`,
@@ -51354,7 +51350,7 @@ var hU = /*#__PURE__*/ XH({
51354
51350
  key: 1,
51355
51351
  class: M(e.id ? "channel-folder-rooms" : "channel-root-rooms"),
51356
51352
  "data-drop-folder": e.id ? void 0 : ""
51357
- }, [I(r).creating_room && (I(r).creating_room.folder_id || "") === e.id ? (U(), W("p", iZ, "正在创建:" + P(I(r).creating_room.title), 1)) : Y("", !0), (U(!0), W(H, null, B(e.rooms, (s, c) => (U(), G(S, {
51353
+ }, [I(r).creating_room && (I(r).creating_room.folder_id || "") === e.id ? (U(), W("p", nZ, "正在创建:" + P(I(r).creating_room.title), 1)) : Y("", !0), (U(!0), W(H, null, B(e.rooms, (s, c) => (U(), G(S, {
51358
51354
  key: s.id,
51359
51355
  items: b(s, c, s.folder_id || null, e.rooms.length),
51360
51356
  ui: { content: "channel-menu channel-topic-menu" }
@@ -51379,7 +51375,7 @@ var hU = /*#__PURE__*/ XH({
51379
51375
  direction: 1,
51380
51376
  folder_id: s.folder_id || null
51381
51377
  }), ["prevent"]), ["down"])]
51382
- }, [q(_, { name: "i-lucide-grip-vertical" })], 40, oZ),
51378
+ }, [q(_, { name: "i-lucide-grip-vertical" })], 40, iZ),
51383
51379
  K("button", {
51384
51380
  class: "channel-room-select",
51385
51381
  "data-drag-title": "",
@@ -51388,8 +51384,8 @@ var hU = /*#__PURE__*/ XH({
51388
51384
  "aria-current": s.id === I(r).room?.id ? "page" : void 0,
51389
51385
  onPointerdown: t[5] ||= (e) => !I(o) && I(i).start_drag(e),
51390
51386
  onClick: (e) => n("select", s.id)
51391
- }, [K("span", null, P(s.title), 1)], 40, sZ),
51392
- K("div", cZ, [q(v, {
51387
+ }, [K("span", null, P(s.title), 1)], 40, aZ),
51388
+ K("div", oZ, [q(v, {
51393
51389
  text: s.archived ? "恢复房间" : "存档房间",
51394
51390
  ui: { content: "channel-topic-tooltip" }
51395
51391
  }, {
@@ -51430,9 +51426,9 @@ var hU = /*#__PURE__*/ XH({
51430
51426
  }, null, 8, ["aria-label"])]),
51431
51427
  _: 2
51432
51428
  }, 1032, ["items"])])
51433
- ], 10, aZ)]),
51429
+ ], 10, rZ)]),
51434
51430
  _: 2
51435
- }, 1032, ["items"]))), 128))], 10, rZ)) : Y("", !0)], 8, QX))), 128)), s.value.length ? Y("", !0) : (U(), W("p", lZ, "暂无协作房间"))], 512), [[Vc, m.value]]),
51431
+ }, 1032, ["items"]))), 128))], 10, tZ)) : Y("", !0)], 8, XX))), 128)), s.value.length ? Y("", !0) : (U(), W("p", sZ, "暂无协作房间"))], 512), [[Vc, m.value]]),
51436
51432
  vr(q(u, {
51437
51433
  icon: "i-lucide-archive",
51438
51434
  color: "neutral",
@@ -51441,48 +51437,48 @@ var hU = /*#__PURE__*/ XH({
51441
51437
  "aria-haspopup": "dialog",
51442
51438
  onClick: t[6] ||= (e) => n("archives")
51443
51439
  }, {
51444
- default: L(() => [t[8] ||= K("span", { class: "channel-archive-label" }, "已存档", -1), c.value ? (U(), W("small", uZ, P(c.value), 1)) : Y("", !0)]),
51440
+ default: L(() => [t[8] ||= K("span", { class: "channel-archive-label" }, "已存档", -1), c.value ? (U(), W("small", cZ, P(c.value), 1)) : Y("", !0)]),
51445
51441
  _: 1
51446
51442
  }, 512), [[Vc, m.value]]),
51447
- I(r).directory_notice ? (U(), W("p", dZ, P(I(r).directory_notice), 1)) : Y("", !0),
51448
- I(r).directory_error ? (U(), W("p", fZ, P(I(r).directory_error), 1)) : Y("", !0)
51443
+ I(r).directory_notice ? (U(), W("p", lZ, P(I(r).directory_notice), 1)) : Y("", !0),
51444
+ I(r).directory_error ? (U(), W("p", uZ, P(I(r).directory_error), 1)) : Y("", !0)
51449
51445
  ]);
51450
51446
  };
51451
51447
  }
51452
- }, mZ = {
51448
+ }, fZ = {
51453
51449
  key: 0,
51454
51450
  class: "pb-invite",
51455
51451
  "aria-label": "启动手动成员"
51456
- }, hZ = { class: "pb-invite-lead" }, gZ = {
51452
+ }, pZ = { class: "pb-invite-lead" }, mZ = {
51457
51453
  key: 0,
51458
51454
  role: "alert",
51459
51455
  class: "pb-free-note is-error"
51460
- }, _Z = { class: "pb-invite-launches" }, vZ = { class: "pb-invite-footer" }, yZ = {
51456
+ }, hZ = { class: "pb-invite-launches" }, gZ = { class: "pb-invite-footer" }, _Z = {
51461
51457
  class: "pb-invite-library",
51462
51458
  role: "group",
51463
51459
  "aria-label": "选择 AI(可多选)"
51464
- }, bZ = [
51460
+ }, vZ = [
51465
51461
  "aria-pressed",
51466
51462
  "title",
51467
51463
  "onClick"
51468
- ], xZ = {
51464
+ ], yZ = {
51469
51465
  key: 0,
51470
51466
  class: "pb-invite-cards"
51471
- }, SZ = {
51467
+ }, bZ = {
51472
51468
  key: 0,
51473
51469
  class: "fine-print"
51474
- }, CZ = ["aria-hidden"], wZ = {
51470
+ }, xZ = ["aria-hidden"], SZ = {
51475
51471
  key: 2,
51476
51472
  class: "pb-invite-empty"
51477
- }, TZ = {
51473
+ }, CZ = {
51478
51474
  key: 3,
51479
51475
  role: "alert",
51480
51476
  class: "fine-print"
51481
- }, EZ = {
51477
+ }, wZ = {
51482
51478
  key: 4,
51483
51479
  role: "alert",
51484
51480
  class: "pb-free-note is-error"
51485
- }, DZ = { class: "pb-invite-footer" }, OZ = 2e3, kZ = /*#__PURE__*/ XH({
51481
+ }, TZ = { class: "pb-invite-footer" }, EZ = 2e3, DZ = /*#__PURE__*/ XH({
51486
51482
  __name: "InviteDialog",
51487
51483
  props: /*@__PURE__*/ Fa({ description: {
51488
51484
  type: String,
@@ -51500,7 +51496,7 @@ var hU = /*#__PURE__*/ XH({
51500
51496
  async function u(e) {
51501
51497
  clearTimeout(l), c.value = "", await i("copy_member_launch", e) && (c.value = e, l = setTimeout(() => {
51502
51498
  c.value = "";
51503
- }, OZ));
51499
+ }, EZ));
51504
51500
  }
51505
51501
  let d = /* @__PURE__ */ F([]), f = 0, p = /* @__PURE__ */ F([]), m = /* @__PURE__ */ F(!1), h = Z(() => Object.keys(r.launch_clients)), g = Z(() => (o.value.members || []).map((e) => e.name)), _ = (e) => g.value.filter((t) => r.platform_of(t) === e).length, v = Z(() => [...d.value.filter((e) => e.mode !== "manual"), ...d.value.filter((e) => e.mode === "manual")]), y = Z(() => {
51506
51502
  let e = [...g.value];
@@ -51564,10 +51560,10 @@ var hU = /*#__PURE__*/ XH({
51564
51560
  body: "dialog-body"
51565
51561
  }
51566
51562
  }, {
51567
- body: L(() => [p.value.length && !d.value.length ? (U(), W("div", mZ, [
51568
- K("p", hZ, P(p.value.length > 1 ? `${p.value.length} 位手动成员已加入` : "手动成员已加入") + ",把启动指令交给各自的 AI 会话,注册后才算到场。", 1),
51569
- I(n).access?.error ? (U(), W("p", gZ, P(I(n).access.error), 1)) : Y("", !0),
51570
- K("ul", _Z, [(U(!0), W(H, null, B(p.value, (e) => (U(), W("li", { key: e }, [
51563
+ body: L(() => [p.value.length && !d.value.length ? (U(), W("div", fZ, [
51564
+ K("p", pZ, P(p.value.length > 1 ? `${p.value.length} 位手动成员已加入` : "手动成员已加入") + ",把启动指令交给各自的 AI 会话,注册后才算到场。", 1),
51565
+ I(n).access?.error ? (U(), W("p", mZ, P(I(n).access.error), 1)) : Y("", !0),
51566
+ K("ul", hZ, [(U(!0), W(H, null, B(p.value, (e) => (U(), W("li", { key: e }, [
51571
51567
  q(l, {
51572
51568
  src: I(r).identities[I(r).platform_of(e)]?.icon,
51573
51569
  text: I(r).identities[I(r).platform_of(e)]?.initials,
@@ -51602,7 +51598,7 @@ var hU = /*#__PURE__*/ XH({
51602
51598
  ])
51603
51599
  ]))), 128))]),
51604
51600
  o[3] ||= K("p", { class: "fine-print" }, "指令含该成员的凭证,只交给对应的会话;关闭后仍可在参与者列表中复制。", -1),
51605
- K("div", vZ, [q(f, {
51601
+ K("div", gZ, [q(f, {
51606
51602
  label: "完成",
51607
51603
  class: "channel-primary-button",
51608
51604
  onClick: o[0] ||= (e) => t.value = !1
@@ -51613,7 +51609,7 @@ var hU = /*#__PURE__*/ XH({
51613
51609
  "aria-label": "邀请专家",
51614
51610
  onSubmit: uu(w, ["prevent"])
51615
51611
  }, [
51616
- K("div", yZ, [(U(!0), W(H, null, B(h.value, (e) => (U(), W("button", {
51612
+ K("div", _Z, [(U(!0), W(H, null, B(h.value, (e) => (U(), W("button", {
51617
51613
  key: e,
51618
51614
  type: "button",
51619
51615
  "aria-pressed": d.value.some((t) => t.name === e),
@@ -51630,11 +51626,11 @@ var hU = /*#__PURE__*/ XH({
51630
51626
  "text",
51631
51627
  "alt",
51632
51628
  "class"
51633
- ]), J(P(e), 1)], 8, bZ))), 128))]),
51634
- d.value.length ? (U(), W("div", xZ, [(U(!0), W(H, null, B(d.value, (e) => (U(), W("div", {
51629
+ ]), J(P(e), 1)], 8, vZ))), 128))]),
51630
+ d.value.length ? (U(), W("div", yZ, [(U(!0), W(H, null, B(d.value, (e) => (U(), W("div", {
51635
51631
  key: e.id,
51636
51632
  class: "pb-invite-pick"
51637
- }, [q(KJ, {
51633
+ }, [q(WJ, {
51638
51634
  name: e.name,
51639
51635
  mode: e.mode,
51640
51636
  choices: ["cli", "manual"],
@@ -51651,15 +51647,15 @@ var hU = /*#__PURE__*/ XH({
51651
51647
  "onMode",
51652
51648
  "onSession",
51653
51649
  "onRemove"
51654
- ]), y.value.get(e) === e.name ? Y("", !0) : (U(), W("p", SZ, "同一 AI 已有实例,将以 " + P(y.value.get(e)) + " 加入,使用独立会话。", 1))]))), 128))])) : Y("", !0),
51650
+ ]), y.value.get(e) === e.name ? Y("", !0) : (U(), W("p", bZ, "同一 AI 已有实例,将以 " + P(y.value.get(e)) + " 加入,使用独立会话。", 1))]))), 128))])) : Y("", !0),
51655
51651
  d.value.length ? (U(), W("p", {
51656
51652
  key: 1,
51657
51653
  class: M(["fine-print", { "pb-invite-reserved": !(d.value.some((e) => e.mode === "manual") && d.value.some((e) => e.mode !== "manual")) }]),
51658
51654
  "aria-hidden": !(d.value.some((e) => e.mode === "manual") && d.value.some((e) => e.mode !== "manual"))
51659
- }, "手动启动的成员排在程序启动的成员之后加入队列。", 10, CZ)) : (U(), W("p", wZ, "选择一位或多位 AI(同一 AI 可重复添加),点卡片翻面设置软件、模型与项目权限。")),
51660
- d.value.some((e) => e.mode === "cli") && !I(n).launch.available ? (U(), W("p", TZ, "邀请需要本机服务,请在运行 AI 的电脑打开本机网站。")) : Y("", !0),
51661
- m.value && I(n).free_error ? (U(), W("p", EZ, P(I(n).free_error), 1)) : Y("", !0),
51662
- K("div", DZ, [q(f, {
51655
+ }, "手动启动的成员排在程序启动的成员之后加入队列。", 10, xZ)) : (U(), W("p", SZ, "选择一位或多位 AI(同一 AI 可重复添加),点卡片翻面设置软件、模型与项目权限。")),
51656
+ d.value.some((e) => e.mode === "cli") && !I(n).launch.available ? (U(), W("p", CZ, "邀请需要本机服务,请在运行 AI 的电脑打开本机网站。")) : Y("", !0),
51657
+ m.value && I(n).free_error ? (U(), W("p", wZ, P(I(n).free_error), 1)) : Y("", !0),
51658
+ K("div", TZ, [q(f, {
51663
51659
  label: "取消",
51664
51660
  color: "neutral",
51665
51661
  variant: "ghost",
@@ -51681,40 +51677,40 @@ var hU = /*#__PURE__*/ XH({
51681
51677
  }, 8, ["open", "description"]);
51682
51678
  };
51683
51679
  }
51684
- }, [["__scopeId", "data-v-d697d015"]]), AZ = { class: "speaking-order" }, jZ = {
51680
+ }, [["__scopeId", "data-v-d697d015"]]), OZ = { class: "speaking-order" }, kZ = {
51685
51681
  key: 0,
51686
51682
  class: "speaking-order-divider",
51687
51683
  "aria-hidden": "true"
51688
- }, MZ = ["data-key", "data-movable"], NZ = [
51684
+ }, AZ = ["data-key", "data-movable"], jZ = [
51689
51685
  "aria-disabled",
51690
51686
  "aria-label",
51691
51687
  "title",
51692
51688
  "onPointerdown",
51693
51689
  "onKeydown"
51694
- ], PZ = { class: "speaking-order-number" }, FZ = {
51690
+ ], MZ = { class: "speaking-order-number" }, NZ = {
51695
51691
  key: 1,
51696
51692
  class: "speaking-order-place",
51697
51693
  title: "已发言",
51698
51694
  "aria-label": "已发言"
51699
- }, IZ = ["title"], LZ = {
51695
+ }, PZ = ["title"], FZ = {
51700
51696
  key: 0,
51701
51697
  class: "speaking-order-later"
51702
- }, RZ = {
51698
+ }, IZ = {
51703
51699
  key: 1,
51704
51700
  class: "speaking-order-divider",
51705
51701
  "aria-hidden": "true"
51706
- }, zZ = {
51702
+ }, LZ = {
51707
51703
  key: 0,
51708
51704
  role: "status",
51709
51705
  class: "pb-free-note"
51710
- }, BZ = {
51706
+ }, RZ = {
51711
51707
  key: 1,
51712
51708
  role: "alert",
51713
51709
  class: "pb-free-note is-error"
51714
- }, VZ = {
51710
+ }, zZ = {
51715
51711
  class: "speaking-order-live",
51716
51712
  "aria-live": "polite"
51717
- }, HZ = "发言顺序刚有变化,已更新为最新顺序,请重新调整", UZ = /*#__PURE__*/ XH({
51713
+ }, BZ = "发言顺序刚有变化,已更新为最新顺序,请重新调整", VZ = /*#__PURE__*/ XH({
51718
51714
  __name: "SpeakingOrder",
51719
51715
  props: {
51720
51716
  away: {
@@ -51734,7 +51730,7 @@ var hU = /*#__PURE__*/ XH({
51734
51730
  }), c = Z(() => s.value.kind === "default" ? "idle" : "queued"), l = Z(() => !!n.value.access?.can_manage && !o.value.archived && s.value.movable.length > 1), u = {
51735
51731
  queue: "不在本次依次回答中",
51736
51732
  turns: "本轮未安排"
51737
- }, d = Z(() => s.value.kind === "default" ? "拖动设置默认发言顺序,@全体依次 按此顺序;聚焦后可用上下方向键" : "拖动调整还没发言的顺序,立即生效;聚焦后可用上下方向键"), f = /* @__PURE__ */ F(!1), p = Z(() => f.value ? HZ : 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("");
51733
+ }, d = Z(() => s.value.kind === "default" ? "拖动设置默认发言顺序,@全体依次 按此顺序;聚焦后可用上下方向键" : "拖动调整还没发言的顺序,立即生效;聚焦后可用上下方向键"), f = /* @__PURE__ */ F(!1), p = Z(() => f.value ? BZ : 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("");
51738
51734
  R(() => s.value.revision, () => {
51739
51735
  g.value = null;
51740
51736
  }), R(() => o.value.id, () => {
@@ -51821,13 +51817,13 @@ var hU = /*#__PURE__*/ XH({
51821
51817
  }
51822
51818
  return (e, n) => {
51823
51819
  let i = sA;
51824
- return U(), W("div", AZ, [
51820
+ return U(), W("div", OZ, [
51825
51821
  K("ul", {
51826
51822
  ref_key: "list",
51827
51823
  ref: m,
51828
51824
  class: M(["pb-members", { "is-dragging": h.value }])
51829
51825
  }, [
51830
- (U(!0), W(H, null, B(y.value, (t, r) => (U(), W(H, { key: t.key }, [t.outside ? (U(), W("li", jZ, [K("span", null, P(u[s.value.kind]), 1)])) : Y("", !0), K("li", {
51826
+ (U(!0), W(H, null, B(y.value, (t, r) => (U(), W(H, { key: t.key }, [t.outside ? (U(), W("li", kZ, [K("span", null, P(u[s.value.kind]), 1)])) : Y("", !0), K("li", {
51831
51827
  class: M(["pb-member speaking-order-row", [
51832
51828
  `is-${t.state}`,
51833
51829
  E(r),
@@ -51848,19 +51844,19 @@ var hU = /*#__PURE__*/ XH({
51848
51844
  onPointercancel: n[0] ||= (e) => w(e, !0),
51849
51845
  onLostpointercapture: n[1] ||= (e) => w(e, !0),
51850
51846
  onKeydown: [fu((e) => D(e, b(r), -1), ["up"]), fu((e) => D(e, b(r), 1), ["down"])]
51851
- }, [K("span", PZ, P(t.place), 1), q(i, {
51847
+ }, [K("span", MZ, P(t.place), 1), q(i, {
51852
51848
  name: "i-lucide-grip-vertical",
51853
51849
  class: "speaking-order-handle"
51854
- })], 40, NZ)) : t.state === "done" ? (U(), W("span", FZ, [q(i, { name: "i-lucide-check" })])) : (U(), W("span", {
51850
+ })], 40, jZ)) : t.state === "done" ? (U(), W("span", NZ, [q(i, { name: "i-lucide-check" })])) : (U(), W("span", {
51855
51851
  key: 2,
51856
51852
  class: "speaking-order-place",
51857
51853
  title: t.state === "speaking" ? "正在发言" : void 0
51858
- }, P(t.place || ""), 9, IZ)), V(e.$slots, "default", {
51854
+ }, P(t.place || ""), 9, PZ)), V(e.$slots, "default", {
51859
51855
  item: t,
51860
51856
  place: t.place
51861
- }, void 0, !0)], 10, MZ)], 64))), 128)),
51862
- s.value.later?.length ? (U(), W("li", LZ, [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),
51863
- t.away.length ? (U(), W("li", RZ, [...n[2] ||= [K("span", null, "已离开", -1)]])) : Y("", !0),
51857
+ }, void 0, !0)], 10, AZ)], 64))), 128)),
51858
+ s.value.later?.length ? (U(), W("li", FZ, [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),
51859
+ t.away.length ? (U(), W("li", IZ, [...n[2] ||= [K("span", null, "已离开", -1)]])) : Y("", !0),
51864
51860
  (U(!0), W(H, null, B(t.away, (t) => (U(), W("li", {
51865
51861
  key: `away-${t}`,
51866
51862
  class: "pb-member speaking-order-row is-away"
@@ -51872,74 +51868,74 @@ var hU = /*#__PURE__*/ XH({
51872
51868
  place: 0
51873
51869
  }, void 0, !0)]))), 128))
51874
51870
  ], 2),
51875
- p.value === HZ ? (U(), W("p", zZ, P(p.value), 1)) : p.value ? (U(), W("p", BZ, P(p.value), 1)) : Y("", !0),
51876
- K("p", VZ, P(_.value), 1)
51871
+ p.value === BZ ? (U(), W("p", LZ, P(p.value), 1)) : p.value ? (U(), W("p", RZ, P(p.value), 1)) : Y("", !0),
51872
+ K("p", zZ, P(_.value), 1)
51877
51873
  ]);
51878
51874
  };
51879
51875
  }
51880
- }, [["__scopeId", "data-v-dc33a051"]]), WZ = {
51876
+ }, [["__scopeId", "data-v-dc33a051"]]), HZ = {
51881
51877
  key: 0,
51882
51878
  class: "pb-header"
51883
- }, GZ = { class: "pb-mode" }, KZ = { class: "pb-status-line" }, qZ = { role: "status" }, JZ = {
51879
+ }, UZ = { class: "pb-mode" }, WZ = { class: "pb-status-line" }, GZ = { role: "status" }, KZ = {
51884
51880
  key: 0,
51885
51881
  class: "pb-mode"
51886
- }, YZ = {
51882
+ }, qZ = {
51887
51883
  key: 0,
51888
51884
  class: "pb-status-detail"
51889
- }, XZ = {
51885
+ }, JZ = {
51890
51886
  key: 1,
51891
51887
  class: "pb-status-detail"
51892
- }, ZZ = { class: "pb-error-detail" }, QZ = {
51888
+ }, YZ = { class: "pb-error-detail" }, XZ = {
51893
51889
  key: 3,
51894
51890
  class: "pb-meters"
51895
- }, $Z = { class: "pb-meter-label" }, eQ = {
51891
+ }, ZZ = { class: "pb-meter-label" }, QZ = {
51896
51892
  key: 0,
51897
51893
  class: "pb-bar"
51898
- }, tQ = {
51894
+ }, $Z = {
51899
51895
  key: 1,
51900
51896
  class: "pb-section",
51901
51897
  "aria-label": "当前焦点"
51902
- }, nQ = {
51898
+ }, eQ = {
51903
51899
  class: "pb-section",
51904
51900
  "aria-label": "发言顺序"
51905
- }, rQ = { class: "pb-heading" }, iQ = {
51901
+ }, tQ = { class: "pb-heading" }, nQ = {
51906
51902
  key: 0,
51907
51903
  class: "pb-status-detail pb-held"
51908
- }, aQ = { class: "pb-member-body" }, oQ = { class: "pb-member-name" }, sQ = { class: "pb-member-body" }, cQ = { class: "pb-member-name" }, lQ = ["title"], uQ = {
51904
+ }, rQ = { class: "pb-member-body" }, iQ = { class: "pb-member-name" }, aQ = { class: "pb-member-body" }, oQ = { class: "pb-member-name" }, sQ = ["title"], cQ = {
51909
51905
  key: 0,
51910
51906
  class: "pb-member-model",
51911
51907
  title: "续接你已有的会话;它工作时请不要在原窗口继续操作"
51912
- }, dQ = { key: 0 }, fQ = {
51908
+ }, lQ = { key: 0 }, uQ = {
51913
51909
  key: 2,
51914
51910
  class: "pb-member-manual"
51915
- }, pQ = { key: 0 }, mQ = ["onClick"], hQ = {
51911
+ }, dQ = { key: 0 }, fQ = ["onClick"], pQ = {
51916
51912
  key: 1,
51917
51913
  role: "alert",
51918
51914
  class: "pb-free-note is-error"
51919
- }, gQ = {
51915
+ }, mQ = {
51920
51916
  key: 2,
51921
51917
  role: "status",
51922
51918
  class: "pb-free-note"
51923
- }, _Q = {
51919
+ }, hQ = {
51924
51920
  key: 2,
51925
51921
  class: "pb-actions",
51926
51922
  "aria-label": "操作"
51927
- }, vQ = {
51923
+ }, gQ = {
51928
51924
  key: 3,
51929
51925
  class: "pb-section",
51930
51926
  "aria-label": "阶段耗时"
51931
- }, yQ = { class: "pb-timing-heading" }, bQ = ["aria-label"], xQ = { class: "pb-timing-totals" }, SQ = ["title"], CQ = { class: "pb-timings" }, wQ = { class: "pb-timing-who" }, TQ = { class: "pb-timing-stages" }, EQ = ["title"], DQ = {
51927
+ }, _Q = { class: "pb-timing-heading" }, vQ = ["aria-label"], yQ = { class: "pb-timing-totals" }, bQ = ["title"], xQ = { class: "pb-timings" }, SQ = { class: "pb-timing-who" }, CQ = { class: "pb-timing-stages" }, wQ = ["title"], TQ = {
51932
51928
  key: 0,
51933
51929
  class: "pb-note"
51934
- }, OQ = { class: "pb-connection" }, kQ = { class: "fine-print" }, AQ = {
51930
+ }, EQ = { class: "pb-connection" }, DQ = { class: "fine-print" }, OQ = {
51935
51931
  key: 0,
51936
51932
  role: "status",
51937
51933
  class: "fine-print"
51938
- }, jQ = {
51934
+ }, kQ = {
51939
51935
  key: 2,
51940
51936
  role: "alert",
51941
51937
  class: "fine-print"
51942
- }, MQ = { key: 2 }, NQ = { class: "pb-invite-footer" }, PQ = { class: "progress-ending" }, FQ = ["disabled"], IQ = 2e3, LQ = 90, RQ = 100, zQ = /*#__PURE__*/ XH({
51938
+ }, AQ = { key: 2 }, jQ = { class: "pb-invite-footer" }, MQ = { class: "progress-ending" }, NQ = ["disabled"], PQ = 2e3, FQ = 90, IQ = 100, LQ = /*#__PURE__*/ XH({
51943
51939
  __name: "ProgressBoard",
51944
51940
  props: { docked: {
51945
51941
  type: Boolean,
@@ -51950,7 +51946,7 @@ var hU = /*#__PURE__*/ XH({
51950
51946
  async function l(e) {
51951
51947
  clearTimeout(c), s.value = "", await i("copy_member_launch", e) && (s.value = e, c = setTimeout(() => {
51952
51948
  s.value = "";
51953
- }, IQ));
51949
+ }, PQ));
51954
51950
  }
51955
51951
  let u = /* @__PURE__ */ F(!1), d = /* @__PURE__ */ F(null), f = /* @__PURE__ */ F(!1), p = ["pending", "notified"], m = {
51956
51952
  dispatched: "已交付,等待开始",
@@ -51982,7 +51978,7 @@ var hU = /*#__PURE__*/ XH({
51982
51978
  R(() => _.value.id, () => {
51983
51979
  he.value = !1;
51984
51980
  });
51985
- let ge = Z(() => x.value?.question || _.value.focus || _.value.goal || ""), N = Z(() => ge.value.length > LQ), _e = Z(() => y.value.timings || {
51981
+ let ge = Z(() => x.value?.question || _.value.focus || _.value.goal || ""), N = Z(() => ge.value.length > FQ), _e = Z(() => y.value.timings || {
51986
51982
  items: [],
51987
51983
  totals: {},
51988
51984
  count: 0
@@ -52016,7 +52012,7 @@ var hU = /*#__PURE__*/ XH({
52016
52012
  };
52017
52013
  let e = ce.value;
52018
52014
  if (e) {
52019
- let t = e.result.startsWith(e.name) ? e.result : `${r.display_name(e.name)} 执行失败:${e.result}`, n = t.split("\n")[0], i = n.length > RQ ? `${n.slice(0, RQ)}…` : n;
52015
+ let t = e.result.startsWith(e.name) ? e.result : `${r.display_name(e.name)} 执行失败:${e.result}`, n = t.split("\n")[0], i = n.length > IQ ? `${n.slice(0, IQ)}…` : n;
52020
52016
  return {
52021
52017
  tone: "error",
52022
52018
  title: "已暂停",
@@ -52176,18 +52172,18 @@ var hU = /*#__PURE__*/ XH({
52176
52172
  return (e, c) => {
52177
52173
  let f = MA, p = sA, m = pA, v = CH, T = bH, k = zV, se = YH;
52178
52174
  return U(), W("div", { class: M(["progress-board", { "is-docked": t.docked }]) }, [
52179
- t.docked ? (U(), W("header", WZ, [c[19] ||= K("strong", null, "讨论进度", -1), K("span", GZ, P(b.value ? "全自动" : "手动"), 1)])) : Y("", !0),
52175
+ t.docked ? (U(), W("header", HZ, [c[19] ||= K("strong", null, "讨论进度", -1), K("span", UZ, P(b.value ? "全自动" : "手动"), 1)])) : Y("", !0),
52180
52176
  K("section", {
52181
52177
  class: M(["pb-status", `is-${be.value.tone}`]),
52182
52178
  "aria-label": "讨论状态"
52183
52179
  }, [
52184
- K("div", KZ, [
52180
+ K("div", WZ, [
52185
52181
  c[20] ||= K("span", { class: "pb-dot" }, null, -1),
52186
- K("strong", qZ, P(be.value.title), 1),
52187
- t.docked ? Y("", !0) : (U(), W("span", JZ, P(b.value ? "全自动" : "手动"), 1))
52182
+ K("strong", GZ, P(be.value.title), 1),
52183
+ t.docked ? Y("", !0) : (U(), W("span", KZ, P(b.value ? "全自动" : "手动"), 1))
52188
52184
  ]),
52189
- be.value.detail ? (U(), W("p", YZ, P(be.value.detail), 1)) : Y("", !0),
52190
- be.value.full_detail ? (U(), W("details", XZ, [c[21] ||= K("summary", null, "查看错误详情", -1), K("pre", ZZ, P(be.value.full_detail), 1)])) : Y("", !0),
52185
+ be.value.detail ? (U(), W("p", qZ, P(be.value.detail), 1)) : Y("", !0),
52186
+ be.value.full_detail ? (U(), W("details", JZ, [c[21] ||= K("summary", null, "查看错误详情", -1), K("pre", YZ, P(be.value.full_detail), 1)])) : Y("", !0),
52191
52187
  ue.value && I(n).launch.available && !I(n).launch.remote ? (U(), G(f, {
52192
52188
  key: 2,
52193
52189
  icon: "i-lucide-arrow-left-right",
@@ -52199,12 +52195,12 @@ var hU = /*#__PURE__*/ XH({
52199
52195
  disabled: !!I(a),
52200
52196
  onClick: c[0] ||= (e) => ke(ue.value, "codex")
52201
52197
  }, null, 8, ["disabled"])) : Y("", !0),
52202
- xe.value.length ? (U(), W("div", QZ, [(U(!0), W(H, null, B(xe.value, (e) => (U(), W("div", {
52198
+ xe.value.length ? (U(), W("div", XZ, [(U(!0), W(H, null, B(xe.value, (e) => (U(), W("div", {
52203
52199
  key: e.label,
52204
52200
  class: "pb-meter"
52205
- }, [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: fe({ width: `${Math.min(100, Math.round(e.ratio * 100))}%` }) }, null, 4)]))]))), 128))])) : Y("", !0)
52201
+ }, [K("div", ZZ, [K("span", null, P(e.label), 1), K("b", null, P(e.text), 1)]), e.ratio === null ? Y("", !0) : (U(), W("div", QZ, [K("i", { style: fe({ width: `${Math.min(100, Math.round(e.ratio * 100))}%` }) }, null, 4)]))]))), 128))])) : Y("", !0)
52206
52202
  ], 2),
52207
- ge.value ? (U(), W("section", tQ, [
52203
+ ge.value ? (U(), W("section", $Z, [
52208
52204
  c[22] ||= K("h4", null, "当前焦点", -1),
52209
52205
  K("p", { class: M(["pb-focus", { "is-expanded": u.value }]) }, P(ge.value), 3),
52210
52206
  N.value ? (U(), W("button", {
@@ -52214,15 +52210,15 @@ var hU = /*#__PURE__*/ XH({
52214
52210
  onClick: c[1] ||= (e) => u.value = !u.value
52215
52211
  }, P(u.value ? "收起" : "展开"), 1)) : Y("", !0)
52216
52212
  ])) : Y("", !0),
52217
- K("section", nQ, [
52218
- K("div", rQ, [c[24] ||= K("h4", null, "发言顺序", -1), me.value ? (U(), W("button", {
52213
+ K("section", eQ, [
52214
+ K("div", tQ, [c[24] ||= K("h4", null, "发言顺序", -1), me.value ? (U(), W("button", {
52219
52215
  key: 0,
52220
52216
  type: "button",
52221
52217
  class: "pb-link",
52222
52218
  onClick: Oe
52223
52219
  }, [q(p, { name: "i-lucide-plus" }), c[23] ||= J("邀请", -1)])) : Y("", !0)]),
52224
- _.value.held_since && x.value && !S.value ? (U(), W("p", iQ, "用户有新操作," + P(I(r).display_name(x.value.expert)) + " 说完后交给主持人", 1)) : Y("", !0),
52225
- q(UZ, {
52220
+ _.value.held_since && x.value && !S.value ? (U(), W("p", nQ, "用户有新操作," + P(I(r).display_name(x.value.expert)) + " 说完后交给主持人", 1)) : Y("", !0),
52221
+ q(VZ, {
52226
52222
  away: de.value.map((e) => e.name),
52227
52223
  round: Se.value
52228
52224
  }, {
@@ -52239,7 +52235,7 @@ var hU = /*#__PURE__*/ XH({
52239
52235
  "alt",
52240
52236
  "class"
52241
52237
  ]),
52242
- K("div", aQ, [K("div", oQ, [J(P(I(r).display_name(e.name)), 1), c[25] ||= K("small", null, "暂离", -1)]), c[26] ||= K("div", { class: "pb-member-status is-neutral" }, [K("span", { class: "pb-dot" }), J("保留位置和会话,不参与安排")], -1)]),
52238
+ K("div", rQ, [K("div", iQ, [J(P(I(r).display_name(e.name)), 1), c[25] ||= K("small", null, "暂离", -1)]), c[26] ||= K("div", { class: "pb-member-status is-neutral" }, [K("span", { class: "pb-dot" }), J("保留位置和会话,不参与安排")], -1)]),
52243
52239
  we({ name: e.name }).length ? (U(), G(v, {
52244
52240
  key: 0,
52245
52241
  items: we({ name: e.name }),
@@ -52269,31 +52265,31 @@ var hU = /*#__PURE__*/ XH({
52269
52265
  "alt",
52270
52266
  "class"
52271
52267
  ]),
52272
- K("div", sQ, [
52273
- K("div", cQ, [
52268
+ K("div", aQ, [
52269
+ K("div", oQ, [
52274
52270
  J(P(I(r).display_name(e.name)), 1),
52275
52271
  e.is_host ? (U(), G(p, {
52276
52272
  key: 0,
52277
52273
  name: "i-lucide-crown",
52278
52274
  title: "主持人"
52279
52275
  })) : Y("", !0),
52280
- K("small", { title: e.model ? `${e.model}:卡片指定的模型与强度;未指定时读取软件自己的设置,读不到则写“软件默认”` : void 0 }, P([e.mode === "CLI" && e.model ? "" : e.mode, e.model].filter(Boolean).join(" · ")), 9, lQ)
52276
+ K("small", { title: e.model ? `${e.model}:卡片指定的模型与强度;未指定时读取软件自己的设置,读不到则写“软件默认”` : void 0 }, P([e.mode === "CLI" && e.model ? "" : e.mode, e.model].filter(Boolean).join(" · ")), 9, sQ)
52281
52277
  ]),
52282
- pe(e.name)?.session_mode === "borrowed" ? (U(), W("div", uQ, "借用已有会话")) : Y("", !0),
52278
+ pe(e.name)?.session_mode === "borrowed" ? (U(), W("div", cQ, "借用已有会话")) : Y("", !0),
52283
52279
  w.value ? Y("", !0) : (U(), W("div", {
52284
52280
  key: 1,
52285
52281
  class: M(["pb-member-status", `is-${e.tone}`])
52286
52282
  }, [
52287
52283
  c[27] ||= K("span", { class: "pb-dot" }, null, -1),
52288
52284
  J(P(e.text), 1),
52289
- e.failures ? (U(), W("small", dQ, " · 失败 " + P(e.failures) + " 次", 1)) : Y("", !0)
52285
+ e.failures ? (U(), W("small", lQ, " · 失败 " + P(e.failures) + " 次", 1)) : Y("", !0)
52290
52286
  ], 2)),
52291
- e.manual && !w.value ? (U(), W("div", fQ, [!pe(e.name)?.registered_at && !e.is_host ? (U(), W("span", pQ, "需在它的会话中注册,才算到场")) : Y("", !0), A.value ? (U(), W("button", {
52287
+ e.manual && !w.value ? (U(), W("div", uQ, [!pe(e.name)?.registered_at && !e.is_host ? (U(), W("span", dQ, "需在它的会话中注册,才算到场")) : Y("", !0), A.value ? (U(), W("button", {
52292
52288
  key: 1,
52293
52289
  type: "button",
52294
52290
  class: "pb-link",
52295
52291
  onClick: (t) => l(e.name)
52296
- }, [q(p, { name: s.value === e.name ? "i-lucide-check" : "i-lucide-rocket" }, null, 8, ["name"]), J(P(s.value === e.name ? "已复制" : "复制启动指令"), 1)], 8, mQ)) : Y("", !0)])) : Y("", !0)
52292
+ }, [q(p, { name: s.value === e.name ? "i-lucide-check" : "i-lucide-rocket" }, null, 8, ["name"]), J(P(s.value === e.name ? "已复制" : "复制启动指令"), 1)], 8, fQ)) : Y("", !0)])) : Y("", !0)
52297
52293
  ]),
52298
52294
  we(e).length ? (U(), G(v, {
52299
52295
  key: 0,
@@ -52314,9 +52310,9 @@ var hU = /*#__PURE__*/ XH({
52314
52310
  ], 64))), 128))]),
52315
52311
  _: 1
52316
52312
  }, 8, ["away", "round"]),
52317
- !he.value && I(n).free_error && _.value.phase !== "paused" ? (U(), W("p", hQ, P(I(n).free_error), 1)) : I(n).free_notice ? (U(), W("p", gQ, P(I(n).free_notice), 1)) : Y("", !0)
52313
+ !he.value && I(n).free_error && _.value.phase !== "paused" ? (U(), W("p", pQ, P(I(n).free_error), 1)) : I(n).free_notice ? (U(), W("p", mQ, P(I(n).free_notice), 1)) : Y("", !0)
52318
52314
  ]),
52319
- oe.value ? (U(), W("section", _Q, [
52315
+ oe.value ? (U(), W("section", hQ, [
52320
52316
  ne.value ? (U(), G(f, {
52321
52317
  key: 0,
52322
52318
  icon: "i-lucide-rotate-ccw",
@@ -52398,8 +52394,8 @@ var hU = /*#__PURE__*/ XH({
52398
52394
  onClick: c[6] ||= (e) => o.value = !0
52399
52395
  }, null, 8, ["disabled"])) : Y("", !0)
52400
52396
  ])) : Y("", !0),
52401
- b.value && _e.value.count ? (U(), W("section", vQ, [
52402
- K("div", yQ, [c[28] ||= K("h4", null, "耗时", -1), K("small", null, "共 " + P(_e.value.count) + " 次执行", 1)]),
52397
+ b.value && _e.value.count ? (U(), W("section", gQ, [
52398
+ K("div", _Q, [c[28] ||= K("h4", null, "耗时", -1), K("small", null, "共 " + P(_e.value.count) + " 次执行", 1)]),
52403
52399
  K("div", {
52404
52400
  class: "pb-timing-bar",
52405
52401
  role: "img",
@@ -52408,18 +52404,18 @@ var hU = /*#__PURE__*/ XH({
52408
52404
  key: e.key,
52409
52405
  class: M(`is-${e.key}`),
52410
52406
  style: fe({ width: `${e.percent}%` })
52411
- }, null, 6))), 128))], 8, bQ),
52412
- K("dl", xQ, [(U(!0), W(H, null, B(je.value, (e) => (U(), W("div", {
52407
+ }, null, 6))), 128))], 8, vQ),
52408
+ K("dl", yQ, [(U(!0), W(H, null, B(je.value, (e) => (U(), W("div", {
52413
52409
  key: e.key,
52414
52410
  title: e.hint
52415
- }, [K("dt", null, [K("span", { class: M(`pb-timing-dot is-${e.key}`) }, null, 2), J(P(e.label), 1)]), K("dd", null, [J(P(Me(e.seconds)), 1), K("small", null, P(e.percent) + "%", 1)])], 8, SQ))), 128))]),
52416
- K("details", CQ, [
52411
+ }, [K("dt", null, [K("span", { class: M(`pb-timing-dot is-${e.key}`) }, null, 2), J(P(e.label), 1)]), K("dd", null, [J(P(Me(e.seconds)), 1), K("small", null, P(e.percent) + "%", 1)])], 8, bQ))), 128))]),
52412
+ K("details", xQ, [
52417
52413
  c[29] ||= K("summary", null, "查看每次执行", -1),
52418
- K("ol", null, [(U(!0), W(H, null, B(_e.value.items, (e) => (U(), W("li", { key: e.id }, [K("span", wQ, [J("#" + P(e.id) + " " + P(I(r).display_name(e.participant)), 1), K("small", null, P(e.role === "host" ? "主持" : "专家") + " · " + P(g[e.status] || e.status), 1)]), K("span", TQ, [(U(), W(H, null, B(h, (t) => K("span", {
52414
+ K("ol", null, [(U(!0), W(H, null, B(_e.value.items, (e) => (U(), W("li", { key: e.id }, [K("span", SQ, [J("#" + P(e.id) + " " + P(I(r).display_name(e.participant)), 1), K("small", null, P(e.role === "host" ? "主持" : "专家") + " · " + P(g[e.status] || e.status), 1)]), K("span", CQ, [(U(), W(H, null, B(h, (t) => K("span", {
52419
52415
  key: t.key,
52420
52416
  title: t.hint
52421
- }, P(t.label) + " " + P(Me(e[t.key])), 9, EQ)), 64))])]))), 128))]),
52422
- _e.value.count > _e.value.items.length ? (U(), W("p", DQ, "只列出最近 " + P(_e.value.items.length) + " 次,共 " + P(_e.value.count) + " 次执行。", 1)) : Y("", !0)
52417
+ }, P(t.label) + " " + P(Me(e[t.key])), 9, wQ)), 64))])]))), 128))]),
52418
+ _e.value.count > _e.value.items.length ? (U(), W("p", TQ, "只列出最近 " + P(_e.value.items.length) + " 次,共 " + P(_e.value.count) + " 次执行。", 1)) : Y("", !0)
52423
52419
  ])
52424
52420
  ])) : Y("", !0),
52425
52421
  q(se, {
@@ -52432,7 +52428,7 @@ var hU = /*#__PURE__*/ XH({
52432
52428
  body: "dialog-body"
52433
52429
  }
52434
52430
  }, {
52435
- body: L(() => [K("div", OQ, [y.value.status === "running" ? (U(), W(H, { key: 0 }, [c[30] ||= K("p", null, "切换前需要暂停讨论,当前执行会停止,原发言安排保留。", -1), q(f, {
52431
+ body: L(() => [K("div", EQ, [y.value.status === "running" ? (U(), W(H, { key: 0 }, [c[30] ||= K("p", null, "切换前需要暂停讨论,当前执行会停止,原发言安排保留。", -1), q(f, {
52436
52432
  label: "暂停并读取配置",
52437
52433
  icon: "i-lucide-pause",
52438
52434
  class: "channel-primary-button",
@@ -52455,7 +52451,7 @@ var hU = /*#__PURE__*/ XH({
52455
52451
  }, null, 8, ["model-value", "disabled"])]),
52456
52452
  _: 1
52457
52453
  }),
52458
- K("p", kQ, P(ye.value.adapter === "codex" ? "App 需保持运行,模型与权限沿用原聊天设置。" : "切回 CLI 前,需让 App 释放原聊天;仍被占用时无法执行。"), 1),
52454
+ K("p", DQ, P(ye.value.adapter === "codex" ? "App 需保持运行,模型与权限沿用原聊天设置。" : "切回 CLI 前,需让 App 释放原聊天;仍被占用时无法执行。"), 1),
52459
52455
  q(f, {
52460
52456
  label: "保存接入方式",
52461
52457
  class: "channel-primary-button",
@@ -52463,7 +52459,7 @@ var hU = /*#__PURE__*/ XH({
52463
52459
  disabled: !!I(a),
52464
52460
  onClick: c[8] ||= (e) => I(i)("save_room_configuration")
52465
52461
  }, null, 8, ["loading", "disabled"]),
52466
- I(n).launch.repair?.notice ? (U(), W("p", AQ, P(I(n).launch.repair.notice), 1)) : Y("", !0),
52462
+ I(n).launch.repair?.notice ? (U(), W("p", OQ, P(I(n).launch.repair.notice), 1)) : Y("", !0),
52467
52463
  I(n).launch.repair?.applied && ne.value ? (U(), G(f, {
52468
52464
  key: 1,
52469
52465
  label: "重启讨论",
@@ -52483,15 +52479,15 @@ var hU = /*#__PURE__*/ XH({
52483
52479
  color: "neutral",
52484
52480
  loading: !!I(a),
52485
52481
  onClick: Ae
52486
- }, null, 8, ["loading"])), I(n).launch.repair_error ? (U(), W("p", jQ, P(I(n).launch.repair_error), 1)) : Y("", !0)], 64)) : (U(), W("p", MQ, "本场状态已变化,请关闭后重新核对。"))])]),
52482
+ }, null, 8, ["loading"])), I(n).launch.repair_error ? (U(), W("p", kQ, P(I(n).launch.repair_error), 1)) : Y("", !0)], 64)) : (U(), W("p", AQ, "本场状态已变化,请关闭后重新核对。"))])]),
52487
52483
  _: 1
52488
52484
  }, 8, ["open"]),
52489
- q(kZ, {
52485
+ q(DZ, {
52490
52486
  open: he.value,
52491
52487
  "onUpdate:open": c[11] ||= (e) => he.value = e,
52492
52488
  description: "新专家由程序按本机软件配置启动,或由你手动启动,加入本轮发言队列。"
52493
52489
  }, null, 8, ["open"]),
52494
- q(tJ, {
52490
+ q($q, {
52495
52491
  open: !!Te.value,
52496
52492
  name: Te.value || " ",
52497
52493
  platform: Te.value ? I(r).platform_of(Te.value) : "",
@@ -52531,7 +52527,7 @@ var hU = /*#__PURE__*/ XH({
52531
52527
  minutes: ee.value,
52532
52528
  "onUpdate:minutes": c[14] ||= (e) => ee.value = e,
52533
52529
  execution: !1
52534
- }, null, 8, ["rounds", "minutes"]), K("div", NQ, [q(f, {
52530
+ }, null, 8, ["rounds", "minutes"]), K("div", jQ, [q(f, {
52535
52531
  label: "取消",
52536
52532
  color: "neutral",
52537
52533
  variant: "ghost",
@@ -52556,18 +52552,18 @@ var hU = /*#__PURE__*/ XH({
52556
52552
  body: "dialog-body"
52557
52553
  }
52558
52554
  }, {
52559
- body: L(() => [K("div", PQ, [K("button", {
52555
+ body: L(() => [K("div", MQ, [K("button", {
52560
52556
  type: "button",
52561
52557
  class: "progress-ending-option",
52562
52558
  disabled: C.value || !!I(a),
52563
52559
  onClick: c[17] ||= (e) => Fe("end_room_discussion")
52564
- }, [...c[31] ||= [K("strong", null, "结束讨论", -1), K("span", null, "保留全部记录,自动运行随之停止,房间回到自由协作;需要总结时可直接请主持人写一份。", -1)]], 8, FQ)])]),
52560
+ }, [...c[31] ||= [K("strong", null, "结束讨论", -1), K("span", null, "保留全部记录,自动运行随之停止,房间回到自由协作;需要总结时可直接请主持人写一份。", -1)]], 8, NQ)])]),
52565
52561
  _: 1
52566
52562
  }, 8, ["open"])
52567
52563
  ], 2);
52568
52564
  };
52569
52565
  }
52570
- }, [["__scopeId", "data-v-6502811b"]]), BQ = { class: "progress-panel-anchor" }, VQ = ["aria-expanded", "aria-label"], HQ = { class: "progress-chip-text" }, UQ = { class: "progress-chip-rounds" }, WQ = {
52566
+ }, [["__scopeId", "data-v-6502811b"]]), RQ = { class: "progress-panel-anchor" }, zQ = ["aria-expanded", "aria-label"], BQ = { class: "progress-chip-text" }, VQ = { class: "progress-chip-rounds" }, HQ = {
52571
52567
  __name: "ProgressPanel",
52572
52568
  setup(e) {
52573
52569
  let { view: t, bridge: n } = xr("discussion"), r = /* @__PURE__ */ F(!1), i = Z(() => t.value.room), a = Z(() => i.value.limits || {}), o = Z(() => {
@@ -52594,7 +52590,7 @@ var hU = /*#__PURE__*/ XH({
52594
52590
  }), 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}`);
52595
52591
  return (e, t) => {
52596
52592
  let n = $V, a = NV;
52597
- return U(), W("div", BQ, [q(n, { text: "查看讨论进度" }, {
52593
+ return U(), W("div", RQ, [q(n, { text: "查看讨论进度" }, {
52598
52594
  default: L(() => [K("button", {
52599
52595
  type: "button",
52600
52596
  class: M(["progress-chip", `is-${o.value.tone}`]),
@@ -52602,7 +52598,7 @@ var hU = /*#__PURE__*/ XH({
52602
52598
  "aria-expanded": r.value,
52603
52599
  "aria-label": `查看讨论进度:${c.value}`,
52604
52600
  onClick: t[0] ||= (e) => r.value = !0
52605
- }, [t[2] ||= K("span", { class: "progress-dot" }, null, -1), K("span", HQ, [J(P(o.value.title), 1), K("span", UQ, " · " + P(s.value), 1)])], 10, VQ)]),
52601
+ }, [t[2] ||= K("span", { class: "progress-dot" }, null, -1), K("span", BQ, [J(P(o.value.title), 1), K("span", VQ, " · " + P(s.value), 1)])], 10, zQ)]),
52606
52602
  _: 1
52607
52603
  }), q(a, {
52608
52604
  open: r.value,
@@ -52615,12 +52611,12 @@ var hU = /*#__PURE__*/ XH({
52615
52611
  body: "progress-drawer-body"
52616
52612
  }
52617
52613
  }, {
52618
- body: L(() => [q(zQ)]),
52614
+ body: L(() => [q(LQ)]),
52619
52615
  _: 1
52620
52616
  }, 8, ["open", "description"])]);
52621
52617
  };
52622
52618
  }
52623
- }, GQ = { class: "start-discussion-footer" }, KQ = 3, qQ = /*#__PURE__*/ XH({
52619
+ }, UQ = { class: "start-discussion-footer" }, WQ = 3, GQ = /*#__PURE__*/ XH({
52624
52620
  __name: "StartDiscussionDialog",
52625
52621
  props: {
52626
52622
  open: {
@@ -52631,9 +52627,9 @@ var hU = /*#__PURE__*/ XH({
52631
52627
  },
52632
52628
  emits: ["update:open"],
52633
52629
  setup(e) {
52634
- let t = ro(e, "open"), { view: n, act: r, pending: i } = xr("discussion"), a = /* @__PURE__ */ F(""), o = /* @__PURE__ */ F(KQ), s = /* @__PURE__ */ F(0), c = /* @__PURE__ */ F(""), l = /* @__PURE__ */ F(!1), u = /* @__PURE__ */ F(null);
52630
+ let t = ro(e, "open"), { view: n, act: r, pending: i } = xr("discussion"), a = /* @__PURE__ */ F(""), o = /* @__PURE__ */ F(WQ), s = /* @__PURE__ */ F(0), c = /* @__PURE__ */ F(""), l = /* @__PURE__ */ F(!1), u = /* @__PURE__ */ F(null);
52635
52631
  R(t, (e) => {
52636
- e && (a.value = "", o.value = KQ, s.value = 0, c.value = "", l.value = !1);
52632
+ e && (a.value = "", o.value = WQ, s.value = 0, c.value = "", l.value = !1);
52637
52633
  });
52638
52634
  async function d() {
52639
52635
  u.value?.settle();
@@ -52647,7 +52643,7 @@ var hU = /*#__PURE__*/ XH({
52647
52643
  }) && (t.value = !1);
52648
52644
  }
52649
52645
  return (e, r) => {
52650
- let f = HV, p = zV, m = Fq, h = MA, g = YH;
52646
+ let f = HV, p = zV, m = Nq, h = MA, g = YH;
52651
52647
  return U(), G(g, {
52652
52648
  open: t.value,
52653
52649
  "onUpdate:open": r[6] ||= (e) => t.value = e,
@@ -52701,7 +52697,7 @@ var hU = /*#__PURE__*/ XH({
52701
52697
  "minutes",
52702
52698
  "execution_minutes"
52703
52699
  ]),
52704
- K("div", GQ, [q(h, {
52700
+ K("div", UQ, [q(h, {
52705
52701
  label: "取消",
52706
52702
  color: "neutral",
52707
52703
  variant: "ghost",
@@ -52719,8 +52715,8 @@ var hU = /*#__PURE__*/ XH({
52719
52715
  }, 8, ["open"]);
52720
52716
  };
52721
52717
  }
52722
- }, [["__scopeId", "data-v-dee972d6"]]), JQ = ["dispatched", "started"], YQ = (e) => e.pending > 0 || JQ.includes(e.execution?.status);
52723
- function XQ(e, { view: t, act: n, describe: r }) {
52718
+ }, [["__scopeId", "data-v-dee972d6"]]), KQ = ["dispatched", "started"], qQ = (e) => e.pending > 0 || KQ.includes(e.execution?.status);
52719
+ function JQ(e, { view: t, act: n, describe: r }) {
52724
52720
  let i = t.access, a = i?.members?.find((t) => t.name === e.name)?.available, o = !i?.can_manage, s = (t, r, i, a = {}) => ({
52725
52721
  label: t,
52726
52722
  icon: r,
@@ -52765,7 +52761,7 @@ function XQ(e, { view: t, act: n, describe: r }) {
52765
52761
  }] : []
52766
52762
  ],
52767
52763
  [
52768
- ...YQ(e) ? [s("停止", "i-lucide-square", "interrupt")] : [],
52764
+ ...qQ(e) ? [s("停止", "i-lucide-square", "interrupt")] : [],
52769
52765
  ...e.access === "online" && e.pending ? [{
52770
52766
  label: "复制阅读通知",
52771
52767
  icon: "i-lucide-copy",
@@ -52785,55 +52781,55 @@ function XQ(e, { view: t, act: n, describe: r }) {
52785
52781
  }
52786
52782
  //#endregion
52787
52783
  //#region frontend/FreeBoard.vue
52788
- var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q = { class: "pb-mode" }, e$ = { class: "pb-status-line" }, t$ = { role: "status" }, n$ = {
52784
+ var YQ = { class: "progress-board is-docked" }, XQ = { class: "pb-header" }, ZQ = { class: "pb-mode" }, QQ = { class: "pb-status-line" }, $Q = { role: "status" }, e$ = {
52789
52785
  key: 0,
52790
52786
  class: "pb-status-detail"
52791
- }, r$ = { class: "pb-meters" }, i$ = { class: "pb-meter-label" }, a$ = {
52787
+ }, t$ = { class: "pb-meters" }, n$ = { class: "pb-meter-label" }, r$ = {
52792
52788
  key: 0,
52793
52789
  class: "pb-bar"
52794
- }, o$ = {
52790
+ }, i$ = {
52795
52791
  key: 0,
52796
52792
  class: "pb-section",
52797
52793
  "aria-label": "当前任务"
52798
- }, s$ = {
52794
+ }, a$ = {
52799
52795
  class: "pb-section",
52800
52796
  "aria-label": "发言顺序"
52801
- }, c$ = { class: "pb-member-body" }, l$ = ["title"], u$ = ["title"], d$ = {
52797
+ }, o$ = { class: "pb-member-body" }, s$ = ["title"], c$ = ["title"], l$ = {
52802
52798
  key: 0,
52803
52799
  class: "pb-member-model",
52804
52800
  title: "它工作时请不要在原窗口继续操作"
52805
- }, f$ = ["title"], p$ = {
52801
+ }, u$ = ["title"], d$ = {
52806
52802
  key: 0,
52807
52803
  role: "alert",
52808
52804
  class: "pb-free-note is-error"
52809
- }, m$ = {
52805
+ }, f$ = {
52810
52806
  key: 1,
52811
52807
  role: "status",
52812
52808
  class: "pb-free-note"
52813
- }, h$ = {
52809
+ }, p$ = {
52814
52810
  key: 2,
52815
52811
  role: "alert",
52816
52812
  class: "pb-free-note is-error"
52817
- }, g$ = {
52813
+ }, m$ = {
52818
52814
  key: 3,
52819
52815
  role: "status",
52820
52816
  class: "pb-free-note"
52821
- }, _$ = {
52817
+ }, h$ = {
52822
52818
  key: 1,
52823
52819
  class: "pb-section",
52824
52820
  "aria-label": "头脑风暴"
52825
- }, v$ = ["onClick"], y$ = {
52821
+ }, g$ = ["onClick"], _$ = {
52826
52822
  key: 2,
52827
52823
  class: "pb-actions",
52828
52824
  "aria-label": "操作"
52829
- }, b$ = {
52825
+ }, v$ = {
52830
52826
  key: 0,
52831
52827
  class: "pb-free-note"
52832
- }, x$ = {
52828
+ }, y$ = {
52833
52829
  key: 3,
52834
52830
  class: "pb-section",
52835
52831
  "aria-label": "执行耗时"
52836
- }, S$ = { class: "pb-timing-heading" }, C$ = { class: "pb-timings" }, w$ = { class: "pb-timing-who" }, T$ = { class: "pb-timing-stages" }, E$ = 90, D$ = /*#__PURE__*/ XH({
52832
+ }, b$ = { class: "pb-timing-heading" }, x$ = { class: "pb-timings" }, S$ = { class: "pb-timing-who" }, C$ = { class: "pb-timing-stages" }, w$ = 90, T$ = /*#__PURE__*/ XH({
52837
52833
  __name: "FreeBoard",
52838
52834
  setup(e) {
52839
52835
  let { view: t, bridge: n, act: r, pending: i } = xr("discussion"), a = ["dispatched", "started"], o = {
@@ -52848,7 +52844,7 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
52848
52844
  online: "网页代发"
52849
52845
  }, c = Z(() => t.value.room), l = Z(() => c.value.free || {}), u = Z(() => (l.value.members || []).find((e) => e.role === "host" && e.status === "active")), d = (e) => (l.value.members || []).find((t) => t.name === e), f = Z(() => (l.value.members || []).filter((e) => e.status === "away").map((e) => e.name)), p = (e) => n.display_name((l.value.members || []).find((t) => t.id === e)?.name || "成员"), m = (e) => e.access === "manual" && e.status === "active" && !e.registered_at;
52850
52846
  function h(e) {
52851
- return e.status === "away" ? "neutral" : m(e) ? "warning" : e.execution?.stale ? "error" : YQ(e) ? e.pending && !a.includes(e.execution?.status) ? "warning" : "primary" : e.execution?.status === "failed" ? "error" : "success";
52847
+ return e.status === "away" ? "neutral" : m(e) ? "warning" : e.execution?.stale ? "error" : qQ(e) ? e.pending && !a.includes(e.execution?.status) ? "warning" : "primary" : e.execution?.status === "failed" ? "error" : "success";
52852
52848
  }
52853
52849
  function g(e, t) {
52854
52850
  if (e.status === "away") return "已离开:不会被唤醒,可请回";
@@ -52868,7 +52864,7 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
52868
52864
  title: "已存档",
52869
52865
  detail: ""
52870
52866
  };
52871
- let e = (l.value.members || []).filter(YQ);
52867
+ let e = (l.value.members || []).filter(qQ);
52872
52868
  if (e.some((e) => e.execution?.stale)) return {
52873
52869
  tone: "error",
52874
52870
  title: "执行失联",
@@ -52927,7 +52923,7 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
52927
52923
  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)}分`;
52928
52924
  }
52929
52925
  function T(e) {
52930
- return XQ(e, {
52926
+ return JQ(e, {
52931
52927
  view: t.value,
52932
52928
  act: r,
52933
52929
  describe: (e) => {
@@ -52952,32 +52948,32 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
52952
52948
  k.value = !1;
52953
52949
  }), (e, i) => {
52954
52950
  let a = pA, s = sA, m = MA, ne = CH;
52955
- return U(), W("div", ZQ, [
52956
- K("header", QQ, [i[6] ||= K("strong", null, "自由协作", -1), K("span", $Q, P(u.value ? `${I(n).display_name(u.value.name)} 主持` : "无主持人"), 1)]),
52951
+ return U(), W("div", YQ, [
52952
+ K("header", XQ, [i[6] ||= K("strong", null, "自由协作", -1), K("span", ZQ, P(u.value ? `${I(n).display_name(u.value.name)} 主持` : "无主持人"), 1)]),
52957
52953
  K("section", {
52958
52954
  class: M(["pb-status", `is-${y.value.tone}`]),
52959
52955
  "aria-label": "房间状态"
52960
52956
  }, [
52961
- K("div", e$, [i[7] ||= K("span", { class: "pb-dot" }, null, -1), K("strong", t$, P(y.value.title), 1)]),
52962
- y.value.detail ? (U(), W("p", n$, P(y.value.detail), 1)) : Y("", !0),
52963
- K("div", r$, [(U(!0), W(H, null, B(b.value, (e) => (U(), W("div", {
52957
+ K("div", QQ, [i[7] ||= K("span", { class: "pb-dot" }, null, -1), K("strong", $Q, P(y.value.title), 1)]),
52958
+ y.value.detail ? (U(), W("p", e$, P(y.value.detail), 1)) : Y("", !0),
52959
+ K("div", t$, [(U(!0), W(H, null, B(b.value, (e) => (U(), W("div", {
52964
52960
  key: e.label,
52965
52961
  class: "pb-meter"
52966
- }, [K("div", i$, [K("span", null, P(e.label), 1), K("b", null, P(e.text), 1)]), e.ratio === null ? Y("", !0) : (U(), W("div", a$, [K("i", { style: fe({ width: `${Math.min(100, Math.round(e.ratio * 100))}%` }) }, null, 4)]))]))), 128))])
52962
+ }, [K("div", n$, [K("span", null, P(e.label), 1), K("b", null, P(e.text), 1)]), e.ratio === null ? Y("", !0) : (U(), W("div", r$, [K("i", { style: fe({ width: `${Math.min(100, Math.round(e.ratio * 100))}%` }) }, null, 4)]))]))), 128))])
52967
52963
  ], 2),
52968
- x.value ? (U(), W("section", o$, [
52964
+ x.value ? (U(), W("section", i$, [
52969
52965
  i[8] ||= K("h4", null, "当前任务", -1),
52970
52966
  K("p", { class: M(["pb-focus", { "is-expanded": S.value }]) }, P(x.value), 3),
52971
- x.value.length > E$ ? (U(), W("button", {
52967
+ x.value.length > w$ ? (U(), W("button", {
52972
52968
  key: 0,
52973
52969
  type: "button",
52974
52970
  class: "pb-link",
52975
52971
  onClick: i[0] ||= (e) => S.value = !S.value
52976
52972
  }, P(S.value ? "收起" : "展开"), 1)) : Y("", !0)
52977
52973
  ])) : Y("", !0),
52978
- K("section", s$, [
52974
+ K("section", a$, [
52979
52975
  i[10] ||= K("h4", null, "发言顺序", -1),
52980
- q(UZ, { away: f.value }, {
52976
+ q(VZ, { away: f.value }, {
52981
52977
  default: L(({ item: e }) => [(U(!0), W(H, null, B([d(e.name)].filter(Boolean), (t) => (U(), W(H, { key: t.id }, [
52982
52978
  q(a, {
52983
52979
  src: I(n).identities[t.name]?.icon,
@@ -52991,7 +52987,7 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
52991
52987
  "alt",
52992
52988
  "class"
52993
52989
  ]),
52994
- K("div", c$, [
52990
+ K("div", o$, [
52995
52991
  K("div", {
52996
52992
  class: "pb-member-name",
52997
52993
  title: c.value.descriptions?.[t.name] || void 0
@@ -53002,13 +52998,13 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
53002
52998
  name: "i-lucide-crown",
53003
52999
  title: "主持人"
53004
53000
  })) : Y("", !0),
53005
- K("small", { title: v(t) || void 0 }, P(_(t)), 9, u$)
53006
- ], 8, l$),
53007
- t.session_mode === "borrowed" ? (U(), W("div", d$, "借用已有会话")) : Y("", !0),
53001
+ K("small", { title: v(t) || void 0 }, P(_(t)), 9, c$)
53002
+ ], 8, s$),
53003
+ t.session_mode === "borrowed" ? (U(), W("div", l$, "借用已有会话")) : Y("", !0),
53008
53004
  K("div", { class: M(["pb-member-status", `is-${h(t)}`]) }, [i[9] ||= K("span", { class: "pb-dot" }, null, -1), K("span", {
53009
53005
  class: "pb-member-status-text",
53010
53006
  title: t.execution?.status === "failed" ? t.execution.result : void 0
53011
- }, P(g(t, e.state)), 9, f$)], 2)
53007
+ }, P(g(t, e.state)), 9, u$)], 2)
53012
53008
  ]),
53013
53009
  q(ne, {
53014
53010
  items: T(t),
@@ -53032,8 +53028,8 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
53032
53028
  key: e.executions.join("-"),
53033
53029
  class: "pb-free-note is-warning"
53034
53030
  }, "可能冲突:" + P(e.members.map((e) => I(n).display_name(e)).join(" 与 ")) + " 的重叠执行观察到 " + P(e.files.join("、")) + " 变化;修改者未确认。", 1))), 128)),
53035
- I(t).free_error ? (U(), W("p", p$, P(I(t).free_error), 1)) : I(t).free_notice ? (U(), W("p", m$, P(I(t).free_notice), 1)) : Y("", !0),
53036
- I(t).access?.error ? (U(), W("p", h$, P(I(t).access.error), 1)) : I(t).access?.notice ? (U(), W("p", g$, P(I(t).access.notice), 1)) : Y("", !0),
53031
+ I(t).free_error ? (U(), W("p", d$, P(I(t).free_error), 1)) : I(t).free_notice ? (U(), W("p", f$, P(I(t).free_notice), 1)) : Y("", !0),
53032
+ I(t).access?.error ? (U(), W("p", p$, P(I(t).access.error), 1)) : I(t).access?.notice ? (U(), W("p", m$, P(I(t).access.notice), 1)) : Y("", !0),
53037
53033
  c.value.archived ? Y("", !0) : (U(), G(m, {
53038
53034
  key: 4,
53039
53035
  icon: "i-lucide-plus",
@@ -53045,13 +53041,13 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
53045
53041
  onClick: i[1] ||= (e) => E.value = !0
53046
53042
  }))
53047
53043
  ]),
53048
- c.value.linked_rooms?.length ? (U(), W("section", _$, [i[11] ||= K("h4", null, "头脑风暴", -1), (U(!0), W(H, null, B(c.value.linked_rooms, (e) => (U(), W("button", {
53044
+ c.value.linked_rooms?.length ? (U(), W("section", h$, [i[11] ||= K("h4", null, "头脑风暴", -1), (U(!0), W(H, null, B(c.value.linked_rooms, (e) => (U(), W("button", {
53049
53045
  key: e.id,
53050
53046
  type: "button",
53051
53047
  class: "pb-link pb-free-linked",
53052
53048
  onClick: (t) => I(r)("room", e.id)
53053
- }, [J(P(e.title), 1), K("small", null, P(I(n).phases[e.phase] || e.phase), 1)], 8, v$))), 128))])) : Y("", !0),
53054
- c.value.archived ? Y("", !0) : (U(), W("section", y$, [q(m, {
53049
+ }, [J(P(e.title), 1), K("small", null, P(I(n).phases[e.phase] || e.phase), 1)], 8, g$))), 128))])) : Y("", !0),
53050
+ c.value.archived ? Y("", !0) : (U(), W("section", _$, [q(m, {
53055
53051
  icon: "i-lucide-messages-square",
53056
53052
  label: "开启讨论",
53057
53053
  size: "sm",
@@ -53061,18 +53057,18 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
53061
53057
  title: "由主持人推进成员轮流发言,到上限或结束后房间回到自由协作",
53062
53058
  disabled: !te.value,
53063
53059
  onClick: i[2] ||= (e) => k.value = !0
53064
- }, null, 8, ["disabled"]), te.value ? Y("", !0) : (U(), W("p", b$, "开启讨论需要一位由本机唤醒的 AI 主持人。"))])),
53065
- C.value.items.length ? (U(), W("section", x$, [K("div", S$, [i[12] ||= K("h4", null, "耗时", -1), K("small", null, "共 " + P(C.value.items.length) + " 次执行 · " + P(w(C.value.total)), 1)]), K("details", C$, [i[13] ||= K("summary", null, "查看每次执行", -1), K("ol", null, [(U(!0), W(H, null, B(C.value.items, (e) => (U(), W("li", { key: e.id }, [K("span", w$, [J("#" + P(e.id) + " " + P(p(e.member_id)), 1), K("small", null, P(o[e.status] || e.status), 1)]), K("span", T$, [K("span", null, "用时 " + P(w(e.seconds)), 1)])]))), 128))])])])) : Y("", !0),
53066
- q(qQ, {
53060
+ }, null, 8, ["disabled"]), te.value ? Y("", !0) : (U(), W("p", v$, "开启讨论需要一位由本机唤醒的 AI 主持人。"))])),
53061
+ C.value.items.length ? (U(), W("section", y$, [K("div", b$, [i[12] ||= K("h4", null, "耗时", -1), K("small", null, "共 " + P(C.value.items.length) + " 次执行 · " + P(w(C.value.total)), 1)]), K("details", x$, [i[13] ||= K("summary", null, "查看每次执行", -1), K("ol", null, [(U(!0), W(H, null, B(C.value.items, (e) => (U(), W("li", { key: e.id }, [K("span", S$, [J("#" + P(e.id) + " " + P(p(e.member_id)), 1), K("small", null, P(o[e.status] || e.status), 1)]), K("span", C$, [K("span", null, "用时 " + P(w(e.seconds)), 1)])]))), 128))])])])) : Y("", !0),
53062
+ q(GQ, {
53067
53063
  open: k.value,
53068
53064
  "onUpdate:open": i[3] ||= (e) => k.value = e
53069
53065
  }, null, 8, ["open"]),
53070
- q(kZ, {
53066
+ q(DZ, {
53071
53067
  open: E.value,
53072
53068
  "onUpdate:open": i[4] ||= (e) => E.value = e,
53073
53069
  description: "新成员加入后不打断其他成员;点卡片翻面可设置软件、模型、项目权限和要续接的已有会话。"
53074
53070
  }, null, 8, ["open"]),
53075
- q(tJ, {
53071
+ q($q, {
53076
53072
  open: !!D.value,
53077
53073
  name: D.value || " ",
53078
53074
  platform: D.value ? I(n).platform_of(D.value) : "",
@@ -53094,31 +53090,31 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
53094
53090
  ]);
53095
53091
  };
53096
53092
  }
53097
- }, [["__scopeId", "data-v-6bfaabb7"]]), O$ = {
53093
+ }, [["__scopeId", "data-v-6bfaabb7"]]), E$ = {
53098
53094
  class: "merged-section discussion-history",
53099
53095
  "aria-label": "讨论记录"
53100
- }, k$ = {
53096
+ }, D$ = {
53101
53097
  key: 0,
53102
53098
  class: "fine-print"
53103
- }, A$ = { class: "history-timeline" }, j$ = {
53099
+ }, O$ = { class: "history-timeline" }, k$ = {
53104
53100
  key: 0,
53105
53101
  class: "history-free"
53106
- }, M$ = {
53102
+ }, A$ = {
53107
53103
  key: 1,
53108
53104
  class: "history-discussion"
53109
- }, N$ = { class: "history-meta" }, P$ = {
53105
+ }, j$ = { class: "history-meta" }, M$ = {
53110
53106
  key: 0,
53111
53107
  class: "fine-print"
53112
- }, F$ = {
53108
+ }, N$ = {
53113
53109
  key: 1,
53114
53110
  class: "fine-print"
53115
- }, I$ = {
53111
+ }, P$ = {
53116
53112
  key: 2,
53117
53113
  class: "history-conclusion"
53118
- }, L$ = ["onClick"], R$ = ["innerHTML"], z$ = {
53114
+ }, F$ = ["onClick"], I$ = ["innerHTML"], L$ = {
53119
53115
  key: 1,
53120
53116
  class: "fine-print"
53121
- }, B$ = ["aria-expanded", "onClick"], V$ = ["innerHTML"], H$ = /*#__PURE__*/ XH({
53117
+ }, R$ = ["aria-expanded", "onClick"], z$ = ["innerHTML"], B$ = /*#__PURE__*/ XH({
53122
53118
  __name: "DiscussionHistory",
53123
53119
  emits: ["detail"],
53124
53120
  setup(e) {
@@ -53176,17 +53172,17 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
53176
53172
  }
53177
53173
  return (e, t) => {
53178
53174
  let l = WV, d = sA;
53179
- return U(), W("section", O$, [
53175
+ return U(), W("section", E$, [
53180
53176
  t[2] ||= K("div", { class: "page-heading" }, [K("div", null, [K("h2", null, "讨论记录"), K("p", null, "每场讨论及其结束时的结论,最新的在上;自由协作的消息按段汇总。")])], -1),
53181
- i.value.discussions?.length ? Y("", !0) : (U(), W("p", k$, "还没有开启过讨论。")),
53182
- K("ol", A$, [(U(!0), W(H, null, B(c.value, (i) => (U(), W("li", {
53177
+ i.value.discussions?.length ? Y("", !0) : (U(), W("p", D$, "还没有开启过讨论。")),
53178
+ K("ol", O$, [(U(!0), W(H, null, B(c.value, (i) => (U(), W("li", {
53183
53179
  key: i.key,
53184
53180
  class: M(`is-${i.kind}`)
53185
53181
  }, [t[1] ||= K("span", {
53186
53182
  class: "history-dot",
53187
53183
  "aria-hidden": "true"
53188
- }, null, -1), i.kind === "free" ? (U(), W("p", j$, "自由协作 · " + P(i.count) + " 条消息", 1)) : (U(), W("article", M$, [
53189
- K("header", null, [K("h3", null, "讨论 " + P(i.number) + " · " + P(i.goal || "未填写目标"), 1), q(l, {
53184
+ }, null, -1), i.kind === "free" ? (U(), W("p", k$, "自由协作 · " + P(i.count) + " 条消息", 1)) : (U(), W("article", A$, [
53185
+ K("header", null, [K("h3", null, [K("small", null, "讨论 " + P(i.number), 1), J(P(i.goal || "未填写目标"), 1)]), q(l, {
53190
53186
  color: r[i.status]?.color || "neutral",
53191
53187
  variant: "subtle",
53192
53188
  size: "sm"
@@ -53194,82 +53190,69 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
53194
53190
  default: L(() => [J(P(r[i.status]?.label || i.status), 1)]),
53195
53191
  _: 2
53196
53192
  }, 1032, ["color"])]),
53197
- K("p", N$, [
53193
+ K("p", j$, [
53198
53194
  J(P(s(i.created_at)) + " 开始 · " + P(i.count) + " 条消息", 1),
53199
53195
  i.status === "concluded" && i.state !== null ? (U(), W(H, { key: 0 }, [J(" · " + P(I(n).stop_reason_label(i)), 1)], 64)) : Y("", !0),
53200
53196
  i.concluded_at ? (U(), W(H, { key: 1 }, [J(" · " + P(s(i.concluded_at)) + " 结束", 1)], 64)) : Y("", !0)
53201
53197
  ]),
53202
- i.result?.current ? (U(), W("p", P$, "结论即上方的当前共识。")) : i.result?.missing ? (U(), W("p", F$, "这场讨论结束于结论快照功能之前,没有保存当时的结论。")) : i.result ? (U(), W("div", I$, [
53198
+ i.result?.current ? (U(), W("p", M$, "结论即上方的当前共识。")) : i.result?.missing ? (U(), W("p", N$, "这场讨论结束于结论快照功能之前,没有保存当时的结论。")) : i.result ? (U(), W("div", P$, [
53203
53199
  K("small", null, [J(P(i.result.label), 1), i.result.until ? (U(), W("button", {
53204
53200
  key: 0,
53205
53201
  type: "button",
53206
53202
  class: "subtle-link",
53207
53203
  onClick: (t) => e.$emit("detail", i.result.until)
53208
- }, "整理至 #" + P(i.result.until), 9, L$)) : Y("", !0)]),
53204
+ }, "整理至 #" + P(i.result.until), 9, F$)) : Y("", !0)]),
53209
53205
  i.result.brief ? (U(), W("div", {
53210
53206
  key: 0,
53211
53207
  class: "markdown-body",
53212
53208
  innerHTML: o(i.result.brief)
53213
- }, null, 8, R$)) : i.result.state ? Y("", !0) : (U(), W("p", z$, "主持人没有留下简报或共识。")),
53209
+ }, null, 8, I$)) : i.result.state ? Y("", !0) : (U(), W("p", L$, "主持人没有留下简报或共识。")),
53214
53210
  i.result.state ? (U(), W(H, { key: 2 }, [K("button", {
53215
53211
  type: "button",
53216
53212
  class: "history-toggle",
53217
53213
  "aria-expanded": a.value.has(i.id),
53218
53214
  onClick: (e) => u(i.id)
53219
- }, [t[0] ||= J("详细共识与进度", -1), q(d, { name: a.value.has(i.id) ? "i-lucide-chevron-up" : "i-lucide-chevron-down" }, null, 8, ["name"])], 8, B$), a.value.has(i.id) ? (U(), W("div", {
53215
+ }, [t[0] ||= J("详细共识与进度", -1), q(d, { name: a.value.has(i.id) ? "i-lucide-chevron-up" : "i-lucide-chevron-down" }, null, 8, ["name"])], 8, R$), a.value.has(i.id) ? (U(), W("div", {
53220
53216
  key: 0,
53221
53217
  class: "markdown-body history-state",
53222
53218
  innerHTML: o(i.result.state)
53223
- }, null, 8, V$)) : Y("", !0)], 64)) : Y("", !0)
53219
+ }, null, 8, z$)) : Y("", !0)], 64)) : Y("", !0)
53224
53220
  ])) : Y("", !0)
53225
53221
  ]))], 2))), 128))])
53226
53222
  ]);
53227
53223
  };
53228
53224
  }
53229
- }, [["__scopeId", "data-v-089f88c2"]]), U$ = {
53225
+ }, [["__scopeId", "data-v-8daffdea"]]), V$ = {
53230
53226
  class: "merged-section room-overview",
53231
53227
  "aria-label": "成员与设置"
53232
- }, W$ = { class: "page-heading" }, G$ = { class: "overview-section" }, K$ = {
53228
+ }, H$ = { class: "page-heading" }, U$ = { class: "overview-section" }, W$ = {
53233
53229
  key: 0,
53234
53230
  class: "overview-local",
53235
53231
  role: "status"
53236
- }, q$ = {
53237
- class: "overview-table",
53238
- role: "table",
53232
+ }, G$ = {
53233
+ class: "member-cards",
53239
53234
  "aria-label": "成员"
53240
- }, J$ = {
53241
- class: "overview-member",
53242
- role: "cell"
53243
- }, Y$ = { class: "overview-member-copy" }, X$ = ["title"], Z$ = {
53244
- role: "cell",
53245
- "data-label": "接入"
53246
- }, Q$ = ["aria-label", "title"], $$ = [
53235
+ }, K$ = { class: "member-card-head" }, q$ = { class: "member-card-name" }, J$ = ["title"], Y$ = { class: "member-card-facts" }, X$ = ["aria-label", "title"], Z$ = [
53247
53236
  "aria-checked",
53248
53237
  "disabled",
53249
53238
  "onClick"
53250
- ], e1 = { key: 1 }, t1 = ["title"], n1 = {
53251
- role: "cell",
53252
- "data-label": "项目文件"
53253
- }, r1 = [
53239
+ ], Q$ = { key: 1 }, $$ = ["title"], e1 = [
53254
53240
  "aria-label",
53255
53241
  "aria-busy",
53256
53242
  "title"
53257
- ], i1 = [
53243
+ ], t1 = [
53258
53244
  "aria-checked",
53259
53245
  "disabled",
53260
53246
  "onClick"
53261
- ], a1 = ["title"], o1 = {
53262
- role: "cell",
53263
- "data-label": "状态"
53264
- }, s1 = ["aria-label"], c1 = {
53247
+ ], n1 = ["title"], r1 = ["aria-label"], i1 = { key: 0 }, a1 = {
53265
53248
  key: 1,
53266
53249
  class: "overview-result is-error",
53267
53250
  role: "alert"
53268
- }, l1 = {
53251
+ }, o1 = {
53269
53252
  key: 2,
53270
53253
  class: "overview-result",
53271
53254
  role: "status"
53272
- }, u1 = ["role"], d1 = { class: "overview-section" }, f1 = { class: "overview-settings" }, p1 = { key: 0 }, m1 = { key: 1 }, h1 = { class: "overview-address" }, g1 = { key: 2 }, _1 = /*#__PURE__*/ XH({
53255
+ }, s1 = ["role"], c1 = { class: "overview-section" }, l1 = { class: "overview-settings" }, u1 = { key: 0 }, d1 = { key: 1 }, f1 = { class: "overview-address" }, p1 = { key: 2 }, m1 = /*#__PURE__*/ XH({
53273
53256
  __name: "RoomOverview",
53274
53257
  setup(e) {
53275
53258
  let { view: t, bridge: n, act: r } = xr("discussion"), i = {
@@ -53401,14 +53384,17 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
53401
53384
  }
53402
53385
  let C = Z(() => p.value ? "—" : f.value.scheduler ? `${t.value.launch.scheduler_providers?.[f.value.scheduler.provider]?.label || f.value.scheduler.provider} · ${f.value.scheduler.model}` : "未开启");
53403
53386
  function w(e) {
53404
- let n = XQ(y(e), {
53387
+ let [n, i, a] = JQ(y(e), {
53405
53388
  view: t.value,
53406
53389
  act: r,
53407
53390
  describe: (e) => {
53408
53391
  E.value = e;
53409
53392
  }
53410
53393
  });
53411
- return (d.value ? n : n.slice(0, 1)).flat();
53394
+ return {
53395
+ taking_part: n,
53396
+ place: d.value ? [...i, ...a] : []
53397
+ };
53412
53398
  }
53413
53399
  let T = /* @__PURE__ */ F(!1), E = /* @__PURE__ */ F(""), D = /* @__PURE__ */ F(!1);
53414
53400
  R(() => u.value.id, () => {
@@ -53429,9 +53415,9 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
53429
53415
  }
53430
53416
  let ee = Z(() => `${location.origin}/r/${u.value.id}`), k = Z(() => u.value.created_at ? new Date(u.value.created_at).toLocaleString("zh-CN", { hour12: !1 }) : "");
53431
53417
  return (e, i) => {
53432
- let o = MA, l = pA, te = sA;
53433
- return U(), W("section", U$, [
53434
- K("div", W$, [i[5] ||= K("div", null, [K("h2", null, "成员与设置"), K("p", null, "成员的接入、权限与全部操作,以及房间的协作设置;右栏成员菜单是同样操作的快捷入口。")], -1), u.value.archived ? Y("", !0) : (U(), G(o, {
53418
+ let o = MA, l = pA, te = sA, ne = WV;
53419
+ return U(), W("section", V$, [
53420
+ K("div", H$, [i[5] ||= K("div", null, [K("h2", null, "成员与设置"), K("p", null, "成员的接入、权限与全部操作,以及房间的协作设置;右栏成员菜单是同样操作的快捷入口。")], -1), u.value.archived ? Y("", !0) : (U(), G(o, {
53435
53421
  key: 0,
53436
53422
  icon: "i-lucide-plus",
53437
53423
  label: "邀请 AI 加入",
@@ -53441,92 +53427,105 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
53441
53427
  disabled: !I(t).access?.can_manage,
53442
53428
  onClick: i[0] ||= (e) => T.value = !0
53443
53429
  }, null, 8, ["disabled"]))]),
53444
- K("section", G$, [
53445
- i[7] ||= K("h3", null, "成员", -1),
53446
- p.value ? (U(), W("p", K$, [J(P(p.value.text), 1), p.value.retry ? (U(), W("button", {
53430
+ K("section", U$, [
53431
+ i[9] ||= K("h3", null, "成员", -1),
53432
+ p.value ? (U(), W("p", W$, [J(P(p.value.text), 1), p.value.retry ? (U(), W("button", {
53447
53433
  key: 0,
53448
53434
  type: "button",
53449
53435
  class: "subtle-link",
53450
53436
  onClick: i[1] ||= (e) => I(n).reload_room_models()
53451
53437
  }, "重试")) : Y("", !0)])) : Y("", !0),
53452
- K("div", q$, [i[6] ||= K("div", {
53453
- class: "overview-row overview-head",
53454
- role: "row"
53455
- }, [
53456
- K("span", { role: "columnheader" }, "成员"),
53457
- K("span", { role: "columnheader" }, "接入"),
53458
- K("span", { role: "columnheader" }, "模型"),
53459
- K("span", { role: "columnheader" }, "项目文件"),
53460
- K("span", { role: "columnheader" }, "状态")
53461
- ], -1), (U(!0), W(H, null, B(_.value, (e) => (U(), W("div", {
53438
+ K("ul", G$, [(U(!0), W(H, null, B(_.value, (e) => (U(), W("li", {
53462
53439
  key: e.name,
53463
- class: "overview-row",
53464
- role: "row"
53440
+ class: "member-card"
53465
53441
  }, [
53466
- K("div", J$, [q(l, {
53467
- src: I(n).identities[e.name]?.icon,
53468
- text: I(n).identities[e.name]?.initials,
53469
- alt: e.name,
53470
- size: "sm",
53471
- class: M(["channel-avatar", I(n).identities[e.name]?.style])
53472
- }, null, 8, [
53473
- "src",
53474
- "text",
53475
- "alt",
53476
- "class"
53477
- ]), K("div", Y$, [K("strong", null, [J(P(I(n).display_name(e.name)), 1), e.role === "host" ? (U(), G(te, {
53478
- key: 0,
53479
- name: "i-lucide-crown",
53480
- title: "主持人"
53481
- })) : Y("", !0)]), u.value.descriptions?.[e.name] ? (U(), W("small", {
53482
- key: 0,
53483
- title: u.value.descriptions[e.name]
53484
- }, P(u.value.descriptions[e.name]), 9, X$)) : Y("", !0)])]),
53485
- K("div", Z$, [v(y(e)).value ? (U(), W("div", {
53486
- key: 0,
53487
- class: M(["expert-card-modes overview-switch", { "is-locked": !v(y(e)).editable }]),
53488
- role: "radiogroup",
53489
- "aria-label": `${e.name} 的接入方式`,
53490
- title: v(y(e)).hint
53491
- }, [(U(), W(H, null, B(c, (t) => K("button", {
53492
- key: t.value,
53493
- type: "button",
53494
- role: "radio",
53495
- "aria-checked": v(y(e)).value === t.value,
53496
- disabled: !v(y(e)).editable || !!h.value,
53497
- onClick: (n) => b(e, t.value)
53498
- }, P(t.label), 9, $$)), 64))], 10, Q$)) : (U(), W("span", e1, P(v(e).text), 1))]),
53499
- K("span", {
53500
- role: "cell",
53501
- "data-label": "模型",
53502
- class: M(["overview-model", { "overview-muted": m(e.name) }]),
53503
- title: I(n).participant_model(e.name, u.value, f.value) || void 0
53504
- }, P(e.access === "runner" && I(n).participant_model(e.name, u.value, f.value) || "—"), 11, t1),
53505
- K("div", n1, [x(e).value ? (U(), W("div", {
53506
- key: 0,
53507
- class: M(["expert-card-modes overview-switch", { "is-locked": !x(e).editable }]),
53508
- role: "radiogroup",
53509
- "aria-label": `${e.name} 的项目文件权限`,
53510
- "aria-busy": h.value === e.name,
53511
- title: x(e).hint || void 0
53512
- }, [(U(), W(H, null, B(s, (t) => K("button", {
53513
- key: t.value,
53514
- type: "button",
53515
- role: "radio",
53516
- "aria-checked": x(e).value === t.value,
53517
- disabled: !x(e).editable || !!h.value,
53518
- onClick: (n) => S(e, t.value)
53519
- }, P(t.label), 9, i1)), 64))], 10, r1)) : (U(), W("span", {
53520
- key: 1,
53521
- class: "overview-muted",
53522
- title: x(e).hint
53523
- }, P(x(e).text), 9, a1))]),
53524
- K("span", o1, P(e.access === "manual" && !e.registered_at ? "待注册" : a[e.status] || e.status), 1),
53525
- K("div", {
53526
- class: "overview-actions",
53527
- role: "cell",
53442
+ K("header", K$, [
53443
+ q(l, {
53444
+ src: I(n).identities[e.name]?.icon,
53445
+ text: I(n).identities[e.name]?.initials,
53446
+ alt: e.name,
53447
+ size: "md",
53448
+ class: M(["channel-avatar", I(n).identities[e.name]?.style])
53449
+ }, null, 8, [
53450
+ "src",
53451
+ "text",
53452
+ "alt",
53453
+ "class"
53454
+ ]),
53455
+ K("div", q$, [K("strong", null, [J(P(I(n).display_name(e.name)), 1), e.role === "host" ? (U(), G(te, {
53456
+ key: 0,
53457
+ name: "i-lucide-crown",
53458
+ title: "主持人"
53459
+ })) : Y("", !0)]), u.value.descriptions?.[e.name] ? (U(), W("small", {
53460
+ key: 0,
53461
+ title: u.value.descriptions[e.name]
53462
+ }, P(u.value.descriptions[e.name]), 9, J$)) : Y("", !0)]),
53463
+ q(ne, {
53464
+ color: e.access === "manual" && !e.registered_at ? "warning" : e.status === "active" ? "success" : "neutral",
53465
+ variant: "subtle",
53466
+ size: "sm"
53467
+ }, {
53468
+ default: L(() => [J(P(e.access === "manual" && !e.registered_at ? "待注册" : a[e.status] || e.status), 1)]),
53469
+ _: 2
53470
+ }, 1032, ["color"])
53471
+ ]),
53472
+ K("dl", Y$, [
53473
+ K("div", null, [i[6] ||= K("dt", null, "接入", -1), K("dd", null, [v(y(e)).value ? (U(), W("div", {
53474
+ key: 0,
53475
+ class: M(["expert-card-modes overview-switch", { "is-locked": !v(y(e)).editable }]),
53476
+ role: "radiogroup",
53477
+ "aria-label": `${e.name} 的接入方式`,
53478
+ title: v(y(e)).hint
53479
+ }, [(U(), W(H, null, B(c, (t) => K("button", {
53480
+ key: t.value,
53481
+ type: "button",
53482
+ role: "radio",
53483
+ "aria-checked": v(y(e)).value === t.value,
53484
+ disabled: !v(y(e)).editable || !!h.value,
53485
+ onClick: (n) => b(e, t.value)
53486
+ }, P(t.label), 9, Z$)), 64))], 10, X$)) : (U(), W("span", Q$, P(v(e).text), 1))])]),
53487
+ K("div", null, [i[7] ||= K("dt", null, "模型", -1), K("dd", {
53488
+ class: M(["overview-model", { "overview-muted": m(e.name) }]),
53489
+ title: I(n).participant_model(e.name, u.value, f.value) || void 0
53490
+ }, P(e.access === "runner" ? I(n).participant_model(e.name, u.value, f.value) || "—" : "在它自己的会话里设置"), 11, $$)]),
53491
+ K("div", null, [i[8] ||= K("dt", null, "项目文件", -1), K("dd", null, [x(e).value ? (U(), W("div", {
53492
+ key: 0,
53493
+ class: M(["expert-card-modes overview-switch", { "is-locked": !x(e).editable }]),
53494
+ role: "radiogroup",
53495
+ "aria-label": `${e.name} 的项目文件权限`,
53496
+ "aria-busy": h.value === e.name,
53497
+ title: x(e).hint || void 0
53498
+ }, [(U(), W(H, null, B(s, (t) => K("button", {
53499
+ key: t.value,
53500
+ type: "button",
53501
+ role: "radio",
53502
+ "aria-checked": x(e).value === t.value,
53503
+ disabled: !x(e).editable || !!h.value,
53504
+ onClick: (n) => S(e, t.value)
53505
+ }, P(t.label), 9, t1)), 64))], 10, e1)) : (U(), W("span", {
53506
+ key: 1,
53507
+ class: "overview-muted",
53508
+ title: x(e).hint
53509
+ }, P(x(e).text), 9, n1))])])
53510
+ ]),
53511
+ K("footer", {
53512
+ class: "member-card-actions",
53528
53513
  "aria-label": `${e.name} 的操作`
53529
- }, [(U(!0), W(H, null, B(w(e), (e) => (U(), G(o, {
53514
+ }, [K("div", null, [(U(!0), W(H, null, B(w(e).taking_part, (e) => (U(), G(o, {
53515
+ key: e.label,
53516
+ icon: e.icon,
53517
+ label: e.label,
53518
+ size: "xs",
53519
+ variant: "ghost",
53520
+ color: "neutral",
53521
+ disabled: e.disabled,
53522
+ onClick: (t) => e.onSelect()
53523
+ }, null, 8, [
53524
+ "icon",
53525
+ "label",
53526
+ "disabled",
53527
+ "onClick"
53528
+ ]))), 128))]), w(e).place.length ? (U(), W("div", i1, [(U(!0), W(H, null, B(w(e).place, (e) => (U(), G(o, {
53530
53529
  key: e.label,
53531
53530
  icon: e.icon,
53532
53531
  label: e.label,
@@ -53541,22 +53540,22 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
53541
53540
  "color",
53542
53541
  "disabled",
53543
53542
  "onClick"
53544
- ]))), 128))], 8, s1)
53543
+ ]))), 128))])) : Y("", !0)], 8, r1)
53545
53544
  ]))), 128))]),
53546
- I(t).access?.error || I(t).free_error ? (U(), W("p", c1, P(I(t).access?.error || I(t).free_error), 1)) : I(t).access?.notice || I(t).free_notice ? (U(), W("p", l1, P(I(t).access?.notice || I(t).free_notice), 1)) : Y("", !0),
53547
- i[8] ||= K("p", { class: "overview-result" }, "复制说明或下载配置不代表 AI 已接入,以实际回答和运行记录为准。", -1),
53545
+ I(t).access?.error || I(t).free_error ? (U(), W("p", a1, P(I(t).access?.error || I(t).free_error), 1)) : I(t).access?.notice || I(t).free_notice ? (U(), W("p", o1, P(I(t).access?.notice || I(t).free_notice), 1)) : Y("", !0),
53546
+ i[10] ||= K("p", { class: "overview-result" }, "复制说明或下载配置不代表 AI 已接入,以实际回答和运行记录为准。", -1),
53548
53547
  g.value.text ? (U(), W("p", {
53549
53548
  key: 3,
53550
53549
  class: M(["overview-result", { "is-error": g.value.tone === "error" }]),
53551
53550
  role: g.value.tone === "error" ? "alert" : "status"
53552
- }, P(g.value.text), 11, u1)) : Y("", !0)
53551
+ }, P(g.value.text), 11, s1)) : Y("", !0)
53553
53552
  ]),
53554
- K("section", d1, [i[15] ||= K("h3", null, "协作设置", -1), K("dl", f1, [
53555
- K("div", null, [i[9] ||= K("dt", null, "主持人", -1), K("dd", null, P(u.value.host ? I(n).display_name(u.value.host) : "未指定"), 1)]),
53556
- K("div", null, [i[10] ||= K("dt", null, "智能调度", -1), K("dd", null, P(C.value), 1)]),
53557
- d.value && u.value.free?.max_auto_hops ? (U(), W("div", p1, [i[11] ||= K("dt", null, "AI 之间派活上限", -1), K("dd", null, P(u.value.free.max_auto_hops) + " 次,到限停下等你", 1)])) : Y("", !0),
53558
- d.value ? Y("", !0) : (U(), W("div", m1, [i[12] ||= K("dt", null, "逐人追问", -1), K("dd", null, P(u.value.named_followup ? "开启:主持人每轮给每位专家写针对性追问" : "关闭:首轮后请专家回应上一轮观点"), 1)])),
53559
- K("div", null, [i[13] ||= K("dt", null, "阅读地址", -1), K("dd", h1, [K("code", null, P(ee.value), 1), q(o, {
53553
+ K("section", c1, [i[17] ||= K("h3", null, "协作设置", -1), K("dl", l1, [
53554
+ K("div", null, [i[11] ||= K("dt", null, "主持人", -1), K("dd", null, P(u.value.host ? I(n).display_name(u.value.host) : "未指定"), 1)]),
53555
+ K("div", null, [i[12] ||= K("dt", null, "智能调度", -1), K("dd", null, P(C.value), 1)]),
53556
+ d.value && u.value.free?.max_auto_hops ? (U(), W("div", u1, [i[13] ||= K("dt", null, "AI 之间派活上限", -1), K("dd", null, P(u.value.free.max_auto_hops) + " 次,到限停下等你", 1)])) : Y("", !0),
53557
+ d.value ? Y("", !0) : (U(), W("div", d1, [i[14] ||= K("dt", null, "逐人追问", -1), K("dd", null, P(u.value.named_followup ? "开启:主持人每轮给每位专家写针对性追问" : "关闭:首轮后请专家回应上一轮观点"), 1)])),
53558
+ K("div", null, [i[15] ||= K("dt", null, "阅读地址", -1), K("dd", f1, [K("code", null, P(ee.value), 1), q(o, {
53560
53559
  icon: "i-lucide-copy",
53561
53560
  color: "neutral",
53562
53561
  variant: "ghost",
@@ -53564,14 +53563,14 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
53564
53563
  "aria-label": "复制阅读地址",
53565
53564
  onClick: i[2] ||= (e) => I(r)("copy", ee.value)
53566
53565
  })])]),
53567
- k.value ? (U(), W("div", g1, [i[14] ||= K("dt", null, "创建时间", -1), K("dd", null, P(k.value), 1)])) : Y("", !0)
53566
+ k.value ? (U(), W("div", p1, [i[16] ||= K("dt", null, "创建时间", -1), K("dd", null, P(k.value), 1)])) : Y("", !0)
53568
53567
  ])]),
53569
- q(kZ, {
53568
+ q(DZ, {
53570
53569
  open: T.value,
53571
53570
  "onUpdate:open": i[3] ||= (e) => T.value = e,
53572
53571
  description: d.value ? "新成员加入后不打断其他成员;点卡片翻面可设置软件、模型、项目权限和要续接的已有会话。" : "新专家由程序按本机软件配置启动,或由你手动启动,加入本轮发言队列。"
53573
53572
  }, null, 8, ["open", "description"]),
53574
- q(tJ, {
53573
+ q($q, {
53575
53574
  open: !!E.value,
53576
53575
  name: E.value || " ",
53577
53576
  platform: E.value ? I(n).platform_of(E.value) : "",
@@ -53593,68 +53592,68 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
53593
53592
  ]);
53594
53593
  };
53595
53594
  }
53596
- }, [["__scopeId", "data-v-d943d196"]]), v1 = {
53595
+ }, [["__scopeId", "data-v-da400549"]]), h1 = {
53597
53596
  id: "channel-sidebar",
53598
53597
  class: "channel-sidebar",
53599
53598
  "aria-label": "房间导航"
53600
- }, y1 = { class: "channel-sidebar-content" }, b1 = { class: "channel-directory-heading channel-tools-heading" }, x1 = ["aria-expanded"], S1 = { class: "channel-sidebar-footer" }, C1 = ["aria-label"], w1 = { class: "channel-self" }, T1 = ["title"], E1 = [
53599
+ }, g1 = { class: "channel-sidebar-content" }, _1 = { class: "channel-directory-heading channel-tools-heading" }, v1 = ["aria-expanded"], y1 = { class: "channel-sidebar-footer" }, b1 = ["aria-label"], x1 = { class: "channel-self" }, S1 = ["title"], C1 = [
53601
53600
  "aria-valuemax",
53602
53601
  "aria-valuenow",
53603
53602
  "aria-valuetext"
53604
- ], D1 = { class: "channel-main" }, O1 = { class: "channel-header" }, k1 = { class: "channel-title-icon" }, A1 = { class: "channel-title" }, j1 = { class: "channel-title-copy" }, M1 = ["title"], N1 = {
53603
+ ], w1 = { class: "channel-main" }, T1 = { class: "channel-header" }, E1 = { class: "channel-title-icon" }, D1 = { class: "channel-title" }, O1 = { class: "channel-title-copy" }, k1 = ["title"], A1 = {
53605
53604
  key: 0,
53606
53605
  class: "channel-header-context"
53607
- }, P1 = { class: "channel-header-actions" }, F1 = {
53606
+ }, j1 = { class: "channel-header-actions" }, M1 = {
53608
53607
  key: 0,
53609
53608
  class: "channel-launch-recovery",
53610
53609
  "aria-label": "未完成的创建或启动请求"
53611
- }, I1 = { role: "status" }, L1 = { class: "button-row" }, R1 = {
53610
+ }, N1 = { role: "status" }, P1 = { class: "button-row" }, F1 = {
53612
53611
  key: 1,
53613
53612
  class: "channel-tabbar"
53614
- }, z1 = { class: "channel-brief-inner" }, B1 = { class: "channel-brief-heading" }, V1 = ["aria-label", "aria-expanded"], H1 = {
53613
+ }, I1 = { class: "channel-brief-inner" }, L1 = { class: "channel-brief-heading" }, R1 = ["aria-label", "aria-expanded"], z1 = {
53615
53614
  key: 0,
53616
53615
  class: "channel-brief-preview"
53617
- }, U1 = {
53616
+ }, B1 = {
53618
53617
  id: "channel-brief-content",
53619
53618
  class: "channel-brief-content"
53620
- }, W1 = ["innerHTML"], G1 = { class: "channel-brief-footer" }, K1 = { class: "channel-brief-status" }, q1 = { class: "channel-content" }, J1 = {
53619
+ }, V1 = ["innerHTML"], H1 = { class: "channel-brief-footer" }, U1 = { class: "channel-brief-status" }, W1 = { class: "channel-content" }, G1 = {
53621
53620
  key: 0,
53622
53621
  class: "content-page merged-page",
53623
53622
  role: "tabpanel",
53624
53623
  "aria-label": "讨论"
53625
- }, Y1 = {
53624
+ }, K1 = {
53626
53625
  key: 1,
53627
53626
  class: "merged-section",
53628
53627
  "aria-label": "当前讨论"
53629
- }, X1 = { class: "page-heading" }, Z1 = {
53628
+ }, q1 = { class: "page-heading" }, J1 = {
53630
53629
  key: 0,
53631
53630
  class: "fine-print"
53632
- }, Q1 = {
53631
+ }, Y1 = {
53633
53632
  class: "merged-section channel-summary",
53634
53633
  "aria-label": "当前共识"
53635
- }, $1 = { class: "page-heading" }, e0 = { class: "form-footer" }, t0 = { class: "button-row" }, n0 = { class: "consensus-block" }, r0 = ["innerHTML"], i0 = {
53634
+ }, X1 = { class: "page-heading" }, Z1 = { class: "form-footer" }, Q1 = { class: "button-row" }, $1 = { class: "consensus-card is-brief" }, e0 = ["innerHTML"], t0 = {
53636
53635
  key: 0,
53637
- class: "consensus-block"
53638
- }, a0 = ["innerHTML"], o0 = {
53636
+ class: "consensus-card"
53637
+ }, n0 = ["innerHTML"], r0 = {
53639
53638
  key: 2,
53640
53639
  class: "fine-print"
53641
- }, s0 = {
53640
+ }, i0 = {
53642
53641
  key: 1,
53643
53642
  class: "content-page merged-page",
53644
53643
  role: "tabpanel",
53645
53644
  "aria-label": "房间概况"
53646
- }, c0 = {
53645
+ }, a0 = {
53647
53646
  key: 1,
53648
53647
  class: "channel-empty"
53649
- }, l0 = ["aria-valuenow", "aria-valuetext"], u0 = {
53648
+ }, o0 = ["aria-valuenow", "aria-valuetext"], s0 = {
53650
53649
  key: 2,
53651
53650
  id: "channel-member-rail",
53652
53651
  class: "channel-member-rail",
53653
53652
  "aria-label": "当前焦点与讨论进度"
53654
- }, d0 = { class: "channel-rail-board" }, f0 = {
53653
+ }, c0 = { class: "channel-rail-board" }, l0 = {
53655
53654
  key: 2,
53656
53655
  class: "progress-board is-docked"
53657
- }, p0 = { class: "channel-detail-title" }, m0 = { class: "info-section" }, h0 = "ai-codiscuss-channel-layout", g0 = 220, _0 = 440, v0 = 280, y0 = 16, b0 = 180, x0 = 400, S0 = 248, C0 = 16, w0 = 480, T0 = 1200, E0 = 0, D0 = {
53656
+ }, u0 = { class: "channel-detail-title" }, d0 = { class: "info-section" }, f0 = "ai-codiscuss-channel-layout", p0 = 220, m0 = 440, h0 = 280, g0 = 16, _0 = 180, v0 = 400, y0 = 248, b0 = 16, x0 = 480, S0 = 1200, C0 = 0, w0 = {
53658
53657
  __name: "ChannelWorkspace",
53659
53658
  setup(e) {
53660
53659
  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 = [{
@@ -53676,14 +53675,14 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
53676
53675
  label: "宽",
53677
53676
  width: 1240
53678
53677
  }
53679
- }, b = je(), x = /* @__PURE__ */ F(b.reading), S = /* @__PURE__ */ F(b.effects), C = /* @__PURE__ */ F(b.rail), w = /* @__PURE__ */ F(b.nav), T = /* @__PURE__ */ F(typeof window > "u" ? 728 : window.innerWidth), E = /* @__PURE__ */ F(b.collapsed), D = /* @__PURE__ */ F(!0), O = /* @__PURE__ */ F(b.rail_collapsed), ee = Z(() => T.value >= T0), k = Z(() => t.value.tab === "discussion" && !O.value), te = Z(() => ee.value && t.value.tab === "discussion" ? O.value ? "展开房间概览" : "收起房间概览" : "房间资料与参与者"), ne = Z(() => {
53678
+ }, b = je(), x = /* @__PURE__ */ F(b.reading), S = /* @__PURE__ */ F(b.effects), C = /* @__PURE__ */ F(b.rail), w = /* @__PURE__ */ F(b.nav), T = /* @__PURE__ */ F(typeof window > "u" ? 728 : window.innerWidth), E = /* @__PURE__ */ F(b.collapsed), D = /* @__PURE__ */ F(!0), O = /* @__PURE__ */ F(b.rail_collapsed), ee = Z(() => T.value >= S0), k = Z(() => t.value.tab === "discussion" && !O.value), te = Z(() => ee.value && t.value.tab === "discussion" ? O.value ? "展开房间概览" : "收起房间概览" : "房间资料与参与者"), ne = Z(() => {
53680
53679
  let e = document.createElement("template");
53681
53680
  return e.innerHTML = o.value?.rendered_brief || "", e.content.textContent.replace(/\s+/g, " ").trim();
53682
- }), re = /* @__PURE__ */ F(null), ie = /* @__PURE__ */ F(0), A = null, j = /* @__PURE__ */ F(null), ae = /* @__PURE__ */ F(null), oe = Z(() => Math.min(x0, Math.max(b0, T.value - w0 - E0))), se = Z(() => Math.min(w.value, oe.value)), ce = Z(() => ({
53681
+ }), re = /* @__PURE__ */ F(null), ie = /* @__PURE__ */ F(0), A = null, j = /* @__PURE__ */ F(null), ae = /* @__PURE__ */ F(null), oe = Z(() => Math.min(v0, Math.max(_0, T.value - x0 - C0))), se = Z(() => Math.min(w.value, oe.value)), ce = Z(() => ({
53683
53682
  "--channel-reading-width": `${y[x.value].width}px`,
53684
53683
  "--channel-rail-width": `${C.value}px`,
53685
53684
  "--channel-topbar-height": `${ie.value}px`,
53686
- "--channel-main-columns": E.value ? "minmax(0, 1fr)" : `${se.value}px ${E0}px minmax(0, 1fr)`
53685
+ "--channel-main-columns": E.value ? "minmax(0, 1fr)" : `${se.value}px ${C0}px minmax(0, 1fr)`
53687
53686
  })), le = Object.entries(y).map(([e, t]) => ({
53688
53687
  value: e,
53689
53688
  label: t.label
@@ -53772,12 +53771,12 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
53772
53771
  }
53773
53772
  function je() {
53774
53773
  try {
53775
- let e = JSON.parse(localStorage.getItem(h0)) || {};
53774
+ let e = JSON.parse(localStorage.getItem(f0)) || {};
53776
53775
  return {
53777
53776
  reading: Object.hasOwn(y, e.reading) ? e.reading : "default",
53778
53777
  effects: e.effects === "reduced" ? "reduced" : "full",
53779
- rail: Number.isFinite(e.rail) ? Math.min(_0, Math.max(g0, e.rail)) : v0,
53780
- nav: Number.isFinite(e.nav) ? Math.min(x0, Math.max(b0, e.nav)) : Me(),
53778
+ rail: Number.isFinite(e.rail) ? Math.min(m0, Math.max(p0, e.rail)) : h0,
53779
+ nav: Number.isFinite(e.nav) ? Math.min(v0, Math.max(_0, e.nav)) : Me(),
53781
53780
  collapsed: e.collapsed === !0,
53782
53781
  brief_collapsed: e.brief_collapsed === !0,
53783
53782
  rail_collapsed: e.rail_collapsed === !0
@@ -53786,7 +53785,7 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
53786
53785
  return {
53787
53786
  reading: "default",
53788
53787
  effects: "full",
53789
- rail: v0,
53788
+ rail: h0,
53790
53789
  nav: Me(),
53791
53790
  collapsed: !1,
53792
53791
  brief_collapsed: !1,
@@ -53795,11 +53794,11 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
53795
53794
  }
53796
53795
  }
53797
53796
  function Me() {
53798
- return typeof window > "u" ? S0 : window.innerWidth >= 1900 ? 280 : window.innerWidth <= 980 ? 220 : S0;
53797
+ return typeof window > "u" ? y0 : window.innerWidth >= 1900 ? 280 : window.innerWidth <= 980 ? 220 : y0;
53799
53798
  }
53800
53799
  function Ne() {
53801
53800
  try {
53802
- localStorage.setItem(h0, JSON.stringify({
53801
+ localStorage.setItem(f0, JSON.stringify({
53803
53802
  reading: x.value,
53804
53803
  effects: S.value,
53805
53804
  rail: C.value,
@@ -53830,19 +53829,19 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
53830
53829
  }, e.currentTarget.setPointerCapture(e.pointerId));
53831
53830
  }
53832
53831
  function ze(e) {
53833
- j.value?.pointer === e.pointerId && (C.value = Math.round(Math.min(_0, Math.max(g0, j.value.width + j.value.x - e.clientX))));
53832
+ j.value?.pointer === e.pointerId && (C.value = Math.round(Math.min(m0, Math.max(p0, j.value.width + j.value.x - e.clientX))));
53834
53833
  }
53835
53834
  function Be(e) {
53836
53835
  j.value?.pointer === e.pointerId && (j.value = null, e.currentTarget.hasPointerCapture(e.pointerId) && e.currentTarget.releasePointerCapture(e.pointerId), Ne());
53837
53836
  }
53838
53837
  function Ve(e) {
53839
53838
  let t = {
53840
- ArrowLeft: C.value + y0,
53841
- ArrowRight: C.value - y0,
53842
- Home: g0,
53843
- End: _0
53839
+ ArrowLeft: C.value + g0,
53840
+ ArrowRight: C.value - g0,
53841
+ Home: p0,
53842
+ End: m0
53844
53843
  };
53845
- Object.hasOwn(t, e.key) && (e.preventDefault(), C.value = Math.min(_0, Math.max(g0, t[e.key])), Ne());
53844
+ Object.hasOwn(t, e.key) && (e.preventDefault(), C.value = Math.min(m0, Math.max(p0, t[e.key])), Ne());
53846
53845
  }
53847
53846
  function He(e) {
53848
53847
  e.button === 0 && (e.preventDefault(), e.currentTarget.focus(), ae.value = {
@@ -53852,19 +53851,19 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
53852
53851
  }, e.currentTarget.setPointerCapture(e.pointerId));
53853
53852
  }
53854
53853
  function Ue(e) {
53855
- ae.value?.pointer === e.pointerId && (w.value = Math.round(Math.min(oe.value, Math.max(b0, ae.value.width + e.clientX - ae.value.x))));
53854
+ ae.value?.pointer === e.pointerId && (w.value = Math.round(Math.min(oe.value, Math.max(_0, ae.value.width + e.clientX - ae.value.x))));
53856
53855
  }
53857
53856
  function We(e) {
53858
53857
  ae.value?.pointer === e.pointerId && (ae.value = null, e.currentTarget.hasPointerCapture(e.pointerId) && e.currentTarget.releasePointerCapture(e.pointerId), Ne());
53859
53858
  }
53860
53859
  function Ge(e) {
53861
53860
  let t = {
53862
- ArrowLeft: se.value - C0,
53863
- ArrowRight: se.value + C0,
53864
- Home: b0,
53861
+ ArrowLeft: se.value - b0,
53862
+ ArrowRight: se.value + b0,
53863
+ Home: _0,
53865
53864
  End: oe.value
53866
53865
  };
53867
- Object.hasOwn(t, e.key) && (e.preventDefault(), w.value = Math.min(oe.value, Math.max(b0, t[e.key])), Ne());
53866
+ Object.hasOwn(t, e.key) && (e.preventDefault(), w.value = Math.min(oe.value, Math.max(_0, t[e.key])), Ne());
53868
53867
  }
53869
53868
  return (e, r) => {
53870
53869
  let y = sA, b = lH, w = pA, T = MA, O = $V, ie = WV, A = YV, pe = KV, N = HV, je = zV, Me = NV, Ne = AV;
@@ -53876,10 +53875,10 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
53876
53875
  }]),
53877
53876
  style: fe(ce.value)
53878
53877
  }, [
53879
- K("aside", v1, [
53878
+ K("aside", h1, [
53880
53879
  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),
53881
- K("div", y1, [
53882
- q(pZ, {
53880
+ K("div", g1, [
53881
+ q(dZ, {
53883
53882
  onSelect: Te,
53884
53883
  onManage: Ce,
53885
53884
  onCreate: De,
@@ -53888,12 +53887,12 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
53888
53887
  onDeleteFolder: Ae,
53889
53888
  onArchives: we
53890
53889
  }),
53891
- K("div", b1, [K("button", {
53890
+ K("div", _1, [K("button", {
53892
53891
  type: "button",
53893
53892
  class: "channel-section-toggle",
53894
53893
  "aria-expanded": f.value,
53895
53894
  onClick: r[0] ||= (e) => f.value = !f.value
53896
- }, [q(y, { name: f.value ? "i-lucide-chevron-down" : "i-lucide-chevron-right" }, null, 8, ["name"]), r[29] ||= J("频道工具", -1)], 8, x1)]),
53895
+ }, [q(y, { name: f.value ? "i-lucide-chevron-down" : "i-lucide-chevron-right" }, null, 8, ["name"]), r[29] ||= J("频道工具", -1)], 8, v1)]),
53897
53896
  f.value ? (U(), G(b, {
53898
53897
  key: 0,
53899
53898
  items: be.value,
@@ -53909,7 +53908,7 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
53909
53908
  }
53910
53909
  }, null, 8, ["items"])) : Y("", !0)
53911
53910
  ]),
53912
- K("footer", S1, [K("button", {
53911
+ K("footer", y1, [K("button", {
53913
53912
  type: "button",
53914
53913
  class: "channel-self-button",
53915
53914
  "aria-label": `账号与设置:${I(n).display_name(I(_))}${xe.value ? "," + xe.value : ""}`,
@@ -53925,10 +53924,10 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
53925
53924
  "text",
53926
53925
  "alt",
53927
53926
  "class"
53928
- ]), K("span", w1, [K("strong", null, P(I(n).display_name(I(_))), 1), K("span", { class: M(["channel-connection", { "is-action": xe.value }]) }, [K("span", {
53927
+ ]), K("span", x1, [K("strong", null, P(I(n).display_name(I(_))), 1), K("span", { class: M(["channel-connection", { "is-action": xe.value }]) }, [K("span", {
53929
53928
  class: M({ connected: I(t).connected }),
53930
53929
  title: I(t).connected ? "网站已连接" : "网站未连接"
53931
- }, null, 10, T1), J(P(xe.value || (I(t).connected ? "网站已连接" : "网站未连接")), 1)], 2)])], 8, C1), q(O, { text: "设置" }, {
53930
+ }, null, 10, S1), J(P(xe.value || (I(t).connected ? "网站已连接" : "网站未连接")), 1)], 2)])], 8, b1), q(O, { text: "设置" }, {
53932
53931
  default: L(() => [q(T, {
53933
53932
  icon: "i-lucide-settings-2",
53934
53933
  color: "neutral",
@@ -53949,7 +53948,7 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
53949
53948
  "aria-label": "调整房间栏宽度",
53950
53949
  "aria-orientation": "vertical",
53951
53950
  "aria-controls": "channel-sidebar",
53952
- "aria-valuemin": b0,
53951
+ "aria-valuemin": _0,
53953
53952
  "aria-valuemax": oe.value,
53954
53953
  "aria-valuenow": se.value,
53955
53954
  "aria-valuetext": `${se.value} 像素`,
@@ -53960,13 +53959,13 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
53960
53959
  onPointercancel: We,
53961
53960
  onLostpointercapture: We,
53962
53961
  onKeydown: Ge
53963
- }, null, 40, E1)),
53964
- K("main", D1, [K("div", {
53962
+ }, null, 40, C1)),
53963
+ K("main", w1, [K("div", {
53965
53964
  ref_key: "topbar",
53966
53965
  ref: re,
53967
53966
  class: M(["channel-topbar", { "is-overlay": o.value && I(t).tab === "discussion" }])
53968
53967
  }, [
53969
- K("header", O1, [
53968
+ K("header", T1, [
53970
53969
  q(O, { text: E.value ? "展开房间栏" : "收起房间栏" }, {
53971
53970
  default: L(() => [q(T, {
53972
53971
  icon: "i-lucide-panel-left",
@@ -53991,8 +53990,8 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
53991
53990
  "aria-expanded": d.value,
53992
53991
  onClick: r[4] ||= (e) => d.value = !0
53993
53992
  }, null, 8, ["aria-expanded"]),
53994
- K("span", k1, [q(y, { name: "i-lucide-hash" })]),
53995
- K("div", A1, [K("div", j1, [K("h1", { title: o.value?.title }, P(o.value?.title || "共议"), 9, M1)]), o.value?.archived ? (U(), G(ie, {
53993
+ K("span", E1, [q(y, { name: "i-lucide-hash" })]),
53994
+ K("div", D1, [K("div", O1, [K("h1", { title: o.value?.title }, P(o.value?.title || "共议"), 9, k1)]), o.value?.archived ? (U(), G(ie, {
53996
53995
  key: 0,
53997
53996
  color: "neutral",
53998
53997
  variant: "subtle",
@@ -54001,12 +54000,12 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
54001
54000
  default: L(() => [...r[31] ||= [J("已存档", -1)]]),
54002
54001
  _: 1
54003
54002
  })) : Y("", !0)]),
54004
- o.value ? (U(), W("span", N1, [
54003
+ o.value ? (U(), W("span", A1, [
54005
54004
  J(P(de.find((e) => e.value === I(t).tab)?.label), 1),
54006
54005
  r[32] ||= K("span", null, "·", -1),
54007
54006
  J(P(o.value.message_count) + " 条记录", 1)
54008
54007
  ])) : Y("", !0),
54009
- K("div", P1, [
54008
+ K("div", j1, [
54010
54009
  I(t).tab === "discussion" ? (U(), W("form", {
54011
54010
  key: 0,
54012
54011
  class: "channel-search",
@@ -54064,7 +54063,7 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
54064
54063
  ])]),
54065
54064
  _: 1
54066
54065
  })) : Y("", !0),
54067
- o.value && !(k.value && ee.value) ? (U(), G(WQ, { key: 2 })) : Y("", !0)
54066
+ o.value && !(k.value && ee.value) ? (U(), G(HQ, { key: 2 })) : Y("", !0)
54068
54067
  ]),
54069
54068
  q(O, { text: te.value }, {
54070
54069
  default: L(() => [q(T, {
@@ -54085,12 +54084,12 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
54085
54084
  _: 1
54086
54085
  }, 8, ["text"])
54087
54086
  ]),
54088
- I(t).launch.recoveries.length ? (U(), W("section", F1, [
54087
+ I(t).launch.recoveries.length ? (U(), W("section", M1, [
54089
54088
  r[33] ||= K("h2", null, "继续未完成的请求", -1),
54090
54089
  (U(!0), W(H, null, B(I(t).launch.recoveries, (e) => (U(), W("article", { key: e.id }, [
54091
54090
  K("strong", null, P(e.title), 1),
54092
- K("p", I1, P(e.error || "启动结果尚未确认;原请求已保存在此浏览器中。"), 1),
54093
- K("div", L1, [
54091
+ K("p", N1, P(e.error || "启动结果尚未确认;原请求已保存在此浏览器中。"), 1),
54092
+ K("div", P1, [
54094
54093
  q(T, {
54095
54094
  label: e.direct ? "继续创建房间" : "继续本次启动",
54096
54095
  size: "sm",
@@ -54123,7 +54122,7 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
54123
54122
  ]))), 128)),
54124
54123
  r[34] ||= K("small", null, "移除待办不会删除房间或停止讨论。", -1)
54125
54124
  ])) : Y("", !0),
54126
- o.value ? (U(), W("div", R1, [q(pe, {
54125
+ o.value ? (U(), W("div", F1, [q(pe, {
54127
54126
  modelValue: ue.value,
54128
54127
  "onUpdate:modelValue": r[9] ||= (e) => ue.value = e,
54129
54128
  items: de,
@@ -54138,7 +54137,7 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
54138
54137
  key: 2,
54139
54138
  class: M(["channel-host-brief", { "is-collapsed": D.value }]),
54140
54139
  "aria-label": "主持简报"
54141
- }, [K("div", z1, [K("div", B1, [K("button", {
54140
+ }, [K("div", I1, [K("div", L1, [K("button", {
54142
54141
  type: "button",
54143
54142
  class: "channel-brief-toggle",
54144
54143
  "aria-label": D.value ? "展开主持简报" : "收起主持简报",
@@ -54148,8 +54147,8 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
54148
54147
  }, [
54149
54148
  q(y, { name: D.value ? "i-lucide-chevron-right" : "i-lucide-chevron-down" }, null, 8, ["name"]),
54150
54149
  K("strong", null, "主持简报" + P(D.value ? ":" : ""), 1),
54151
- D.value ? (U(), W("span", H1, P(ne.value), 1)) : Y("", !0)
54152
- ], 8, V1), D.value ? Y("", !0) : (U(), G(T, {
54150
+ D.value ? (U(), W("span", z1, P(ne.value), 1)) : Y("", !0)
54151
+ ], 8, R1), D.value ? Y("", !0) : (U(), G(T, {
54153
54152
  key: 0,
54154
54153
  label: "更新简报",
54155
54154
  color: "neutral",
@@ -54157,20 +54156,20 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
54157
54156
  size: "xs",
54158
54157
  class: "channel-brief-update",
54159
54158
  onClick: r[10] ||= (e) => I(i)("tab", "context")
54160
- }))]), vr(K("div", U1, [K("div", {
54159
+ }))]), vr(K("div", B1, [K("div", {
54161
54160
  class: "channel-brief-text markdown-body",
54162
54161
  innerHTML: o.value.rendered_brief
54163
- }, null, 8, W1), K("div", G1, [K("span", K1, P(I(n).progress_speaker(o.value)), 1), K("small", null, P(I(n).brief_meta(o.value)), 1)])], 512), [[Vc, !D.value]])])], 2)) : Y("", !0)
54162
+ }, null, 8, V1), K("div", H1, [K("span", U1, P(I(n).progress_speaker(o.value)), 1), K("small", null, P(I(n).brief_meta(o.value)), 1)])], 512), [[Vc, !D.value]])])], 2)) : Y("", !0)
54164
54163
  ], 2), o.value ? (U(), W("div", {
54165
54164
  key: 0,
54166
54165
  class: M(["channel-body", { "channel-body-discussion": I(t).tab === "discussion" }])
54167
- }, [K("div", q1, [
54166
+ }, [K("div", W1, [
54168
54167
  vr(q(lK, {
54169
54168
  onDetail: Ee,
54170
54169
  onEdit: r[11] ||= (e) => s.value = "edit"
54171
54170
  }, null, 512), [[Vc, I(t).tab === "discussion"]]),
54172
- I(t).tab === "history" ? (U(), W("div", J1, [
54173
- me.value ? (U(), W("section", Y1, [K("div", X1, [r[35] ||= K("div", null, [K("h2", null, "当前讨论"), K("p", null, "没有进行中的讨论。开启后由主持人推进成员轮流发言,到上限或结束后房间回到自由协作,记录与结论保留。")], -1), q(T, {
54171
+ I(t).tab === "history" ? (U(), W("div", G1, [
54172
+ me.value ? (U(), W("section", K1, [K("div", q1, [r[35] ||= K("div", null, [K("h2", null, "当前讨论"), K("p", null, "没有进行中的讨论。开启后由主持人推进成员轮流发言,到上限或结束后房间回到自由协作,记录与结论保留。")], -1), q(T, {
54174
54173
  icon: "i-lucide-messages-square",
54175
54174
  label: "开启讨论",
54176
54175
  variant: "outline",
@@ -54178,13 +54177,13 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
54178
54177
  class: "channel-surface-button",
54179
54178
  disabled: !_e.value,
54180
54179
  onClick: r[13] ||= (e) => he.value = !0
54181
- }, null, 8, ["disabled"])]), !_e.value && !o.value.archived ? (U(), W("p", Z1, "开启讨论需要一位由本机唤醒的 AI 主持人,且本机服务在线。")) : Y("", !0)])) : (U(), G(jq, {
54180
+ }, null, 8, ["disabled"])]), !_e.value && !o.value.archived ? (U(), W("p", J1, "开启讨论需要一位由本机唤醒的 AI 主持人,且本机服务在线。")) : Y("", !0)])) : (U(), G(kq, {
54182
54181
  key: 0,
54183
54182
  section: "host",
54184
54183
  onOpen: r[12] ||= (e) => s.value = e,
54185
54184
  onDetail: Ee
54186
54185
  })),
54187
- K("section", Q1, [K("div", $1, [r[36] ||= K("div", null, [K("h2", null, "当前共识"), K("p", null, "主持人整理的结论、共识与分歧,用 #消息编号 保留依据;讨论结束时保存进下方记录。")], -1), ge.value ? Y("", !0) : (U(), G(T, {
54186
+ K("section", Y1, [K("div", X1, [r[36] ||= K("div", null, [K("h2", null, "当前共识"), K("p", null, "主持人整理的结论、共识与分歧,用 #消息编号 保留依据;讨论结束时保存进下方记录。")], -1), ge.value ? Y("", !0) : (U(), G(T, {
54188
54187
  key: 0,
54189
54188
  icon: "i-lucide-pencil",
54190
54189
  label: "编辑",
@@ -54228,7 +54227,7 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
54228
54227
  }, null, 8, ["modelValue"])]),
54229
54228
  _: 1
54230
54229
  }),
54231
- K("div", e0, [K("span", null, "依据消息截止 #" + P(I(t).snapshot_id), 1), K("div", t0, [q(T, {
54230
+ K("div", Z1, [K("span", null, "依据消息截止 #" + P(I(t).snapshot_id), 1), K("div", Q1, [q(T, {
54232
54231
  label: "取消",
54233
54232
  color: "neutral",
54234
54233
  variant: "ghost",
@@ -54241,7 +54240,7 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
54241
54240
  class: "channel-primary-button",
54242
54241
  loading: I(a) === "save_context"
54243
54242
  }, null, 8, ["loading"])])])
54244
- ], 32)) : o.value.host_brief?.text || o.value.state_text ? (U(), W(H, { key: 1 }, [K("div", n0, [K("small", null, [r[37] ||= J("主持简报", -1), o.value.state_until ? (U(), W("button", {
54243
+ ], 32)) : o.value.host_brief?.text || o.value.state_text ? (U(), W(H, { key: 1 }, [K("div", $1, [K("h3", null, [r[37] ||= J("主持简报", -1), o.value.state_until ? (U(), W("button", {
54245
54244
  key: 0,
54246
54245
  type: "button",
54247
54246
  class: "subtle-link",
@@ -54249,26 +54248,33 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
54249
54248
  }, "整理至 #" + P(o.value.state_until), 1)) : Y("", !0)]), K("div", {
54250
54249
  class: "markdown-body",
54251
54250
  innerHTML: o.value.rendered_brief
54252
- }, null, 8, r0)]), ve.value ? (U(), W("div", i0, [r[38] ||= K("small", null, "详细共识与进度", -1), K("div", {
54253
- class: "markdown-body",
54251
+ }, null, 8, e0)]), ve.value ? (U(), W("details", t0, [K("summary", null, [
54252
+ r[38] ||= K("h3", null, "详细共识与进度", -1),
54253
+ r[39] ||= K("span", null, "依据、已处理内容、未决问题与下一步", -1),
54254
+ q(y, {
54255
+ name: "i-lucide-chevron-down",
54256
+ class: "disclosure-icon"
54257
+ })
54258
+ ]), K("div", {
54259
+ class: "markdown-body consensus-state",
54254
54260
  innerHTML: ve.value
54255
- }, null, 8, a0)])) : Y("", !0)], 64)) : (U(), W("p", o0, "还没有共识。主持人会在讨论中整理,也可以点“编辑”自己写。"))]),
54256
- q(H$, { onDetail: Ee }),
54257
- q(qQ, {
54261
+ }, null, 8, n0)])) : Y("", !0)], 64)) : (U(), W("p", r0, "还没有共识。主持人会在讨论中整理,也可以点“编辑”自己写。"))]),
54262
+ q(B$, { onDetail: Ee }),
54263
+ q(GQ, {
54258
54264
  open: he.value,
54259
54265
  "onUpdate:open": r[19] ||= (e) => he.value = e
54260
54266
  }, null, 8, ["open"])
54261
54267
  ])) : Y("", !0),
54262
- I(t).tab === "overview" ? (U(), W("div", s0, [q(_1), me.value ? Y("", !0) : (U(), G(jq, {
54268
+ I(t).tab === "overview" ? (U(), W("div", i0, [q(m1), me.value ? Y("", !0) : (U(), G(kq, {
54263
54269
  key: 0,
54264
54270
  section: "access",
54265
54271
  onOpen: r[20] ||= (e) => s.value = e,
54266
54272
  onDetail: Ee
54267
54273
  }))])) : Y("", !0)
54268
- ])], 2)) : (U(), W("div", c0, [
54274
+ ])], 2)) : (U(), W("div", a0, [
54269
54275
  q(y, { name: "i-lucide-hash" }),
54270
- r[39] ||= K("h2", null, "新建一个协作房间", -1),
54271
- r[40] ||= K("p", null, "邀请 AI 一起协作,随时 @ 提问;需要时开启讨论,保留所有人的观点。", -1),
54276
+ r[40] ||= K("h2", null, "新建一个协作房间", -1),
54277
+ r[41] ||= K("p", null, "邀请 AI 一起协作,随时 @ 提问;需要时开启讨论,保留所有人的观点。", -1),
54272
54278
  q(T, {
54273
54279
  icon: "i-lucide-plus",
54274
54280
  label: "新建房间",
@@ -54284,8 +54290,8 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
54284
54290
  "aria-label": "调整右侧栏宽度",
54285
54291
  "aria-orientation": "vertical",
54286
54292
  "aria-controls": "channel-member-rail",
54287
- "aria-valuemin": g0,
54288
- "aria-valuemax": _0,
54293
+ "aria-valuemin": p0,
54294
+ "aria-valuemax": m0,
54289
54295
  "aria-valuenow": C.value,
54290
54296
  "aria-valuetext": `${C.value} 像素`,
54291
54297
  title: "拖动调整右侧栏宽度,也可使用左右方向键",
@@ -54295,11 +54301,11 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
54295
54301
  onPointercancel: Be,
54296
54302
  onLostpointercapture: Be,
54297
54303
  onKeydown: Ve
54298
- }, null, 40, l0)) : Y("", !0),
54299
- k.value ? (U(), W("aside", u0, [K("section", d0, [o.value && me.value ? (U(), G(D$, { key: 0 })) : o.value ? (U(), G(zQ, {
54304
+ }, null, 40, o0)) : Y("", !0),
54305
+ k.value ? (U(), W("aside", s0, [K("section", c0, [o.value && me.value ? (U(), G(T$, { key: 0 })) : o.value ? (U(), G(LQ, {
54300
54306
  key: 1,
54301
54307
  docked: ""
54302
- })) : (U(), W("div", f0, [...r[41] ||= [K("header", { class: "pb-header" }, [K("strong", null, "讨论进度")], -1), K("p", { class: "channel-rail-empty" }, "暂无房间,新建讨论后在这里查看进度与参与者。", -1)]]))])])) : Y("", !0),
54308
+ })) : (U(), W("div", l0, [...r[42] ||= [K("header", { class: "pb-header" }, [K("strong", null, "讨论进度")], -1), K("p", { class: "channel-rail-empty" }, "暂无房间,新建讨论后在这里查看进度与参与者。", -1)]]))])])) : Y("", !0),
54303
54309
  q(Me, {
54304
54310
  open: d.value,
54305
54311
  "onUpdate:open": r[23] ||= (e) => d.value = e,
@@ -54311,7 +54317,7 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
54311
54317
  body: "channel-drawer-body"
54312
54318
  }
54313
54319
  }, {
54314
- body: L(() => [q(pZ, {
54320
+ body: L(() => [q(dZ, {
54315
54321
  onSelect: Te,
54316
54322
  onManage: Ce,
54317
54323
  onCreate: De,
@@ -54342,7 +54348,7 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
54342
54348
  }
54343
54349
  }, {
54344
54350
  body: L(() => [o.value ? (U(), W(H, { key: 0 }, [
54345
- K("div", p0, [q(y, { name: "i-lucide-hash" }), K("h2", null, P(o.value.title), 1)]),
54351
+ K("div", u0, [q(y, { name: "i-lucide-hash" }), K("h2", null, P(o.value.title), 1)]),
54346
54352
  (U(), W(H, null, B([
54347
54353
  {
54348
54354
  key: "goal",
@@ -54369,7 +54375,7 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
54369
54375
  class: "info-section"
54370
54376
  }, [K("h3", null, P(e.label), 1), K("p", null, P(o.value[e.key] || "尚未填写"), 1)])), 64)),
54371
54377
  q(Ne),
54372
- K("section", m0, [r[42] ||= K("h3", null, "参与身份", -1), (U(!0), W(H, null, B(Se.value, (e) => (U(), W("div", {
54378
+ K("section", d0, [r[43] ||= K("h3", null, "参与身份", -1), (U(!0), W(H, null, B(Se.value, (e) => (U(), W("div", {
54373
54379
  key: e.name,
54374
54380
  class: "expert-row"
54375
54381
  }, [
@@ -54402,7 +54408,7 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
54402
54408
  ], 64)) : Y("", !0)]),
54403
54409
  _: 1
54404
54410
  }, 8, ["open"]),
54405
- q(UX, {
54411
+ q(VX, {
54406
54412
  modelValue: s.value,
54407
54413
  "onUpdate:modelValue": r[26] ||= (e) => s.value = e,
54408
54414
  "reading-width": x.value,
@@ -54426,7 +54432,7 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
54426
54432
  ], 6);
54427
54433
  };
54428
54434
  }
54429
- }, O0 = {
54435
+ }, T0 = {
54430
54436
  __name: "App",
54431
54437
  setup(e) {
54432
54438
  return br("discussion", OV()), (e, t) => {
@@ -54437,7 +54443,7 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
54437
54443
  toaster: null
54438
54444
  }, {
54439
54445
  default: L(() => [q(I(Qz), { "reduced-motion": "user" }, {
54440
- default: L(() => [q(D0)]),
54446
+ default: L(() => [q(w0)]),
54441
54447
  _: 1
54442
54448
  })]),
54443
54449
  _: 1
@@ -54447,8 +54453,8 @@ var ZQ = { class: "progress-board is-docked" }, QQ = { class: "pb-header" }, $Q
54447
54453
  };
54448
54454
  //#endregion
54449
54455
  //#region frontend/main.js
54450
- function k0() {
54451
- bu(O0).use(ph).mount("#modern-root");
54456
+ function E0() {
54457
+ bu(T0).use(ph).mount("#modern-root");
54452
54458
  }
54453
- document.readyState === "loading" ? document.addEventListener("DOMContentLoaded", k0) : k0();
54459
+ document.readyState === "loading" ? document.addEventListener("DOMContentLoaded", E0) : E0();
54454
54460
  //#endregion