ai_co_discuss 0.2.93 → 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);
49769
+ }
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
+ });
49757
49777
  }
49758
- let re = Object.keys(s.identities).filter((e) => e !== "用户"), ie = Object.keys(s.identities).map((e) => ({
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-bce8c28d"]]), 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 = { class: "wf-run" }, c0 = ["value"], l0 = {
54284
+ }, l0 = { class: "wf-head" }, u0 = {
54221
54285
  key: 0,
54222
54286
  class: "wf-state is-replay"
54223
- }, u0 = {
54287
+ }, d0 = {
54224
54288
  key: 2,
54225
54289
  class: "wf-headline"
54226
- }, d0 = { class: "wf-summary" }, f0 = ["title"], p0 = ["title"], m0 = { title: "连续调用同一工具合并为一段" }, h0 = {
54290
+ }, f0 = { class: "wf-summary" }, p0 = ["title"], m0 = ["title"], h0 = { title: "连续调用同一工具合并为一段" }, g0 = {
54227
54291
  class: "wf-legend",
54228
54292
  "aria-label": "图例"
54229
- }, g0 = {
54293
+ }, _0 = {
54230
54294
  key: 0,
54231
54295
  class: "wf-legend-note"
54232
- }, _0 = {
54296
+ }, v0 = {
54233
54297
  key: 1,
54234
54298
  class: "wf-legend-note"
54235
- }, v0 = { class: "wf-axis-label" }, y0 = {
54299
+ }, y0 = { class: "wf-axis-label" }, b0 = {
54236
54300
  key: 0,
54237
54301
  class: "wf-zoom"
54238
- }, b0 = {
54302
+ }, x0 = {
54239
54303
  key: 1,
54240
54304
  class: "wf-zoom-hint",
54241
54305
  title: "Ctrl + 滚轮缩放;放大后按住中键或拖动时间轴平移,双击时间轴还原"
54242
- }, x0 = {
54306
+ }, S0 = {
54243
54307
  key: 2,
54244
54308
  class: "wf-branch"
54245
- }, S0 = ["title"], C0 = {
54309
+ }, C0 = ["title"], w0 = {
54246
54310
  key: 0,
54247
54311
  class: "wf-guides",
54248
54312
  "aria-hidden": "true"
54249
- }, w0 = [
54313
+ }, T0 = [
54250
54314
  "aria-expanded",
54251
54315
  "aria-label",
54252
54316
  "onClick"
54253
- ], T0 = {
54317
+ ], E0 = {
54254
54318
  key: 2,
54255
54319
  class: "wf-toggle-space"
54256
- }, E0 = [
54320
+ }, D0 = [
54257
54321
  "aria-expanded",
54258
54322
  "onClick",
54259
54323
  "onMouseenter",
54260
54324
  "onMouseleave"
54261
- ], D0 = { class: "wf-name-line" }, O0 = {
54325
+ ], O0 = { class: "wf-name-line" }, k0 = {
54262
54326
  key: 0,
54263
54327
  class: "wf-spinner",
54264
54328
  "aria-hidden": "true"
54265
- }, k0 = {
54329
+ }, A0 = {
54266
54330
  key: 1,
54267
54331
  class: "wf-pill is-slowest"
54268
- }, A0 = {
54332
+ }, j0 = {
54269
54333
  key: 0,
54270
54334
  class: "wf-live-dot",
54271
54335
  "aria-hidden": "true"
54272
- }, j0 = ["aria-label", "onMouseleave"], M0 = { class: "wf-track" }, N0 = ["data-tone"], P0 = ["onMouseenter", "onClick"], F0 = ["onMouseenter", "onClick"], I0 = [
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
- ], L0 = [
54340
+ ], R0 = [
54277
54341
  "data-tone",
54278
54342
  "onMouseenter",
54279
54343
  "onClick"
54280
- ], R0 = [
54344
+ ], z0 = [
54281
54345
  "data-tone",
54282
54346
  "onMouseenter",
54283
54347
  "onClick"
54284
- ], z0 = [
54348
+ ], B0 = [
54285
54349
  "aria-label",
54286
54350
  "onMouseenter",
54287
54351
  "onClick",
54288
54352
  "onFocus",
54289
54353
  "onBlur"
54290
- ], B0 = { class: "wf-end" }, V0 = { key: 1 }, H0 = ["aria-label"], U0 = { class: "wf-detail-head" }, W0 = { key: 0 }, G0 = { key: 1 }, K0 = { class: "is-failed" }, q0 = { key: 2 }, J0 = { key: 3 }, Y0 = {
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
- }, X0 = ["data-tone"], Z0 = {
54358
+ }, Z0 = ["data-tone"], Q0 = {
54295
54359
  key: 1,
54296
54360
  class: "wf-log-note"
54297
- }, Q0 = {
54361
+ }, $0 = {
54298
54362
  key: 1,
54299
54363
  class: "fine-print"
54300
- }, $0 = {
54364
+ }, e2 = {
54301
54365
  key: 1,
54302
54366
  class: "wf-player"
54303
- }, e2 = {
54367
+ }, t2 = {
54304
54368
  key: 2,
54305
54369
  class: "wf-player"
54306
- }, t2 = ["aria-label"], n2 = ["disabled"], r2 = { value: 0 }, i2 = ["value"], a2 = ["max", "value"], o2 = { class: "wf-player-time" }, s2 = {
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
- }, c2 = { key: 0 }, l2 = { key: 1 }, u2 = ["role"], d2 = {
54373
+ }, s2 = { key: 0 }, c2 = { key: 1 }, l2 = ["role"], u2 = {
54310
54374
  key: 1,
54311
54375
  class: "wf-card-text"
54312
- }, f2 = {
54376
+ }, d2 = {
54313
54377
  key: 2,
54314
54378
  class: "wf-card-reason"
54315
- }, p2 = { class: "wf-card-label" }, m2 = 2e3, h2 = 6e4, g2 = 100, _2 = 60, v2 = 2e4, y2 = 600, b2 = 5, x2 = 16, S2 = 90, C2 = 2, w2 = 8, T2 = 560, E2 = .0015, D2 = "latest", O2 = "all", k2 = 22, A2 = 5, j2 = 52, M2 = /*#__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 >= h2 ? 0 : S - b2;
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
- }, m2));
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,20 +54434,20 @@ 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(), Ee.value = e0(Ee.value, re(e).share, Math.exp(e.deltaY * E2), we.value.total_ms)) : De.value && (e.shiftKey || Math.abs(e.deltaX) > Math.abs(e.deltaY)) && (e.preventDefault(), Ee.value = t0(Ee.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");
54377
- De.value && (e.button === 1 || e.button === 0 && t) && e.target.closest?.(".wf-track, .wf-axis") && (e.preventDefault(), ne = {
54441
+ Oe.value && (e.button === 1 || e.button === 0 && t) && e.target.closest?.(".wf-track, .wf-axis") && (e.preventDefault(), ne = {
54378
54442
  x: e.clientX,
54379
- from: Ee.value.from,
54443
+ from: De.value.from,
54380
54444
  width: re(e).width
54381
54445
  }, e.currentTarget.setPointerCapture(e.pointerId));
54382
54446
  }
54383
54447
  function ae(e) {
54384
- ne && (Ee.value = t0({
54448
+ ne && (De.value = i0({
54385
54449
  from: ne.from,
54386
- span: Ee.value.span
54450
+ span: De.value.span
54387
54451
  }, -(e.clientX - ne.x) / ne.width));
54388
54452
  }
54389
54453
  function oe() {
@@ -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(D2), 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 === D2 ? de.value.list[0]?.key : ue.value === O2 || de.value.list.some((e) => e.key === ue.value) ? ue.value : de.value.list[0]?.key), me = Z(() => !te.value || pe.value === O2 ? 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 = D2;
54482
+ ue.value = E2;
54419
54483
  });
54420
54484
  let he = (e) => new Date(e).toLocaleString("zh-CN", {
54421
54485
  month: "numeric",
@@ -54425,11 +54489,24 @@ 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, k2)}${e.task.length > k2 ? "…" : ""}` : 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
- let N = Z(() => me.value ? V1(me.value, h.value) : []), _e = Z(() => N.value.some((e) => e.item.state === "running")), ve = Z(() => {
54432
- let e = Math.min(...N.value.map((e) => e.start)), t = Math.max(...N.value.map((e) => e.end));
54495
+ let N = Z(() => [
54496
+ {
54497
+ label: "最近一轮(自动跟随)",
54498
+ value: E2
54499
+ },
54500
+ ...de.value.list.map((e) => ({
54501
+ label: ge(e),
54502
+ value: e.key
54503
+ })),
54504
+ {
54505
+ label: "全部执行",
54506
+ value: D2
54507
+ }
54508
+ ]), _e = Z(() => me.value ? W1(me.value, h.value) : []), ve = Z(() => _e.value.some((e) => e.item.state === "running")), ye = Z(() => {
54509
+ let e = Math.min(..._e.value.map((e) => e.start)), t = Math.max(..._e.value.map((e) => e.end));
54433
54510
  return Number.isFinite(e) ? {
54434
54511
  start: e,
54435
54512
  end: t,
@@ -54439,82 +54516,88 @@ var r0 = {
54439
54516
  end: 0,
54440
54517
  duration: 0
54441
54518
  };
54442
- }), ye = Z(() => k.position !== null && !_e.value), be = Z(() => ye.value ? ve.value.start + k.position : h.value), xe = Z(() => ye.value ? V1(z1(me.value, be.value, _.value), be.value) : N.value), Se = Z(() => xe.value.filter((e) => !e.ancestors.some((e) => g.value.has(e)))), Ce = Z(() => xe.value.some((e) => e.item.state === "running")), we = Z(() => q1(xe.value, Ce.value)), Te = {
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 = {
54443
54520
  from: 0,
54444
54521
  span: 1
54445
- }, Ee = /* @__PURE__ */ F(Te), De = Z(() => Ee.value.span < 1);
54522
+ }, De = /* @__PURE__ */ F(Ee), Oe = Z(() => De.value.span < 1);
54446
54523
  R([pe, d], () => {
54447
- Ee.value = Te;
54524
+ De.value = Ee;
54448
54525
  });
54449
- let Oe = Z(() => $1(we.value, Ee.value)), ke = Z(() => {
54450
- let e = Ce.value ? Oe.value.x(be.value) : null;
54526
+ let ke = Z(() => n0(Te.value, De.value)), Ae = Z(() => {
54527
+ let e = we.value ? ke.value.x(xe.value) : null;
54451
54528
  return e === null || e < 0 || e > 1 ? null : e;
54452
- }), Ae = Z(() => Math.max(1, ve.value.duration / v2)), je = Z(() => k.speed || Ae.value);
54453
- function Me(e) {
54529
+ }), je = Z(() => Math.max(1, ye.value.duration / _2)), Me = Z(() => [{
54530
+ label: `自动 · ${Math.round(je.value)}×`,
54531
+ value: 0
54532
+ }, ...o.map((e) => ({
54533
+ label: `${e}×`,
54534
+ value: e
54535
+ }))]), Ne = Z(() => k.speed || je.value);
54536
+ function Pe(e) {
54454
54537
  let t = D ? Math.min(e - D, 250) : 0;
54455
54538
  D = e;
54456
- let n = xe.value.length <= _2 || e - O >= g2;
54457
- k.playing && (A += t * je.value, A >= ve.value.duration ? Object.assign(k, {
54539
+ let n = Se.value.length <= g2 || e - O >= h2;
54540
+ k.playing && (A += t * Ne.value, A >= ye.value.duration ? Object.assign(k, {
54458
54541
  position: null,
54459
54542
  playing: !1
54460
- }) : n && (k.position = A)), _e.value && n && (h.value = Date.now()), n && (O = e), E = _e.value || k.playing ? requestAnimationFrame(Me) : 0, E || (D = 0);
54543
+ }) : n && (k.position = A)), ve.value && n && (h.value = Date.now()), n && (O = e), E = ve.value || k.playing ? requestAnimationFrame(Pe) : 0, E || (D = 0);
54461
54544
  }
54462
- R([_e, () => k.playing], () => {
54463
- !E && (_e.value || k.playing) && (E = requestAnimationFrame(Me));
54545
+ R([ve, () => k.playing], () => {
54546
+ !E && (ve.value || k.playing) && (E = requestAnimationFrame(Pe));
54464
54547
  }, { immediate: !0 });
54465
- async function Ne() {
54466
- k.position === null ? (A = 0, Be()) : A = k.position, Object.assign(k, {
54548
+ async function Fe() {
54549
+ k.position === null ? (A = 0, He()) : A = k.position, Object.assign(k, {
54467
54550
  position: A,
54468
54551
  playing: !0
54469
- }), Pe();
54552
+ }), Ie();
54470
54553
  }
54471
- function Pe() {
54472
- for (let e of me.value?.executions || []) at({
54554
+ function Ie() {
54555
+ for (let e of me.value?.executions || []) st({
54473
54556
  item: e,
54474
54557
  notes: e.notes || []
54475
54558
  });
54476
54559
  }
54477
- function Fe() {
54560
+ function Le() {
54478
54561
  k.playing = !1;
54479
54562
  }
54480
- function Ie() {
54481
- A = 0, Be(), Object.assign(k, {
54563
+ function Re() {
54564
+ A = 0, He(), Object.assign(k, {
54482
54565
  position: 0,
54483
54566
  playing: !0
54484
54567
  });
54485
54568
  }
54486
- function Le(e) {
54569
+ function ze(e) {
54487
54570
  A = Number(e.target.value), Object.assign(k, {
54488
54571
  position: A,
54489
54572
  playing: !1
54490
- }), Pe();
54573
+ }), Ie();
54491
54574
  }
54492
54575
  R([pe, d], () => Object.assign(k, {
54493
54576
  position: null,
54494
54577
  playing: !1
54495
54578
  }));
54496
- let Re = /* @__PURE__ */ F(/* @__PURE__ */ new Set()), ze = null;
54497
- function Be() {
54498
- ze = /* @__PURE__ */ new Set(), Re.value = /* @__PURE__ */ new Set();
54499
- }
54500
- R(() => Se.value.map((e) => e.key).join(), () => {
54501
- let e = Se.value.map((e) => e.key);
54502
- if (!ze) {
54503
- ze = new Set(e);
54579
+ let Be = /* @__PURE__ */ F(/* @__PURE__ */ new Set()), Ve = null;
54580
+ function He() {
54581
+ Ve = /* @__PURE__ */ new Set(), Be.value = /* @__PURE__ */ new Set();
54582
+ }
54583
+ R(() => Ce.value.map((e) => e.key).join(), () => {
54584
+ let e = Ce.value.map((e) => e.key);
54585
+ if (!Ve) {
54586
+ Ve = new Set(e);
54504
54587
  return;
54505
54588
  }
54506
- let t = e.filter((e) => !ze.has(e));
54507
- t.forEach((e) => ze.add(e)), t.length && (Re.value = /* @__PURE__ */ new Set([...Re.value, ...t]), setTimeout(() => {
54508
- Re.value = new Set([...Re.value].filter((e) => !t.includes(e)));
54509
- }, y2));
54589
+ let t = e.filter((e) => !Ve.has(e));
54590
+ t.forEach((e) => Ve.add(e)), t.length && (Be.value = /* @__PURE__ */ new Set([...Be.value, ...t]), setTimeout(() => {
54591
+ Be.value = new Set([...Be.value].filter((e) => !t.includes(e)));
54592
+ }, v2));
54510
54593
  }), R([pe, d], () => {
54511
- ze = null;
54594
+ Ve = null;
54512
54595
  });
54513
- let Ve = Z(() => W1(Se.value, Oe.value)), He = Z(() => X1(we.value, Math.min(w2, Math.max(C2, Math.round((l.value || 540) / S2))), Ee.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) => ({
54514
54597
  ...e,
54515
- x: (e.x - Ee.value.from) / Ee.value.span
54516
- }))), Ue = Z(() => n0(xe.value, be.value)), We = Z(() => xe.value.filter((e) => e.has_children).map((e) => e.key)), Ge = Z(() => xe.value.find((e) => e.key === y.value)), Ke = Z(() => Ge.value ? R1(Ge.value, _.value.get(Ge.value.item.id)) : []), qe = Z(() => {
54517
- let e = xe.value, t = new Set(e.flatMap((e) => e.segments.map((e) => A1[e.phase])));
54598
+ x: (e.x - De.value.from) / De.value.span
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])));
54518
54601
  return [
54519
54602
  ...e.some((e) => e.queue[1] > e.queue[0]) ? [["queue", "排队"]] : [],
54520
54603
  ...e.some((e) => e.wake) ? [["wake", "唤醒"]] : [],
@@ -54525,13 +54608,13 @@ var r0 = {
54525
54608
  ...e.some((e) => e.notes.length) ? [["note-mark", "过程说明"]] : [],
54526
54609
  ...e.some((e) => e.item.state === "failed") ? [["failed-mark", "失败"]] : []
54527
54610
  ];
54528
- }), Je = Z(() => xe.value.length > 0 && xe.value.every((e) => !e.segments.length)), Ye = Z(() => {
54611
+ }), Xe = Z(() => Se.value.length > 0 && Se.value.every((e) => !e.segments.length)), Ze = Z(() => {
54529
54612
  let e = /* @__PURE__ */ new Map();
54530
- for (let t of [...xe.value].sort((e, t) => e.start - t.start)) e.has(t.item.member) || e.set(t.item.member, e.size % A2 + 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);
54531
54614
  return e;
54532
- }), Xe = Z(() => {
54533
- let e = j2 / (l.value || 800), t = [];
54534
- for (let n of Oe.value.folds) {
54615
+ }), Qe = Z(() => {
54616
+ let e = A2 / (l.value || 800), t = [];
54617
+ for (let n of ke.value.folds) {
54535
54618
  let r = n.from + n.width / 2;
54536
54619
  r < 0 || r > 1 || (!t.length || r - t.at(-1).middle >= e) && t.push({
54537
54620
  ...n,
@@ -54539,97 +54622,97 @@ var r0 = {
54539
54622
  });
54540
54623
  }
54541
54624
  return t;
54542
- }), Ze = Z(() => {
54543
- let e = j2 / (l.value || 800);
54544
- return He.value.filter((t) => !Xe.value.some((n) => Math.abs(t.x - n.middle) < e));
54625
+ }), $e = Z(() => {
54626
+ let e = A2 / (l.value || 800);
54627
+ return We.value.filter((t) => !Qe.value.some((n) => Math.abs(t.x - n.middle) < e));
54545
54628
  });
54546
- function Qe(e, t) {
54629
+ function et(e, t) {
54547
54630
  if (y.value = y.value === e.key ? "" : e.key, !y.value) return;
54548
- let n = t.currentTarget.getBoundingClientRect(), r = x.value.getBoundingClientRect(), i = Math.min(T2, r.width - 16);
54631
+ let n = t.currentTarget.getBoundingClientRect(), r = x.value.getBoundingClientRect(), i = Math.min(w2, r.width - 16);
54549
54632
  b.value = {
54550
54633
  top: n.bottom - r.top + 4,
54551
54634
  left: Math.max(8, Math.min(n.left - r.left, r.width - i - 8))
54552
- }, v.value = null, at(e);
54635
+ }, v.value = null, st(e);
54553
54636
  }
54554
- R(() => Ge.value?.notes.length, () => {
54555
- Ge.value && at(Ge.value);
54637
+ R(() => qe.value?.notes.length, () => {
54638
+ qe.value && st(qe.value);
54556
54639
  });
54557
- function $e(e) {
54640
+ function tt(e) {
54558
54641
  let t = new Set(g.value);
54559
54642
  t.has(e) ? t.delete(e) : t.add(e), g.value = t;
54560
54643
  }
54561
- function et(e, t, n = !1) {
54562
- let r = Oe.value.x(e), i = Math.max(0, Oe.value.x(t) - r) * 100;
54644
+ function nt(e, t, n = !1) {
54645
+ let r = ke.value.x(e), i = Math.max(0, ke.value.x(t) - r) * 100;
54563
54646
  return {
54564
54647
  left: `${r * 100}%`,
54565
54648
  width: n ? `max(2px, calc(${i}% - 1px))` : `${i}%`
54566
54649
  };
54567
54650
  }
54568
- function tt(e) {
54651
+ function rt(e) {
54569
54652
  let t = e.item.role === "host";
54570
54653
  return e.item.source === "discussion" ? t ? "讨论 · 主持" : "讨论 · 专家" : t ? "协作 · 主持" : "协作";
54571
54654
  }
54572
- function nt(e) {
54655
+ function it(e) {
54573
54656
  return [...e.item.source === "discussion" ? ["讨论"] : [], ...e.item.role === "host" ? ["主持"] : []];
54574
54657
  }
54575
- let rt = (e) => L1(e, be.value);
54576
- function it(e) {
54658
+ let at = (e) => B1(e, xe.value);
54659
+ function ot(e) {
54577
54660
  let t = [
54578
54661
  i.display_name(e.item.member),
54579
- tt(e),
54580
- j1[e.item.state],
54581
- `用时 ${P1(e.end - e.start)}`
54662
+ rt(e),
54663
+ P1[e.item.state],
54664
+ `用时 ${L1(e.end - e.start)}`
54582
54665
  ];
54583
- 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(",");
54584
54667
  }
54585
- async function at(e) {
54668
+ async function st(e) {
54586
54669
  let t = e.item.id;
54587
54670
  if (!(e.item.source !== "free" || !e.notes.length || (_.value.get(t)?.length || 0) >= e.notes.length)) try {
54588
54671
  let { notes: e } = await i.request(`/api/rooms/${d.value}/executions/${t}/notes`);
54589
54672
  _.value = new Map(_.value).set(t, e.map((e) => e.text));
54590
54673
  } catch {}
54591
54674
  }
54592
- let ot = (e) => new Date(e).toLocaleTimeString("zh-CN", {
54675
+ let ct = (e) => new Date(e).toLocaleTimeString("zh-CN", {
54593
54676
  hour: "2-digit",
54594
54677
  minute: "2-digit",
54595
54678
  second: "2-digit",
54596
54679
  hour12: !1
54597
- }), st = (e) => new Date(e.at).toLocaleTimeString("zh-CN", {
54680
+ }), lt = (e) => new Date(e.at).toLocaleTimeString("zh-CN", {
54598
54681
  hour: "2-digit",
54599
54682
  minute: "2-digit",
54600
54683
  ...e.seconds ? { second: "2-digit" } : {},
54601
54684
  hour12: !1
54602
54685
  });
54603
- function ct(e, t, n, r = !1) {
54686
+ function ut(e, t, n, r = !1) {
54604
54687
  let i = e.currentTarget.getBoundingClientRect(), a = n.note ? {
54605
54688
  notes: [n.note],
54606
54689
  earlier: !1
54607
- } : 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;
54608
54691
  v.value = {
54609
54692
  key: t.key,
54610
- id: lt(t, n),
54693
+ id: dt(t, n),
54611
54694
  row: t,
54612
54695
  piece: n,
54613
54696
  related: a,
54614
54697
  pinned: r,
54615
54698
  left: Math.max(8, Math.min(i.left, window.innerWidth - o - 8)),
54616
54699
  top: c
54617
- }, at(t);
54700
+ }, st(t);
54618
54701
  }
54619
- let lt = (e, t) => `${e.key}:${t.kind || t.label || "note"}:${t.start}`;
54620
- function ut(e, t, n) {
54621
- s && ct(e, t, n);
54702
+ let dt = (e, t) => `${e.key}:${t.kind || t.label || "note"}:${t.start}`;
54703
+ function ft(e, t, n) {
54704
+ s && ut(e, t, n);
54622
54705
  }
54623
- function dt(e, t, n) {
54624
- s || (v.value?.id === lt(t, n) ? v.value = null : ct(e, t, n, !0));
54706
+ function pt(e, t, n) {
54707
+ s || (v.value?.id === dt(t, n) ? v.value = null : ut(e, t, n, !0));
54625
54708
  }
54626
- function ft(e) {
54709
+ function mt(e) {
54627
54710
  v.value?.key === e.key && !v.value.pinned && (v.value = null);
54628
54711
  }
54629
- let pt = Z(() => {
54712
+ let ht = Z(() => {
54630
54713
  let e = v.value?.piece;
54631
- return e ? e.note ? `过程说明 · ${ot(e.note.at)}` : `${e.kind === "segment" ? `${k1[e.phase]}${e.tool ? ` · ${e.tool}` : ""}` : e.label} · ${P1(e.end - e.start)}${e.live ? " · 进行中" : ""}` : "";
54632
- }), mt = Z(() => {
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 ? " · 进行中" : ""}` : "";
54715
+ }), gt = Z(() => {
54633
54716
  if (!v.value) return [];
54634
54717
  let e = _.value.get(v.value.row.item.id);
54635
54718
  return v.value.related.notes.map((t) => ({
@@ -54638,83 +54721,81 @@ var r0 = {
54638
54721
  }));
54639
54722
  });
54640
54723
  return (e, t) => {
54641
- let r = sA, s = pA;
54642
- return U(), W("section", r0, [
54643
- t[31] ||= K("div", { class: "page-heading" }, [K("div", null, [K("h2", null, "执行时间线"), K("p", null, "本机接入程序唤醒的每次执行;点名字看详情,悬停条形看当时的过程说明。")])], -1),
54644
- m.value ? (U(), W("p", i0, P(m.value), 1)) : Y("", !0),
54645
- te.value && !xe.value.length ? (U(), W("p", a0, "还没有执行记录。")) : Y("", !0),
54646
- xe.value.length ? (U(), W("div", {
54724
+ let r = bH, o = sA, s = pA;
54725
+ return U(), W("section", o0, [
54726
+ t[30] ||= K("div", { class: "page-heading" }, [K("div", null, [K("h2", null, "执行时间线"), K("p", null, "本机接入程序唤醒的每次执行;点名字看详情,悬停条形看当时的过程说明。")])], -1),
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),
54729
+ Se.value.length ? (U(), W("div", {
54647
54730
  key: 2,
54648
54731
  ref_key: "wf_element",
54649
54732
  ref: x,
54650
54733
  class: "wf"
54651
54734
  }, [
54652
- K("header", o0, [
54653
- t[13] ||= K("span", { class: "wf-title" }, "执行瀑布", -1),
54654
- K("label", s0, [
54655
- t[11] ||= K("span", { class: "sr-only" }, "查看哪一轮", -1),
54656
- vr(K("select", {
54657
- "onUpdate:modelValue": t[0] ||= (e) => ue.value = e,
54658
- class: "wf-run-select"
54659
- }, [
54660
- K("option", { value: D2 }, "最近一轮(自动跟随)"),
54661
- (U(!0), W(H, null, B(de.value.list, (e) => (U(), W("option", {
54662
- key: e.key,
54663
- value: e.key
54664
- }, P(ge(e)), 9, c0))), 128)),
54665
- K("option", { value: O2 }, "全部执行")
54666
- ], 512), [[$l, ue.value]]),
54667
- q(r, {
54668
- name: "i-lucide-chevrons-up-down",
54669
- class: "wf-run-icon",
54670
- "aria-hidden": "true"
54671
- })
54672
- ]),
54673
- ye.value ? (U(), W("span", l0, "回放中 · " + P(ot(be.value)), 1)) : (U(), W("span", {
54735
+ K("header", l0, [
54736
+ t[12] ||= K("span", { class: "wf-title" }, "执行瀑布", -1),
54737
+ q(r, {
54738
+ modelValue: ue.value,
54739
+ "onUpdate:modelValue": t[0] ||= (e) => ue.value = e,
54740
+ items: N.value,
54741
+ "trailing-icon": "i-lucide-chevrons-up-down",
54742
+ variant: "none",
54743
+ "aria-label": "查看哪一轮",
54744
+ class: "wf-run-select",
54745
+ content: {
54746
+ align: "start",
54747
+ sideOffset: 4
54748
+ },
54749
+ ui: {
54750
+ content: "channel-select-menu wf-run-menu",
54751
+ trailingIcon: "wf-select-icon"
54752
+ }
54753
+ }, null, 8, ["modelValue", "items"]),
54754
+ be.value ? (U(), W("span", u0, "回放中 · " + P(ct(xe.value)), 1)) : (U(), W("span", {
54674
54755
  key: 1,
54675
- class: M(["wf-state", { "is-live": Ue.value.running }])
54676
- }, P(Ue.value.running ? `${Ue.value.running} 个进行中` : "均已结束"), 3)),
54677
- Ue.value.slowest ? (U(), W("span", u0, [
54678
- t[12] ||= J("最慢一步 ", -1),
54679
- K("b", null, [J(P(I(i).display_name(Ue.value.slowest.member)) + " · " + P(I(k1)[Ue.value.slowest.phase]), 1), Ue.value.slowest.tool ? (U(), W(H, { key: 0 }, [J(P(Ue.value.slowest.tool), 1)], 64)) : Y("", !0)]),
54680
- J(" · " + P(I(P1)(Ue.value.slowest.end - Ue.value.slowest.start)), 1)
54756
+ class: M(["wf-state", { "is-live": Ge.value.running }])
54757
+ }, P(Ge.value.running ? `${Ge.value.running} 个进行中` : "均已结束"), 3)),
54758
+ Ge.value.slowest ? (U(), W("span", d0, [
54759
+ t[11] ||= J("最慢一步 ", -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)
54681
54762
  ])) : Y("", !0)
54682
54763
  ]),
54683
- K("dl", d0, [
54684
- K("div", null, [t[14] ||= K("dt", null, "执行", -1), K("dd", null, [(U(), W("span", {
54685
- key: Ue.value.executions,
54764
+ K("dl", f0, [
54765
+ K("div", null, [t[13] ||= K("dt", null, "执行", -1), K("dd", null, [(U(), W("span", {
54766
+ key: Ge.value.executions,
54686
54767
  class: "wf-roll"
54687
- }, P(Ue.value.executions), 1))])]),
54688
- K("div", null, [t[15] ||= K("dt", null, "进行中", -1), K("dd", { class: M(Ue.value.running ? "is-live" : "is-zero") }, [(U(), W("span", {
54689
- key: Ue.value.running,
54768
+ }, P(Ge.value.executions), 1))])]),
54769
+ K("div", null, [t[14] ||= K("dt", null, "进行中", -1), K("dd", { class: M(Ge.value.running ? "is-live" : "is-zero") }, [(U(), W("span", {
54770
+ key: Ge.value.running,
54690
54771
  class: "wf-roll"
54691
- }, P(Ue.value.running), 1))], 2)]),
54692
- K("div", null, [t[16] ||= K("dt", null, "失败", -1), K("dd", { class: M(Ue.value.failed ? "is-failed" : "is-zero") }, [(U(), W("span", {
54693
- key: Ue.value.failed,
54772
+ }, P(Ge.value.running), 1))], 2)]),
54773
+ K("div", null, [t[15] ||= K("dt", null, "失败", -1), K("dd", { class: M(Ge.value.failed ? "is-failed" : "is-zero") }, [(U(), W("span", {
54774
+ key: Ge.value.failed,
54694
54775
  class: "wf-roll"
54695
- }, P(Ue.value.failed), 1))], 2)]),
54696
- K("div", { title: `超过 ${a} 分钟没有输出` }, [t[17] ||= K("dt", null, "可能卡住", -1), K("dd", { class: M(Ue.value.stalled ? "is-warn" : "is-zero") }, [(U(), W("span", {
54697
- key: Ue.value.stalled,
54776
+ }, P(Ge.value.failed), 1))], 2)]),
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", {
54778
+ key: Ge.value.stalled,
54698
54779
  class: "wf-roll"
54699
- }, P(Ue.value.stalled), 1))], 2)], 8, f0),
54700
- K("div", { title: we.value.folds.length ? `已折叠 ${we.value.folds.length} 段超过 ${I(M1) / 6e4} 分钟的空闲` : void 0 }, [t[18] ||= K("dt", null, "有效时长", -1), K("dd", null, P(I(P1)(we.value.busy_ms)), 1)], 8, p0),
54701
- K("div", m0, [t[20] ||= K("dt", null, "工具与命令", -1), K("dd", { class: M({ "is-zero": !Ue.value.tool_segments }) }, [(U(), W("span", {
54702
- key: Ue.value.tool_segments,
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", {
54783
+ key: Ge.value.tool_segments,
54703
54784
  class: "wf-roll"
54704
- }, P(Ue.value.tool_segments), 1)), t[19] ||= J(" 段", -1)], 2)])
54785
+ }, P(Ge.value.tool_segments), 1)), t[18] ||= J(" 段", -1)], 2)])
54705
54786
  ]),
54706
- K("ul", h0, [
54707
- (U(!0), W(H, null, B(qe.value, ([e, t]) => (U(), W("li", { key: e }, [K("i", { class: M(["wf-swatch", `is-${e}`]) }, null, 2), J(P(t), 1)]))), 128)),
54708
- Ye.value.size > 1 ? (U(), W("li", g0, "颜色区分成员,深浅区分模型与工具")) : Y("", !0),
54709
- Je.value ? (U(), W("li", _0, "这些执行都没有阶段明细:发生在接入程序上报阶段之前,或来自手动接入、在线 AI、Codex App")) : Y("", !0)
54787
+ K("ul", g0, [
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)),
54789
+ Ze.value.size > 1 ? (U(), W("li", _0, "颜色区分成员,深浅区分模型与工具")) : Y("", !0),
54790
+ Xe.value ? (U(), W("li", v0, "这些执行都没有阶段明细:发生在接入程序上报阶段之前,或来自手动接入、在线 AI、Codex App")) : Y("", !0)
54710
54791
  ]),
54711
54792
  K("div", {
54712
54793
  class: M(["wf-grid", {
54713
- "is-zoomed": De.value,
54794
+ "is-zoomed": Oe.value,
54714
54795
  "is-panning": I(ne)
54715
54796
  }]),
54716
54797
  role: "list",
54717
- style: fe({ "--wf-depth-px": `${x2}px` }),
54798
+ style: fe({ "--wf-depth-px": `${b2}px` }),
54718
54799
  onWheel: ie,
54719
54800
  onMousedown: se,
54720
54801
  onPointerdown: j,
@@ -54722,21 +54803,21 @@ var r0 = {
54722
54803
  onPointerup: oe,
54723
54804
  onPointercancel: oe
54724
54805
  }, [
54725
- K("div", v0, [
54726
- K("span", null, "执行 · " + P(Se.value.length) + "/" + P(xe.value.length), 1),
54727
- De.value ? (U(), W("span", y0, [J("放大 " + P((1 / Ee.value.span).toFixed(1)) + "×", 1), K("button", {
54806
+ K("div", y0, [
54807
+ K("span", null, "执行 · " + P(Ce.value.length) + "/" + P(Se.value.length), 1),
54808
+ Oe.value ? (U(), W("span", b0, [J("放大 " + P((1 / De.value.span).toFixed(1)) + "×", 1), K("button", {
54728
54809
  type: "button",
54729
54810
  class: "wf-text-button",
54730
- onClick: t[1] ||= (e) => Ee.value = Te
54731
- }, "重置")])) : (U(), W("span", b0, "Ctrl + 滚轮缩放")),
54732
- We.value.length ? (U(), W("span", x0, [K("button", {
54811
+ onClick: t[1] ||= (e) => De.value = Ee
54812
+ }, "重置")])) : (U(), W("span", x0, "Ctrl + 滚轮缩放")),
54813
+ Ke.value.length ? (U(), W("span", S0, [K("button", {
54733
54814
  type: "button",
54734
54815
  class: "wf-text-button",
54735
54816
  onClick: t[2] ||= (e) => g.value = /* @__PURE__ */ new Set()
54736
54817
  }, "展开全部"), K("button", {
54737
54818
  type: "button",
54738
54819
  class: "wf-text-button",
54739
- onClick: t[3] ||= (e) => g.value = new Set(We.value)
54820
+ onClick: t[3] ||= (e) => g.value = new Set(Ke.value)
54740
54821
  }, "收起全部")])) : Y("", !0)
54741
54822
  ]),
54742
54823
  K("div", {
@@ -54744,47 +54825,47 @@ var r0 = {
54744
54825
  ref: c,
54745
54826
  class: "wf-axis",
54746
54827
  "aria-hidden": "true",
54747
- onDblclick: t[4] ||= (e) => Ee.value = Te
54828
+ onDblclick: t[4] ||= (e) => De.value = Ee
54748
54829
  }, [
54749
- (U(!0), W(H, null, B(Ze.value, (e) => (U(), W("span", {
54830
+ (U(!0), W(H, null, B($e.value, (e) => (U(), W("span", {
54750
54831
  key: e.at,
54751
54832
  class: "wf-tick",
54752
54833
  style: fe({ left: `${e.x * 100}%` })
54753
- }, P(st(e)), 5))), 128)),
54754
- (U(!0), W(H, null, B(Xe.value, (e) => (U(), W("span", {
54834
+ }, P(lt(e)), 5))), 128)),
54835
+ (U(!0), W(H, null, B(Qe.value, (e) => (U(), W("span", {
54755
54836
  key: `fold-${e.start}`,
54756
54837
  class: "wf-fold-label",
54757
54838
  style: fe({ left: `${e.middle * 100}%` }),
54758
- title: `${ot(e.start)} – ${ot(e.end)} 没有执行,已折叠`
54759
- }, "⋯ " + P(I(P1)(e.end - e.start)), 13, S0))), 128)),
54760
- ke.value === null ? Y("", !0) : (U(), W("span", {
54839
+ title: `${ct(e.start)} – ${ct(e.end)} 没有执行,已折叠`
54840
+ }, "⋯ " + P(I(L1)(e.end - e.start)), 13, C0))), 128)),
54841
+ Ae.value === null ? Y("", !0) : (U(), W("span", {
54761
54842
  key: 0,
54762
54843
  class: "wf-cursor-head",
54763
- style: fe({ left: `${ke.value * 100}%` })
54844
+ style: fe({ left: `${Ae.value * 100}%` })
54764
54845
  }, null, 4))
54765
54846
  ], 544),
54766
- t[22] ||= K("span", { class: "wf-axis-end" }, "用时", -1),
54767
- (U(!0), W(H, null, B(Se.value, (e) => (U(), W("div", {
54847
+ t[21] ||= K("span", { class: "wf-axis-end" }, "用时", -1),
54848
+ (U(!0), W(H, null, B(Ce.value, (e) => (U(), W("div", {
54768
54849
  key: e.key,
54769
54850
  role: "listitem",
54770
54851
  class: M(["wf-row", [`is-${e.item.state}`, {
54771
54852
  "is-open": y.value === e.key,
54772
- "is-entering": Re.value.has(e.key)
54853
+ "is-entering": Be.value.has(e.key)
54773
54854
  }]])
54774
54855
  }, [
54775
54856
  K("div", {
54776
54857
  class: "wf-label",
54777
54858
  style: fe({ "--depth": e.depth })
54778
54859
  }, [
54779
- e.depth ? (U(), W("span", C0)) : Y("", !0),
54860
+ e.depth ? (U(), W("span", w0)) : Y("", !0),
54780
54861
  e.has_children ? (U(), W("button", {
54781
54862
  key: 1,
54782
54863
  type: "button",
54783
54864
  class: M(["wf-toggle", { "is-open": !g.value.has(e.key) }]),
54784
54865
  "aria-expanded": !g.value.has(e.key),
54785
54866
  "aria-label": `${g.value.has(e.key) ? "展开" : "收起"} ${I(i).display_name(e.item.member)} 派出的执行`,
54786
- onClick: (t) => $e(e.key)
54787
- }, [q(r, { name: "i-lucide-chevron-right" })], 10, w0)) : (U(), W("span", T0)),
54867
+ onClick: (t) => tt(e.key)
54868
+ }, [q(o, { name: "i-lucide-chevron-right" })], 10, T0)) : (U(), W("span", E0)),
54788
54869
  q(s, {
54789
54870
  src: I(i).identities[e.item.member]?.icon,
54790
54871
  text: I(i).identities[e.item.member]?.initials,
@@ -54801,37 +54882,37 @@ var r0 = {
54801
54882
  type: "button",
54802
54883
  class: "wf-names",
54803
54884
  "aria-expanded": y.value === e.key,
54804
- onClick: (t) => Qe(e, t),
54805
- onMouseenter: (t) => ut(t, e, {
54806
- label: I(j1)[e.item.state],
54885
+ onClick: (t) => et(e, t),
54886
+ onMouseenter: (t) => ft(t, e, {
54887
+ label: I(P1)[e.item.state],
54807
54888
  start: e.start,
54808
54889
  end: e.end,
54809
- text: rt(e).text,
54890
+ text: at(e).text,
54810
54891
  live: e.item.state === "running"
54811
54892
  }),
54812
- onMouseleave: (t) => ft(e)
54813
- }, [K("span", D0, [
54814
- e.item.state === "running" ? (U(), W("i", O0)) : Y("", !0),
54893
+ onMouseleave: (t) => mt(e)
54894
+ }, [K("span", O0, [
54895
+ e.item.state === "running" ? (U(), W("i", k0)) : Y("", !0),
54815
54896
  K("strong", null, P(I(i).display_name(e.item.member)), 1),
54816
- (U(!0), W(H, null, B(nt(e), (e) => (U(), W("em", {
54897
+ (U(!0), W(H, null, B(it(e), (e) => (U(), W("em", {
54817
54898
  key: e,
54818
54899
  class: "wf-pill is-role"
54819
54900
  }, P(e), 1))), 128)),
54820
- Ue.value.slowest?.row === e.key ? (U(), W("em", k0, "最慢")) : Y("", !0)
54821
- ]), K("span", { class: M(["wf-status", `is-${rt(e).tone}`]) }, [rt(e).tone === "live" ? (U(), W("i", A0)) : Y("", !0), J(P(rt(e).text), 1)], 2)], 40, E0)
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)
54822
54903
  ], 4),
54823
54904
  K("div", {
54824
54905
  class: "wf-lane",
54825
54906
  role: "img",
54826
- "aria-label": it(e),
54827
- onMouseleave: (t) => ft(e)
54828
- }, [K("div", M0, [
54829
- (U(!0), W(H, null, B(Ze.value, (e) => (U(), W("i", {
54907
+ "aria-label": ot(e),
54908
+ onMouseleave: (t) => mt(e)
54909
+ }, [K("div", N0, [
54910
+ (U(!0), W(H, null, B($e.value, (e) => (U(), W("i", {
54830
54911
  key: e.at,
54831
54912
  class: "wf-gridline",
54832
54913
  style: fe({ left: `${e.x * 100}%` })
54833
54914
  }, null, 4))), 128)),
54834
- (U(!0), W(H, null, B(Oe.value.folds, (e) => (U(), W("i", {
54915
+ (U(!0), W(H, null, B(ke.value.folds, (e) => (U(), W("i", {
54835
54916
  key: e.start,
54836
54917
  class: "wf-fold",
54837
54918
  style: fe({
@@ -54839,216 +54920,220 @@ var r0 = {
54839
54920
  width: `${e.width * 100}%`
54840
54921
  })
54841
54922
  }, null, 4))), 128)),
54842
- t[21] ||= K("i", { class: "wf-well" }, null, -1),
54843
- (U(!0), W(H, null, B(Ve.value.get(e.key) || [], (e, t) => (U(), W("i", {
54923
+ t[20] ||= K("i", { class: "wf-well" }, null, -1),
54924
+ (U(!0), W(H, null, B(Ue.value.get(e.key) || [], (e, t) => (U(), W("i", {
54844
54925
  key: `link-${t}`,
54845
54926
  class: M(["wf-link", `is-${e.part}`]),
54846
- "data-tone": Ye.value.get(e.member),
54927
+ "data-tone": Ze.value.get(e.member),
54847
54928
  style: fe({ left: `${e.x * 100}%` })
54848
- }, null, 14, N0))), 128)),
54849
- ke.value === null ? Y("", !0) : (U(), W("i", {
54929
+ }, null, 14, P0))), 128)),
54930
+ Ae.value === null ? Y("", !0) : (U(), W("i", {
54850
54931
  key: 0,
54851
54932
  class: "wf-cursor",
54852
- style: fe({ left: `${ke.value * 100}%` })
54933
+ style: fe({ left: `${Ae.value * 100}%` })
54853
54934
  }, null, 4)),
54854
54935
  K("i", {
54855
54936
  class: "wf-bar is-queue",
54856
- style: fe(et(...e.queue)),
54857
- onMouseenter: (t) => ut(t, e, {
54937
+ style: fe(nt(...e.queue)),
54938
+ onMouseenter: (t) => ft(t, e, {
54858
54939
  label: "排队",
54859
54940
  start: e.queue[0],
54860
54941
  end: e.queue[1]
54861
54942
  }),
54862
- onClick: (t) => dt(t, e, {
54943
+ onClick: (t) => pt(t, e, {
54863
54944
  label: "排队",
54864
54945
  start: e.queue[0],
54865
54946
  end: e.queue[1]
54866
54947
  })
54867
- }, null, 44, P0),
54948
+ }, null, 44, F0),
54868
54949
  e.wake ? (U(), W("i", {
54869
54950
  key: 1,
54870
54951
  class: "wf-bar is-wake",
54871
- style: fe(et(...e.wake)),
54872
- onMouseenter: (t) => ut(t, e, {
54952
+ style: fe(nt(...e.wake)),
54953
+ onMouseenter: (t) => ft(t, e, {
54873
54954
  label: e.wake_approx ? "唤醒(约)" : "唤醒",
54874
54955
  start: e.wake[0],
54875
54956
  end: e.wake[1]
54876
54957
  }),
54877
- onClick: (t) => dt(t, e, {
54958
+ onClick: (t) => pt(t, e, {
54878
54959
  label: e.wake_approx ? "唤醒(约)" : "唤醒",
54879
54960
  start: e.wake[0],
54880
54961
  end: e.wake[1]
54881
54962
  })
54882
- }, null, 44, F0)) : Y("", !0),
54963
+ }, null, 44, I0)) : Y("", !0),
54883
54964
  e.work ? (U(), W("i", {
54884
54965
  key: 2,
54885
54966
  class: M(["wf-bar is-work", { "has-detail": e.segments.length }]),
54886
- "data-tone": e.segments.length ? void 0 : Ye.value.get(e.item.member),
54887
- style: fe(et(...e.work)),
54888
- onMouseenter: (t) => ut(t, e, {
54967
+ "data-tone": e.segments.length ? void 0 : Ze.value.get(e.item.member),
54968
+ style: fe(nt(...e.work)),
54969
+ onMouseenter: (t) => ft(t, e, {
54889
54970
  label: e.segments.length ? "执行" : "执行 · 无阶段明细",
54890
54971
  start: e.work[0],
54891
54972
  end: e.work[1],
54892
54973
  live: e.item.state === "running"
54893
54974
  }),
54894
- onClick: (t) => dt(t, e, {
54975
+ onClick: (t) => pt(t, e, {
54895
54976
  label: e.segments.length ? "执行" : "执行 · 无阶段明细",
54896
54977
  start: e.work[0],
54897
54978
  end: e.work[1],
54898
54979
  live: e.item.state === "running"
54899
54980
  })
54900
- }, null, 46, I0)) : Y("", !0),
54981
+ }, null, 46, L0)) : Y("", !0),
54901
54982
  (U(!0), W(H, null, B(e.segments, (t) => (U(), W(H, { key: t.start + t.phase }, [K("i", {
54902
- class: M(["wf-bar wf-seg", [`is-${I(A1)[t.phase]}`, { "is-live": t.live }]]),
54903
- "data-tone": Ye.value.get(e.item.member),
54904
- style: fe(et(t.start, t.seen, !0)),
54905
- onMouseenter: (n) => ut(n, e, {
54983
+ class: M(["wf-bar wf-seg", [`is-${I(N1)[t.phase]}`, { "is-live": t.live }]]),
54984
+ "data-tone": Ze.value.get(e.item.member),
54985
+ style: fe(nt(t.start, t.seen, !0)),
54986
+ onMouseenter: (n) => ft(n, e, {
54906
54987
  kind: "segment",
54907
54988
  ...t
54908
54989
  }),
54909
- onClick: (n) => dt(n, e, {
54990
+ onClick: (n) => pt(n, e, {
54910
54991
  kind: "segment",
54911
54992
  ...t
54912
54993
  })
54913
- }, null, 46, L0), t.end > t.seen ? (U(), W("i", {
54994
+ }, null, 46, R0), t.end > t.seen ? (U(), W("i", {
54914
54995
  key: 0,
54915
- class: M(["wf-bar wf-seg is-tail", `is-${I(A1)[t.phase]}`]),
54916
- "data-tone": Ye.value.get(e.item.member),
54917
- style: fe(et(t.seen, t.end)),
54918
- onMouseenter: (n) => ut(n, e, {
54996
+ class: M(["wf-bar wf-seg is-tail", `is-${I(N1)[t.phase]}`]),
54997
+ "data-tone": Ze.value.get(e.item.member),
54998
+ style: fe(nt(t.seen, t.end)),
54999
+ onMouseenter: (n) => ft(n, e, {
54919
55000
  kind: "segment",
54920
55001
  ...t
54921
55002
  }),
54922
- onClick: (n) => dt(n, e, {
55003
+ onClick: (n) => pt(n, e, {
54923
55004
  kind: "segment",
54924
55005
  ...t
54925
55006
  })
54926
- }, null, 46, R0)) : Y("", !0)], 64))), 128)),
55007
+ }, null, 46, z0)) : Y("", !0)], 64))), 128)),
54927
55008
  (U(!0), W(H, null, B(e.notes, (t) => (U(), W("button", {
54928
55009
  key: `note-${t.index}`,
54929
55010
  type: "button",
54930
55011
  class: "wf-note",
54931
- style: fe({ left: `${Oe.value.x(t.at) * 100}%` }),
54932
- "aria-label": `${I(i).display_name(e.item.member)} 的第 ${t.index + 1} 段过程说明,${ot(t.at)}`,
54933
- onMouseenter: (n) => ut(n, e, {
55012
+ style: fe({ left: `${ke.value.x(t.at) * 100}%` }),
55013
+ "aria-label": `${I(i).display_name(e.item.member)} 的第 ${t.index + 1} 段过程说明,${ct(t.at)}`,
55014
+ onMouseenter: (n) => ft(n, e, {
54934
55015
  note: t,
54935
55016
  start: t.at,
54936
55017
  end: t.at
54937
55018
  }),
54938
- onClick: (n) => dt(n, e, {
55019
+ onClick: (n) => pt(n, e, {
54939
55020
  note: t,
54940
55021
  start: t.at,
54941
55022
  end: t.at
54942
55023
  }),
54943
- onFocus: (n) => ut(n, e, {
55024
+ onFocus: (n) => ft(n, e, {
54944
55025
  note: t,
54945
55026
  start: t.at,
54946
55027
  end: t.at
54947
55028
  }),
54948
- onBlur: (t) => ft(e)
54949
- }, null, 44, z0))), 128))
54950
- ])], 40, j0),
54951
- K("span", B0, [
54952
- J(P(I(P1)(e.end - e.start)) + P(e.wake_approx && e.wake ? "~" : ""), 1),
55029
+ onBlur: (t) => mt(e)
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),
54953
55034
  e.item.state === "done" ? Y("", !0) : (U(), W("small", {
54954
55035
  key: 0,
54955
55036
  class: M(`is-${e.item.state}`)
54956
- }, P(I(j1)[e.item.state]), 3)),
54957
- e.truncated ? (U(), W("small", V0, "明细已截断")) : Y("", !0)
55037
+ }, P(I(P1)[e.item.state]), 3)),
55038
+ e.truncated ? (U(), W("small", H0, "明细已截断")) : Y("", !0)
54958
55039
  ])
54959
55040
  ], 2))), 128))
54960
55041
  ], 38),
54961
- Ge.value && b.value ? (U(), W("div", {
55042
+ qe.value && b.value ? (U(), W("div", {
54962
55043
  key: 0,
54963
55044
  class: "wf-detail",
54964
55045
  role: "dialog",
54965
- "aria-label": `${I(i).display_name(Ge.value.item.member)} 的这次执行`,
55046
+ "aria-label": `${I(i).display_name(qe.value.item.member)} 的这次执行`,
54966
55047
  style: fe({
54967
55048
  top: `${b.value.top}px`,
54968
55049
  left: `${b.value.left}px`
54969
55050
  })
54970
55051
  }, [
54971
- K("header", U0, [
54972
- K("strong", null, P(I(i).display_name(Ge.value.item.member)), 1),
54973
- K("small", null, P(tt(Ge.value)) + " · " + P(I(j1)[Ge.value.item.state]) + " · " + P(I(P1)(Ge.value.end - Ge.value.start)), 1),
55052
+ K("header", W0, [
55053
+ K("strong", null, P(I(i).display_name(qe.value.item.member)), 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),
54974
55055
  K("button", {
54975
55056
  type: "button",
54976
55057
  class: "wf-card-close",
54977
55058
  "aria-label": "关闭",
54978
55059
  onClick: t[5] ||= (e) => y.value = ""
54979
- }, [q(r, { name: "i-lucide-x" })])
55060
+ }, [q(o, { name: "i-lucide-x" })])
54980
55061
  ]),
54981
55062
  K("dl", null, [
54982
- Ge.value.item.task ? (U(), W("div", W0, [t[23] ||= K("dt", null, "任务", -1), K("dd", null, [J(P(Ge.value.item.task), 1), Ge.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", {
54983
55064
  key: 0,
54984
55065
  type: "button",
54985
55066
  class: "subtle-link",
54986
- onClick: t[6] ||= (e) => n("detail", Ge.value.item.task_id)
54987
- }, "#" + P(Ge.value.item.task_id), 1)) : Y("", !0)])])) : Y("", !0),
54988
- Ge.value.item.state === "failed" ? (U(), W("div", G0, [t[24] ||= K("dt", null, "失败原因", -1), K("dd", K0, P(Ge.value.item.reason || "执行失败"), 1)])) : Ge.value.item.result || Ge.value.item.answer_id ? (U(), W("div", q0, [t[25] ||= K("dt", null, "结果", -1), K("dd", null, [J(P(Ge.value.item.result), 1), Ge.value.item.answer_id ? (U(), W("button", {
55067
+ onClick: t[6] ||= (e) => n("detail", qe.value.item.task_id)
55068
+ }, "#" + P(qe.value.item.task_id), 1)) : Y("", !0)])])) : Y("", !0),
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", {
54989
55070
  key: 0,
54990
55071
  type: "button",
54991
55072
  class: "subtle-link",
54992
- onClick: t[7] ||= (e) => n("detail", Ge.value.item.answer_id)
54993
- }, "在消息中查看 #" + P(Ge.value.item.answer_id), 1)) : Y("", !0)])])) : Y("", !0),
54994
- Ge.value.item.changes ? (U(), W("div", J0, [t[26] ||= K("dt", null, "改动", -1), K("dd", null, P(Ge.value.item.changes) + " 个文件", 1)])) : Y("", !0)
55073
+ onClick: t[7] ||= (e) => n("detail", qe.value.item.answer_id)
55074
+ }, "在消息中查看 #" + P(qe.value.item.answer_id), 1)) : Y("", !0)])])) : 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)
54995
55076
  ]),
54996
- Ke.value.length ? (U(), W("ol", Y0, [(U(!0), W(H, null, B(Ke.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", {
54997
55078
  key: `${e.kind}-${e.at}-${e.phase || ""}`,
54998
55079
  class: M(`log-${e.kind}`)
54999
- }, [K("time", null, P(ot(e.at)), 1), e.kind === "phase" ? (U(), W(H, { key: 0 }, [K("i", {
55000
- class: M(["wf-swatch", `is-${I(A1)[e.phase]}`]),
55001
- "data-tone": Ye.value.get(Ge.value.item.member),
55080
+ }, [K("time", null, P(ct(e.at)), 1), e.kind === "phase" ? (U(), W(H, { key: 0 }, [K("i", {
55081
+ class: M(["wf-swatch", `is-${I(N1)[e.phase]}`]),
55082
+ "data-tone": Ze.value.get(qe.value.item.member),
55002
55083
  "aria-hidden": "true"
55003
- }, null, 10, X0), K("span", null, [
55004
- J(P(I(k1)[e.phase]), 1),
55084
+ }, null, 10, Z0), K("span", null, [
55085
+ J(P(I(M1)[e.phase]), 1),
55005
55086
  e.tool ? (U(), W(H, { key: 0 }, [J(" · " + P(e.tool), 1)], 64)) : Y("", !0),
55006
- J(" · " + P(e.live ? "进行中" : I(P1)(e.duration)), 1)
55007
- ])], 64)) : (U(), W("span", Z0, P(e.text), 1))], 2))), 128))])) : (U(), W("p", Q0, "这次执行没有阶段明细或过程说明。"))
55008
- ], 12, H0)) : Y("", !0),
55009
- pe.value === O2 ? (U(), W("div", $0, [...t[27] ||= [K("span", { class: "wf-player-note" }, "回放按轮进行:在上方选一轮即可回放", -1)]])) : (U(), W("div", e2, [_e.value ? (U(), W(H, { key: 0 }, [t[28] ||= K("span", { class: "wf-state is-live" }, "实时", -1), t[29] ||= 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 }, [
55010
55091
  K("button", {
55011
55092
  type: "button",
55012
55093
  class: "wf-player-button",
55013
55094
  "aria-label": k.playing ? "暂停回放" : "回放这一轮",
55014
- onClick: t[8] ||= (e) => k.playing ? Fe() : Ne()
55015
- }, [q(r, { name: k.playing ? "i-lucide-pause" : "i-lucide-play" }, null, 8, ["name"])], 8, t2),
55095
+ onClick: t[8] ||= (e) => k.playing ? Le() : Fe()
55096
+ }, [q(o, { name: k.playing ? "i-lucide-pause" : "i-lucide-play" }, null, 8, ["name"])], 8, n2),
55016
55097
  K("button", {
55017
55098
  type: "button",
55018
55099
  class: "wf-player-button",
55019
55100
  "aria-label": "从头回放",
55020
- disabled: !ye.value,
55021
- onClick: Ie
55022
- }, [q(r, { name: "i-lucide-rotate-ccw" })], 8, n2),
55023
- vr(K("select", {
55101
+ disabled: !be.value,
55102
+ onClick: Re
55103
+ }, [q(o, { name: "i-lucide-rotate-ccw" })], 8, r2),
55104
+ q(r, {
55105
+ modelValue: k.speed,
55024
55106
  "onUpdate:modelValue": t[9] ||= (e) => k.speed = e,
55107
+ items: Me.value,
55108
+ variant: "none",
55109
+ "aria-label": "回放速度",
55025
55110
  class: "wf-speed",
55026
- "aria-label": "回放速度"
55027
- }, [K("option", r2, "自动 · " + P(Math.round(Ae.value)) + "×", 1), (U(), W(H, null, B(o, (e) => K("option", {
55028
- key: e,
55029
- value: e
55030
- }, P(e) + "×", 9, i2)), 64))], 512), [[
55031
- $l,
55032
- k.speed,
55033
- void 0,
55034
- { number: !0 }
55035
- ]]),
55111
+ content: {
55112
+ side: "top",
55113
+ align: "start",
55114
+ sideOffset: 4
55115
+ },
55116
+ ui: {
55117
+ content: "channel-select-menu wf-speed-menu",
55118
+ trailingIcon: "wf-select-icon"
55119
+ }
55120
+ }, null, 8, ["modelValue", "items"]),
55036
55121
  K("input", {
55037
55122
  type: "range",
55038
55123
  class: "wf-scrub",
55039
55124
  min: "0",
55040
- max: ve.value.duration,
55125
+ max: ye.value.duration,
55041
55126
  step: "100",
55042
- value: ye.value ? k.position : ve.value.duration,
55127
+ value: be.value ? k.position : ye.value.duration,
55043
55128
  "aria-label": "回放位置",
55044
- onInput: Le
55045
- }, null, 40, a2),
55046
- K("span", o2, P(I(P1)(ye.value ? k.position : ve.value.duration)) + " / " + P(I(P1)(ve.value.duration)), 1)
55129
+ onInput: ze
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)
55047
55132
  ], 64))])),
55048
- we.value.folds.length || te.value.executions.length >= te.value.execution_limit ? (U(), W("footer", s2, [we.value.folds.length ? (U(), W("span", c2, [t[30] ||= 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", {
55049
55134
  class: "wf-swatch is-fold",
55050
55135
  "aria-hidden": "true"
55051
- }, null, -1), J("已折叠 " + P(we.value.folds.length) + " 段超过 " + P(I(M1) / 6e4) + " 分钟的空闲", 1)])) : Y("", !0), te.value.executions.length >= te.value.execution_limit ? (U(), W("span", l2, "只列出最近 " + 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)
55052
55137
  ], 512)) : Y("", !0),
55053
55138
  v.value ? (U(), W("div", {
55054
55139
  key: 3,
@@ -55059,88 +55144,88 @@ var r0 = {
55059
55144
  top: `${v.value.top}px`
55060
55145
  })
55061
55146
  }, [
55062
- K("strong", null, P(I(i).display_name(v.value.row.item.member)) + " · " + P(pt.value), 1),
55147
+ K("strong", null, P(I(i).display_name(v.value.row.item.member)) + " · " + P(ht.value), 1),
55063
55148
  v.value.pinned ? (U(), W("button", {
55064
55149
  key: 0,
55065
55150
  type: "button",
55066
55151
  class: "wf-card-close",
55067
55152
  "aria-label": "关闭",
55068
55153
  onClick: t[10] ||= (e) => v.value = null
55069
- }, [q(r, { name: "i-lucide-x" })])) : Y("", !0),
55070
- K("small", null, [J(P(ot(v.value.piece.start)), 1), v.value.piece.end > v.value.piece.start ? (U(), W(H, { key: 0 }, [J(" – " + P(v.value.piece.live ? "现在" : ot(v.value.piece.end)), 1)], 64)) : Y("", !0)]),
55071
- v.value.piece.text ? (U(), W("p", d2, P(v.value.piece.text), 1)) : v.value.row.item.reason ? (U(), W("p", f2, P(v.value.row.item.reason), 1)) : Y("", !0),
55072
- mt.value.length ? (U(), W(H, { key: 3 }, [K("small", p2, P(v.value.related.earlier ? "此前的过程说明" : "过程说明"), 1), K("ol", null, [(U(!0), W(H, null, B(mt.value, (e) => (U(), W("li", { key: e.at + e.text }, [K("time", null, P(ot(e.at)), 1), J(P(e.text), 1)]))), 128))])], 64)) : Y("", !0)
55073
- ], 14, u2)) : Y("", !0)
55154
+ }, [q(o, { name: "i-lucide-x" })])) : Y("", !0),
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)]),
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)
55074
55159
  ]);
55075
55160
  };
55076
55161
  }
55077
- }, [["__scopeId", "data-v-1ec09eeb"]]), N2 = {
55162
+ }, [["__scopeId", "data-v-ae571187"]]), M2 = {
55078
55163
  id: "channel-sidebar",
55079
55164
  class: "channel-sidebar",
55080
55165
  "aria-label": "房间导航"
55081
- }, P2 = { class: "channel-sidebar-content" }, F2 = { class: "channel-directory-heading channel-tools-heading" }, I2 = ["aria-expanded"], L2 = { class: "channel-sidebar-footer" }, R2 = ["aria-label"], z2 = { class: "channel-self" }, B2 = ["title"], V2 = [
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 = [
55082
55167
  "aria-valuemax",
55083
55168
  "aria-valuenow",
55084
55169
  "aria-valuetext"
55085
- ], H2 = { class: "channel-main" }, U2 = { class: "channel-header" }, W2 = { class: "channel-title-icon" }, G2 = { class: "channel-title" }, K2 = { class: "channel-title-copy" }, q2 = ["title"], J2 = {
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 = {
55086
55171
  key: 0,
55087
55172
  class: "channel-header-context"
55088
- }, Y2 = { class: "channel-header-actions" }, X2 = {
55173
+ }, J2 = { class: "channel-header-actions" }, Y2 = {
55089
55174
  key: 0,
55090
55175
  class: "channel-launch-recovery",
55091
55176
  "aria-label": "未完成的创建或启动请求"
55092
- }, Z2 = { role: "status" }, Q2 = { class: "button-row" }, $2 = {
55177
+ }, X2 = { role: "status" }, Z2 = { class: "button-row" }, Q2 = {
55093
55178
  key: 1,
55094
55179
  class: "channel-tabbar"
55095
- }, e4 = { class: "channel-brief-inner" }, t4 = { class: "channel-brief-heading" }, n4 = ["aria-label", "aria-expanded"], r4 = {
55180
+ }, $2 = { class: "channel-brief-inner" }, e4 = { class: "channel-brief-heading" }, t4 = ["aria-label", "aria-expanded"], n4 = {
55096
55181
  key: 0,
55097
55182
  class: "channel-brief-preview"
55098
- }, i4 = {
55183
+ }, r4 = {
55099
55184
  id: "channel-brief-content",
55100
55185
  class: "channel-brief-content"
55101
- }, a4 = ["innerHTML"], o4 = { class: "channel-brief-footer" }, s4 = { class: "channel-brief-status" }, c4 = { class: "channel-content" }, l4 = {
55186
+ }, i4 = ["innerHTML"], a4 = { class: "channel-brief-footer" }, o4 = { class: "channel-brief-status" }, s4 = { class: "channel-content" }, c4 = {
55102
55187
  key: 0,
55103
55188
  class: "content-page merged-page",
55104
55189
  role: "tabpanel",
55105
55190
  "aria-label": "讨论"
55106
- }, u4 = {
55191
+ }, l4 = {
55107
55192
  key: 1,
55108
55193
  class: "merged-section",
55109
55194
  "aria-label": "当前讨论"
55110
- }, d4 = { class: "page-heading" }, f4 = {
55195
+ }, u4 = { class: "page-heading" }, d4 = {
55111
55196
  key: 0,
55112
55197
  class: "fine-print"
55113
- }, p4 = {
55198
+ }, f4 = {
55114
55199
  class: "merged-section channel-summary",
55115
55200
  "aria-label": "当前共识"
55116
- }, m4 = { class: "page-heading" }, h4 = { class: "form-footer" }, g4 = { class: "button-row" }, _4 = { class: "consensus-card is-brief" }, v4 = ["innerHTML"], y4 = {
55201
+ }, p4 = { class: "page-heading" }, m4 = { class: "form-footer" }, h4 = { class: "button-row" }, g4 = { class: "consensus-card is-brief" }, _4 = ["innerHTML"], v4 = {
55117
55202
  key: 0,
55118
55203
  class: "consensus-card"
55119
- }, b4 = ["innerHTML"], x4 = {
55204
+ }, y4 = ["innerHTML"], b4 = {
55120
55205
  key: 2,
55121
55206
  class: "fine-print"
55122
- }, S4 = {
55207
+ }, x4 = {
55123
55208
  key: 1,
55124
55209
  class: "content-page merged-page",
55125
55210
  role: "tabpanel",
55126
55211
  "aria-label": "房间"
55127
- }, C4 = {
55212
+ }, S4 = {
55128
55213
  key: 2,
55129
55214
  class: "content-page merged-page",
55130
55215
  role: "tabpanel",
55131
55216
  "aria-label": "执行"
55132
- }, w4 = {
55217
+ }, C4 = {
55133
55218
  key: 1,
55134
55219
  class: "channel-empty"
55135
- }, T4 = ["aria-valuenow", "aria-valuetext"], E4 = {
55220
+ }, w4 = ["aria-valuenow", "aria-valuetext"], T4 = {
55136
55221
  key: 2,
55137
55222
  id: "channel-member-rail",
55138
55223
  class: "channel-member-rail",
55139
55224
  "aria-label": "当前焦点与讨论进度"
55140
- }, D4 = { class: "channel-rail-board" }, O4 = {
55225
+ }, E4 = { class: "channel-rail-board" }, D4 = {
55141
55226
  key: 2,
55142
55227
  class: "progress-board is-docked"
55143
- }, k4 = { class: "channel-detail-title" }, A4 = { class: "info-section" }, j4 = "ai-codiscuss-channel-layout", M4 = 220, N4 = 440, P4 = 280, F4 = 16, I4 = 180, L4 = 400, R4 = 248, z4 = 16, B4 = 480, V4 = 1200, H4 = 0, U4 = {
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 = {
55144
55229
  __name: "ChannelWorkspace",
55145
55230
  setup(e) {
55146
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 = [{
@@ -55162,25 +55247,25 @@ var r0 = {
55162
55247
  label: "宽",
55163
55248
  width: 1240
55164
55249
  }
55165
- }, 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 >= V4), 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(() => {
55166
55251
  let e = document.createElement("template");
55167
55252
  return e.innerHTML = o.value?.rendered_brief || "", e.content.textContent.replace(/\s+/g, " ").trim();
55168
- }), ne = /* @__PURE__ */ F(null), re = /* @__PURE__ */ F(0), ie = null, j = /* @__PURE__ */ F(null), ae = /* @__PURE__ */ F(null), oe = Z(() => Math.min(L4, Math.max(I4, T.value - B4 - H4))), 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(() => ({
55169
55254
  "--channel-reading-width": `${y[x.value].width}px`,
55170
55255
  "--channel-rail-width": `${C.value}px`,
55171
55256
  "--channel-topbar-height": `${re.value}px`,
55172
- "--channel-main-columns": E.value ? "minmax(0, 1fr)" : `${se.value}px ${H4}px minmax(0, 1fr)`
55257
+ "--channel-main-columns": E.value ? "minmax(0, 1fr)" : `${se.value}px ${V4}px minmax(0, 1fr)`
55173
55258
  })), le = Object.entries(y).map(([e, t]) => ({
55174
55259
  value: e,
55175
55260
  label: t.label
55176
55261
  }));
55177
- R(x, Ne), R(S, (e) => {
55178
- document.documentElement.dataset.effects = e, Ne();
55179
- }, { 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(() => {
55180
55265
  ie = new ResizeObserver(([e]) => {
55181
55266
  D.value && (re.value = Math.round(e.target.offsetHeight));
55182
55267
  }), ie.observe(ne.value);
55183
- }), ta(() => ie?.disconnect()), ta(() => document.removeEventListener("pointerdown", Le));
55268
+ }), ta(() => ie?.disconnect()), ta(() => document.removeEventListener("pointerdown", Re));
55184
55269
  let ue = Z({
55185
55270
  get: () => t.value.tab,
55186
55271
  set: (e) => i("tab", e)
@@ -55261,14 +55346,17 @@ var r0 = {
55261
55346
  function Ae(e) {
55262
55347
  l.value = e, d.value = !1, s.value = "delete-folder";
55263
55348
  }
55264
- function je() {
55349
+ function je(e) {
55350
+ l.value = e, d.value = !1, s.value = "archive-folder";
55351
+ }
55352
+ function Me() {
55265
55353
  try {
55266
- let e = JSON.parse(localStorage.getItem(j4)) || {};
55354
+ let e = JSON.parse(localStorage.getItem(A4)) || {};
55267
55355
  return {
55268
55356
  reading: Object.hasOwn(y, e.reading) ? e.reading : "default",
55269
55357
  effects: e.effects === "reduced" ? "reduced" : "full",
55270
- rail: Number.isFinite(e.rail) ? Math.min(N4, Math.max(M4, e.rail)) : P4,
55271
- nav: Number.isFinite(e.nav) ? Math.min(L4, Math.max(I4, 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(),
55272
55360
  collapsed: e.collapsed === !0,
55273
55361
  brief_collapsed: e.brief_collapsed === !0,
55274
55362
  rail_collapsed: e.rail_collapsed === !0
@@ -55277,20 +55365,20 @@ var r0 = {
55277
55365
  return {
55278
55366
  reading: "default",
55279
55367
  effects: "full",
55280
- rail: P4,
55281
- nav: Me(),
55368
+ rail: N4,
55369
+ nav: Ne(),
55282
55370
  collapsed: !1,
55283
55371
  brief_collapsed: !1,
55284
55372
  rail_collapsed: !1
55285
55373
  };
55286
55374
  }
55287
55375
  }
55288
- function Me() {
55289
- return typeof window > "u" ? R4 : window.innerWidth >= 1900 ? 280 : window.innerWidth <= 980 ? 220 : R4;
55290
- }
55291
55376
  function Ne() {
55377
+ return typeof window > "u" ? L4 : window.innerWidth >= 1900 ? 280 : window.innerWidth <= 980 ? 220 : L4;
55378
+ }
55379
+ function Pe() {
55292
55380
  try {
55293
- localStorage.setItem(j4, JSON.stringify({
55381
+ localStorage.setItem(A4, JSON.stringify({
55294
55382
  reading: x.value,
55295
55383
  effects: S.value,
55296
55384
  rail: C.value,
@@ -55301,64 +55389,64 @@ var r0 = {
55301
55389
  }));
55302
55390
  } catch {}
55303
55391
  }
55304
- function Pe() {
55392
+ function Fe() {
55305
55393
  k.value && t.value.tab === "discussion" ? O.value = !O.value : p.value = !0;
55306
55394
  }
55307
- function Fe() {
55395
+ function Ie() {
55308
55396
  T.value = window.innerWidth;
55309
55397
  }
55310
- function Ie() {
55398
+ function Le() {
55311
55399
  D.value = !D.value;
55312
55400
  }
55313
- function Le(e) {
55401
+ function Re(e) {
55314
55402
  !D.value && !e.target.closest?.(".channel-host-brief") && (D.value = !0);
55315
55403
  }
55316
- function Re(e) {
55404
+ function ze(e) {
55317
55405
  e.button === 0 && (e.preventDefault(), e.currentTarget.focus(), j.value = {
55318
55406
  pointer: e.pointerId,
55319
55407
  x: e.clientX,
55320
55408
  width: C.value
55321
55409
  }, e.currentTarget.setPointerCapture(e.pointerId));
55322
55410
  }
55323
- function ze(e) {
55324
- j.value?.pointer === e.pointerId && (C.value = Math.round(Math.min(N4, Math.max(M4, j.value.width + j.value.x - e.clientX))));
55325
- }
55326
55411
  function Be(e) {
55327
- 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))));
55328
55413
  }
55329
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) {
55330
55418
  let t = {
55331
- ArrowLeft: C.value + F4,
55332
- ArrowRight: C.value - F4,
55333
- Home: M4,
55334
- End: N4
55419
+ ArrowLeft: C.value + P4,
55420
+ ArrowRight: C.value - P4,
55421
+ Home: j4,
55422
+ End: M4
55335
55423
  };
55336
- Object.hasOwn(t, e.key) && (e.preventDefault(), C.value = Math.min(N4, Math.max(M4, t[e.key])), Ne());
55424
+ Object.hasOwn(t, e.key) && (e.preventDefault(), C.value = Math.min(M4, Math.max(j4, t[e.key])), Pe());
55337
55425
  }
55338
- function He(e) {
55426
+ function Ue(e) {
55339
55427
  e.button === 0 && (e.preventDefault(), e.currentTarget.focus(), ae.value = {
55340
55428
  pointer: e.pointerId,
55341
55429
  x: e.clientX,
55342
55430
  width: se.value
55343
55431
  }, e.currentTarget.setPointerCapture(e.pointerId));
55344
55432
  }
55345
- function Ue(e) {
55346
- ae.value?.pointer === e.pointerId && (w.value = Math.round(Math.min(oe.value, Math.max(I4, ae.value.width + e.clientX - ae.value.x))));
55347
- }
55348
55433
  function We(e) {
55349
- 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))));
55350
55435
  }
55351
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) {
55352
55440
  let t = {
55353
- ArrowLeft: se.value - z4,
55354
- ArrowRight: se.value + z4,
55355
- Home: I4,
55441
+ ArrowLeft: se.value - R4,
55442
+ ArrowRight: se.value + R4,
55443
+ Home: F4,
55356
55444
  End: oe.value
55357
55445
  };
55358
- Object.hasOwn(t, e.key) && (e.preventDefault(), w.value = Math.min(oe.value, Math.max(I4, 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());
55359
55447
  }
55360
55448
  return (e, r) => {
55361
- 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;
55362
55450
  return U(), W("div", {
55363
55451
  class: M(["channel-shell", {
55364
55452
  "channel-resizing": j.value || ae.value,
@@ -55367,24 +55455,25 @@ var r0 = {
55367
55455
  }]),
55368
55456
  style: fe(ce.value)
55369
55457
  }, [
55370
- K("aside", N2, [
55458
+ K("aside", M2, [
55371
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),
55372
- K("div", P2, [
55373
- q(vZ, {
55460
+ K("div", N2, [
55461
+ q(xZ, {
55374
55462
  onSelect: Te,
55375
55463
  onManage: Ce,
55376
55464
  onCreate: De,
55377
55465
  onCreateFolder: Oe,
55378
55466
  onManageFolder: ke,
55379
55467
  onDeleteFolder: Ae,
55468
+ onArchiveFolder: je,
55380
55469
  onArchives: we
55381
55470
  }),
55382
- K("div", F2, [K("button", {
55471
+ K("div", P2, [K("button", {
55383
55472
  type: "button",
55384
55473
  class: "channel-section-toggle",
55385
55474
  "aria-expanded": f.value,
55386
55475
  onClick: r[0] ||= (e) => f.value = !f.value
55387
- }, [q(y, { name: f.value ? "i-lucide-chevron-down" : "i-lucide-chevron-right" }, null, 8, ["name"]), r[29] ||= J("频道工具", -1)], 8, I2)]),
55476
+ }, [q(y, { name: f.value ? "i-lucide-chevron-down" : "i-lucide-chevron-right" }, null, 8, ["name"]), r[29] ||= J("频道工具", -1)], 8, F2)]),
55388
55477
  f.value ? (U(), G(b, {
55389
55478
  key: 0,
55390
55479
  items: be.value,
@@ -55400,7 +55489,7 @@ var r0 = {
55400
55489
  }
55401
55490
  }, null, 8, ["items"])) : Y("", !0)
55402
55491
  ]),
55403
- K("footer", L2, [K("button", {
55492
+ K("footer", I2, [K("button", {
55404
55493
  type: "button",
55405
55494
  class: "channel-self-button",
55406
55495
  "aria-label": `账号与设置:${I(n).display_name(I(_))}${xe.value ? "," + xe.value : ""}`,
@@ -55416,10 +55505,10 @@ var r0 = {
55416
55505
  "text",
55417
55506
  "alt",
55418
55507
  "class"
55419
- ]), K("span", z2, [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", {
55420
55509
  class: M({ connected: I(t).connected }),
55421
55510
  title: I(t).connected ? "网站已连接" : "网站未连接"
55422
- }, null, 10, B2), J(P(xe.value || (I(t).connected ? "网站已连接" : "网站未连接")), 1)], 2)])], 8, R2), q(O, { text: "设置" }, {
55511
+ }, null, 10, z2), J(P(xe.value || (I(t).connected ? "网站已连接" : "网站未连接")), 1)], 2)])], 8, L2), q(O, { text: "设置" }, {
55423
55512
  default: L(() => [q(T, {
55424
55513
  icon: "i-lucide-settings-2",
55425
55514
  color: "neutral",
@@ -55440,24 +55529,24 @@ var r0 = {
55440
55529
  "aria-label": "调整房间栏宽度",
55441
55530
  "aria-orientation": "vertical",
55442
55531
  "aria-controls": "channel-sidebar",
55443
- "aria-valuemin": I4,
55532
+ "aria-valuemin": F4,
55444
55533
  "aria-valuemax": oe.value,
55445
55534
  "aria-valuenow": se.value,
55446
55535
  "aria-valuetext": `${se.value} 像素`,
55447
55536
  title: "拖动调整房间栏宽度,也可使用方向键",
55448
- onPointerdown: He,
55449
- onPointermove: Ue,
55450
- onPointerup: We,
55451
- onPointercancel: We,
55452
- onLostpointercapture: We,
55453
- onKeydown: Ge
55454
- }, null, 40, V2)),
55455
- K("main", H2, [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", {
55456
55545
  ref_key: "topbar",
55457
55546
  ref: ne,
55458
55547
  class: M(["channel-topbar", { "is-overlay": o.value && I(t).tab === "discussion" }])
55459
55548
  }, [
55460
- K("header", U2, [
55549
+ K("header", H2, [
55461
55550
  q(O, { text: E.value ? "展开房间栏" : "收起房间栏" }, {
55462
55551
  default: L(() => [q(T, {
55463
55552
  icon: "i-lucide-panel-left",
@@ -55482,8 +55571,8 @@ var r0 = {
55482
55571
  "aria-expanded": d.value,
55483
55572
  onClick: r[4] ||= (e) => d.value = !0
55484
55573
  }, null, 8, ["aria-expanded"]),
55485
- K("span", W2, [q(y, { name: "i-lucide-hash" })]),
55486
- K("div", G2, [K("div", K2, [K("h1", { title: o.value?.title }, P(o.value?.title || "共议"), 9, q2)]), 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, {
55487
55576
  key: 0,
55488
55577
  color: "neutral",
55489
55578
  variant: "subtle",
@@ -55492,12 +55581,12 @@ var r0 = {
55492
55581
  default: L(() => [...r[31] ||= [J("已存档", -1)]]),
55493
55582
  _: 1
55494
55583
  })) : Y("", !0)]),
55495
- o.value ? (U(), W("span", J2, [
55584
+ o.value ? (U(), W("span", q2, [
55496
55585
  J(P(de.find((e) => e.value === I(t).tab)?.label), 1),
55497
55586
  r[32] ||= K("span", null, "·", -1),
55498
55587
  J(P(o.value.message_count) + " 条记录", 1)
55499
55588
  ])) : Y("", !0),
55500
- K("div", Y2, [
55589
+ K("div", J2, [
55501
55590
  I(t).tab === "discussion" ? (U(), W("form", {
55502
55591
  key: 0,
55503
55592
  class: "channel-search",
@@ -55555,7 +55644,7 @@ var r0 = {
55555
55644
  ])]),
55556
55645
  _: 1
55557
55646
  })) : Y("", !0),
55558
- 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)
55559
55648
  ]),
55560
55649
  q(O, { text: ee.value }, {
55561
55650
  default: L(() => [q(T, {
@@ -55567,7 +55656,7 @@ var r0 = {
55567
55656
  "aria-label": ee.value,
55568
55657
  disabled: !o.value && !(k.value && I(t).tab === "discussion"),
55569
55658
  "aria-expanded": k.value && I(t).tab === "discussion" ? A.value : p.value,
55570
- onClick: Pe
55659
+ onClick: Fe
55571
55660
  }, null, 8, [
55572
55661
  "aria-label",
55573
55662
  "disabled",
@@ -55576,12 +55665,12 @@ var r0 = {
55576
55665
  _: 1
55577
55666
  }, 8, ["text"])
55578
55667
  ]),
55579
- I(t).launch.recoveries.length ? (U(), W("section", X2, [
55668
+ I(t).launch.recoveries.length ? (U(), W("section", Y2, [
55580
55669
  r[33] ||= K("h2", null, "继续未完成的请求", -1),
55581
55670
  (U(!0), W(H, null, B(I(t).launch.recoveries, (e) => (U(), W("article", { key: e.id }, [
55582
55671
  K("strong", null, P(e.title), 1),
55583
- K("p", Z2, P(e.error || "启动结果尚未确认;原请求已保存在此浏览器中。"), 1),
55584
- K("div", Q2, [
55672
+ K("p", X2, P(e.error || "启动结果尚未确认;原请求已保存在此浏览器中。"), 1),
55673
+ K("div", Z2, [
55585
55674
  q(T, {
55586
55675
  label: e.direct ? "继续创建房间" : "继续本次启动",
55587
55676
  size: "sm",
@@ -55614,7 +55703,7 @@ var r0 = {
55614
55703
  ]))), 128)),
55615
55704
  r[34] ||= K("small", null, "移除待办不会删除房间或停止讨论。", -1)
55616
55705
  ])) : Y("", !0),
55617
- o.value ? (U(), W("div", $2, [q(pe, {
55706
+ o.value ? (U(), W("div", Q2, [q(pe, {
55618
55707
  modelValue: ue.value,
55619
55708
  "onUpdate:modelValue": r[9] ||= (e) => ue.value = e,
55620
55709
  items: de,
@@ -55629,18 +55718,18 @@ var r0 = {
55629
55718
  key: 2,
55630
55719
  class: M(["channel-host-brief", { "is-collapsed": D.value }]),
55631
55720
  "aria-label": "主持简报"
55632
- }, [K("div", e4, [K("div", t4, [K("button", {
55721
+ }, [K("div", $2, [K("div", e4, [K("button", {
55633
55722
  type: "button",
55634
55723
  class: "channel-brief-toggle",
55635
55724
  "aria-label": D.value ? "展开主持简报" : "收起主持简报",
55636
55725
  "aria-expanded": !D.value,
55637
55726
  "aria-controls": "channel-brief-content",
55638
- onClick: Ie
55727
+ onClick: Le
55639
55728
  }, [
55640
55729
  q(y, { name: D.value ? "i-lucide-chevron-right" : "i-lucide-chevron-down" }, null, 8, ["name"]),
55641
55730
  K("strong", null, "主持简报" + P(D.value ? ":" : ""), 1),
55642
- D.value ? (U(), W("span", r4, P(te.value), 1)) : Y("", !0)
55643
- ], 8, n4), 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, {
55644
55733
  key: 0,
55645
55734
  label: "更新简报",
55646
55735
  color: "neutral",
@@ -55648,20 +55737,20 @@ var r0 = {
55648
55737
  size: "xs",
55649
55738
  class: "channel-brief-update",
55650
55739
  onClick: r[10] ||= (e) => I(i)("tab", "context")
55651
- }))]), vr(K("div", i4, [K("div", {
55740
+ }))]), vr(K("div", r4, [K("div", {
55652
55741
  class: "channel-brief-text markdown-body",
55653
55742
  innerHTML: o.value.rendered_brief
55654
- }, null, 8, a4), K("div", o4, [K("span", s4, 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)
55655
55744
  ], 2), o.value ? (U(), W("div", {
55656
55745
  key: 0,
55657
55746
  class: M(["channel-body", { "channel-body-discussion": I(t).tab === "discussion" }])
55658
- }, [K("div", c4, [
55747
+ }, [K("div", s4, [
55659
55748
  vr(q(lK, {
55660
55749
  onDetail: Ee,
55661
55750
  onEdit: r[11] ||= (e) => s.value = "edit"
55662
55751
  }, null, 512), [[Vc, I(t).tab === "discussion"]]),
55663
- I(t).tab === "history" ? (U(), W("div", l4, [
55664
- me.value ? (U(), W("section", u4, [K("div", d4, [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, {
55665
55754
  icon: "i-lucide-messages-square",
55666
55755
  label: "开启讨论",
55667
55756
  variant: "outline",
@@ -55669,13 +55758,13 @@ var r0 = {
55669
55758
  class: "channel-surface-button",
55670
55759
  disabled: !_e.value,
55671
55760
  onClick: r[13] ||= (e) => he.value = !0
55672
- }, null, 8, ["disabled"])]), !_e.value && !o.value.archived ? (U(), W("p", f4, "开启讨论需要一位由本机唤醒的 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, {
55673
55762
  key: 0,
55674
55763
  section: "host",
55675
55764
  onOpen: r[12] ||= (e) => s.value = e,
55676
55765
  onDetail: Ee
55677
55766
  })),
55678
- K("section", p4, [K("div", m4, [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, {
55679
55768
  key: 0,
55680
55769
  icon: "i-lucide-pencil",
55681
55770
  label: "编辑",
@@ -55688,7 +55777,7 @@ var r0 = {
55688
55777
  class: "summary-form",
55689
55778
  onSubmit: uu(ye, ["prevent"])
55690
55779
  }, [
55691
- q(je, {
55780
+ q(Me, {
55692
55781
  label: "主持简报",
55693
55782
  description: "简述结论、共识、歧义,以及接下来要追问或调整什么、为什么。",
55694
55783
  class: "channel-brief-editor"
@@ -55703,7 +55792,7 @@ var r0 = {
55703
55792
  }, null, 8, ["modelValue"])]),
55704
55793
  _: 1
55705
55794
  }),
55706
- q(je, {
55795
+ q(Me, {
55707
55796
  label: "详细共识与进度",
55708
55797
  description: "已达成的共识、尚未解决的问题与下一步,用 #消息编号 标注依据。",
55709
55798
  class: "channel-state-field"
@@ -55719,7 +55808,7 @@ var r0 = {
55719
55808
  }, null, 8, ["modelValue"])]),
55720
55809
  _: 1
55721
55810
  }),
55722
- K("div", h4, [K("span", null, "依据消息截止 #" + P(I(t).snapshot_id), 1), K("div", g4, [q(T, {
55811
+ K("div", m4, [K("span", null, "依据消息截止 #" + P(I(t).snapshot_id), 1), K("div", h4, [q(T, {
55723
55812
  label: "取消",
55724
55813
  color: "neutral",
55725
55814
  variant: "ghost",
@@ -55732,7 +55821,7 @@ var r0 = {
55732
55821
  class: "channel-primary-button",
55733
55822
  loading: I(a) === "save_context"
55734
55823
  }, null, 8, ["loading"])])])
55735
- ], 32)) : o.value.host_brief?.text || o.value.state_text ? (U(), W(H, { key: 1 }, [K("div", _4, [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", {
55736
55825
  key: 0,
55737
55826
  type: "button",
55738
55827
  class: "subtle-link",
@@ -55740,7 +55829,7 @@ var r0 = {
55740
55829
  }, "整理至 #" + P(o.value.state_until), 1)) : Y("", !0)]), K("div", {
55741
55830
  class: "markdown-body",
55742
55831
  innerHTML: o.value.rendered_brief
55743
- }, null, 8, v4)]), ve.value ? (U(), W("details", y4, [K("summary", null, [
55832
+ }, null, 8, _4)]), ve.value ? (U(), W("details", v4, [K("summary", null, [
55744
55833
  r[38] ||= K("h3", null, "详细共识与进度", -1),
55745
55834
  r[39] ||= K("span", null, "依据、已处理内容、未决问题与下一步", -1),
55746
55835
  q(y, {
@@ -55750,21 +55839,21 @@ var r0 = {
55750
55839
  ]), K("div", {
55751
55840
  class: "markdown-body consensus-state",
55752
55841
  innerHTML: ve.value
55753
- }, null, 8, b4)])) : Y("", !0)], 64)) : (U(), W("p", x4, "还没有共识。主持人会在讨论中整理,也可以点“编辑”自己写。"))]),
55754
- q(Z$, { onDetail: Ee }),
55755
- q(t$, {
55842
+ }, null, 8, y4)])) : Y("", !0)], 64)) : (U(), W("p", b4, "还没有共识。主持人会在讨论中整理,也可以点“编辑”自己写。"))]),
55843
+ q(e1, { onDetail: Ee }),
55844
+ q(i$, {
55756
55845
  open: he.value,
55757
55846
  "onUpdate:open": r[19] ||= (e) => he.value = e
55758
55847
  }, null, 8, ["open"])
55759
55848
  ])) : Y("", !0),
55760
- I(t).tab === "overview" ? (U(), W("div", S4, [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, {
55761
55850
  key: 0,
55762
55851
  section: "access",
55763
55852
  onOpen: r[20] ||= (e) => s.value = e,
55764
55853
  onDetail: Ee
55765
55854
  }))])) : Y("", !0),
55766
- I(t).tab === "timeline" ? (U(), W("div", C4, [q(M2, { onDetail: Ee })])) : Y("", !0)
55767
- ])], 2)) : (U(), W("div", w4, [
55855
+ I(t).tab === "timeline" ? (U(), W("div", S4, [q(j2, { onDetail: Ee })])) : Y("", !0)
55856
+ ])], 2)) : (U(), W("div", C4, [
55768
55857
  q(y, { name: "i-lucide-hash" }),
55769
55858
  r[40] ||= K("h2", null, "新建一个协作房间", -1),
55770
55859
  r[41] ||= K("p", null, "邀请 AI 一起协作,随时 @ 提问;需要时开启讨论,保留所有人的观点。", -1),
@@ -55783,23 +55872,23 @@ var r0 = {
55783
55872
  "aria-label": "调整右侧栏宽度",
55784
55873
  "aria-orientation": "vertical",
55785
55874
  "aria-controls": "channel-member-rail",
55786
- "aria-valuemin": M4,
55787
- "aria-valuemax": N4,
55875
+ "aria-valuemin": j4,
55876
+ "aria-valuemax": M4,
55788
55877
  "aria-valuenow": C.value,
55789
55878
  "aria-valuetext": `${C.value} 像素`,
55790
55879
  title: "拖动调整右侧栏宽度,也可使用左右方向键",
55791
- onPointerdown: Re,
55792
- onPointermove: ze,
55793
- onPointerup: Be,
55794
- onPointercancel: Be,
55795
- onLostpointercapture: Be,
55796
- onKeydown: Ve
55797
- }, null, 40, T4)) : Y("", !0),
55798
- A.value ? (U(), W("aside", E4, [K("section", D4, [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, {
55799
55888
  key: 1,
55800
55889
  docked: ""
55801
- })) : (U(), W("div", O4, [...r[42] ||= [K("header", { class: "pb-header" }, [K("strong", null, "讨论进度")], -1), K("p", { class: "channel-rail-empty" }, "暂无房间,新建讨论后在这里查看进度与参与者。", -1)]]))])])) : Y("", !0),
55802
- 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, {
55803
55892
  open: d.value,
55804
55893
  "onUpdate:open": r[23] ||= (e) => d.value = e,
55805
55894
  side: "left",
@@ -55810,13 +55899,14 @@ var r0 = {
55810
55899
  body: "channel-drawer-body"
55811
55900
  }
55812
55901
  }, {
55813
- body: L(() => [q(vZ, {
55902
+ body: L(() => [q(xZ, {
55814
55903
  onSelect: Te,
55815
55904
  onManage: Ce,
55816
55905
  onCreate: De,
55817
55906
  onCreateFolder: Oe,
55818
55907
  onManageFolder: ke,
55819
55908
  onDeleteFolder: Ae,
55909
+ onArchiveFolder: je,
55820
55910
  onArchives: we
55821
55911
  }), q(T, {
55822
55912
  block: "",
@@ -55830,7 +55920,7 @@ var r0 = {
55830
55920
  })]),
55831
55921
  _: 1
55832
55922
  }, 8, ["open"]),
55833
- q(Me, {
55923
+ q(Ne, {
55834
55924
  open: p.value,
55835
55925
  "onUpdate:open": r[25] ||= (e) => p.value = e,
55836
55926
  title: "房间资料",
@@ -55841,7 +55931,7 @@ var r0 = {
55841
55931
  }
55842
55932
  }, {
55843
55933
  body: L(() => [o.value ? (U(), W(H, { key: 0 }, [
55844
- K("div", k4, [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)]),
55845
55935
  (U(), W(H, null, B([
55846
55936
  {
55847
55937
  key: "goal",
@@ -55867,8 +55957,8 @@ var r0 = {
55867
55957
  key: e.key,
55868
55958
  class: "info-section"
55869
55959
  }, [K("h3", null, P(e.label), 1), K("p", null, P(o.value[e.key] || "尚未填写"), 1)])), 64)),
55870
- q(Ne),
55871
- K("section", A4, [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", {
55872
55962
  key: e.name,
55873
55963
  class: "expert-row"
55874
55964
  }, [
@@ -55901,7 +55991,7 @@ var r0 = {
55901
55991
  ], 64)) : Y("", !0)]),
55902
55992
  _: 1
55903
55993
  }, 8, ["open"]),
55904
- q(JX, {
55994
+ q(ZX, {
55905
55995
  modelValue: s.value,
55906
55996
  "onUpdate:modelValue": r[26] ||= (e) => s.value = e,
55907
55997
  "reading-width": x.value,
@@ -55925,7 +56015,7 @@ var r0 = {
55925
56015
  ], 6);
55926
56016
  };
55927
56017
  }
55928
- }, W4 = {
56018
+ }, U4 = {
55929
56019
  __name: "App",
55930
56020
  setup(e) {
55931
56021
  return br("discussion", OV()), (e, t) => {
@@ -55936,7 +56026,7 @@ var r0 = {
55936
56026
  toaster: null
55937
56027
  }, {
55938
56028
  default: L(() => [q(I(Qz), { "reduced-motion": "user" }, {
55939
- default: L(() => [q(U4)]),
56029
+ default: L(() => [q(H4)]),
55940
56030
  _: 1
55941
56031
  })]),
55942
56032
  _: 1
@@ -55946,8 +56036,8 @@ var r0 = {
55946
56036
  };
55947
56037
  //#endregion
55948
56038
  //#region frontend/main.js
55949
- function G4() {
55950
- bu(W4).use(ph).mount("#modern-root");
56039
+ function W4() {
56040
+ bu(U4).use(ph).mount("#modern-root");
55951
56041
  }
55952
- document.readyState === "loading" ? document.addEventListener("DOMContentLoaded", G4) : G4();
56042
+ document.readyState === "loading" ? document.addEventListener("DOMContentLoaded", W4) : W4();
55953
56043
  //#endregion