ai_co_discuss 0.2.94 → 0.2.95

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
@@ -49552,39 +49552,42 @@ var hU = /*#__PURE__*/ XH({
49552
49552
  }, mX = {
49553
49553
  key: 1,
49554
49554
  class: "channel-archive-empty"
49555
- }, hX = { class: "fine-print" }, gX = { class: "dialog-actions" }, _X = { class: "dialog-actions" }, vX = { class: "channel-management-target" }, yX = {
49555
+ }, hX = { class: "fine-print" }, gX = {
49556
49556
  key: 0,
49557
49557
  class: "fine-print"
49558
- }, bX = {
49558
+ }, _X = { class: "dialog-actions" }, vX = { class: "fine-print" }, yX = { class: "dialog-actions" }, bX = { class: "dialog-actions" }, xX = { class: "channel-management-target" }, SX = {
49559
+ key: 0,
49560
+ class: "fine-print"
49561
+ }, CX = {
49559
49562
  key: 1,
49560
49563
  class: "fine-print"
49561
- }, xX = {
49564
+ }, wX = {
49562
49565
  key: 2,
49563
49566
  class: "fine-print"
49564
- }, SX = { class: "dialog-actions" }, CX = { key: 4 }, wX = { class: "theme-choices" }, TX = ["aria-pressed", "onClick"], EX = { class: "theme-check" }, DX = { class: "channel-reading-setting" }, OX = {
49567
+ }, TX = { class: "dialog-actions" }, EX = { key: 5 }, DX = { class: "theme-choices" }, OX = ["aria-pressed", "onClick"], kX = { class: "theme-check" }, AX = { class: "channel-reading-setting" }, jX = {
49565
49568
  class: "channel-reading-options",
49566
49569
  role: "group",
49567
49570
  "aria-labelledby": "channel-reading-label"
49568
- }, kX = { class: "channel-reading-setting" }, AX = {
49571
+ }, MX = { class: "channel-reading-setting" }, NX = {
49569
49572
  class: "channel-reading-options channel-effect-options",
49570
49573
  role: "group",
49571
49574
  "aria-labelledby": "channel-effects-label"
49572
- }, jX = { class: "form-two-columns" }, MX = { class: "advanced-content" }, NX = {
49575
+ }, PX = { class: "form-two-columns" }, FX = { class: "advanced-content" }, IX = {
49573
49576
  key: 0,
49574
49577
  class: "fine-print"
49575
- }, PX = { class: "advanced-content" }, FX = { class: "expert-fields" }, IX = { class: "dialog-actions" }, LX = { class: "dialog-actions" }, RX = {
49576
- key: 8,
49578
+ }, LX = { class: "advanced-content" }, RX = { class: "expert-fields" }, zX = { class: "dialog-actions" }, BX = { class: "dialog-actions" }, VX = {
49579
+ key: 9,
49577
49580
  class: "original-message"
49578
- }, zX = {
49581
+ }, HX = {
49579
49582
  key: 0,
49580
49583
  role: "alert"
49581
- }, BX = { class: "original-meta" }, VX = { class: "fine-print" }, HX = {
49584
+ }, UX = { class: "original-meta" }, WX = { class: "fine-print" }, GX = {
49582
49585
  key: 0,
49583
49586
  class: "channel-answer-summary"
49584
- }, UX = { class: "message-prose" }, WX = { class: "message-prose" }, GX = ["innerHTML"], KX = {
49587
+ }, KX = { class: "message-prose" }, qX = { class: "message-prose" }, JX = ["innerHTML"], YX = {
49585
49588
  key: 2,
49586
49589
  class: "fine-print"
49587
- }, qX = "topic-expert-modes", JX = {
49590
+ }, XX = "topic-expert-modes", ZX = {
49588
49591
  __name: "WorkspaceDialogs",
49589
49592
  props: /*@__PURE__*/ Fa({
49590
49593
  detailId: {
@@ -49645,6 +49648,7 @@ var hU = /*#__PURE__*/ XH({
49645
49648
  folder: "新建文件夹",
49646
49649
  "rename-folder": "重命名文件夹",
49647
49650
  "delete-folder": "移除文件夹",
49651
+ "archive-folder": "存档文件夹",
49648
49652
  edit: "编辑议题",
49649
49653
  schedule: "安排专家发言",
49650
49654
  message: "消息原文"
@@ -49729,7 +49733,8 @@ var hU = /*#__PURE__*/ XH({
49729
49733
  let A = Z(() => [
49730
49734
  "folder",
49731
49735
  "rename-folder",
49732
- "delete-folder"
49736
+ "delete-folder",
49737
+ "archive-folder"
49733
49738
  ].includes(a.value));
49734
49739
  R(() => [n.value, t.targetRoom?.id], () => {
49735
49740
  O.value = n.value === "rename" && t.targetRoom?.title || "";
@@ -49751,17 +49756,32 @@ var hU = /*#__PURE__*/ XH({
49751
49756
  } : e;
49752
49757
  n.value = "", await l(r ? "rename_folder" : "create_folder", i);
49753
49758
  }
49754
- async function ne() {
49755
- let e = t.targetFolder.id;
49756
- n.value = "", await l("delete_folder", e);
49759
+ let ne = Z(() => o.value.rooms.filter((e) => t.targetFolder?.id && e.folder_id === t.targetFolder.id));
49760
+ async function re(e) {
49761
+ let r = t.targetFolder.id, i = e ? ne.value : [];
49762
+ n.value = "";
49763
+ let a = !0;
49764
+ for (let e of i) a = await l("manage_channel", {
49765
+ id: e.id,
49766
+ action: "delete"
49767
+ }) && a;
49768
+ a && await l("delete_folder", r);
49757
49769
  }
49758
- let re = Object.keys(s.identities).filter((e) => e !== "用户"), ie = Object.keys(s.identities).map((e) => ({
49770
+ async function ie() {
49771
+ let e = ne.value.filter((e) => !e.archived);
49772
+ n.value = "";
49773
+ for (let t of e) await l("manage_channel", {
49774
+ id: t.id,
49775
+ action: "archive"
49776
+ });
49777
+ }
49778
+ let j = Object.keys(s.identities).filter((e) => e !== "用户"), ae = Object.keys(s.identities).map((e) => ({
49759
49779
  value: e,
49760
49780
  label: s.display_name(e)
49761
- })), j = Object.entries(s.phases).map(([e, t]) => ({
49781
+ })), oe = Object.entries(s.phases).map(([e, t]) => ({
49762
49782
  value: e,
49763
49783
  label: t
49764
- })), ae = [
49784
+ })), se = [
49765
49785
  {
49766
49786
  value: "none",
49767
49787
  label: "不参与"
@@ -49774,7 +49794,7 @@ var hU = /*#__PURE__*/ XH({
49774
49794
  value: "online",
49775
49795
  label: "在线 AI · 由人代发"
49776
49796
  }
49777
- ], oe = /* @__PURE__ */ F(!1), se = /* @__PURE__ */ F(null), ce = Z(() => !["preparing", "paused"].includes(o.value.room?.phase)), le = /* @__PURE__ */ F(null), ue = /* @__PURE__ */ F(null), de = /* @__PURE__ */ F(null), fe = /* @__PURE__ */ F(""), pe = c("turn-expert-select"), me = c("turn-question-input"), he = [{
49797
+ ], ce = /* @__PURE__ */ F(!1), le = /* @__PURE__ */ F(null), ue = Z(() => !["preparing", "paused"].includes(o.value.room?.phase)), de = /* @__PURE__ */ F(null), fe = /* @__PURE__ */ F(null), pe = /* @__PURE__ */ F(null), me = /* @__PURE__ */ F(""), he = c("turn-expert-select"), ge = c("turn-question-input"), N = [{
49778
49798
  value: "channel",
49779
49799
  title: "协作频道",
49780
49800
  description: "深灰界面 · 房间导航 · 成员侧栏"
@@ -49783,61 +49803,61 @@ var hU = /*#__PURE__*/ XH({
49783
49803
  title: "协作频道 · 浅色",
49784
49804
  description: "纯白界面 · 中性灰阶 · 清晰阅读"
49785
49805
  }];
49786
- function ge(e) {
49806
+ function _e(e) {
49787
49807
  return `topic-${e}-${e === "host" || e === "phase" ? "select" : "input"}`;
49788
49808
  }
49789
- async function N() {
49790
- se.value?.settle();
49809
+ async function ve() {
49810
+ le.value?.settle();
49791
49811
  let e = n.value === "create" ? "create" : n.value === "edit" ? "save_topic" : "schedule";
49792
49812
  if (e === "create") {
49793
49813
  let r = t.targetFolder?.id ?? null, i = o.value.launch.scheduler || {}, a = Object.values(o.value.experts["new-expert-modes"] || {}).includes("cli") || o.value.launch.available && !!(i.enabled && i.provider && i.model && i.api_key_ref);
49794
49814
  a || (n.value = ""), await l(e, r) && a && (n.value = "");
49795
49815
  } else await l(e) && (n.value = "");
49796
49816
  }
49797
- function _e(e) {
49798
- le.value = e, n.value = "";
49817
+ function ye(e) {
49818
+ de.value = e, n.value = "";
49799
49819
  }
49800
- function ve() {
49801
- le.value &&= (s.theme(le.value), null);
49820
+ function be() {
49821
+ de.value &&= (s.theme(de.value), null);
49802
49822
  }
49803
- function ye(e) {
49823
+ function xe(e) {
49804
49824
  let t = e.target.closest("[data-preview-attachment]");
49805
- t && (e.stopPropagation(), ue.value = {
49825
+ t && (e.stopPropagation(), fe.value = {
49806
49826
  room_id: t.dataset.attachmentRoom,
49807
49827
  id: t.dataset.previewAttachment
49808
49828
  }, n.value = "");
49809
49829
  }
49810
- function be() {
49811
- if (ve(), !ue.value) return;
49812
- let e = ue.value;
49813
- ue.value = null, l("preview_attachment", e);
49830
+ function Se() {
49831
+ if (be(), !fe.value) return;
49832
+ let e = fe.value;
49833
+ fe.value = null, l("preview_attachment", e);
49814
49834
  }
49815
49835
  R(() => [n.value, t.detailId], async ([e, t], n, r) => {
49816
49836
  if (e !== "message" || !t || !o.value.room) return;
49817
49837
  let i = !1;
49818
49838
  r(() => {
49819
49839
  i = !0;
49820
- }), de.value = null, fe.value = "";
49840
+ }), pe.value = null, me.value = "";
49821
49841
  try {
49822
49842
  let e = await s.request(`/api/rooms/${o.value.room.id}/messages/${t}`);
49823
- i || (de.value = e);
49843
+ i || (pe.value = e);
49824
49844
  } catch (e) {
49825
- i || (fe.value = e.message);
49845
+ i || (me.value = e.message);
49826
49846
  }
49827
49847
  });
49828
- async function xe() {
49848
+ async function Ce() {
49829
49849
  try {
49830
- de.value = await s.request(`/api/rooms/${o.value.room.id}/messages/${de.value.reply_to}`);
49850
+ pe.value = await s.request(`/api/rooms/${o.value.room.id}/messages/${pe.value.reply_to}`);
49831
49851
  } catch (e) {
49832
- fe.value = e.message;
49852
+ me.value = e.message;
49833
49853
  }
49834
49854
  }
49835
- let Se = (e) => e.preventDefault();
49855
+ let we = (e) => e.preventDefault();
49836
49856
  return (t, c) => {
49837
- let x = YV, S = bH, le = MA, ue = zV, ve = sA, Ce = HV, we = jq, Te = WV, Ee = YH;
49838
- return U(), G(Ee, {
49857
+ let x = YV, S = bH, de = MA, fe = zV, be = sA, Te = HV, Ee = jq, De = WV, Oe = YH;
49858
+ return U(), G(Oe, {
49839
49859
  open: d.value,
49840
- "onUpdate:open": c[25] ||= (e) => d.value = e,
49860
+ "onUpdate:open": c[28] ||= (e) => d.value = e,
49841
49861
  title: f[a.value] || "讨论",
49842
49862
  description: p[a.value],
49843
49863
  ui: {
@@ -49857,10 +49877,10 @@ var hU = /*#__PURE__*/ XH({
49857
49877
  body: "dialog-body"
49858
49878
  },
49859
49879
  content: a.value === "create" ? {
49860
- onPointerDownOutside: Se,
49861
- onInteractOutside: Se
49880
+ onPointerDownOutside: we,
49881
+ onInteractOutside: we
49862
49882
  } : void 0,
49863
- "onAfter:leave": be
49883
+ "onAfter:leave": Se
49864
49884
  }, {
49865
49885
  body: L(() => [a.value === "archives" ? (U(), W("section", tX, [
49866
49886
  K("div", nX, [
@@ -49879,7 +49899,7 @@ var hU = /*#__PURE__*/ XH({
49879
49899
  icon: "i-lucide-list-filter",
49880
49900
  "aria-label": "筛选房间内容"
49881
49901
  }, null, 8, ["modelValue"]),
49882
- q(le, {
49902
+ q(de, {
49883
49903
  label: `全部删除(${v.value.length})`,
49884
49904
  icon: "i-lucide-trash-2",
49885
49905
  color: "error",
@@ -49894,14 +49914,14 @@ var hU = /*#__PURE__*/ XH({
49894
49914
  ]),
49895
49915
  b.value && v.value.length ? (U(), W("div", rX, [
49896
49916
  K("span", null, "将永久删除当前列表中的 " + P(v.value.length) + " 个房间及其全部记录,无法撤销。", 1),
49897
- q(le, {
49917
+ q(de, {
49898
49918
  label: "取消",
49899
49919
  color: "neutral",
49900
49920
  variant: "ghost",
49901
49921
  size: "xs",
49902
49922
  onClick: c[3] ||= (e) => b.value = !1
49903
49923
  }),
49904
- q(le, {
49924
+ q(de, {
49905
49925
  label: "全部删除",
49906
49926
  color: "error",
49907
49927
  size: "xs",
@@ -49918,10 +49938,10 @@ var hU = /*#__PURE__*/ XH({
49918
49938
  disabled: !!I(u),
49919
49939
  onClick: (t) => T(e)
49920
49940
  }, P(e.title), 9, lX), K("small", null, [e.created_at ? (U(), W("span", uX, [
49921
- c[26] ||= J("创建于 ", -1),
49941
+ c[29] ||= J("创建于 ", -1),
49922
49942
  K("time", { datetime: e.created_at }, P(C(e.created_at)), 9, dX),
49923
- c[27] ||= J(" · ", -1)
49924
- ])) : Y("", !0), J(P(e.message_count) + " 条消息", 1)])]), K("div", fX, [q(le, {
49943
+ c[30] ||= J(" · ", -1)
49944
+ ])) : Y("", !0), J(P(e.message_count) + " 条消息", 1)])]), K("div", fX, [q(de, {
49925
49945
  "aria-label": `彻底删除 ${e.title}`,
49926
49946
  title: "彻底删除",
49927
49947
  icon: "i-lucide-trash-2",
@@ -49937,7 +49957,7 @@ var hU = /*#__PURE__*/ XH({
49937
49957
  "aria-label",
49938
49958
  "disabled",
49939
49959
  "onClick"
49940
- ]), q(le, {
49960
+ ]), q(de, {
49941
49961
  label: "恢复",
49942
49962
  "aria-label": `恢复 ${e.title}`,
49943
49963
  color: "neutral",
@@ -49955,14 +49975,14 @@ var hU = /*#__PURE__*/ XH({
49955
49975
  "onClick"
49956
49976
  ])])]), y.value === e.id ? (U(), W("div", pX, [
49957
49977
  K("span", null, "永久删除「" + P(e.title) + "」及其全部记录,无法撤销。", 1),
49958
- q(le, {
49978
+ q(de, {
49959
49979
  label: "取消",
49960
49980
  color: "neutral",
49961
49981
  variant: "ghost",
49962
49982
  size: "xs",
49963
49983
  onClick: c[4] ||= (e) => y.value = null
49964
49984
  }),
49965
- q(le, {
49985
+ q(de, {
49966
49986
  label: "删除",
49967
49987
  color: "error",
49968
49988
  size: "xs",
@@ -49973,24 +49993,51 @@ var hU = /*#__PURE__*/ XH({
49973
49993
  ])) : a.value === "delete-folder" ? (U(), W("form", {
49974
49994
  key: 1,
49975
49995
  class: "dialog-form",
49976
- onSubmit: uu(ne, ["prevent"])
49977
- }, [K("p", hX, "移除「" + P(e.targetFolder?.name) + "」后,房间不再归属文件夹,所有消息和存档状态都会保留。", 1), K("div", gX, [q(le, {
49996
+ onSubmit: c[7] ||= uu((e) => re(!1), ["prevent"])
49997
+ }, [
49998
+ K("p", hX, "仅移除「" + P(e.targetFolder?.name) + "」时,房间变为未分组,所有消息和存档状态都会保留。", 1),
49999
+ ne.value.length ? (U(), W("p", gX, "也可以连同其中的 " + P(ne.value.length) + " 个房间(含已存档)一起永久删除,无法撤销。", 1)) : Y("", !0),
50000
+ K("div", _X, [
50001
+ q(de, {
50002
+ label: "取消",
50003
+ color: "neutral",
50004
+ variant: "ghost",
50005
+ onClick: c[5] ||= (e) => n.value = ""
50006
+ }),
50007
+ ne.value.length ? (U(), G(de, {
50008
+ key: 0,
50009
+ label: `连同 ${ne.value.length} 个房间删除`,
50010
+ color: "error",
50011
+ variant: "soft",
50012
+ onClick: c[6] ||= (e) => re(!0)
50013
+ }, null, 8, ["label"])) : Y("", !0),
50014
+ q(de, {
50015
+ type: "submit",
50016
+ label: "仅移除文件夹",
50017
+ color: "neutral",
50018
+ variant: "solid"
50019
+ })
50020
+ ])
50021
+ ], 32)) : a.value === "archive-folder" ? (U(), W("form", {
50022
+ key: 2,
50023
+ class: "dialog-form",
50024
+ onSubmit: uu(ie, ["prevent"])
50025
+ }, [K("p", vX, "存档「" + P(e.targetFolder?.name) + "」中的 " + P(ne.value.filter((e) => !e.archived).length) + " 个房间,文件夹保留。存档后可在侧栏「已存档」中查阅与恢复;尚未收束的讨论会暂停。", 1), K("div", yX, [q(de, {
49978
50026
  label: "取消",
49979
50027
  color: "neutral",
49980
50028
  variant: "ghost",
49981
- onClick: c[5] ||= (e) => n.value = ""
49982
- }), q(le, {
50029
+ onClick: c[8] ||= (e) => n.value = ""
50030
+ }), q(de, {
49983
50031
  type: "submit",
49984
- label: "移除文件夹",
49985
- color: "neutral",
49986
- variant: "solid"
50032
+ label: "存档全部房间",
50033
+ color: "primary"
49987
50034
  })])], 32)) : A.value ? (U(), W("form", {
49988
- key: 2,
50035
+ key: 3,
49989
50036
  class: "dialog-form",
49990
50037
  onSubmit: uu(te, ["prevent"])
49991
50038
  }, [q(x, {
49992
50039
  modelValue: k.value,
49993
- "onUpdate:modelValue": c[6] ||= (e) => k.value = e,
50040
+ "onUpdate:modelValue": c[9] ||= (e) => k.value = e,
49994
50041
  icon: "i-lucide-folder",
49995
50042
  "aria-label": a.value === "folder" ? "新文件夹名称" : "文件夹名称",
49996
50043
  placeholder: "文件夹名称",
@@ -50000,17 +50047,17 @@ var hU = /*#__PURE__*/ XH({
50000
50047
  class: "w-full",
50001
50048
  autocomplete: "off",
50002
50049
  readonly: !!I(u),
50003
- onKeydown: c[7] ||= fu(uu((e) => !e.isComposing && te(), ["prevent"]), ["enter"])
50050
+ onKeydown: c[10] ||= fu(uu((e) => !e.isComposing && te(), ["prevent"]), ["enter"])
50004
50051
  }, null, 8, [
50005
50052
  "modelValue",
50006
50053
  "aria-label",
50007
50054
  "readonly"
50008
- ]), K("div", _X, [q(le, {
50055
+ ]), K("div", bX, [q(de, {
50009
50056
  label: "取消",
50010
50057
  color: "neutral",
50011
50058
  variant: "ghost",
50012
- onClick: c[8] ||= (e) => n.value = ""
50013
- }), q(le, {
50059
+ onClick: c[11] ||= (e) => n.value = ""
50060
+ }), q(de, {
50014
50061
  type: "submit",
50015
50062
  label: a.value === "folder" ? "创建文件夹" : "保存名称",
50016
50063
  class: "channel-primary-button",
@@ -50026,22 +50073,22 @@ var hU = /*#__PURE__*/ XH({
50026
50073
  "restore",
50027
50074
  "delete"
50028
50075
  ].includes(a.value) ? (U(), W("form", {
50029
- key: 3,
50076
+ key: 4,
50030
50077
  class: "dialog-form",
50031
50078
  onSubmit: uu(ee, ["prevent"])
50032
50079
  }, [
50033
- K("p", vX, [J(P(e.targetRoom?.title) + " ", 1), K("span", null, "· " + P(e.targetRoom?.message_count) + " 条消息", 1)]),
50034
- a.value === "archive" ? (U(), W("p", yX, "存档后可在侧栏「已存档」中查阅与恢复。已有发言安排会保留;专家需在下次检查时停止自己的定时任务。")) : Y("", !0),
50035
- a.value === "restore" ? (U(), W("p", bX, "恢复不会自动继续讨论;需要继续时,在主持设置中调整阶段。")) : Y("", !0),
50036
- a.value === "delete" ? (U(), W("p", xX, "消息、共识和发言安排将一起删除,无法撤销。")) : Y("", !0),
50037
- a.value === "rename" ? (U(), G(ue, {
50080
+ K("p", xX, [J(P(e.targetRoom?.title) + " ", 1), K("span", null, "· " + P(e.targetRoom?.message_count) + " 条消息", 1)]),
50081
+ a.value === "archive" ? (U(), W("p", SX, "存档后可在侧栏「已存档」中查阅与恢复。已有发言安排会保留;专家需在下次检查时停止自己的定时任务。")) : Y("", !0),
50082
+ a.value === "restore" ? (U(), W("p", CX, "恢复不会自动继续讨论;需要继续时,在主持设置中调整阶段。")) : Y("", !0),
50083
+ a.value === "delete" ? (U(), W("p", wX, "消息、共识和发言安排将一起删除,无法撤销。")) : Y("", !0),
50084
+ a.value === "rename" ? (U(), G(fe, {
50038
50085
  key: 3,
50039
50086
  label: "房间名称",
50040
50087
  required: ""
50041
50088
  }, {
50042
50089
  default: L(() => [q(x, {
50043
50090
  modelValue: O.value,
50044
- "onUpdate:modelValue": c[9] ||= (e) => O.value = e,
50091
+ "onUpdate:modelValue": c[12] ||= (e) => O.value = e,
50045
50092
  autofocus: "",
50046
50093
  maxlength: 80,
50047
50094
  required: "",
@@ -50050,12 +50097,12 @@ var hU = /*#__PURE__*/ XH({
50050
50097
  }, null, 8, ["modelValue"])]),
50051
50098
  _: 1
50052
50099
  })) : Y("", !0),
50053
- K("div", SX, [q(le, {
50100
+ K("div", TX, [q(de, {
50054
50101
  label: "取消",
50055
50102
  color: "neutral",
50056
50103
  variant: "ghost",
50057
- onClick: c[10] ||= (e) => n.value = ""
50058
- }), q(le, {
50104
+ onClick: c[13] ||= (e) => n.value = ""
50105
+ }), q(de, {
50059
50106
  type: "submit",
50060
50107
  label: a.value === "delete" ? "永久删除" : a.value === "rename" ? "保存名称" : f[a.value],
50061
50108
  color: a.value === "delete" ? "error" : "primary",
@@ -50067,30 +50114,30 @@ var hU = /*#__PURE__*/ XH({
50067
50114
  "loading",
50068
50115
  "disabled"
50069
50116
  ])])
50070
- ], 32)) : a.value === "settings" ? (U(), W("div", CX, [
50117
+ ], 32)) : a.value === "settings" ? (U(), W("div", EX, [
50071
50118
  q(eX),
50072
- c[32] ||= K("h3", { class: "account-appearance-heading" }, "外观", -1),
50073
- K("div", wX, [(U(), W(H, null, B(he, (e) => K("button", {
50119
+ c[35] ||= K("h3", { class: "account-appearance-heading" }, "外观", -1),
50120
+ K("div", DX, [(U(), W(H, null, B(N, (e) => K("button", {
50074
50121
  key: e.value,
50075
50122
  class: M({ chosen: I(o).theme === e.value }),
50076
50123
  "aria-pressed": I(o).theme === e.value,
50077
- onClick: (t) => _e(e.value)
50124
+ onClick: (t) => ye(e.value)
50078
50125
  }, [
50079
50126
  K("span", {
50080
50127
  class: M(["theme-preview", e.value]),
50081
50128
  "aria-hidden": "true"
50082
- }, [...c[28] ||= [K("i", { class: "theme-preview-side" }, null, -1), K("i", { class: "theme-preview-main" }, [
50129
+ }, [...c[31] ||= [K("i", { class: "theme-preview-side" }, null, -1), K("i", { class: "theme-preview-main" }, [
50083
50130
  K("b"),
50084
50131
  K("b"),
50085
50132
  K("b")
50086
50133
  ], -1)]], 2),
50087
50134
  K("span", null, [K("strong", null, P(e.title), 1), K("small", null, P(e.description), 1)]),
50088
- K("span", EX, [I(o).theme === e.value ? (U(), G(ve, {
50135
+ K("span", kX, [I(o).theme === e.value ? (U(), G(be, {
50089
50136
  key: 0,
50090
50137
  name: "i-lucide-check"
50091
50138
  })) : Y("", !0)])
50092
- ], 10, TX)), 64))]),
50093
- K("section", DX, [c[29] ||= K("h3", { id: "channel-reading-label" }, "对话宽度", -1), K("div", OX, [(U(!0), W(H, null, B(e.readingOptions, (e) => (U(), G(le, {
50139
+ ], 10, OX)), 64))]),
50140
+ K("section", AX, [c[32] ||= K("h3", { id: "channel-reading-label" }, "对话宽度", -1), K("div", jX, [(U(!0), W(H, null, B(e.readingOptions, (e) => (U(), G(de, {
50094
50141
  key: e.value,
50095
50142
  label: e.label,
50096
50143
  color: "neutral",
@@ -50104,9 +50151,9 @@ var hU = /*#__PURE__*/ XH({
50104
50151
  "aria-pressed",
50105
50152
  "onClick"
50106
50153
  ]))), 128))])]),
50107
- K("section", kX, [
50108
- c[30] ||= K("h3", { id: "channel-effects-label" }, "视觉效果", -1),
50109
- K("div", AX, [(U(!0), W(H, null, B(e.effectOptions, (e) => (U(), G(le, {
50154
+ K("section", MX, [
50155
+ c[33] ||= K("h3", { id: "channel-effects-label" }, "视觉效果", -1),
50156
+ K("div", NX, [(U(!0), W(H, null, B(e.effectOptions, (e) => (U(), G(de, {
50110
50157
  key: e.value,
50111
50158
  label: e.label,
50112
50159
  color: "neutral",
@@ -50120,90 +50167,90 @@ var hU = /*#__PURE__*/ XH({
50120
50167
  "aria-pressed",
50121
50168
  "onClick"
50122
50169
  ]))), 128))]),
50123
- c[31] ||= K("p", { class: "fine-print" }, "精简模式关闭毛玻璃模糊与多层阴影,适合配置较低或需要更流畅滚动的设备。", -1)
50170
+ c[34] ||= K("p", { class: "fine-print" }, "精简模式关闭毛玻璃模糊与多层阴影,适合配置较低或需要更流畅滚动的设备。", -1)
50124
50171
  ])
50125
50172
  ])) : a.value === "create" ? (U(), G(IY, {
50126
- key: 5,
50173
+ key: 6,
50127
50174
  "target-folder": e.targetFolder,
50128
- onSubmit: N,
50129
- onCancel: c[11] ||= (e) => n.value = ""
50175
+ onSubmit: ve,
50176
+ onCancel: c[14] ||= (e) => n.value = ""
50130
50177
  }, null, 8, ["target-folder"])) : a.value === "edit" ? (U(), W("form", {
50131
- key: 6,
50178
+ key: 7,
50132
50179
  class: "dialog-form",
50133
- onSubmit: uu(N, ["prevent"])
50180
+ onSubmit: uu(ve, ["prevent"])
50134
50181
  }, [
50135
- q(ue, {
50182
+ q(fe, {
50136
50183
  label: "话题名称",
50137
50184
  required: ""
50138
50185
  }, {
50139
50186
  default: L(() => [q(x, {
50140
- "model-value": I(o).fields[ge("title")],
50187
+ "model-value": I(o).fields[_e("title")],
50141
50188
  maxlength: 80,
50142
50189
  required: "",
50143
50190
  placeholder: "这次想讨论什么?",
50144
50191
  class: "w-full",
50145
- "onUpdate:modelValue": c[12] ||= (e) => I(s).write_field(ge("title"), e)
50192
+ "onUpdate:modelValue": c[15] ||= (e) => I(s).write_field(_e("title"), e)
50146
50193
  }, null, 8, ["model-value"])]),
50147
50194
  _: 1
50148
50195
  }),
50149
- q(ue, { label: "讨论目标" }, {
50150
- default: L(() => [q(Ce, {
50151
- "model-value": I(o).fields[ge("goal")],
50196
+ q(fe, { label: "讨论目标" }, {
50197
+ default: L(() => [q(Te, {
50198
+ "model-value": I(o).fields[_e("goal")],
50152
50199
  maxlength: 1e3,
50153
50200
  rows: 2,
50154
50201
  placeholder: "希望通过讨论解决的问题",
50155
50202
  class: "w-full",
50156
- "onUpdate:modelValue": c[13] ||= (e) => I(s).write_field(ge("goal"), e)
50203
+ "onUpdate:modelValue": c[16] ||= (e) => I(s).write_field(_e("goal"), e)
50157
50204
  }, null, 8, ["model-value"])]),
50158
50205
  _: 1
50159
50206
  }),
50160
- K("div", jX, [q(ue, { label: "主持人" }, {
50207
+ K("div", PX, [q(fe, { label: "主持人" }, {
50161
50208
  default: L(() => [q(S, {
50162
- "model-value": I(o).fields[ge("host")],
50163
- items: I(ie),
50209
+ "model-value": I(o).fields[_e("host")],
50210
+ items: I(ae),
50164
50211
  placeholder: "选择主持人",
50165
50212
  class: "w-full",
50166
- "onUpdate:modelValue": c[14] ||= (e) => I(s).write_field(ge("host"), e)
50213
+ "onUpdate:modelValue": c[17] ||= (e) => I(s).write_field(_e("host"), e)
50167
50214
  }, null, 8, ["model-value", "items"])]),
50168
50215
  _: 1
50169
- }), a.value === "edit" ? (U(), G(ue, {
50216
+ }), a.value === "edit" ? (U(), G(fe, {
50170
50217
  key: 0,
50171
50218
  label: "阶段"
50172
50219
  }, {
50173
50220
  default: L(() => [q(S, {
50174
- "model-value": I(o).fields[ge("phase")],
50175
- items: I(j),
50221
+ "model-value": I(o).fields[_e("phase")],
50222
+ items: I(oe),
50176
50223
  class: "w-full",
50177
- "onUpdate:modelValue": c[15] ||= (e) => I(s).write_field(ge("phase"), e)
50224
+ "onUpdate:modelValue": c[18] ||= (e) => I(s).write_field(_e("phase"), e)
50178
50225
  }, null, 8, ["model-value", "items"])]),
50179
50226
  _: 1
50180
50227
  })) : Y("", !0)]),
50181
- a.value === "edit" ? (U(), G(ue, {
50228
+ a.value === "edit" ? (U(), G(fe, {
50182
50229
  key: 0,
50183
50230
  label: "当前焦点"
50184
50231
  }, {
50185
50232
  default: L(() => [q(x, {
50186
- "model-value": I(o).fields[ge("focus")],
50233
+ "model-value": I(o).fields[_e("focus")],
50187
50234
  maxlength: 1e3,
50188
50235
  placeholder: "当前最需要回应的问题",
50189
50236
  class: "w-full",
50190
- "onUpdate:modelValue": c[16] ||= (e) => I(s).write_field(ge("focus"), e)
50237
+ "onUpdate:modelValue": c[19] ||= (e) => I(s).write_field(_e("focus"), e)
50191
50238
  }, null, 8, ["model-value"])]),
50192
50239
  _: 1
50193
50240
  })) : Y("", !0),
50194
- K("section", MX, [
50195
- c[33] ||= K("h3", null, "讨论上限", -1),
50241
+ K("section", FX, [
50242
+ c[36] ||= K("h3", null, "讨论上限", -1),
50196
50243
  q(bU, {
50197
50244
  ref_key: "topic_limits",
50198
- ref: se,
50199
- rounds: Number(I(o).fields[ge("limit-max_rounds")]),
50200
- minutes: Number(I(o).fields[ge("limit-max_minutes")]),
50201
- execution_minutes: I(o).fields[ge("limit-execution_minutes")],
50245
+ ref: le,
50246
+ rounds: Number(I(o).fields[_e("limit-max_rounds")]),
50247
+ minutes: Number(I(o).fields[_e("limit-max_minutes")]),
50248
+ execution_minutes: I(o).fields[_e("limit-execution_minutes")],
50202
50249
  execution: I(o).room?.runtime?.mode === "automatic",
50203
- disabled: ce.value,
50204
- "onUpdate:rounds": c[17] ||= (e) => I(s).write_field(ge("limit-max_rounds"), String(e)),
50205
- "onUpdate:minutes": c[18] ||= (e) => I(s).write_field(ge("limit-max_minutes"), String(e)),
50206
- "onUpdate:execution_minutes": c[19] ||= (e) => I(s).write_field(ge("limit-execution_minutes"), e)
50250
+ disabled: ue.value,
50251
+ "onUpdate:rounds": c[20] ||= (e) => I(s).write_field(_e("limit-max_rounds"), String(e)),
50252
+ "onUpdate:minutes": c[21] ||= (e) => I(s).write_field(_e("limit-max_minutes"), String(e)),
50253
+ "onUpdate:execution_minutes": c[22] ||= (e) => I(s).write_field(_e("limit-execution_minutes"), e)
50207
50254
  }, null, 8, [
50208
50255
  "rounds",
50209
50256
  "minutes",
@@ -50211,14 +50258,14 @@ var hU = /*#__PURE__*/ XH({
50211
50258
  "execution",
50212
50259
  "disabled"
50213
50260
  ]),
50214
- ce.value ? (U(), W("p", NX, "修改上限前,请先把阶段保存为“已暂停”。")) : Y("", !0)
50261
+ ue.value ? (U(), W("p", IX, "修改上限前,请先把阶段保存为“已暂停”。")) : Y("", !0)
50215
50262
  ]),
50216
- q(we, {
50217
- open: oe.value,
50218
- "onUpdate:open": c[20] ||= (e) => oe.value = e,
50263
+ q(Ee, {
50264
+ open: ce.value,
50265
+ "onUpdate:open": c[23] ||= (e) => ce.value = e,
50219
50266
  class: "advanced-fields"
50220
50267
  }, {
50221
- content: L(() => [K("div", PX, [
50268
+ content: L(() => [K("div", LX, [
50222
50269
  (U(), W(H, null, B([
50223
50270
  {
50224
50271
  key: "user_request",
@@ -50232,33 +50279,33 @@ var hU = /*#__PURE__*/ XH({
50232
50279
  key: "boundaries",
50233
50280
  label: "讨论边界"
50234
50281
  }
50235
- ], (e) => q(ue, {
50282
+ ], (e) => q(fe, {
50236
50283
  key: e.key,
50237
50284
  label: e.label
50238
50285
  }, {
50239
- default: L(() => [q(Ce, {
50240
- "model-value": I(o).fields[ge(e.key)],
50286
+ default: L(() => [q(Te, {
50287
+ "model-value": I(o).fields[_e(e.key)],
50241
50288
  maxlength: 4e3,
50242
50289
  rows: 2,
50243
50290
  class: "w-full",
50244
- "onUpdate:modelValue": (t) => I(s).write_field(ge(e.key), t)
50291
+ "onUpdate:modelValue": (t) => I(s).write_field(_e(e.key), t)
50245
50292
  }, null, 8, ["model-value", "onUpdate:modelValue"])]),
50246
50293
  _: 2
50247
50294
  }, 1032, ["label"])), 64)),
50248
- K("div", FX, [(U(!0), W(H, null, B(I(re), (e) => (U(), W("div", { key: e }, [K("label", null, P(e), 1), q(S, {
50249
- "model-value": I(o).experts[qX]?.[e] || "none",
50250
- items: ae,
50295
+ K("div", RX, [(U(!0), W(H, null, B(I(j), (e) => (U(), W("div", { key: e }, [K("label", null, P(e), 1), q(S, {
50296
+ "model-value": I(o).experts[XX]?.[e] || "none",
50297
+ items: se,
50251
50298
  "aria-label": `${e} 参与方式`,
50252
- "onUpdate:modelValue": (t) => I(s).write_expert(qX, e, t === "none" ? "" : t)
50299
+ "onUpdate:modelValue": (t) => I(s).write_expert(XX, e, t === "none" ? "" : t)
50253
50300
  }, null, 8, [
50254
50301
  "model-value",
50255
50302
  "aria-label",
50256
50303
  "onUpdate:modelValue"
50257
50304
  ])]))), 128))]),
50258
- c[34] ||= K("p", { class: "fine-print" }, "AI 主持人需设为本地 CLI,可同时作为专家参与。", -1)
50305
+ c[37] ||= K("p", { class: "fine-print" }, "AI 主持人需设为本地 CLI,可同时作为专家参与。", -1)
50259
50306
  ])]),
50260
- default: L(() => [q(le, {
50261
- "trailing-icon": oe.value ? "i-lucide-chevron-up" : "i-lucide-chevron-down",
50307
+ default: L(() => [q(de, {
50308
+ "trailing-icon": ce.value ? "i-lucide-chevron-up" : "i-lucide-chevron-down",
50262
50309
  label: "用户原文、背景、边界与参与专家",
50263
50310
  color: "neutral",
50264
50311
  variant: "ghost",
@@ -50267,41 +50314,41 @@ var hU = /*#__PURE__*/ XH({
50267
50314
  }, null, 8, ["trailing-icon"])]),
50268
50315
  _: 1
50269
50316
  }, 8, ["open"]),
50270
- K("div", IX, [q(le, {
50317
+ K("div", zX, [q(de, {
50271
50318
  label: "取消",
50272
50319
  color: "neutral",
50273
50320
  variant: "ghost",
50274
- onClick: c[21] ||= (e) => n.value = ""
50275
- }), q(le, {
50321
+ onClick: c[24] ||= (e) => n.value = ""
50322
+ }), q(de, {
50276
50323
  type: "submit",
50277
50324
  class: "channel-primary-button",
50278
50325
  label: "保存议题",
50279
50326
  loading: I(u) === "create" || I(u) === "save_topic"
50280
50327
  }, null, 8, ["loading"])])
50281
50328
  ], 32)) : a.value === "schedule" ? (U(), W("form", {
50282
- key: 7,
50329
+ key: 8,
50283
50330
  class: "dialog-form",
50284
- onSubmit: uu(N, ["prevent"])
50331
+ onSubmit: uu(ve, ["prevent"])
50285
50332
  }, [
50286
- q(ue, {
50333
+ q(fe, {
50287
50334
  label: "发言专家",
50288
50335
  required: ""
50289
50336
  }, {
50290
50337
  default: L(() => [q(S, {
50291
- modelValue: I(pe),
50292
- "onUpdate:modelValue": c[22] ||= (e) => /* @__PURE__ */ ln(pe) ? pe.value = e : null,
50338
+ modelValue: I(he),
50339
+ "onUpdate:modelValue": c[25] ||= (e) => /* @__PURE__ */ ln(he) ? he.value = e : null,
50293
50340
  items: Object.keys(I(o).room?.experts || {}),
50294
50341
  class: "w-full"
50295
50342
  }, null, 8, ["modelValue", "items"])]),
50296
50343
  _: 1
50297
50344
  }),
50298
- q(ue, {
50345
+ q(fe, {
50299
50346
  label: "需要回应的问题",
50300
50347
  required: ""
50301
50348
  }, {
50302
- default: L(() => [q(Ce, {
50303
- modelValue: I(me),
50304
- "onUpdate:modelValue": c[23] ||= (e) => /* @__PURE__ */ ln(me) ? me.value = e : null,
50349
+ default: L(() => [q(Te, {
50350
+ modelValue: I(ge),
50351
+ "onUpdate:modelValue": c[26] ||= (e) => /* @__PURE__ */ ln(ge) ? ge.value = e : null,
50305
50352
  rows: 5,
50306
50353
  maxlength: 1e3,
50307
50354
  required: "",
@@ -50310,48 +50357,48 @@ var hU = /*#__PURE__*/ XH({
50310
50357
  }, null, 8, ["modelValue"])]),
50311
50358
  _: 1
50312
50359
  }),
50313
- c[35] ||= K("p", { class: "fine-print" }, "创建后为待通知状态;由主持人实际联系专家。", -1),
50314
- K("div", LX, [q(le, {
50360
+ c[38] ||= K("p", { class: "fine-print" }, "创建后为待通知状态;由主持人实际联系专家。", -1),
50361
+ K("div", BX, [q(de, {
50315
50362
  label: "取消",
50316
50363
  variant: "ghost",
50317
50364
  color: "neutral",
50318
- onClick: c[24] ||= (e) => n.value = ""
50319
- }), q(le, {
50365
+ onClick: c[27] ||= (e) => n.value = ""
50366
+ }), q(de, {
50320
50367
  type: "submit",
50321
50368
  class: "channel-primary-button",
50322
50369
  label: "创建发言安排",
50323
50370
  loading: I(u) === "schedule"
50324
50371
  }, null, 8, ["loading"])])
50325
- ], 32)) : a.value === "message" ? (U(), W("div", RX, [fe.value ? (U(), W("p", zX, P(fe.value), 1)) : de.value ? (U(), W(H, { key: 1 }, [
50326
- K("div", BX, [
50327
- K("strong", null, P(I(s).display_name(de.value.author)), 1),
50328
- K("span", null, "#" + P(de.value.id), 1),
50329
- q(Te, {
50372
+ ], 32)) : a.value === "message" ? (U(), W("div", VX, [me.value ? (U(), W("p", HX, P(me.value), 1)) : pe.value ? (U(), W(H, { key: 1 }, [
50373
+ K("div", UX, [
50374
+ K("strong", null, P(I(s).display_name(pe.value.author)), 1),
50375
+ K("span", null, "#" + P(pe.value.id), 1),
50376
+ q(De, {
50330
50377
  color: "neutral",
50331
50378
  variant: "subtle"
50332
50379
  }, {
50333
- default: L(() => [J(P(I(s).sources[de.value.source]), 1)]),
50380
+ default: L(() => [J(P(I(s).sources[pe.value.source]), 1)]),
50334
50381
  _: 1
50335
50382
  })
50336
50383
  ]),
50337
- K("p", VX, P(I(s).provenance(de.value)) + " · " + P(new Date(de.value.created_at).toLocaleString("zh-CN")), 1),
50338
- de.value.summary ? (U(), W("section", HX, [K("small", null, "回答摘要 · " + P(I(s).display_name(de.value.summary_by)), 1), K("p", UX, P(de.value.summary), 1)])) : Y("", !0),
50339
- K("p", WX, P(de.value.text), 1),
50340
- de.value.attachments?.length ? (U(), W("div", {
50384
+ K("p", WX, P(I(s).provenance(pe.value)) + " · " + P(new Date(pe.value.created_at).toLocaleString("zh-CN")), 1),
50385
+ pe.value.summary ? (U(), W("section", GX, [K("small", null, "回答摘要 · " + P(I(s).display_name(pe.value.summary_by)), 1), K("p", KX, P(pe.value.summary), 1)])) : Y("", !0),
50386
+ K("p", qX, P(pe.value.text), 1),
50387
+ pe.value.attachments?.length ? (U(), W("div", {
50341
50388
  key: 1,
50342
- onClick: ye,
50343
- innerHTML: I(s).attachment_markup(de.value.attachments)
50344
- }, null, 8, GX)) : Y("", !0),
50345
- de.value.reply_to ? (U(), G(le, {
50389
+ onClick: xe,
50390
+ innerHTML: I(s).attachment_markup(pe.value.attachments)
50391
+ }, null, 8, JX)) : Y("", !0),
50392
+ pe.value.reply_to ? (U(), G(de, {
50346
50393
  key: 2,
50347
- label: `查看被回复的原文 #${de.value.reply_to}`,
50394
+ label: `查看被回复的原文 #${pe.value.reply_to}`,
50348
50395
  icon: "i-lucide-corner-up-left",
50349
50396
  variant: "outline",
50350
50397
  color: "neutral",
50351
50398
  class: "channel-surface-button",
50352
- onClick: xe
50399
+ onClick: Ce
50353
50400
  }, null, 8, ["label"])) : Y("", !0)
50354
- ], 64)) : (U(), W("p", KX, "正在读取原文…"))])) : Y("", !0)]),
50401
+ ], 64)) : (U(), W("p", YX, "正在读取原文…"))])) : Y("", !0)]),
50355
50402
  _: 1
50356
50403
  }, 8, [
50357
50404
  "open",
@@ -50362,7 +50409,7 @@ var hU = /*#__PURE__*/ XH({
50362
50409
  ]);
50363
50410
  };
50364
50411
  }
50365
- }, YX = {
50412
+ }, QX = {
50366
50413
  __name: "ContextMenuContent",
50367
50414
  props: {
50368
50415
  items: {
@@ -50657,7 +50704,7 @@ var hU = /*#__PURE__*/ XH({
50657
50704
  "disabled",
50658
50705
  "text-value",
50659
50706
  "class"
50660
- ]), q(YX, X({
50707
+ ]), q(QX, X({
50661
50708
  sub: "",
50662
50709
  class: r.ui?.content,
50663
50710
  ui: e.ui,
@@ -50768,7 +50815,7 @@ var hU = /*#__PURE__*/ XH({
50768
50815
  _: 3
50769
50816
  }, 16)], 64));
50770
50817
  }
50771
- }, XX = {
50818
+ }, $X = {
50772
50819
  slots: {
50773
50820
  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",
50774
50821
  viewport: "relative divide-y divide-default scroll-py-1 overflow-y-auto flex-1",
@@ -50956,7 +51003,7 @@ var hU = /*#__PURE__*/ XH({
50956
51003
  }
50957
51004
  ],
50958
51005
  defaultVariants: { size: "md" }
50959
- }, ZX = {
51006
+ }, eZ = {
50960
51007
  __name: "ContextMenu",
50961
51008
  props: {
50962
51009
  size: {
@@ -51026,7 +51073,7 @@ var hU = /*#__PURE__*/ XH({
51026
51073
  emits: ["update:open"],
51027
51074
  setup(e, { emit: t }) {
51028
51075
  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({
51029
- extend: XX,
51076
+ extend: $X,
51030
51077
  ...o.ui?.contextMenu || {}
51031
51078
  })({ size: a.size }));
51032
51079
  return (e, t) => (U(), G(I(iC), N(Ss(I(s))), {
@@ -51038,7 +51085,7 @@ var hU = /*#__PURE__*/ XH({
51038
51085
  }, {
51039
51086
  default: L(() => [V(e.$slots, "default")]),
51040
51087
  _: 3
51041
- }, 8, ["disabled", "class"])) : Y("", !0), q(YX, X({
51088
+ }, 8, ["disabled", "class"])) : Y("", !0), q(QX, X({
51042
51089
  class: u.value.content({ class: [!i.default && I(a).class, I(a).ui?.content] }),
51043
51090
  ui: u.value,
51044
51091
  "ui-override": I(a).ui
@@ -51068,47 +51115,47 @@ var hU = /*#__PURE__*/ XH({
51068
51115
  _: 3
51069
51116
  }, 16));
51070
51117
  }
51071
- }, QX = { class: "channel-directory-manager" }, $X = { class: "channel-directory-heading" }, eZ = ["aria-expanded"], tZ = { class: "channel-directory-actions" }, nZ = {
51118
+ }, tZ = { class: "channel-directory-manager" }, nZ = { class: "channel-directory-heading" }, rZ = ["aria-expanded"], iZ = { class: "channel-directory-actions" }, aZ = {
51072
51119
  "aria-label": "协作房间列表",
51073
51120
  class: "channel-room-list",
51074
51121
  "data-room-directory": ""
51075
- }, rZ = ["data-room-folder", "data-drag-folder"], iZ = [
51122
+ }, oZ = ["data-room-folder", "data-drag-folder"], sZ = [
51076
51123
  "disabled",
51077
51124
  "aria-label",
51078
51125
  "aria-expanded",
51079
51126
  "onKeydown",
51080
51127
  "onClick"
51081
- ], aZ = { class: "channel-folder-name" }, oZ = {
51128
+ ], cZ = { class: "channel-folder-name" }, lZ = {
51082
51129
  class: "channel-directory-count",
51083
51130
  "aria-hidden": "true"
51084
- }, sZ = { class: "channel-folder-actions" }, cZ = ["data-drop-folder"], lZ = {
51131
+ }, uZ = { class: "channel-folder-actions" }, dZ = ["data-drop-folder"], fZ = {
51085
51132
  key: 0,
51086
51133
  class: "channel-directory-empty",
51087
51134
  role: "status"
51088
- }, uZ = ["data-drag-room"], dZ = [
51135
+ }, pZ = ["data-drag-room"], mZ = [
51089
51136
  "aria-label",
51090
51137
  "disabled",
51091
51138
  "onKeydown"
51092
- ], fZ = [
51139
+ ], hZ = [
51093
51140
  "title",
51094
51141
  "aria-label",
51095
51142
  "aria-current",
51096
51143
  "onClick"
51097
- ], pZ = { class: "channel-room-actions" }, mZ = {
51144
+ ], gZ = { class: "channel-room-actions" }, _Z = {
51098
51145
  key: 0,
51099
51146
  class: "channel-directory-empty"
51100
- }, hZ = {
51147
+ }, vZ = {
51101
51148
  key: 0,
51102
51149
  class: "channel-archive-count"
51103
- }, gZ = {
51150
+ }, yZ = {
51104
51151
  key: 0,
51105
51152
  role: "status",
51106
51153
  class: "channel-directory-notice"
51107
- }, _Z = {
51154
+ }, bZ = {
51108
51155
  key: 1,
51109
51156
  role: "alert",
51110
51157
  class: "channel-directory-error"
51111
- }, vZ = {
51158
+ }, xZ = {
51112
51159
  __name: "ChannelDirectory",
51113
51160
  emits: [
51114
51161
  "select",
@@ -51117,6 +51164,7 @@ var hU = /*#__PURE__*/ XH({
51117
51164
  "create-folder",
51118
51165
  "manage-folder",
51119
51166
  "delete-folder",
51167
+ "archive-folder",
51120
51168
  "archives"
51121
51169
  ],
51122
51170
  setup(e, { emit: t }) {
@@ -51142,30 +51190,36 @@ var hU = /*#__PURE__*/ XH({
51142
51190
  { type: "separator" },
51143
51191
  {
51144
51192
  label: "导入房间…",
51145
- icon: "i-lucide-upload",
51193
+ icon: "i-lucide-download",
51146
51194
  disabled: r.value.backup_pending,
51147
- onSelect: () => f.value?.click()
51195
+ onSelect: () => m(null)
51148
51196
  },
51149
51197
  {
51150
51198
  label: "导出全部房间",
51151
- icon: "i-lucide-download",
51199
+ icon: "i-lucide-upload",
51152
51200
  disabled: r.value.backup_pending || !r.value.rooms.length,
51153
51201
  onSelect: () => a("backup_rooms", {
51154
51202
  ids: r.value.rooms.map((e) => e.id),
51155
51203
  name: "全部房间"
51156
51204
  })
51157
51205
  }
51158
- ]), f = /* @__PURE__ */ F(null);
51159
- function p(e) {
51206
+ ]), f = /* @__PURE__ */ F(null), p = null;
51207
+ function m(e) {
51208
+ p = e, f.value?.click();
51209
+ }
51210
+ function h(e) {
51160
51211
  let t = [...e.target.files];
51161
- e.target.value = "", t.length && a("import_rooms", t);
51212
+ e.target.value = "", t.length && a("import_rooms", {
51213
+ files: t,
51214
+ folder_id: p
51215
+ });
51162
51216
  }
51163
- let m = /* @__PURE__ */ F(!0), h = /* @__PURE__ */ F(v());
51217
+ let g = /* @__PURE__ */ F(!0), _ = /* @__PURE__ */ F(b());
51164
51218
  R(() => r.value.room?.id, () => {
51165
51219
  let e = r.value.room?.folder_id || "";
51166
- e && h.value.has(e) && y(e);
51220
+ e && _.value.has(e) && x(e);
51167
51221
  });
51168
- function g(e, t) {
51222
+ function v(e, t) {
51169
51223
  let i = r.value.directory_pending.includes("folder-order") || r.value.directory_pending.includes("create-folder");
51170
51224
  return [
51171
51225
  ...e.id ? [[{
@@ -51191,8 +51245,18 @@ var hU = /*#__PURE__*/ XH({
51191
51245
  direction: 1
51192
51246
  })
51193
51247
  }],
51194
- [_(e)],
51248
+ [{
51249
+ label: "导入房间…",
51250
+ icon: "i-lucide-download",
51251
+ disabled: e.pending || r.value.backup_pending,
51252
+ onSelect: () => m(e.id || null)
51253
+ }, y(e)],
51195
51254
  ...e.id ? [[{
51255
+ label: "存档文件夹",
51256
+ icon: "i-lucide-archive",
51257
+ disabled: e.pending || !e.rooms.length || e.rooms.some((e) => r.value.archive_pending.includes(e.id)),
51258
+ onSelect: () => n("archive-folder", e)
51259
+ }, {
51196
51260
  label: "移除文件夹",
51197
51261
  icon: "i-lucide-folder-minus",
51198
51262
  disabled: e.pending || i || r.value.directory_pending.includes(`folder-name:${e.id}`) || r.value.creating_room?.folder_id === e.id || r.value.rooms.some((t) => t.folder_id === e.id && r.value.folder_pending.includes(t.id)),
@@ -51200,11 +51264,11 @@ var hU = /*#__PURE__*/ XH({
51200
51264
  }]] : []
51201
51265
  ];
51202
51266
  }
51203
- function _(e) {
51267
+ function y(e) {
51204
51268
  let t = r.value.rooms.filter((t) => (t.folder_id || "") === e.id).map((e) => e.id);
51205
51269
  return {
51206
51270
  label: "导出文件夹",
51207
- icon: "i-lucide-download",
51271
+ icon: "i-lucide-upload",
51208
51272
  disabled: r.value.backup_pending || !t.length,
51209
51273
  onSelect: () => a("backup_rooms", {
51210
51274
  ids: t,
@@ -51212,21 +51276,21 @@ var hU = /*#__PURE__*/ XH({
51212
51276
  })
51213
51277
  };
51214
51278
  }
51215
- function v() {
51279
+ function b() {
51216
51280
  try {
51217
51281
  return new Set(JSON.parse(localStorage.getItem("ai-codiscuss-folders-collapsed") || "[]"));
51218
51282
  } catch {
51219
51283
  return /* @__PURE__ */ new Set();
51220
51284
  }
51221
51285
  }
51222
- function y(e) {
51223
- let t = new Set(h.value);
51224
- t.has(e) ? t.delete(e) : t.add(e), h.value = t;
51286
+ function x(e) {
51287
+ let t = new Set(_.value);
51288
+ t.has(e) ? t.delete(e) : t.add(e), _.value = t;
51225
51289
  try {
51226
51290
  localStorage.setItem("ai-codiscuss-folders-collapsed", JSON.stringify([...t]));
51227
51291
  } catch {}
51228
51292
  }
51229
- function b(e, t, i, s) {
51293
+ function S(e, t, i, s) {
51230
51294
  let c = r.value.directory_pending.includes("room-order"), l = e.id === r.value.room?.id;
51231
51295
  return [
51232
51296
  [
@@ -51254,7 +51318,7 @@ var hU = /*#__PURE__*/ XH({
51254
51318
  },
51255
51319
  {
51256
51320
  label: "导出对话",
51257
- icon: "i-lucide-download",
51321
+ icon: "i-lucide-upload",
51258
51322
  disabled: r.value.backup_pending || !!o.value,
51259
51323
  onSelect: () => a("backup", e.id)
51260
51324
  }
@@ -51322,8 +51386,8 @@ var hU = /*#__PURE__*/ XH({
51322
51386
  ];
51323
51387
  }
51324
51388
  return (e, t) => {
51325
- let u = MA, _ = sA, v = $V, x = CH, S = ZX;
51326
- return U(), W("div", QX, [
51389
+ let u = MA, p = sA, m = $V, y = CH, b = eZ;
51390
+ return U(), W("div", tZ, [
51327
51391
  q(u, {
51328
51392
  label: "新建对话",
51329
51393
  icon: "i-lucide-plus",
@@ -51332,13 +51396,13 @@ var hU = /*#__PURE__*/ XH({
51332
51396
  disabled: I(r).directory_pending.includes("create-room"),
51333
51397
  onClick: t[0] ||= (e) => n("create", null)
51334
51398
  }, null, 8, ["disabled"]),
51335
- K("div", $X, [K("button", {
51399
+ K("div", nZ, [K("button", {
51336
51400
  type: "button",
51337
51401
  class: "channel-section-toggle",
51338
- "aria-expanded": m.value,
51339
- onClick: t[1] ||= (e) => m.value = !m.value
51340
- }, [q(_, { name: m.value ? "i-lucide-chevron-down" : "i-lucide-chevron-right" }, null, 8, ["name"]), t[7] ||= J("协作房间", -1)], 8, eZ), K("div", tZ, [
51341
- q(v, { text: "新建文件夹" }, {
51402
+ "aria-expanded": g.value,
51403
+ onClick: t[1] ||= (e) => g.value = !g.value
51404
+ }, [q(p, { name: g.value ? "i-lucide-chevron-down" : "i-lucide-chevron-right" }, null, 8, ["name"]), t[7] ||= J("协作房间", -1)], 8, rZ), K("div", iZ, [
51405
+ q(m, { text: "新建文件夹" }, {
51342
51406
  default: L(() => [q(u, {
51343
51407
  icon: "i-lucide-plus",
51344
51408
  color: "neutral",
@@ -51350,7 +51414,7 @@ var hU = /*#__PURE__*/ XH({
51350
51414
  }, null, 8, ["disabled"])]),
51351
51415
  _: 1
51352
51416
  }),
51353
- q(x, {
51417
+ q(y, {
51354
51418
  items: d.value,
51355
51419
  content: {
51356
51420
  align: "end",
@@ -51376,17 +51440,17 @@ var hU = /*#__PURE__*/ XH({
51376
51440
  multiple: "",
51377
51441
  hidden: "",
51378
51442
  "aria-label": "选择房间备份",
51379
- onChange: p
51443
+ onChange: h
51380
51444
  }, null, 544)
51381
51445
  ])]),
51382
- vr(K("nav", nZ, [(U(!0), W(H, null, B(l.value, (e, s) => (U(), W("section", {
51446
+ vr(K("nav", aZ, [(U(!0), W(H, null, B(l.value, (e, s) => (U(), W("section", {
51383
51447
  key: e.order_id,
51384
51448
  class: "channel-folder-section",
51385
51449
  "data-room-folder": e.id,
51386
51450
  "data-drag-folder": e.order_id
51387
51451
  }, [e.id ? (U(), W("div", {
51388
51452
  key: 0,
51389
- class: M(["channel-folder-row", { active: h.value.has(e.id) && I(r).room?.folder_id === e.id }])
51453
+ class: M(["channel-folder-row", { active: _.value.has(e.id) && I(r).room?.folder_id === e.id }])
51390
51454
  }, [K("button", {
51391
51455
  class: "channel-folder-heading",
51392
51456
  "data-drop-folder": "",
@@ -51394,7 +51458,7 @@ var hU = /*#__PURE__*/ XH({
51394
51458
  type: "button",
51395
51459
  disabled: e.pending,
51396
51460
  "aria-label": `${e.name} ${e.rooms.length}`,
51397
- "aria-expanded": !h.value.has(e.id),
51461
+ "aria-expanded": !_.value.has(e.id),
51398
51462
  title: "拖动文件夹排序;上下方向键移动",
51399
51463
  onPointerdown: t[3] ||= (e) => !I(o) && I(i).start_drag(e),
51400
51464
  onKeydown: [fu(uu((t) => I(a)("move_folder", {
@@ -51404,13 +51468,13 @@ var hU = /*#__PURE__*/ XH({
51404
51468
  id: e.order_id,
51405
51469
  direction: 1
51406
51470
  }), ["prevent"]), ["down"])],
51407
- onClick: (t) => y(e.id)
51471
+ onClick: (t) => x(e.id)
51408
51472
  }, [
51409
- q(_, { name: h.value.has(e.id) ? "i-lucide-chevron-right" : "i-lucide-chevron-down" }, null, 8, ["name"]),
51410
- q(_, { name: "i-lucide-folder" }),
51411
- K("span", aZ, P(e.name), 1),
51412
- K("small", oZ, P(e.pending ? "保存中" : e.rooms.length), 1)
51413
- ], 40, iZ), K("div", sZ, [q(v, { text: `在${e.name}中新建对话` }, {
51473
+ q(p, { name: _.value.has(e.id) ? "i-lucide-chevron-right" : "i-lucide-chevron-down" }, null, 8, ["name"]),
51474
+ q(p, { name: "i-lucide-folder" }),
51475
+ K("span", cZ, P(e.name), 1),
51476
+ K("small", lZ, P(e.pending ? "保存中" : e.rooms.length), 1)
51477
+ ], 40, sZ), K("div", uZ, [q(m, { text: `在${e.name}中新建对话` }, {
51414
51478
  default: L(() => [q(u, {
51415
51479
  icon: "i-lucide-square-pen",
51416
51480
  "aria-label": `在${e.name}中新建对话`,
@@ -51425,8 +51489,8 @@ var hU = /*#__PURE__*/ XH({
51425
51489
  "onClick"
51426
51490
  ])]),
51427
51491
  _: 2
51428
- }, 1032, ["text"]), q(x, {
51429
- items: g(e, s),
51492
+ }, 1032, ["text"]), q(y, {
51493
+ items: v(e, s),
51430
51494
  content: {
51431
51495
  align: "start",
51432
51496
  side: "bottom",
@@ -51443,13 +51507,13 @@ var hU = /*#__PURE__*/ XH({
51443
51507
  variant: "ghost"
51444
51508
  }, null, 8, ["aria-label"])]),
51445
51509
  _: 2
51446
- }, 1032, ["items"])])], 2)) : Y("", !0), !e.id || !h.value.has(e.id) ? (U(), W("div", {
51510
+ }, 1032, ["items"])])], 2)) : Y("", !0), !e.id || !_.value.has(e.id) ? (U(), W("div", {
51447
51511
  key: 1,
51448
51512
  class: M(e.id ? "channel-folder-rooms" : "channel-root-rooms"),
51449
51513
  "data-drop-folder": e.id ? void 0 : ""
51450
- }, [I(r).creating_room && (I(r).creating_room.folder_id || "") === e.id ? (U(), W("p", lZ, "正在创建:" + P(I(r).creating_room.title), 1)) : Y("", !0), (U(!0), W(H, null, B(e.rooms, (s, c) => (U(), G(S, {
51514
+ }, [I(r).creating_room && (I(r).creating_room.folder_id || "") === e.id ? (U(), W("p", fZ, "正在创建:" + P(I(r).creating_room.title), 1)) : Y("", !0), (U(!0), W(H, null, B(e.rooms, (s, c) => (U(), G(b, {
51451
51515
  key: s.id,
51452
- items: b(s, c, s.folder_id || null, e.rooms.length),
51516
+ items: S(s, c, s.folder_id || null, e.rooms.length),
51453
51517
  ui: { content: "channel-menu channel-topic-menu" }
51454
51518
  }, {
51455
51519
  default: L(() => [K("div", {
@@ -51472,7 +51536,7 @@ var hU = /*#__PURE__*/ XH({
51472
51536
  direction: 1,
51473
51537
  folder_id: s.folder_id || null
51474
51538
  }), ["prevent"]), ["down"])]
51475
- }, [q(_, { name: "i-lucide-grip-vertical" })], 40, dZ),
51539
+ }, [q(p, { name: "i-lucide-grip-vertical" })], 40, mZ),
51476
51540
  K("button", {
51477
51541
  class: "channel-room-select",
51478
51542
  "data-drag-title": "",
@@ -51481,8 +51545,8 @@ var hU = /*#__PURE__*/ XH({
51481
51545
  "aria-current": s.id === I(r).room?.id ? "page" : void 0,
51482
51546
  onPointerdown: t[5] ||= (e) => !I(o) && I(i).start_drag(e),
51483
51547
  onClick: (e) => n("select", s.id)
51484
- }, [K("span", null, P(s.title), 1)], 40, fZ),
51485
- K("div", pZ, [q(v, {
51548
+ }, [K("span", null, P(s.title), 1)], 40, hZ),
51549
+ K("div", gZ, [q(m, {
51486
51550
  text: s.archived ? "恢复房间" : "存档房间",
51487
51551
  ui: { content: "channel-topic-tooltip" }
51488
51552
  }, {
@@ -51504,8 +51568,8 @@ var hU = /*#__PURE__*/ XH({
51504
51568
  "onClick"
51505
51569
  ])]),
51506
51570
  _: 2
51507
- }, 1032, ["text"]), q(x, {
51508
- items: b(s, c, s.folder_id || null, e.rooms.length),
51571
+ }, 1032, ["text"]), q(y, {
51572
+ items: S(s, c, s.folder_id || null, e.rooms.length),
51509
51573
  content: {
51510
51574
  align: "start",
51511
51575
  side: "bottom",
@@ -51523,9 +51587,9 @@ var hU = /*#__PURE__*/ XH({
51523
51587
  }, null, 8, ["aria-label"])]),
51524
51588
  _: 2
51525
51589
  }, 1032, ["items"])])
51526
- ], 10, uZ)]),
51590
+ ], 10, pZ)]),
51527
51591
  _: 2
51528
- }, 1032, ["items"]))), 128))], 10, cZ)) : Y("", !0)], 8, rZ))), 128)), s.value.length ? Y("", !0) : (U(), W("p", mZ, "暂无协作房间"))], 512), [[Vc, m.value]]),
51592
+ }, 1032, ["items"]))), 128))], 10, dZ)) : Y("", !0)], 8, oZ))), 128)), s.value.length ? Y("", !0) : (U(), W("p", _Z, "暂无协作房间"))], 512), [[Vc, g.value]]),
51529
51593
  vr(q(u, {
51530
51594
  icon: "i-lucide-archive",
51531
51595
  color: "neutral",
@@ -51534,59 +51598,59 @@ var hU = /*#__PURE__*/ XH({
51534
51598
  "aria-haspopup": "dialog",
51535
51599
  onClick: t[6] ||= (e) => n("archives")
51536
51600
  }, {
51537
- default: L(() => [t[8] ||= K("span", { class: "channel-archive-label" }, "已存档", -1), c.value ? (U(), W("small", hZ, P(c.value), 1)) : Y("", !0)]),
51601
+ default: L(() => [t[8] ||= K("span", { class: "channel-archive-label" }, "已存档", -1), c.value ? (U(), W("small", vZ, P(c.value), 1)) : Y("", !0)]),
51538
51602
  _: 1
51539
- }, 512), [[Vc, m.value]]),
51540
- I(r).directory_notice ? (U(), W("p", gZ, P(I(r).directory_notice), 1)) : Y("", !0),
51541
- I(r).directory_error ? (U(), W("p", _Z, P(I(r).directory_error), 1)) : Y("", !0)
51603
+ }, 512), [[Vc, g.value]]),
51604
+ I(r).directory_notice ? (U(), W("p", yZ, P(I(r).directory_notice), 1)) : Y("", !0),
51605
+ I(r).directory_error ? (U(), W("p", bZ, P(I(r).directory_error), 1)) : Y("", !0)
51542
51606
  ]);
51543
51607
  };
51544
51608
  }
51545
- }, yZ = {
51609
+ }, SZ = {
51546
51610
  key: 0,
51547
51611
  class: "pb-invite",
51548
51612
  "aria-label": "启动手动成员"
51549
- }, bZ = { class: "pb-invite-lead" }, xZ = {
51613
+ }, CZ = { class: "pb-invite-lead" }, wZ = {
51550
51614
  key: 0,
51551
51615
  role: "alert",
51552
51616
  class: "pb-free-note is-error"
51553
- }, SZ = { class: "pb-invite-launches" }, CZ = { class: "pb-invite-footer" }, wZ = {
51617
+ }, TZ = { class: "pb-invite-launches" }, EZ = { class: "pb-invite-footer" }, DZ = {
51554
51618
  class: "pb-invite-library",
51555
51619
  role: "group",
51556
51620
  "aria-label": "选择 AI(可多选)"
51557
- }, TZ = [
51621
+ }, OZ = [
51558
51622
  "aria-pressed",
51559
51623
  "title",
51560
51624
  "onClick"
51561
- ], EZ = {
51625
+ ], kZ = {
51562
51626
  key: 0,
51563
51627
  class: "pb-invite-break",
51564
51628
  "aria-hidden": "true"
51565
- }, DZ = {
51629
+ }, AZ = {
51566
51630
  key: 1,
51567
51631
  class: "pb-invite-label"
51568
- }, OZ = [
51632
+ }, jZ = [
51569
51633
  "title",
51570
51634
  "aria-label",
51571
51635
  "onClick"
51572
- ], kZ = {
51636
+ ], MZ = {
51573
51637
  key: 0,
51574
51638
  class: "pb-invite-cards"
51575
- }, AZ = {
51639
+ }, NZ = {
51576
51640
  key: 0,
51577
51641
  class: "fine-print"
51578
- }, jZ = ["aria-hidden"], MZ = {
51642
+ }, PZ = ["aria-hidden"], FZ = {
51579
51643
  key: 2,
51580
51644
  class: "pb-invite-empty"
51581
- }, NZ = {
51645
+ }, IZ = {
51582
51646
  key: 3,
51583
51647
  role: "alert",
51584
51648
  class: "fine-print"
51585
- }, PZ = {
51649
+ }, LZ = {
51586
51650
  key: 4,
51587
51651
  role: "alert",
51588
51652
  class: "pb-free-note is-error"
51589
- }, FZ = { class: "pb-invite-footer" }, IZ = 2e3, LZ = /*#__PURE__*/ XH({
51653
+ }, RZ = { class: "pb-invite-footer" }, zZ = 2e3, BZ = /*#__PURE__*/ XH({
51590
51654
  __name: "InviteDialog",
51591
51655
  props: /*@__PURE__*/ Fa({ description: {
51592
51656
  type: String,
@@ -51604,7 +51668,7 @@ var hU = /*#__PURE__*/ XH({
51604
51668
  async function u(e) {
51605
51669
  clearTimeout(l), c.value = "", await i("copy_member_launch", e) && (c.value = e, l = setTimeout(() => {
51606
51670
  c.value = "";
51607
- }, IZ));
51671
+ }, zZ));
51608
51672
  }
51609
51673
  let d = /* @__PURE__ */ F([]), f = 0, p = /* @__PURE__ */ F([]), m = /* @__PURE__ */ F(!1), h = Z(() => Object.keys(r.launch_clients)), g = Z(() => n.value && r.expert_presets()), _ = Z(() => (o.value.members || []).map((e) => e.name)), v = (e) => _.value.filter((t) => r.platform_of(t) === e).length, y = Z(() => [...d.value.filter((e) => e.mode !== "manual"), ...d.value.filter((e) => e.mode === "manual")]), b = Z(() => {
51610
51674
  let e = /* @__PURE__ */ new Set([..._.value, ...d.value.filter((e) => e.preset).map((e) => e.name)]);
@@ -51677,10 +51741,10 @@ var hU = /*#__PURE__*/ XH({
51677
51741
  body: "dialog-body"
51678
51742
  }
51679
51743
  }, {
51680
- body: L(() => [p.value.length && !d.value.length ? (U(), W("div", yZ, [
51681
- K("p", bZ, P(p.value.length > 1 ? `${p.value.length} 位手动成员已加入` : "手动成员已加入") + ",把启动指令交给各自的 AI 会话,注册后才算到场。", 1),
51682
- I(n).access?.error ? (U(), W("p", xZ, P(I(n).access.error), 1)) : Y("", !0),
51683
- K("ul", SZ, [(U(!0), W(H, null, B(p.value, (e) => (U(), W("li", { key: e }, [
51744
+ body: L(() => [p.value.length && !d.value.length ? (U(), W("div", SZ, [
51745
+ K("p", CZ, P(p.value.length > 1 ? `${p.value.length} 位手动成员已加入` : "手动成员已加入") + ",把启动指令交给各自的 AI 会话,注册后才算到场。", 1),
51746
+ I(n).access?.error ? (U(), W("p", wZ, P(I(n).access.error), 1)) : Y("", !0),
51747
+ K("ul", TZ, [(U(!0), W(H, null, B(p.value, (e) => (U(), W("li", { key: e }, [
51684
51748
  q(l, {
51685
51749
  src: I(r).identities[I(r).platform_of(e)]?.icon,
51686
51750
  text: I(r).identities[I(r).platform_of(e)]?.initials,
@@ -51715,7 +51779,7 @@ var hU = /*#__PURE__*/ XH({
51715
51779
  ])
51716
51780
  ]))), 128))]),
51717
51781
  o[3] ||= K("p", { class: "fine-print" }, "指令含该成员的凭证,只交给对应的会话;关闭后仍可在参与者列表中复制。", -1),
51718
- K("div", CZ, [q(f, {
51782
+ K("div", EZ, [q(f, {
51719
51783
  label: "完成",
51720
51784
  class: "channel-primary-button",
51721
51785
  onClick: o[0] ||= (e) => t.value = !1
@@ -51726,7 +51790,7 @@ var hU = /*#__PURE__*/ XH({
51726
51790
  "aria-label": "邀请专家",
51727
51791
  onSubmit: uu(E, ["prevent"])
51728
51792
  }, [
51729
- K("div", wZ, [
51793
+ K("div", DZ, [
51730
51794
  (U(!0), W(H, null, B(h.value, (e) => (U(), W("button", {
51731
51795
  key: e,
51732
51796
  type: "button",
@@ -51744,9 +51808,9 @@ var hU = /*#__PURE__*/ XH({
51744
51808
  "text",
51745
51809
  "alt",
51746
51810
  "class"
51747
- ]), J(P(e), 1)], 8, TZ))), 128)),
51748
- g.value.length ? (U(), W("span", EZ)) : Y("", !0),
51749
- g.value.length ? (U(), W("span", DZ, "预设")) : Y("", !0),
51811
+ ]), J(P(e), 1)], 8, OZ))), 128)),
51812
+ g.value.length ? (U(), W("span", kZ)) : Y("", !0),
51813
+ g.value.length ? (U(), W("span", AZ, "预设")) : Y("", !0),
51750
51814
  (U(!0), W(H, null, B(g.value, (e) => (U(), W("button", {
51751
51815
  key: `preset:${e.name}`,
51752
51816
  type: "button",
@@ -51764,9 +51828,9 @@ var hU = /*#__PURE__*/ XH({
51764
51828
  "text",
51765
51829
  "alt",
51766
51830
  "class"
51767
- ]), J(P(e.name), 1)], 8, OZ))), 128))
51831
+ ]), J(P(e.name), 1)], 8, jZ))), 128))
51768
51832
  ]),
51769
- d.value.length ? (U(), W("div", kZ, [(U(!0), W(H, null, B(d.value, (e) => (U(), W("div", {
51833
+ d.value.length ? (U(), W("div", MZ, [(U(!0), W(H, null, B(d.value, (e) => (U(), W("div", {
51770
51834
  key: e.id,
51771
51835
  class: "pb-invite-pick"
51772
51836
  }, [q(XJ, {
@@ -51786,15 +51850,15 @@ var hU = /*#__PURE__*/ XH({
51786
51850
  "onMode",
51787
51851
  "onSession",
51788
51852
  "onRemove"
51789
- ]), b.value.get(e) === e.name ? Y("", !0) : (U(), W("p", AZ, "同一 AI 已有实例,将以 " + P(b.value.get(e)) + " 加入,使用独立会话。", 1))]))), 128))])) : Y("", !0),
51853
+ ]), b.value.get(e) === e.name ? Y("", !0) : (U(), W("p", NZ, "同一 AI 已有实例,将以 " + P(b.value.get(e)) + " 加入,使用独立会话。", 1))]))), 128))])) : Y("", !0),
51790
51854
  d.value.length ? (U(), W("p", {
51791
51855
  key: 1,
51792
51856
  class: M(["fine-print", { "pb-invite-reserved": !(d.value.some((e) => e.mode === "manual") && d.value.some((e) => e.mode !== "manual")) }]),
51793
51857
  "aria-hidden": !(d.value.some((e) => e.mode === "manual") && d.value.some((e) => e.mode !== "manual"))
51794
- }, "手动启动的成员排在程序启动的成员之后加入队列。", 10, jZ)) : (U(), W("p", MZ, "选择一位或多位 AI(同一 AI 可重复添加),点卡片翻面设置软件、模型与项目权限。")),
51795
- d.value.some((e) => e.mode === "cli") && !I(n).launch.available ? (U(), W("p", NZ, "邀请需要本机服务,请在运行 AI 的电脑打开本机网站。")) : Y("", !0),
51796
- m.value && I(n).free_error ? (U(), W("p", PZ, P(I(n).free_error), 1)) : Y("", !0),
51797
- K("div", FZ, [q(f, {
51858
+ }, "手动启动的成员排在程序启动的成员之后加入队列。", 10, PZ)) : (U(), W("p", FZ, "选择一位或多位 AI(同一 AI 可重复添加),点卡片翻面设置软件、模型与项目权限。")),
51859
+ d.value.some((e) => e.mode === "cli") && !I(n).launch.available ? (U(), W("p", IZ, "邀请需要本机服务,请在运行 AI 的电脑打开本机网站。")) : Y("", !0),
51860
+ m.value && I(n).free_error ? (U(), W("p", LZ, P(I(n).free_error), 1)) : Y("", !0),
51861
+ K("div", RZ, [q(f, {
51798
51862
  label: "取消",
51799
51863
  color: "neutral",
51800
51864
  variant: "ghost",
@@ -51816,40 +51880,40 @@ var hU = /*#__PURE__*/ XH({
51816
51880
  }, 8, ["open", "description"]);
51817
51881
  };
51818
51882
  }
51819
- }, [["__scopeId", "data-v-b2efa3fb"]]), RZ = { class: "speaking-order" }, zZ = {
51883
+ }, [["__scopeId", "data-v-b2efa3fb"]]), VZ = { class: "speaking-order" }, HZ = {
51820
51884
  key: 0,
51821
51885
  class: "speaking-order-divider",
51822
51886
  "aria-hidden": "true"
51823
- }, BZ = ["data-key", "data-movable"], VZ = [
51887
+ }, UZ = ["data-key", "data-movable"], WZ = [
51824
51888
  "aria-disabled",
51825
51889
  "aria-label",
51826
51890
  "title",
51827
51891
  "onPointerdown",
51828
51892
  "onKeydown"
51829
- ], HZ = { class: "speaking-order-number" }, UZ = {
51893
+ ], GZ = { class: "speaking-order-number" }, KZ = {
51830
51894
  key: 1,
51831
51895
  class: "speaking-order-place",
51832
51896
  title: "已发言",
51833
51897
  "aria-label": "已发言"
51834
- }, WZ = ["title"], GZ = {
51898
+ }, qZ = ["title"], JZ = {
51835
51899
  key: 0,
51836
51900
  class: "speaking-order-later"
51837
- }, KZ = {
51901
+ }, YZ = {
51838
51902
  key: 1,
51839
51903
  class: "speaking-order-divider",
51840
51904
  "aria-hidden": "true"
51841
- }, qZ = {
51905
+ }, XZ = {
51842
51906
  key: 0,
51843
51907
  role: "status",
51844
51908
  class: "pb-free-note"
51845
- }, JZ = {
51909
+ }, ZZ = {
51846
51910
  key: 1,
51847
51911
  role: "alert",
51848
51912
  class: "pb-free-note is-error"
51849
- }, YZ = {
51913
+ }, QZ = {
51850
51914
  class: "speaking-order-live",
51851
51915
  "aria-live": "polite"
51852
- }, XZ = "发言顺序刚有变化,已更新为最新顺序,请重新调整", ZZ = /*#__PURE__*/ XH({
51916
+ }, $Z = "发言顺序刚有变化,已更新为最新顺序,请重新调整", eQ = /*#__PURE__*/ XH({
51853
51917
  __name: "SpeakingOrder",
51854
51918
  props: {
51855
51919
  away: {
@@ -51869,7 +51933,7 @@ var hU = /*#__PURE__*/ XH({
51869
51933
  }), c = Z(() => s.value.kind === "default" ? "idle" : "queued"), l = Z(() => !!n.value.access?.can_manage && !o.value.archived && s.value.movable.length > 1), u = {
51870
51934
  queue: "不在本次依次回答中",
51871
51935
  turns: "本轮未安排"
51872
- }, d = Z(() => s.value.kind === "default" ? "拖动设置默认发言顺序,@全体依次 按此顺序;聚焦后可用上下方向键" : "拖动调整还没发言的顺序,立即生效;聚焦后可用上下方向键"), f = /* @__PURE__ */ F(!1), p = Z(() => f.value ? XZ : 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("");
51936
+ }, d = Z(() => s.value.kind === "default" ? "拖动设置默认发言顺序,@全体依次 按此顺序;聚焦后可用上下方向键" : "拖动调整还没发言的顺序,立即生效;聚焦后可用上下方向键"), f = /* @__PURE__ */ F(!1), p = Z(() => f.value ? $Z : 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("");
51873
51937
  R(() => s.value.revision, () => {
51874
51938
  g.value = null;
51875
51939
  }), R(() => o.value.id, () => {
@@ -51956,13 +52020,13 @@ var hU = /*#__PURE__*/ XH({
51956
52020
  }
51957
52021
  return (e, n) => {
51958
52022
  let i = sA;
51959
- return U(), W("div", RZ, [
52023
+ return U(), W("div", VZ, [
51960
52024
  K("ul", {
51961
52025
  ref_key: "list",
51962
52026
  ref: m,
51963
52027
  class: M(["pb-members", { "is-dragging": h.value }])
51964
52028
  }, [
51965
- (U(!0), W(H, null, B(y.value, (t, r) => (U(), W(H, { key: t.key }, [t.outside ? (U(), W("li", zZ, [K("span", null, P(u[s.value.kind]), 1)])) : Y("", !0), K("li", {
52029
+ (U(!0), W(H, null, B(y.value, (t, r) => (U(), W(H, { key: t.key }, [t.outside ? (U(), W("li", HZ, [K("span", null, P(u[s.value.kind]), 1)])) : Y("", !0), K("li", {
51966
52030
  class: M(["pb-member speaking-order-row", [
51967
52031
  `is-${t.state}`,
51968
52032
  E(r),
@@ -51983,19 +52047,19 @@ var hU = /*#__PURE__*/ XH({
51983
52047
  onPointercancel: n[0] ||= (e) => w(e, !0),
51984
52048
  onLostpointercapture: n[1] ||= (e) => w(e, !0),
51985
52049
  onKeydown: [fu((e) => D(e, b(r), -1), ["up"]), fu((e) => D(e, b(r), 1), ["down"])]
51986
- }, [K("span", HZ, P(t.place), 1), q(i, {
52050
+ }, [K("span", GZ, P(t.place), 1), q(i, {
51987
52051
  name: "i-lucide-grip-vertical",
51988
52052
  class: "speaking-order-handle"
51989
- })], 40, VZ)) : t.state === "done" ? (U(), W("span", UZ, [q(i, { name: "i-lucide-check" })])) : (U(), W("span", {
52053
+ })], 40, WZ)) : t.state === "done" ? (U(), W("span", KZ, [q(i, { name: "i-lucide-check" })])) : (U(), W("span", {
51990
52054
  key: 2,
51991
52055
  class: "speaking-order-place",
51992
52056
  title: t.state === "speaking" ? "正在发言" : void 0
51993
- }, P(t.place || ""), 9, WZ)), V(e.$slots, "default", {
52057
+ }, P(t.place || ""), 9, qZ)), V(e.$slots, "default", {
51994
52058
  item: t,
51995
52059
  place: t.place
51996
- }, void 0, !0)], 10, BZ)], 64))), 128)),
51997
- s.value.later?.length ? (U(), W("li", GZ, [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),
51998
- t.away.length ? (U(), W("li", KZ, [...n[2] ||= [K("span", null, "已离开", -1)]])) : Y("", !0),
52060
+ }, void 0, !0)], 10, UZ)], 64))), 128)),
52061
+ s.value.later?.length ? (U(), W("li", JZ, [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),
52062
+ t.away.length ? (U(), W("li", YZ, [...n[2] ||= [K("span", null, "已离开", -1)]])) : Y("", !0),
51999
52063
  (U(!0), W(H, null, B(t.away, (t) => (U(), W("li", {
52000
52064
  key: `away-${t}`,
52001
52065
  class: "pb-member speaking-order-row is-away"
@@ -52007,74 +52071,74 @@ var hU = /*#__PURE__*/ XH({
52007
52071
  place: 0
52008
52072
  }, void 0, !0)]))), 128))
52009
52073
  ], 2),
52010
- p.value === XZ ? (U(), W("p", qZ, P(p.value), 1)) : p.value ? (U(), W("p", JZ, P(p.value), 1)) : Y("", !0),
52011
- K("p", YZ, P(_.value), 1)
52074
+ p.value === $Z ? (U(), W("p", XZ, P(p.value), 1)) : p.value ? (U(), W("p", ZZ, P(p.value), 1)) : Y("", !0),
52075
+ K("p", QZ, P(_.value), 1)
52012
52076
  ]);
52013
52077
  };
52014
52078
  }
52015
- }, [["__scopeId", "data-v-dc33a051"]]), QZ = {
52079
+ }, [["__scopeId", "data-v-dc33a051"]]), tQ = {
52016
52080
  key: 0,
52017
52081
  class: "pb-header"
52018
- }, $Z = { class: "pb-mode" }, eQ = { class: "pb-status-line" }, tQ = { role: "status" }, nQ = {
52082
+ }, nQ = { class: "pb-mode" }, rQ = { class: "pb-status-line" }, iQ = { role: "status" }, aQ = {
52019
52083
  key: 0,
52020
52084
  class: "pb-mode"
52021
- }, rQ = {
52085
+ }, oQ = {
52022
52086
  key: 0,
52023
52087
  class: "pb-status-detail"
52024
- }, iQ = {
52088
+ }, sQ = {
52025
52089
  key: 1,
52026
52090
  class: "pb-status-detail"
52027
- }, aQ = { class: "pb-error-detail" }, oQ = {
52091
+ }, cQ = { class: "pb-error-detail" }, lQ = {
52028
52092
  key: 3,
52029
52093
  class: "pb-meters"
52030
- }, sQ = { class: "pb-meter-label" }, cQ = {
52094
+ }, uQ = { class: "pb-meter-label" }, dQ = {
52031
52095
  key: 0,
52032
52096
  class: "pb-bar"
52033
- }, lQ = {
52097
+ }, fQ = {
52034
52098
  key: 1,
52035
52099
  class: "pb-section",
52036
52100
  "aria-label": "当前焦点"
52037
- }, uQ = {
52101
+ }, pQ = {
52038
52102
  class: "pb-section",
52039
52103
  "aria-label": "发言顺序"
52040
- }, dQ = { class: "pb-heading" }, fQ = {
52104
+ }, mQ = { class: "pb-heading" }, hQ = {
52041
52105
  key: 0,
52042
52106
  class: "pb-status-detail pb-held"
52043
- }, pQ = { class: "pb-member-body" }, mQ = { class: "pb-member-name" }, hQ = { class: "pb-member-body" }, gQ = { class: "pb-member-name" }, _Q = ["title"], vQ = {
52107
+ }, gQ = { class: "pb-member-body" }, _Q = { class: "pb-member-name" }, vQ = { class: "pb-member-body" }, yQ = { class: "pb-member-name" }, bQ = ["title"], xQ = {
52044
52108
  key: 0,
52045
52109
  class: "pb-member-model",
52046
52110
  title: "续接你已有的会话;它工作时请不要在原窗口继续操作"
52047
- }, yQ = { key: 0 }, bQ = {
52111
+ }, SQ = { key: 0 }, CQ = {
52048
52112
  key: 2,
52049
52113
  class: "pb-member-manual"
52050
- }, xQ = { key: 0 }, SQ = ["onClick"], CQ = {
52114
+ }, wQ = { key: 0 }, TQ = ["onClick"], EQ = {
52051
52115
  key: 1,
52052
52116
  role: "alert",
52053
52117
  class: "pb-free-note is-error"
52054
- }, wQ = {
52118
+ }, DQ = {
52055
52119
  key: 2,
52056
52120
  role: "status",
52057
52121
  class: "pb-free-note"
52058
- }, TQ = {
52122
+ }, OQ = {
52059
52123
  key: 2,
52060
52124
  class: "pb-actions",
52061
52125
  "aria-label": "操作"
52062
- }, EQ = {
52126
+ }, kQ = {
52063
52127
  key: 3,
52064
52128
  class: "pb-section",
52065
52129
  "aria-label": "阶段耗时"
52066
- }, DQ = { class: "pb-timing-heading" }, OQ = ["aria-label"], kQ = { class: "pb-timing-totals" }, AQ = ["title"], jQ = { class: "pb-timings" }, MQ = { class: "pb-timing-who" }, NQ = { class: "pb-timing-stages" }, PQ = ["title"], FQ = {
52130
+ }, AQ = { class: "pb-timing-heading" }, jQ = ["aria-label"], MQ = { class: "pb-timing-totals" }, NQ = ["title"], PQ = { class: "pb-timings" }, FQ = { class: "pb-timing-who" }, IQ = { class: "pb-timing-stages" }, LQ = ["title"], RQ = {
52067
52131
  key: 0,
52068
52132
  class: "pb-note"
52069
- }, IQ = { class: "pb-connection" }, LQ = { class: "fine-print" }, RQ = {
52133
+ }, zQ = { class: "pb-connection" }, BQ = { class: "fine-print" }, VQ = {
52070
52134
  key: 0,
52071
52135
  role: "status",
52072
52136
  class: "fine-print"
52073
- }, zQ = {
52137
+ }, HQ = {
52074
52138
  key: 2,
52075
52139
  role: "alert",
52076
52140
  class: "fine-print"
52077
- }, BQ = { key: 2 }, VQ = { class: "pb-invite-footer" }, HQ = { class: "progress-ending" }, UQ = ["disabled"], WQ = 2e3, GQ = 90, KQ = 100, qQ = /*#__PURE__*/ XH({
52141
+ }, UQ = { key: 2 }, WQ = { class: "pb-invite-footer" }, GQ = { class: "progress-ending" }, KQ = ["disabled"], qQ = 2e3, JQ = 90, YQ = 100, XQ = /*#__PURE__*/ XH({
52078
52142
  __name: "ProgressBoard",
52079
52143
  props: { docked: {
52080
52144
  type: Boolean,
@@ -52085,7 +52149,7 @@ var hU = /*#__PURE__*/ XH({
52085
52149
  async function l(e) {
52086
52150
  clearTimeout(c), s.value = "", await i("copy_member_launch", e) && (s.value = e, c = setTimeout(() => {
52087
52151
  s.value = "";
52088
- }, WQ));
52152
+ }, qQ));
52089
52153
  }
52090
52154
  let u = /* @__PURE__ */ F(!1), d = /* @__PURE__ */ F(null), f = /* @__PURE__ */ F(!1), p = ["pending", "notified"], m = {
52091
52155
  dispatched: "已交付,等待开始",
@@ -52117,7 +52181,7 @@ var hU = /*#__PURE__*/ XH({
52117
52181
  R(() => _.value.id, () => {
52118
52182
  he.value = !1;
52119
52183
  });
52120
- let ge = Z(() => x.value?.question || _.value.focus || _.value.goal || ""), N = Z(() => ge.value.length > GQ), _e = Z(() => y.value.timings || {
52184
+ let ge = Z(() => x.value?.question || _.value.focus || _.value.goal || ""), N = Z(() => ge.value.length > JQ), _e = Z(() => y.value.timings || {
52121
52185
  items: [],
52122
52186
  totals: {},
52123
52187
  count: 0
@@ -52151,7 +52215,7 @@ var hU = /*#__PURE__*/ XH({
52151
52215
  };
52152
52216
  let e = ce.value;
52153
52217
  if (e) {
52154
- let t = e.result.startsWith(e.name) ? e.result : `${r.display_name(e.name)} 执行失败:${e.result}`, n = t.split("\n")[0], i = n.length > KQ ? `${n.slice(0, KQ)}…` : n;
52218
+ let t = e.result.startsWith(e.name) ? e.result : `${r.display_name(e.name)} 执行失败:${e.result}`, n = t.split("\n")[0], i = n.length > YQ ? `${n.slice(0, YQ)}…` : n;
52155
52219
  return {
52156
52220
  tone: "error",
52157
52221
  title: "已暂停",
@@ -52311,18 +52375,18 @@ var hU = /*#__PURE__*/ XH({
52311
52375
  return (e, c) => {
52312
52376
  let f = MA, p = sA, m = pA, v = CH, T = bH, A = zV, se = YH;
52313
52377
  return U(), W("div", { class: M(["progress-board", { "is-docked": t.docked }]) }, [
52314
- t.docked ? (U(), W("header", QZ, [c[19] ||= K("strong", null, "讨论进度", -1), K("span", $Z, P(b.value ? "全自动" : "手动"), 1)])) : Y("", !0),
52378
+ t.docked ? (U(), W("header", tQ, [c[19] ||= K("strong", null, "讨论进度", -1), K("span", nQ, P(b.value ? "全自动" : "手动"), 1)])) : Y("", !0),
52315
52379
  K("section", {
52316
52380
  class: M(["pb-status", `is-${be.value.tone}`]),
52317
52381
  "aria-label": "讨论状态"
52318
52382
  }, [
52319
- K("div", eQ, [
52383
+ K("div", rQ, [
52320
52384
  c[20] ||= K("span", { class: "pb-dot" }, null, -1),
52321
- K("strong", tQ, P(be.value.title), 1),
52322
- t.docked ? Y("", !0) : (U(), W("span", nQ, P(b.value ? "全自动" : "手动"), 1))
52385
+ K("strong", iQ, P(be.value.title), 1),
52386
+ t.docked ? Y("", !0) : (U(), W("span", aQ, P(b.value ? "全自动" : "手动"), 1))
52323
52387
  ]),
52324
- be.value.detail ? (U(), W("p", rQ, P(be.value.detail), 1)) : Y("", !0),
52325
- be.value.full_detail ? (U(), W("details", iQ, [c[21] ||= K("summary", null, "查看错误详情", -1), K("pre", aQ, P(be.value.full_detail), 1)])) : Y("", !0),
52388
+ be.value.detail ? (U(), W("p", oQ, P(be.value.detail), 1)) : Y("", !0),
52389
+ be.value.full_detail ? (U(), W("details", sQ, [c[21] ||= K("summary", null, "查看错误详情", -1), K("pre", cQ, P(be.value.full_detail), 1)])) : Y("", !0),
52326
52390
  ue.value && I(n).launch.available && !I(n).launch.remote ? (U(), G(f, {
52327
52391
  key: 2,
52328
52392
  icon: "i-lucide-arrow-left-right",
@@ -52334,12 +52398,12 @@ var hU = /*#__PURE__*/ XH({
52334
52398
  disabled: !!I(a),
52335
52399
  onClick: c[0] ||= (e) => ke(ue.value, "codex")
52336
52400
  }, null, 8, ["disabled"])) : Y("", !0),
52337
- xe.value.length ? (U(), W("div", oQ, [(U(!0), W(H, null, B(xe.value, (e) => (U(), W("div", {
52401
+ xe.value.length ? (U(), W("div", lQ, [(U(!0), W(H, null, B(xe.value, (e) => (U(), W("div", {
52338
52402
  key: e.label,
52339
52403
  class: "pb-meter"
52340
- }, [K("div", sQ, [K("span", null, P(e.label), 1), K("b", null, P(e.text), 1)]), e.ratio === null ? Y("", !0) : (U(), W("div", cQ, [K("i", { style: fe({ width: `${Math.min(100, Math.round(e.ratio * 100))}%` }) }, null, 4)]))]))), 128))])) : Y("", !0)
52404
+ }, [K("div", uQ, [K("span", null, P(e.label), 1), K("b", null, P(e.text), 1)]), e.ratio === null ? Y("", !0) : (U(), W("div", dQ, [K("i", { style: fe({ width: `${Math.min(100, Math.round(e.ratio * 100))}%` }) }, null, 4)]))]))), 128))])) : Y("", !0)
52341
52405
  ], 2),
52342
- ge.value ? (U(), W("section", lQ, [
52406
+ ge.value ? (U(), W("section", fQ, [
52343
52407
  c[22] ||= K("h4", null, "当前焦点", -1),
52344
52408
  K("p", { class: M(["pb-focus", { "is-expanded": u.value }]) }, P(ge.value), 3),
52345
52409
  N.value ? (U(), W("button", {
@@ -52349,15 +52413,15 @@ var hU = /*#__PURE__*/ XH({
52349
52413
  onClick: c[1] ||= (e) => u.value = !u.value
52350
52414
  }, P(u.value ? "收起" : "展开"), 1)) : Y("", !0)
52351
52415
  ])) : Y("", !0),
52352
- K("section", uQ, [
52353
- K("div", dQ, [c[24] ||= K("h4", null, "发言顺序", -1), me.value ? (U(), W("button", {
52416
+ K("section", pQ, [
52417
+ K("div", mQ, [c[24] ||= K("h4", null, "发言顺序", -1), me.value ? (U(), W("button", {
52354
52418
  key: 0,
52355
52419
  type: "button",
52356
52420
  class: "pb-link",
52357
52421
  onClick: Oe
52358
52422
  }, [q(p, { name: "i-lucide-plus" }), c[23] ||= J("邀请", -1)])) : Y("", !0)]),
52359
- _.value.held_since && x.value && !S.value ? (U(), W("p", fQ, "用户有新操作," + P(I(r).display_name(x.value.expert)) + " 说完后交给主持人", 1)) : Y("", !0),
52360
- q(ZZ, {
52423
+ _.value.held_since && x.value && !S.value ? (U(), W("p", hQ, "用户有新操作," + P(I(r).display_name(x.value.expert)) + " 说完后交给主持人", 1)) : Y("", !0),
52424
+ q(eQ, {
52361
52425
  away: de.value.map((e) => e.name),
52362
52426
  round: Se.value
52363
52427
  }, {
@@ -52374,7 +52438,7 @@ var hU = /*#__PURE__*/ XH({
52374
52438
  "alt",
52375
52439
  "class"
52376
52440
  ]),
52377
- K("div", pQ, [K("div", mQ, [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)]),
52441
+ K("div", gQ, [K("div", _Q, [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)]),
52378
52442
  we({ name: e.name }).length ? (U(), G(v, {
52379
52443
  key: 0,
52380
52444
  items: we({ name: e.name }),
@@ -52404,31 +52468,31 @@ var hU = /*#__PURE__*/ XH({
52404
52468
  "alt",
52405
52469
  "class"
52406
52470
  ]),
52407
- K("div", hQ, [
52408
- K("div", gQ, [
52471
+ K("div", vQ, [
52472
+ K("div", yQ, [
52409
52473
  J(P(I(r).display_name(e.name)), 1),
52410
52474
  e.is_host ? (U(), G(p, {
52411
52475
  key: 0,
52412
52476
  name: "i-lucide-crown",
52413
52477
  title: "主持人"
52414
52478
  })) : Y("", !0),
52415
- K("small", { title: e.model ? `${e.model}:卡片指定的模型与强度;未指定时读取软件自己的设置,读不到则写“软件默认”` : void 0 }, P([e.mode === "CLI" && e.model ? "" : e.mode, e.model].filter(Boolean).join(" · ")), 9, _Q)
52479
+ K("small", { title: e.model ? `${e.model}:卡片指定的模型与强度;未指定时读取软件自己的设置,读不到则写“软件默认”` : void 0 }, P([e.mode === "CLI" && e.model ? "" : e.mode, e.model].filter(Boolean).join(" · ")), 9, bQ)
52416
52480
  ]),
52417
- pe(e.name)?.session_mode === "borrowed" ? (U(), W("div", vQ, "借用已有会话")) : Y("", !0),
52481
+ pe(e.name)?.session_mode === "borrowed" ? (U(), W("div", xQ, "借用已有会话")) : Y("", !0),
52418
52482
  w.value ? Y("", !0) : (U(), W("div", {
52419
52483
  key: 1,
52420
52484
  class: M(["pb-member-status", `is-${e.tone}`])
52421
52485
  }, [
52422
52486
  c[27] ||= K("span", { class: "pb-dot" }, null, -1),
52423
52487
  J(P(e.text), 1),
52424
- e.failures ? (U(), W("small", yQ, " · 失败 " + P(e.failures) + " 次", 1)) : Y("", !0)
52488
+ e.failures ? (U(), W("small", SQ, " · 失败 " + P(e.failures) + " 次", 1)) : Y("", !0)
52425
52489
  ], 2)),
52426
- e.manual && !w.value ? (U(), W("div", bQ, [!pe(e.name)?.registered_at && !e.is_host ? (U(), W("span", xQ, "需在它的会话中注册,才算到场")) : Y("", !0), ie.value ? (U(), W("button", {
52490
+ e.manual && !w.value ? (U(), W("div", CQ, [!pe(e.name)?.registered_at && !e.is_host ? (U(), W("span", wQ, "需在它的会话中注册,才算到场")) : Y("", !0), ie.value ? (U(), W("button", {
52427
52491
  key: 1,
52428
52492
  type: "button",
52429
52493
  class: "pb-link",
52430
52494
  onClick: (t) => l(e.name)
52431
- }, [q(p, { name: s.value === e.name ? "i-lucide-check" : "i-lucide-rocket" }, null, 8, ["name"]), J(P(s.value === e.name ? "已复制" : "复制启动指令"), 1)], 8, SQ)) : Y("", !0)])) : Y("", !0)
52495
+ }, [q(p, { name: s.value === e.name ? "i-lucide-check" : "i-lucide-rocket" }, null, 8, ["name"]), J(P(s.value === e.name ? "已复制" : "复制启动指令"), 1)], 8, TQ)) : Y("", !0)])) : Y("", !0)
52432
52496
  ]),
52433
52497
  we(e).length ? (U(), G(v, {
52434
52498
  key: 0,
@@ -52449,9 +52513,9 @@ var hU = /*#__PURE__*/ XH({
52449
52513
  ], 64))), 128))]),
52450
52514
  _: 1
52451
52515
  }, 8, ["away", "round"]),
52452
- !he.value && I(n).free_error && _.value.phase !== "paused" ? (U(), W("p", CQ, P(I(n).free_error), 1)) : I(n).free_notice ? (U(), W("p", wQ, P(I(n).free_notice), 1)) : Y("", !0)
52516
+ !he.value && I(n).free_error && _.value.phase !== "paused" ? (U(), W("p", EQ, P(I(n).free_error), 1)) : I(n).free_notice ? (U(), W("p", DQ, P(I(n).free_notice), 1)) : Y("", !0)
52453
52517
  ]),
52454
- oe.value ? (U(), W("section", TQ, [
52518
+ oe.value ? (U(), W("section", OQ, [
52455
52519
  te.value ? (U(), G(f, {
52456
52520
  key: 0,
52457
52521
  icon: "i-lucide-rotate-ccw",
@@ -52533,8 +52597,8 @@ var hU = /*#__PURE__*/ XH({
52533
52597
  onClick: c[6] ||= (e) => o.value = !0
52534
52598
  }, null, 8, ["disabled"])) : Y("", !0)
52535
52599
  ])) : Y("", !0),
52536
- b.value && _e.value.count ? (U(), W("section", EQ, [
52537
- K("div", DQ, [c[28] ||= K("h4", null, "耗时", -1), K("small", null, "共 " + P(_e.value.count) + " 次执行", 1)]),
52600
+ b.value && _e.value.count ? (U(), W("section", kQ, [
52601
+ K("div", AQ, [c[28] ||= K("h4", null, "耗时", -1), K("small", null, "共 " + P(_e.value.count) + " 次执行", 1)]),
52538
52602
  K("div", {
52539
52603
  class: "pb-timing-bar",
52540
52604
  role: "img",
@@ -52543,18 +52607,18 @@ var hU = /*#__PURE__*/ XH({
52543
52607
  key: e.key,
52544
52608
  class: M(`is-${e.key}`),
52545
52609
  style: fe({ width: `${e.percent}%` })
52546
- }, null, 6))), 128))], 8, OQ),
52547
- K("dl", kQ, [(U(!0), W(H, null, B(je.value, (e) => (U(), W("div", {
52610
+ }, null, 6))), 128))], 8, jQ),
52611
+ K("dl", MQ, [(U(!0), W(H, null, B(je.value, (e) => (U(), W("div", {
52548
52612
  key: e.key,
52549
52613
  title: e.hint
52550
- }, [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, AQ))), 128))]),
52551
- K("details", jQ, [
52614
+ }, [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, NQ))), 128))]),
52615
+ K("details", PQ, [
52552
52616
  c[29] ||= K("summary", null, "查看每次执行", -1),
52553
- K("ol", null, [(U(!0), W(H, null, B(_e.value.items, (e) => (U(), W("li", { key: e.id }, [K("span", MQ, [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", NQ, [(U(), W(H, null, B(h, (t) => K("span", {
52617
+ K("ol", null, [(U(!0), W(H, null, B(_e.value.items, (e) => (U(), W("li", { key: e.id }, [K("span", FQ, [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", IQ, [(U(), W(H, null, B(h, (t) => K("span", {
52554
52618
  key: t.key,
52555
52619
  title: t.hint
52556
- }, P(t.label) + " " + P(Me(e[t.key])), 9, PQ)), 64))])]))), 128))]),
52557
- _e.value.count > _e.value.items.length ? (U(), W("p", FQ, "只列出最近 " + P(_e.value.items.length) + " 次,共 " + P(_e.value.count) + " 次执行。", 1)) : Y("", !0)
52620
+ }, P(t.label) + " " + P(Me(e[t.key])), 9, LQ)), 64))])]))), 128))]),
52621
+ _e.value.count > _e.value.items.length ? (U(), W("p", RQ, "只列出最近 " + P(_e.value.items.length) + " 次,共 " + P(_e.value.count) + " 次执行。", 1)) : Y("", !0)
52558
52622
  ])
52559
52623
  ])) : Y("", !0),
52560
52624
  q(se, {
@@ -52567,7 +52631,7 @@ var hU = /*#__PURE__*/ XH({
52567
52631
  body: "dialog-body"
52568
52632
  }
52569
52633
  }, {
52570
- body: L(() => [K("div", IQ, [y.value.status === "running" ? (U(), W(H, { key: 0 }, [c[30] ||= K("p", null, "切换前需要暂停讨论,当前执行会停止,原发言安排保留。", -1), q(f, {
52634
+ body: L(() => [K("div", zQ, [y.value.status === "running" ? (U(), W(H, { key: 0 }, [c[30] ||= K("p", null, "切换前需要暂停讨论,当前执行会停止,原发言安排保留。", -1), q(f, {
52571
52635
  label: "暂停并读取配置",
52572
52636
  icon: "i-lucide-pause",
52573
52637
  class: "channel-primary-button",
@@ -52590,7 +52654,7 @@ var hU = /*#__PURE__*/ XH({
52590
52654
  }, null, 8, ["model-value", "disabled"])]),
52591
52655
  _: 1
52592
52656
  }),
52593
- K("p", LQ, P(ye.value.adapter === "codex" ? "App 需保持运行,模型与权限沿用原聊天设置。" : "切回 CLI 前,需让 App 释放原聊天;仍被占用时无法执行。"), 1),
52657
+ K("p", BQ, P(ye.value.adapter === "codex" ? "App 需保持运行,模型与权限沿用原聊天设置。" : "切回 CLI 前,需让 App 释放原聊天;仍被占用时无法执行。"), 1),
52594
52658
  q(f, {
52595
52659
  label: "保存接入方式",
52596
52660
  class: "channel-primary-button",
@@ -52598,7 +52662,7 @@ var hU = /*#__PURE__*/ XH({
52598
52662
  disabled: !!I(a),
52599
52663
  onClick: c[8] ||= (e) => I(i)("save_room_configuration")
52600
52664
  }, null, 8, ["loading", "disabled"]),
52601
- I(n).launch.repair?.notice ? (U(), W("p", RQ, P(I(n).launch.repair.notice), 1)) : Y("", !0),
52665
+ I(n).launch.repair?.notice ? (U(), W("p", VQ, P(I(n).launch.repair.notice), 1)) : Y("", !0),
52602
52666
  I(n).launch.repair?.applied && te.value ? (U(), G(f, {
52603
52667
  key: 1,
52604
52668
  label: "重启讨论",
@@ -52618,10 +52682,10 @@ var hU = /*#__PURE__*/ XH({
52618
52682
  color: "neutral",
52619
52683
  loading: !!I(a),
52620
52684
  onClick: Ae
52621
- }, null, 8, ["loading"])), I(n).launch.repair_error ? (U(), W("p", zQ, P(I(n).launch.repair_error), 1)) : Y("", !0)], 64)) : (U(), W("p", BQ, "本场状态已变化,请关闭后重新核对。"))])]),
52685
+ }, null, 8, ["loading"])), I(n).launch.repair_error ? (U(), W("p", HQ, P(I(n).launch.repair_error), 1)) : Y("", !0)], 64)) : (U(), W("p", UQ, "本场状态已变化,请关闭后重新核对。"))])]),
52622
52686
  _: 1
52623
52687
  }, 8, ["open"]),
52624
- q(LZ, {
52688
+ q(BZ, {
52625
52689
  open: he.value,
52626
52690
  "onUpdate:open": c[11] ||= (e) => he.value = e,
52627
52691
  description: "新专家由程序按本机软件配置启动,或由你手动启动,加入本轮发言队列。"
@@ -52666,7 +52730,7 @@ var hU = /*#__PURE__*/ XH({
52666
52730
  minutes: k.value,
52667
52731
  "onUpdate:minutes": c[14] ||= (e) => k.value = e,
52668
52732
  execution: !1
52669
- }, null, 8, ["rounds", "minutes"]), K("div", VQ, [q(f, {
52733
+ }, null, 8, ["rounds", "minutes"]), K("div", WQ, [q(f, {
52670
52734
  label: "取消",
52671
52735
  color: "neutral",
52672
52736
  variant: "ghost",
@@ -52691,18 +52755,18 @@ var hU = /*#__PURE__*/ XH({
52691
52755
  body: "dialog-body"
52692
52756
  }
52693
52757
  }, {
52694
- body: L(() => [K("div", HQ, [K("button", {
52758
+ body: L(() => [K("div", GQ, [K("button", {
52695
52759
  type: "button",
52696
52760
  class: "progress-ending-option",
52697
52761
  disabled: C.value || !!I(a),
52698
52762
  onClick: c[17] ||= (e) => Fe("end_room_discussion")
52699
- }, [...c[31] ||= [K("strong", null, "结束讨论", -1), K("span", null, "保留全部记录,自动运行随之停止,房间回到自由协作;需要总结时可直接请主持人写一份。", -1)]], 8, UQ)])]),
52763
+ }, [...c[31] ||= [K("strong", null, "结束讨论", -1), K("span", null, "保留全部记录,自动运行随之停止,房间回到自由协作;需要总结时可直接请主持人写一份。", -1)]], 8, KQ)])]),
52700
52764
  _: 1
52701
52765
  }, 8, ["open"])
52702
52766
  ], 2);
52703
52767
  };
52704
52768
  }
52705
- }, [["__scopeId", "data-v-6502811b"]]), JQ = { class: "progress-panel-anchor" }, YQ = ["aria-expanded", "aria-label"], XQ = { class: "progress-chip-text" }, ZQ = { class: "progress-chip-rounds" }, QQ = {
52769
+ }, [["__scopeId", "data-v-6502811b"]]), ZQ = { class: "progress-panel-anchor" }, QQ = ["aria-expanded", "aria-label"], $Q = { class: "progress-chip-text" }, e$ = { class: "progress-chip-rounds" }, t$ = {
52706
52770
  __name: "ProgressPanel",
52707
52771
  setup(e) {
52708
52772
  let { view: t, bridge: n } = xr("discussion"), r = /* @__PURE__ */ F(!1), i = Z(() => t.value.room), a = Z(() => i.value.limits || {}), o = Z(() => {
@@ -52729,7 +52793,7 @@ var hU = /*#__PURE__*/ XH({
52729
52793
  }), 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}`);
52730
52794
  return (e, t) => {
52731
52795
  let n = $V, a = NV;
52732
- return U(), W("div", JQ, [q(n, { text: "查看讨论进度" }, {
52796
+ return U(), W("div", ZQ, [q(n, { text: "查看讨论进度" }, {
52733
52797
  default: L(() => [K("button", {
52734
52798
  type: "button",
52735
52799
  class: M(["progress-chip", `is-${o.value.tone}`]),
@@ -52737,7 +52801,7 @@ var hU = /*#__PURE__*/ XH({
52737
52801
  "aria-expanded": r.value,
52738
52802
  "aria-label": `查看讨论进度:${c.value}`,
52739
52803
  onClick: t[0] ||= (e) => r.value = !0
52740
- }, [t[2] ||= K("span", { class: "progress-dot" }, null, -1), K("span", XQ, [J(P(o.value.title), 1), K("span", ZQ, " · " + P(s.value), 1)])], 10, YQ)]),
52804
+ }, [t[2] ||= K("span", { class: "progress-dot" }, null, -1), K("span", $Q, [J(P(o.value.title), 1), K("span", e$, " · " + P(s.value), 1)])], 10, QQ)]),
52741
52805
  _: 1
52742
52806
  }), q(a, {
52743
52807
  open: r.value,
@@ -52750,12 +52814,12 @@ var hU = /*#__PURE__*/ XH({
52750
52814
  body: "progress-drawer-body"
52751
52815
  }
52752
52816
  }, {
52753
- body: L(() => [q(qQ)]),
52817
+ body: L(() => [q(XQ)]),
52754
52818
  _: 1
52755
52819
  }, 8, ["open", "description"])]);
52756
52820
  };
52757
52821
  }
52758
- }, $Q = { class: "start-discussion-footer" }, e$ = 3, t$ = /*#__PURE__*/ XH({
52822
+ }, n$ = { class: "start-discussion-footer" }, r$ = 3, i$ = /*#__PURE__*/ XH({
52759
52823
  __name: "StartDiscussionDialog",
52760
52824
  props: {
52761
52825
  open: {
@@ -52766,9 +52830,9 @@ var hU = /*#__PURE__*/ XH({
52766
52830
  },
52767
52831
  emits: ["update:open"],
52768
52832
  setup(e) {
52769
- let t = ro(e, "open"), { view: n, act: r, pending: i } = xr("discussion"), a = /* @__PURE__ */ F(""), o = /* @__PURE__ */ F(e$), s = /* @__PURE__ */ F(0), c = /* @__PURE__ */ F(""), l = /* @__PURE__ */ F(!1), u = /* @__PURE__ */ F(null);
52833
+ let t = ro(e, "open"), { view: n, act: r, pending: i } = xr("discussion"), a = /* @__PURE__ */ F(""), o = /* @__PURE__ */ F(r$), s = /* @__PURE__ */ F(0), c = /* @__PURE__ */ F(""), l = /* @__PURE__ */ F(!1), u = /* @__PURE__ */ F(null);
52770
52834
  R(t, (e) => {
52771
- e && (a.value = "", o.value = e$, s.value = 0, c.value = "", l.value = !1);
52835
+ e && (a.value = "", o.value = r$, s.value = 0, c.value = "", l.value = !1);
52772
52836
  });
52773
52837
  async function d() {
52774
52838
  u.value?.settle();
@@ -52836,7 +52900,7 @@ var hU = /*#__PURE__*/ XH({
52836
52900
  "minutes",
52837
52901
  "execution_minutes"
52838
52902
  ]),
52839
- K("div", $Q, [q(h, {
52903
+ K("div", n$, [q(h, {
52840
52904
  label: "取消",
52841
52905
  color: "neutral",
52842
52906
  variant: "ghost",
@@ -52854,8 +52918,8 @@ var hU = /*#__PURE__*/ XH({
52854
52918
  }, 8, ["open"]);
52855
52919
  };
52856
52920
  }
52857
- }, [["__scopeId", "data-v-dee972d6"]]), n$ = ["dispatched", "started"], r$ = (e) => e.pending > 0 || n$.includes(e.execution?.status);
52858
- function i$(e, { view: t, act: n, describe: r }) {
52921
+ }, [["__scopeId", "data-v-dee972d6"]]), a$ = ["dispatched", "started"], o$ = (e) => e.pending > 0 || a$.includes(e.execution?.status);
52922
+ function s$(e, { view: t, act: n, describe: r }) {
52859
52923
  let i = t.access, a = i?.members?.find((t) => t.name === e.name)?.available, o = !i?.can_manage, s = (t, r, i, a = {}) => ({
52860
52924
  label: t,
52861
52925
  icon: r,
@@ -52900,7 +52964,7 @@ function i$(e, { view: t, act: n, describe: r }) {
52900
52964
  }] : []
52901
52965
  ],
52902
52966
  [
52903
- ...r$(e) ? [s("停止", "i-lucide-square", "interrupt")] : [],
52967
+ ...o$(e) ? [s("停止", "i-lucide-square", "interrupt")] : [],
52904
52968
  ...e.access === "online" && e.pending ? [{
52905
52969
  label: "复制阅读通知",
52906
52970
  icon: "i-lucide-copy",
@@ -52920,58 +52984,58 @@ function i$(e, { view: t, act: n, describe: r }) {
52920
52984
  }
52921
52985
  //#endregion
52922
52986
  //#region frontend/FreeBoard.vue
52923
- var a$ = { class: "progress-board is-docked" }, o$ = { class: "pb-header" }, s$ = { class: "pb-mode" }, c$ = { class: "pb-status-line" }, l$ = { role: "status" }, u$ = {
52987
+ var c$ = { class: "progress-board is-docked" }, l$ = { class: "pb-header" }, u$ = { class: "pb-mode" }, d$ = { class: "pb-status-line" }, f$ = { role: "status" }, p$ = {
52924
52988
  key: 0,
52925
52989
  class: "pb-status-detail"
52926
- }, d$ = {
52990
+ }, m$ = {
52927
52991
  key: 1,
52928
52992
  class: "pb-chain-actions"
52929
- }, f$ = { class: "pb-meters" }, p$ = { class: "pb-meter-label" }, m$ = {
52993
+ }, h$ = { class: "pb-meters" }, g$ = { class: "pb-meter-label" }, _$ = {
52930
52994
  key: 0,
52931
52995
  class: "pb-bar"
52932
- }, h$ = {
52996
+ }, v$ = {
52933
52997
  key: 0,
52934
52998
  class: "pb-section",
52935
52999
  "aria-label": "当前任务"
52936
- }, g$ = {
53000
+ }, y$ = {
52937
53001
  class: "pb-section",
52938
53002
  "aria-label": "发言顺序"
52939
- }, _$ = { class: "pb-member-body" }, v$ = ["title"], y$ = ["title"], b$ = {
53003
+ }, b$ = { class: "pb-member-body" }, x$ = ["title"], S$ = ["title"], C$ = {
52940
53004
  key: 0,
52941
53005
  class: "pb-member-model",
52942
53006
  title: "它工作时请不要在原窗口继续操作"
52943
- }, x$ = ["title"], S$ = {
53007
+ }, w$ = ["title"], T$ = {
52944
53008
  key: 0,
52945
53009
  role: "alert",
52946
53010
  class: "pb-free-note is-error"
52947
- }, C$ = {
53011
+ }, E$ = {
52948
53012
  key: 1,
52949
53013
  role: "status",
52950
53014
  class: "pb-free-note"
52951
- }, w$ = {
53015
+ }, D$ = {
52952
53016
  key: 2,
52953
53017
  role: "alert",
52954
53018
  class: "pb-free-note is-error"
52955
- }, T$ = {
53019
+ }, O$ = {
52956
53020
  key: 3,
52957
53021
  role: "status",
52958
53022
  class: "pb-free-note"
52959
- }, E$ = {
53023
+ }, k$ = {
52960
53024
  key: 1,
52961
53025
  class: "pb-section",
52962
53026
  "aria-label": "头脑风暴"
52963
- }, D$ = ["onClick"], O$ = {
53027
+ }, A$ = ["onClick"], j$ = {
52964
53028
  key: 2,
52965
53029
  class: "pb-actions",
52966
53030
  "aria-label": "操作"
52967
- }, k$ = {
53031
+ }, M$ = {
52968
53032
  key: 0,
52969
53033
  class: "pb-free-note"
52970
- }, A$ = {
53034
+ }, N$ = {
52971
53035
  key: 3,
52972
53036
  class: "pb-section",
52973
53037
  "aria-label": "执行耗时"
52974
- }, j$ = { class: "pb-timing-heading" }, M$ = { class: "pb-timings" }, N$ = { class: "pb-timing-who" }, P$ = { class: "pb-timing-stages" }, F$ = 90, I$ = /*#__PURE__*/ XH({
53038
+ }, P$ = { class: "pb-timing-heading" }, F$ = { class: "pb-timings" }, I$ = { class: "pb-timing-who" }, L$ = { class: "pb-timing-stages" }, R$ = 90, z$ = /*#__PURE__*/ XH({
52975
53039
  __name: "FreeBoard",
52976
53040
  setup(e) {
52977
53041
  let { view: t, bridge: n, act: r, pending: i } = xr("discussion"), a = ["dispatched", "started"], o = {
@@ -52986,7 +53050,7 @@ var a$ = { class: "progress-board is-docked" }, o$ = { class: "pb-header" }, s$
52986
53050
  online: "网页代发"
52987
53051
  }, 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;
52988
53052
  function h(e) {
52989
- return e.status === "away" ? "neutral" : m(e) ? "warning" : e.execution?.stale ? "error" : r$(e) ? e.pending && !a.includes(e.execution?.status) ? "warning" : "primary" : e.execution?.status === "failed" ? "error" : "success";
53053
+ return e.status === "away" ? "neutral" : m(e) ? "warning" : e.execution?.stale ? "error" : o$(e) ? e.pending && !a.includes(e.execution?.status) ? "warning" : "primary" : e.execution?.status === "failed" ? "error" : "success";
52990
53054
  }
52991
53055
  function g(e, t) {
52992
53056
  if (e.status === "away") return "已离开:不会被唤醒,可请回";
@@ -53015,7 +53079,7 @@ var a$ = { class: "progress-board is-docked" }, o$ = { class: "pb-header" }, s$
53015
53079
  title: "已存档",
53016
53080
  detail: ""
53017
53081
  };
53018
- let e = (l.value.members || []).filter(r$);
53082
+ let e = (l.value.members || []).filter(o$);
53019
53083
  if (e.some((e) => e.execution?.stale)) return {
53020
53084
  tone: "error",
53021
53085
  title: "执行失联",
@@ -53080,7 +53144,7 @@ var a$ = { class: "progress-board is-docked" }, o$ = { class: "pb-header" }, s$
53080
53144
  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)}分`;
53081
53145
  }
53082
53146
  function O(e) {
53083
- return i$(e, {
53147
+ return s$(e, {
53084
53148
  view: t.value,
53085
53149
  act: r,
53086
53150
  describe: (e) => {
@@ -53105,15 +53169,15 @@ var a$ = { class: "progress-board is-docked" }, o$ = { class: "pb-header" }, s$
53105
53169
  ne.value = !1;
53106
53170
  }), (e, i) => {
53107
53171
  let a = MA, s = pA, m = sA, ie = CH;
53108
- return U(), W("div", a$, [
53109
- K("header", o$, [i[6] ||= K("strong", null, "自由协作", -1), K("span", s$, P(u.value ? `${I(n).display_name(u.value.name)} 主持` : "无主持人"), 1)]),
53172
+ return U(), W("div", c$, [
53173
+ K("header", l$, [i[6] ||= K("strong", null, "自由协作", -1), K("span", u$, P(u.value ? `${I(n).display_name(u.value.name)} 主持` : "无主持人"), 1)]),
53110
53174
  K("section", {
53111
53175
  class: M(["pb-status", `is-${S.value.tone}`]),
53112
53176
  "aria-label": "房间状态"
53113
53177
  }, [
53114
- K("div", c$, [i[7] ||= K("span", { class: "pb-dot" }, null, -1), K("strong", l$, P(S.value.title), 1)]),
53115
- S.value.detail ? (U(), W("p", u$, P(S.value.detail), 1)) : Y("", !0),
53116
- S.value.continue_chain && I(t).access?.can_manage ? (U(), W("div", d$, [(U(!0), W(H, null, B(y.value, (e) => (U(), G(a, {
53178
+ K("div", d$, [i[7] ||= K("span", { class: "pb-dot" }, null, -1), K("strong", f$, P(S.value.title), 1)]),
53179
+ S.value.detail ? (U(), W("p", p$, P(S.value.detail), 1)) : Y("", !0),
53180
+ S.value.continue_chain && I(t).access?.can_manage ? (U(), W("div", m$, [(U(!0), W(H, null, B(y.value, (e) => (U(), G(a, {
53117
53181
  key: e,
53118
53182
  label: `继续 ${e} 轮`,
53119
53183
  icon: "i-lucide-play",
@@ -53129,24 +53193,24 @@ var a$ = { class: "progress-board is-docked" }, o$ = { class: "pb-header" }, s$
53129
53193
  "disabled",
53130
53194
  "onClick"
53131
53195
  ]))), 128))])) : Y("", !0),
53132
- K("div", f$, [(U(!0), W(H, null, B(C.value, (e) => (U(), W("div", {
53196
+ K("div", h$, [(U(!0), W(H, null, B(C.value, (e) => (U(), W("div", {
53133
53197
  key: e.label,
53134
53198
  class: "pb-meter"
53135
- }, [K("div", p$, [K("span", null, P(e.label), 1), K("b", null, P(e.text), 1)]), e.ratio === null ? Y("", !0) : (U(), W("div", m$, [K("i", { style: fe({ width: `${Math.min(100, Math.round(e.ratio * 100))}%` }) }, null, 4)]))]))), 128))])
53199
+ }, [K("div", g$, [K("span", null, P(e.label), 1), K("b", null, P(e.text), 1)]), e.ratio === null ? Y("", !0) : (U(), W("div", _$, [K("i", { style: fe({ width: `${Math.min(100, Math.round(e.ratio * 100))}%` }) }, null, 4)]))]))), 128))])
53136
53200
  ], 2),
53137
- w.value ? (U(), W("section", h$, [
53201
+ w.value ? (U(), W("section", v$, [
53138
53202
  i[8] ||= K("h4", null, "当前任务", -1),
53139
53203
  K("p", { class: M(["pb-focus", { "is-expanded": T.value }]) }, P(w.value), 3),
53140
- w.value.length > F$ ? (U(), W("button", {
53204
+ w.value.length > R$ ? (U(), W("button", {
53141
53205
  key: 0,
53142
53206
  type: "button",
53143
53207
  class: "pb-link",
53144
53208
  onClick: i[0] ||= (e) => T.value = !T.value
53145
53209
  }, P(T.value ? "收起" : "展开"), 1)) : Y("", !0)
53146
53210
  ])) : Y("", !0),
53147
- K("section", g$, [
53211
+ K("section", y$, [
53148
53212
  i[10] ||= K("h4", null, "发言顺序", -1),
53149
- q(ZZ, { away: f.value }, {
53213
+ q(eQ, { away: f.value }, {
53150
53214
  default: L(({ item: e }) => [(U(!0), W(H, null, B([d(e.name)].filter(Boolean), (t) => (U(), W(H, { key: t.id }, [
53151
53215
  q(s, {
53152
53216
  src: I(n).identities[t.name]?.icon,
@@ -53160,7 +53224,7 @@ var a$ = { class: "progress-board is-docked" }, o$ = { class: "pb-header" }, s$
53160
53224
  "alt",
53161
53225
  "class"
53162
53226
  ]),
53163
- K("div", _$, [
53227
+ K("div", b$, [
53164
53228
  K("div", {
53165
53229
  class: "pb-member-name",
53166
53230
  title: c.value.descriptions?.[t.name] || void 0
@@ -53171,13 +53235,13 @@ var a$ = { class: "progress-board is-docked" }, o$ = { class: "pb-header" }, s$
53171
53235
  name: "i-lucide-crown",
53172
53236
  title: "主持人"
53173
53237
  })) : Y("", !0),
53174
- K("small", { title: v(t) || void 0 }, P(_(t)), 9, y$)
53175
- ], 8, v$),
53176
- t.session_mode === "borrowed" ? (U(), W("div", b$, "借用已有会话")) : Y("", !0),
53238
+ K("small", { title: v(t) || void 0 }, P(_(t)), 9, S$)
53239
+ ], 8, x$),
53240
+ t.session_mode === "borrowed" ? (U(), W("div", C$, "借用已有会话")) : Y("", !0),
53177
53241
  K("div", { class: M(["pb-member-status", `is-${h(t)}`]) }, [i[9] ||= K("span", { class: "pb-dot" }, null, -1), K("span", {
53178
53242
  class: "pb-member-status-text",
53179
53243
  title: t.execution?.status === "failed" ? t.execution.result : void 0
53180
- }, P(g(t, e.state)), 9, x$)], 2)
53244
+ }, P(g(t, e.state)), 9, w$)], 2)
53181
53245
  ]),
53182
53246
  q(ie, {
53183
53247
  items: O(t),
@@ -53201,8 +53265,8 @@ var a$ = { class: "progress-board is-docked" }, o$ = { class: "pb-header" }, s$
53201
53265
  key: e.executions.join("-"),
53202
53266
  class: "pb-free-note is-warning"
53203
53267
  }, "可能冲突:" + P(e.members.map((e) => I(n).display_name(e)).join(" 与 ")) + " 的重叠执行观察到 " + P(e.files.join("、")) + " 变化;修改者未确认。", 1))), 128)),
53204
- I(t).free_error ? (U(), W("p", S$, P(I(t).free_error), 1)) : I(t).free_notice ? (U(), W("p", C$, P(I(t).free_notice), 1)) : Y("", !0),
53205
- I(t).access?.error ? (U(), W("p", w$, P(I(t).access.error), 1)) : I(t).access?.notice ? (U(), W("p", T$, P(I(t).access.notice), 1)) : Y("", !0),
53268
+ I(t).free_error ? (U(), W("p", T$, P(I(t).free_error), 1)) : I(t).free_notice ? (U(), W("p", E$, P(I(t).free_notice), 1)) : Y("", !0),
53269
+ I(t).access?.error ? (U(), W("p", D$, P(I(t).access.error), 1)) : I(t).access?.notice ? (U(), W("p", O$, P(I(t).access.notice), 1)) : Y("", !0),
53206
53270
  c.value.archived ? Y("", !0) : (U(), G(a, {
53207
53271
  key: 4,
53208
53272
  icon: "i-lucide-plus",
@@ -53214,13 +53278,13 @@ var a$ = { class: "progress-board is-docked" }, o$ = { class: "pb-header" }, s$
53214
53278
  onClick: i[1] ||= (e) => k.value = !0
53215
53279
  }))
53216
53280
  ]),
53217
- c.value.linked_rooms?.length ? (U(), W("section", E$, [i[11] ||= K("h4", null, "头脑风暴", -1), (U(!0), W(H, null, B(c.value.linked_rooms, (e) => (U(), W("button", {
53281
+ c.value.linked_rooms?.length ? (U(), W("section", k$, [i[11] ||= K("h4", null, "头脑风暴", -1), (U(!0), W(H, null, B(c.value.linked_rooms, (e) => (U(), W("button", {
53218
53282
  key: e.id,
53219
53283
  type: "button",
53220
53284
  class: "pb-link pb-free-linked",
53221
53285
  onClick: (t) => I(r)("room", e.id)
53222
- }, [J(P(e.title), 1), K("small", null, P(I(n).phases[e.phase] || e.phase), 1)], 8, D$))), 128))])) : Y("", !0),
53223
- c.value.archived ? Y("", !0) : (U(), W("section", O$, [q(a, {
53286
+ }, [J(P(e.title), 1), K("small", null, P(I(n).phases[e.phase] || e.phase), 1)], 8, A$))), 128))])) : Y("", !0),
53287
+ c.value.archived ? Y("", !0) : (U(), W("section", j$, [q(a, {
53224
53288
  icon: "i-lucide-messages-square",
53225
53289
  label: "开启讨论",
53226
53290
  size: "sm",
@@ -53230,13 +53294,13 @@ var a$ = { class: "progress-board is-docked" }, o$ = { class: "pb-header" }, s$
53230
53294
  title: "由主持人推进成员轮流发言,到上限或结束后房间回到自由协作",
53231
53295
  disabled: !re.value,
53232
53296
  onClick: i[2] ||= (e) => ne.value = !0
53233
- }, null, 8, ["disabled"]), re.value ? Y("", !0) : (U(), W("p", k$, "开启讨论需要一位由本机唤醒的 AI 主持人。"))])),
53234
- E.value.items.length ? (U(), W("section", A$, [K("div", j$, [i[12] ||= K("h4", null, "耗时", -1), K("small", null, "共 " + P(E.value.items.length) + " 次执行 · " + P(D(E.value.total)), 1)]), K("details", M$, [i[13] ||= K("summary", null, "查看每次执行", -1), K("ol", null, [(U(!0), W(H, null, B(E.value.items, (e) => (U(), W("li", { key: e.id }, [K("span", N$, [J("#" + P(e.id) + " " + P(p(e.member_id)), 1), K("small", null, P(o[e.status] || e.status), 1)]), K("span", P$, [K("span", null, "用时 " + P(D(e.seconds)), 1)])]))), 128))])])])) : Y("", !0),
53235
- q(t$, {
53297
+ }, null, 8, ["disabled"]), re.value ? Y("", !0) : (U(), W("p", M$, "开启讨论需要一位由本机唤醒的 AI 主持人。"))])),
53298
+ E.value.items.length ? (U(), W("section", N$, [K("div", P$, [i[12] ||= K("h4", null, "耗时", -1), K("small", null, "共 " + P(E.value.items.length) + " 次执行 · " + P(D(E.value.total)), 1)]), K("details", F$, [i[13] ||= K("summary", null, "查看每次执行", -1), K("ol", null, [(U(!0), W(H, null, B(E.value.items, (e) => (U(), W("li", { key: e.id }, [K("span", I$, [J("#" + P(e.id) + " " + P(p(e.member_id)), 1), K("small", null, P(o[e.status] || e.status), 1)]), K("span", L$, [K("span", null, "用时 " + P(D(e.seconds)), 1)])]))), 128))])])])) : Y("", !0),
53299
+ q(i$, {
53236
53300
  open: ne.value,
53237
53301
  "onUpdate:open": i[3] ||= (e) => ne.value = e
53238
53302
  }, null, 8, ["open"]),
53239
- q(LZ, {
53303
+ q(BZ, {
53240
53304
  open: k.value,
53241
53305
  "onUpdate:open": i[4] ||= (e) => k.value = e,
53242
53306
  description: "新成员加入后不打断其他成员;点卡片翻面可设置软件、模型、项目权限和要续接的已有会话。"
@@ -53263,31 +53327,31 @@ var a$ = { class: "progress-board is-docked" }, o$ = { class: "pb-header" }, s$
53263
53327
  ]);
53264
53328
  };
53265
53329
  }
53266
- }, [["__scopeId", "data-v-3f7ad436"]]), L$ = {
53330
+ }, [["__scopeId", "data-v-3f7ad436"]]), B$ = {
53267
53331
  class: "merged-section discussion-history",
53268
53332
  "aria-label": "讨论记录"
53269
- }, R$ = {
53333
+ }, V$ = {
53270
53334
  key: 0,
53271
53335
  class: "fine-print"
53272
- }, z$ = { class: "history-timeline" }, B$ = {
53336
+ }, H$ = { class: "history-timeline" }, U$ = {
53273
53337
  key: 0,
53274
53338
  class: "history-free"
53275
- }, V$ = {
53339
+ }, W$ = {
53276
53340
  key: 1,
53277
53341
  class: "history-discussion"
53278
- }, H$ = { class: "history-meta" }, U$ = {
53342
+ }, G$ = { class: "history-meta" }, K$ = {
53279
53343
  key: 0,
53280
53344
  class: "fine-print"
53281
- }, W$ = {
53345
+ }, q$ = {
53282
53346
  key: 1,
53283
53347
  class: "fine-print"
53284
- }, G$ = {
53348
+ }, J$ = {
53285
53349
  key: 2,
53286
53350
  class: "history-conclusion"
53287
- }, K$ = ["onClick"], q$ = ["innerHTML"], J$ = {
53351
+ }, Y$ = ["onClick"], X$ = ["innerHTML"], Z$ = {
53288
53352
  key: 1,
53289
53353
  class: "fine-print"
53290
- }, Y$ = ["aria-expanded", "onClick"], X$ = ["innerHTML"], Z$ = /*#__PURE__*/ XH({
53354
+ }, Q$ = ["aria-expanded", "onClick"], $$ = ["innerHTML"], e1 = /*#__PURE__*/ XH({
53291
53355
  __name: "DiscussionHistory",
53292
53356
  emits: ["detail"],
53293
53357
  setup(e) {
@@ -53345,16 +53409,16 @@ var a$ = { class: "progress-board is-docked" }, o$ = { class: "pb-header" }, s$
53345
53409
  }
53346
53410
  return (e, t) => {
53347
53411
  let l = WV, d = sA;
53348
- return U(), W("section", L$, [
53412
+ return U(), W("section", B$, [
53349
53413
  t[2] ||= K("div", { class: "page-heading" }, [K("div", null, [K("h2", null, "讨论记录"), K("p", null, "每场讨论及其结束时的结论,最新的在上;自由协作的消息按段汇总。")])], -1),
53350
- i.value.discussions?.length ? Y("", !0) : (U(), W("p", R$, "还没有开启过讨论。")),
53351
- K("ol", z$, [(U(!0), W(H, null, B(c.value, (i) => (U(), W("li", {
53414
+ i.value.discussions?.length ? Y("", !0) : (U(), W("p", V$, "还没有开启过讨论。")),
53415
+ K("ol", H$, [(U(!0), W(H, null, B(c.value, (i) => (U(), W("li", {
53352
53416
  key: i.key,
53353
53417
  class: M(`is-${i.kind}`)
53354
53418
  }, [t[1] ||= K("span", {
53355
53419
  class: "history-dot",
53356
53420
  "aria-hidden": "true"
53357
- }, null, -1), i.kind === "free" ? (U(), W("p", B$, "自由协作 · " + P(i.count) + " 条消息", 1)) : (U(), W("article", V$, [
53421
+ }, null, -1), i.kind === "free" ? (U(), W("p", U$, "自由协作 · " + P(i.count) + " 条消息", 1)) : (U(), W("article", W$, [
53358
53422
  K("header", null, [K("h3", null, [K("small", null, "讨论 " + P(i.number), 1), J(P(i.goal || "未填写目标"), 1)]), q(l, {
53359
53423
  color: r[i.status]?.color || "neutral",
53360
53424
  variant: "subtle",
@@ -53363,73 +53427,73 @@ var a$ = { class: "progress-board is-docked" }, o$ = { class: "pb-header" }, s$
53363
53427
  default: L(() => [J(P(r[i.status]?.label || i.status), 1)]),
53364
53428
  _: 2
53365
53429
  }, 1032, ["color"])]),
53366
- K("p", H$, [
53430
+ K("p", G$, [
53367
53431
  J(P(s(i.created_at)) + " 开始 · " + P(i.count) + " 条消息", 1),
53368
53432
  i.status === "concluded" && i.state !== null ? (U(), W(H, { key: 0 }, [J(" · " + P(I(n).stop_reason_label(i)), 1)], 64)) : Y("", !0),
53369
53433
  i.concluded_at ? (U(), W(H, { key: 1 }, [J(" · " + P(s(i.concluded_at)) + " 结束", 1)], 64)) : Y("", !0)
53370
53434
  ]),
53371
- i.result?.current ? (U(), W("p", U$, "结论即上方的当前共识。")) : i.result?.missing ? (U(), W("p", W$, "这场讨论结束于结论快照功能之前,没有保存当时的结论。")) : i.result ? (U(), W("div", G$, [
53435
+ i.result?.current ? (U(), W("p", K$, "结论即上方的当前共识。")) : i.result?.missing ? (U(), W("p", q$, "这场讨论结束于结论快照功能之前,没有保存当时的结论。")) : i.result ? (U(), W("div", J$, [
53372
53436
  K("small", null, [J(P(i.result.label), 1), i.result.until ? (U(), W("button", {
53373
53437
  key: 0,
53374
53438
  type: "button",
53375
53439
  class: "subtle-link",
53376
53440
  onClick: (t) => e.$emit("detail", i.result.until)
53377
- }, "整理至 #" + P(i.result.until), 9, K$)) : Y("", !0)]),
53441
+ }, "整理至 #" + P(i.result.until), 9, Y$)) : Y("", !0)]),
53378
53442
  i.result.brief ? (U(), W("div", {
53379
53443
  key: 0,
53380
53444
  class: "markdown-body",
53381
53445
  innerHTML: o(i.result.brief)
53382
- }, null, 8, q$)) : i.result.state ? Y("", !0) : (U(), W("p", J$, "主持人没有留下简报或共识。")),
53446
+ }, null, 8, X$)) : i.result.state ? Y("", !0) : (U(), W("p", Z$, "主持人没有留下简报或共识。")),
53383
53447
  i.result.state ? (U(), W(H, { key: 2 }, [K("button", {
53384
53448
  type: "button",
53385
53449
  class: "history-toggle",
53386
53450
  "aria-expanded": a.value.has(i.id),
53387
53451
  onClick: (e) => u(i.id)
53388
- }, [t[0] ||= J("详细共识与进度", -1), q(d, { name: a.value.has(i.id) ? "i-lucide-chevron-up" : "i-lucide-chevron-down" }, null, 8, ["name"])], 8, Y$), a.value.has(i.id) ? (U(), W("div", {
53452
+ }, [t[0] ||= J("详细共识与进度", -1), q(d, { name: a.value.has(i.id) ? "i-lucide-chevron-up" : "i-lucide-chevron-down" }, null, 8, ["name"])], 8, Q$), a.value.has(i.id) ? (U(), W("div", {
53389
53453
  key: 0,
53390
53454
  class: "markdown-body history-state",
53391
53455
  innerHTML: o(i.result.state)
53392
- }, null, 8, X$)) : Y("", !0)], 64)) : Y("", !0)
53456
+ }, null, 8, $$)) : Y("", !0)], 64)) : Y("", !0)
53393
53457
  ])) : Y("", !0)
53394
53458
  ]))], 2))), 128))])
53395
53459
  ]);
53396
53460
  };
53397
53461
  }
53398
- }, [["__scopeId", "data-v-8daffdea"]]), Q$ = {
53462
+ }, [["__scopeId", "data-v-8daffdea"]]), t1 = {
53399
53463
  class: "merged-section room-overview",
53400
53464
  "aria-label": "成员与设置"
53401
- }, $$ = { class: "page-heading" }, e1 = { class: "overview-section" }, t1 = {
53465
+ }, n1 = { class: "page-heading" }, r1 = { class: "overview-section" }, i1 = {
53402
53466
  key: 0,
53403
53467
  class: "overview-local",
53404
53468
  role: "status"
53405
- }, n1 = {
53469
+ }, a1 = {
53406
53470
  class: "member-cards",
53407
53471
  "aria-label": "成员"
53408
- }, r1 = { class: "member-card-head" }, i1 = { class: "member-card-name" }, a1 = ["title"], o1 = { class: "member-card-facts" }, s1 = ["aria-label", "title"], c1 = [
53472
+ }, o1 = { class: "member-card-head" }, s1 = { class: "member-card-name" }, c1 = ["title"], l1 = { class: "member-card-facts" }, u1 = ["aria-label", "title"], d1 = [
53409
53473
  "aria-checked",
53410
53474
  "disabled",
53411
53475
  "onClick"
53412
- ], l1 = { key: 1 }, u1 = ["title"], d1 = [
53476
+ ], f1 = { key: 1 }, p1 = ["title"], m1 = [
53413
53477
  "aria-label",
53414
53478
  "aria-busy",
53415
53479
  "title"
53416
- ], f1 = [
53480
+ ], h1 = [
53417
53481
  "aria-checked",
53418
53482
  "disabled",
53419
53483
  "onClick"
53420
- ], p1 = ["title"], m1 = ["aria-label"], h1 = { key: 0 }, g1 = {
53484
+ ], g1 = ["title"], _1 = ["aria-label"], v1 = { key: 0 }, y1 = {
53421
53485
  key: 1,
53422
53486
  class: "overview-result is-error",
53423
53487
  role: "alert"
53424
- }, _1 = {
53488
+ }, b1 = {
53425
53489
  key: 2,
53426
53490
  class: "overview-result",
53427
53491
  role: "status"
53428
- }, v1 = ["role"], y1 = { class: "overview-section" }, b1 = { class: "overview-settings" }, x1 = { key: 0 }, S1 = {
53492
+ }, x1 = ["role"], S1 = { class: "overview-section" }, C1 = { class: "overview-settings" }, w1 = { key: 0 }, T1 = {
53429
53493
  key: 0,
53430
53494
  role: "status",
53431
53495
  class: "overview-saved"
53432
- }, C1 = { key: 1 }, w1 = { key: 1 }, T1 = { class: "overview-address" }, E1 = { key: 2 }, D1 = 2e3, O1 = /*#__PURE__*/ XH({
53496
+ }, E1 = { key: 1 }, D1 = { key: 1 }, O1 = { class: "overview-address" }, k1 = { key: 2 }, A1 = 2e3, j1 = /*#__PURE__*/ XH({
53433
53497
  __name: "RoomOverview",
53434
53498
  setup(e) {
53435
53499
  let { view: t, bridge: n, act: r } = xr("discussion"), i = {
@@ -53470,7 +53534,7 @@ var a$ = { class: "progress-board is-docked" }, o$ = { class: "pb-header" }, s$
53470
53534
  try {
53471
53535
  await n.set_chain_rounds(e), v.value = !0, setTimeout(() => {
53472
53536
  v.value = !1;
53473
- }, D1);
53537
+ }, A1);
53474
53538
  } catch {
53475
53539
  _.value = u.value.free?.max_rounds || 0;
53476
53540
  } finally {
@@ -53577,7 +53641,7 @@ var a$ = { class: "progress-board is-docked" }, o$ = { class: "pb-header" }, s$
53577
53641
  }
53578
53642
  let D = Z(() => p.value ? "—" : f.value.scheduler ? `${t.value.launch.scheduler_providers?.[f.value.scheduler.provider]?.label || f.value.scheduler.provider} · ${f.value.scheduler.model}` : "未开启");
53579
53643
  function O(e) {
53580
- let [n, i, a] = i$(C(e), {
53644
+ let [n, i, a] = s$(C(e), {
53581
53645
  view: t.value,
53582
53646
  act: r,
53583
53647
  describe: (e) => {
@@ -53609,8 +53673,8 @@ var a$ = { class: "progress-board is-docked" }, o$ = { class: "pb-header" }, s$
53609
53673
  let ne = Z(() => `${location.origin}/r/${u.value.id}`), re = Z(() => u.value.created_at ? new Date(u.value.created_at).toLocaleString("zh-CN", { hour12: !1 }) : "");
53610
53674
  return (e, i) => {
53611
53675
  let o = MA, l = pA, ie = sA, j = WV;
53612
- return U(), W("section", Q$, [
53613
- K("div", $$, [i[5] ||= K("div", null, [K("h2", null, "成员与设置"), K("p", null, "成员的接入、权限与全部操作,以及房间的协作设置;右栏成员菜单是同样操作的快捷入口。")], -1), u.value.archived ? Y("", !0) : (U(), G(o, {
53676
+ return U(), W("section", t1, [
53677
+ K("div", n1, [i[5] ||= K("div", null, [K("h2", null, "成员与设置"), K("p", null, "成员的接入、权限与全部操作,以及房间的协作设置;右栏成员菜单是同样操作的快捷入口。")], -1), u.value.archived ? Y("", !0) : (U(), G(o, {
53614
53678
  key: 0,
53615
53679
  icon: "i-lucide-plus",
53616
53680
  label: "邀请 AI 加入",
@@ -53620,19 +53684,19 @@ var a$ = { class: "progress-board is-docked" }, o$ = { class: "pb-header" }, s$
53620
53684
  disabled: !I(t).access?.can_manage,
53621
53685
  onClick: i[0] ||= (e) => k.value = !0
53622
53686
  }, null, 8, ["disabled"]))]),
53623
- K("section", e1, [
53687
+ K("section", r1, [
53624
53688
  i[9] ||= K("h3", null, "成员", -1),
53625
- p.value ? (U(), W("p", t1, [J(P(p.value.text), 1), p.value.retry ? (U(), W("button", {
53689
+ p.value ? (U(), W("p", i1, [J(P(p.value.text), 1), p.value.retry ? (U(), W("button", {
53626
53690
  key: 0,
53627
53691
  type: "button",
53628
53692
  class: "subtle-link",
53629
53693
  onClick: i[1] ||= (e) => I(n).reload_room_models()
53630
53694
  }, "重试")) : Y("", !0)])) : Y("", !0),
53631
- K("ul", n1, [(U(!0), W(H, null, B(x.value, (e) => (U(), W("li", {
53695
+ K("ul", a1, [(U(!0), W(H, null, B(x.value, (e) => (U(), W("li", {
53632
53696
  key: e.name,
53633
53697
  class: "member-card"
53634
53698
  }, [
53635
- K("header", r1, [
53699
+ K("header", o1, [
53636
53700
  q(l, {
53637
53701
  src: I(n).identities[e.name]?.icon,
53638
53702
  text: I(n).identities[e.name]?.initials,
@@ -53645,14 +53709,14 @@ var a$ = { class: "progress-board is-docked" }, o$ = { class: "pb-header" }, s$
53645
53709
  "alt",
53646
53710
  "class"
53647
53711
  ]),
53648
- K("div", i1, [K("strong", null, [J(P(I(n).display_name(e.name)), 1), e.role === "host" ? (U(), G(ie, {
53712
+ K("div", s1, [K("strong", null, [J(P(I(n).display_name(e.name)), 1), e.role === "host" ? (U(), G(ie, {
53649
53713
  key: 0,
53650
53714
  name: "i-lucide-crown",
53651
53715
  title: "主持人"
53652
53716
  })) : Y("", !0)]), u.value.descriptions?.[e.name] ? (U(), W("small", {
53653
53717
  key: 0,
53654
53718
  title: u.value.descriptions[e.name]
53655
- }, P(u.value.descriptions[e.name]), 9, a1)) : Y("", !0)]),
53719
+ }, P(u.value.descriptions[e.name]), 9, c1)) : Y("", !0)]),
53656
53720
  q(j, {
53657
53721
  color: e.access === "manual" && !e.registered_at ? "warning" : e.status === "active" ? "success" : "neutral",
53658
53722
  variant: "subtle",
@@ -53662,7 +53726,7 @@ var a$ = { class: "progress-board is-docked" }, o$ = { class: "pb-header" }, s$
53662
53726
  _: 2
53663
53727
  }, 1032, ["color"])
53664
53728
  ]),
53665
- K("dl", o1, [
53729
+ K("dl", l1, [
53666
53730
  K("div", null, [i[6] ||= K("dt", null, "接入", -1), K("dd", null, [S(C(e)).value ? (U(), W("div", {
53667
53731
  key: 0,
53668
53732
  class: M(["expert-card-modes overview-switch", { "is-locked": !S(C(e)).editable }]),
@@ -53676,11 +53740,11 @@ var a$ = { class: "progress-board is-docked" }, o$ = { class: "pb-header" }, s$
53676
53740
  "aria-checked": S(C(e)).value === t.value,
53677
53741
  disabled: !S(C(e)).editable || !!h.value,
53678
53742
  onClick: (n) => w(e, t.value)
53679
- }, P(t.label), 9, c1)), 64))], 10, s1)) : (U(), W("span", l1, P(S(e).text), 1))])]),
53743
+ }, P(t.label), 9, d1)), 64))], 10, u1)) : (U(), W("span", f1, P(S(e).text), 1))])]),
53680
53744
  K("div", null, [i[7] ||= K("dt", null, "模型", -1), K("dd", {
53681
53745
  class: M(["overview-model", { "overview-muted": m(e.name) }]),
53682
53746
  title: I(n).participant_model(e.name, u.value, f.value) || void 0
53683
- }, P(e.access === "runner" ? I(n).participant_model(e.name, u.value, f.value) || "—" : "在它自己的会话里设置"), 11, u1)]),
53747
+ }, P(e.access === "runner" ? I(n).participant_model(e.name, u.value, f.value) || "—" : "在它自己的会话里设置"), 11, p1)]),
53684
53748
  K("div", null, [i[8] ||= K("dt", null, "项目文件", -1), K("dd", null, [T(e).value ? (U(), W("div", {
53685
53749
  key: 0,
53686
53750
  class: M(["expert-card-modes overview-switch", { "is-locked": !T(e).editable }]),
@@ -53695,11 +53759,11 @@ var a$ = { class: "progress-board is-docked" }, o$ = { class: "pb-header" }, s$
53695
53759
  "aria-checked": T(e).value === t.value,
53696
53760
  disabled: !T(e).editable || !!h.value,
53697
53761
  onClick: (n) => E(e, t.value)
53698
- }, P(t.label), 9, f1)), 64))], 10, d1)) : (U(), W("span", {
53762
+ }, P(t.label), 9, h1)), 64))], 10, m1)) : (U(), W("span", {
53699
53763
  key: 1,
53700
53764
  class: "overview-muted",
53701
53765
  title: T(e).hint
53702
- }, P(T(e).text), 9, p1))])])
53766
+ }, P(T(e).text), 9, g1))])])
53703
53767
  ]),
53704
53768
  K("footer", {
53705
53769
  class: "member-card-actions",
@@ -53718,7 +53782,7 @@ var a$ = { class: "progress-board is-docked" }, o$ = { class: "pb-header" }, s$
53718
53782
  "label",
53719
53783
  "disabled",
53720
53784
  "onClick"
53721
- ]))), 128))]), O(e).place.length ? (U(), W("div", h1, [(U(!0), W(H, null, B(O(e).place, (e) => (U(), G(o, {
53785
+ ]))), 128))]), O(e).place.length ? (U(), W("div", v1, [(U(!0), W(H, null, B(O(e).place, (e) => (U(), G(o, {
53722
53786
  key: e.label,
53723
53787
  icon: e.icon,
53724
53788
  label: e.label,
@@ -53733,26 +53797,26 @@ var a$ = { class: "progress-board is-docked" }, o$ = { class: "pb-header" }, s$
53733
53797
  "color",
53734
53798
  "disabled",
53735
53799
  "onClick"
53736
- ]))), 128))])) : Y("", !0)], 8, m1)
53800
+ ]))), 128))])) : Y("", !0)], 8, _1)
53737
53801
  ]))), 128))]),
53738
- I(t).access?.error || I(t).free_error ? (U(), W("p", g1, P(I(t).access?.error || I(t).free_error), 1)) : I(t).access?.notice || I(t).free_notice ? (U(), W("p", _1, P(I(t).access?.notice || I(t).free_notice), 1)) : Y("", !0),
53802
+ I(t).access?.error || I(t).free_error ? (U(), W("p", y1, P(I(t).access?.error || I(t).free_error), 1)) : I(t).access?.notice || I(t).free_notice ? (U(), W("p", b1, P(I(t).access?.notice || I(t).free_notice), 1)) : Y("", !0),
53739
53803
  i[10] ||= K("p", { class: "overview-result" }, "复制说明或下载配置不代表 AI 已接入,以实际回答和运行记录为准。", -1),
53740
53804
  b.value.text ? (U(), W("p", {
53741
53805
  key: 3,
53742
53806
  class: M(["overview-result", { "is-error": b.value.tone === "error" }]),
53743
53807
  role: b.value.tone === "error" ? "alert" : "status"
53744
- }, P(b.value.text), 11, v1)) : Y("", !0)
53808
+ }, P(b.value.text), 11, x1)) : Y("", !0)
53745
53809
  ]),
53746
- K("section", y1, [i[17] ||= K("h3", null, "协作设置", -1), K("dl", b1, [
53810
+ K("section", S1, [i[17] ||= K("h3", null, "协作设置", -1), K("dl", C1, [
53747
53811
  K("div", null, [i[11] ||= K("dt", null, "主持人", -1), K("dd", null, P(u.value.host ? I(n).display_name(u.value.host) : "未指定"), 1)]),
53748
53812
  K("div", null, [i[12] ||= K("dt", null, "智能调度", -1), K("dd", null, P(D.value), 1)]),
53749
- d.value && u.value.free?.max_rounds ? (U(), W("div", x1, [i[13] ||= K("dt", null, "主持人自动推进", -1), K("dd", null, [I(t).access?.can_manage ? (U(), W(H, { key: 0 }, [q(Rq, {
53813
+ d.value && u.value.free?.max_rounds ? (U(), W("div", w1, [i[13] ||= K("dt", null, "主持人自动推进", -1), K("dd", null, [I(t).access?.can_manage ? (U(), W(H, { key: 0 }, [q(Rq, {
53750
53814
  "model-value": _.value,
53751
53815
  disabled: g.value,
53752
53816
  "onUpdate:modelValue": y
53753
- }, null, 8, ["model-value", "disabled"]), v.value ? (U(), W("small", S1, "已保存,进行中的任务链也按新值")) : Y("", !0)], 64)) : (U(), W("span", C1, "你的一条消息最多推进 " + P(u.value.free.max_rounds) + " 轮(主持人派活、成员回答、交回汇总为一轮),到上限即停下等你", 1))])])) : Y("", !0),
53754
- d.value ? Y("", !0) : (U(), W("div", w1, [i[14] ||= K("dt", null, "逐人追问", -1), K("dd", null, P(u.value.named_followup ? "开启:主持人每轮给每位专家写针对性追问" : "关闭:首轮后请专家回应上一轮观点"), 1)])),
53755
- K("div", null, [i[15] ||= K("dt", null, "阅读地址", -1), K("dd", T1, [K("code", null, P(ne.value), 1), q(o, {
53817
+ }, null, 8, ["model-value", "disabled"]), v.value ? (U(), W("small", T1, "已保存,进行中的任务链也按新值")) : Y("", !0)], 64)) : (U(), W("span", E1, "你的一条消息最多推进 " + P(u.value.free.max_rounds) + " 轮(主持人派活、成员回答、交回汇总为一轮),到上限即停下等你", 1))])])) : Y("", !0),
53818
+ d.value ? Y("", !0) : (U(), W("div", D1, [i[14] ||= K("dt", null, "逐人追问", -1), K("dd", null, P(u.value.named_followup ? "开启:主持人每轮给每位专家写针对性追问" : "关闭:首轮后请专家回应上一轮观点"), 1)])),
53819
+ K("div", null, [i[15] ||= K("dt", null, "阅读地址", -1), K("dd", O1, [K("code", null, P(ne.value), 1), q(o, {
53756
53820
  icon: "i-lucide-copy",
53757
53821
  color: "neutral",
53758
53822
  variant: "ghost",
@@ -53760,9 +53824,9 @@ var a$ = { class: "progress-board is-docked" }, o$ = { class: "pb-header" }, s$
53760
53824
  "aria-label": "复制阅读地址",
53761
53825
  onClick: i[2] ||= (e) => I(r)("copy", ne.value)
53762
53826
  })])]),
53763
- re.value ? (U(), W("div", E1, [i[16] ||= K("dt", null, "创建时间", -1), K("dd", null, P(re.value), 1)])) : Y("", !0)
53827
+ re.value ? (U(), W("div", k1, [i[16] ||= K("dt", null, "创建时间", -1), K("dd", null, P(re.value), 1)])) : Y("", !0)
53764
53828
  ])]),
53765
- q(LZ, {
53829
+ q(BZ, {
53766
53830
  open: k.value,
53767
53831
  "onUpdate:open": i[3] ||= (e) => k.value = e,
53768
53832
  description: d.value ? "新成员加入后不打断其他成员;点卡片翻面可设置软件、模型、项目权限和要续接的已有会话。" : "新专家由程序按本机软件配置启动,或由你手动启动,加入本轮发言队列。"
@@ -53789,31 +53853,31 @@ var a$ = { class: "progress-board is-docked" }, o$ = { class: "pb-header" }, s$
53789
53853
  ]);
53790
53854
  };
53791
53855
  }
53792
- }, [["__scopeId", "data-v-f360fbe4"]]), k1 = {
53856
+ }, [["__scopeId", "data-v-f360fbe4"]]), M1 = {
53793
53857
  thinking: "思考",
53794
53858
  command: "命令",
53795
53859
  tool: "工具",
53796
53860
  editing: "编辑",
53797
53861
  writing: "撰写"
53798
- }, A1 = {
53862
+ }, N1 = {
53799
53863
  thinking: "model",
53800
53864
  writing: "model",
53801
53865
  command: "tool",
53802
53866
  tool: "tool",
53803
53867
  editing: "tool"
53804
- }, j1 = {
53868
+ }, P1 = {
53805
53869
  running: "进行中",
53806
53870
  done: "完成",
53807
53871
  failed: "失败",
53808
53872
  cancelled: "已撤销"
53809
- }, M1 = 3e5, N1 = .03;
53810
- function P1(e) {
53873
+ }, F1 = 3e5, I1 = .03;
53874
+ function L1(e) {
53811
53875
  if (e < 1e3) return `${Math.max(0, Math.round(e))}ms`;
53812
53876
  if (e < 1e4) return `${(e / 1e3).toFixed(1)}s`;
53813
53877
  let t = Math.round(e / 1e3);
53814
53878
  return t < 60 ? `${t}s` : t < 3600 ? `${Math.floor(t / 60)}m ${String(t % 60).padStart(2, "0")}s` : `${Math.floor(t / 3600)}h ${String(Math.floor(t % 3600 / 60)).padStart(2, "0")}m`;
53815
53879
  }
53816
- function F1(e, t) {
53880
+ function R1(e, t) {
53817
53881
  let n = e.state === "running", r = e.finished_at ? e.finished_at * 1e3 : t, i = e.dispatched_at ? e.dispatched_at * 1e3 : 0, a = Math.min(e.queued_at ? e.queued_at * 1e3 : i || r, i || r), o = i ? e.segments.map((t, a) => {
53818
53882
  let o = n && a === e.segments.length - 1, s = Math.min(i + t.end_ms, r);
53819
53883
  return {
@@ -53839,8 +53903,8 @@ function F1(e, t) {
53839
53903
  notes: l
53840
53904
  };
53841
53905
  }
53842
- var I1 = 18e4;
53843
- function L1(e, t) {
53906
+ var z1 = 18e4;
53907
+ function B1(e, t) {
53844
53908
  let { item: n } = e;
53845
53909
  if (n.state === "failed") return {
53846
53910
  tone: "failed",
@@ -53864,22 +53928,22 @@ function L1(e, t) {
53864
53928
  let r = n.dispatched_at * 1e3, i = n.segments.at(-1), a = Math.max(n.activity_at ? n.activity_at * 1e3 : 0, i ? r + i.end_ms : 0, ...(n.notes || []).map((e) => e * 1e3)), o = a ? t - a : 0;
53865
53929
  return o >= 18e4 ? i?.phase === "command" ? {
53866
53930
  tone: "warn",
53867
- text: `命令已运行 ${P1(o)}`
53931
+ text: `命令已运行 ${L1(o)}`
53868
53932
  } : {
53869
53933
  tone: "warn",
53870
- text: `已 ${P1(o)} 无输出,可能卡住`
53934
+ text: `已 ${L1(o)} 无输出,可能卡住`
53871
53935
  } : n.last_note ? {
53872
53936
  tone: "live",
53873
53937
  text: n.last_note
53874
53938
  } : i ? {
53875
53939
  tone: "live",
53876
- text: `${k1[i.phase]}${i.tool ? ` · ${i.tool}` : ""}中`
53940
+ text: `${M1[i.phase]}${i.tool ? ` · ${i.tool}` : ""}中`
53877
53941
  } : {
53878
53942
  tone: "live",
53879
53943
  text: "处理中"
53880
53944
  };
53881
53945
  }
53882
- function R1(e, t) {
53946
+ function V1(e, t) {
53883
53947
  return [...e.segments.map((e) => ({
53884
53948
  at: e.start,
53885
53949
  kind: "phase",
@@ -53893,7 +53957,7 @@ function R1(e, t) {
53893
53957
  text: t?.[e.index] ?? (t ? "(未能读取)" : "读取中…")
53894
53958
  }))].sort((e, t) => e.at - t.at || (e.kind === "note") - (t.kind === "note"));
53895
53959
  }
53896
- function z1(e, t, n = /* @__PURE__ */ new Map()) {
53960
+ function H1(e, t, n = /* @__PURE__ */ new Map()) {
53897
53961
  let r = t / 1e3, i = [];
53898
53962
  for (let t of e.executions) {
53899
53963
  if ((t.queued_at || t.dispatched_at || Infinity) > r) continue;
@@ -53927,7 +53991,7 @@ function z1(e, t, n = /* @__PURE__ */ new Map()) {
53927
53991
  executions: i
53928
53992
  };
53929
53993
  }
53930
- function B1(e, t, n) {
53994
+ function U1(e, t, n) {
53931
53995
  let r = e.filter((e) => e.at >= t && e.at <= n);
53932
53996
  if (r.length) return {
53933
53997
  notes: r,
@@ -53939,13 +54003,13 @@ function B1(e, t, n) {
53939
54003
  earlier: !!i
53940
54004
  };
53941
54005
  }
53942
- function V1(e, t) {
54006
+ function W1(e, t) {
53943
54007
  let n = e.executions.map((n) => ({
53944
54008
  key: `${n.source}:${n.id}`,
53945
54009
  parent: n.parent_id ? `free:${n.parent_id}` : "",
53946
54010
  item: n,
53947
54011
  truncated: n.segments.length >= e.segment_limit,
53948
- ...F1(n, t)
54012
+ ...R1(n, t)
53949
54013
  })), r = new Map(n.map((e) => [e.key, e])), i = (e) => {
53950
54014
  let t = r.get(e.parent);
53951
54015
  for (let n = /* @__PURE__ */ new Set([e.key]); t?.item.member === e.item.member && !n.has(t.key); t = r.get(t.parent)) n.add(t.key);
@@ -53974,18 +54038,18 @@ function V1(e, t) {
53974
54038
  });
53975
54039
  return o;
53976
54040
  }
53977
- function H1(e, t) {
54041
+ function G1(e, t) {
53978
54042
  if (e.source === "discussion") return `run:${e.run_id || e.id}`;
53979
54043
  let n = e;
53980
54044
  for (let r = /* @__PURE__ */ new Set([e.id]); n.parent_id && t.has(n.parent_id) && !r.has(n.parent_id); n = t.get(n.parent_id)) r.add(n.parent_id);
53981
54045
  return n.task_id ? `task:${n.task_id}` : `exec:${n.id}`;
53982
54046
  }
53983
- function U1(e, t) {
54047
+ function K1(e, t) {
53984
54048
  let n = new Map(e.executions.filter((e) => e.source === "free").map((e) => [e.id, e])), r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map();
53985
54049
  for (let a of e.executions) {
53986
- let e = H1(a, n);
54050
+ let e = G1(a, n);
53987
54051
  i.set(`${a.source}:${a.id}`, e);
53988
- let o = F1(a, t), s = r.get(e) || {
54052
+ let o = R1(a, t), s = r.get(e) || {
53989
54053
  key: e,
53990
54054
  source: a.source,
53991
54055
  start: o.start,
@@ -54003,7 +54067,7 @@ function U1(e, t) {
54003
54067
  of: i
54004
54068
  };
54005
54069
  }
54006
- function W1(e, t) {
54070
+ function q1(e, t) {
54007
54071
  let n = new Map(e.map((e, t) => [e.key, t])), r = /* @__PURE__ */ new Map(), i = (e, t) => {
54008
54072
  r.has(e) || r.set(e, []), r.get(e).push(t);
54009
54073
  };
@@ -54029,7 +54093,7 @@ function W1(e, t) {
54029
54093
  });
54030
54094
  }), r;
54031
54095
  }
54032
- var G1 = [
54096
+ var J1 = [
54033
54097
  5,
54034
54098
  10,
54035
54099
  15,
@@ -54053,8 +54117,8 @@ var G1 = [
54053
54117
  21600,
54054
54118
  43200,
54055
54119
  86400
54056
- ].map((e) => e * 1e3), K1 = .75;
54057
- function q1(e, t = !1) {
54120
+ ].map((e) => e * 1e3), Y1 = .75;
54121
+ function X1(e, t = !1) {
54058
54122
  let n = e.map((e) => [e.start, e.end]).sort((e, t) => e[0] - t[0]);
54059
54123
  if (!n.length) return {
54060
54124
  start: 0,
@@ -54070,8 +54134,8 @@ function q1(e, t = !1) {
54070
54134
  n && e <= n[1] + 3e5 ? n[1] = Math.max(n[1], t) : r.push([e, t]);
54071
54135
  }
54072
54136
  let i = r.reduce((e, [t, n]) => e + (n - t), 0), a = i;
54073
- t && i && (a = G1.find((e) => e >= i / K1) ?? Math.ceil(i / K1), r.at(-1)[1] += a - i);
54074
- let o = Math.min(N1, .5 / Math.max(1, r.length - 1)), s = a ? (1 - o * (r.length - 1)) / a : 0, c = [], l = 0;
54137
+ t && i && (a = J1.find((e) => e >= i / Y1) ?? Math.ceil(i / Y1), r.at(-1)[1] += a - i);
54138
+ let o = Math.min(I1, .5 / Math.max(1, r.length - 1)), s = a ? (1 - o * (r.length - 1)) / a : 0, c = [], l = 0;
54075
54139
  return r.forEach(([e, t], n) => {
54076
54140
  if (n) {
54077
54141
  let t = r[n - 1][1];
@@ -54114,7 +54178,7 @@ function q1(e, t = !1) {
54114
54178
  }))
54115
54179
  };
54116
54180
  }
54117
- var J1 = [
54181
+ var Z1 = [
54118
54182
  1,
54119
54183
  2,
54120
54184
  5,
@@ -54133,14 +54197,14 @@ var J1 = [
54133
54197
  21600,
54134
54198
  43200,
54135
54199
  86400
54136
- ].map((e) => e * 1e3), Y1 = .12;
54137
- function X1(e, t = 6, n = {
54200
+ ].map((e) => e * 1e3), Q1 = .12;
54201
+ function $1(e, t = 6, n = {
54138
54202
  from: 0,
54139
54203
  span: 1
54140
54204
  }) {
54141
54205
  let r = (e.total_ms ?? e.busy_ms) * n.span;
54142
54206
  if (!r) return [];
54143
- let i = J1.find((e) => r / e <= t) ?? J1.at(-1), a = Y1 * n.span, o = [];
54207
+ let i = Z1.find((e) => r / e <= t) ?? Z1.at(-1), a = Q1 * n.span, o = [];
54144
54208
  for (let t of e.spans) if (!(t.from + t.width < n.from || t.from > n.from + n.span)) for (let r = Math.ceil(t.start / i) * i; r <= t.end; r += i) {
54145
54209
  let t = e.x(r);
54146
54210
  t < n.from || t > n.from + n.span || (!o.length || t - o.at(-1).x >= a) && o.push({
@@ -54153,8 +54217,8 @@ function X1(e, t = 6, n = {
54153
54217
  seconds: i < 6e4
54154
54218
  }));
54155
54219
  }
54156
- var Z1 = .01, Q1 = 2e3;
54157
- function $1(e, t) {
54220
+ var e0 = .01, t0 = 2e3;
54221
+ function n0(e, t) {
54158
54222
  let n = (e) => (e - t.from) / t.span;
54159
54223
  return {
54160
54224
  ...e,
@@ -54171,20 +54235,20 @@ function $1(e, t) {
54171
54235
  }))
54172
54236
  };
54173
54237
  }
54174
- function e0(e, t, n, r = 0) {
54175
- let i = Math.max(Z1, r ? Q1 / r : 0), a = Math.min(1, Math.max(i, e.span * n)), o = e.from + t * e.span;
54238
+ function r0(e, t, n, r = 0) {
54239
+ let i = Math.max(e0, r ? t0 / r : 0), a = Math.min(1, Math.max(i, e.span * n)), o = e.from + t * e.span;
54176
54240
  return {
54177
54241
  from: Math.min(1 - a, Math.max(0, o - t * a)),
54178
54242
  span: a
54179
54243
  };
54180
54244
  }
54181
- function t0(e, t) {
54245
+ function i0(e, t) {
54182
54246
  return {
54183
54247
  from: Math.min(1 - e.span, Math.max(0, e.from + t * e.span)),
54184
54248
  span: e.span
54185
54249
  };
54186
54250
  }
54187
- function n0(e, t = Date.now()) {
54251
+ function a0(e, t = Date.now()) {
54188
54252
  let n = null;
54189
54253
  for (let t of e) for (let e of t.segments) (!n || e.seen - e.start > n.end - n.start) && (n = {
54190
54254
  ...e,
@@ -54196,7 +54260,7 @@ function n0(e, t = Date.now()) {
54196
54260
  executions: e.length,
54197
54261
  running: e.filter((e) => e.item.state === "running").length,
54198
54262
  failed: e.filter((e) => e.item.state === "failed").length,
54199
- stalled: e.filter((e) => e.item.state === "running" && L1(e, t).tone === "warn").length,
54263
+ stalled: e.filter((e) => e.item.state === "running" && B1(e, t).tone === "warn").length,
54200
54264
  tool_segments: e.reduce((e, t) => e + t.segments.filter((e) => [
54201
54265
  "command",
54202
54266
  "tool",
@@ -54207,116 +54271,116 @@ function n0(e, t = Date.now()) {
54207
54271
  }
54208
54272
  //#endregion
54209
54273
  //#region frontend/ExecutionTimeline.vue
54210
- var r0 = {
54274
+ var o0 = {
54211
54275
  class: "merged-section execution-timeline",
54212
54276
  "aria-label": "执行时间线"
54213
- }, i0 = {
54277
+ }, s0 = {
54214
54278
  key: 0,
54215
54279
  role: "alert",
54216
54280
  class: "fine-print wf-error"
54217
- }, a0 = {
54281
+ }, c0 = {
54218
54282
  key: 1,
54219
54283
  class: "fine-print"
54220
- }, o0 = { class: "wf-head" }, s0 = {
54284
+ }, l0 = { class: "wf-head" }, u0 = {
54221
54285
  key: 0,
54222
54286
  class: "wf-state is-replay"
54223
- }, c0 = {
54287
+ }, d0 = {
54224
54288
  key: 2,
54225
54289
  class: "wf-headline"
54226
- }, l0 = { class: "wf-summary" }, u0 = ["title"], d0 = ["title"], f0 = { title: "连续调用同一工具合并为一段" }, p0 = {
54290
+ }, f0 = { class: "wf-summary" }, p0 = ["title"], m0 = ["title"], h0 = { title: "连续调用同一工具合并为一段" }, g0 = {
54227
54291
  class: "wf-legend",
54228
54292
  "aria-label": "图例"
54229
- }, m0 = {
54293
+ }, _0 = {
54230
54294
  key: 0,
54231
54295
  class: "wf-legend-note"
54232
- }, h0 = {
54296
+ }, v0 = {
54233
54297
  key: 1,
54234
54298
  class: "wf-legend-note"
54235
- }, g0 = { class: "wf-axis-label" }, _0 = {
54299
+ }, y0 = { class: "wf-axis-label" }, b0 = {
54236
54300
  key: 0,
54237
54301
  class: "wf-zoom"
54238
- }, v0 = {
54302
+ }, x0 = {
54239
54303
  key: 1,
54240
54304
  class: "wf-zoom-hint",
54241
54305
  title: "Ctrl + 滚轮缩放;放大后按住中键或拖动时间轴平移,双击时间轴还原"
54242
- }, y0 = {
54306
+ }, S0 = {
54243
54307
  key: 2,
54244
54308
  class: "wf-branch"
54245
- }, b0 = ["title"], x0 = {
54309
+ }, C0 = ["title"], w0 = {
54246
54310
  key: 0,
54247
54311
  class: "wf-guides",
54248
54312
  "aria-hidden": "true"
54249
- }, S0 = [
54313
+ }, T0 = [
54250
54314
  "aria-expanded",
54251
54315
  "aria-label",
54252
54316
  "onClick"
54253
- ], C0 = {
54317
+ ], E0 = {
54254
54318
  key: 2,
54255
54319
  class: "wf-toggle-space"
54256
- }, w0 = [
54320
+ }, D0 = [
54257
54321
  "aria-expanded",
54258
54322
  "onClick",
54259
54323
  "onMouseenter",
54260
54324
  "onMouseleave"
54261
- ], T0 = { class: "wf-name-line" }, E0 = {
54325
+ ], O0 = { class: "wf-name-line" }, k0 = {
54262
54326
  key: 0,
54263
54327
  class: "wf-spinner",
54264
54328
  "aria-hidden": "true"
54265
- }, D0 = {
54329
+ }, A0 = {
54266
54330
  key: 1,
54267
54331
  class: "wf-pill is-slowest"
54268
- }, O0 = {
54332
+ }, j0 = {
54269
54333
  key: 0,
54270
54334
  class: "wf-live-dot",
54271
54335
  "aria-hidden": "true"
54272
- }, k0 = ["aria-label", "onMouseleave"], A0 = { class: "wf-track" }, j0 = ["data-tone"], M0 = ["onMouseenter", "onClick"], N0 = ["onMouseenter", "onClick"], P0 = [
54336
+ }, M0 = ["aria-label", "onMouseleave"], N0 = { class: "wf-track" }, P0 = ["data-tone"], F0 = ["onMouseenter", "onClick"], I0 = ["onMouseenter", "onClick"], L0 = [
54273
54337
  "data-tone",
54274
54338
  "onMouseenter",
54275
54339
  "onClick"
54276
- ], F0 = [
54340
+ ], R0 = [
54277
54341
  "data-tone",
54278
54342
  "onMouseenter",
54279
54343
  "onClick"
54280
- ], I0 = [
54344
+ ], z0 = [
54281
54345
  "data-tone",
54282
54346
  "onMouseenter",
54283
54347
  "onClick"
54284
- ], L0 = [
54348
+ ], B0 = [
54285
54349
  "aria-label",
54286
54350
  "onMouseenter",
54287
54351
  "onClick",
54288
54352
  "onFocus",
54289
54353
  "onBlur"
54290
- ], R0 = { class: "wf-end" }, z0 = { key: 1 }, B0 = ["aria-label"], V0 = { class: "wf-detail-head" }, H0 = { key: 0 }, U0 = { key: 1 }, W0 = { class: "is-failed" }, G0 = { key: 2 }, K0 = { key: 3 }, q0 = {
54354
+ ], V0 = { class: "wf-end" }, H0 = { key: 1 }, U0 = ["aria-label"], W0 = { class: "wf-detail-head" }, G0 = { key: 0 }, K0 = { key: 1 }, q0 = { class: "is-failed" }, J0 = { key: 2 }, Y0 = { key: 3 }, X0 = {
54291
54355
  key: 0,
54292
54356
  class: "wf-log",
54293
54357
  "aria-label": "过程"
54294
- }, J0 = ["data-tone"], Y0 = {
54358
+ }, Z0 = ["data-tone"], Q0 = {
54295
54359
  key: 1,
54296
54360
  class: "wf-log-note"
54297
- }, X0 = {
54361
+ }, $0 = {
54298
54362
  key: 1,
54299
54363
  class: "fine-print"
54300
- }, Z0 = {
54364
+ }, e2 = {
54301
54365
  key: 1,
54302
54366
  class: "wf-player"
54303
- }, Q0 = {
54367
+ }, t2 = {
54304
54368
  key: 2,
54305
54369
  class: "wf-player"
54306
- }, $0 = ["aria-label"], e2 = ["disabled"], t2 = ["max", "value"], n2 = { class: "wf-player-time" }, r2 = {
54370
+ }, n2 = ["aria-label"], r2 = ["disabled"], i2 = ["max", "value"], a2 = { class: "wf-player-time" }, o2 = {
54307
54371
  key: 3,
54308
54372
  class: "wf-foot"
54309
- }, i2 = { key: 0 }, a2 = { key: 1 }, o2 = ["role"], s2 = {
54373
+ }, s2 = { key: 0 }, c2 = { key: 1 }, l2 = ["role"], u2 = {
54310
54374
  key: 1,
54311
54375
  class: "wf-card-text"
54312
- }, c2 = {
54376
+ }, d2 = {
54313
54377
  key: 2,
54314
54378
  class: "wf-card-reason"
54315
- }, l2 = { class: "wf-card-label" }, u2 = 2e3, d2 = 6e4, f2 = 100, p2 = 60, m2 = 2e4, h2 = 600, g2 = 5, _2 = 16, v2 = 90, y2 = 2, b2 = 8, x2 = 560, S2 = .0015, C2 = "latest", w2 = "all", T2 = 22, E2 = 5, D2 = 52, O2 = /*#__PURE__*/ XH({
54379
+ }, f2 = { class: "wf-card-label" }, p2 = 2e3, m2 = 6e4, h2 = 100, g2 = 60, _2 = 2e4, v2 = 600, y2 = 5, b2 = 16, x2 = 90, S2 = 2, C2 = 8, w2 = 560, T2 = .0015, E2 = "latest", D2 = "all", O2 = 22, k2 = 5, A2 = 52, j2 = /*#__PURE__*/ XH({
54316
54380
  __name: "ExecutionTimeline",
54317
54381
  emits: ["detail"],
54318
54382
  setup(e, { emit: t }) {
54319
- let n = t, { view: r, bridge: i } = xr("discussion"), a = I1 / 6e4, o = [
54383
+ let n = t, { view: r, bridge: i } = xr("discussion"), a = z1 / 6e4, o = [
54320
54384
  1,
54321
54385
  2,
54322
54386
  4,
@@ -54332,7 +54396,7 @@ var r0 = {
54332
54396
  let t = d.value;
54333
54397
  if (!t || w) return;
54334
54398
  w = !0;
54335
- let n = e || !S || Date.now() - C >= d2 ? 0 : S - g2;
54399
+ let n = e || !S || Date.now() - C >= m2 ? 0 : S - y2;
54336
54400
  try {
54337
54401
  let e = await i.request(`/api/rooms/${t}/timeline${n ? `?after=${n}` : ""}`);
54338
54402
  if (t !== d.value) return;
@@ -54355,7 +54419,7 @@ var r0 = {
54355
54419
  R(Z(() => te.value?.executions.some((e) => e.state === "running")), (e) => {
54356
54420
  clearInterval(T), e && (T = setInterval(() => {
54357
54421
  document.hidden || ee();
54358
- }, u2));
54422
+ }, p2));
54359
54423
  }, { immediate: !0 }), R(d, () => {
54360
54424
  f.value = /* @__PURE__ */ new Map(), p.value = null, g.value = /* @__PURE__ */ new Set(), _.value = /* @__PURE__ */ new Map(), v.value = null, y.value = "", S = 0, ee(!0);
54361
54425
  }, { immediate: !0 }), R(() => r.value.room, (e, t) => {
@@ -54370,7 +54434,7 @@ var r0 = {
54370
54434
  };
54371
54435
  }
54372
54436
  function ie(e) {
54373
- c.value && e.target.closest?.(".wf-track, .wf-axis") && (e.ctrlKey || e.metaKey ? (e.preventDefault(), De.value = e0(De.value, re(e).share, Math.exp(e.deltaY * S2), Te.value.total_ms)) : Oe.value && (e.shiftKey || Math.abs(e.deltaX) > Math.abs(e.deltaY)) && (e.preventDefault(), De.value = t0(De.value, (e.shiftKey ? e.deltaY : e.deltaX) / re(e).width)));
54437
+ c.value && e.target.closest?.(".wf-track, .wf-axis") && (e.ctrlKey || e.metaKey ? (e.preventDefault(), De.value = r0(De.value, re(e).share, Math.exp(e.deltaY * T2), Te.value.total_ms)) : Oe.value && (e.shiftKey || Math.abs(e.deltaX) > Math.abs(e.deltaY)) && (e.preventDefault(), De.value = i0(De.value, (e.shiftKey ? e.deltaY : e.deltaX) / re(e).width)));
54374
54438
  }
54375
54439
  function j(e) {
54376
54440
  let t = e.target.closest?.(".wf-axis");
@@ -54381,7 +54445,7 @@ var r0 = {
54381
54445
  }, e.currentTarget.setPointerCapture(e.pointerId));
54382
54446
  }
54383
54447
  function ae(e) {
54384
- ne && (De.value = t0({
54448
+ ne && (De.value = i0({
54385
54449
  from: ne.from,
54386
54450
  span: De.value.span
54387
54451
  }, -(e.clientX - ne.x) / ne.width));
@@ -54407,15 +54471,15 @@ var r0 = {
54407
54471
  }), ta(() => {
54408
54472
  clearInterval(T), cancelAnimationFrame(E), document.removeEventListener("pointerdown", ce), document.removeEventListener("keydown", le), u?.disconnect();
54409
54473
  });
54410
- let ue = /* @__PURE__ */ F(C2), de = Z(() => te.value ? U1(te.value, h.value) : {
54474
+ let ue = /* @__PURE__ */ F(E2), de = Z(() => te.value ? K1(te.value, h.value) : {
54411
54475
  list: [],
54412
54476
  of: /* @__PURE__ */ new Map()
54413
- }), pe = Z(() => ue.value === C2 ? de.value.list[0]?.key : ue.value === w2 || de.value.list.some((e) => e.key === ue.value) ? ue.value : de.value.list[0]?.key), me = Z(() => !te.value || pe.value === w2 ? te.value : {
54477
+ }), pe = Z(() => ue.value === E2 ? de.value.list[0]?.key : ue.value === D2 || de.value.list.some((e) => e.key === ue.value) ? ue.value : de.value.list[0]?.key), me = Z(() => !te.value || pe.value === D2 ? te.value : {
54414
54478
  ...te.value,
54415
54479
  executions: te.value.executions.filter((e) => de.value.of.get(`${e.source}:${e.id}`) === pe.value)
54416
54480
  });
54417
54481
  R(d, () => {
54418
- ue.value = C2;
54482
+ ue.value = E2;
54419
54483
  });
54420
54484
  let he = (e) => new Date(e).toLocaleString("zh-CN", {
54421
54485
  month: "numeric",
@@ -54425,13 +54489,13 @@ var r0 = {
54425
54489
  hour12: !1
54426
54490
  });
54427
54491
  function ge(e) {
54428
- let t = e.task ? `${e.task.replace(/\s+/g, " ").slice(0, T2)}${e.task.length > T2 ? "…" : ""}` : e.source === "discussion" ? "讨论" : "执行";
54492
+ let t = e.task ? `${e.task.replace(/\s+/g, " ").slice(0, O2)}${e.task.length > O2 ? "…" : ""}` : e.source === "discussion" ? "讨论" : "执行";
54429
54493
  return `${he(e.start)} · ${t} · ${e.count} 次${e.running ? " · 进行中" : e.failed ? " · 有失败" : ""}`;
54430
54494
  }
54431
54495
  let N = Z(() => [
54432
54496
  {
54433
54497
  label: "最近一轮(自动跟随)",
54434
- value: C2
54498
+ value: E2
54435
54499
  },
54436
54500
  ...de.value.list.map((e) => ({
54437
54501
  label: ge(e),
@@ -54439,9 +54503,9 @@ var r0 = {
54439
54503
  })),
54440
54504
  {
54441
54505
  label: "全部执行",
54442
- value: w2
54506
+ value: D2
54443
54507
  }
54444
- ]), _e = Z(() => me.value ? V1(me.value, h.value) : []), ve = Z(() => _e.value.some((e) => e.item.state === "running")), ye = Z(() => {
54508
+ ]), _e = Z(() => me.value ? W1(me.value, h.value) : []), ve = Z(() => _e.value.some((e) => e.item.state === "running")), ye = Z(() => {
54445
54509
  let e = Math.min(..._e.value.map((e) => e.start)), t = Math.max(..._e.value.map((e) => e.end));
54446
54510
  return Number.isFinite(e) ? {
54447
54511
  start: e,
@@ -54452,17 +54516,17 @@ var r0 = {
54452
54516
  end: 0,
54453
54517
  duration: 0
54454
54518
  };
54455
- }), be = Z(() => k.position !== null && !ve.value), xe = Z(() => be.value ? ye.value.start + k.position : h.value), Se = Z(() => be.value ? V1(z1(me.value, xe.value, _.value), xe.value) : _e.value), Ce = Z(() => Se.value.filter((e) => !e.ancestors.some((e) => g.value.has(e)))), we = Z(() => Se.value.some((e) => e.item.state === "running")), Te = Z(() => q1(Se.value, we.value)), Ee = {
54519
+ }), be = Z(() => k.position !== null && !ve.value), xe = Z(() => be.value ? ye.value.start + k.position : h.value), Se = Z(() => be.value ? W1(H1(me.value, xe.value, _.value), xe.value) : _e.value), Ce = Z(() => Se.value.filter((e) => !e.ancestors.some((e) => g.value.has(e)))), we = Z(() => Se.value.some((e) => e.item.state === "running")), Te = Z(() => X1(Se.value, we.value)), Ee = {
54456
54520
  from: 0,
54457
54521
  span: 1
54458
54522
  }, De = /* @__PURE__ */ F(Ee), Oe = Z(() => De.value.span < 1);
54459
54523
  R([pe, d], () => {
54460
54524
  De.value = Ee;
54461
54525
  });
54462
- let ke = Z(() => $1(Te.value, De.value)), Ae = Z(() => {
54526
+ let ke = Z(() => n0(Te.value, De.value)), Ae = Z(() => {
54463
54527
  let e = we.value ? ke.value.x(xe.value) : null;
54464
54528
  return e === null || e < 0 || e > 1 ? null : e;
54465
- }), je = Z(() => Math.max(1, ye.value.duration / m2)), Me = Z(() => [{
54529
+ }), je = Z(() => Math.max(1, ye.value.duration / _2)), Me = Z(() => [{
54466
54530
  label: `自动 · ${Math.round(je.value)}×`,
54467
54531
  value: 0
54468
54532
  }, ...o.map((e) => ({
@@ -54472,7 +54536,7 @@ var r0 = {
54472
54536
  function Pe(e) {
54473
54537
  let t = D ? Math.min(e - D, 250) : 0;
54474
54538
  D = e;
54475
- let n = Se.value.length <= p2 || e - O >= f2;
54539
+ let n = Se.value.length <= g2 || e - O >= h2;
54476
54540
  k.playing && (A += t * Ne.value, A >= ye.value.duration ? Object.assign(k, {
54477
54541
  position: null,
54478
54542
  playing: !1
@@ -54525,15 +54589,15 @@ var r0 = {
54525
54589
  let t = e.filter((e) => !Ve.has(e));
54526
54590
  t.forEach((e) => Ve.add(e)), t.length && (Be.value = /* @__PURE__ */ new Set([...Be.value, ...t]), setTimeout(() => {
54527
54591
  Be.value = new Set([...Be.value].filter((e) => !t.includes(e)));
54528
- }, h2));
54592
+ }, v2));
54529
54593
  }), R([pe, d], () => {
54530
54594
  Ve = null;
54531
54595
  });
54532
- let Ue = Z(() => W1(Ce.value, ke.value)), We = Z(() => X1(Te.value, Math.min(b2, Math.max(y2, Math.round((l.value || 540) / v2))), De.value).map((e) => ({
54596
+ let Ue = Z(() => q1(Ce.value, ke.value)), We = Z(() => $1(Te.value, Math.min(C2, Math.max(S2, Math.round((l.value || 540) / x2))), De.value).map((e) => ({
54533
54597
  ...e,
54534
54598
  x: (e.x - De.value.from) / De.value.span
54535
- }))), Ge = Z(() => n0(Se.value, xe.value)), Ke = Z(() => Se.value.filter((e) => e.has_children).map((e) => e.key)), qe = Z(() => Se.value.find((e) => e.key === y.value)), Je = Z(() => qe.value ? R1(qe.value, _.value.get(qe.value.item.id)) : []), Ye = Z(() => {
54536
- let e = Se.value, t = new Set(e.flatMap((e) => e.segments.map((e) => A1[e.phase])));
54599
+ }))), Ge = Z(() => a0(Se.value, xe.value)), Ke = Z(() => Se.value.filter((e) => e.has_children).map((e) => e.key)), qe = Z(() => Se.value.find((e) => e.key === y.value)), Je = Z(() => qe.value ? V1(qe.value, _.value.get(qe.value.item.id)) : []), Ye = Z(() => {
54600
+ let e = Se.value, t = new Set(e.flatMap((e) => e.segments.map((e) => N1[e.phase])));
54537
54601
  return [
54538
54602
  ...e.some((e) => e.queue[1] > e.queue[0]) ? [["queue", "排队"]] : [],
54539
54603
  ...e.some((e) => e.wake) ? [["wake", "唤醒"]] : [],
@@ -54546,10 +54610,10 @@ var r0 = {
54546
54610
  ];
54547
54611
  }), Xe = Z(() => Se.value.length > 0 && Se.value.every((e) => !e.segments.length)), Ze = Z(() => {
54548
54612
  let e = /* @__PURE__ */ new Map();
54549
- for (let t of [...Se.value].sort((e, t) => e.start - t.start)) e.has(t.item.member) || e.set(t.item.member, e.size % E2 + 1);
54613
+ for (let t of [...Se.value].sort((e, t) => e.start - t.start)) e.has(t.item.member) || e.set(t.item.member, e.size % k2 + 1);
54550
54614
  return e;
54551
54615
  }), Qe = Z(() => {
54552
- let e = D2 / (l.value || 800), t = [];
54616
+ let e = A2 / (l.value || 800), t = [];
54553
54617
  for (let n of ke.value.folds) {
54554
54618
  let r = n.from + n.width / 2;
54555
54619
  r < 0 || r > 1 || (!t.length || r - t.at(-1).middle >= e) && t.push({
@@ -54559,12 +54623,12 @@ var r0 = {
54559
54623
  }
54560
54624
  return t;
54561
54625
  }), $e = Z(() => {
54562
- let e = D2 / (l.value || 800);
54626
+ let e = A2 / (l.value || 800);
54563
54627
  return We.value.filter((t) => !Qe.value.some((n) => Math.abs(t.x - n.middle) < e));
54564
54628
  });
54565
54629
  function et(e, t) {
54566
54630
  if (y.value = y.value === e.key ? "" : e.key, !y.value) return;
54567
- let n = t.currentTarget.getBoundingClientRect(), r = x.value.getBoundingClientRect(), i = Math.min(x2, r.width - 16);
54631
+ let n = t.currentTarget.getBoundingClientRect(), r = x.value.getBoundingClientRect(), i = Math.min(w2, r.width - 16);
54568
54632
  b.value = {
54569
54633
  top: n.bottom - r.top + 4,
54570
54634
  left: Math.max(8, Math.min(n.left - r.left, r.width - i - 8))
@@ -54591,15 +54655,15 @@ var r0 = {
54591
54655
  function it(e) {
54592
54656
  return [...e.item.source === "discussion" ? ["讨论"] : [], ...e.item.role === "host" ? ["主持"] : []];
54593
54657
  }
54594
- let at = (e) => L1(e, xe.value);
54658
+ let at = (e) => B1(e, xe.value);
54595
54659
  function ot(e) {
54596
54660
  let t = [
54597
54661
  i.display_name(e.item.member),
54598
54662
  rt(e),
54599
- j1[e.item.state],
54600
- `用时 ${P1(e.end - e.start)}`
54663
+ P1[e.item.state],
54664
+ `用时 ${L1(e.end - e.start)}`
54601
54665
  ];
54602
- return e.wake && t.push(`唤醒 ${P1(e.wake[1] - e.wake[0])}${e.wake_approx ? "(约)" : ""}`), !e.segments.length && e.work && t.push("无阶段明细"), e.notes.length && t.push(`${e.notes.length} 段过程说明`), t.join(",");
54666
+ return e.wake && t.push(`唤醒 ${L1(e.wake[1] - e.wake[0])}${e.wake_approx ? "(约)" : ""}`), !e.segments.length && e.work && t.push("无阶段明细"), e.notes.length && t.push(`${e.notes.length} 段过程说明`), t.join(",");
54603
54667
  }
54604
54668
  async function st(e) {
54605
54669
  let t = e.item.id;
@@ -54623,7 +54687,7 @@ var r0 = {
54623
54687
  let i = e.currentTarget.getBoundingClientRect(), a = n.note ? {
54624
54688
  notes: [n.note],
54625
54689
  earlier: !1
54626
- } : B1(t.notes, n.start, n.end), o = Math.min(360, window.innerWidth - 16), s = i.bottom + 6, c = s + 160 > window.innerHeight && i.top > 200 ? Math.max(8, i.top - 6 - 200) : s;
54690
+ } : U1(t.notes, n.start, n.end), o = Math.min(360, window.innerWidth - 16), s = i.bottom + 6, c = s + 160 > window.innerHeight && i.top > 200 ? Math.max(8, i.top - 6 - 200) : s;
54627
54691
  v.value = {
54628
54692
  key: t.key,
54629
54693
  id: dt(t, n),
@@ -54647,7 +54711,7 @@ var r0 = {
54647
54711
  }
54648
54712
  let ht = Z(() => {
54649
54713
  let e = v.value?.piece;
54650
- return e ? e.note ? `过程说明 · ${ct(e.note.at)}` : `${e.kind === "segment" ? `${k1[e.phase]}${e.tool ? ` · ${e.tool}` : ""}` : e.label} · ${P1(e.end - e.start)}${e.live ? " · 进行中" : ""}` : "";
54714
+ return e ? e.note ? `过程说明 · ${ct(e.note.at)}` : `${e.kind === "segment" ? `${M1[e.phase]}${e.tool ? ` · ${e.tool}` : ""}` : e.label} · ${L1(e.end - e.start)}${e.live ? " · 进行中" : ""}` : "";
54651
54715
  }), gt = Z(() => {
54652
54716
  if (!v.value) return [];
54653
54717
  let e = _.value.get(v.value.row.item.id);
@@ -54658,17 +54722,17 @@ var r0 = {
54658
54722
  });
54659
54723
  return (e, t) => {
54660
54724
  let r = bH, o = sA, s = pA;
54661
- return U(), W("section", r0, [
54725
+ return U(), W("section", o0, [
54662
54726
  t[30] ||= K("div", { class: "page-heading" }, [K("div", null, [K("h2", null, "执行时间线"), K("p", null, "本机接入程序唤醒的每次执行;点名字看详情,悬停条形看当时的过程说明。")])], -1),
54663
- m.value ? (U(), W("p", i0, P(m.value), 1)) : Y("", !0),
54664
- te.value && !Se.value.length ? (U(), W("p", a0, "还没有执行记录。")) : Y("", !0),
54727
+ m.value ? (U(), W("p", s0, P(m.value), 1)) : Y("", !0),
54728
+ te.value && !Se.value.length ? (U(), W("p", c0, "还没有执行记录。")) : Y("", !0),
54665
54729
  Se.value.length ? (U(), W("div", {
54666
54730
  key: 2,
54667
54731
  ref_key: "wf_element",
54668
54732
  ref: x,
54669
54733
  class: "wf"
54670
54734
  }, [
54671
- K("header", o0, [
54735
+ K("header", l0, [
54672
54736
  t[12] ||= K("span", { class: "wf-title" }, "执行瀑布", -1),
54673
54737
  q(r, {
54674
54738
  modelValue: ue.value,
@@ -54687,17 +54751,17 @@ var r0 = {
54687
54751
  trailingIcon: "wf-select-icon"
54688
54752
  }
54689
54753
  }, null, 8, ["modelValue", "items"]),
54690
- be.value ? (U(), W("span", s0, "回放中 · " + P(ct(xe.value)), 1)) : (U(), W("span", {
54754
+ be.value ? (U(), W("span", u0, "回放中 · " + P(ct(xe.value)), 1)) : (U(), W("span", {
54691
54755
  key: 1,
54692
54756
  class: M(["wf-state", { "is-live": Ge.value.running }])
54693
54757
  }, P(Ge.value.running ? `${Ge.value.running} 个进行中` : "均已结束"), 3)),
54694
- Ge.value.slowest ? (U(), W("span", c0, [
54758
+ Ge.value.slowest ? (U(), W("span", d0, [
54695
54759
  t[11] ||= J("最慢一步 ", -1),
54696
- K("b", null, [J(P(I(i).display_name(Ge.value.slowest.member)) + " · " + P(I(k1)[Ge.value.slowest.phase]), 1), Ge.value.slowest.tool ? (U(), W(H, { key: 0 }, [J(P(Ge.value.slowest.tool), 1)], 64)) : Y("", !0)]),
54697
- J(" · " + P(I(P1)(Ge.value.slowest.end - Ge.value.slowest.start)), 1)
54760
+ K("b", null, [J(P(I(i).display_name(Ge.value.slowest.member)) + " · " + P(I(M1)[Ge.value.slowest.phase]), 1), Ge.value.slowest.tool ? (U(), W(H, { key: 0 }, [J(P(Ge.value.slowest.tool), 1)], 64)) : Y("", !0)]),
54761
+ J(" · " + P(I(L1)(Ge.value.slowest.end - Ge.value.slowest.start)), 1)
54698
54762
  ])) : Y("", !0)
54699
54763
  ]),
54700
- K("dl", l0, [
54764
+ K("dl", f0, [
54701
54765
  K("div", null, [t[13] ||= K("dt", null, "执行", -1), K("dd", null, [(U(), W("span", {
54702
54766
  key: Ge.value.executions,
54703
54767
  class: "wf-roll"
@@ -54713,17 +54777,17 @@ var r0 = {
54713
54777
  K("div", { title: `超过 ${a} 分钟没有输出` }, [t[16] ||= K("dt", null, "可能卡住", -1), K("dd", { class: M(Ge.value.stalled ? "is-warn" : "is-zero") }, [(U(), W("span", {
54714
54778
  key: Ge.value.stalled,
54715
54779
  class: "wf-roll"
54716
- }, P(Ge.value.stalled), 1))], 2)], 8, u0),
54717
- K("div", { title: Te.value.folds.length ? `已折叠 ${Te.value.folds.length} 段超过 ${I(M1) / 6e4} 分钟的空闲` : void 0 }, [t[17] ||= K("dt", null, "有效时长", -1), K("dd", null, P(I(P1)(Te.value.busy_ms)), 1)], 8, d0),
54718
- K("div", f0, [t[19] ||= K("dt", null, "工具与命令", -1), K("dd", { class: M({ "is-zero": !Ge.value.tool_segments }) }, [(U(), W("span", {
54780
+ }, P(Ge.value.stalled), 1))], 2)], 8, p0),
54781
+ K("div", { title: Te.value.folds.length ? `已折叠 ${Te.value.folds.length} 段超过 ${I(F1) / 6e4} 分钟的空闲` : void 0 }, [t[17] ||= K("dt", null, "有效时长", -1), K("dd", null, P(I(L1)(Te.value.busy_ms)), 1)], 8, m0),
54782
+ K("div", h0, [t[19] ||= K("dt", null, "工具与命令", -1), K("dd", { class: M({ "is-zero": !Ge.value.tool_segments }) }, [(U(), W("span", {
54719
54783
  key: Ge.value.tool_segments,
54720
54784
  class: "wf-roll"
54721
54785
  }, P(Ge.value.tool_segments), 1)), t[18] ||= J(" 段", -1)], 2)])
54722
54786
  ]),
54723
- K("ul", p0, [
54787
+ K("ul", g0, [
54724
54788
  (U(!0), W(H, null, B(Ye.value, ([e, t]) => (U(), W("li", { key: e }, [K("i", { class: M(["wf-swatch", `is-${e}`]) }, null, 2), J(P(t), 1)]))), 128)),
54725
- Ze.value.size > 1 ? (U(), W("li", m0, "颜色区分成员,深浅区分模型与工具")) : Y("", !0),
54726
- Xe.value ? (U(), W("li", h0, "这些执行都没有阶段明细:发生在接入程序上报阶段之前,或来自手动接入、在线 AI、Codex App")) : Y("", !0)
54789
+ Ze.value.size > 1 ? (U(), W("li", _0, "颜色区分成员,深浅区分模型与工具")) : Y("", !0),
54790
+ Xe.value ? (U(), W("li", v0, "这些执行都没有阶段明细:发生在接入程序上报阶段之前,或来自手动接入、在线 AI、Codex App")) : Y("", !0)
54727
54791
  ]),
54728
54792
  K("div", {
54729
54793
  class: M(["wf-grid", {
@@ -54731,7 +54795,7 @@ var r0 = {
54731
54795
  "is-panning": I(ne)
54732
54796
  }]),
54733
54797
  role: "list",
54734
- style: fe({ "--wf-depth-px": `${_2}px` }),
54798
+ style: fe({ "--wf-depth-px": `${b2}px` }),
54735
54799
  onWheel: ie,
54736
54800
  onMousedown: se,
54737
54801
  onPointerdown: j,
@@ -54739,14 +54803,14 @@ var r0 = {
54739
54803
  onPointerup: oe,
54740
54804
  onPointercancel: oe
54741
54805
  }, [
54742
- K("div", g0, [
54806
+ K("div", y0, [
54743
54807
  K("span", null, "执行 · " + P(Ce.value.length) + "/" + P(Se.value.length), 1),
54744
- Oe.value ? (U(), W("span", _0, [J("放大 " + P((1 / De.value.span).toFixed(1)) + "×", 1), K("button", {
54808
+ Oe.value ? (U(), W("span", b0, [J("放大 " + P((1 / De.value.span).toFixed(1)) + "×", 1), K("button", {
54745
54809
  type: "button",
54746
54810
  class: "wf-text-button",
54747
54811
  onClick: t[1] ||= (e) => De.value = Ee
54748
- }, "重置")])) : (U(), W("span", v0, "Ctrl + 滚轮缩放")),
54749
- Ke.value.length ? (U(), W("span", y0, [K("button", {
54812
+ }, "重置")])) : (U(), W("span", x0, "Ctrl + 滚轮缩放")),
54813
+ Ke.value.length ? (U(), W("span", S0, [K("button", {
54750
54814
  type: "button",
54751
54815
  class: "wf-text-button",
54752
54816
  onClick: t[2] ||= (e) => g.value = /* @__PURE__ */ new Set()
@@ -54773,7 +54837,7 @@ var r0 = {
54773
54837
  class: "wf-fold-label",
54774
54838
  style: fe({ left: `${e.middle * 100}%` }),
54775
54839
  title: `${ct(e.start)} – ${ct(e.end)} 没有执行,已折叠`
54776
- }, "⋯ " + P(I(P1)(e.end - e.start)), 13, b0))), 128)),
54840
+ }, "⋯ " + P(I(L1)(e.end - e.start)), 13, C0))), 128)),
54777
54841
  Ae.value === null ? Y("", !0) : (U(), W("span", {
54778
54842
  key: 0,
54779
54843
  class: "wf-cursor-head",
@@ -54793,7 +54857,7 @@ var r0 = {
54793
54857
  class: "wf-label",
54794
54858
  style: fe({ "--depth": e.depth })
54795
54859
  }, [
54796
- e.depth ? (U(), W("span", x0)) : Y("", !0),
54860
+ e.depth ? (U(), W("span", w0)) : Y("", !0),
54797
54861
  e.has_children ? (U(), W("button", {
54798
54862
  key: 1,
54799
54863
  type: "button",
@@ -54801,7 +54865,7 @@ var r0 = {
54801
54865
  "aria-expanded": !g.value.has(e.key),
54802
54866
  "aria-label": `${g.value.has(e.key) ? "展开" : "收起"} ${I(i).display_name(e.item.member)} 派出的执行`,
54803
54867
  onClick: (t) => tt(e.key)
54804
- }, [q(o, { name: "i-lucide-chevron-right" })], 10, S0)) : (U(), W("span", C0)),
54868
+ }, [q(o, { name: "i-lucide-chevron-right" })], 10, T0)) : (U(), W("span", E0)),
54805
54869
  q(s, {
54806
54870
  src: I(i).identities[e.item.member]?.icon,
54807
54871
  text: I(i).identities[e.item.member]?.initials,
@@ -54820,29 +54884,29 @@ var r0 = {
54820
54884
  "aria-expanded": y.value === e.key,
54821
54885
  onClick: (t) => et(e, t),
54822
54886
  onMouseenter: (t) => ft(t, e, {
54823
- label: I(j1)[e.item.state],
54887
+ label: I(P1)[e.item.state],
54824
54888
  start: e.start,
54825
54889
  end: e.end,
54826
54890
  text: at(e).text,
54827
54891
  live: e.item.state === "running"
54828
54892
  }),
54829
54893
  onMouseleave: (t) => mt(e)
54830
- }, [K("span", T0, [
54831
- e.item.state === "running" ? (U(), W("i", E0)) : Y("", !0),
54894
+ }, [K("span", O0, [
54895
+ e.item.state === "running" ? (U(), W("i", k0)) : Y("", !0),
54832
54896
  K("strong", null, P(I(i).display_name(e.item.member)), 1),
54833
54897
  (U(!0), W(H, null, B(it(e), (e) => (U(), W("em", {
54834
54898
  key: e,
54835
54899
  class: "wf-pill is-role"
54836
54900
  }, P(e), 1))), 128)),
54837
- Ge.value.slowest?.row === e.key ? (U(), W("em", D0, "最慢")) : Y("", !0)
54838
- ]), K("span", { class: M(["wf-status", `is-${at(e).tone}`]) }, [at(e).tone === "live" ? (U(), W("i", O0)) : Y("", !0), J(P(at(e).text), 1)], 2)], 40, w0)
54901
+ Ge.value.slowest?.row === e.key ? (U(), W("em", A0, "最慢")) : Y("", !0)
54902
+ ]), K("span", { class: M(["wf-status", `is-${at(e).tone}`]) }, [at(e).tone === "live" ? (U(), W("i", j0)) : Y("", !0), J(P(at(e).text), 1)], 2)], 40, D0)
54839
54903
  ], 4),
54840
54904
  K("div", {
54841
54905
  class: "wf-lane",
54842
54906
  role: "img",
54843
54907
  "aria-label": ot(e),
54844
54908
  onMouseleave: (t) => mt(e)
54845
- }, [K("div", A0, [
54909
+ }, [K("div", N0, [
54846
54910
  (U(!0), W(H, null, B($e.value, (e) => (U(), W("i", {
54847
54911
  key: e.at,
54848
54912
  class: "wf-gridline",
@@ -54862,7 +54926,7 @@ var r0 = {
54862
54926
  class: M(["wf-link", `is-${e.part}`]),
54863
54927
  "data-tone": Ze.value.get(e.member),
54864
54928
  style: fe({ left: `${e.x * 100}%` })
54865
- }, null, 14, j0))), 128)),
54929
+ }, null, 14, P0))), 128)),
54866
54930
  Ae.value === null ? Y("", !0) : (U(), W("i", {
54867
54931
  key: 0,
54868
54932
  class: "wf-cursor",
@@ -54881,7 +54945,7 @@ var r0 = {
54881
54945
  start: e.queue[0],
54882
54946
  end: e.queue[1]
54883
54947
  })
54884
- }, null, 44, M0),
54948
+ }, null, 44, F0),
54885
54949
  e.wake ? (U(), W("i", {
54886
54950
  key: 1,
54887
54951
  class: "wf-bar is-wake",
@@ -54896,7 +54960,7 @@ var r0 = {
54896
54960
  start: e.wake[0],
54897
54961
  end: e.wake[1]
54898
54962
  })
54899
- }, null, 44, N0)) : Y("", !0),
54963
+ }, null, 44, I0)) : Y("", !0),
54900
54964
  e.work ? (U(), W("i", {
54901
54965
  key: 2,
54902
54966
  class: M(["wf-bar is-work", { "has-detail": e.segments.length }]),
@@ -54914,9 +54978,9 @@ var r0 = {
54914
54978
  end: e.work[1],
54915
54979
  live: e.item.state === "running"
54916
54980
  })
54917
- }, null, 46, P0)) : Y("", !0),
54981
+ }, null, 46, L0)) : Y("", !0),
54918
54982
  (U(!0), W(H, null, B(e.segments, (t) => (U(), W(H, { key: t.start + t.phase }, [K("i", {
54919
- class: M(["wf-bar wf-seg", [`is-${I(A1)[t.phase]}`, { "is-live": t.live }]]),
54983
+ class: M(["wf-bar wf-seg", [`is-${I(N1)[t.phase]}`, { "is-live": t.live }]]),
54920
54984
  "data-tone": Ze.value.get(e.item.member),
54921
54985
  style: fe(nt(t.start, t.seen, !0)),
54922
54986
  onMouseenter: (n) => ft(n, e, {
@@ -54927,9 +54991,9 @@ var r0 = {
54927
54991
  kind: "segment",
54928
54992
  ...t
54929
54993
  })
54930
- }, null, 46, F0), t.end > t.seen ? (U(), W("i", {
54994
+ }, null, 46, R0), t.end > t.seen ? (U(), W("i", {
54931
54995
  key: 0,
54932
- class: M(["wf-bar wf-seg is-tail", `is-${I(A1)[t.phase]}`]),
54996
+ class: M(["wf-bar wf-seg is-tail", `is-${I(N1)[t.phase]}`]),
54933
54997
  "data-tone": Ze.value.get(e.item.member),
54934
54998
  style: fe(nt(t.seen, t.end)),
54935
54999
  onMouseenter: (n) => ft(n, e, {
@@ -54940,7 +55004,7 @@ var r0 = {
54940
55004
  kind: "segment",
54941
55005
  ...t
54942
55006
  })
54943
- }, null, 46, I0)) : Y("", !0)], 64))), 128)),
55007
+ }, null, 46, z0)) : Y("", !0)], 64))), 128)),
54944
55008
  (U(!0), W(H, null, B(e.notes, (t) => (U(), W("button", {
54945
55009
  key: `note-${t.index}`,
54946
55010
  type: "button",
@@ -54963,15 +55027,15 @@ var r0 = {
54963
55027
  end: t.at
54964
55028
  }),
54965
55029
  onBlur: (t) => mt(e)
54966
- }, null, 44, L0))), 128))
54967
- ])], 40, k0),
54968
- K("span", R0, [
54969
- J(P(I(P1)(e.end - e.start)) + P(e.wake_approx && e.wake ? "~" : ""), 1),
55030
+ }, null, 44, B0))), 128))
55031
+ ])], 40, M0),
55032
+ K("span", V0, [
55033
+ J(P(I(L1)(e.end - e.start)) + P(e.wake_approx && e.wake ? "~" : ""), 1),
54970
55034
  e.item.state === "done" ? Y("", !0) : (U(), W("small", {
54971
55035
  key: 0,
54972
55036
  class: M(`is-${e.item.state}`)
54973
- }, P(I(j1)[e.item.state]), 3)),
54974
- e.truncated ? (U(), W("small", z0, "明细已截断")) : Y("", !0)
55037
+ }, P(I(P1)[e.item.state]), 3)),
55038
+ e.truncated ? (U(), W("small", H0, "明细已截断")) : Y("", !0)
54975
55039
  ])
54976
55040
  ], 2))), 128))
54977
55041
  ], 38),
@@ -54985,9 +55049,9 @@ var r0 = {
54985
55049
  left: `${b.value.left}px`
54986
55050
  })
54987
55051
  }, [
54988
- K("header", V0, [
55052
+ K("header", W0, [
54989
55053
  K("strong", null, P(I(i).display_name(qe.value.item.member)), 1),
54990
- K("small", null, P(rt(qe.value)) + " · " + P(I(j1)[qe.value.item.state]) + " · " + P(I(P1)(qe.value.end - qe.value.start)), 1),
55054
+ K("small", null, P(rt(qe.value)) + " · " + P(I(P1)[qe.value.item.state]) + " · " + P(I(L1)(qe.value.end - qe.value.start)), 1),
54991
55055
  K("button", {
54992
55056
  type: "button",
54993
55057
  class: "wf-card-close",
@@ -54996,47 +55060,47 @@ var r0 = {
54996
55060
  }, [q(o, { name: "i-lucide-x" })])
54997
55061
  ]),
54998
55062
  K("dl", null, [
54999
- qe.value.item.task ? (U(), W("div", H0, [t[22] ||= K("dt", null, "任务", -1), K("dd", null, [J(P(qe.value.item.task), 1), qe.value.item.task_id ? (U(), W("button", {
55063
+ qe.value.item.task ? (U(), W("div", G0, [t[22] ||= K("dt", null, "任务", -1), K("dd", null, [J(P(qe.value.item.task), 1), qe.value.item.task_id ? (U(), W("button", {
55000
55064
  key: 0,
55001
55065
  type: "button",
55002
55066
  class: "subtle-link",
55003
55067
  onClick: t[6] ||= (e) => n("detail", qe.value.item.task_id)
55004
55068
  }, "#" + P(qe.value.item.task_id), 1)) : Y("", !0)])])) : Y("", !0),
55005
- qe.value.item.state === "failed" ? (U(), W("div", U0, [t[23] ||= K("dt", null, "失败原因", -1), K("dd", W0, P(qe.value.item.reason || "执行失败"), 1)])) : qe.value.item.result || qe.value.item.answer_id ? (U(), W("div", G0, [t[24] ||= K("dt", null, "结果", -1), K("dd", null, [J(P(qe.value.item.result), 1), qe.value.item.answer_id ? (U(), W("button", {
55069
+ qe.value.item.state === "failed" ? (U(), W("div", K0, [t[23] ||= K("dt", null, "失败原因", -1), K("dd", q0, P(qe.value.item.reason || "执行失败"), 1)])) : qe.value.item.result || qe.value.item.answer_id ? (U(), W("div", J0, [t[24] ||= K("dt", null, "结果", -1), K("dd", null, [J(P(qe.value.item.result), 1), qe.value.item.answer_id ? (U(), W("button", {
55006
55070
  key: 0,
55007
55071
  type: "button",
55008
55072
  class: "subtle-link",
55009
55073
  onClick: t[7] ||= (e) => n("detail", qe.value.item.answer_id)
55010
55074
  }, "在消息中查看 #" + P(qe.value.item.answer_id), 1)) : Y("", !0)])])) : Y("", !0),
55011
- qe.value.item.changes ? (U(), W("div", K0, [t[25] ||= K("dt", null, "改动", -1), K("dd", null, P(qe.value.item.changes) + " 个文件", 1)])) : Y("", !0)
55075
+ qe.value.item.changes ? (U(), W("div", Y0, [t[25] ||= K("dt", null, "改动", -1), K("dd", null, P(qe.value.item.changes) + " 个文件", 1)])) : Y("", !0)
55012
55076
  ]),
55013
- Je.value.length ? (U(), W("ol", q0, [(U(!0), W(H, null, B(Je.value, (e) => (U(), W("li", {
55077
+ Je.value.length ? (U(), W("ol", X0, [(U(!0), W(H, null, B(Je.value, (e) => (U(), W("li", {
55014
55078
  key: `${e.kind}-${e.at}-${e.phase || ""}`,
55015
55079
  class: M(`log-${e.kind}`)
55016
55080
  }, [K("time", null, P(ct(e.at)), 1), e.kind === "phase" ? (U(), W(H, { key: 0 }, [K("i", {
55017
- class: M(["wf-swatch", `is-${I(A1)[e.phase]}`]),
55081
+ class: M(["wf-swatch", `is-${I(N1)[e.phase]}`]),
55018
55082
  "data-tone": Ze.value.get(qe.value.item.member),
55019
55083
  "aria-hidden": "true"
55020
- }, null, 10, J0), K("span", null, [
55021
- J(P(I(k1)[e.phase]), 1),
55084
+ }, null, 10, Z0), K("span", null, [
55085
+ J(P(I(M1)[e.phase]), 1),
55022
55086
  e.tool ? (U(), W(H, { key: 0 }, [J(" · " + P(e.tool), 1)], 64)) : Y("", !0),
55023
- J(" · " + P(e.live ? "进行中" : I(P1)(e.duration)), 1)
55024
- ])], 64)) : (U(), W("span", Y0, P(e.text), 1))], 2))), 128))])) : (U(), W("p", X0, "这次执行没有阶段明细或过程说明。"))
55025
- ], 12, B0)) : Y("", !0),
55026
- pe.value === w2 ? (U(), W("div", Z0, [...t[26] ||= [K("span", { class: "wf-player-note" }, "回放按轮进行:在上方选一轮即可回放", -1)]])) : (U(), W("div", Q0, [ve.value ? (U(), W(H, { key: 0 }, [t[27] ||= K("span", { class: "wf-state is-live" }, "实时", -1), t[28] ||= K("span", { class: "wf-player-note" }, "这一轮结束后可以回放", -1)], 64)) : (U(), W(H, { key: 1 }, [
55087
+ J(" · " + P(e.live ? "进行中" : I(L1)(e.duration)), 1)
55088
+ ])], 64)) : (U(), W("span", Q0, P(e.text), 1))], 2))), 128))])) : (U(), W("p", $0, "这次执行没有阶段明细或过程说明。"))
55089
+ ], 12, U0)) : Y("", !0),
55090
+ pe.value === D2 ? (U(), W("div", e2, [...t[26] ||= [K("span", { class: "wf-player-note" }, "回放按轮进行:在上方选一轮即可回放", -1)]])) : (U(), W("div", t2, [ve.value ? (U(), W(H, { key: 0 }, [t[27] ||= K("span", { class: "wf-state is-live" }, "实时", -1), t[28] ||= K("span", { class: "wf-player-note" }, "这一轮结束后可以回放", -1)], 64)) : (U(), W(H, { key: 1 }, [
55027
55091
  K("button", {
55028
55092
  type: "button",
55029
55093
  class: "wf-player-button",
55030
55094
  "aria-label": k.playing ? "暂停回放" : "回放这一轮",
55031
55095
  onClick: t[8] ||= (e) => k.playing ? Le() : Fe()
55032
- }, [q(o, { name: k.playing ? "i-lucide-pause" : "i-lucide-play" }, null, 8, ["name"])], 8, $0),
55096
+ }, [q(o, { name: k.playing ? "i-lucide-pause" : "i-lucide-play" }, null, 8, ["name"])], 8, n2),
55033
55097
  K("button", {
55034
55098
  type: "button",
55035
55099
  class: "wf-player-button",
55036
55100
  "aria-label": "从头回放",
55037
55101
  disabled: !be.value,
55038
55102
  onClick: Re
55039
- }, [q(o, { name: "i-lucide-rotate-ccw" })], 8, e2),
55103
+ }, [q(o, { name: "i-lucide-rotate-ccw" })], 8, r2),
55040
55104
  q(r, {
55041
55105
  modelValue: k.speed,
55042
55106
  "onUpdate:modelValue": t[9] ||= (e) => k.speed = e,
@@ -55063,13 +55127,13 @@ var r0 = {
55063
55127
  value: be.value ? k.position : ye.value.duration,
55064
55128
  "aria-label": "回放位置",
55065
55129
  onInput: ze
55066
- }, null, 40, t2),
55067
- K("span", n2, P(I(P1)(be.value ? k.position : ye.value.duration)) + " / " + P(I(P1)(ye.value.duration)), 1)
55130
+ }, null, 40, i2),
55131
+ K("span", a2, P(I(L1)(be.value ? k.position : ye.value.duration)) + " / " + P(I(L1)(ye.value.duration)), 1)
55068
55132
  ], 64))])),
55069
- Te.value.folds.length || te.value.executions.length >= te.value.execution_limit ? (U(), W("footer", r2, [Te.value.folds.length ? (U(), W("span", i2, [t[29] ||= K("i", {
55133
+ Te.value.folds.length || te.value.executions.length >= te.value.execution_limit ? (U(), W("footer", o2, [Te.value.folds.length ? (U(), W("span", s2, [t[29] ||= K("i", {
55070
55134
  class: "wf-swatch is-fold",
55071
55135
  "aria-hidden": "true"
55072
- }, null, -1), J("已折叠 " + P(Te.value.folds.length) + " 段超过 " + P(I(M1) / 6e4) + " 分钟的空闲", 1)])) : Y("", !0), te.value.executions.length >= te.value.execution_limit ? (U(), W("span", a2, "只列出最近 " + P(te.value.execution_limit) + " 次讨论执行与 " + P(te.value.execution_limit) + " 次协作执行", 1)) : Y("", !0)])) : Y("", !0)
55136
+ }, null, -1), J("已折叠 " + P(Te.value.folds.length) + " 段超过 " + P(I(F1) / 6e4) + " 分钟的空闲", 1)])) : Y("", !0), te.value.executions.length >= te.value.execution_limit ? (U(), W("span", c2, "只列出最近 " + P(te.value.execution_limit) + " 次讨论执行与 " + P(te.value.execution_limit) + " 次协作执行", 1)) : Y("", !0)])) : Y("", !0)
55073
55137
  ], 512)) : Y("", !0),
55074
55138
  v.value ? (U(), W("div", {
55075
55139
  key: 3,
@@ -55089,79 +55153,79 @@ var r0 = {
55089
55153
  onClick: t[10] ||= (e) => v.value = null
55090
55154
  }, [q(o, { name: "i-lucide-x" })])) : Y("", !0),
55091
55155
  K("small", null, [J(P(ct(v.value.piece.start)), 1), v.value.piece.end > v.value.piece.start ? (U(), W(H, { key: 0 }, [J(" – " + P(v.value.piece.live ? "现在" : ct(v.value.piece.end)), 1)], 64)) : Y("", !0)]),
55092
- v.value.piece.text ? (U(), W("p", s2, P(v.value.piece.text), 1)) : v.value.row.item.reason ? (U(), W("p", c2, P(v.value.row.item.reason), 1)) : Y("", !0),
55093
- gt.value.length ? (U(), W(H, { key: 3 }, [K("small", l2, P(v.value.related.earlier ? "此前的过程说明" : "过程说明"), 1), K("ol", null, [(U(!0), W(H, null, B(gt.value, (e) => (U(), W("li", { key: e.at + e.text }, [K("time", null, P(ct(e.at)), 1), J(P(e.text), 1)]))), 128))])], 64)) : Y("", !0)
55094
- ], 14, o2)) : Y("", !0)
55156
+ v.value.piece.text ? (U(), W("p", u2, P(v.value.piece.text), 1)) : v.value.row.item.reason ? (U(), W("p", d2, P(v.value.row.item.reason), 1)) : Y("", !0),
55157
+ gt.value.length ? (U(), W(H, { key: 3 }, [K("small", f2, P(v.value.related.earlier ? "此前的过程说明" : "过程说明"), 1), K("ol", null, [(U(!0), W(H, null, B(gt.value, (e) => (U(), W("li", { key: e.at + e.text }, [K("time", null, P(ct(e.at)), 1), J(P(e.text), 1)]))), 128))])], 64)) : Y("", !0)
55158
+ ], 14, l2)) : Y("", !0)
55095
55159
  ]);
55096
55160
  };
55097
55161
  }
55098
- }, [["__scopeId", "data-v-ae571187"]]), k2 = {
55162
+ }, [["__scopeId", "data-v-ae571187"]]), M2 = {
55099
55163
  id: "channel-sidebar",
55100
55164
  class: "channel-sidebar",
55101
55165
  "aria-label": "房间导航"
55102
- }, A2 = { class: "channel-sidebar-content" }, j2 = { class: "channel-directory-heading channel-tools-heading" }, M2 = ["aria-expanded"], N2 = { class: "channel-sidebar-footer" }, P2 = ["aria-label"], F2 = { class: "channel-self" }, I2 = ["title"], L2 = [
55166
+ }, N2 = { class: "channel-sidebar-content" }, P2 = { class: "channel-directory-heading channel-tools-heading" }, F2 = ["aria-expanded"], I2 = { class: "channel-sidebar-footer" }, L2 = ["aria-label"], R2 = { class: "channel-self" }, z2 = ["title"], B2 = [
55103
55167
  "aria-valuemax",
55104
55168
  "aria-valuenow",
55105
55169
  "aria-valuetext"
55106
- ], R2 = { class: "channel-main" }, z2 = { class: "channel-header" }, B2 = { class: "channel-title-icon" }, V2 = { class: "channel-title" }, H2 = { class: "channel-title-copy" }, U2 = ["title"], W2 = {
55170
+ ], V2 = { class: "channel-main" }, H2 = { class: "channel-header" }, U2 = { class: "channel-title-icon" }, W2 = { class: "channel-title" }, G2 = { class: "channel-title-copy" }, K2 = ["title"], q2 = {
55107
55171
  key: 0,
55108
55172
  class: "channel-header-context"
55109
- }, G2 = { class: "channel-header-actions" }, K2 = {
55173
+ }, J2 = { class: "channel-header-actions" }, Y2 = {
55110
55174
  key: 0,
55111
55175
  class: "channel-launch-recovery",
55112
55176
  "aria-label": "未完成的创建或启动请求"
55113
- }, q2 = { role: "status" }, J2 = { class: "button-row" }, Y2 = {
55177
+ }, X2 = { role: "status" }, Z2 = { class: "button-row" }, Q2 = {
55114
55178
  key: 1,
55115
55179
  class: "channel-tabbar"
55116
- }, X2 = { class: "channel-brief-inner" }, Z2 = { class: "channel-brief-heading" }, Q2 = ["aria-label", "aria-expanded"], $2 = {
55180
+ }, $2 = { class: "channel-brief-inner" }, e4 = { class: "channel-brief-heading" }, t4 = ["aria-label", "aria-expanded"], n4 = {
55117
55181
  key: 0,
55118
55182
  class: "channel-brief-preview"
55119
- }, e4 = {
55183
+ }, r4 = {
55120
55184
  id: "channel-brief-content",
55121
55185
  class: "channel-brief-content"
55122
- }, t4 = ["innerHTML"], n4 = { class: "channel-brief-footer" }, r4 = { class: "channel-brief-status" }, i4 = { class: "channel-content" }, a4 = {
55186
+ }, i4 = ["innerHTML"], a4 = { class: "channel-brief-footer" }, o4 = { class: "channel-brief-status" }, s4 = { class: "channel-content" }, c4 = {
55123
55187
  key: 0,
55124
55188
  class: "content-page merged-page",
55125
55189
  role: "tabpanel",
55126
55190
  "aria-label": "讨论"
55127
- }, o4 = {
55191
+ }, l4 = {
55128
55192
  key: 1,
55129
55193
  class: "merged-section",
55130
55194
  "aria-label": "当前讨论"
55131
- }, s4 = { class: "page-heading" }, c4 = {
55195
+ }, u4 = { class: "page-heading" }, d4 = {
55132
55196
  key: 0,
55133
55197
  class: "fine-print"
55134
- }, l4 = {
55198
+ }, f4 = {
55135
55199
  class: "merged-section channel-summary",
55136
55200
  "aria-label": "当前共识"
55137
- }, u4 = { class: "page-heading" }, d4 = { class: "form-footer" }, f4 = { class: "button-row" }, p4 = { class: "consensus-card is-brief" }, m4 = ["innerHTML"], h4 = {
55201
+ }, p4 = { class: "page-heading" }, m4 = { class: "form-footer" }, h4 = { class: "button-row" }, g4 = { class: "consensus-card is-brief" }, _4 = ["innerHTML"], v4 = {
55138
55202
  key: 0,
55139
55203
  class: "consensus-card"
55140
- }, g4 = ["innerHTML"], _4 = {
55204
+ }, y4 = ["innerHTML"], b4 = {
55141
55205
  key: 2,
55142
55206
  class: "fine-print"
55143
- }, v4 = {
55207
+ }, x4 = {
55144
55208
  key: 1,
55145
55209
  class: "content-page merged-page",
55146
55210
  role: "tabpanel",
55147
55211
  "aria-label": "房间"
55148
- }, y4 = {
55212
+ }, S4 = {
55149
55213
  key: 2,
55150
55214
  class: "content-page merged-page",
55151
55215
  role: "tabpanel",
55152
55216
  "aria-label": "执行"
55153
- }, b4 = {
55217
+ }, C4 = {
55154
55218
  key: 1,
55155
55219
  class: "channel-empty"
55156
- }, x4 = ["aria-valuenow", "aria-valuetext"], S4 = {
55220
+ }, w4 = ["aria-valuenow", "aria-valuetext"], T4 = {
55157
55221
  key: 2,
55158
55222
  id: "channel-member-rail",
55159
55223
  class: "channel-member-rail",
55160
55224
  "aria-label": "当前焦点与讨论进度"
55161
- }, C4 = { class: "channel-rail-board" }, w4 = {
55225
+ }, E4 = { class: "channel-rail-board" }, D4 = {
55162
55226
  key: 2,
55163
55227
  class: "progress-board is-docked"
55164
- }, T4 = { class: "channel-detail-title" }, E4 = { class: "info-section" }, D4 = "ai-codiscuss-channel-layout", O4 = 220, k4 = 440, A4 = 280, j4 = 16, M4 = 180, N4 = 400, P4 = 248, F4 = 16, I4 = 480, L4 = 1200, R4 = 0, z4 = {
55228
+ }, O4 = { class: "channel-detail-title" }, k4 = { class: "info-section" }, A4 = "ai-codiscuss-channel-layout", j4 = 220, M4 = 440, N4 = 280, P4 = 16, F4 = 180, I4 = 400, L4 = 248, R4 = 16, z4 = 480, B4 = 1200, V4 = 0, H4 = {
55165
55229
  __name: "ChannelWorkspace",
55166
55230
  setup(e) {
55167
55231
  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 = [{
@@ -55183,25 +55247,25 @@ var r0 = {
55183
55247
  label: "宽",
55184
55248
  width: 1240
55185
55249
  }
55186
- }, 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), k = Z(() => T.value >= L4), A = Z(() => t.value.tab === "discussion" && !O.value), ee = Z(() => k.value && t.value.tab === "discussion" ? O.value ? "展开房间概览" : "收起房间概览" : "房间资料与参与者"), te = Z(() => {
55250
+ }, b = Me(), 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), k = Z(() => T.value >= B4), A = Z(() => t.value.tab === "discussion" && !O.value), ee = Z(() => k.value && t.value.tab === "discussion" ? O.value ? "展开房间概览" : "收起房间概览" : "房间资料与参与者"), te = Z(() => {
55187
55251
  let e = document.createElement("template");
55188
55252
  return e.innerHTML = o.value?.rendered_brief || "", e.content.textContent.replace(/\s+/g, " ").trim();
55189
- }), ne = /* @__PURE__ */ F(null), re = /* @__PURE__ */ F(0), ie = null, j = /* @__PURE__ */ F(null), ae = /* @__PURE__ */ F(null), oe = Z(() => Math.min(N4, Math.max(M4, T.value - I4 - R4))), se = Z(() => Math.min(w.value, oe.value)), ce = Z(() => ({
55253
+ }), ne = /* @__PURE__ */ F(null), re = /* @__PURE__ */ F(0), ie = null, j = /* @__PURE__ */ F(null), ae = /* @__PURE__ */ F(null), oe = Z(() => Math.min(I4, Math.max(F4, T.value - z4 - V4))), se = Z(() => Math.min(w.value, oe.value)), ce = Z(() => ({
55190
55254
  "--channel-reading-width": `${y[x.value].width}px`,
55191
55255
  "--channel-rail-width": `${C.value}px`,
55192
55256
  "--channel-topbar-height": `${re.value}px`,
55193
- "--channel-main-columns": E.value ? "minmax(0, 1fr)" : `${se.value}px ${R4}px minmax(0, 1fr)`
55257
+ "--channel-main-columns": E.value ? "minmax(0, 1fr)" : `${se.value}px ${V4}px minmax(0, 1fr)`
55194
55258
  })), le = Object.entries(y).map(([e, t]) => ({
55195
55259
  value: e,
55196
55260
  label: t.label
55197
55261
  }));
55198
- R(x, Ne), R(S, (e) => {
55199
- document.documentElement.dataset.effects = e, Ne();
55200
- }, { immediate: !0 }), R(E, Ne), R(O, Ne), Qi(() => window.addEventListener("resize", Fe)), ta(() => window.removeEventListener("resize", Fe)), Qi(() => document.addEventListener("pointerdown", Le)), Qi(() => {
55262
+ R(x, Pe), R(S, (e) => {
55263
+ document.documentElement.dataset.effects = e, Pe();
55264
+ }, { immediate: !0 }), R(E, Pe), R(O, Pe), Qi(() => window.addEventListener("resize", Ie)), ta(() => window.removeEventListener("resize", Ie)), Qi(() => document.addEventListener("pointerdown", Re)), Qi(() => {
55201
55265
  ie = new ResizeObserver(([e]) => {
55202
55266
  D.value && (re.value = Math.round(e.target.offsetHeight));
55203
55267
  }), ie.observe(ne.value);
55204
- }), ta(() => ie?.disconnect()), ta(() => document.removeEventListener("pointerdown", Le));
55268
+ }), ta(() => ie?.disconnect()), ta(() => document.removeEventListener("pointerdown", Re));
55205
55269
  let ue = Z({
55206
55270
  get: () => t.value.tab,
55207
55271
  set: (e) => i("tab", e)
@@ -55282,14 +55346,17 @@ var r0 = {
55282
55346
  function Ae(e) {
55283
55347
  l.value = e, d.value = !1, s.value = "delete-folder";
55284
55348
  }
55285
- function je() {
55349
+ function je(e) {
55350
+ l.value = e, d.value = !1, s.value = "archive-folder";
55351
+ }
55352
+ function Me() {
55286
55353
  try {
55287
- let e = JSON.parse(localStorage.getItem(D4)) || {};
55354
+ let e = JSON.parse(localStorage.getItem(A4)) || {};
55288
55355
  return {
55289
55356
  reading: Object.hasOwn(y, e.reading) ? e.reading : "default",
55290
55357
  effects: e.effects === "reduced" ? "reduced" : "full",
55291
- rail: Number.isFinite(e.rail) ? Math.min(k4, Math.max(O4, e.rail)) : A4,
55292
- nav: Number.isFinite(e.nav) ? Math.min(N4, Math.max(M4, e.nav)) : Me(),
55358
+ rail: Number.isFinite(e.rail) ? Math.min(M4, Math.max(j4, e.rail)) : N4,
55359
+ nav: Number.isFinite(e.nav) ? Math.min(I4, Math.max(F4, e.nav)) : Ne(),
55293
55360
  collapsed: e.collapsed === !0,
55294
55361
  brief_collapsed: e.brief_collapsed === !0,
55295
55362
  rail_collapsed: e.rail_collapsed === !0
@@ -55298,20 +55365,20 @@ var r0 = {
55298
55365
  return {
55299
55366
  reading: "default",
55300
55367
  effects: "full",
55301
- rail: A4,
55302
- nav: Me(),
55368
+ rail: N4,
55369
+ nav: Ne(),
55303
55370
  collapsed: !1,
55304
55371
  brief_collapsed: !1,
55305
55372
  rail_collapsed: !1
55306
55373
  };
55307
55374
  }
55308
55375
  }
55309
- function Me() {
55310
- return typeof window > "u" ? P4 : window.innerWidth >= 1900 ? 280 : window.innerWidth <= 980 ? 220 : P4;
55311
- }
55312
55376
  function Ne() {
55377
+ return typeof window > "u" ? L4 : window.innerWidth >= 1900 ? 280 : window.innerWidth <= 980 ? 220 : L4;
55378
+ }
55379
+ function Pe() {
55313
55380
  try {
55314
- localStorage.setItem(D4, JSON.stringify({
55381
+ localStorage.setItem(A4, JSON.stringify({
55315
55382
  reading: x.value,
55316
55383
  effects: S.value,
55317
55384
  rail: C.value,
@@ -55322,64 +55389,64 @@ var r0 = {
55322
55389
  }));
55323
55390
  } catch {}
55324
55391
  }
55325
- function Pe() {
55392
+ function Fe() {
55326
55393
  k.value && t.value.tab === "discussion" ? O.value = !O.value : p.value = !0;
55327
55394
  }
55328
- function Fe() {
55395
+ function Ie() {
55329
55396
  T.value = window.innerWidth;
55330
55397
  }
55331
- function Ie() {
55398
+ function Le() {
55332
55399
  D.value = !D.value;
55333
55400
  }
55334
- function Le(e) {
55401
+ function Re(e) {
55335
55402
  !D.value && !e.target.closest?.(".channel-host-brief") && (D.value = !0);
55336
55403
  }
55337
- function Re(e) {
55404
+ function ze(e) {
55338
55405
  e.button === 0 && (e.preventDefault(), e.currentTarget.focus(), j.value = {
55339
55406
  pointer: e.pointerId,
55340
55407
  x: e.clientX,
55341
55408
  width: C.value
55342
55409
  }, e.currentTarget.setPointerCapture(e.pointerId));
55343
55410
  }
55344
- function ze(e) {
55345
- j.value?.pointer === e.pointerId && (C.value = Math.round(Math.min(k4, Math.max(O4, j.value.width + j.value.x - e.clientX))));
55346
- }
55347
55411
  function Be(e) {
55348
- j.value?.pointer === e.pointerId && (j.value = null, e.currentTarget.hasPointerCapture(e.pointerId) && e.currentTarget.releasePointerCapture(e.pointerId), Ne());
55412
+ j.value?.pointer === e.pointerId && (C.value = Math.round(Math.min(M4, Math.max(j4, j.value.width + j.value.x - e.clientX))));
55349
55413
  }
55350
55414
  function Ve(e) {
55415
+ j.value?.pointer === e.pointerId && (j.value = null, e.currentTarget.hasPointerCapture(e.pointerId) && e.currentTarget.releasePointerCapture(e.pointerId), Pe());
55416
+ }
55417
+ function He(e) {
55351
55418
  let t = {
55352
- ArrowLeft: C.value + j4,
55353
- ArrowRight: C.value - j4,
55354
- Home: O4,
55355
- End: k4
55419
+ ArrowLeft: C.value + P4,
55420
+ ArrowRight: C.value - P4,
55421
+ Home: j4,
55422
+ End: M4
55356
55423
  };
55357
- Object.hasOwn(t, e.key) && (e.preventDefault(), C.value = Math.min(k4, Math.max(O4, t[e.key])), Ne());
55424
+ Object.hasOwn(t, e.key) && (e.preventDefault(), C.value = Math.min(M4, Math.max(j4, t[e.key])), Pe());
55358
55425
  }
55359
- function He(e) {
55426
+ function Ue(e) {
55360
55427
  e.button === 0 && (e.preventDefault(), e.currentTarget.focus(), ae.value = {
55361
55428
  pointer: e.pointerId,
55362
55429
  x: e.clientX,
55363
55430
  width: se.value
55364
55431
  }, e.currentTarget.setPointerCapture(e.pointerId));
55365
55432
  }
55366
- function Ue(e) {
55367
- ae.value?.pointer === e.pointerId && (w.value = Math.round(Math.min(oe.value, Math.max(M4, ae.value.width + e.clientX - ae.value.x))));
55368
- }
55369
55433
  function We(e) {
55370
- ae.value?.pointer === e.pointerId && (ae.value = null, e.currentTarget.hasPointerCapture(e.pointerId) && e.currentTarget.releasePointerCapture(e.pointerId), Ne());
55434
+ ae.value?.pointer === e.pointerId && (w.value = Math.round(Math.min(oe.value, Math.max(F4, ae.value.width + e.clientX - ae.value.x))));
55371
55435
  }
55372
55436
  function Ge(e) {
55437
+ ae.value?.pointer === e.pointerId && (ae.value = null, e.currentTarget.hasPointerCapture(e.pointerId) && e.currentTarget.releasePointerCapture(e.pointerId), Pe());
55438
+ }
55439
+ function Ke(e) {
55373
55440
  let t = {
55374
- ArrowLeft: se.value - F4,
55375
- ArrowRight: se.value + F4,
55376
- Home: M4,
55441
+ ArrowLeft: se.value - R4,
55442
+ ArrowRight: se.value + R4,
55443
+ Home: F4,
55377
55444
  End: oe.value
55378
55445
  };
55379
- Object.hasOwn(t, e.key) && (e.preventDefault(), w.value = Math.min(oe.value, Math.max(M4, t[e.key])), Ne());
55446
+ Object.hasOwn(t, e.key) && (e.preventDefault(), w.value = Math.min(oe.value, Math.max(F4, t[e.key])), Pe());
55380
55447
  }
55381
55448
  return (e, r) => {
55382
- let y = sA, b = lH, w = pA, T = MA, O = $V, re = WV, ie = YV, pe = KV, N = HV, je = zV, Me = NV, Ne = AV;
55449
+ let y = sA, b = lH, w = pA, T = MA, O = $V, re = WV, ie = YV, pe = KV, N = HV, Me = zV, Ne = NV, Pe = AV;
55383
55450
  return U(), W("div", {
55384
55451
  class: M(["channel-shell", {
55385
55452
  "channel-resizing": j.value || ae.value,
@@ -55388,24 +55455,25 @@ var r0 = {
55388
55455
  }]),
55389
55456
  style: fe(ce.value)
55390
55457
  }, [
55391
- K("aside", k2, [
55458
+ K("aside", M2, [
55392
55459
  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),
55393
- K("div", A2, [
55394
- q(vZ, {
55460
+ K("div", N2, [
55461
+ q(xZ, {
55395
55462
  onSelect: Te,
55396
55463
  onManage: Ce,
55397
55464
  onCreate: De,
55398
55465
  onCreateFolder: Oe,
55399
55466
  onManageFolder: ke,
55400
55467
  onDeleteFolder: Ae,
55468
+ onArchiveFolder: je,
55401
55469
  onArchives: we
55402
55470
  }),
55403
- K("div", j2, [K("button", {
55471
+ K("div", P2, [K("button", {
55404
55472
  type: "button",
55405
55473
  class: "channel-section-toggle",
55406
55474
  "aria-expanded": f.value,
55407
55475
  onClick: r[0] ||= (e) => f.value = !f.value
55408
- }, [q(y, { name: f.value ? "i-lucide-chevron-down" : "i-lucide-chevron-right" }, null, 8, ["name"]), r[29] ||= J("频道工具", -1)], 8, M2)]),
55476
+ }, [q(y, { name: f.value ? "i-lucide-chevron-down" : "i-lucide-chevron-right" }, null, 8, ["name"]), r[29] ||= J("频道工具", -1)], 8, F2)]),
55409
55477
  f.value ? (U(), G(b, {
55410
55478
  key: 0,
55411
55479
  items: be.value,
@@ -55421,7 +55489,7 @@ var r0 = {
55421
55489
  }
55422
55490
  }, null, 8, ["items"])) : Y("", !0)
55423
55491
  ]),
55424
- K("footer", N2, [K("button", {
55492
+ K("footer", I2, [K("button", {
55425
55493
  type: "button",
55426
55494
  class: "channel-self-button",
55427
55495
  "aria-label": `账号与设置:${I(n).display_name(I(_))}${xe.value ? "," + xe.value : ""}`,
@@ -55437,10 +55505,10 @@ var r0 = {
55437
55505
  "text",
55438
55506
  "alt",
55439
55507
  "class"
55440
- ]), K("span", F2, [K("strong", null, P(I(n).display_name(I(_))), 1), K("span", { class: M(["channel-connection", { "is-action": xe.value }]) }, [K("span", {
55508
+ ]), K("span", R2, [K("strong", null, P(I(n).display_name(I(_))), 1), K("span", { class: M(["channel-connection", { "is-action": xe.value }]) }, [K("span", {
55441
55509
  class: M({ connected: I(t).connected }),
55442
55510
  title: I(t).connected ? "网站已连接" : "网站未连接"
55443
- }, null, 10, I2), J(P(xe.value || (I(t).connected ? "网站已连接" : "网站未连接")), 1)], 2)])], 8, P2), q(O, { text: "设置" }, {
55511
+ }, null, 10, z2), J(P(xe.value || (I(t).connected ? "网站已连接" : "网站未连接")), 1)], 2)])], 8, L2), q(O, { text: "设置" }, {
55444
55512
  default: L(() => [q(T, {
55445
55513
  icon: "i-lucide-settings-2",
55446
55514
  color: "neutral",
@@ -55461,24 +55529,24 @@ var r0 = {
55461
55529
  "aria-label": "调整房间栏宽度",
55462
55530
  "aria-orientation": "vertical",
55463
55531
  "aria-controls": "channel-sidebar",
55464
- "aria-valuemin": M4,
55532
+ "aria-valuemin": F4,
55465
55533
  "aria-valuemax": oe.value,
55466
55534
  "aria-valuenow": se.value,
55467
55535
  "aria-valuetext": `${se.value} 像素`,
55468
55536
  title: "拖动调整房间栏宽度,也可使用方向键",
55469
- onPointerdown: He,
55470
- onPointermove: Ue,
55471
- onPointerup: We,
55472
- onPointercancel: We,
55473
- onLostpointercapture: We,
55474
- onKeydown: Ge
55475
- }, null, 40, L2)),
55476
- K("main", R2, [K("div", {
55537
+ onPointerdown: Ue,
55538
+ onPointermove: We,
55539
+ onPointerup: Ge,
55540
+ onPointercancel: Ge,
55541
+ onLostpointercapture: Ge,
55542
+ onKeydown: Ke
55543
+ }, null, 40, B2)),
55544
+ K("main", V2, [K("div", {
55477
55545
  ref_key: "topbar",
55478
55546
  ref: ne,
55479
55547
  class: M(["channel-topbar", { "is-overlay": o.value && I(t).tab === "discussion" }])
55480
55548
  }, [
55481
- K("header", z2, [
55549
+ K("header", H2, [
55482
55550
  q(O, { text: E.value ? "展开房间栏" : "收起房间栏" }, {
55483
55551
  default: L(() => [q(T, {
55484
55552
  icon: "i-lucide-panel-left",
@@ -55503,8 +55571,8 @@ var r0 = {
55503
55571
  "aria-expanded": d.value,
55504
55572
  onClick: r[4] ||= (e) => d.value = !0
55505
55573
  }, null, 8, ["aria-expanded"]),
55506
- K("span", B2, [q(y, { name: "i-lucide-hash" })]),
55507
- K("div", V2, [K("div", H2, [K("h1", { title: o.value?.title }, P(o.value?.title || "共议"), 9, U2)]), o.value?.archived ? (U(), G(re, {
55574
+ K("span", U2, [q(y, { name: "i-lucide-hash" })]),
55575
+ K("div", W2, [K("div", G2, [K("h1", { title: o.value?.title }, P(o.value?.title || "共议"), 9, K2)]), o.value?.archived ? (U(), G(re, {
55508
55576
  key: 0,
55509
55577
  color: "neutral",
55510
55578
  variant: "subtle",
@@ -55513,12 +55581,12 @@ var r0 = {
55513
55581
  default: L(() => [...r[31] ||= [J("已存档", -1)]]),
55514
55582
  _: 1
55515
55583
  })) : Y("", !0)]),
55516
- o.value ? (U(), W("span", W2, [
55584
+ o.value ? (U(), W("span", q2, [
55517
55585
  J(P(de.find((e) => e.value === I(t).tab)?.label), 1),
55518
55586
  r[32] ||= K("span", null, "·", -1),
55519
55587
  J(P(o.value.message_count) + " 条记录", 1)
55520
55588
  ])) : Y("", !0),
55521
- K("div", G2, [
55589
+ K("div", J2, [
55522
55590
  I(t).tab === "discussion" ? (U(), W("form", {
55523
55591
  key: 0,
55524
55592
  class: "channel-search",
@@ -55576,7 +55644,7 @@ var r0 = {
55576
55644
  ])]),
55577
55645
  _: 1
55578
55646
  })) : Y("", !0),
55579
- o.value && !(A.value && k.value) ? (U(), G(QQ, { key: 2 })) : Y("", !0)
55647
+ o.value && !(A.value && k.value) ? (U(), G(t$, { key: 2 })) : Y("", !0)
55580
55648
  ]),
55581
55649
  q(O, { text: ee.value }, {
55582
55650
  default: L(() => [q(T, {
@@ -55588,7 +55656,7 @@ var r0 = {
55588
55656
  "aria-label": ee.value,
55589
55657
  disabled: !o.value && !(k.value && I(t).tab === "discussion"),
55590
55658
  "aria-expanded": k.value && I(t).tab === "discussion" ? A.value : p.value,
55591
- onClick: Pe
55659
+ onClick: Fe
55592
55660
  }, null, 8, [
55593
55661
  "aria-label",
55594
55662
  "disabled",
@@ -55597,12 +55665,12 @@ var r0 = {
55597
55665
  _: 1
55598
55666
  }, 8, ["text"])
55599
55667
  ]),
55600
- I(t).launch.recoveries.length ? (U(), W("section", K2, [
55668
+ I(t).launch.recoveries.length ? (U(), W("section", Y2, [
55601
55669
  r[33] ||= K("h2", null, "继续未完成的请求", -1),
55602
55670
  (U(!0), W(H, null, B(I(t).launch.recoveries, (e) => (U(), W("article", { key: e.id }, [
55603
55671
  K("strong", null, P(e.title), 1),
55604
- K("p", q2, P(e.error || "启动结果尚未确认;原请求已保存在此浏览器中。"), 1),
55605
- K("div", J2, [
55672
+ K("p", X2, P(e.error || "启动结果尚未确认;原请求已保存在此浏览器中。"), 1),
55673
+ K("div", Z2, [
55606
55674
  q(T, {
55607
55675
  label: e.direct ? "继续创建房间" : "继续本次启动",
55608
55676
  size: "sm",
@@ -55635,7 +55703,7 @@ var r0 = {
55635
55703
  ]))), 128)),
55636
55704
  r[34] ||= K("small", null, "移除待办不会删除房间或停止讨论。", -1)
55637
55705
  ])) : Y("", !0),
55638
- o.value ? (U(), W("div", Y2, [q(pe, {
55706
+ o.value ? (U(), W("div", Q2, [q(pe, {
55639
55707
  modelValue: ue.value,
55640
55708
  "onUpdate:modelValue": r[9] ||= (e) => ue.value = e,
55641
55709
  items: de,
@@ -55650,18 +55718,18 @@ var r0 = {
55650
55718
  key: 2,
55651
55719
  class: M(["channel-host-brief", { "is-collapsed": D.value }]),
55652
55720
  "aria-label": "主持简报"
55653
- }, [K("div", X2, [K("div", Z2, [K("button", {
55721
+ }, [K("div", $2, [K("div", e4, [K("button", {
55654
55722
  type: "button",
55655
55723
  class: "channel-brief-toggle",
55656
55724
  "aria-label": D.value ? "展开主持简报" : "收起主持简报",
55657
55725
  "aria-expanded": !D.value,
55658
55726
  "aria-controls": "channel-brief-content",
55659
- onClick: Ie
55727
+ onClick: Le
55660
55728
  }, [
55661
55729
  q(y, { name: D.value ? "i-lucide-chevron-right" : "i-lucide-chevron-down" }, null, 8, ["name"]),
55662
55730
  K("strong", null, "主持简报" + P(D.value ? ":" : ""), 1),
55663
- D.value ? (U(), W("span", $2, P(te.value), 1)) : Y("", !0)
55664
- ], 8, Q2), D.value ? Y("", !0) : (U(), G(T, {
55731
+ D.value ? (U(), W("span", n4, P(te.value), 1)) : Y("", !0)
55732
+ ], 8, t4), D.value ? Y("", !0) : (U(), G(T, {
55665
55733
  key: 0,
55666
55734
  label: "更新简报",
55667
55735
  color: "neutral",
@@ -55669,20 +55737,20 @@ var r0 = {
55669
55737
  size: "xs",
55670
55738
  class: "channel-brief-update",
55671
55739
  onClick: r[10] ||= (e) => I(i)("tab", "context")
55672
- }))]), vr(K("div", e4, [K("div", {
55740
+ }))]), vr(K("div", r4, [K("div", {
55673
55741
  class: "channel-brief-text markdown-body",
55674
55742
  innerHTML: o.value.rendered_brief
55675
- }, null, 8, t4), K("div", n4, [K("span", r4, 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)
55743
+ }, null, 8, i4), K("div", a4, [K("span", o4, 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)
55676
55744
  ], 2), o.value ? (U(), W("div", {
55677
55745
  key: 0,
55678
55746
  class: M(["channel-body", { "channel-body-discussion": I(t).tab === "discussion" }])
55679
- }, [K("div", i4, [
55747
+ }, [K("div", s4, [
55680
55748
  vr(q(lK, {
55681
55749
  onDetail: Ee,
55682
55750
  onEdit: r[11] ||= (e) => s.value = "edit"
55683
55751
  }, null, 512), [[Vc, I(t).tab === "discussion"]]),
55684
- I(t).tab === "history" ? (U(), W("div", a4, [
55685
- me.value ? (U(), W("section", o4, [K("div", s4, [r[35] ||= K("div", null, [K("h2", null, "当前讨论"), K("p", null, "没有进行中的讨论。开启后由主持人推进成员轮流发言,到上限或结束后房间回到自由协作,记录与结论保留。")], -1), q(T, {
55752
+ I(t).tab === "history" ? (U(), W("div", c4, [
55753
+ me.value ? (U(), W("section", l4, [K("div", u4, [r[35] ||= K("div", null, [K("h2", null, "当前讨论"), K("p", null, "没有进行中的讨论。开启后由主持人推进成员轮流发言,到上限或结束后房间回到自由协作,记录与结论保留。")], -1), q(T, {
55686
55754
  icon: "i-lucide-messages-square",
55687
55755
  label: "开启讨论",
55688
55756
  variant: "outline",
@@ -55690,13 +55758,13 @@ var r0 = {
55690
55758
  class: "channel-surface-button",
55691
55759
  disabled: !_e.value,
55692
55760
  onClick: r[13] ||= (e) => he.value = !0
55693
- }, null, 8, ["disabled"])]), !_e.value && !o.value.archived ? (U(), W("p", c4, "开启讨论需要一位由本机唤醒的 AI 主持人,且本机服务在线。")) : Y("", !0)])) : (U(), G(kq, {
55761
+ }, null, 8, ["disabled"])]), !_e.value && !o.value.archived ? (U(), W("p", d4, "开启讨论需要一位由本机唤醒的 AI 主持人,且本机服务在线。")) : Y("", !0)])) : (U(), G(kq, {
55694
55762
  key: 0,
55695
55763
  section: "host",
55696
55764
  onOpen: r[12] ||= (e) => s.value = e,
55697
55765
  onDetail: Ee
55698
55766
  })),
55699
- K("section", l4, [K("div", u4, [r[36] ||= K("div", null, [K("h2", null, "当前共识"), K("p", null, "主持人整理的结论、共识与分歧,用 #消息编号 保留依据;讨论结束时保存进下方记录。")], -1), ge.value ? Y("", !0) : (U(), G(T, {
55767
+ K("section", f4, [K("div", p4, [r[36] ||= K("div", null, [K("h2", null, "当前共识"), K("p", null, "主持人整理的结论、共识与分歧,用 #消息编号 保留依据;讨论结束时保存进下方记录。")], -1), ge.value ? Y("", !0) : (U(), G(T, {
55700
55768
  key: 0,
55701
55769
  icon: "i-lucide-pencil",
55702
55770
  label: "编辑",
@@ -55709,7 +55777,7 @@ var r0 = {
55709
55777
  class: "summary-form",
55710
55778
  onSubmit: uu(ye, ["prevent"])
55711
55779
  }, [
55712
- q(je, {
55780
+ q(Me, {
55713
55781
  label: "主持简报",
55714
55782
  description: "简述结论、共识、歧义,以及接下来要追问或调整什么、为什么。",
55715
55783
  class: "channel-brief-editor"
@@ -55724,7 +55792,7 @@ var r0 = {
55724
55792
  }, null, 8, ["modelValue"])]),
55725
55793
  _: 1
55726
55794
  }),
55727
- q(je, {
55795
+ q(Me, {
55728
55796
  label: "详细共识与进度",
55729
55797
  description: "已达成的共识、尚未解决的问题与下一步,用 #消息编号 标注依据。",
55730
55798
  class: "channel-state-field"
@@ -55740,7 +55808,7 @@ var r0 = {
55740
55808
  }, null, 8, ["modelValue"])]),
55741
55809
  _: 1
55742
55810
  }),
55743
- K("div", d4, [K("span", null, "依据消息截止 #" + P(I(t).snapshot_id), 1), K("div", f4, [q(T, {
55811
+ K("div", m4, [K("span", null, "依据消息截止 #" + P(I(t).snapshot_id), 1), K("div", h4, [q(T, {
55744
55812
  label: "取消",
55745
55813
  color: "neutral",
55746
55814
  variant: "ghost",
@@ -55753,7 +55821,7 @@ var r0 = {
55753
55821
  class: "channel-primary-button",
55754
55822
  loading: I(a) === "save_context"
55755
55823
  }, null, 8, ["loading"])])])
55756
- ], 32)) : o.value.host_brief?.text || o.value.state_text ? (U(), W(H, { key: 1 }, [K("div", p4, [K("h3", null, [r[37] ||= J("主持简报", -1), o.value.state_until ? (U(), W("button", {
55824
+ ], 32)) : o.value.host_brief?.text || o.value.state_text ? (U(), W(H, { key: 1 }, [K("div", g4, [K("h3", null, [r[37] ||= J("主持简报", -1), o.value.state_until ? (U(), W("button", {
55757
55825
  key: 0,
55758
55826
  type: "button",
55759
55827
  class: "subtle-link",
@@ -55761,7 +55829,7 @@ var r0 = {
55761
55829
  }, "整理至 #" + P(o.value.state_until), 1)) : Y("", !0)]), K("div", {
55762
55830
  class: "markdown-body",
55763
55831
  innerHTML: o.value.rendered_brief
55764
- }, null, 8, m4)]), ve.value ? (U(), W("details", h4, [K("summary", null, [
55832
+ }, null, 8, _4)]), ve.value ? (U(), W("details", v4, [K("summary", null, [
55765
55833
  r[38] ||= K("h3", null, "详细共识与进度", -1),
55766
55834
  r[39] ||= K("span", null, "依据、已处理内容、未决问题与下一步", -1),
55767
55835
  q(y, {
@@ -55771,21 +55839,21 @@ var r0 = {
55771
55839
  ]), K("div", {
55772
55840
  class: "markdown-body consensus-state",
55773
55841
  innerHTML: ve.value
55774
- }, null, 8, g4)])) : Y("", !0)], 64)) : (U(), W("p", _4, "还没有共识。主持人会在讨论中整理,也可以点“编辑”自己写。"))]),
55775
- q(Z$, { onDetail: Ee }),
55776
- q(t$, {
55842
+ }, null, 8, y4)])) : Y("", !0)], 64)) : (U(), W("p", b4, "还没有共识。主持人会在讨论中整理,也可以点“编辑”自己写。"))]),
55843
+ q(e1, { onDetail: Ee }),
55844
+ q(i$, {
55777
55845
  open: he.value,
55778
55846
  "onUpdate:open": r[19] ||= (e) => he.value = e
55779
55847
  }, null, 8, ["open"])
55780
55848
  ])) : Y("", !0),
55781
- I(t).tab === "overview" ? (U(), W("div", v4, [q(O1), me.value ? Y("", !0) : (U(), G(kq, {
55849
+ I(t).tab === "overview" ? (U(), W("div", x4, [q(j1), me.value ? Y("", !0) : (U(), G(kq, {
55782
55850
  key: 0,
55783
55851
  section: "access",
55784
55852
  onOpen: r[20] ||= (e) => s.value = e,
55785
55853
  onDetail: Ee
55786
55854
  }))])) : Y("", !0),
55787
- I(t).tab === "timeline" ? (U(), W("div", y4, [q(O2, { onDetail: Ee })])) : Y("", !0)
55788
- ])], 2)) : (U(), W("div", b4, [
55855
+ I(t).tab === "timeline" ? (U(), W("div", S4, [q(j2, { onDetail: Ee })])) : Y("", !0)
55856
+ ])], 2)) : (U(), W("div", C4, [
55789
55857
  q(y, { name: "i-lucide-hash" }),
55790
55858
  r[40] ||= K("h2", null, "新建一个协作房间", -1),
55791
55859
  r[41] ||= K("p", null, "邀请 AI 一起协作,随时 @ 提问;需要时开启讨论,保留所有人的观点。", -1),
@@ -55804,23 +55872,23 @@ var r0 = {
55804
55872
  "aria-label": "调整右侧栏宽度",
55805
55873
  "aria-orientation": "vertical",
55806
55874
  "aria-controls": "channel-member-rail",
55807
- "aria-valuemin": O4,
55808
- "aria-valuemax": k4,
55875
+ "aria-valuemin": j4,
55876
+ "aria-valuemax": M4,
55809
55877
  "aria-valuenow": C.value,
55810
55878
  "aria-valuetext": `${C.value} 像素`,
55811
55879
  title: "拖动调整右侧栏宽度,也可使用左右方向键",
55812
- onPointerdown: Re,
55813
- onPointermove: ze,
55814
- onPointerup: Be,
55815
- onPointercancel: Be,
55816
- onLostpointercapture: Be,
55817
- onKeydown: Ve
55818
- }, null, 40, x4)) : Y("", !0),
55819
- A.value ? (U(), W("aside", S4, [K("section", C4, [o.value && me.value ? (U(), G(I$, { key: 0 })) : o.value ? (U(), G(qQ, {
55880
+ onPointerdown: ze,
55881
+ onPointermove: Be,
55882
+ onPointerup: Ve,
55883
+ onPointercancel: Ve,
55884
+ onLostpointercapture: Ve,
55885
+ onKeydown: He
55886
+ }, null, 40, w4)) : Y("", !0),
55887
+ A.value ? (U(), W("aside", T4, [K("section", E4, [o.value && me.value ? (U(), G(z$, { key: 0 })) : o.value ? (U(), G(XQ, {
55820
55888
  key: 1,
55821
55889
  docked: ""
55822
- })) : (U(), W("div", w4, [...r[42] ||= [K("header", { class: "pb-header" }, [K("strong", null, "讨论进度")], -1), K("p", { class: "channel-rail-empty" }, "暂无房间,新建讨论后在这里查看进度与参与者。", -1)]]))])])) : Y("", !0),
55823
- q(Me, {
55890
+ })) : (U(), W("div", D4, [...r[42] ||= [K("header", { class: "pb-header" }, [K("strong", null, "讨论进度")], -1), K("p", { class: "channel-rail-empty" }, "暂无房间,新建讨论后在这里查看进度与参与者。", -1)]]))])])) : Y("", !0),
55891
+ q(Ne, {
55824
55892
  open: d.value,
55825
55893
  "onUpdate:open": r[23] ||= (e) => d.value = e,
55826
55894
  side: "left",
@@ -55831,13 +55899,14 @@ var r0 = {
55831
55899
  body: "channel-drawer-body"
55832
55900
  }
55833
55901
  }, {
55834
- body: L(() => [q(vZ, {
55902
+ body: L(() => [q(xZ, {
55835
55903
  onSelect: Te,
55836
55904
  onManage: Ce,
55837
55905
  onCreate: De,
55838
55906
  onCreateFolder: Oe,
55839
55907
  onManageFolder: ke,
55840
55908
  onDeleteFolder: Ae,
55909
+ onArchiveFolder: je,
55841
55910
  onArchives: we
55842
55911
  }), q(T, {
55843
55912
  block: "",
@@ -55851,7 +55920,7 @@ var r0 = {
55851
55920
  })]),
55852
55921
  _: 1
55853
55922
  }, 8, ["open"]),
55854
- q(Me, {
55923
+ q(Ne, {
55855
55924
  open: p.value,
55856
55925
  "onUpdate:open": r[25] ||= (e) => p.value = e,
55857
55926
  title: "房间资料",
@@ -55862,7 +55931,7 @@ var r0 = {
55862
55931
  }
55863
55932
  }, {
55864
55933
  body: L(() => [o.value ? (U(), W(H, { key: 0 }, [
55865
- K("div", T4, [q(y, { name: "i-lucide-hash" }), K("h2", null, P(o.value.title), 1)]),
55934
+ K("div", O4, [q(y, { name: "i-lucide-hash" }), K("h2", null, P(o.value.title), 1)]),
55866
55935
  (U(), W(H, null, B([
55867
55936
  {
55868
55937
  key: "goal",
@@ -55888,8 +55957,8 @@ var r0 = {
55888
55957
  key: e.key,
55889
55958
  class: "info-section"
55890
55959
  }, [K("h3", null, P(e.label), 1), K("p", null, P(o.value[e.key] || "尚未填写"), 1)])), 64)),
55891
- q(Ne),
55892
- K("section", E4, [r[43] ||= K("h3", null, "参与身份", -1), (U(!0), W(H, null, B(Se.value, (e) => (U(), W("div", {
55960
+ q(Pe),
55961
+ K("section", k4, [r[43] ||= K("h3", null, "参与身份", -1), (U(!0), W(H, null, B(Se.value, (e) => (U(), W("div", {
55893
55962
  key: e.name,
55894
55963
  class: "expert-row"
55895
55964
  }, [
@@ -55922,7 +55991,7 @@ var r0 = {
55922
55991
  ], 64)) : Y("", !0)]),
55923
55992
  _: 1
55924
55993
  }, 8, ["open"]),
55925
- q(JX, {
55994
+ q(ZX, {
55926
55995
  modelValue: s.value,
55927
55996
  "onUpdate:modelValue": r[26] ||= (e) => s.value = e,
55928
55997
  "reading-width": x.value,
@@ -55946,7 +56015,7 @@ var r0 = {
55946
56015
  ], 6);
55947
56016
  };
55948
56017
  }
55949
- }, B4 = {
56018
+ }, U4 = {
55950
56019
  __name: "App",
55951
56020
  setup(e) {
55952
56021
  return br("discussion", OV()), (e, t) => {
@@ -55957,7 +56026,7 @@ var r0 = {
55957
56026
  toaster: null
55958
56027
  }, {
55959
56028
  default: L(() => [q(I(Qz), { "reduced-motion": "user" }, {
55960
- default: L(() => [q(z4)]),
56029
+ default: L(() => [q(H4)]),
55961
56030
  _: 1
55962
56031
  })]),
55963
56032
  _: 1
@@ -55967,8 +56036,8 @@ var r0 = {
55967
56036
  };
55968
56037
  //#endregion
55969
56038
  //#region frontend/main.js
55970
- function V4() {
55971
- bu(B4).use(ph).mount("#modern-root");
56039
+ function W4() {
56040
+ bu(U4).use(ph).mount("#modern-root");
55972
56041
  }
55973
- document.readyState === "loading" ? document.addEventListener("DOMContentLoaded", V4) : V4();
56042
+ document.readyState === "loading" ? document.addEventListener("DOMContentLoaded", W4) : W4();
55974
56043
  //#endregion