ai_co_discuss 0.3.4 → 0.3.6

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
@@ -47389,23 +47389,30 @@ var mU = /*#__PURE__*/ YH({
47389
47389
  antigravity_cli: {
47390
47390
  read: "只放行网站命令;碰到未放行的命令会直接结束本轮",
47391
47391
  write: "可写项目,命令全部放行(在 agy 沙箱内)",
47392
- full: "再放开沙箱外命令与 MCP 工具"
47392
+ full: "跳过全部权限确认(--dangerously-skip-permissions),并放开沙箱外命令与 MCP 工具"
47393
47393
  }
47394
47394
  };
47395
47395
  function kq(e) {
47396
47396
  return e === "antigravity_cli" ? Eq.filter((e) => e !== "auto") : Eq;
47397
47397
  }
47398
- function Aq(e) {
47399
- return kq(e).map((t) => ({
47400
- value: t,
47401
- label: Dq[t],
47402
- hint: Oq[e]?.[t] || ""
47403
- }));
47404
- }
47398
+ var Aq = { antigravity_cli: { auto: "agy 只在交互窗口提供自动模式,后台运行(-p)不支持" } };
47405
47399
  function jq(e) {
47406
- return e === "own" ? "自行决定" : Dq[e] || "只读";
47400
+ let t = kq(e);
47401
+ return Eq.map((n) => t.includes(n) ? {
47402
+ value: n,
47403
+ label: Dq[n],
47404
+ hint: Oq[e]?.[n] || ""
47405
+ } : {
47406
+ value: n,
47407
+ label: Dq[n],
47408
+ hint: Aq[e]?.[n] || "该软件不支持此档位",
47409
+ disabled: !0
47410
+ });
47407
47411
  }
47408
47412
  function Mq(e) {
47413
+ return e === "own" ? "自行决定" : Dq[e] || "只读";
47414
+ }
47415
+ function Nq(e) {
47409
47416
  let t = e.project_access;
47410
47417
  return [
47411
47418
  "own",
@@ -47413,18 +47420,18 @@ function Mq(e) {
47413
47420
  "full"
47414
47421
  ].includes(t) || t === "write" && !!(e.cwd || e.workdir);
47415
47422
  }
47416
- function Nq(e, t) {
47423
+ function Pq(e, t) {
47417
47424
  return e.project_access === "own" ? "项目文件与命令权限沿用你自己会话的软件设置。" : e.project_access === "auto" ? `由软件自动审批:可${t}修改项目文件并运行所需命令;被沙箱或审批拦下时按软件方式申请放行(Codex 申请提权),仍被拒绝就在回答中说明。` : e.project_access === "full" ? `已跳过软件审批与沙箱,可${t}修改文件并运行所需命令。` : e.cwd ? e.project_access === "write" ? `用户允许${t}修改 cwd 中的项目文件并运行所需命令。` : "cwd 中的项目文件只读,不修改。" : "未指定项目目录。";
47418
47425
  }
47419
- function Pq(e, t, n = {}) {
47420
- return e === "antigravity_cli" && !Mq(n) ? `无人值守下 run_command 只能运行 ${t} 的 subcommands 子命令,其他命令会被自动拒绝并使会话直接结束;列目录、搜索或读取文件用 list_dir、find_by_name、grep_search、view_file。` : "";
47426
+ function Fq(e, t, n = {}) {
47427
+ return e === "antigravity_cli" && !Nq(n) ? `无人值守下 run_command 只能运行 ${t} 的 subcommands 子命令,其他命令会被自动拒绝并使会话直接结束;列目录、搜索或读取文件用 list_dir、find_by_name、grep_search、view_file。` : "";
47421
47428
  }
47422
- function Fq(e) {
47429
+ function Iq(e) {
47423
47430
  return e === "antigravity_cli" ? "多步任务中,在关键转折处用一句话写出进展再继续:agy 不输出思考过程,网页只能靠这些话显示你做到哪一步。" : "";
47424
47431
  }
47425
- var Iq = "读含中文的文件用 rg --encoding utf-8 . 文件路径,不用 Get-Content(Windows PowerShell 会读成乱码)。";
47426
- function Lq({ name: e, discussion: t, discussion_request: n, profile: r, cli: i, room: a, messages: o, read_after: s, execution_id: c, task_path: l, access_file: u = "", read_rule: d = "" }) {
47427
- let f = t ? `讨论进行中,用户直接向你提问(${o}):只回答这个提问,不改变讨论安排和进度。` : "", p = Mq(r) ? "" : `命令只用 subcommands 列出的 ${i} 子命令。`, m = `${Pq(r.adapter, i, r)}${Fq(r.adapter)}${f}${Nq(r, "按请求")}${p}草稿写在 draft_directory。`;
47432
+ var Lq = "读含中文的文件用 rg --encoding utf-8 . 文件路径,不用 Get-Content(Windows PowerShell 会读成乱码)。";
47433
+ function Rq({ name: e, discussion: t, discussion_request: n, profile: r, cli: i, room: a, messages: o, read_after: s, execution_id: c, task_path: l, access_file: u = "", read_rule: d = "" }) {
47434
+ let f = t ? `讨论进行中,用户直接向你提问(${o}):只回答这个提问,不改变讨论安排和进度。` : "", p = Nq(r) ? "" : `命令只用 subcommands 列出的 ${i} 子命令。`, m = `${Fq(r.adapter, i, r)}${Iq(r.adapter)}${f}${Pq(r, "按请求")}${p}草稿写在 draft_directory。`;
47428
47435
  if (n) return {
47429
47436
  instructions: m,
47430
47437
  prompt: `你(${e})收到了讨论中的${n.purpose === "discuss_host" ? "主持任务" : "发言请求"}。先读任务文件 ${l},按其中列出的技能处理本次请求并保存结果。${d}`
@@ -47437,53 +47444,54 @@ function Lq({ name: e, discussion: t, discussion_request: n, profile: r, cli: i,
47437
47444
  }
47438
47445
  //#endregion
47439
47446
  //#region frontend/ExpertCard.vue
47440
- var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { class: "expert-card-identity" }, Vq = { class: "expert-card-names" }, Hq = { key: 0 }, Uq = ["title"], Wq = {
47447
+ var zq = ["data-identity", "data-face"], Bq = ["inert", "aria-hidden"], Vq = { class: "expert-card-identity" }, Hq = { class: "expert-card-names" }, Uq = { key: 0 }, Wq = ["title"], Gq = {
47441
47448
  key: 0,
47442
47449
  class: "expert-card-badge"
47443
- }, Gq = { key: 1 }, Kq = ["title"], qq = {
47450
+ }, Kq = { key: 1 }, qq = ["title"], Jq = {
47444
47451
  key: 0,
47445
47452
  class: "expert-card-badge"
47446
- }, Jq = ["title"], Yq = { class: "expert-card-facts" }, Xq = ["title"], Zq = {
47453
+ }, Yq = ["title"], Xq = { class: "expert-card-facts" }, Zq = ["title"], Qq = {
47447
47454
  key: 0,
47448
47455
  "aria-hidden": "true"
47449
- }, Qq = {
47456
+ }, $q = {
47450
47457
  key: 0,
47451
47458
  class: "expert-card-manual"
47452
- }, $q = { key: 0 }, eJ = {
47459
+ }, eJ = { key: 0 }, tJ = {
47453
47460
  key: 1,
47454
47461
  class: "expert-card-flip"
47455
- }, tJ = ["aria-label"], nJ = [
47462
+ }, nJ = ["aria-label"], rJ = [
47456
47463
  "aria-checked",
47457
47464
  "tabindex",
47458
47465
  "data-mode",
47459
47466
  "onClick"
47460
- ], rJ = { class: "expert-card-tools" }, iJ = ["aria-label", "title"], aJ = [
47467
+ ], iJ = { class: "expert-card-tools" }, aJ = ["aria-label", "title"], oJ = [
47461
47468
  "aria-pressed",
47462
47469
  "aria-label",
47463
47470
  "title"
47464
- ], oJ = ["aria-label"], sJ = ["inert", "aria-hidden"], cJ = { class: "expert-card-back-body" }, lJ = { class: "expert-card-heading" }, uJ = { class: "expert-card-heading-tools" }, dJ = ["aria-label", "title"], fJ = ["title", "aria-label"], pJ = ["role"], mJ = {
47471
+ ], sJ = ["aria-label"], cJ = ["inert", "aria-hidden"], lJ = { class: "expert-card-back-body" }, uJ = { class: "expert-card-heading" }, dJ = { class: "expert-card-heading-tools" }, fJ = ["aria-label", "title"], pJ = ["title", "aria-label"], mJ = ["role"], hJ = {
47465
47472
  key: 1,
47466
47473
  class: "expert-card-field"
47467
- }, hJ = {
47474
+ }, gJ = {
47468
47475
  key: 2,
47469
47476
  class: "expert-card-field"
47470
- }, gJ = ["aria-label"], _J = [
47477
+ }, _J = ["aria-label"], vJ = [
47471
47478
  "title",
47479
+ "disabled",
47472
47480
  "aria-checked",
47473
47481
  "onClick"
47474
- ], vJ = { class: "expert-card-field" }, yJ = {
47482
+ ], yJ = { class: "expert-card-field" }, bJ = {
47475
47483
  key: 0,
47476
47484
  class: "expert-card-catalog"
47477
- }, bJ = {
47485
+ }, xJ = {
47478
47486
  key: 1,
47479
47487
  class: "expert-card-effort"
47480
- }, xJ = {
47488
+ }, SJ = {
47481
47489
  key: 2,
47482
47490
  class: "expert-card-note"
47483
- }, SJ = ["aria-label", "disabled"], CJ = {
47491
+ }, CJ = ["aria-label", "disabled"], wJ = {
47484
47492
  key: 5,
47485
47493
  class: "expert-card-note"
47486
- }, wJ = { class: "expert-card-flip-actions" }, TJ = ["aria-label"], EJ = ["aria-label"], DJ = ["aria-label"], OJ = ["aria-label"], kJ = { class: "expert-card-naming-actions" }, AJ = 180, jJ = "[role='listbox'], [role='menu'], [data-reka-popper-content-wrapper]", MJ = /*#__PURE__*/ YH({
47494
+ }, TJ = { class: "expert-card-flip-actions" }, EJ = ["aria-label"], DJ = ["aria-label"], OJ = ["aria-label"], kJ = ["aria-label"], AJ = { class: "expert-card-naming-actions" }, jJ = 180, MJ = "[role='listbox'], [role='menu'], [data-reka-popper-content-wrapper]", NJ = /*#__PURE__*/ YH({
47487
47495
  __name: "ExpertCard",
47488
47496
  props: {
47489
47497
  name: {
@@ -47596,7 +47604,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
47596
47604
  }] : [],
47597
47605
  ...oe.value ? [{
47598
47606
  label: "项目",
47599
- value: jq(ce.value)
47607
+ value: Mq(ce.value)
47600
47608
  }] : k.value ? [{
47601
47609
  label: "项目",
47602
47610
  value: "不访问"
@@ -47631,7 +47639,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
47631
47639
  });
47632
47640
  }
47633
47641
  function _e(e) {
47634
- let t = e >= AJ / 2;
47642
+ let t = e >= jJ / 2;
47635
47643
  d.value !== t && (d.value = t, ge());
47636
47644
  }
47637
47645
  let M = o.on("change", _e), N = o.on("animationComplete", ge), ve = null;
@@ -47672,7 +47680,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
47672
47680
  } : null), Ue = Z(() => {
47673
47681
  let e = f.value.adapter;
47674
47682
  if (!e || e === "api") return null;
47675
- let t = /Windows/.test(navigator.userAgent), r = t && e !== "claude" ? "codiscuss.cmd" : "codiscuss", a = t ? e === "codex_cli" ? Iq : `(本机装有 rg 时附加)${Iq}` : "", { prompt: o, instructions: s } = Lq({
47683
+ let t = /Windows/.test(navigator.userAgent), r = t && e !== "claude" ? "codiscuss.cmd" : "codiscuss", a = t ? e === "codex_cli" ? Lq : `(本机装有 rg 时附加)${Lq}` : "", { prompt: o, instructions: s } = Rq({
47676
47684
  name: n.name,
47677
47685
  role: n.host ? "host" : "member",
47678
47686
  discussion: !1,
@@ -47740,11 +47748,11 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
47740
47748
  u.value && (e.stopPropagation(), e.preventDefault(), be());
47741
47749
  }
47742
47750
  function Xe(e) {
47743
- Re.value || Se.value || Ee.value || s.value?.contains(e.target) || e.target.closest?.(jJ) || ye(!1);
47751
+ Re.value || Se.value || Ee.value || s.value?.contains(e.target) || e.target.closest?.(MJ) || ye(!1);
47744
47752
  }
47745
47753
  return R(u, (e) => {
47746
47754
  e ? document.addEventListener("pointerdown", Xe, !0) : document.removeEventListener("pointerdown", Xe, !0);
47747
- }), R(u, (e) => o.set(e ? AJ : 0)), R(() => [
47755
+ }), R(u, (e) => o.set(e ? jJ : 0)), R(() => [
47748
47756
  O.value,
47749
47757
  i.value.launch.available,
47750
47758
  f.value.adapter
@@ -47790,7 +47798,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
47790
47798
  onClick: n[0] ||= (e) => ye(!0)
47791
47799
  }, {
47792
47800
  default: L(() => [
47793
- K("span", Bq, [q(u, {
47801
+ K("span", Vq, [q(u, {
47794
47802
  src: I(a).identities[e.name]?.icon,
47795
47803
  text: I(a).identities[e.name]?.initials,
47796
47804
  alt: e.name,
@@ -47801,16 +47809,16 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
47801
47809
  "text",
47802
47810
  "alt",
47803
47811
  "class"
47804
- ]), K("span", Vq, [S.value ? (U(), W("span", Hq, [K("strong", { title: e.name }, P(I(a).display_name(e.name)) + "(手动)", 9, Uq), e.host && !e.hostable ? (U(), W("span", Wq, "主持")) : Y("", !0)])) : (U(), W("span", Gq, [K("strong", { title: I(a).member_label(e.name) === e.name ? void 0 : e.name }, P(I(a).member_label(e.name)), 9, Kq), e.host && !e.hostable ? (U(), W("span", qq, "主持")) : Y("", !0)])), xe.value ? (U(), W("small", {
47812
+ ]), K("span", Hq, [S.value ? (U(), W("span", Uq, [K("strong", { title: e.name }, P(I(a).display_name(e.name)) + "(手动)", 9, Wq), e.host && !e.hostable ? (U(), W("span", Gq, "主持")) : Y("", !0)])) : (U(), W("span", Kq, [K("strong", { title: I(a).member_label(e.name) === e.name ? void 0 : e.name }, P(I(a).member_label(e.name)), 9, qq), e.host && !e.hostable ? (U(), W("span", Jq, "主持")) : Y("", !0)])), xe.value ? (U(), W("small", {
47805
47813
  key: 2,
47806
47814
  title: xe.value
47807
- }, P(xe.value), 9, Jq)) : Y("", !0)])]),
47808
- K("dl", Yq, [(U(!0), W(H, null, B(de.value, (e) => (U(), W("div", { key: e.label }, [K("dt", null, P(e.label), 1), K("dd", {
47815
+ }, P(xe.value), 9, Yq)) : Y("", !0)])]),
47816
+ K("dl", Xq, [(U(!0), W(H, null, B(de.value, (e) => (U(), W("div", { key: e.label }, [K("dt", null, P(e.label), 1), K("dd", {
47809
47817
  class: j(e.tone ? ["expert-card-status", `is-${e.tone}`] : ""),
47810
47818
  title: e.value
47811
- }, [e.tone ? (U(), W("i", Zq)) : Y("", !0), J(P(e.value), 1)], 10, Xq)]))), 128))]),
47812
- S.value ? (U(), W("div", Qq, [n[17] ||= K("p", null, "会话自行注册后才算到场。", -1), w.value ? (U(), W("p", $q, P(w.value), 1)) : Y("", !0)])) : Y("", !0),
47813
- E.value ? (U(), W("span", eJ, [q(b, { name: "i-lucide-settings-2" }), n[18] ||= J("设置", -1)])) : Y("", !0)
47819
+ }, [e.tone ? (U(), W("i", Qq)) : Y("", !0), J(P(e.value), 1)], 10, Zq)]))), 128))]),
47820
+ S.value ? (U(), W("div", $q, [n[17] ||= K("p", null, "会话自行注册后才算到场。", -1), w.value ? (U(), W("p", eJ, P(w.value), 1)) : Y("", !0)])) : Y("", !0),
47821
+ E.value ? (U(), W("span", tJ, [q(b, { name: "i-lucide-settings-2" }), n[18] ||= J("设置", -1)])) : Y("", !0)
47814
47822
  ]),
47815
47823
  _: 1
47816
47824
  }, 8, [
@@ -47833,8 +47841,8 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
47833
47841
  tabindex: e.mode === t ? 0 : -1,
47834
47842
  "data-mode": t,
47835
47843
  onClick: (e) => qe(t)
47836
- }, P(g[t]), 9, nJ))), 128))], 40, tJ)) : Y("", !0),
47837
- K("span", rJ, [
47844
+ }, P(g[t]), 9, rJ))), 128))], 40, nJ)) : Y("", !0),
47845
+ K("span", iJ, [
47838
47846
  !E.value && !S.value ? (U(), W("button", {
47839
47847
  key: 0,
47840
47848
  type: "button",
@@ -47842,7 +47850,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
47842
47850
  "aria-label": `编辑 ${e.name} 的描述`,
47843
47851
  title: Ce.value,
47844
47852
  onClick: n[1] ||= (e) => Se.value = !0
47845
- }, [q(b, { name: "i-lucide-user-pen" })], 10, iJ)) : Y("", !0),
47853
+ }, [q(b, { name: "i-lucide-user-pen" })], 10, aJ)) : Y("", !0),
47846
47854
  e.hostable ? (U(), W("button", {
47847
47855
  key: 1,
47848
47856
  type: "button",
@@ -47851,28 +47859,28 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
47851
47859
  "aria-label": e.host ? `${e.name} 是主持人` : `设 ${e.name} 为主持人`,
47852
47860
  title: e.host ? "主持人" : "设为主持人",
47853
47861
  onClick: n[2] ||= (e) => r("host")
47854
- }, [q(b, { name: "i-lucide-crown" })], 8, aJ)) : Y("", !0),
47862
+ }, [q(b, { name: "i-lucide-crown" })], 8, oJ)) : Y("", !0),
47855
47863
  K("button", {
47856
47864
  type: "button",
47857
47865
  "aria-label": `移出 ${e.name}`,
47858
47866
  title: "移出",
47859
47867
  onClick: n[3] ||= (e) => r("remove")
47860
- }, [q(b, { name: "i-lucide-x" })], 8, oJ)
47868
+ }, [q(b, { name: "i-lucide-x" })], 8, sJ)
47861
47869
  ])
47862
- ], 8, zq), E.value ? (U(), W("div", {
47870
+ ], 8, Bq), E.value ? (U(), W("div", {
47863
47871
  key: 0,
47864
47872
  class: "expert-card-face expert-card-back",
47865
47873
  inert: !d.value,
47866
47874
  "aria-hidden": !d.value
47867
- }, [K("div", cJ, [
47868
- K("div", lJ, [K("strong", null, [J(P(I(a).member_label(e.name)), 1), n[19] ||= K("span", null, "设置", -1)]), K("span", uJ, [
47875
+ }, [K("div", lJ, [
47876
+ K("div", uJ, [K("strong", null, [J(P(I(a).member_label(e.name)), 1), n[19] ||= K("span", null, "设置", -1)]), K("span", dJ, [
47869
47877
  K("button", {
47870
47878
  type: "button",
47871
47879
  class: j(["expert-card-back-tool", { "is-set": xe.value }]),
47872
47880
  "aria-label": `编辑 ${e.name} 的描述`,
47873
47881
  title: Ce.value,
47874
47882
  onClick: n[4] ||= (e) => Se.value = !0
47875
- }, [q(b, { name: "i-lucide-user-pen" })], 10, dJ),
47883
+ }, [q(b, { name: "i-lucide-user-pen" })], 10, fJ),
47876
47884
  f.value.adapter ? (U(), W("button", {
47877
47885
  key: 0,
47878
47886
  type: "button",
@@ -47883,7 +47891,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
47883
47891
  title: Le.value,
47884
47892
  "aria-label": `编辑 ${e.name} 的专属提示词`,
47885
47893
  onClick: We
47886
- }, [q(b, { name: "i-lucide-scroll-text" })], 10, fJ)) : Y("", !0),
47894
+ }, [q(b, { name: "i-lucide-scroll-text" })], 10, pJ)) : Y("", !0),
47887
47895
  _.value ? (U(), G(x, {
47888
47896
  key: 1,
47889
47897
  icon: "i-lucide-zap",
@@ -47906,8 +47914,8 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
47906
47914
  key: 0,
47907
47915
  role: v.value.state === "error" ? "alert" : "status",
47908
47916
  class: "expert-card-check"
47909
- }, P(v.value.message), 9, pJ)) : Y("", !0),
47910
- h.value && p.value.length > 1 ? (U(), W("div", mJ, [n[20] ||= K("span", null, "接入", -1), q(C, {
47917
+ }, P(v.value.message), 9, mJ)) : Y("", !0),
47918
+ h.value && p.value.length > 1 ? (U(), W("div", hJ, [n[20] ||= K("span", null, "接入", -1), q(C, {
47911
47919
  "model-value": f.value.adapter || "",
47912
47920
  items: p.value,
47913
47921
  placeholder: "选择 API / App / CLI",
@@ -47936,23 +47944,24 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
47936
47944
  "aria-label",
47937
47945
  "onUpdate:modelValue"
47938
47946
  ])]))), 128)),
47939
- oe.value ? (U(), W("div", hJ, [n[21] ||= K("span", null, "项目", -1), K("div", {
47947
+ oe.value ? (U(), W("div", gJ, [n[21] ||= K("span", null, "项目", -1), K("div", {
47940
47948
  class: "expert-card-modes",
47941
47949
  role: "radiogroup",
47942
47950
  "aria-label": `${e.name} 的项目文件权限`
47943
- }, [(U(!0), W(H, null, B(I(Aq)(f.value.adapter), (t) => (U(), W("button", {
47951
+ }, [(U(!0), W(H, null, B(I(jq)(f.value.adapter), (t) => (U(), W("button", {
47944
47952
  key: t.value,
47945
47953
  type: "button",
47946
47954
  role: "radio",
47947
47955
  title: t.hint,
47956
+ disabled: t.disabled,
47948
47957
  "aria-checked": ce.value === t.value,
47949
47958
  onClick: (n) => I(a).write_launch(e.name, "project_access", t.value)
47950
- }, P(t.label), 9, _J))), 128))], 8, gJ)])) : Y("", !0),
47959
+ }, P(t.label), 9, vJ))), 128))], 8, _J)])) : Y("", !0),
47951
47960
  _.value ? (U(), G(hq, {
47952
47961
  key: 3,
47953
47962
  name: e.name
47954
47963
  }, null, 8, ["name"])) : O.value && !he.value.length ? (U(), W(H, { key: 4 }, [
47955
- K("div", vJ, [n[22] ||= K("span", null, "模型", -1), q(C, {
47964
+ K("div", yJ, [n[22] ||= K("span", null, "模型", -1), q(C, {
47956
47965
  "model-value": f.value.model || "__default__",
47957
47966
  items: D.value.items,
47958
47967
  title: D.value.source,
@@ -47966,12 +47975,12 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
47966
47975
  "title",
47967
47976
  "aria-label"
47968
47977
  ])]),
47969
- D.value.loading || D.value.error ? (U(), W("div", yJ, [K("span", null, P(D.value.loading ? "正在读取软件模型列表…" : D.value.error), 1), !D.value.loading && D.value.error && I(i).launch.available ? (U(), W("button", {
47978
+ D.value.loading || D.value.error ? (U(), W("div", bJ, [K("span", null, P(D.value.loading ? "正在读取软件模型列表…" : D.value.error), 1), !D.value.loading && D.value.error && I(i).launch.available ? (U(), W("button", {
47970
47979
  key: 0,
47971
47980
  type: "button",
47972
47981
  onClick: n[7] ||= (t) => I(a).load_launch_models(e.name, !0)
47973
47982
  }, "重试")) : Y("", !0)])) : Y("", !0),
47974
- re.value ? (U(), W("div", bJ, [q(iq, {
47983
+ re.value ? (U(), W("div", xJ, [q(iq, {
47975
47984
  caption: "强度",
47976
47985
  items: re.value,
47977
47986
  "model-value": f.value.effort || "",
@@ -47981,7 +47990,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
47981
47990
  "items",
47982
47991
  "model-value",
47983
47992
  "label"
47984
- ])])) : (U(), W("p", xJ, P(D.value.effort_note), 1)),
47993
+ ])])) : (U(), W("p", SJ, P(D.value.effort_note), 1)),
47985
47994
  K("button", {
47986
47995
  type: "button",
47987
47996
  class: "expert-card-defaults",
@@ -47989,9 +47998,9 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
47989
47998
  "aria-label": `恢复 ${e.name} 的默认模型与强度`,
47990
47999
  disabled: !f.value.model && !f.value.effort,
47991
48000
  onClick: Ke
47992
- }, "恢复默认", 8, SJ)
47993
- ], 64)) : (U(), W("p", CJ, [q(b, { name: e.mode === "online" ? "i-lucide-globe" : "i-lucide-monitor" }, null, 8, ["name"]), J(P(te.value), 1)]))
47994
- ]), K("span", wJ, [
48001
+ }, "恢复默认", 8, CJ)
48002
+ ], 64)) : (U(), W("p", wJ, [q(b, { name: e.mode === "online" ? "i-lucide-globe" : "i-lucide-monitor" }, null, 8, ["name"]), J(P(te.value), 1)]))
48003
+ ]), K("span", TJ, [
47995
48004
  I(i).launch.available ? (U(), W(H, { key: 0 }, [Te.value ? (U(), W("button", {
47996
48005
  key: 0,
47997
48006
  type: "button",
@@ -47999,19 +48008,19 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
47999
48008
  "aria-label": `删除预设「${e.name}」`,
48000
48009
  title: "删除预设",
48001
48010
  onClick: n[9] ||= (t) => I(a).delete_expert_preset(e.name)
48002
- }, [q(b, { name: "i-lucide-trash-2" })], 8, TJ)) : Y("", !0), K("button", {
48011
+ }, [q(b, { name: "i-lucide-trash-2" })], 8, EJ)) : Y("", !0), K("button", {
48003
48012
  type: "button",
48004
48013
  class: "expert-card-flip is-cancel",
48005
48014
  "aria-label": `${Te.value ? "更新" : "存为"}预设「${e.name}」`,
48006
48015
  title: "存下描述、提示词、项目权限、模型与强度,之后在“预设”行一键加入",
48007
48016
  onClick: Me
48008
- }, P(Te.value ? "更新预设" : "存为预设"), 9, EJ)], 64)) : Y("", !0),
48017
+ }, P(Te.value ? "更新预设" : "存为预设"), 9, DJ)], 64)) : Y("", !0),
48009
48018
  K("button", {
48010
48019
  type: "button",
48011
48020
  class: "expert-card-flip is-cancel",
48012
48021
  "aria-label": `放弃 ${e.name} 的修改`,
48013
48022
  onClick: be
48014
- }, "取消", 8, DJ),
48023
+ }, "取消", 8, OJ),
48015
48024
  K("button", {
48016
48025
  ref_key: "back_button",
48017
48026
  ref: l,
@@ -48019,8 +48028,8 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48019
48028
  class: "expert-card-flip is-done",
48020
48029
  "aria-label": `保存并返回 ${e.name} 角色卡片`,
48021
48030
  onClick: n[10] ||= (e) => ye(!1)
48022
- }, [q(b, { name: "i-lucide-check" }), n[23] ||= J("完成", -1)], 8, OJ)
48023
- ])], 8, sJ)) : Y("", !0)]),
48031
+ }, [q(b, { name: "i-lucide-check" }), n[23] ||= J("完成", -1)], 8, kJ)
48032
+ ])], 8, cJ)) : Y("", !0)]),
48024
48033
  _: 1
48025
48034
  }, 8, ["style"]),
48026
48035
  q(Sq, {
@@ -48089,7 +48098,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48089
48098
  placeholder: "预设名称,如 评审官"
48090
48099
  }, null, 8, ["modelValue"]),
48091
48100
  K("p", null, P(je.value), 1),
48092
- K("div", kJ, [q(x, {
48101
+ K("div", AJ, [q(x, {
48093
48102
  label: "取消",
48094
48103
  color: "neutral",
48095
48104
  variant: "ghost",
@@ -48103,29 +48112,29 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48103
48112
  ], 32)]),
48104
48113
  _: 1
48105
48114
  }, 8, ["open"])
48106
- ], 42, Rq);
48115
+ ], 42, zq);
48107
48116
  };
48108
48117
  }
48109
- }, [["__scopeId", "data-v-ad411888"]]), NJ = {
48118
+ }, [["__scopeId", "data-v-765a68cd"]]), PJ = {
48110
48119
  key: 0,
48111
48120
  class: "project-field"
48112
- }, PJ = ["disabled"], FJ = {
48121
+ }, FJ = ["disabled"], IJ = {
48113
48122
  key: 0,
48114
48123
  class: "project-note"
48115
- }, IJ = ["title", "disabled"], LJ = ["disabled"], RJ = {
48124
+ }, LJ = ["title", "disabled"], RJ = ["disabled"], zJ = {
48116
48125
  key: 0,
48117
48126
  class: "project-rows",
48118
48127
  "aria-label": "常用项目"
48119
- }, zJ = { class: "project-tile" }, BJ = { class: "project-edit" }, VJ = { class: "project-text" }, HJ = ["title"], UJ = { class: "project-actions" }, WJ = {
48128
+ }, BJ = { class: "project-tile" }, VJ = { class: "project-edit" }, HJ = { class: "project-text" }, UJ = ["title"], WJ = { class: "project-actions" }, GJ = {
48120
48129
  key: 1,
48121
48130
  class: "project-add",
48122
48131
  role: "group",
48123
48132
  "aria-label": "添加项目"
48124
- }, GJ = { class: "project-add-actions" }, KJ = {
48133
+ }, KJ = { class: "project-add-actions" }, qJ = {
48125
48134
  key: 3,
48126
48135
  role: "alert",
48127
48136
  class: "project-error"
48128
- }, qJ = { class: "project-footer" }, JJ = /*#__PURE__*/ YH({
48137
+ }, JJ = { class: "project-footer" }, YJ = /*#__PURE__*/ YH({
48129
48138
  __name: "ProjectDirectoryField",
48130
48139
  props: {
48131
48140
  placeholder: {
@@ -48218,7 +48227,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48218
48227
  }
48219
48228
  return (e, n) => {
48220
48229
  let r = sA, i = CH, u = YV, f = MA, re = zV, ie = JH;
48221
- return U(), W(H, null, [a.value ? (U(), W("div", NJ, [q(i, {
48230
+ return U(), W(H, null, [a.value ? (U(), W("div", PJ, [q(i, {
48222
48231
  items: h.value,
48223
48232
  content: {
48224
48233
  align: "start",
@@ -48241,9 +48250,9 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48241
48250
  name: "i-lucide-chevron-down",
48242
48251
  class: "project-select-chevron"
48243
48252
  })
48244
- ], 10, PJ)]),
48253
+ ], 10, FJ)]),
48245
48254
  _: 1
48246
- }, 8, ["items", "disabled"]), a.value.online ? Y("", !0) : (U(), W("p", FJ, [q(r, { name: "i-lucide-moon" }), J("电脑「" + P(a.value.name) + "」当前离线,创建请求会等它上线后执行。", 1)]))])) : (U(), W("div", {
48255
+ }, 8, ["items", "disabled"]), a.value.online ? Y("", !0) : (U(), W("p", IJ, [q(r, { name: "i-lucide-moon" }), J("电脑「" + P(a.value.name) + "」当前离线,创建请求会等它上线后执行。", 1)]))])) : (U(), W("div", {
48247
48256
  key: 1,
48248
48257
  class: j(["project-box", {
48249
48258
  "is-disabled": t.disabled,
@@ -48273,7 +48282,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48273
48282
  name: "i-lucide-chevron-down",
48274
48283
  class: "project-prefix-chevron"
48275
48284
  })
48276
- ], 10, IJ)]),
48285
+ ], 10, LJ)]),
48277
48286
  _: 1
48278
48287
  }, 8, ["items", "disabled"])) : (U(), W("button", {
48279
48288
  key: 1,
@@ -48283,7 +48292,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48283
48292
  title: "保存常用项目,之后一键选择;其他设备也能用",
48284
48293
  disabled: t.disabled,
48285
48294
  onClick: w
48286
- }, [q(r, { name: "i-lucide-plus" }), n[8] ||= K("span", null, "常用项目", -1)], 8, LJ)),
48295
+ }, [q(r, { name: "i-lucide-plus" }), n[8] ||= K("span", null, "常用项目", -1)], 8, RJ)),
48287
48296
  q(u, {
48288
48297
  "model-value": c.value,
48289
48298
  placeholder: t.placeholder,
@@ -48328,10 +48337,10 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48328
48337
  class: "project-manager dialog-form",
48329
48338
  onSubmit: uu(ne, ["prevent"])
48330
48339
  }, [
48331
- _.value.length ? (U(), W("ul", RJ, [(U(!0), W(H, null, B(_.value, (e, t) => (U(), W("li", {
48340
+ _.value.length ? (U(), W("ul", zJ, [(U(!0), W(H, null, B(_.value, (e, t) => (U(), W("li", {
48332
48341
  key: t,
48333
48342
  class: j(["project-row", { "is-editing": v.value === t }])
48334
- }, [K("span", zJ, [q(r, { name: "i-lucide-folder" })]), v.value === t ? (U(), W(H, { key: 0 }, [K("div", BJ, [q(u, {
48343
+ }, [K("span", BJ, [q(r, { name: "i-lucide-folder" })]), v.value === t ? (U(), W(H, { key: 0 }, [K("div", VJ, [q(u, {
48335
48344
  modelValue: e.name,
48336
48345
  "onUpdate:modelValue": (t) => e.name = t,
48337
48346
  placeholder: "项目名称",
@@ -48366,7 +48375,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48366
48375
  "aria-label": "完成编辑",
48367
48376
  disabled: !D(e),
48368
48377
  onClick: n[0] ||= (e) => v.value = -1
48369
- }, null, 8, ["disabled"])], 64)) : (U(), W(H, { key: 1 }, [K("div", VJ, [K("strong", null, P(e.name), 1), K("small", { title: e.path }, P(e.path), 9, HJ)]), K("div", UJ, [q(f, {
48378
+ }, null, 8, ["disabled"])], 64)) : (U(), W(H, { key: 1 }, [K("div", HJ, [K("strong", null, P(e.name), 1), K("small", { title: e.path }, P(e.path), 9, UJ)]), K("div", WJ, [q(f, {
48370
48379
  icon: "i-lucide-pencil",
48371
48380
  color: "neutral",
48372
48381
  variant: "ghost",
@@ -48383,7 +48392,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48383
48392
  "aria-label": `移除 ${e.name}`,
48384
48393
  onClick: (e) => te(t)
48385
48394
  }, null, 8, ["aria-label", "onClick"])])], 64))], 2))), 128))])) : Y("", !0),
48386
- y.value ? (U(), W("div", WJ, [
48395
+ y.value ? (U(), W("div", GJ, [
48387
48396
  q(re, {
48388
48397
  label: "文件夹",
48389
48398
  description: s.value ? "" : "运行 codiscuss 的电脑上的完整路径"
@@ -48423,7 +48432,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48423
48432
  }, null, 8, ["modelValue", "onKeydown"])]),
48424
48433
  _: 1
48425
48434
  }),
48426
- K("div", GJ, [_.value.length ? (U(), G(f, {
48435
+ K("div", KJ, [_.value.length ? (U(), G(f, {
48427
48436
  key: 0,
48428
48437
  label: "取消",
48429
48438
  color: "neutral",
@@ -48445,8 +48454,8 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48445
48454
  class: "project-add-trigger",
48446
48455
  onClick: T
48447
48456
  }, [q(r, { name: "i-lucide-plus" }), n[9] ||= J("添加项目", -1)])),
48448
- S.value ? (U(), W("p", KJ, [q(r, { name: "i-lucide-circle-alert" }), J(P(S.value), 1)])) : Y("", !0),
48449
- K("div", qJ, [q(f, {
48457
+ S.value ? (U(), W("p", qJ, [q(r, { name: "i-lucide-circle-alert" }), J(P(S.value), 1)])) : Y("", !0),
48458
+ K("div", JJ, [q(f, {
48450
48459
  label: "取消",
48451
48460
  color: "neutral",
48452
48461
  variant: "ghost",
@@ -48462,13 +48471,13 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48462
48471
  }, 8, ["open"])], 64);
48463
48472
  };
48464
48473
  }
48465
- }, [["__scopeId", "data-v-91d0fef5"]]), YJ = ["aria-label"], XJ = [
48474
+ }, [["__scopeId", "data-v-91d0fef5"]]), XJ = ["aria-label"], ZJ = [
48466
48475
  "disabled",
48467
48476
  "title",
48468
48477
  "aria-label",
48469
48478
  "aria-pressed",
48470
48479
  "onClick"
48471
- ], ZJ = /*#__PURE__*/ YH({
48480
+ ], QJ = /*#__PURE__*/ YH({
48472
48481
  __name: "RosterAdd",
48473
48482
  props: {
48474
48483
  label: {
@@ -48520,20 +48529,20 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48520
48529
  ]),
48521
48530
  J(P(e.name), 1),
48522
48531
  q(o, { name: e.selected ? "i-lucide-check" : "i-lucide-plus" }, null, 8, ["name"])
48523
- ], 10, XJ)], 64))), 128))], 8, YJ);
48532
+ ], 10, ZJ)], 64))), 128))], 8, XJ);
48524
48533
  };
48525
48534
  }
48526
- }, [["__scopeId", "data-v-b682fa87"]]), QJ = { class: "scheduler-settings" }, $J = { class: "scheduler-title" }, eY = { class: "scheduler-description" }, tY = { class: "scheduler-cards" }, nY = {
48535
+ }, [["__scopeId", "data-v-b682fa87"]]), $J = { class: "scheduler-settings" }, eY = { class: "scheduler-title" }, tY = { class: "scheduler-description" }, nY = {
48527
48536
  key: 0,
48528
- class: "scheduler-slot"
48537
+ class: "scheduler-empty"
48529
48538
  }, rY = {
48530
48539
  key: 1,
48531
- class: "scheduler-slot is-filled"
48532
- }, iY = { class: "scheduler-identity" }, aY = { class: "scheduler-facts" }, oY = ["title"], sY = { class: "scheduler-flip" }, cY = { class: "scheduler-tools" }, lY = ["aria-label"], uY = { class: "scheduler-back" }, dY = { class: "scheduler-heading" }, fY = { class: "scheduler-field" }, pY = { class: "scheduler-field" }, mY = {
48540
+ class: "scheduler-cards"
48541
+ }, iY = { class: "scheduler-slot" }, aY = { class: "scheduler-identity" }, oY = { class: "scheduler-facts" }, sY = ["title"], cY = { class: "scheduler-flip" }, lY = { class: "scheduler-tools" }, uY = ["aria-label"], dY = { class: "scheduler-back" }, fY = { class: "scheduler-heading" }, pY = { class: "scheduler-field" }, mY = { class: "scheduler-field" }, hY = {
48533
48542
  key: 0,
48534
48543
  role: "alert",
48535
48544
  class: "scheduler-error"
48536
- }, hY = ["role"], gY = { class: "scheduler-flip-actions" }, _Y = "••••••••••••", vY = /*#__PURE__*/ YH({
48545
+ }, gY = ["role"], _Y = { class: "scheduler-flip-actions" }, vY = "••••••••••••", yY = /*#__PURE__*/ YH({
48537
48546
  __name: "SchedulerSettings",
48538
48547
  props: {
48539
48548
  free: {
@@ -48648,9 +48657,9 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48648
48657
  }
48649
48658
  }
48650
48659
  return (t, a) => {
48651
- let g = WV, ee = sA, D = pA, O = MA, te = oq, ne = YV;
48652
- return U(), W("div", QJ, [
48653
- K("div", null, [K("p", $J, [
48660
+ let g = WV, ee = pA, D = sA, O = MA, te = oq, ne = YV;
48661
+ return U(), W("div", $J, [
48662
+ K("div", null, [K("p", eY, [
48654
48663
  a[5] ||= J("智能调度", -1),
48655
48664
  q(g, {
48656
48665
  size: "xs",
@@ -48661,16 +48670,16 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48661
48670
  _: 1
48662
48671
  }),
48663
48672
  a[6] ||= K("small", null, "可选", -1)
48664
- ]), K("p", eY, P(e.blocker ? `${T.value}(${e.blocker})` : T.value), 1)]),
48665
- q(ZJ, {
48673
+ ]), K("p", tY, P(e.blocker ? `${T.value}(${e.blocker})` : T.value), 1)]),
48674
+ q(QJ, {
48666
48675
  ref_key: "add_row",
48667
48676
  ref: l,
48668
48677
  label: "添加决策模型",
48669
48678
  items: u.value,
48670
48679
  onAdd: y
48671
48680
  }, null, 8, ["items"]),
48672
- K("div", tY, [c.value ? (U(), W("div", rY, [K("div", { class: j(["scheduler-card", { "is-editing": h.value }]) }, [h.value ? (U(), W(H, { key: 1 }, [K("div", uY, [
48673
- K("div", dY, [K("strong", null, [J(P(x.value), 1), a[13] ||= K("span", null, "设置", -1)]), q(O, {
48681
+ c.value ? (U(), W("div", rY, [K("div", iY, [K("div", { class: j(["scheduler-card", { "is-editing": h.value }]) }, [h.value ? (U(), W(H, { key: 1 }, [K("div", dY, [
48682
+ K("div", fY, [K("strong", null, [J(P(x.value), 1), a[11] ||= K("span", null, "设置", -1)]), q(O, {
48674
48683
  icon: "i-lucide-zap",
48675
48684
  "aria-label": "检查智能调度配置",
48676
48685
  title: "检查配置:向决策模型发送一道极短的是非题,核对供应商、模型与密钥",
@@ -48685,7 +48694,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48685
48694
  "loading",
48686
48695
  "disabled"
48687
48696
  ])]),
48688
- K("div", fY, [a[14] ||= K("span", null, "模型", -1), q(te, {
48697
+ K("div", pY, [a[12] ||= K("span", null, "模型", -1), q(te, {
48689
48698
  mode: "autocomplete",
48690
48699
  "ignore-filter": "",
48691
48700
  "model-value": i.value.model || "",
@@ -48697,7 +48706,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48697
48706
  class: "w-full",
48698
48707
  "onUpdate:modelValue": a[0] ||= (e) => I(r).write_scheduler("model", e)
48699
48708
  }, null, 8, ["model-value", "items"])]),
48700
- K("div", pY, [a[15] ||= K("span", null, "密钥", -1), q(ne, {
48709
+ K("div", mY, [a[13] ||= K("span", null, "密钥", -1), q(ne, {
48701
48710
  modelValue: d.value,
48702
48711
  "onUpdate:modelValue": a[2] ||= (e) => d.value = e,
48703
48712
  type: "text",
@@ -48705,7 +48714,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48705
48714
  spellcheck: "false",
48706
48715
  "data-1p-ignore": "",
48707
48716
  "data-lpignore": "true",
48708
- placeholder: i.value.api_key_ref ? _Y : "填写所选供应商的 API Key",
48717
+ placeholder: i.value.api_key_ref ? vY : "填写所选供应商的 API Key",
48709
48718
  title: i.value.api_key_ref && !d.value ? "已保存;本机不回传密钥,输入新 Key 可更换" : void 0,
48710
48719
  "aria-label": "智能调度 API Key",
48711
48720
  size: "xs",
@@ -48740,14 +48749,14 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48740
48749
  "loading",
48741
48750
  "ui"
48742
48751
  ])]),
48743
- m.value ? (U(), W("p", mY, P(m.value), 1)) : Y("", !0),
48752
+ m.value ? (U(), W("p", hY, P(m.value), 1)) : Y("", !0),
48744
48753
  C.value.message ? (U(), W("p", {
48745
48754
  key: 1,
48746
48755
  role: C.value.state === "error" ? "alert" : "status",
48747
48756
  class: j(C.value.state === "error" ? "scheduler-error" : "scheduler-ok")
48748
- }, P(C.value.message), 11, hY)) : Y("", !0),
48749
- a[16] ||= K("p", { class: "scheduler-note" }, "决策模型只做选择、不生成文本,只按输入计费。判断时会把房间标题和最近 10~20 条消息发给所选供应商;密钥只存本机。", -1)
48750
- ]), K("span", gY, [K("button", {
48757
+ }, P(C.value.message), 11, gY)) : Y("", !0),
48758
+ a[14] ||= K("p", { class: "scheduler-note" }, "决策模型只做选择、不生成文本,只按输入计费。判断时会把房间标题和最近 10~20 条消息发给所选供应商;密钥只存本机。", -1)
48759
+ ]), K("span", _Y, [K("button", {
48751
48760
  type: "button",
48752
48761
  class: "scheduler-flip is-cancel",
48753
48762
  "aria-label": "放弃决策模型的修改",
@@ -48757,14 +48766,14 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48757
48766
  class: "scheduler-flip is-done",
48758
48767
  "aria-label": "完成并返回决策模型卡片",
48759
48768
  onClick: a[3] ||= (e) => h.value = !1
48760
- }, [q(ee, { name: "i-lucide-check" }), a[17] ||= J("完成", -1)])])], 64)) : (U(), W(H, { key: 0 }, [K("button", {
48769
+ }, [q(D, { name: "i-lucide-check" }), a[15] ||= J("完成", -1)])])], 64)) : (U(), W(H, { key: 0 }, [K("button", {
48761
48770
  type: "button",
48762
48771
  class: "scheduler-open",
48763
48772
  "aria-label": "设置智能调度的决策模型",
48764
48773
  title: "点击设置",
48765
48774
  onClick: _
48766
48775
  }, [
48767
- K("span", iY, [q(D, {
48776
+ K("span", aY, [q(ee, {
48768
48777
  src: s[i.value.provider]?.icon,
48769
48778
  text: x.value.slice(0, 2),
48770
48779
  alt: x.value,
@@ -48776,44 +48785,40 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48776
48785
  "alt",
48777
48786
  "class"
48778
48787
  ]), K("strong", null, P(x.value), 1)]),
48779
- K("dl", aY, [K("div", null, [a[10] ||= K("dt", null, "状态", -1), K("dd", { class: j(`is-${S.value.tone}`) }, [a[9] ||= K("i", { "aria-hidden": "true" }, null, -1), J(P(S.value.text), 1)], 2)]), K("div", null, [a[11] ||= K("dt", null, "模型", -1), K("dd", { title: i.value.model }, P(i.value.model || "未选择"), 9, oY)])]),
48780
- K("span", sY, [q(ee, { name: "i-lucide-settings-2" }), a[12] ||= J("设置", -1)])
48781
- ]), K("span", cY, [K("button", {
48788
+ K("dl", oY, [K("div", null, [a[8] ||= K("dt", null, "状态", -1), K("dd", { class: j(`is-${S.value.tone}`) }, [a[7] ||= K("i", { "aria-hidden": "true" }, null, -1), J(P(S.value.text), 1)], 2)]), K("div", null, [a[9] ||= K("dt", null, "模型", -1), K("dd", { title: i.value.model }, P(i.value.model || "未选择"), 9, sY)])]),
48789
+ K("span", cY, [q(D, { name: "i-lucide-settings-2" }), a[10] ||= J("设置", -1)])
48790
+ ]), K("span", lY, [K("button", {
48782
48791
  type: "button",
48783
48792
  "aria-label": `移出决策模型 ${x.value}`,
48784
48793
  title: "移出",
48785
48794
  onClick: b
48786
- }, [q(ee, { name: "i-lucide-x" })], 8, lY)])], 64))], 2)])) : (U(), W("div", nY, [
48787
- q(ee, { name: "i-lucide-zap" }),
48788
- a[7] ||= K("strong", null, "决策模型槽位", -1),
48789
- a[8] ||= K("span", null, "只能放一个;从上方添加,再点其他会替换", -1)
48790
- ]))])
48795
+ }, [q(D, { name: "i-lucide-x" })], 8, uY)])], 64))], 2)])])) : (U(), W("p", nY, "未添加决策模型。只能放一个,点其他供应商会替换。"))
48791
48796
  ]);
48792
48797
  };
48793
48798
  }
48794
- }, [["__scopeId", "data-v-87daa49c"]]), yY = { class: "create-discussion" }, bY = {
48799
+ }, [["__scopeId", "data-v-d4d373f5"]]), bY = { class: "create-discussion" }, xY = {
48795
48800
  key: 0,
48796
48801
  class: "create-connect",
48797
48802
  role: "status"
48798
- }, xY = { class: "create-connect-command" }, SY = {
48803
+ }, SY = { class: "create-connect-command" }, CY = {
48799
48804
  key: 1,
48800
48805
  class: "channel-create-location"
48801
- }, CY = { class: "create-section" }, wY = { class: "create-section" }, TY = {
48806
+ }, wY = { class: "create-section" }, TY = { class: "create-section" }, EY = {
48802
48807
  key: 0,
48803
48808
  class: "create-experts",
48804
48809
  role: "group",
48805
48810
  "aria-label": "参与的 AI"
48806
- }, EY = {
48811
+ }, DY = {
48807
48812
  key: 1,
48808
48813
  class: "create-experts-empty"
48809
- }, DY = {
48814
+ }, OY = {
48810
48815
  key: 2,
48811
48816
  class: "fine-print create-hint create-host-hint"
48812
- }, OY = { class: "create-section" }, kY = { class: "create-advanced" }, AY = { class: "create-footer" }, jY = {
48817
+ }, kY = { class: "create-section" }, AY = { class: "create-advanced" }, jY = { class: "create-footer" }, MY = {
48813
48818
  key: 0,
48814
48819
  role: "alert",
48815
48820
  class: "create-error"
48816
- }, MY = { class: "create-footer-row" }, NY = ["title"], PY = "new-expert-modes", FY = 3e3, IY = "preset:", LY = /*#__PURE__*/ YH({
48821
+ }, NY = { class: "create-footer-row" }, PY = ["title"], FY = "new-expert-modes", IY = 3e3, LY = "preset:", RY = /*#__PURE__*/ YH({
48817
48822
  __name: "CreateDiscussion",
48818
48823
  props: { targetFolder: {
48819
48824
  type: Object,
@@ -48821,7 +48826,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48821
48826
  } },
48822
48827
  emits: ["submit", "cancel"],
48823
48828
  setup(e, { emit: t }) {
48824
- let n = t, { view: r, bridge: i, pending: a, act: o } = xr("discussion"), s = Object.keys(i.identities).filter((e) => e !== "用户"), c = (e) => `new-room-${e}`, l = (e) => r.value.fields[c(e)] ?? "", u = (e, t) => i.write_field(c(e), t), d = Z(() => !!r.value.create_discussion), f = Z(() => r.value.experts[PY] || {}), p = /* @__PURE__ */ F([]), m = Z(() => Object.keys(f.value).filter((e) => f.value[e]));
48829
+ let n = t, { view: r, bridge: i, pending: a, act: o } = xr("discussion"), s = Object.keys(i.identities).filter((e) => e !== "用户"), c = (e) => `new-room-${e}`, l = (e) => r.value.fields[c(e)] ?? "", u = (e, t) => i.write_field(c(e), t), d = Z(() => !!r.value.create_discussion), f = Z(() => r.value.experts[FY] || {}), p = /* @__PURE__ */ F([]), m = Z(() => Object.keys(f.value).filter((e) => f.value[e]));
48825
48830
  R(m, (e) => {
48826
48831
  p.value = [...p.value.filter((t) => e.includes(t)), ...e.filter((e) => !p.value.includes(e))];
48827
48832
  }, { immediate: !0 });
@@ -48845,14 +48850,14 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48845
48850
  Qi(() => {
48846
48851
  se(), ae = window.setInterval(() => {
48847
48852
  ie.value && !document.hidden && o("check_launch_connection");
48848
- }, FY);
48853
+ }, IY);
48849
48854
  }), ta(() => window.clearInterval(ae));
48850
48855
  function ce(e) {
48851
48856
  i.write_create_discussion(e), Qn(se);
48852
48857
  }
48853
48858
  let le = (e) => i.launch_clients[e]?.some((e) => e.value !== "api"), ue = (e) => d.value && e === v.value ? [] : ["cli", "manual"];
48854
48859
  function de(e, t) {
48855
- i.write_expert(PY, e, t), se();
48860
+ i.write_expert(FY, e, t), se();
48856
48861
  }
48857
48862
  function fe(e) {
48858
48863
  if (C.value) return E(e) ? {
@@ -48882,7 +48887,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48882
48887
  title: pe(e),
48883
48888
  aria_label: `添加 ${e} 实例`
48884
48889
  })), ...r.value && i.expert_presets().map((e, t) => ({
48885
- value: IY + e.name,
48890
+ value: LY + e.name,
48886
48891
  name: e.label || e.name,
48887
48892
  ...i.identities[i.platform_of(e.name)],
48888
48893
  separated: t === 0,
@@ -48890,11 +48895,11 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48890
48895
  aria_label: `添加预设 ${e.label || e.name}`
48891
48896
  }))]);
48892
48897
  function me(e) {
48893
- if (e.startsWith(IY)) {
48898
+ if (e.startsWith(LY)) {
48894
48899
  let t = i.expert_presets().find((t) => t.name === e.slice(7));
48895
- return t && i.add_preset(PY, t, "cli"), se();
48900
+ return t && i.add_preset(FY, t, "cli"), se();
48896
48901
  }
48897
- i.launch_clients[e] && (i.default_launch_entry(e), g(e) ? i.add_instance(PY, e, "cli") : de(e, "cli"), se());
48902
+ i.launch_clients[e] && (i.default_launch_entry(e), g(e) ? i.add_instance(FY, e, "cli") : de(e, "cli"), se());
48898
48903
  }
48899
48904
  function he(e) {
48900
48905
  de(e, ""), Qn(() => _.value?.focus_first());
@@ -48916,20 +48921,20 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48916
48921
  });
48917
48922
  return (t, s) => {
48918
48923
  let c = sA, p = MA, m = YV, g = zV, x = FK, T = HV;
48919
- return U(), W("div", yY, [K("form", {
48924
+ return U(), W("div", bY, [K("form", {
48920
48925
  id: "create-discussion-form",
48921
48926
  class: "create-scroll dialog-form",
48922
48927
  onSubmit: uu(ge, ["prevent"])
48923
48928
  }, [
48924
- ie.value ? (U(), W("div", bY, [K("p", null, [q(c, { name: "i-lucide-plug-zap" }), s[10] ||= J("本机服务未连接,连接后才能唤醒本机 AI。在运行 AI 的电脑上执行下面的命令并完成网页授权,连上后自动检测。", -1)]), K("div", xY, [K("code", null, P(I(r).launch.connect_command), 1), q(p, {
48929
+ ie.value ? (U(), W("div", xY, [K("p", null, [q(c, { name: "i-lucide-plug-zap" }), s[10] ||= J("本机服务未连接,连接后才能唤醒本机 AI。在运行 AI 的电脑上执行下面的命令并完成网页授权,连上后自动检测。", -1)]), K("div", SY, [K("code", null, P(I(r).launch.connect_command), 1), q(p, {
48925
48930
  icon: "i-lucide-copy",
48926
48931
  "aria-label": "复制本机连接命令",
48927
48932
  variant: "ghost",
48928
48933
  color: "neutral",
48929
48934
  onClick: s[0] ||= (e) => I(o)("copy", I(r).launch.connect_command)
48930
48935
  })])])) : Y("", !0),
48931
- e.targetFolder?.id ? (U(), W("p", SY, [q(c, { name: "i-lucide-folder" }), J(P(e.targetFolder.name), 1)])) : Y("", !0),
48932
- K("section", CY, [
48936
+ e.targetFolder?.id ? (U(), W("p", CY, [q(c, { name: "i-lucide-folder" }), J(P(e.targetFolder.name), 1)])) : Y("", !0),
48937
+ K("section", wY, [
48933
48938
  s[11] ||= K("h3", null, [K("span", null, "1"), J("这次做什么")], -1),
48934
48939
  q(g, {
48935
48940
  label: "话题名称",
@@ -48951,20 +48956,20 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48951
48956
  label: "项目目录(可选)",
48952
48957
  description: I(r).launch.available ? "本机唤醒的成员在此目录读写文件;不填则各用软件默认目录。" : C.value ? `由电脑「${C.value.name}」唤醒的成员在所选项目中读写文件;不选则各用软件默认目录。` : "连接本机服务后可指定:本机唤醒的成员将在此目录读写文件。"
48953
48958
  }, {
48954
- default: L(() => [q(JJ, { disabled: !w.value }, null, 8, ["disabled"])]),
48959
+ default: L(() => [q(YJ, { disabled: !w.value }, null, 8, ["disabled"])]),
48955
48960
  _: 1
48956
48961
  }, 8, ["description"])
48957
48962
  ]),
48958
- K("section", wY, [
48963
+ K("section", TY, [
48959
48964
  s[12] ||= K("h3", null, [K("span", null, "2"), J("谁来参与")], -1),
48960
- q(ZJ, {
48965
+ q(QJ, {
48961
48966
  ref_key: "library",
48962
48967
  ref: _,
48963
48968
  label: "添加 AI",
48964
48969
  items: A.value,
48965
48970
  onAdd: me
48966
48971
  }, null, 8, ["items"]),
48967
- h.value.length ? (U(), W("div", TY, [(U(!0), W(H, null, B(h.value, (e) => (U(), G(MJ, {
48972
+ h.value.length ? (U(), W("div", EY, [(U(!0), W(H, null, B(h.value, (e) => (U(), G(NJ, {
48968
48973
  key: e,
48969
48974
  name: e,
48970
48975
  mode: f.value[e],
@@ -48986,14 +48991,14 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
48986
48991
  "onHost",
48987
48992
  "onRemove",
48988
48993
  "onMode"
48989
- ]))), 128))])) : (U(), W("p", EY, "请至少添加一位成员。同一平台可添加多位,各自独立会话。")),
48990
- h.value.length ? (U(), W("div", DY, [q(c, { name: "i-lucide-crown" }), K("span", null, P(y.value.length ? "点卡片上的皇冠指定主持人:没 @ 任何人的消息由它分配;其他成员只在被你或主持人点名时发言。" : "需要一位本地 AI 做主持人,没 @ 的消息才有人接。"), 1)])) : Y("", !0),
48991
- q(vY, {
48994
+ ]))), 128))])) : (U(), W("p", DY, "请至少添加一位成员。同一平台可添加多位,各自独立会话。")),
48995
+ h.value.length ? (U(), W("div", OY, [q(c, { name: "i-lucide-crown" }), K("span", null, P(y.value.length ? "点卡片上的皇冠指定主持人:没 @ 任何人的消息由它分配;其他成员只在被你或主持人点名时发言。" : "需要一位本地 AI 做主持人,没 @ 的消息才有人接。"), 1)])) : Y("", !0),
48996
+ q(yY, {
48992
48997
  free: !0,
48993
48998
  blocker: ne.value
48994
48999
  }, null, 8, ["blocker"])
48995
49000
  ]),
48996
- K("section", OY, [
49001
+ K("section", kY, [
48997
49002
  s[13] ||= K("h3", null, [K("span", null, "3"), J("讨论(可选)")], -1),
48998
49003
  q(x, {
48999
49004
  "model-value": d.value,
@@ -49039,7 +49044,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49039
49044
  "execution_minutes"
49040
49045
  ])], 64)) : Y("", !0)
49041
49046
  ]),
49042
- K("details", kY, [K("summary", null, [
49047
+ K("details", AY, [K("summary", null, [
49043
49048
  q(c, {
49044
49049
  name: "i-lucide-chevron-right",
49045
49050
  class: "create-advanced-icon"
@@ -49053,7 +49058,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49053
49058
  default: L(() => [...s[15] ||= [J("建房后可在房间页修改。", -1)]]),
49054
49059
  _: 1
49055
49060
  }, 8, ["model-value"])])
49056
- ], 32), K("footer", AY, [ee.value && I(r).launch.error ? (U(), W("p", jY, P(I(r).launch.error), 1)) : Y("", !0), K("div", MY, [
49061
+ ], 32), K("footer", jY, [ee.value && I(r).launch.error ? (U(), W("p", MY, P(I(r).launch.error), 1)) : Y("", !0), K("div", NY, [
49057
49062
  K("span", {
49058
49063
  class: j(["create-summary", { "is-blocked": oe.value }]),
49059
49064
  title: oe.value || _e.value,
@@ -49061,7 +49066,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49061
49066
  }, [oe.value ? (U(), G(c, {
49062
49067
  key: 0,
49063
49068
  name: "i-lucide-circle-alert"
49064
- })) : Y("", !0), J(P(oe.value ? `还差:${oe.value}` : h.value.length || d.value ? _e.value : ""), 1)], 10, NY),
49069
+ })) : Y("", !0), J(P(oe.value ? `还差:${oe.value}` : h.value.length || d.value ? _e.value : ""), 1)], 10, PY),
49065
49070
  q(p, {
49066
49071
  label: "取消",
49067
49072
  color: "neutral",
@@ -49085,46 +49090,46 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49085
49090
  ])])]);
49086
49091
  };
49087
49092
  }
49088
- }, [["__scopeId", "data-v-4da10016"]]), RY = {
49093
+ }, [["__scopeId", "data-v-4da10016"]]), zY = {
49089
49094
  class: "account-settings",
49090
49095
  "aria-labelledby": "account-heading"
49091
- }, zY = {
49096
+ }, BY = {
49092
49097
  key: 0,
49093
49098
  class: "fine-print",
49094
49099
  role: "status"
49095
- }, BY = ["aria-label"], VY = { class: "fine-print account-intro" }, HY = {
49100
+ }, VY = ["aria-label"], HY = { class: "fine-print account-intro" }, UY = {
49096
49101
  key: 0,
49097
49102
  class: "account-message is-error",
49098
49103
  role: "status"
49099
- }, UY = {
49100
- key: 1,
49101
- class: "fine-print"
49102
49104
  }, WY = {
49103
49105
  key: 1,
49104
49106
  class: "fine-print"
49105
49107
  }, GY = {
49108
+ key: 1,
49109
+ class: "fine-print"
49110
+ }, KY = {
49106
49111
  key: 2,
49107
49112
  class: "account-message is-error",
49108
49113
  role: "alert"
49109
- }, KY = {
49114
+ }, qY = {
49110
49115
  key: 3,
49111
49116
  class: "account-message",
49112
49117
  role: "status"
49113
- }, qY = { class: "account-actions" }, JY = {
49118
+ }, JY = { class: "account-actions" }, YY = {
49114
49119
  key: 2,
49115
49120
  class: "account-profile"
49116
- }, YY = { class: "account-identity" }, XY = { class: "account-avatar-actions" }, ZY = { class: "account-name-row" }, QY = {
49121
+ }, XY = { class: "account-identity" }, ZY = { class: "account-avatar-actions" }, QY = { class: "account-name-row" }, $Y = {
49117
49122
  key: 0,
49118
49123
  class: "account-message is-error",
49119
49124
  role: "alert"
49120
- }, $Y = {
49125
+ }, eX = {
49121
49126
  key: 1,
49122
49127
  class: "account-message",
49123
49128
  role: "status"
49124
- }, eX = {
49129
+ }, tX = {
49125
49130
  key: 2,
49126
49131
  class: "account-signout account-actions"
49127
- }, tX = {
49132
+ }, nX = {
49128
49133
  __name: "AccountSettings",
49129
49134
  setup(e) {
49130
49135
  let { view: t, bridge: n } = xr("discussion"), r = Z(() => t.value.admin), i = Z(() => r.value.profile), a = Z(() => r.value.loaded ? r.value.registered ? r.value.logged_in ? "profile" : "login" : "register" : "loading"), o = /* @__PURE__ */ F(""), s = /* @__PURE__ */ Yt({
@@ -49192,13 +49197,13 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49192
49197
  }
49193
49198
  return (e, t) => {
49194
49199
  let p = YV, y = zV, b = MA, x = pA;
49195
- return U(), W("section", RY, [t[9] ||= K("h3", { id: "account-heading" }, "账号", -1), a.value === "loading" ? (U(), W("p", zY, "正在读取账号状态…")) : a.value === "register" || a.value === "login" ? (U(), W("form", {
49200
+ return U(), W("section", zY, [t[9] ||= K("h3", { id: "account-heading" }, "账号", -1), a.value === "loading" ? (U(), W("p", BY, "正在读取账号状态…")) : a.value === "register" || a.value === "login" ? (U(), W("form", {
49196
49201
  key: 1,
49197
49202
  class: "dialog-form account-form",
49198
49203
  "aria-label": a.value === "register" ? "设置管理员账号" : "登录管理员账号",
49199
49204
  onSubmit: uu(m, ["prevent"])
49200
49205
  }, [
49201
- K("p", VY, [a.value === "register" ? (U(), W(H, { key: 0 }, [J("设置站点管理员账号:名称和头像对所有访客可见,登录后可在没有房间凭据的浏览器中存档、恢复、删除房间。")], 64)) : (U(), W(H, { key: 1 }, [J("登录后可管理房间;未登录时仍可阅读并使用本浏览器创建的房间。")], 64))]),
49206
+ K("p", HY, [a.value === "register" ? (U(), W(H, { key: 0 }, [J("设置站点管理员账号:名称和头像对所有访客可见,登录后可在没有房间凭据的浏览器中存档、恢复、删除房间。")], 64)) : (U(), W(H, { key: 1 }, [J("登录后可管理房间;未登录时仍可阅读并使用本浏览器创建的房间。")], 64))]),
49202
49207
  q(y, {
49203
49208
  label: "用户名",
49204
49209
  description: a.value === "register" ? "1–30 个字符,也是公开显示的名称" : void 0,
@@ -49265,24 +49270,24 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49265
49270
  }, null, 8, ["modelValue", "disabled"])]),
49266
49271
  _: 1
49267
49272
  }),
49268
- f.value ? (U(), W("p", HY, [...t[6] ||= [
49273
+ f.value ? (U(), W("p", UY, [...t[6] ||= [
49269
49274
  J("尚无可用的注册令牌。请在部署网站的电脑上运行 ", -1),
49270
49275
  K("code", null, "codiscuss token", -1),
49271
49276
  J(",再刷新本页;本地版也可设置环境变量 DISCUSS_ADMIN_SETUP_KEY 后重启。", -1)
49272
- ]])) : (U(), W("p", UY, [...t[7] ||= [
49277
+ ]])) : (U(), W("p", WY, [...t[7] ||= [
49273
49278
  J("首个注册者需要令牌,防止他人抢注:在部署网站的电脑上运行 ", -1),
49274
49279
  K("code", null, "codiscuss token", -1),
49275
49280
  J(" 获取(一次性);本地版也可用服务端启动日志里的安装令牌。在已连接本机服务的电脑上注册时,账号与密码会保存到 ~/.codiscuss。忘记密码:本地版运行 ", -1),
49276
49281
  K("code", null, "python server.py --reset-admin", -1),
49277
49282
  J(" 后重新注册;Cloudflare 版需清空管理员表(见部署文档)。", -1)
49278
49283
  ]]))
49279
- ], 64)) : (U(), W("p", WY, [...t[8] ||= [
49284
+ ], 64)) : (U(), W("p", GY, [...t[8] ||= [
49280
49285
  J("忘记密码:本地版运行 ", -1),
49281
49286
  K("code", null, "python server.py --reset-admin", -1),
49282
49287
  J(" 后重新注册;Cloudflare 版需清空管理员表(见部署文档)。", -1)
49283
49288
  ]])),
49284
- s.auth.error ? (U(), W("p", GY, P(s.auth.error), 1)) : s.auth.notice ? (U(), W("p", KY, P(s.auth.notice), 1)) : Y("", !0),
49285
- K("div", qY, [q(b, {
49289
+ s.auth.error ? (U(), W("p", KY, P(s.auth.error), 1)) : s.auth.notice ? (U(), W("p", qY, P(s.auth.notice), 1)) : Y("", !0),
49290
+ K("div", JY, [q(b, {
49286
49291
  type: "submit",
49287
49292
  class: "channel-primary-button",
49288
49293
  label: a.value === "register" ? "创建并登录" : "登录",
@@ -49293,13 +49298,13 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49293
49298
  "loading",
49294
49299
  "disabled"
49295
49300
  ])])
49296
- ], 40, BY)) : (U(), W("div", JY, [
49297
- K("div", YY, [q(x, {
49301
+ ], 40, VY)) : (U(), W("div", YY, [
49302
+ K("div", XY, [q(x, {
49298
49303
  src: I(n).identities.用户.icon,
49299
49304
  alt: `${I(n).display_name("用户")} 的头像`,
49300
49305
  size: "lg",
49301
49306
  class: "channel-avatar user account-avatar"
49302
- }, null, 8, ["src", "alt"]), K("div", XY, [
49307
+ }, null, 8, ["src", "alt"]), K("div", ZY, [
49303
49308
  K("input", {
49304
49309
  ref_key: "avatar_input",
49305
49310
  ref: u,
@@ -49337,7 +49342,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49337
49342
  label: "显示名称",
49338
49343
  description: "即用户名,对所有访客可见"
49339
49344
  }, {
49340
- default: L(() => [K("div", ZY, [q(p, {
49345
+ default: L(() => [K("div", QY, [q(p, {
49341
49346
  modelValue: l.value,
49342
49347
  "onUpdate:modelValue": t[5] ||= (e) => l.value = e,
49343
49348
  autocomplete: "username",
@@ -49355,8 +49360,8 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49355
49360
  }, null, 8, ["loading", "disabled"])])]),
49356
49361
  _: 1
49357
49362
  })], 32),
49358
- s.profile.error ? (U(), W("p", QY, P(s.profile.error), 1)) : s.profile.notice ? (U(), W("p", $Y, P(s.profile.notice), 1)) : Y("", !0),
49359
- r.value.local ? Y("", !0) : (U(), W("div", eX, [q(b, {
49363
+ s.profile.error ? (U(), W("p", $Y, P(s.profile.error), 1)) : s.profile.notice ? (U(), W("p", eX, P(s.profile.notice), 1)) : Y("", !0),
49364
+ r.value.local ? Y("", !0) : (U(), W("div", tX, [q(b, {
49360
49365
  label: "退出登录",
49361
49366
  icon: "i-lucide-log-out",
49362
49367
  color: "neutral",
@@ -49369,68 +49374,68 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49369
49374
  ]))]);
49370
49375
  };
49371
49376
  }
49372
- }, nX = {
49377
+ }, rX = {
49373
49378
  key: 0,
49374
49379
  class: "channel-archive-manager"
49375
- }, rX = { class: "channel-archive-toolbar" }, iX = {
49380
+ }, iX = { class: "channel-archive-toolbar" }, aX = {
49376
49381
  key: 0,
49377
49382
  class: "channel-archive-confirm channel-archive-bulk",
49378
49383
  role: "alert"
49379
- }, aX = {
49384
+ }, oX = {
49380
49385
  key: 1,
49381
49386
  role: "alert",
49382
49387
  class: "channel-directory-error"
49383
- }, oX = { class: "channel-archive-results" }, sX = {
49388
+ }, sX = { class: "channel-archive-results" }, cX = {
49384
49389
  key: 0,
49385
49390
  class: "channel-archive-list",
49386
49391
  "aria-label": "已存档房间列表"
49387
- }, cX = { class: "channel-archive-row" }, lX = { class: "channel-archive-info" }, uX = [
49392
+ }, lX = { class: "channel-archive-row" }, uX = { class: "channel-archive-info" }, dX = [
49388
49393
  "title",
49389
49394
  "disabled",
49390
49395
  "onClick"
49391
- ], dX = { key: 0 }, fX = ["datetime"], pX = { class: "channel-archive-actions" }, mX = {
49396
+ ], fX = { key: 0 }, pX = ["datetime"], mX = { class: "channel-archive-actions" }, hX = {
49392
49397
  key: 0,
49393
49398
  class: "channel-archive-confirm channel-archive-bulk",
49394
49399
  role: "alert"
49395
- }, hX = {
49400
+ }, gX = {
49396
49401
  key: 1,
49397
49402
  class: "channel-archive-empty"
49398
- }, gX = { class: "fine-print" }, _X = {
49403
+ }, _X = { class: "fine-print" }, vX = {
49399
49404
  key: 0,
49400
49405
  class: "fine-print"
49401
- }, vX = { class: "dialog-actions" }, yX = { class: "fine-print" }, bX = { class: "dialog-actions" }, xX = { class: "dialog-actions" }, SX = { class: "channel-management-target" }, CX = {
49406
+ }, yX = { class: "dialog-actions" }, bX = { class: "fine-print" }, xX = { class: "dialog-actions" }, SX = { class: "dialog-actions" }, CX = { class: "channel-management-target" }, wX = {
49402
49407
  key: 0,
49403
49408
  class: "fine-print"
49404
- }, wX = {
49409
+ }, TX = {
49405
49410
  key: 1,
49406
49411
  class: "fine-print"
49407
- }, TX = {
49412
+ }, EX = {
49408
49413
  key: 2,
49409
49414
  class: "fine-print"
49410
- }, EX = { class: "dialog-actions" }, DX = { key: 5 }, OX = { class: "theme-choices" }, kX = ["aria-pressed", "onClick"], AX = { class: "theme-check" }, jX = { class: "channel-reading-setting" }, MX = {
49415
+ }, DX = { class: "dialog-actions" }, OX = { key: 5 }, kX = { class: "theme-choices" }, AX = ["aria-pressed", "onClick"], jX = { class: "theme-check" }, MX = { class: "channel-reading-setting" }, NX = {
49411
49416
  class: "channel-reading-options",
49412
49417
  role: "group",
49413
49418
  "aria-labelledby": "channel-reading-label"
49414
- }, NX = { class: "channel-reading-setting" }, PX = {
49419
+ }, PX = { class: "channel-reading-setting" }, FX = {
49415
49420
  class: "channel-reading-options channel-effect-options",
49416
49421
  role: "group",
49417
49422
  "aria-labelledby": "channel-effects-label"
49418
- }, FX = { class: "advanced-content" }, IX = {
49423
+ }, IX = { class: "advanced-content" }, LX = {
49419
49424
  key: 0,
49420
49425
  class: "fine-print"
49421
- }, LX = { class: "advanced-content" }, RX = { class: "expert-fields" }, zX = { class: "dialog-actions" }, BX = { class: "dialog-actions" }, VX = {
49426
+ }, RX = { class: "advanced-content" }, zX = { class: "expert-fields" }, BX = { class: "dialog-actions" }, VX = { class: "dialog-actions" }, HX = {
49422
49427
  key: 9,
49423
49428
  class: "original-message"
49424
- }, HX = {
49429
+ }, UX = {
49425
49430
  key: 0,
49426
49431
  role: "alert"
49427
- }, UX = { class: "original-meta" }, WX = { class: "fine-print" }, GX = {
49432
+ }, WX = { class: "original-meta" }, GX = { class: "fine-print" }, KX = {
49428
49433
  key: 0,
49429
49434
  class: "channel-answer-summary"
49430
- }, KX = { class: "message-prose" }, qX = { class: "message-prose" }, JX = ["innerHTML"], YX = {
49435
+ }, qX = { class: "message-prose" }, JX = { class: "message-prose" }, YX = ["innerHTML"], XX = {
49431
49436
  key: 2,
49432
49437
  class: "fine-print"
49433
- }, XX = "topic-expert-modes", ZX = {
49438
+ }, ZX = "topic-expert-modes", QX = {
49434
49439
  __name: "WorkspaceDialogs",
49435
49440
  props: /*@__PURE__*/ Fa({
49436
49441
  detailId: {
@@ -49722,8 +49727,8 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49722
49727
  } : void 0,
49723
49728
  "onAfter:leave": xe
49724
49729
  }, {
49725
- body: L(() => [a.value === "archives" ? (U(), W("section", nX, [
49726
- K("div", rX, [
49730
+ body: L(() => [a.value === "archives" ? (U(), W("section", rX, [
49731
+ K("div", iX, [
49727
49732
  q(x, {
49728
49733
  modelValue: h.value,
49729
49734
  "onUpdate:modelValue": c[0] ||= (e) => h.value = e,
@@ -49752,7 +49757,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49752
49757
  }
49753
49758
  }, null, 8, ["label", "disabled"])
49754
49759
  ]),
49755
- b.value && v.value.length ? (U(), W("div", iX, [
49760
+ b.value && v.value.length ? (U(), W("div", aX, [
49756
49761
  K("span", null, "将永久删除当前列表中的 " + P(v.value.length) + " 个房间及其全部记录,无法撤销。", 1),
49757
49762
  q(fe, {
49758
49763
  label: "取消",
@@ -49768,20 +49773,20 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49768
49773
  onClick: ee
49769
49774
  })
49770
49775
  ])) : Y("", !0),
49771
- I(o).directory_error ? (U(), W("p", aX, P(I(o).directory_error), 1)) : Y("", !0),
49772
- K("div", oX, [v.value.length ? (U(), W("ul", sX, [(U(!0), W(H, null, B(v.value, (e) => (U(), W("li", {
49776
+ I(o).directory_error ? (U(), W("p", oX, P(I(o).directory_error), 1)) : Y("", !0),
49777
+ K("div", sX, [v.value.length ? (U(), W("ul", cX, [(U(!0), W(H, null, B(v.value, (e) => (U(), W("li", {
49773
49778
  key: e.id,
49774
49779
  class: "channel-archive-item"
49775
- }, [K("div", cX, [K("div", lX, [K("button", {
49780
+ }, [K("div", lX, [K("div", uX, [K("button", {
49776
49781
  class: "channel-archive-title",
49777
49782
  title: e.title,
49778
49783
  disabled: !!I(u),
49779
49784
  onClick: (t) => T(e)
49780
- }, P(e.title), 9, uX), K("small", null, [e.created_at ? (U(), W("span", dX, [
49785
+ }, P(e.title), 9, dX), K("small", null, [e.created_at ? (U(), W("span", fX, [
49781
49786
  c[28] ||= J("创建于 ", -1),
49782
- K("time", { datetime: e.created_at }, P(C(e.created_at)), 9, fX),
49787
+ K("time", { datetime: e.created_at }, P(C(e.created_at)), 9, pX),
49783
49788
  c[29] ||= J(" · ", -1)
49784
- ])) : Y("", !0), J(P(e.message_count) + " 条消息", 1)])]), K("div", pX, [q(fe, {
49789
+ ])) : Y("", !0), J(P(e.message_count) + " 条消息", 1)])]), K("div", mX, [q(fe, {
49785
49790
  "aria-label": `彻底删除 ${e.title}`,
49786
49791
  title: "彻底删除",
49787
49792
  icon: "i-lucide-trash-2",
@@ -49813,7 +49818,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49813
49818
  "aria-label",
49814
49819
  "disabled",
49815
49820
  "onClick"
49816
- ])])]), y.value === e.id ? (U(), W("div", mX, [
49821
+ ])])]), y.value === e.id ? (U(), W("div", hX, [
49817
49822
  K("span", null, "永久删除「" + P(e.title) + "」及其全部记录,无法撤销。", 1),
49818
49823
  q(fe, {
49819
49824
  label: "取消",
@@ -49829,15 +49834,15 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49829
49834
  disabled: w(e),
49830
49835
  onClick: E
49831
49836
  }, null, 8, ["disabled"])
49832
- ])) : Y("", !0)]))), 128))])) : (U(), W("p", hX, P(m.value.length ? "没有匹配的存档房间" : "暂无已存档房间"), 1))])
49837
+ ])) : Y("", !0)]))), 128))])) : (U(), W("p", gX, P(m.value.length ? "没有匹配的存档房间" : "暂无已存档房间"), 1))])
49833
49838
  ])) : a.value === "delete-folder" ? (U(), W("form", {
49834
49839
  key: 1,
49835
49840
  class: "dialog-form",
49836
49841
  onSubmit: c[7] ||= uu((e) => ae(!1), ["prevent"])
49837
49842
  }, [
49838
- K("p", gX, "仅移除「" + P(e.targetFolder?.name) + "」时,房间变为未分组,所有消息和存档状态都会保留。", 1),
49839
- ie.value.length ? (U(), W("p", _X, "也可以连同其中的 " + P(ie.value.length) + " 个房间一起永久删除,无法撤销。", 1)) : Y("", !0),
49840
- K("div", vX, [
49843
+ K("p", _X, "仅移除「" + P(e.targetFolder?.name) + "」时,房间变为未分组,所有消息和存档状态都会保留。", 1),
49844
+ ie.value.length ? (U(), W("p", vX, "也可以连同其中的 " + P(ie.value.length) + " 个房间一起永久删除,无法撤销。", 1)) : Y("", !0),
49845
+ K("div", yX, [
49841
49846
  q(fe, {
49842
49847
  label: "取消",
49843
49848
  color: "neutral",
@@ -49862,7 +49867,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49862
49867
  key: 2,
49863
49868
  class: "dialog-form",
49864
49869
  onSubmit: uu(oe, ["prevent"])
49865
- }, [K("p", yX, "存档「" + P(e.targetFolder?.name) + "」中的 " + P(ie.value.length) + " 个房间,文件夹保留。存档后可在侧栏「已存档」中查阅与恢复;尚未收束的讨论会暂停。", 1), K("div", bX, [q(fe, {
49870
+ }, [K("p", bX, "存档「" + P(e.targetFolder?.name) + "」中的 " + P(ie.value.length) + " 个房间,文件夹保留。存档后可在侧栏「已存档」中查阅与恢复;尚未收束的讨论会暂停。", 1), K("div", xX, [q(fe, {
49866
49871
  label: "取消",
49867
49872
  color: "neutral",
49868
49873
  variant: "ghost",
@@ -49892,7 +49897,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49892
49897
  "modelValue",
49893
49898
  "aria-label",
49894
49899
  "readonly"
49895
- ]), K("div", xX, [q(fe, {
49900
+ ]), K("div", SX, [q(fe, {
49896
49901
  label: "取消",
49897
49902
  color: "neutral",
49898
49903
  variant: "ghost",
@@ -49917,10 +49922,10 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49917
49922
  class: "dialog-form",
49918
49923
  onSubmit: uu(ne, ["prevent"])
49919
49924
  }, [
49920
- K("p", SX, [J(P(e.targetRoom?.title) + " ", 1), K("span", null, "· " + P(e.targetRoom?.message_count) + " 条消息", 1)]),
49921
- a.value === "archive" ? (U(), W("p", CX, "存档后可在侧栏「已存档」中查阅与恢复。已有发言安排会保留;专家需在下次检查时停止自己的定时任务。")) : Y("", !0),
49922
- a.value === "restore" ? (U(), W("p", wX, "恢复不会自动继续讨论;需要继续时,在主持设置中调整阶段。")) : Y("", !0),
49923
- a.value === "delete" ? (U(), W("p", TX, "消息、共识和发言安排将一起删除,无法撤销。")) : Y("", !0),
49925
+ K("p", CX, [J(P(e.targetRoom?.title) + " ", 1), K("span", null, "· " + P(e.targetRoom?.message_count) + " 条消息", 1)]),
49926
+ a.value === "archive" ? (U(), W("p", wX, "存档后可在侧栏「已存档」中查阅与恢复。已有发言安排会保留;专家需在下次检查时停止自己的定时任务。")) : Y("", !0),
49927
+ a.value === "restore" ? (U(), W("p", TX, "恢复不会自动继续讨论;需要继续时,在主持设置中调整阶段。")) : Y("", !0),
49928
+ a.value === "delete" ? (U(), W("p", EX, "消息、共识和发言安排将一起删除,无法撤销。")) : Y("", !0),
49924
49929
  a.value === "rename" ? (U(), G(pe, {
49925
49930
  key: 3,
49926
49931
  label: "房间名称",
@@ -49937,7 +49942,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49937
49942
  }, null, 8, ["modelValue"])]),
49938
49943
  _: 1
49939
49944
  })) : Y("", !0),
49940
- K("div", EX, [q(fe, {
49945
+ K("div", DX, [q(fe, {
49941
49946
  label: "取消",
49942
49947
  color: "neutral",
49943
49948
  variant: "ghost",
@@ -49954,10 +49959,10 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49954
49959
  "loading",
49955
49960
  "disabled"
49956
49961
  ])])
49957
- ], 32)) : a.value === "settings" ? (U(), W("div", DX, [
49958
- q(tX),
49962
+ ], 32)) : a.value === "settings" ? (U(), W("div", OX, [
49963
+ q(nX),
49959
49964
  c[34] ||= K("h3", { class: "account-appearance-heading" }, "外观", -1),
49960
- K("div", OX, [(U(), W(H, null, B(_e, (e) => K("button", {
49965
+ K("div", kX, [(U(), W(H, null, B(_e, (e) => K("button", {
49961
49966
  key: e.value,
49962
49967
  class: j({ chosen: I(o).theme === e.value }),
49963
49968
  "aria-pressed": I(o).theme === e.value,
@@ -49972,12 +49977,12 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49972
49977
  K("b")
49973
49978
  ], -1)]], 2),
49974
49979
  K("span", null, [K("strong", null, P(e.title), 1), K("small", null, P(e.description), 1)]),
49975
- K("span", AX, [I(o).theme === e.value ? (U(), G(ye, {
49980
+ K("span", jX, [I(o).theme === e.value ? (U(), G(ye, {
49976
49981
  key: 0,
49977
49982
  name: "i-lucide-check"
49978
49983
  })) : Y("", !0)])
49979
- ], 10, kX)), 64))]),
49980
- K("section", jX, [c[31] ||= K("h3", { id: "channel-reading-label" }, "对话宽度", -1), K("div", MX, [(U(!0), W(H, null, B(e.readingOptions, (e) => (U(), G(fe, {
49984
+ ], 10, AX)), 64))]),
49985
+ K("section", MX, [c[31] ||= K("h3", { id: "channel-reading-label" }, "对话宽度", -1), K("div", NX, [(U(!0), W(H, null, B(e.readingOptions, (e) => (U(), G(fe, {
49981
49986
  key: e.value,
49982
49987
  label: e.label,
49983
49988
  color: "neutral",
@@ -49991,9 +49996,9 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
49991
49996
  "aria-pressed",
49992
49997
  "onClick"
49993
49998
  ]))), 128))])]),
49994
- K("section", NX, [
49999
+ K("section", PX, [
49995
50000
  c[32] ||= K("h3", { id: "channel-effects-label" }, "视觉效果", -1),
49996
- K("div", PX, [(U(!0), W(H, null, B(e.effectOptions, (e) => (U(), G(fe, {
50001
+ K("div", FX, [(U(!0), W(H, null, B(e.effectOptions, (e) => (U(), G(fe, {
49997
50002
  key: e.value,
49998
50003
  label: e.label,
49999
50004
  color: "neutral",
@@ -50009,7 +50014,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50009
50014
  ]))), 128))]),
50010
50015
  c[33] ||= K("p", { class: "fine-print" }, "精简模式关闭毛玻璃模糊与多层阴影,适合配置较低或需要更流畅滚动的设备。", -1)
50011
50016
  ])
50012
- ])) : a.value === "create" ? (U(), G(LY, {
50017
+ ])) : a.value === "create" ? (U(), G(RY, {
50013
50018
  key: 6,
50014
50019
  "target-folder": e.targetFolder,
50015
50020
  onSubmit: N,
@@ -50067,7 +50072,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50067
50072
  }, null, 8, ["model-value"])]),
50068
50073
  _: 1
50069
50074
  })) : Y("", !0),
50070
- K("section", FX, [
50075
+ K("section", IX, [
50071
50076
  c[35] ||= K("h3", null, "讨论上限", -1),
50072
50077
  q(yU, {
50073
50078
  ref_key: "topic_limits",
@@ -50087,14 +50092,14 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50087
50092
  "execution",
50088
50093
  "disabled"
50089
50094
  ]),
50090
- de.value ? (U(), W("p", IX, "讨论未结束时,上限不可在此修改。")) : Y("", !0)
50095
+ de.value ? (U(), W("p", LX, "讨论未结束时,上限不可在此修改。")) : Y("", !0)
50091
50096
  ]),
50092
50097
  q(Te, {
50093
50098
  open: le.value,
50094
50099
  "onUpdate:open": c[22] ||= (e) => le.value = e,
50095
50100
  class: "advanced-fields"
50096
50101
  }, {
50097
- content: L(() => [K("div", LX, [
50102
+ content: L(() => [K("div", RX, [
50098
50103
  (U(), W(H, null, B([
50099
50104
  {
50100
50105
  key: "user_request",
@@ -50121,11 +50126,11 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50121
50126
  }, null, 8, ["model-value", "onUpdate:modelValue"])]),
50122
50127
  _: 2
50123
50128
  }, 1032, ["label"])), 64)),
50124
- K("div", RX, [(U(!0), W(H, null, B(I(k), (e) => (U(), W("div", { key: e }, [K("label", null, P(e), 1), q(S, {
50125
- "model-value": I(o).experts[XX]?.[e] || "none",
50129
+ K("div", zX, [(U(!0), W(H, null, B(I(k), (e) => (U(), W("div", { key: e }, [K("label", null, P(e), 1), q(S, {
50130
+ "model-value": I(o).experts[ZX]?.[e] || "none",
50126
50131
  items: ce,
50127
50132
  "aria-label": `${e} 参与方式`,
50128
- "onUpdate:modelValue": (t) => I(s).write_expert(XX, e, t === "none" ? "" : t)
50133
+ "onUpdate:modelValue": (t) => I(s).write_expert(ZX, e, t === "none" ? "" : t)
50129
50134
  }, null, 8, [
50130
50135
  "model-value",
50131
50136
  "aria-label",
@@ -50143,7 +50148,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50143
50148
  }, null, 8, ["trailing-icon"])]),
50144
50149
  _: 1
50145
50150
  }, 8, ["open"]),
50146
- K("div", zX, [q(fe, {
50151
+ K("div", BX, [q(fe, {
50147
50152
  label: "取消",
50148
50153
  color: "neutral",
50149
50154
  variant: "ghost",
@@ -50187,7 +50192,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50187
50192
  _: 1
50188
50193
  }),
50189
50194
  c[37] ||= K("p", { class: "fine-print" }, "创建后为待通知状态;由主持人实际联系专家。", -1),
50190
- K("div", BX, [q(fe, {
50195
+ K("div", VX, [q(fe, {
50191
50196
  label: "取消",
50192
50197
  variant: "ghost",
50193
50198
  color: "neutral",
@@ -50198,8 +50203,8 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50198
50203
  label: "创建发言安排",
50199
50204
  loading: I(u) === "schedule"
50200
50205
  }, null, 8, ["loading"])])
50201
- ], 32)) : a.value === "message" ? (U(), W("div", VX, [me.value ? (U(), W("p", HX, P(me.value), 1)) : A.value ? (U(), W(H, { key: 1 }, [
50202
- K("div", UX, [
50206
+ ], 32)) : a.value === "message" ? (U(), W("div", HX, [me.value ? (U(), W("p", UX, P(me.value), 1)) : A.value ? (U(), W(H, { key: 1 }, [
50207
+ K("div", WX, [
50203
50208
  K("strong", null, P(I(s).display_name(A.value.author)), 1),
50204
50209
  K("span", null, "#" + P(A.value.id), 1),
50205
50210
  q(Ee, {
@@ -50210,14 +50215,14 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50210
50215
  _: 1
50211
50216
  })
50212
50217
  ]),
50213
- K("p", WX, P(I(s).provenance(A.value)) + " · " + P(new Date(A.value.created_at).toLocaleString("zh-CN")), 1),
50214
- A.value.summary ? (U(), W("section", GX, [K("small", null, "回答摘要 · " + P(I(s).display_name(A.value.summary_by)), 1), K("p", KX, P(A.value.summary), 1)])) : Y("", !0),
50215
- K("p", qX, P(A.value.text), 1),
50218
+ K("p", GX, P(I(s).provenance(A.value)) + " · " + P(new Date(A.value.created_at).toLocaleString("zh-CN")), 1),
50219
+ A.value.summary ? (U(), W("section", KX, [K("small", null, "回答摘要 · " + P(I(s).display_name(A.value.summary_by)), 1), K("p", qX, P(A.value.summary), 1)])) : Y("", !0),
50220
+ K("p", JX, P(A.value.text), 1),
50216
50221
  A.value.attachments?.length ? (U(), W("div", {
50217
50222
  key: 1,
50218
50223
  onClick: be,
50219
50224
  innerHTML: I(s).attachment_markup(A.value.attachments)
50220
- }, null, 8, JX)) : Y("", !0),
50225
+ }, null, 8, YX)) : Y("", !0),
50221
50226
  A.value.reply_to ? (U(), G(fe, {
50222
50227
  key: 2,
50223
50228
  label: `查看被回复的原文 #${A.value.reply_to}`,
@@ -50227,7 +50232,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50227
50232
  class: "channel-surface-button",
50228
50233
  onClick: Se
50229
50234
  }, null, 8, ["label"])) : Y("", !0)
50230
- ], 64)) : (U(), W("p", YX, "正在读取原文…"))])) : Y("", !0)]),
50235
+ ], 64)) : (U(), W("p", XX, "正在读取原文…"))])) : Y("", !0)]),
50231
50236
  _: 1
50232
50237
  }, 8, [
50233
50238
  "open",
@@ -50238,7 +50243,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50238
50243
  ]);
50239
50244
  };
50240
50245
  }
50241
- }, QX = {
50246
+ }, $X = {
50242
50247
  __name: "ContextMenuContent",
50243
50248
  props: {
50244
50249
  items: {
@@ -50533,7 +50538,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50533
50538
  "disabled",
50534
50539
  "text-value",
50535
50540
  "class"
50536
- ]), q(QX, X({
50541
+ ]), q($X, X({
50537
50542
  sub: "",
50538
50543
  class: r.ui?.content,
50539
50544
  ui: e.ui,
@@ -50644,7 +50649,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50644
50649
  _: 3
50645
50650
  }, 16)], 64));
50646
50651
  }
50647
- }, $X = {
50652
+ }, eZ = {
50648
50653
  slots: {
50649
50654
  content: "min-w-32 max-h-(--reka-context-menu-content-available-height) bg-default shadow-lg rounded-md ring ring-default overflow-hidden data-[state=open]:animate-[scale-in_100ms_var(--ease-out)] data-[state=closed]:animate-[scale-out_100ms_var(--ease-out)] origin-(--reka-context-menu-content-transform-origin) flex flex-col",
50650
50655
  viewport: "relative divide-y divide-default scroll-py-1 overflow-y-auto flex-1",
@@ -50832,7 +50837,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50832
50837
  }
50833
50838
  ],
50834
50839
  defaultVariants: { size: "md" }
50835
- }, eZ = {
50840
+ }, tZ = {
50836
50841
  __name: "ContextMenu",
50837
50842
  props: {
50838
50843
  size: {
@@ -50902,7 +50907,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50902
50907
  emits: ["update:open"],
50903
50908
  setup(e, { emit: t }) {
50904
50909
  let n = e, r = t, i = Aa(), a = AE("contextMenu", n), o = Cm(), s = jE(om(a, "modal"), r), c = /* @__PURE__ */ Sn(() => a.content), l = () => Vm(i, ["default"]), u = Z(() => oA({
50905
- extend: $X,
50910
+ extend: eZ,
50906
50911
  ...o.ui?.contextMenu || {}
50907
50912
  })({ size: a.size }));
50908
50913
  return (e, t) => (U(), G(I(iC), M(Ss(I(s))), {
@@ -50914,7 +50919,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50914
50919
  }, {
50915
50920
  default: L(() => [V(e.$slots, "default")]),
50916
50921
  _: 3
50917
- }, 8, ["disabled", "class"])) : Y("", !0), q(QX, X({
50922
+ }, 8, ["disabled", "class"])) : Y("", !0), q($X, X({
50918
50923
  class: u.value.content({ class: [!i.default && I(a).class, I(a).ui?.content] }),
50919
50924
  ui: u.value,
50920
50925
  "ui-override": I(a).ui
@@ -50944,20 +50949,20 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
50944
50949
  _: 3
50945
50950
  }, 16));
50946
50951
  }
50947
- }, tZ = {
50952
+ }, nZ = {
50948
50953
  key: 0,
50949
50954
  class: "channel-import-reading"
50950
- }, nZ = {
50955
+ }, rZ = {
50951
50956
  class: "channel-import-list",
50952
50957
  "aria-live": "polite"
50953
- }, rZ = { class: "channel-import-head" }, iZ = ["title"], aZ = {
50958
+ }, iZ = { class: "channel-import-head" }, aZ = ["title"], oZ = {
50954
50959
  key: 0,
50955
50960
  role: "alert",
50956
50961
  class: "channel-import-error"
50957
- }, oZ = {
50962
+ }, sZ = {
50958
50963
  key: 1,
50959
50964
  class: "channel-import-members"
50960
- }, sZ = ["title"], cZ = { class: "dialog-actions" }, lZ = /*#__PURE__*/ YH({
50965
+ }, cZ = ["title"], lZ = { class: "dialog-actions" }, uZ = /*#__PURE__*/ YH({
50961
50966
  __name: "ImportDialog",
50962
50967
  props: {
50963
50968
  open: {
@@ -51013,21 +51018,21 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51013
51018
  }
51014
51019
  }, {
51015
51020
  body: L(() => [
51016
- !r.value.done && !r.value.rooms.length ? (U(), W("p", tZ, "正在读取备份文件…")) : Y("", !0),
51017
- K("ul", nZ, [(U(!0), W(H, null, B(r.value.rooms, (e, t) => (U(), W("li", {
51021
+ !r.value.done && !r.value.rooms.length ? (U(), W("p", nZ, "正在读取备份文件…")) : Y("", !0),
51022
+ K("ul", rZ, [(U(!0), W(H, null, B(r.value.rooms, (e, t) => (U(), W("li", {
51018
51023
  key: t,
51019
51024
  class: j(["channel-import-room", `is-${e.status}`])
51020
51025
  }, [
51021
- K("div", rZ, [
51026
+ K("div", iZ, [
51022
51027
  q(o, {
51023
51028
  name: i[e.status].icon,
51024
51029
  class: j({ "animate-spin": e.status === "importing" })
51025
51030
  }, null, 8, ["name", "class"]),
51026
- K("strong", { title: e.title }, P(e.title), 9, iZ),
51031
+ K("strong", { title: e.title }, P(e.title), 9, aZ),
51027
51032
  K("span", null, P(i[e.status].label), 1)
51028
51033
  ]),
51029
- e.error ? (U(), W("p", aZ, P(e.error), 1)) : Y("", !0),
51030
- e.members.length ? (U(), W("ul", oZ, [(U(!0), W(H, null, B(e.members, (e) => (U(), W("li", {
51034
+ e.error ? (U(), W("p", oZ, P(e.error), 1)) : Y("", !0),
51035
+ e.members.length ? (U(), W("ul", sZ, [(U(!0), W(H, null, B(e.members, (e) => (U(), W("li", {
51031
51036
  key: e.name,
51032
51037
  class: j({ "is-failed": e.failed })
51033
51038
  }, [
@@ -51036,7 +51041,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51036
51041
  e.resume ? (U(), W("code", {
51037
51042
  key: 0,
51038
51043
  title: `没有开着的原窗口时,在 ${e.resume.cwd} 运行`
51039
- }, P(e.resume.command), 9, sZ)) : Y("", !0)
51044
+ }, P(e.resume.command), 9, cZ)) : Y("", !0)
51040
51045
  ], 2))), 128))])) : Y("", !0),
51041
51046
  (U(!0), W(H, null, B(e.problems, (e) => (U(), W("p", {
51042
51047
  key: e,
@@ -51048,7 +51053,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51048
51053
  role: "alert",
51049
51054
  class: "channel-import-error is-file"
51050
51055
  }, P(e), 1))), 128)),
51051
- K("div", cZ, [q(s, {
51056
+ K("div", lZ, [q(s, {
51052
51057
  label: "完成",
51053
51058
  class: "channel-primary-button",
51054
51059
  disabled: !r.value.done,
@@ -51064,47 +51069,47 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51064
51069
  ]);
51065
51070
  };
51066
51071
  }
51067
- }, [["__scopeId", "data-v-03a2f1dd"]]), uZ = { class: "channel-directory-manager" }, dZ = { class: "channel-directory-heading" }, fZ = ["aria-expanded"], pZ = { class: "channel-directory-actions" }, mZ = {
51072
+ }, [["__scopeId", "data-v-03a2f1dd"]]), dZ = { class: "channel-directory-manager" }, fZ = { class: "channel-directory-heading" }, pZ = ["aria-expanded"], mZ = { class: "channel-directory-actions" }, hZ = {
51068
51073
  "aria-label": "协作房间列表",
51069
51074
  class: "channel-room-list",
51070
51075
  "data-room-directory": ""
51071
- }, hZ = ["data-room-folder", "data-drag-folder"], gZ = [
51076
+ }, gZ = ["data-room-folder", "data-drag-folder"], _Z = [
51072
51077
  "disabled",
51073
51078
  "aria-label",
51074
51079
  "aria-expanded",
51075
51080
  "onKeydown",
51076
51081
  "onClick"
51077
- ], _Z = { class: "channel-folder-name" }, vZ = {
51082
+ ], vZ = { class: "channel-folder-name" }, yZ = {
51078
51083
  class: "channel-directory-count",
51079
51084
  "aria-hidden": "true"
51080
- }, yZ = { class: "channel-folder-actions" }, bZ = ["data-drop-folder"], xZ = {
51085
+ }, bZ = { class: "channel-folder-actions" }, xZ = ["data-drop-folder"], SZ = {
51081
51086
  key: 0,
51082
51087
  class: "channel-directory-empty",
51083
51088
  role: "status"
51084
- }, SZ = ["data-drag-room"], CZ = [
51089
+ }, CZ = ["data-drag-room"], wZ = [
51085
51090
  "aria-label",
51086
51091
  "disabled",
51087
51092
  "onKeydown"
51088
- ], wZ = [
51093
+ ], TZ = [
51089
51094
  "title",
51090
51095
  "aria-label",
51091
51096
  "aria-current",
51092
51097
  "onClick"
51093
- ], TZ = { class: "channel-room-actions" }, EZ = {
51098
+ ], EZ = { class: "channel-room-actions" }, DZ = {
51094
51099
  key: 0,
51095
51100
  class: "channel-directory-empty"
51096
- }, DZ = {
51101
+ }, OZ = {
51097
51102
  key: 0,
51098
51103
  class: "channel-archive-count"
51099
- }, OZ = {
51104
+ }, kZ = {
51100
51105
  key: 0,
51101
51106
  role: "status",
51102
51107
  class: "channel-directory-notice"
51103
- }, kZ = {
51108
+ }, AZ = {
51104
51109
  key: 1,
51105
51110
  role: "alert",
51106
51111
  class: "channel-directory-error"
51107
- }, AZ = {
51112
+ }, jZ = {
51108
51113
  __name: "ChannelDirectory",
51109
51114
  emits: [
51110
51115
  "select",
@@ -51335,8 +51340,8 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51335
51340
  ];
51336
51341
  }
51337
51342
  return (e, t) => {
51338
- let u = MA, m = sA, h = $V, b = CH, x = eZ;
51339
- return U(), W("div", uZ, [
51343
+ let u = MA, m = sA, h = $V, b = CH, x = tZ;
51344
+ return U(), W("div", dZ, [
51340
51345
  q(u, {
51341
51346
  label: "新建对话",
51342
51347
  icon: "i-lucide-plus",
@@ -51345,12 +51350,12 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51345
51350
  disabled: I(r).directory_pending.includes("create-room"),
51346
51351
  onClick: t[0] ||= (e) => n("create", null)
51347
51352
  }, null, 8, ["disabled"]),
51348
- K("div", dZ, [K("button", {
51353
+ K("div", fZ, [K("button", {
51349
51354
  type: "button",
51350
51355
  class: "channel-section-toggle",
51351
51356
  "aria-expanded": _.value,
51352
51357
  onClick: t[1] ||= (e) => _.value = !_.value
51353
- }, [q(m, { name: _.value ? "i-lucide-chevron-down" : "i-lucide-chevron-right" }, null, 8, ["name"]), t[8] ||= J("协作房间", -1)], 8, fZ), K("div", pZ, [
51358
+ }, [q(m, { name: _.value ? "i-lucide-chevron-down" : "i-lucide-chevron-right" }, null, 8, ["name"]), t[8] ||= J("协作房间", -1)], 8, pZ), K("div", mZ, [
51354
51359
  q(h, { text: "新建文件夹" }, {
51355
51360
  default: L(() => [q(u, {
51356
51361
  icon: "i-lucide-plus",
@@ -51392,7 +51397,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51392
51397
  onChange: g
51393
51398
  }, null, 544)
51394
51399
  ])]),
51395
- vr(K("nav", mZ, [(U(!0), W(H, null, B(l.value, (e, s) => (U(), W("section", {
51400
+ vr(K("nav", hZ, [(U(!0), W(H, null, B(l.value, (e, s) => (U(), W("section", {
51396
51401
  key: e.order_id,
51397
51402
  class: "channel-folder-section",
51398
51403
  "data-room-folder": e.id,
@@ -51421,9 +51426,9 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51421
51426
  }, [
51422
51427
  q(m, { name: v.value.has(e.id) ? "i-lucide-chevron-right" : "i-lucide-chevron-down" }, null, 8, ["name"]),
51423
51428
  q(m, { name: "i-lucide-folder" }),
51424
- K("span", _Z, P(e.name), 1),
51425
- K("small", vZ, P(e.pending ? "保存中" : e.rooms.length), 1)
51426
- ], 40, gZ), K("div", yZ, [q(h, { text: `在${e.name}中新建对话` }, {
51429
+ K("span", vZ, P(e.name), 1),
51430
+ K("small", yZ, P(e.pending ? "保存中" : e.rooms.length), 1)
51431
+ ], 40, _Z), K("div", bZ, [q(h, { text: `在${e.name}中新建对话` }, {
51427
51432
  default: L(() => [q(u, {
51428
51433
  icon: "i-lucide-square-pen",
51429
51434
  "aria-label": `在${e.name}中新建对话`,
@@ -51460,7 +51465,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51460
51465
  key: 1,
51461
51466
  class: j(e.id ? "channel-folder-rooms" : "channel-root-rooms"),
51462
51467
  "data-drop-folder": e.id ? void 0 : ""
51463
- }, [I(r).creating_room && (I(r).creating_room.folder_id || "") === e.id ? (U(), W("p", xZ, "正在创建:" + P(I(r).creating_room.title), 1)) : Y("", !0), (U(!0), W(H, null, B(e.rooms, (s, c) => (U(), G(x, {
51468
+ }, [I(r).creating_room && (I(r).creating_room.folder_id || "") === e.id ? (U(), W("p", SZ, "正在创建:" + P(I(r).creating_room.title), 1)) : Y("", !0), (U(!0), W(H, null, B(e.rooms, (s, c) => (U(), G(x, {
51464
51469
  key: s.id,
51465
51470
  items: C(s, c, s.folder_id || null, e.rooms.length),
51466
51471
  ui: { content: "channel-menu channel-topic-menu" }
@@ -51485,7 +51490,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51485
51490
  direction: 1,
51486
51491
  folder_id: s.folder_id || null
51487
51492
  }), ["prevent"]), ["down"])]
51488
- }, [q(m, { name: "i-lucide-grip-vertical" })], 40, CZ),
51493
+ }, [q(m, { name: "i-lucide-grip-vertical" })], 40, wZ),
51489
51494
  K("button", {
51490
51495
  class: "channel-room-select",
51491
51496
  "data-drag-title": "",
@@ -51494,8 +51499,8 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51494
51499
  "aria-current": s.id === I(r).room?.id ? "page" : void 0,
51495
51500
  onPointerdown: t[5] ||= (e) => !I(o) && I(i).start_drag(e),
51496
51501
  onClick: (e) => n("select", s.id)
51497
- }, [K("span", null, P(s.title), 1)], 40, wZ),
51498
- K("div", TZ, [q(h, {
51502
+ }, [K("span", null, P(s.title), 1)], 40, TZ),
51503
+ K("div", EZ, [q(h, {
51499
51504
  text: s.archived ? "恢复房间" : "存档房间",
51500
51505
  ui: { content: "channel-topic-tooltip" }
51501
51506
  }, {
@@ -51536,9 +51541,9 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51536
51541
  }, null, 8, ["aria-label"])]),
51537
51542
  _: 2
51538
51543
  }, 1032, ["items"])])
51539
- ], 10, SZ)]),
51544
+ ], 10, CZ)]),
51540
51545
  _: 2
51541
- }, 1032, ["items"]))), 128))], 10, bZ)) : Y("", !0)], 8, hZ))), 128)), s.value.length ? Y("", !0) : (U(), W("p", EZ, "暂无协作房间"))], 512), [[Vc, _.value]]),
51546
+ }, 1032, ["items"]))), 128))], 10, xZ)) : Y("", !0)], 8, gZ))), 128)), s.value.length ? Y("", !0) : (U(), W("p", DZ, "暂无协作房间"))], 512), [[Vc, _.value]]),
51542
51547
  vr(q(u, {
51543
51548
  icon: "i-lucide-archive",
51544
51549
  color: "neutral",
@@ -51547,44 +51552,44 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51547
51552
  "aria-haspopup": "dialog",
51548
51553
  onClick: t[6] ||= (e) => n("archives")
51549
51554
  }, {
51550
- default: L(() => [t[9] ||= K("span", { class: "channel-archive-label" }, "已存档", -1), c.value ? (U(), W("small", DZ, P(c.value), 1)) : Y("", !0)]),
51555
+ default: L(() => [t[9] ||= K("span", { class: "channel-archive-label" }, "已存档", -1), c.value ? (U(), W("small", OZ, P(c.value), 1)) : Y("", !0)]),
51551
51556
  _: 1
51552
51557
  }, 512), [[Vc, _.value]]),
51553
- I(r).directory_notice ? (U(), W("p", OZ, P(I(r).directory_notice), 1)) : Y("", !0),
51554
- I(r).directory_error ? (U(), W("p", kZ, P(I(r).directory_error), 1)) : Y("", !0),
51555
- q(lZ, {
51558
+ I(r).directory_notice ? (U(), W("p", kZ, P(I(r).directory_notice), 1)) : Y("", !0),
51559
+ I(r).directory_error ? (U(), W("p", AZ, P(I(r).directory_error), 1)) : Y("", !0),
51560
+ q(uZ, {
51556
51561
  open: p.value,
51557
51562
  "onUpdate:open": t[7] ||= (e) => p.value = e
51558
51563
  }, null, 8, ["open"])
51559
51564
  ]);
51560
51565
  };
51561
51566
  }
51562
- }, jZ = {
51567
+ }, MZ = {
51563
51568
  key: 0,
51564
51569
  class: "pb-invite",
51565
51570
  "aria-label": "启动手动成员"
51566
- }, MZ = { class: "pb-invite-lead" }, NZ = {
51571
+ }, NZ = { class: "pb-invite-lead" }, PZ = {
51567
51572
  key: 0,
51568
51573
  role: "alert",
51569
51574
  class: "pb-free-note is-error"
51570
- }, PZ = { class: "pb-invite-launches" }, FZ = { class: "pb-invite-footer" }, IZ = {
51575
+ }, FZ = { class: "pb-invite-launches" }, IZ = { class: "pb-invite-footer" }, LZ = {
51571
51576
  key: 0,
51572
51577
  class: "pb-invite-cards"
51573
- }, LZ = {
51578
+ }, RZ = {
51574
51579
  key: 0,
51575
51580
  class: "fine-print"
51576
- }, RZ = ["aria-hidden"], zZ = {
51581
+ }, zZ = ["aria-hidden"], BZ = {
51577
51582
  key: 2,
51578
51583
  class: "pb-invite-empty"
51579
- }, BZ = {
51584
+ }, VZ = {
51580
51585
  key: 3,
51581
51586
  role: "alert",
51582
51587
  class: "fine-print"
51583
- }, VZ = {
51588
+ }, HZ = {
51584
51589
  key: 4,
51585
51590
  role: "alert",
51586
51591
  class: "pb-free-note is-error"
51587
- }, HZ = { class: "pb-invite-footer" }, UZ = 2e3, WZ = "preset:", GZ = /*#__PURE__*/ YH({
51592
+ }, UZ = { class: "pb-invite-footer" }, WZ = 2e3, GZ = "preset:", KZ = /*#__PURE__*/ YH({
51588
51593
  __name: "InviteDialog",
51589
51594
  props: /*@__PURE__*/ Fa({ description: {
51590
51595
  type: String,
@@ -51602,7 +51607,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51602
51607
  async function u(e) {
51603
51608
  clearTimeout(l), c.value = "", await i("copy_member_launch", e) && (c.value = e, l = setTimeout(() => {
51604
51609
  c.value = "";
51605
- }, UZ));
51610
+ }, WZ));
51606
51611
  }
51607
51612
  let d = /* @__PURE__ */ F([]), f = 0, p = /* @__PURE__ */ F([]), m = /* @__PURE__ */ F(!1), h = Z(() => Object.keys(r.launch_clients)), g = Z(() => n.value && r.expert_presets()), _ = Z(() => (o.value.members || []).map((e) => e.name)), v = (e) => _.value.filter((t) => r.platform_of(t) === e).length, y = Z(() => [...d.value.filter((e) => e.mode !== "manual"), ...d.value.filter((e) => e.mode === "manual")]), b = Z(() => {
51608
51613
  let e = /* @__PURE__ */ new Set([..._.value, ...d.value.filter((e) => e.preset).map((e) => e.name)]);
@@ -51641,7 +51646,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51641
51646
  title: v(e) ? `已在场 ${v(e)} 位 · 将添加新实例` : "",
51642
51647
  aria_label: `添加 ${e} 实例`
51643
51648
  })), ...g.value.map((e, t) => ({
51644
- value: WZ + e.name,
51649
+ value: GZ + e.name,
51645
51650
  name: e.label || e.name,
51646
51651
  ...r.identities[r.platform_of(e.name)],
51647
51652
  separated: t === 0,
@@ -51649,7 +51654,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51649
51654
  aria_label: `添加预设 ${e.label || e.name}`
51650
51655
  }))]);
51651
51656
  function T(e) {
51652
- if (!e.startsWith(WZ)) return C(e);
51657
+ if (!e.startsWith(GZ)) return C(e);
51653
51658
  let t = g.value.find((t) => t.name === e.slice(7));
51654
51659
  t && E(t);
51655
51660
  }
@@ -51688,10 +51693,10 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51688
51693
  body: "dialog-body"
51689
51694
  }
51690
51695
  }, {
51691
- body: L(() => [p.value.length && !d.value.length ? (U(), W("div", jZ, [
51692
- K("p", MZ, P(p.value.length > 1 ? `${p.value.length} 位手动成员已加入` : "手动成员已加入") + ",把启动指令交给各自的 AI 会话,注册后才算到场。", 1),
51693
- I(n).access?.error ? (U(), W("p", NZ, P(I(n).access.error), 1)) : Y("", !0),
51694
- K("ul", PZ, [(U(!0), W(H, null, B(p.value, (e) => (U(), W("li", { key: e }, [
51696
+ body: L(() => [p.value.length && !d.value.length ? (U(), W("div", MZ, [
51697
+ K("p", NZ, P(p.value.length > 1 ? `${p.value.length} 位手动成员已加入` : "手动成员已加入") + ",把启动指令交给各自的 AI 会话,注册后才算到场。", 1),
51698
+ I(n).access?.error ? (U(), W("p", PZ, P(I(n).access.error), 1)) : Y("", !0),
51699
+ K("ul", FZ, [(U(!0), W(H, null, B(p.value, (e) => (U(), W("li", { key: e }, [
51695
51700
  q(l, {
51696
51701
  src: I(r).identities[I(r).platform_of(e)]?.icon,
51697
51702
  text: I(r).identities[I(r).platform_of(e)]?.initials,
@@ -51726,7 +51731,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51726
51731
  ])
51727
51732
  ]))), 128))]),
51728
51733
  o[3] ||= K("p", { class: "fine-print" }, "指令含该成员的凭证,只交给对应的会话;关闭后仍可在参与者列表中复制。", -1),
51729
- K("div", FZ, [q(f, {
51734
+ K("div", IZ, [q(f, {
51730
51735
  label: "完成",
51731
51736
  class: "channel-primary-button",
51732
51737
  onClick: o[0] ||= (e) => t.value = !1
@@ -51737,15 +51742,15 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51737
51742
  "aria-label": "邀请专家",
51738
51743
  onSubmit: uu(ee, ["prevent"])
51739
51744
  }, [
51740
- q(ZJ, {
51745
+ q(QJ, {
51741
51746
  label: "选择 AI(可多选)",
51742
51747
  items: w.value,
51743
51748
  onAdd: T
51744
51749
  }, null, 8, ["items"]),
51745
- d.value.length ? (U(), W("div", IZ, [(U(!0), W(H, null, B(d.value, (e) => (U(), W("div", {
51750
+ d.value.length ? (U(), W("div", LZ, [(U(!0), W(H, null, B(d.value, (e) => (U(), W("div", {
51746
51751
  key: e.id,
51747
51752
  class: "pb-invite-pick"
51748
- }, [q(MJ, {
51753
+ }, [q(NJ, {
51749
51754
  name: e.name,
51750
51755
  mode: e.mode,
51751
51756
  choices: ["cli", "manual"],
@@ -51758,15 +51763,15 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51758
51763
  "status",
51759
51764
  "onMode",
51760
51765
  "onRemove"
51761
- ]), b.value.get(e) === e.name ? Y("", !0) : (U(), W("p", LZ, "同一 AI 已有实例,将以 " + P(b.value.get(e)) + " 加入,使用独立会话。", 1))]))), 128))])) : Y("", !0),
51766
+ ]), b.value.get(e) === e.name ? Y("", !0) : (U(), W("p", RZ, "同一 AI 已有实例,将以 " + P(b.value.get(e)) + " 加入,使用独立会话。", 1))]))), 128))])) : Y("", !0),
51762
51767
  d.value.length ? (U(), W("p", {
51763
51768
  key: 1,
51764
51769
  class: j(["fine-print", { "pb-invite-reserved": !(d.value.some((e) => e.mode === "manual") && d.value.some((e) => e.mode !== "manual")) }]),
51765
51770
  "aria-hidden": !(d.value.some((e) => e.mode === "manual") && d.value.some((e) => e.mode !== "manual"))
51766
- }, "手动启动的成员排在程序启动的成员之后加入队列。", 10, RZ)) : (U(), W("p", zZ, "选择一位或多位 AI(同一 AI 可重复添加),点卡片翻面设置软件、模型与项目权限。")),
51767
- d.value.some((e) => e.mode === "cli") && !I(n).launch.available ? (U(), W("p", BZ, "邀请需要本机服务,请在运行 AI 的电脑打开本机网站。")) : Y("", !0),
51768
- m.value && I(n).free_error ? (U(), W("p", VZ, P(I(n).free_error), 1)) : Y("", !0),
51769
- K("div", HZ, [q(f, {
51771
+ }, "手动启动的成员排在程序启动的成员之后加入队列。", 10, zZ)) : (U(), W("p", BZ, "选择一位或多位 AI(同一 AI 可重复添加),点卡片翻面设置软件、模型与项目权限。")),
51772
+ d.value.some((e) => e.mode === "cli") && !I(n).launch.available ? (U(), W("p", VZ, "邀请需要本机服务,请在运行 AI 的电脑打开本机网站。")) : Y("", !0),
51773
+ m.value && I(n).free_error ? (U(), W("p", HZ, P(I(n).free_error), 1)) : Y("", !0),
51774
+ K("div", UZ, [q(f, {
51770
51775
  label: "取消",
51771
51776
  color: "neutral",
51772
51777
  variant: "ghost",
@@ -51788,7 +51793,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51788
51793
  }, 8, ["open", "description"]);
51789
51794
  };
51790
51795
  }
51791
- }, [["__scopeId", "data-v-95048b60"]]), KZ = { class: "start-discussion-footer" }, qZ = 3, JZ = /*#__PURE__*/ YH({
51796
+ }, [["__scopeId", "data-v-95048b60"]]), qZ = { class: "start-discussion-footer" }, JZ = 3, YZ = /*#__PURE__*/ YH({
51792
51797
  __name: "StartDiscussionDialog",
51793
51798
  props: {
51794
51799
  open: {
@@ -51799,9 +51804,9 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51799
51804
  },
51800
51805
  emits: ["update:open"],
51801
51806
  setup(e) {
51802
- let t = ro(e, "open"), { view: n, act: r, pending: i } = xr("discussion"), a = /* @__PURE__ */ F(""), o = /* @__PURE__ */ F(qZ), s = /* @__PURE__ */ F(0), c = /* @__PURE__ */ F(""), l = /* @__PURE__ */ F(!1), u = /* @__PURE__ */ F(null);
51807
+ let t = ro(e, "open"), { view: n, act: r, pending: i } = xr("discussion"), a = /* @__PURE__ */ F(""), o = /* @__PURE__ */ F(JZ), s = /* @__PURE__ */ F(0), c = /* @__PURE__ */ F(""), l = /* @__PURE__ */ F(!1), u = /* @__PURE__ */ F(null);
51803
51808
  R(t, (e) => {
51804
- e && (a.value = "", o.value = qZ, s.value = 0, c.value = "", l.value = !1);
51809
+ e && (a.value = "", o.value = JZ, s.value = 0, c.value = "", l.value = !1);
51805
51810
  });
51806
51811
  async function d() {
51807
51812
  u.value?.settle();
@@ -51869,7 +51874,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51869
51874
  "minutes",
51870
51875
  "execution_minutes"
51871
51876
  ]),
51872
- K("div", KZ, [q(h, {
51877
+ K("div", qZ, [q(h, {
51873
51878
  label: "取消",
51874
51879
  color: "neutral",
51875
51880
  variant: "ghost",
@@ -51887,21 +51892,21 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51887
51892
  }, 8, ["open"]);
51888
51893
  };
51889
51894
  }
51890
- }, [["__scopeId", "data-v-dee972d6"]]), YZ = { class: "pb-status-line" }, XZ = { role: "status" }, ZZ = {
51895
+ }, [["__scopeId", "data-v-dee972d6"]]), XZ = { class: "pb-status-line" }, ZZ = { role: "status" }, QZ = {
51891
51896
  key: 0,
51892
51897
  class: "pb-status-detail"
51893
- }, QZ = { class: "pb-meters" }, $Z = { class: "pb-meter-label" }, eQ = {
51898
+ }, $Z = { class: "pb-meters" }, eQ = { class: "pb-meter-label" }, tQ = {
51894
51899
  key: 0,
51895
51900
  class: "pb-bar"
51896
- }, tQ = {
51901
+ }, nQ = {
51897
51902
  key: 0,
51898
51903
  class: "pb-section",
51899
51904
  "aria-label": "当前焦点"
51900
- }, nQ = {
51905
+ }, rQ = {
51901
51906
  key: 1,
51902
51907
  class: "pb-actions",
51903
51908
  "aria-label": "讨论操作"
51904
- }, rQ = { class: "progress-ending" }, iQ = ["disabled"], aQ = 90, oQ = {
51909
+ }, iQ = { class: "progress-ending" }, aQ = ["disabled"], oQ = 90, sQ = {
51905
51910
  __name: "ProgressBoard",
51906
51911
  setup(e) {
51907
51912
  let { view: t, bridge: n, act: r, pending: i } = xr("discussion"), a = Z(() => t.value.room), o = Z(() => a.value.session), s = Z(() => a.value.limits || {}), c = /* @__PURE__ */ F(0);
@@ -51967,24 +51972,24 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
51967
51972
  class: j(["pb-status", `is-${h.value.tone}`]),
51968
51973
  "aria-label": "讨论状态"
51969
51974
  }, [
51970
- K("div", YZ, [t[6] ||= K("span", { class: "pb-dot" }, null, -1), K("strong", XZ, P(h.value.title), 1)]),
51971
- h.value.detail ? (U(), W("p", ZZ, P(h.value.detail), 1)) : Y("", !0),
51972
- K("div", QZ, [(U(!0), W(H, null, B(_.value, (e) => (U(), W("div", {
51975
+ K("div", XZ, [t[6] ||= K("span", { class: "pb-dot" }, null, -1), K("strong", ZZ, P(h.value.title), 1)]),
51976
+ h.value.detail ? (U(), W("p", QZ, P(h.value.detail), 1)) : Y("", !0),
51977
+ K("div", $Z, [(U(!0), W(H, null, B(_.value, (e) => (U(), W("div", {
51973
51978
  key: e.label,
51974
51979
  class: "pb-meter"
51975
- }, [K("div", $Z, [K("span", null, P(e.label), 1), K("b", null, P(e.text), 1)]), e.ratio === null ? Y("", !0) : (U(), W("div", eQ, [K("i", { style: A({ width: `${Math.min(100, Math.round(e.ratio * 100))}%` }) }, null, 4)]))]))), 128))])
51980
+ }, [K("div", eQ, [K("span", null, P(e.label), 1), K("b", null, P(e.text), 1)]), e.ratio === null ? Y("", !0) : (U(), W("div", tQ, [K("i", { style: A({ width: `${Math.min(100, Math.round(e.ratio * 100))}%` }) }, null, 4)]))]))), 128))])
51976
51981
  ], 2),
51977
- m.value ? (U(), W("section", tQ, [
51982
+ m.value ? (U(), W("section", nQ, [
51978
51983
  t[7] ||= K("h4", null, "当前焦点", -1),
51979
51984
  K("p", { class: j(["pb-focus", { "is-expanded": p.value }]) }, P(m.value), 3),
51980
- m.value.length > aQ ? (U(), W("button", {
51985
+ m.value.length > oQ ? (U(), W("button", {
51981
51986
  key: 0,
51982
51987
  type: "button",
51983
51988
  class: "pb-link",
51984
51989
  onClick: t[0] ||= (e) => p.value = !p.value
51985
51990
  }, P(p.value ? "收起" : "展开"), 1)) : Y("", !0)
51986
51991
  ])) : Y("", !0),
51987
- a.value.archived ? Y("", !0) : (U(), W("section", nQ, [
51992
+ a.value.archived ? Y("", !0) : (U(), W("section", rQ, [
51988
51993
  l.value ? (U(), G(o, {
51989
51994
  key: 0,
51990
51995
  icon: "i-lucide-play",
@@ -52047,51 +52052,51 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
52047
52052
  body: "dialog-body"
52048
52053
  }
52049
52054
  }, {
52050
- body: L(() => [K("div", rQ, [K("button", {
52055
+ body: L(() => [K("div", iQ, [K("button", {
52051
52056
  type: "button",
52052
52057
  class: "progress-ending-option",
52053
52058
  disabled: !!I(i),
52054
52059
  onClick: v
52055
- }, [...t[8] ||= [K("strong", null, "结束讨论", -1), K("span", null, "保留全部记录,房间回到自由协作;需要总结时可直接请主持人写一份。", -1)]], 8, iQ)])]),
52060
+ }, [...t[8] ||= [K("strong", null, "结束讨论", -1), K("span", null, "保留全部记录,房间回到自由协作;需要总结时可直接请主持人写一份。", -1)]], 8, aQ)])]),
52056
52061
  _: 1
52057
52062
  }, 8, ["open"])
52058
52063
  ], 64);
52059
52064
  };
52060
52065
  }
52061
- }, sQ = { class: "speaking-order" }, cQ = {
52066
+ }, cQ = { class: "speaking-order" }, lQ = {
52062
52067
  key: 0,
52063
52068
  class: "speaking-order-divider",
52064
52069
  "aria-hidden": "true"
52065
- }, lQ = ["data-key", "data-movable"], uQ = [
52070
+ }, uQ = ["data-key", "data-movable"], dQ = [
52066
52071
  "aria-disabled",
52067
52072
  "aria-label",
52068
52073
  "title",
52069
52074
  "onPointerdown",
52070
52075
  "onKeydown"
52071
- ], dQ = { class: "speaking-order-number" }, fQ = {
52076
+ ], fQ = { class: "speaking-order-number" }, pQ = {
52072
52077
  key: 1,
52073
52078
  class: "speaking-order-place",
52074
52079
  title: "已发言",
52075
52080
  "aria-label": "已发言"
52076
- }, pQ = ["title"], mQ = {
52081
+ }, mQ = ["title"], hQ = {
52077
52082
  key: 0,
52078
52083
  class: "speaking-order-later"
52079
- }, hQ = {
52084
+ }, gQ = {
52080
52085
  key: 1,
52081
52086
  class: "speaking-order-divider",
52082
52087
  "aria-hidden": "true"
52083
- }, gQ = {
52088
+ }, _Q = {
52084
52089
  key: 0,
52085
52090
  role: "status",
52086
52091
  class: "pb-free-note"
52087
- }, _Q = {
52092
+ }, vQ = {
52088
52093
  key: 1,
52089
52094
  role: "alert",
52090
52095
  class: "pb-free-note is-error"
52091
- }, vQ = {
52096
+ }, yQ = {
52092
52097
  class: "speaking-order-live",
52093
52098
  "aria-live": "polite"
52094
- }, yQ = "发言顺序刚有变化,已更新为最新顺序,请重新调整", bQ = /*#__PURE__*/ YH({
52099
+ }, bQ = "发言顺序刚有变化,已更新为最新顺序,请重新调整", xQ = /*#__PURE__*/ YH({
52095
52100
  __name: "SpeakingOrder",
52096
52101
  props: {
52097
52102
  away: {
@@ -52111,7 +52116,7 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
52111
52116
  }), c = Z(() => s.value.kind === "default" ? "idle" : "queued"), l = Z(() => !!n.value.access?.can_manage && !o.value.archived && s.value.movable.length > 1), u = {
52112
52117
  queue: "不在本次依次回答中",
52113
52118
  turns: "本轮未安排"
52114
- }, d = Z(() => s.value.kind === "default" ? "拖动设置默认发言顺序,@全体依次 按此顺序;聚焦后可用上下方向键" : "拖动调整还没发言的顺序,立即生效;聚焦后可用上下方向键"), f = /* @__PURE__ */ F(!1), p = Z(() => f.value ? yQ : n.value.order_error?.room_id === o.value.id ? n.value.order_error.message : ""), m = /* @__PURE__ */ F(null), h = /* @__PURE__ */ F(null), g = /* @__PURE__ */ F(null), _ = /* @__PURE__ */ F("");
52119
+ }, d = Z(() => s.value.kind === "default" ? "拖动设置默认发言顺序,@全体依次 按此顺序;聚焦后可用上下方向键" : "拖动调整还没发言的顺序,立即生效;聚焦后可用上下方向键"), f = /* @__PURE__ */ F(!1), p = Z(() => f.value ? bQ : n.value.order_error?.room_id === o.value.id ? n.value.order_error.message : ""), m = /* @__PURE__ */ F(null), h = /* @__PURE__ */ F(null), g = /* @__PURE__ */ F(null), _ = /* @__PURE__ */ F("");
52115
52120
  R(() => s.value.revision, () => {
52116
52121
  g.value = null;
52117
52122
  }), R(() => o.value.id, () => {
@@ -52198,13 +52203,13 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
52198
52203
  }
52199
52204
  return (e, n) => {
52200
52205
  let i = sA;
52201
- return U(), W("div", sQ, [
52206
+ return U(), W("div", cQ, [
52202
52207
  K("ul", {
52203
52208
  ref_key: "list",
52204
52209
  ref: m,
52205
52210
  class: j(["pb-members", { "is-dragging": h.value }])
52206
52211
  }, [
52207
- (U(!0), W(H, null, B(y.value, (t, r) => (U(), W(H, { key: t.key }, [t.outside ? (U(), W("li", cQ, [K("span", null, P(u[s.value.kind]), 1)])) : Y("", !0), K("li", {
52212
+ (U(!0), W(H, null, B(y.value, (t, r) => (U(), W(H, { key: t.key }, [t.outside ? (U(), W("li", lQ, [K("span", null, P(u[s.value.kind]), 1)])) : Y("", !0), K("li", {
52208
52213
  class: j(["pb-member speaking-order-row", [
52209
52214
  `is-${t.state}`,
52210
52215
  E(r),
@@ -52225,19 +52230,19 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
52225
52230
  onPointercancel: n[0] ||= (e) => w(e, !0),
52226
52231
  onLostpointercapture: n[1] ||= (e) => w(e, !0),
52227
52232
  onKeydown: [fu((e) => ee(e, b(r), -1), ["up"]), fu((e) => ee(e, b(r), 1), ["down"])]
52228
- }, [K("span", dQ, P(t.place), 1), q(i, {
52233
+ }, [K("span", fQ, P(t.place), 1), q(i, {
52229
52234
  name: "i-lucide-grip-vertical",
52230
52235
  class: "speaking-order-handle"
52231
- })], 40, uQ)) : t.state === "done" ? (U(), W("span", fQ, [q(i, { name: "i-lucide-check" })])) : (U(), W("span", {
52236
+ })], 40, dQ)) : t.state === "done" ? (U(), W("span", pQ, [q(i, { name: "i-lucide-check" })])) : (U(), W("span", {
52232
52237
  key: 2,
52233
52238
  class: "speaking-order-place",
52234
52239
  title: t.state === "speaking" ? "正在发言" : void 0
52235
- }, P(t.place || ""), 9, pQ)), V(e.$slots, "default", {
52240
+ }, P(t.place || ""), 9, mQ)), V(e.$slots, "default", {
52236
52241
  item: t,
52237
52242
  place: t.place
52238
- }, void 0, !0)], 10, lQ)], 64))), 128)),
52239
- s.value.later?.length ? (U(), W("li", mQ, [K("details", null, [K("summary", null, "后续已排 " + P(s.value.later.length) + " 轮", 1), K("ol", null, [(U(!0), W(H, null, B(s.value.later, (e, n) => (U(), W("li", { key: n }, [K("span", null, P(t.round ? `第 ${t.round + n + 1} 轮` : `后续第 ${n + 1} 轮`), 1), J(P(e.map((e) => I(r).display_name(e)).join(" → ")), 1)]))), 128))])])])) : Y("", !0),
52240
- t.away.length ? (U(), W("li", hQ, [...n[2] ||= [K("span", null, "已离开", -1)]])) : Y("", !0),
52243
+ }, void 0, !0)], 10, uQ)], 64))), 128)),
52244
+ s.value.later?.length ? (U(), W("li", hQ, [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),
52245
+ t.away.length ? (U(), W("li", gQ, [...n[2] ||= [K("span", null, "已离开", -1)]])) : Y("", !0),
52241
52246
  (U(!0), W(H, null, B(t.away, (t) => (U(), W("li", {
52242
52247
  key: `away-${t}`,
52243
52248
  class: "pb-member speaking-order-row is-away"
@@ -52249,13 +52254,13 @@ var Rq = ["data-identity", "data-face"], zq = ["inert", "aria-hidden"], Bq = { c
52249
52254
  place: 0
52250
52255
  }, void 0, !0)]))), 128))
52251
52256
  ], 2),
52252
- p.value === yQ ? (U(), W("p", gQ, P(p.value), 1)) : p.value ? (U(), W("p", _Q, P(p.value), 1)) : Y("", !0),
52253
- K("p", vQ, P(_.value), 1)
52257
+ p.value === bQ ? (U(), W("p", _Q, P(p.value), 1)) : p.value ? (U(), W("p", vQ, P(p.value), 1)) : Y("", !0),
52258
+ K("p", yQ, P(_.value), 1)
52254
52259
  ]);
52255
52260
  };
52256
52261
  }
52257
- }, [["__scopeId", "data-v-dc33a051"]]), xQ = ["dispatched", "started"], SQ = (e) => e.pending > 0 || xQ.includes(e.execution?.status);
52258
- function CQ(e, { view: t, act: n, describe: r }) {
52262
+ }, [["__scopeId", "data-v-dc33a051"]]), SQ = ["dispatched", "started"], CQ = (e) => e.pending > 0 || SQ.includes(e.execution?.status);
52263
+ function wQ(e, { view: t, act: n, describe: r }) {
52259
52264
  let i = t.access, a = i?.members?.find((t) => t.name === e.name)?.available, o = !i?.can_manage, s = e.manual_source === "web" || e.access === "online", c = ["active", "paused"].includes(t.room?.session?.status) && e.role === "host", l = (t, r, i, a = {}) => ({
52260
52265
  label: t,
52261
52266
  icon: r,
@@ -52301,7 +52306,7 @@ function CQ(e, { view: t, act: n, describe: r }) {
52301
52306
  }] : []
52302
52307
  ],
52303
52308
  [
52304
- ...SQ(e) ? [l("停止", "i-lucide-square", "interrupt")] : [],
52309
+ ...CQ(e) ? [l("停止", "i-lucide-square", "interrupt")] : [],
52305
52310
  ...s && e.pending ? [{
52306
52311
  label: "复制阅读通知",
52307
52312
  icon: "i-lucide-copy",
@@ -52322,54 +52327,54 @@ function CQ(e, { view: t, act: n, describe: r }) {
52322
52327
  }
52323
52328
  //#endregion
52324
52329
  //#region frontend/FreeBoard.vue
52325
- var wQ = { class: "progress-board is-docked" }, TQ = { class: "pb-header" }, EQ = { class: "pb-mode" }, DQ = { class: "pb-status-line" }, OQ = { role: "status" }, kQ = {
52330
+ var TQ = { class: "progress-board is-docked" }, EQ = { class: "pb-header" }, DQ = { class: "pb-mode" }, OQ = { class: "pb-status-line" }, kQ = { role: "status" }, AQ = {
52326
52331
  key: 0,
52327
52332
  class: "pb-status-detail"
52328
- }, AQ = {
52333
+ }, jQ = {
52329
52334
  key: 1,
52330
52335
  class: "pb-chain-actions"
52331
- }, jQ = { class: "pb-meters" }, MQ = { class: "pb-meter-label" }, NQ = {
52336
+ }, MQ = { class: "pb-meters" }, NQ = { class: "pb-meter-label" }, PQ = {
52332
52337
  key: 0,
52333
52338
  class: "pb-bar"
52334
- }, PQ = {
52339
+ }, FQ = {
52335
52340
  key: 2,
52336
52341
  class: "pb-section",
52337
52342
  "aria-label": "当前任务"
52338
- }, FQ = {
52343
+ }, IQ = {
52339
52344
  class: "pb-section",
52340
52345
  "aria-label": "发言顺序"
52341
- }, IQ = { class: "pb-member-body" }, LQ = ["title"], RQ = ["title"], zQ = ["title"], BQ = ["title"], VQ = {
52346
+ }, LQ = { class: "pb-member-body" }, RQ = ["title"], zQ = ["title"], BQ = ["title"], VQ = ["title"], HQ = {
52342
52347
  key: 0,
52343
52348
  role: "alert",
52344
52349
  class: "pb-free-note is-error"
52345
- }, HQ = {
52350
+ }, UQ = {
52346
52351
  key: 1,
52347
52352
  role: "status",
52348
52353
  class: "pb-free-note"
52349
- }, UQ = {
52354
+ }, WQ = {
52350
52355
  key: 2,
52351
52356
  role: "alert",
52352
52357
  class: "pb-free-note is-error"
52353
- }, WQ = {
52358
+ }, GQ = {
52354
52359
  key: 3,
52355
52360
  role: "status",
52356
52361
  class: "pb-free-note"
52357
- }, GQ = {
52362
+ }, KQ = {
52358
52363
  key: 3,
52359
52364
  class: "pb-section",
52360
52365
  "aria-label": "头脑风暴"
52361
- }, KQ = ["onClick"], qQ = {
52366
+ }, qQ = ["onClick"], JQ = {
52362
52367
  key: 4,
52363
52368
  class: "pb-actions",
52364
52369
  "aria-label": "操作"
52365
- }, JQ = {
52370
+ }, YQ = {
52366
52371
  key: 0,
52367
52372
  class: "pb-free-note"
52368
- }, YQ = {
52373
+ }, XQ = {
52369
52374
  key: 5,
52370
52375
  class: "pb-section",
52371
52376
  "aria-label": "执行耗时"
52372
- }, XQ = { class: "pb-timing-heading" }, ZQ = { class: "pb-timings" }, QQ = { class: "pb-timing-who" }, $Q = { class: "pb-timing-stages" }, e$ = 90, t$ = /*#__PURE__*/ YH({
52377
+ }, ZQ = { class: "pb-timing-heading" }, QQ = { class: "pb-timings" }, $Q = { class: "pb-timing-who" }, e$ = { class: "pb-timing-stages" }, t$ = 90, n$ = /*#__PURE__*/ YH({
52373
52378
  __name: "FreeBoard",
52374
52379
  setup(e) {
52375
52380
  let { view: t, bridge: n, act: r, pending: i } = xr("discussion"), a = ["dispatched", "started"], o = {
@@ -52384,7 +52389,7 @@ var wQ = { class: "progress-board is-docked" }, TQ = { class: "pb-header" }, EQ
52384
52389
  online: "网页代发"
52385
52390
  }, c = Z(() => t.value.room), l = Z(() => c.value.free || {}), u = Z(() => ["active", "paused"].includes(c.value.session?.status)), d = Z(() => u.value ? c.value.current_turn?.round || (c.value.completed_rounds || 0) + 1 : 0), f = Z(() => (l.value.members || []).find((e) => e.role === "host" && e.status === "active")), p = (e) => (l.value.members || []).find((t) => t.name === e), m = Z(() => (l.value.members || []).filter((e) => e.status === "away").map((e) => e.name)), h = (e) => n.display_name((l.value.members || []).find((t) => t.id === e)?.name || "成员"), g = (e) => e.access === "manual" && e.manual_source !== "web" && e.status === "active" && !e.registered_at;
52386
52391
  function _(e) {
52387
- return e.status === "away" ? "neutral" : g(e) ? "warning" : e.execution?.stale ? "error" : SQ(e) ? e.pending && !a.includes(e.execution?.status) ? "warning" : "primary" : e.execution?.status === "failed" ? "error" : "success";
52392
+ return e.status === "away" ? "neutral" : g(e) ? "warning" : e.execution?.stale ? "error" : CQ(e) ? e.pending && !a.includes(e.execution?.status) ? "warning" : "primary" : e.execution?.status === "failed" ? "error" : "success";
52388
52393
  }
52389
52394
  function v(e, t) {
52390
52395
  if (e.status === "away") return "已离开:不会被唤醒,可请回";
@@ -52416,7 +52421,7 @@ var wQ = { class: "progress-board is-docked" }, TQ = { class: "pb-header" }, EQ
52416
52421
  title: "已存档",
52417
52422
  detail: ""
52418
52423
  };
52419
- let e = (l.value.members || []).filter(SQ);
52424
+ let e = (l.value.members || []).filter(CQ);
52420
52425
  if (e.some((e) => e.execution?.stale)) return {
52421
52426
  tone: "error",
52422
52427
  title: "执行失联",
@@ -52484,7 +52489,7 @@ var wQ = { class: "progress-board is-docked" }, TQ = { class: "pb-header" }, EQ
52484
52489
  return e == null ? "—" : e < 60 ? `${e}秒` : e < 3600 ? `${Math.floor(e / 60)}分${String(e % 60).padStart(2, "0")}秒` : `${Math.floor(e / 3600)}小时${Math.floor(e % 3600 / 60)}分`;
52485
52490
  }
52486
52491
  function re(e) {
52487
- return CQ(e, {
52492
+ return wQ(e, {
52488
52493
  view: t.value,
52489
52494
  act: r,
52490
52495
  describe: (e) => {
@@ -52509,16 +52514,16 @@ var wQ = { class: "progress-board is-docked" }, TQ = { class: "pb-header" }, EQ
52509
52514
  se.value = !1;
52510
52515
  }), (e, i) => {
52511
52516
  let a = MA, s = pA, g = sA, E = CH;
52512
- return U(), W("div", wQ, [
52513
- K("header", TQ, [K("strong", null, P(u.value ? "讨论进度" : "自由协作"), 1), K("span", EQ, P(f.value ? `${I(n).display_name(f.value.name)} 主持` : "无主持人"), 1)]),
52514
- u.value ? (U(), G(oQ, { key: 0 })) : (U(), W("section", {
52517
+ return U(), W("div", TQ, [
52518
+ K("header", EQ, [K("strong", null, P(u.value ? "讨论进度" : "自由协作"), 1), K("span", DQ, P(f.value ? `${I(n).display_name(f.value.name)} 主持` : "无主持人"), 1)]),
52519
+ u.value ? (U(), G(sQ, { key: 0 })) : (U(), W("section", {
52515
52520
  key: 1,
52516
52521
  class: j(["pb-status", `is-${T.value.tone}`]),
52517
52522
  "aria-label": "房间状态"
52518
52523
  }, [
52519
- K("div", DQ, [i[6] ||= K("span", { class: "pb-dot" }, null, -1), K("strong", OQ, P(T.value.title), 1)]),
52520
- T.value.detail ? (U(), W("p", kQ, P(T.value.detail), 1)) : Y("", !0),
52521
- T.value.continue_chain && I(t).access?.can_manage ? (U(), W("div", AQ, [(U(!0), W(H, null, B(S.value, (e) => (U(), G(a, {
52524
+ K("div", OQ, [i[6] ||= K("span", { class: "pb-dot" }, null, -1), K("strong", kQ, P(T.value.title), 1)]),
52525
+ T.value.detail ? (U(), W("p", AQ, P(T.value.detail), 1)) : Y("", !0),
52526
+ T.value.continue_chain && I(t).access?.can_manage ? (U(), W("div", jQ, [(U(!0), W(H, null, B(S.value, (e) => (U(), G(a, {
52522
52527
  key: e,
52523
52528
  label: `继续 ${e} 轮`,
52524
52529
  icon: "i-lucide-play",
@@ -52534,24 +52539,24 @@ var wQ = { class: "progress-board is-docked" }, TQ = { class: "pb-header" }, EQ
52534
52539
  "disabled",
52535
52540
  "onClick"
52536
52541
  ]))), 128))])) : Y("", !0),
52537
- K("div", jQ, [(U(!0), W(H, null, B(ee.value, (e) => (U(), W("div", {
52542
+ K("div", MQ, [(U(!0), W(H, null, B(ee.value, (e) => (U(), W("div", {
52538
52543
  key: e.label,
52539
52544
  class: "pb-meter"
52540
- }, [K("div", MQ, [K("span", null, P(e.label), 1), K("b", null, P(e.text), 1)]), e.ratio === null ? Y("", !0) : (U(), W("div", NQ, [K("i", { style: A({ width: `${Math.min(100, Math.round(e.ratio * 100))}%` }) }, null, 4)]))]))), 128))])
52545
+ }, [K("div", NQ, [K("span", null, P(e.label), 1), K("b", null, P(e.text), 1)]), e.ratio === null ? Y("", !0) : (U(), W("div", PQ, [K("i", { style: A({ width: `${Math.min(100, Math.round(e.ratio * 100))}%` }) }, null, 4)]))]))), 128))])
52541
52546
  ], 2)),
52542
- D.value && !u.value ? (U(), W("section", PQ, [
52547
+ D.value && !u.value ? (U(), W("section", FQ, [
52543
52548
  i[7] ||= K("h4", null, "当前任务", -1),
52544
52549
  K("p", { class: j(["pb-focus", { "is-expanded": O.value }]) }, P(D.value), 3),
52545
- D.value.length > e$ ? (U(), W("button", {
52550
+ D.value.length > t$ ? (U(), W("button", {
52546
52551
  key: 0,
52547
52552
  type: "button",
52548
52553
  class: "pb-link",
52549
52554
  onClick: i[0] ||= (e) => O.value = !O.value
52550
52555
  }, P(O.value ? "收起" : "展开"), 1)) : Y("", !0)
52551
52556
  ])) : Y("", !0),
52552
- K("section", FQ, [
52557
+ K("section", IQ, [
52553
52558
  i[9] ||= K("h4", null, "发言顺序", -1),
52554
- q(bQ, {
52559
+ q(xQ, {
52555
52560
  away: m.value,
52556
52561
  round: d.value
52557
52562
  }, {
@@ -52568,7 +52573,7 @@ var wQ = { class: "progress-board is-docked" }, TQ = { class: "pb-header" }, EQ
52568
52573
  "alt",
52569
52574
  "class"
52570
52575
  ]),
52571
- K("div", IQ, [
52576
+ K("div", LQ, [
52572
52577
  K("div", {
52573
52578
  class: "pb-member-name",
52574
52579
  title: c.value.descriptions?.[r.name] || void 0
@@ -52579,17 +52584,17 @@ var wQ = { class: "progress-board is-docked" }, TQ = { class: "pb-header" }, EQ
52579
52584
  name: "i-lucide-crown",
52580
52585
  title: "主持人"
52581
52586
  })) : Y("", !0),
52582
- K("small", { title: b(r) || void 0 }, P(y(r)), 9, RQ)
52583
- ], 8, LQ),
52587
+ K("small", { title: b(r) || void 0 }, P(y(r)), 9, zQ)
52588
+ ], 8, RQ),
52584
52589
  x(r) ? (U(), W("div", {
52585
52590
  key: 0,
52586
52591
  class: "pb-member-model",
52587
52592
  title: I(n).participant_session_hint(r.name, c.value, I(t).launch.room_models)
52588
- }, P(x(r)), 9, zQ)) : Y("", !0),
52593
+ }, P(x(r)), 9, BQ)) : Y("", !0),
52589
52594
  K("div", { class: j(["pb-member-status", `is-${_(r)}`]) }, [i[8] ||= K("span", { class: "pb-dot" }, null, -1), K("span", {
52590
52595
  class: "pb-member-status-text",
52591
52596
  title: r.execution?.status === "failed" ? r.execution.result : void 0
52592
- }, P(v(r, e.state)), 9, BQ)], 2)
52597
+ }, P(v(r, e.state)), 9, VQ)], 2)
52593
52598
  ]),
52594
52599
  q(E, {
52595
52600
  items: re(r),
@@ -52613,8 +52618,8 @@ var wQ = { class: "progress-board is-docked" }, TQ = { class: "pb-header" }, EQ
52613
52618
  key: e.executions.join("-"),
52614
52619
  class: "pb-free-note is-warning"
52615
52620
  }, "可能冲突:" + P(e.members.map((e) => I(n).display_name(e)).join(" 与 ")) + " 的重叠执行观察到 " + P(e.files.join("、")) + " 变化;修改者未确认。", 1))), 128)),
52616
- I(t).free_error ? (U(), W("p", VQ, P(I(t).free_error), 1)) : I(t).free_notice ? (U(), W("p", HQ, P(I(t).free_notice), 1)) : Y("", !0),
52617
- I(t).access?.error ? (U(), W("p", UQ, P(I(t).access.error), 1)) : I(t).access?.notice ? (U(), W("p", WQ, P(I(t).access.notice), 1)) : Y("", !0),
52621
+ I(t).free_error ? (U(), W("p", HQ, P(I(t).free_error), 1)) : I(t).free_notice ? (U(), W("p", UQ, P(I(t).free_notice), 1)) : Y("", !0),
52622
+ I(t).access?.error ? (U(), W("p", WQ, P(I(t).access.error), 1)) : I(t).access?.notice ? (U(), W("p", GQ, P(I(t).access.notice), 1)) : Y("", !0),
52618
52623
  c.value.archived ? Y("", !0) : (U(), G(a, {
52619
52624
  key: 4,
52620
52625
  icon: "i-lucide-plus",
@@ -52626,13 +52631,13 @@ var wQ = { class: "progress-board is-docked" }, TQ = { class: "pb-header" }, EQ
52626
52631
  onClick: i[1] ||= (e) => ie.value = !0
52627
52632
  }))
52628
52633
  ]),
52629
- c.value.linked_rooms?.length ? (U(), W("section", GQ, [i[10] ||= K("h4", null, "头脑风暴", -1), (U(!0), W(H, null, B(c.value.linked_rooms, (e) => (U(), W("button", {
52634
+ c.value.linked_rooms?.length ? (U(), W("section", KQ, [i[10] ||= K("h4", null, "头脑风暴", -1), (U(!0), W(H, null, B(c.value.linked_rooms, (e) => (U(), W("button", {
52630
52635
  key: e.id,
52631
52636
  type: "button",
52632
52637
  class: "pb-link pb-free-linked",
52633
52638
  onClick: (t) => I(r)("room", e.id)
52634
- }, [J(P(e.title), 1), K("small", null, P(I(n).phases[e.phase] || e.phase), 1)], 8, KQ))), 128))])) : Y("", !0),
52635
- !c.value.archived && !u.value ? (U(), W("section", qQ, [q(a, {
52639
+ }, [J(P(e.title), 1), K("small", null, P(I(n).phases[e.phase] || e.phase), 1)], 8, qQ))), 128))])) : Y("", !0),
52640
+ !c.value.archived && !u.value ? (U(), W("section", JQ, [q(a, {
52636
52641
  icon: "i-lucide-messages-square",
52637
52642
  label: "开启讨论",
52638
52643
  size: "sm",
@@ -52642,13 +52647,13 @@ var wQ = { class: "progress-board is-docked" }, TQ = { class: "pb-header" }, EQ
52642
52647
  title: "由主持人推进成员轮流发言,到上限或结束后房间回到自由协作",
52643
52648
  disabled: !ce.value,
52644
52649
  onClick: i[2] ||= (e) => se.value = !0
52645
- }, null, 8, ["disabled"]), ce.value ? Y("", !0) : (U(), W("p", JQ, "开启讨论需要一位由本机唤醒的 AI 主持人。"))])) : Y("", !0),
52646
- te.value.items.length ? (U(), W("section", YQ, [K("div", XQ, [i[11] ||= K("h4", null, "耗时", -1), K("small", null, "共 " + P(te.value.items.length) + " 次执行 · " + P(ne(te.value.total)), 1)]), K("details", ZQ, [i[12] ||= K("summary", null, "查看每次执行", -1), K("ol", null, [(U(!0), W(H, null, B(te.value.items, (e) => (U(), W("li", { key: e.id }, [K("span", QQ, [J("#" + P(e.id) + " " + P(h(e.member_id)), 1), K("small", null, P(o[e.status] || e.status), 1)]), K("span", $Q, [K("span", null, "用时 " + P(ne(e.seconds)), 1)])]))), 128))])])])) : Y("", !0),
52647
- q(JZ, {
52650
+ }, null, 8, ["disabled"]), ce.value ? Y("", !0) : (U(), W("p", YQ, "开启讨论需要一位由本机唤醒的 AI 主持人。"))])) : Y("", !0),
52651
+ te.value.items.length ? (U(), W("section", XQ, [K("div", ZQ, [i[11] ||= K("h4", null, "耗时", -1), K("small", null, "共 " + P(te.value.items.length) + " 次执行 · " + P(ne(te.value.total)), 1)]), K("details", QQ, [i[12] ||= K("summary", null, "查看每次执行", -1), K("ol", null, [(U(!0), W(H, null, B(te.value.items, (e) => (U(), W("li", { key: e.id }, [K("span", $Q, [J("#" + P(e.id) + " " + P(h(e.member_id)), 1), K("small", null, P(o[e.status] || e.status), 1)]), K("span", e$, [K("span", null, "用时 " + P(ne(e.seconds)), 1)])]))), 128))])])])) : Y("", !0),
52652
+ q(YZ, {
52648
52653
  open: se.value,
52649
52654
  "onUpdate:open": i[3] ||= (e) => se.value = e
52650
52655
  }, null, 8, ["open"]),
52651
- q(GZ, {
52656
+ q(KZ, {
52652
52657
  open: ie.value,
52653
52658
  "onUpdate:open": i[4] ||= (e) => ie.value = e,
52654
52659
  description: "新成员加入后不打断其他成员;点卡片翻面可设置软件、模型、项目权限和要续接的已有会话。"
@@ -52675,7 +52680,7 @@ var wQ = { class: "progress-board is-docked" }, TQ = { class: "pb-header" }, EQ
52675
52680
  ]);
52676
52681
  };
52677
52682
  }
52678
- }, [["__scopeId", "data-v-81d8efa9"]]), n$ = { class: "progress-panel-anchor" }, r$ = ["aria-expanded", "aria-label"], i$ = { class: "progress-chip-text" }, a$ = { class: "progress-chip-rounds" }, o$ = {
52683
+ }, [["__scopeId", "data-v-81d8efa9"]]), r$ = { class: "progress-panel-anchor" }, i$ = ["aria-expanded", "aria-label"], a$ = { class: "progress-chip-text" }, o$ = { class: "progress-chip-rounds" }, s$ = {
52679
52684
  __name: "ProgressPanel",
52680
52685
  setup(e) {
52681
52686
  let { view: t, bridge: n } = xr("discussion"), r = /* @__PURE__ */ F(!1), i = Z(() => t.value.room), a = Z(() => i.value.limits || {}), o = Z(() => {
@@ -52702,7 +52707,7 @@ var wQ = { class: "progress-board is-docked" }, TQ = { class: "pb-header" }, EQ
52702
52707
  }), s = Z(() => a.value.round_cap || a.value.max_rounds ? n.limit_rounds(a.value).text.replace(" / ", "/") : n.progress_round(i.value)), c = Z(() => `${o.value.title} · ${s.value}`);
52703
52708
  return (e, t) => {
52704
52709
  let n = $V, a = NV;
52705
- return U(), W("div", n$, [q(n, { text: "查看讨论进度" }, {
52710
+ return U(), W("div", r$, [q(n, { text: "查看讨论进度" }, {
52706
52711
  default: L(() => [K("button", {
52707
52712
  type: "button",
52708
52713
  class: j(["progress-chip", `is-${o.value.tone}`]),
@@ -52710,7 +52715,7 @@ var wQ = { class: "progress-board is-docked" }, TQ = { class: "pb-header" }, EQ
52710
52715
  "aria-expanded": r.value,
52711
52716
  "aria-label": `查看讨论进度:${c.value}`,
52712
52717
  onClick: t[0] ||= (e) => r.value = !0
52713
- }, [t[2] ||= K("span", { class: "progress-dot" }, null, -1), K("span", i$, [J(P(o.value.title), 1), K("span", a$, " · " + P(s.value), 1)])], 10, r$)]),
52718
+ }, [t[2] ||= K("span", { class: "progress-dot" }, null, -1), K("span", a$, [J(P(o.value.title), 1), K("span", o$, " · " + P(s.value), 1)])], 10, i$)]),
52714
52719
  _: 1
52715
52720
  }), q(a, {
52716
52721
  open: r.value,
@@ -52723,36 +52728,36 @@ var wQ = { class: "progress-board is-docked" }, TQ = { class: "pb-header" }, EQ
52723
52728
  body: "progress-drawer-body"
52724
52729
  }
52725
52730
  }, {
52726
- body: L(() => [q(t$)]),
52731
+ body: L(() => [q(n$)]),
52727
52732
  _: 1
52728
52733
  }, 8, ["open", "description"])]);
52729
52734
  };
52730
52735
  }
52731
- }, s$ = {
52736
+ }, c$ = {
52732
52737
  class: "merged-section discussion-history",
52733
52738
  "aria-label": "讨论记录"
52734
- }, c$ = {
52739
+ }, l$ = {
52735
52740
  key: 0,
52736
52741
  class: "fine-print"
52737
- }, l$ = { class: "history-timeline" }, u$ = {
52742
+ }, u$ = { class: "history-timeline" }, d$ = {
52738
52743
  key: 0,
52739
52744
  class: "history-free"
52740
- }, d$ = {
52745
+ }, f$ = {
52741
52746
  key: 1,
52742
52747
  class: "history-discussion"
52743
- }, f$ = { class: "history-meta" }, p$ = {
52748
+ }, p$ = { class: "history-meta" }, m$ = {
52744
52749
  key: 0,
52745
52750
  class: "fine-print"
52746
- }, m$ = {
52751
+ }, h$ = {
52747
52752
  key: 1,
52748
52753
  class: "fine-print"
52749
- }, h$ = {
52754
+ }, g$ = {
52750
52755
  key: 2,
52751
52756
  class: "history-conclusion"
52752
- }, g$ = ["onClick"], _$ = ["innerHTML"], v$ = {
52757
+ }, _$ = ["onClick"], v$ = ["innerHTML"], y$ = {
52753
52758
  key: 1,
52754
52759
  class: "fine-print"
52755
- }, y$ = ["aria-expanded", "onClick"], b$ = ["innerHTML"], x$ = /*#__PURE__*/ YH({
52760
+ }, b$ = ["aria-expanded", "onClick"], x$ = ["innerHTML"], S$ = /*#__PURE__*/ YH({
52756
52761
  __name: "DiscussionHistory",
52757
52762
  emits: ["detail"],
52758
52763
  setup(e) {
@@ -52810,16 +52815,16 @@ var wQ = { class: "progress-board is-docked" }, TQ = { class: "pb-header" }, EQ
52810
52815
  }
52811
52816
  return (e, t) => {
52812
52817
  let l = WV, d = sA;
52813
- return U(), W("section", s$, [
52818
+ return U(), W("section", c$, [
52814
52819
  t[2] ||= K("div", { class: "page-heading" }, [K("div", null, [K("h2", null, "讨论记录"), K("p", null, "每场讨论及其结束时的结论,最新的在上;自由协作的消息按段汇总。")])], -1),
52815
- i.value.discussions?.length ? Y("", !0) : (U(), W("p", c$, "还没有开启过讨论。")),
52816
- K("ol", l$, [(U(!0), W(H, null, B(c.value, (i) => (U(), W("li", {
52820
+ i.value.discussions?.length ? Y("", !0) : (U(), W("p", l$, "还没有开启过讨论。")),
52821
+ K("ol", u$, [(U(!0), W(H, null, B(c.value, (i) => (U(), W("li", {
52817
52822
  key: i.key,
52818
52823
  class: j(`is-${i.kind}`)
52819
52824
  }, [t[1] ||= K("span", {
52820
52825
  class: "history-dot",
52821
52826
  "aria-hidden": "true"
52822
- }, null, -1), i.kind === "free" ? (U(), W("p", u$, "自由协作 · " + P(i.count) + " 条消息", 1)) : (U(), W("article", d$, [
52827
+ }, null, -1), i.kind === "free" ? (U(), W("p", d$, "自由协作 · " + P(i.count) + " 条消息", 1)) : (U(), W("article", f$, [
52823
52828
  K("header", null, [K("h3", null, [K("small", null, "讨论 " + P(i.number), 1), J(P(i.goal || "未填写目标"), 1)]), q(l, {
52824
52829
  color: r[i.status]?.color || "neutral",
52825
52830
  variant: "subtle",
@@ -52828,74 +52833,74 @@ var wQ = { class: "progress-board is-docked" }, TQ = { class: "pb-header" }, EQ
52828
52833
  default: L(() => [J(P(r[i.status]?.label || i.status), 1)]),
52829
52834
  _: 2
52830
52835
  }, 1032, ["color"])]),
52831
- K("p", f$, [
52836
+ K("p", p$, [
52832
52837
  J(P(s(i.created_at)) + " 开始 · " + P(i.count) + " 条消息", 1),
52833
52838
  i.status === "concluded" && i.state !== null ? (U(), W(H, { key: 0 }, [J(" · " + P(I(n).stop_reason_label(i)), 1)], 64)) : Y("", !0),
52834
52839
  i.concluded_at ? (U(), W(H, { key: 1 }, [J(" · " + P(s(i.concluded_at)) + " 结束", 1)], 64)) : Y("", !0)
52835
52840
  ]),
52836
- i.result?.current ? (U(), W("p", p$, "结论即上方的当前共识。")) : i.result?.missing ? (U(), W("p", m$, "这场讨论结束于结论快照功能之前,没有保存当时的结论。")) : i.result ? (U(), W("div", h$, [
52841
+ i.result?.current ? (U(), W("p", m$, "结论即上方的当前共识。")) : i.result?.missing ? (U(), W("p", h$, "这场讨论结束于结论快照功能之前,没有保存当时的结论。")) : i.result ? (U(), W("div", g$, [
52837
52842
  K("small", null, [J(P(i.result.label), 1), i.result.until ? (U(), W("button", {
52838
52843
  key: 0,
52839
52844
  type: "button",
52840
52845
  class: "subtle-link",
52841
52846
  onClick: (t) => e.$emit("detail", i.result.until)
52842
- }, "整理至 #" + P(i.result.until), 9, g$)) : Y("", !0)]),
52847
+ }, "整理至 #" + P(i.result.until), 9, _$)) : Y("", !0)]),
52843
52848
  i.result.brief ? (U(), W("div", {
52844
52849
  key: 0,
52845
52850
  class: "markdown-body",
52846
52851
  innerHTML: o(i.result.brief)
52847
- }, null, 8, _$)) : i.result.state ? Y("", !0) : (U(), W("p", v$, "主持人没有留下简报或共识。")),
52852
+ }, null, 8, v$)) : i.result.state ? Y("", !0) : (U(), W("p", y$, "主持人没有留下简报或共识。")),
52848
52853
  i.result.state ? (U(), W(H, { key: 2 }, [K("button", {
52849
52854
  type: "button",
52850
52855
  class: "history-toggle",
52851
52856
  "aria-expanded": a.value.has(i.id),
52852
52857
  onClick: (e) => u(i.id)
52853
- }, [t[0] ||= J("详细共识与进度", -1), q(d, { name: a.value.has(i.id) ? "i-lucide-chevron-up" : "i-lucide-chevron-down" }, null, 8, ["name"])], 8, y$), a.value.has(i.id) ? (U(), W("div", {
52858
+ }, [t[0] ||= J("详细共识与进度", -1), q(d, { name: a.value.has(i.id) ? "i-lucide-chevron-up" : "i-lucide-chevron-down" }, null, 8, ["name"])], 8, b$), a.value.has(i.id) ? (U(), W("div", {
52854
52859
  key: 0,
52855
52860
  class: "markdown-body history-state",
52856
52861
  innerHTML: o(i.result.state)
52857
- }, null, 8, b$)) : Y("", !0)], 64)) : Y("", !0)
52862
+ }, null, 8, x$)) : Y("", !0)], 64)) : Y("", !0)
52858
52863
  ])) : Y("", !0)
52859
52864
  ]))], 2))), 128))])
52860
52865
  ]);
52861
52866
  };
52862
52867
  }
52863
- }, [["__scopeId", "data-v-8daffdea"]]), S$ = {
52868
+ }, [["__scopeId", "data-v-8daffdea"]]), C$ = {
52864
52869
  class: "merged-section room-overview",
52865
52870
  "aria-label": "成员与设置"
52866
- }, C$ = { class: "page-heading" }, w$ = { class: "overview-section" }, T$ = {
52871
+ }, w$ = { class: "page-heading" }, T$ = { class: "overview-section" }, E$ = {
52867
52872
  key: 0,
52868
52873
  class: "overview-local",
52869
52874
  role: "status"
52870
- }, E$ = {
52875
+ }, D$ = {
52871
52876
  class: "member-cards",
52872
52877
  "aria-label": "成员"
52873
- }, D$ = { class: "member-card-head" }, O$ = { class: "member-card-name" }, k$ = ["title"], A$ = { class: "member-card-facts" }, j$ = ["aria-label", "title"], M$ = [
52878
+ }, O$ = { class: "member-card-head" }, k$ = { class: "member-card-name" }, A$ = ["title"], j$ = { class: "member-card-facts" }, M$ = ["aria-label", "title"], N$ = [
52874
52879
  "aria-checked",
52875
52880
  "disabled",
52876
52881
  "onClick"
52877
- ], N$ = { key: 1 }, P$ = ["title"], F$ = [
52882
+ ], P$ = { key: 1 }, F$ = ["title"], I$ = [
52878
52883
  "aria-label",
52879
52884
  "aria-busy",
52880
52885
  "title"
52881
- ], I$ = [
52886
+ ], L$ = [
52882
52887
  "aria-checked",
52883
52888
  "title",
52884
52889
  "disabled",
52885
52890
  "onClick"
52886
- ], L$ = ["title"], R$ = ["aria-label"], z$ = { key: 0 }, B$ = {
52891
+ ], R$ = ["title"], z$ = ["aria-label"], B$ = { key: 0 }, V$ = {
52887
52892
  key: 1,
52888
52893
  class: "overview-result is-error",
52889
52894
  role: "alert"
52890
- }, V$ = {
52895
+ }, H$ = {
52891
52896
  key: 2,
52892
52897
  class: "overview-result",
52893
52898
  role: "status"
52894
- }, H$ = ["role"], U$ = { class: "overview-section" }, W$ = { class: "overview-settings" }, G$ = { key: 0 }, K$ = {
52899
+ }, U$ = ["role"], W$ = { class: "overview-section" }, G$ = { class: "overview-settings" }, K$ = { key: 0 }, q$ = {
52895
52900
  key: 0,
52896
52901
  role: "status",
52897
52902
  class: "overview-saved"
52898
- }, q$ = { key: 1 }, J$ = { key: 1 }, Y$ = { class: "overview-address" }, X$ = { key: 2 }, Z$ = 2e3, Q$ = "设为主持人", $$ = /*#__PURE__*/ YH({
52903
+ }, J$ = { key: 1 }, Y$ = { key: 1 }, X$ = { class: "overview-address" }, Z$ = { key: 2 }, Q$ = 2e3, $$ = "设为主持人", e1 = /*#__PURE__*/ YH({
52899
52904
  __name: "RoomOverview",
52900
52905
  setup(e) {
52901
52906
  let { view: t, bridge: n, act: r } = xr("discussion"), i = {
@@ -52930,7 +52935,7 @@ var wQ = { class: "progress-board is-docked" }, TQ = { class: "pb-header" }, EQ
52930
52935
  try {
52931
52936
  await n.set_chain_rounds(e), v.value = !0, setTimeout(() => {
52932
52937
  v.value = !1;
52933
- }, Z$);
52938
+ }, Q$);
52934
52939
  } catch {
52935
52940
  _.value = u.value.free?.max_rounds || 0;
52936
52941
  } finally {
@@ -53026,7 +53031,7 @@ var wQ = { class: "progress-board is-docked" }, TQ = { class: "pb-header" }, EQ
53026
53031
  project_access: t
53027
53032
  }), b.value = {
53028
53033
  tone: "",
53029
- text: `${n.display_name(e.name)} 已改为${jq(t)},下次处理请求起生效。`
53034
+ text: `${n.display_name(e.name)} 已改为${Mq(t)},下次处理请求起生效。`
53030
53035
  };
53031
53036
  } catch (e) {
53032
53037
  b.value = {
@@ -53040,7 +53045,7 @@ var wQ = { class: "progress-board is-docked" }, TQ = { class: "pb-header" }, EQ
53040
53045
  }
53041
53046
  let ee = Z(() => p.value ? "—" : f.value.scheduler ? `${t.value.launch.scheduler_providers?.[f.value.scheduler.provider]?.label || f.value.scheduler.provider} · ${f.value.scheduler.model}` : "未开启");
53042
53047
  function D(e) {
53043
- let [n, i, a] = CQ(C(e), {
53048
+ let [n, i, a] = wQ(C(e), {
53044
53049
  view: t.value,
53045
53050
  act: r,
53046
53051
  describe: (e) => {
@@ -53049,8 +53054,8 @@ var wQ = { class: "progress-board is-docked" }, TQ = { class: "pb-header" }, EQ
53049
53054
  });
53050
53055
  return d.value ? {
53051
53056
  taking_part: n,
53052
- host: i.find((e) => e.label === Q$) || null,
53053
- place: [...i.filter((e) => e.label !== Q$), ...a]
53057
+ host: i.find((e) => e.label === $$) || null,
53058
+ place: [...i.filter((e) => e.label !== $$), ...a]
53054
53059
  } : {
53055
53060
  taking_part: n,
53056
53061
  host: null,
@@ -53077,8 +53082,8 @@ var wQ = { class: "progress-board is-docked" }, TQ = { class: "pb-header" }, EQ
53077
53082
  let ie = Z(() => `${location.origin}/r/${u.value.id}`), ae = Z(() => u.value.created_at ? new Date(u.value.created_at).toLocaleString("zh-CN", { hour12: !1 }) : "");
53078
53083
  return (e, i) => {
53079
53084
  let s = MA, l = pA, oe = sA, k = WV;
53080
- return U(), W("section", S$, [
53081
- K("div", C$, [i[5] ||= K("div", null, [K("h2", null, "成员与设置"), K("p", null, "成员的接入、权限与全部操作,以及房间的协作设置;右栏成员菜单是同样操作的快捷入口。")], -1), u.value.archived ? Y("", !0) : (U(), G(s, {
53085
+ return U(), W("section", C$, [
53086
+ K("div", w$, [i[5] ||= K("div", null, [K("h2", null, "成员与设置"), K("p", null, "成员的接入、权限与全部操作,以及房间的协作设置;右栏成员菜单是同样操作的快捷入口。")], -1), u.value.archived ? Y("", !0) : (U(), G(s, {
53082
53087
  key: 0,
53083
53088
  icon: "i-lucide-plus",
53084
53089
  label: "邀请 AI 加入",
@@ -53088,19 +53093,19 @@ var wQ = { class: "progress-board is-docked" }, TQ = { class: "pb-header" }, EQ
53088
53093
  disabled: !I(t).access?.can_manage,
53089
53094
  onClick: i[0] ||= (e) => O.value = !0
53090
53095
  }, null, 8, ["disabled"]))]),
53091
- K("section", w$, [
53096
+ K("section", T$, [
53092
53097
  i[9] ||= K("h3", null, "成员", -1),
53093
- p.value ? (U(), W("p", T$, [J(P(p.value.text), 1), p.value.retry ? (U(), W("button", {
53098
+ p.value ? (U(), W("p", E$, [J(P(p.value.text), 1), p.value.retry ? (U(), W("button", {
53094
53099
  key: 0,
53095
53100
  type: "button",
53096
53101
  class: "subtle-link",
53097
53102
  onClick: i[1] ||= (e) => I(n).reload_room_models()
53098
53103
  }, "重试")) : Y("", !0)])) : Y("", !0),
53099
- K("ul", E$, [(U(!0), W(H, null, B(x.value, (e) => (U(), W("li", {
53104
+ K("ul", D$, [(U(!0), W(H, null, B(x.value, (e) => (U(), W("li", {
53100
53105
  key: e.name,
53101
53106
  class: "member-card"
53102
53107
  }, [
53103
- K("header", D$, [
53108
+ K("header", O$, [
53104
53109
  q(l, {
53105
53110
  src: I(n).identities[e.name]?.icon,
53106
53111
  text: I(n).identities[e.name]?.initials,
@@ -53113,14 +53118,14 @@ var wQ = { class: "progress-board is-docked" }, TQ = { class: "pb-header" }, EQ
53113
53118
  "alt",
53114
53119
  "class"
53115
53120
  ]),
53116
- K("div", O$, [K("strong", null, [J(P(I(n).display_name(e.name)), 1), e.role === "host" ? (U(), G(oe, {
53121
+ K("div", k$, [K("strong", null, [J(P(I(n).display_name(e.name)), 1), e.role === "host" ? (U(), G(oe, {
53117
53122
  key: 0,
53118
53123
  name: "i-lucide-crown",
53119
53124
  title: "主持人"
53120
53125
  })) : Y("", !0)]), u.value.descriptions?.[e.name] ? (U(), W("small", {
53121
53126
  key: 0,
53122
53127
  title: u.value.descriptions[e.name]
53123
- }, P(u.value.descriptions[e.name]), 9, k$)) : Y("", !0)]),
53128
+ }, P(u.value.descriptions[e.name]), 9, A$)) : Y("", !0)]),
53124
53129
  D(e).host ? (U(), G(s, {
53125
53130
  key: 0,
53126
53131
  icon: D(e).host.icon,
@@ -53145,7 +53150,7 @@ var wQ = { class: "progress-board is-docked" }, TQ = { class: "pb-header" }, EQ
53145
53150
  _: 2
53146
53151
  }, 1032, ["color"])
53147
53152
  ]),
53148
- K("dl", A$, [
53153
+ K("dl", j$, [
53149
53154
  K("div", null, [i[6] ||= K("dt", null, "接入", -1), K("dd", null, [S(C(e)).value ? (U(), W("div", {
53150
53155
  key: 0,
53151
53156
  class: j(["expert-card-modes overview-switch", { "is-locked": !S(C(e)).editable }]),
@@ -53159,11 +53164,11 @@ var wQ = { class: "progress-board is-docked" }, TQ = { class: "pb-header" }, EQ
53159
53164
  "aria-checked": S(C(e)).value === t.value,
53160
53165
  disabled: !S(C(e)).editable || !!h.value,
53161
53166
  onClick: (n) => w(e, t.value)
53162
- }, P(t.label), 9, M$)), 64))], 10, j$)) : (U(), W("span", N$, P(S(e).text), 1))])]),
53167
+ }, P(t.label), 9, N$)), 64))], 10, M$)) : (U(), W("span", P$, P(S(e).text), 1))])]),
53163
53168
  K("div", null, [i[7] ||= K("dt", null, "模型", -1), K("dd", {
53164
53169
  class: j(["overview-model", { "overview-muted": m(e.name) }]),
53165
53170
  title: I(n).participant_model(e.name, u.value, f.value) || void 0
53166
- }, P(e.access === "runner" ? I(n).participant_model(e.name, u.value, f.value) || "—" : "在它自己的会话里设置"), 11, P$)]),
53171
+ }, P(e.access === "runner" ? I(n).participant_model(e.name, u.value, f.value) || "—" : "在它自己的会话里设置"), 11, F$)]),
53167
53172
  K("div", null, [i[8] ||= K("dt", null, "项目文件", -1), K("dd", null, [T(e).value ? (U(), W("div", {
53168
53173
  key: 0,
53169
53174
  class: j(["expert-card-modes overview-switch", { "is-locked": !T(e).editable }]),
@@ -53171,19 +53176,19 @@ var wQ = { class: "progress-board is-docked" }, TQ = { class: "pb-header" }, EQ
53171
53176
  "aria-label": `${e.name} 的项目文件权限`,
53172
53177
  "aria-busy": h.value === e.name,
53173
53178
  title: T(e).hint || void 0
53174
- }, [(U(!0), W(H, null, B(I(Aq)(f.value?.participants?.[e.name]?.adapter), (t) => (U(), W("button", {
53179
+ }, [(U(!0), W(H, null, B(I(jq)(f.value?.participants?.[e.name]?.adapter), (t) => (U(), W("button", {
53175
53180
  key: t.value,
53176
53181
  type: "button",
53177
53182
  role: "radio",
53178
53183
  "aria-checked": T(e).value === t.value,
53179
53184
  title: t.hint,
53180
- disabled: !T(e).editable || !!h.value,
53185
+ disabled: t.disabled || !T(e).editable || !!h.value,
53181
53186
  onClick: (n) => E(e, t.value)
53182
- }, P(t.label), 9, I$))), 128))], 10, F$)) : (U(), W("span", {
53187
+ }, P(t.label), 9, L$))), 128))], 10, I$)) : (U(), W("span", {
53183
53188
  key: 1,
53184
53189
  class: "overview-muted",
53185
53190
  title: T(e).hint
53186
- }, P(T(e).text), 9, L$))])])
53191
+ }, P(T(e).text), 9, R$))])])
53187
53192
  ]),
53188
53193
  K("footer", {
53189
53194
  class: "member-card-actions",
@@ -53202,7 +53207,7 @@ var wQ = { class: "progress-board is-docked" }, TQ = { class: "pb-header" }, EQ
53202
53207
  "label",
53203
53208
  "disabled",
53204
53209
  "onClick"
53205
- ]))), 128))]), D(e).place.length ? (U(), W("div", z$, [(U(!0), W(H, null, B(D(e).place, (e) => (U(), G(s, {
53210
+ ]))), 128))]), D(e).place.length ? (U(), W("div", B$, [(U(!0), W(H, null, B(D(e).place, (e) => (U(), G(s, {
53206
53211
  key: e.label,
53207
53212
  icon: e.icon,
53208
53213
  label: e.label,
@@ -53217,26 +53222,26 @@ var wQ = { class: "progress-board is-docked" }, TQ = { class: "pb-header" }, EQ
53217
53222
  "color",
53218
53223
  "disabled",
53219
53224
  "onClick"
53220
- ]))), 128))])) : Y("", !0)], 8, R$)
53225
+ ]))), 128))])) : Y("", !0)], 8, z$)
53221
53226
  ]))), 128))]),
53222
- I(t).access?.error || I(t).free_error ? (U(), W("p", B$, P(I(t).access?.error || I(t).free_error), 1)) : I(t).access?.notice || I(t).free_notice ? (U(), W("p", V$, P(I(t).access?.notice || I(t).free_notice), 1)) : Y("", !0),
53227
+ I(t).access?.error || I(t).free_error ? (U(), W("p", V$, P(I(t).access?.error || I(t).free_error), 1)) : I(t).access?.notice || I(t).free_notice ? (U(), W("p", H$, P(I(t).access?.notice || I(t).free_notice), 1)) : Y("", !0),
53223
53228
  i[10] ||= K("p", { class: "overview-result" }, "复制说明或下载配置不代表 AI 已接入,以实际回答和运行记录为准。", -1),
53224
53229
  b.value.text ? (U(), W("p", {
53225
53230
  key: 3,
53226
53231
  class: j(["overview-result", { "is-error": b.value.tone === "error" }]),
53227
53232
  role: b.value.tone === "error" ? "alert" : "status"
53228
- }, P(b.value.text), 11, H$)) : Y("", !0)
53233
+ }, P(b.value.text), 11, U$)) : Y("", !0)
53229
53234
  ]),
53230
- K("section", U$, [i[17] ||= K("h3", null, "协作设置", -1), K("dl", W$, [
53235
+ K("section", W$, [i[17] ||= K("h3", null, "协作设置", -1), K("dl", G$, [
53231
53236
  K("div", null, [i[11] ||= K("dt", null, "主持人", -1), K("dd", null, P(u.value.host ? I(n).display_name(u.value.host) : "未指定"), 1)]),
53232
53237
  K("div", null, [i[12] ||= K("dt", null, "智能调度", -1), K("dd", null, P(ee.value), 1)]),
53233
- u.value.free?.max_rounds ? (U(), W("div", G$, [i[13] ||= K("dt", null, "连续派活上限", -1), K("dd", null, [I(t).access?.can_manage ? (U(), W(H, { key: 0 }, [q(WK, {
53238
+ u.value.free?.max_rounds ? (U(), W("div", K$, [i[13] ||= K("dt", null, "连续派活上限", -1), K("dd", null, [I(t).access?.can_manage ? (U(), W(H, { key: 0 }, [q(WK, {
53234
53239
  "model-value": _.value,
53235
53240
  disabled: g.value,
53236
53241
  "onUpdate:modelValue": y
53237
- }, null, 8, ["model-value", "disabled"]), v.value ? (U(), W("small", K$, "已保存,进行中的任务链也按新值")) : Y("", !0)], 64)) : (U(), W("span", q$, "主持人收到你的一条消息后,最多连续派活 " + P(u.value.free.max_rounds) + " 轮(派活 → 成员回答 → 交回汇总为一轮),然后停下等你", 1))])])) : Y("", !0),
53238
- d.value ? Y("", !0) : (U(), W("div", J$, [i[14] ||= K("dt", null, "逐人追问", -1), K("dd", null, P(u.value.named_followup ? "开启:主持人每轮给每位专家写针对性追问" : "关闭:首轮后请专家回应上一轮观点"), 1)])),
53239
- K("div", null, [i[15] ||= K("dt", null, "阅读地址", -1), K("dd", Y$, [K("code", null, P(ie.value), 1), q(s, {
53242
+ }, null, 8, ["model-value", "disabled"]), v.value ? (U(), W("small", q$, "已保存,进行中的任务链也按新值")) : Y("", !0)], 64)) : (U(), W("span", J$, "主持人收到你的一条消息后,最多连续派活 " + P(u.value.free.max_rounds) + " 轮(派活 → 成员回答 → 交回汇总为一轮),然后停下等你", 1))])])) : Y("", !0),
53243
+ d.value ? Y("", !0) : (U(), W("div", Y$, [i[14] ||= K("dt", null, "逐人追问", -1), K("dd", null, P(u.value.named_followup ? "开启:主持人每轮给每位专家写针对性追问" : "关闭:首轮后请专家回应上一轮观点"), 1)])),
53244
+ K("div", null, [i[15] ||= K("dt", null, "阅读地址", -1), K("dd", X$, [K("code", null, P(ie.value), 1), q(s, {
53240
53245
  icon: "i-lucide-copy",
53241
53246
  color: "neutral",
53242
53247
  variant: "ghost",
@@ -53244,9 +53249,9 @@ var wQ = { class: "progress-board is-docked" }, TQ = { class: "pb-header" }, EQ
53244
53249
  "aria-label": "复制阅读地址",
53245
53250
  onClick: i[2] ||= (e) => I(r)("copy", ie.value)
53246
53251
  })])]),
53247
- ae.value ? (U(), W("div", X$, [i[16] ||= K("dt", null, "创建时间", -1), K("dd", null, P(ae.value), 1)])) : Y("", !0)
53252
+ ae.value ? (U(), W("div", Z$, [i[16] ||= K("dt", null, "创建时间", -1), K("dd", null, P(ae.value), 1)])) : Y("", !0)
53248
53253
  ])]),
53249
- q(GZ, {
53254
+ q(KZ, {
53250
53255
  open: O.value,
53251
53256
  "onUpdate:open": i[3] ||= (e) => O.value = e,
53252
53257
  description: d.value ? "新成员加入后不打断其他成员;点卡片翻面可设置软件、模型、项目权限和要续接的已有会话。" : "新专家由程序按本机软件配置启动,或由你手动启动,加入本轮发言队列。"
@@ -53273,31 +53278,31 @@ var wQ = { class: "progress-board is-docked" }, TQ = { class: "pb-header" }, EQ
53273
53278
  ]);
53274
53279
  };
53275
53280
  }
53276
- }, [["__scopeId", "data-v-cfcbc22f"]]), e1 = {
53281
+ }, [["__scopeId", "data-v-4c8d7c35"]]), t1 = {
53277
53282
  thinking: "思考",
53278
53283
  command: "命令",
53279
53284
  tool: "工具",
53280
53285
  editing: "编辑",
53281
53286
  writing: "撰写"
53282
- }, t1 = {
53287
+ }, n1 = {
53283
53288
  thinking: "model",
53284
53289
  writing: "model",
53285
53290
  command: "tool",
53286
53291
  tool: "tool",
53287
53292
  editing: "tool"
53288
- }, n1 = {
53293
+ }, r1 = {
53289
53294
  running: "进行中",
53290
53295
  done: "完成",
53291
53296
  failed: "失败",
53292
53297
  cancelled: "已撤销"
53293
- }, r1 = 3e5, i1 = .03;
53294
- function a1(e) {
53298
+ }, i1 = 3e5, a1 = .03;
53299
+ function o1(e) {
53295
53300
  if (e < 1e3) return `${Math.max(0, Math.round(e))}ms`;
53296
53301
  if (e < 1e4) return `${(e / 1e3).toFixed(1)}s`;
53297
53302
  let t = Math.round(e / 1e3);
53298
53303
  return t < 60 ? `${t}s` : t < 3600 ? `${Math.floor(t / 60)}m ${String(t % 60).padStart(2, "0")}s` : `${Math.floor(t / 3600)}h ${String(Math.floor(t % 3600 / 60)).padStart(2, "0")}m`;
53299
53304
  }
53300
- function o1(e, t) {
53305
+ function s1(e, t) {
53301
53306
  let n = e.state === "running", r = e.finished_at ? e.finished_at * 1e3 : t, i = e.dispatched_at ? e.dispatched_at * 1e3 : 0, a = Math.min(e.queued_at ? e.queued_at * 1e3 : i || r, i || r), o = i ? e.segments.map((t, a) => {
53302
53307
  let o = n && a === e.segments.length - 1, s = Math.min(i + t.end_ms, r);
53303
53308
  return {
@@ -53323,8 +53328,8 @@ function o1(e, t) {
53323
53328
  notes: l
53324
53329
  };
53325
53330
  }
53326
- var s1 = 18e4;
53327
- function c1(e, t) {
53331
+ var c1 = 18e4;
53332
+ function l1(e, t) {
53328
53333
  let { item: n } = e;
53329
53334
  if (n.state === "failed") return {
53330
53335
  tone: "failed",
@@ -53348,22 +53353,22 @@ function c1(e, t) {
53348
53353
  let r = n.dispatched_at * 1e3, i = n.segments.at(-1), a = Math.max(n.activity_at ? n.activity_at * 1e3 : 0, i ? r + i.end_ms : 0, ...(n.notes || []).map((e) => e * 1e3)), o = a ? t - a : 0;
53349
53354
  return o >= 18e4 ? i?.phase === "command" ? {
53350
53355
  tone: "warn",
53351
- text: `命令已运行 ${a1(o)}`
53356
+ text: `命令已运行 ${o1(o)}`
53352
53357
  } : {
53353
53358
  tone: "warn",
53354
- text: `已 ${a1(o)} 无输出,可能卡住`
53359
+ text: `已 ${o1(o)} 无输出,可能卡住`
53355
53360
  } : n.last_note ? {
53356
53361
  tone: "live",
53357
53362
  text: n.last_note
53358
53363
  } : i ? {
53359
53364
  tone: "live",
53360
- text: `${e1[i.phase]}${i.tool ? ` · ${i.tool}` : ""}中`
53365
+ text: `${t1[i.phase]}${i.tool ? ` · ${i.tool}` : ""}中`
53361
53366
  } : {
53362
53367
  tone: "live",
53363
53368
  text: "处理中"
53364
53369
  };
53365
53370
  }
53366
- function l1(e, t) {
53371
+ function u1(e, t) {
53367
53372
  return [...e.segments.map((e) => ({
53368
53373
  at: e.start,
53369
53374
  kind: "phase",
@@ -53377,7 +53382,7 @@ function l1(e, t) {
53377
53382
  text: t?.[e.index] ?? (t ? "(未能读取)" : "读取中…")
53378
53383
  }))].sort((e, t) => e.at - t.at || (e.kind === "note") - (t.kind === "note"));
53379
53384
  }
53380
- function u1(e, t, n = /* @__PURE__ */ new Map()) {
53385
+ function d1(e, t, n = /* @__PURE__ */ new Map()) {
53381
53386
  let r = t / 1e3, i = [];
53382
53387
  for (let t of e.executions) {
53383
53388
  if ((t.queued_at || t.dispatched_at || Infinity) > r) continue;
@@ -53411,7 +53416,7 @@ function u1(e, t, n = /* @__PURE__ */ new Map()) {
53411
53416
  executions: i
53412
53417
  };
53413
53418
  }
53414
- function d1(e, t, n) {
53419
+ function f1(e, t, n) {
53415
53420
  let r = e.filter((e) => e.at >= t && e.at <= n);
53416
53421
  if (r.length) return {
53417
53422
  notes: r,
@@ -53423,13 +53428,13 @@ function d1(e, t, n) {
53423
53428
  earlier: !!i
53424
53429
  };
53425
53430
  }
53426
- function f1(e, t) {
53431
+ function p1(e, t) {
53427
53432
  let n = e.executions.map((n) => ({
53428
53433
  key: `${n.source}:${n.id}`,
53429
53434
  parent: n.parent_id ? `free:${n.parent_id}` : "",
53430
53435
  item: n,
53431
53436
  truncated: n.segments.length >= e.segment_limit,
53432
- ...o1(n, t)
53437
+ ...s1(n, t)
53433
53438
  })), r = new Map(n.map((e) => [e.key, e])), i = (e) => {
53434
53439
  let t = r.get(e.parent);
53435
53440
  for (let n = /* @__PURE__ */ new Set([e.key]); t?.item.member === e.item.member && !n.has(t.key); t = r.get(t.parent)) n.add(t.key);
@@ -53458,18 +53463,18 @@ function f1(e, t) {
53458
53463
  });
53459
53464
  return o;
53460
53465
  }
53461
- function p1(e, t) {
53466
+ function m1(e, t) {
53462
53467
  if (e.source === "discussion") return `run:${e.run_id || e.id}`;
53463
53468
  let n = e;
53464
53469
  for (let r = /* @__PURE__ */ new Set([e.id]); n.parent_id && t.has(n.parent_id) && !r.has(n.parent_id); n = t.get(n.parent_id)) r.add(n.parent_id);
53465
53470
  return n.task_id ? `task:${n.task_id}` : `exec:${n.id}`;
53466
53471
  }
53467
- function m1(e, t) {
53472
+ function h1(e, t) {
53468
53473
  let n = new Map(e.executions.filter((e) => e.source === "free").map((e) => [e.id, e])), r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map();
53469
53474
  for (let a of e.executions) {
53470
- let e = p1(a, n);
53475
+ let e = m1(a, n);
53471
53476
  i.set(`${a.source}:${a.id}`, e);
53472
- let o = o1(a, t), s = r.get(e) || {
53477
+ let o = s1(a, t), s = r.get(e) || {
53473
53478
  key: e,
53474
53479
  source: a.source,
53475
53480
  start: o.start,
@@ -53487,7 +53492,7 @@ function m1(e, t) {
53487
53492
  of: i
53488
53493
  };
53489
53494
  }
53490
- function h1(e, t) {
53495
+ function g1(e, t) {
53491
53496
  let n = new Map(e.map((e, t) => [e.key, t])), r = /* @__PURE__ */ new Map(), i = (e, t) => {
53492
53497
  r.has(e) || r.set(e, []), r.get(e).push(t);
53493
53498
  };
@@ -53513,7 +53518,7 @@ function h1(e, t) {
53513
53518
  });
53514
53519
  }), r;
53515
53520
  }
53516
- var g1 = [
53521
+ var _1 = [
53517
53522
  5,
53518
53523
  10,
53519
53524
  15,
@@ -53537,8 +53542,8 @@ var g1 = [
53537
53542
  21600,
53538
53543
  43200,
53539
53544
  86400
53540
- ].map((e) => e * 1e3), _1 = .75;
53541
- function v1(e, t = !1) {
53545
+ ].map((e) => e * 1e3), v1 = .75;
53546
+ function y1(e, t = !1) {
53542
53547
  let n = e.map((e) => [e.start, e.end]).sort((e, t) => e[0] - t[0]);
53543
53548
  if (!n.length) return {
53544
53549
  start: 0,
@@ -53554,8 +53559,8 @@ function v1(e, t = !1) {
53554
53559
  n && e <= n[1] + 3e5 ? n[1] = Math.max(n[1], t) : r.push([e, t]);
53555
53560
  }
53556
53561
  let i = r.reduce((e, [t, n]) => e + (n - t), 0), a = i;
53557
- t && i && (a = g1.find((e) => e >= i / _1) ?? Math.ceil(i / _1), r.at(-1)[1] += a - i);
53558
- let o = Math.min(i1, .5 / Math.max(1, r.length - 1)), s = a ? (1 - o * (r.length - 1)) / a : 0, c = [], l = 0;
53562
+ t && i && (a = _1.find((e) => e >= i / v1) ?? Math.ceil(i / v1), r.at(-1)[1] += a - i);
53563
+ let o = Math.min(a1, .5 / Math.max(1, r.length - 1)), s = a ? (1 - o * (r.length - 1)) / a : 0, c = [], l = 0;
53559
53564
  return r.forEach(([e, t], n) => {
53560
53565
  if (n) {
53561
53566
  let t = r[n - 1][1];
@@ -53598,7 +53603,7 @@ function v1(e, t = !1) {
53598
53603
  }))
53599
53604
  };
53600
53605
  }
53601
- var y1 = [
53606
+ var b1 = [
53602
53607
  1,
53603
53608
  2,
53604
53609
  5,
@@ -53617,14 +53622,14 @@ var y1 = [
53617
53622
  21600,
53618
53623
  43200,
53619
53624
  86400
53620
- ].map((e) => e * 1e3), b1 = .12;
53621
- function x1(e, t = 6, n = {
53625
+ ].map((e) => e * 1e3), x1 = .12;
53626
+ function S1(e, t = 6, n = {
53622
53627
  from: 0,
53623
53628
  span: 1
53624
53629
  }) {
53625
53630
  let r = (e.total_ms ?? e.busy_ms) * n.span;
53626
53631
  if (!r) return [];
53627
- let i = y1.find((e) => r / e <= t) ?? y1.at(-1), a = b1 * n.span, o = [];
53632
+ let i = b1.find((e) => r / e <= t) ?? b1.at(-1), a = x1 * n.span, o = [];
53628
53633
  for (let t of e.spans) if (!(t.from + t.width < n.from || t.from > n.from + n.span)) for (let r = Math.ceil(t.start / i) * i; r <= t.end; r += i) {
53629
53634
  let t = e.x(r);
53630
53635
  t < n.from || t > n.from + n.span || (!o.length || t - o.at(-1).x >= a) && o.push({
@@ -53637,8 +53642,8 @@ function x1(e, t = 6, n = {
53637
53642
  seconds: i < 6e4
53638
53643
  }));
53639
53644
  }
53640
- var S1 = .01, C1 = 2e3;
53641
- function w1(e, t) {
53645
+ var C1 = .01, w1 = 2e3;
53646
+ function T1(e, t) {
53642
53647
  let n = (e) => (e - t.from) / t.span;
53643
53648
  return {
53644
53649
  ...e,
@@ -53655,20 +53660,20 @@ function w1(e, t) {
53655
53660
  }))
53656
53661
  };
53657
53662
  }
53658
- function T1(e, t, n, r = 0) {
53659
- let i = Math.max(S1, r ? C1 / r : 0), a = Math.min(1, Math.max(i, e.span * n)), o = e.from + t * e.span;
53663
+ function E1(e, t, n, r = 0) {
53664
+ let i = Math.max(C1, r ? w1 / r : 0), a = Math.min(1, Math.max(i, e.span * n)), o = e.from + t * e.span;
53660
53665
  return {
53661
53666
  from: Math.min(1 - a, Math.max(0, o - t * a)),
53662
53667
  span: a
53663
53668
  };
53664
53669
  }
53665
- function E1(e, t) {
53670
+ function D1(e, t) {
53666
53671
  return {
53667
53672
  from: Math.min(1 - e.span, Math.max(0, e.from + t * e.span)),
53668
53673
  span: e.span
53669
53674
  };
53670
53675
  }
53671
- function D1(e, t = Date.now()) {
53676
+ function O1(e, t = Date.now()) {
53672
53677
  let n = null;
53673
53678
  for (let t of e) for (let e of t.segments) (!n || e.seen - e.start > n.end - n.start) && (n = {
53674
53679
  ...e,
@@ -53680,7 +53685,7 @@ function D1(e, t = Date.now()) {
53680
53685
  executions: e.length,
53681
53686
  running: e.filter((e) => e.item.state === "running").length,
53682
53687
  failed: e.filter((e) => e.item.state === "failed").length,
53683
- stalled: e.filter((e) => e.item.state === "running" && c1(e, t).tone === "warn").length,
53688
+ stalled: e.filter((e) => e.item.state === "running" && l1(e, t).tone === "warn").length,
53684
53689
  tool_segments: e.reduce((e, t) => e + t.segments.filter((e) => [
53685
53690
  "command",
53686
53691
  "tool",
@@ -53691,116 +53696,116 @@ function D1(e, t = Date.now()) {
53691
53696
  }
53692
53697
  //#endregion
53693
53698
  //#region frontend/ExecutionTimeline.vue
53694
- var O1 = {
53699
+ var k1 = {
53695
53700
  class: "merged-section execution-timeline",
53696
53701
  "aria-label": "执行时间线"
53697
- }, k1 = {
53702
+ }, A1 = {
53698
53703
  key: 0,
53699
53704
  role: "alert",
53700
53705
  class: "fine-print wf-error"
53701
- }, A1 = {
53706
+ }, j1 = {
53702
53707
  key: 1,
53703
53708
  class: "fine-print"
53704
- }, j1 = { class: "wf-head" }, M1 = {
53709
+ }, M1 = { class: "wf-head" }, N1 = {
53705
53710
  key: 0,
53706
53711
  class: "wf-state is-replay"
53707
- }, N1 = {
53712
+ }, P1 = {
53708
53713
  key: 2,
53709
53714
  class: "wf-headline"
53710
- }, P1 = { class: "wf-summary" }, F1 = ["title"], I1 = ["title"], L1 = { title: "连续调用同一工具合并为一段" }, R1 = {
53715
+ }, F1 = { class: "wf-summary" }, I1 = ["title"], L1 = ["title"], R1 = { title: "连续调用同一工具合并为一段" }, z1 = {
53711
53716
  class: "wf-legend",
53712
53717
  "aria-label": "图例"
53713
- }, z1 = {
53718
+ }, B1 = {
53714
53719
  key: 0,
53715
53720
  class: "wf-legend-note"
53716
- }, B1 = {
53721
+ }, V1 = {
53717
53722
  key: 1,
53718
53723
  class: "wf-legend-note"
53719
- }, V1 = { class: "wf-axis-label" }, H1 = {
53724
+ }, H1 = { class: "wf-axis-label" }, U1 = {
53720
53725
  key: 0,
53721
53726
  class: "wf-zoom"
53722
- }, U1 = {
53727
+ }, W1 = {
53723
53728
  key: 1,
53724
53729
  class: "wf-zoom-hint",
53725
53730
  title: "Ctrl + 滚轮缩放;放大后按住中键或拖动时间轴平移,双击时间轴还原"
53726
- }, W1 = {
53731
+ }, G1 = {
53727
53732
  key: 2,
53728
53733
  class: "wf-branch"
53729
- }, G1 = ["title"], K1 = {
53734
+ }, K1 = ["title"], q1 = {
53730
53735
  key: 0,
53731
53736
  class: "wf-guides",
53732
53737
  "aria-hidden": "true"
53733
- }, q1 = [
53738
+ }, J1 = [
53734
53739
  "aria-expanded",
53735
53740
  "aria-label",
53736
53741
  "onClick"
53737
- ], J1 = {
53742
+ ], Y1 = {
53738
53743
  key: 2,
53739
53744
  class: "wf-toggle-space"
53740
- }, Y1 = [
53745
+ }, X1 = [
53741
53746
  "aria-expanded",
53742
53747
  "onClick",
53743
53748
  "onMouseenter",
53744
53749
  "onMouseleave"
53745
- ], X1 = { class: "wf-name-line" }, Z1 = {
53750
+ ], Z1 = { class: "wf-name-line" }, Q1 = {
53746
53751
  key: 0,
53747
53752
  class: "wf-spinner",
53748
53753
  "aria-hidden": "true"
53749
- }, Q1 = {
53754
+ }, $1 = {
53750
53755
  key: 1,
53751
53756
  class: "wf-pill is-slowest"
53752
- }, $1 = {
53757
+ }, e0 = {
53753
53758
  key: 0,
53754
53759
  class: "wf-live-dot",
53755
53760
  "aria-hidden": "true"
53756
- }, e0 = ["aria-label", "onMouseleave"], t0 = { class: "wf-track" }, n0 = ["data-tone"], r0 = ["onMouseenter", "onClick"], i0 = ["onMouseenter", "onClick"], a0 = [
53761
+ }, t0 = ["aria-label", "onMouseleave"], n0 = { class: "wf-track" }, r0 = ["data-tone"], i0 = ["onMouseenter", "onClick"], a0 = ["onMouseenter", "onClick"], o0 = [
53757
53762
  "data-tone",
53758
53763
  "onMouseenter",
53759
53764
  "onClick"
53760
- ], o0 = [
53765
+ ], s0 = [
53761
53766
  "data-tone",
53762
53767
  "onMouseenter",
53763
53768
  "onClick"
53764
- ], s0 = [
53769
+ ], c0 = [
53765
53770
  "data-tone",
53766
53771
  "onMouseenter",
53767
53772
  "onClick"
53768
- ], c0 = [
53773
+ ], l0 = [
53769
53774
  "aria-label",
53770
53775
  "onMouseenter",
53771
53776
  "onClick",
53772
53777
  "onFocus",
53773
53778
  "onBlur"
53774
- ], l0 = { class: "wf-end" }, u0 = { key: 1 }, d0 = ["aria-label"], f0 = { class: "wf-detail-head" }, p0 = { key: 0 }, m0 = { key: 1 }, h0 = { class: "is-failed" }, g0 = { key: 2 }, _0 = { key: 3 }, v0 = {
53779
+ ], u0 = { class: "wf-end" }, d0 = { key: 1 }, f0 = ["aria-label"], p0 = { class: "wf-detail-head" }, m0 = { key: 0 }, h0 = { key: 1 }, g0 = { class: "is-failed" }, _0 = { key: 2 }, v0 = { key: 3 }, y0 = {
53775
53780
  key: 0,
53776
53781
  class: "wf-log",
53777
53782
  "aria-label": "过程"
53778
- }, y0 = ["data-tone"], b0 = {
53783
+ }, b0 = ["data-tone"], x0 = {
53779
53784
  key: 1,
53780
53785
  class: "wf-log-note"
53781
- }, x0 = {
53786
+ }, S0 = {
53782
53787
  key: 1,
53783
53788
  class: "fine-print"
53784
- }, S0 = {
53789
+ }, C0 = {
53785
53790
  key: 1,
53786
53791
  class: "wf-player"
53787
- }, C0 = {
53792
+ }, w0 = {
53788
53793
  key: 2,
53789
53794
  class: "wf-player"
53790
- }, w0 = ["aria-label"], T0 = ["disabled"], E0 = ["max", "value"], D0 = { class: "wf-player-time" }, O0 = {
53795
+ }, T0 = ["aria-label"], E0 = ["disabled"], D0 = ["max", "value"], O0 = { class: "wf-player-time" }, k0 = {
53791
53796
  key: 3,
53792
53797
  class: "wf-foot"
53793
- }, k0 = { key: 0 }, A0 = { key: 1 }, j0 = ["role"], M0 = {
53798
+ }, A0 = { key: 0 }, j0 = { key: 1 }, M0 = ["role"], N0 = {
53794
53799
  key: 1,
53795
53800
  class: "wf-card-text"
53796
- }, N0 = {
53801
+ }, P0 = {
53797
53802
  key: 2,
53798
53803
  class: "wf-card-reason"
53799
- }, P0 = { class: "wf-card-label" }, F0 = 2e3, I0 = 6e4, L0 = 100, R0 = 60, z0 = 2e4, B0 = 600, V0 = 5, H0 = 16, U0 = 90, W0 = 2, G0 = 8, K0 = 560, q0 = .0015, J0 = "latest", Y0 = "all", X0 = 22, Z0 = 5, Q0 = 52, $0 = /*#__PURE__*/ YH({
53804
+ }, F0 = { class: "wf-card-label" }, I0 = 2e3, L0 = 6e4, R0 = 100, z0 = 60, B0 = 2e4, V0 = 600, H0 = 5, U0 = 16, W0 = 90, G0 = 2, K0 = 8, q0 = 560, J0 = .0015, Y0 = "latest", X0 = "all", Z0 = 22, Q0 = 5, $0 = 52, e2 = /*#__PURE__*/ YH({
53800
53805
  __name: "ExecutionTimeline",
53801
53806
  emits: ["detail"],
53802
53807
  setup(e, { emit: t }) {
53803
- let n = t, { view: r, bridge: i } = xr("discussion"), a = s1 / 6e4, o = [
53808
+ let n = t, { view: r, bridge: i } = xr("discussion"), a = c1 / 6e4, o = [
53804
53809
  1,
53805
53810
  2,
53806
53811
  4,
@@ -53816,7 +53821,7 @@ var O1 = {
53816
53821
  let t = d.value;
53817
53822
  if (!t || w) return;
53818
53823
  w = !0;
53819
- let n = e || !S || Date.now() - C >= I0 ? 0 : S - V0;
53824
+ let n = e || !S || Date.now() - C >= L0 ? 0 : S - H0;
53820
53825
  try {
53821
53826
  let e = await i.request(`/api/rooms/${t}/timeline${n ? `?after=${n}` : ""}`);
53822
53827
  if (t !== d.value) return;
@@ -53839,7 +53844,7 @@ var O1 = {
53839
53844
  R(Z(() => re.value?.executions.some((e) => e.state === "running")), (e) => {
53840
53845
  clearInterval(T), e && (T = setInterval(() => {
53841
53846
  document.hidden || ne();
53842
- }, F0));
53847
+ }, I0));
53843
53848
  }, { immediate: !0 }), R(d, () => {
53844
53849
  f.value = /* @__PURE__ */ new Map(), p.value = null, g.value = /* @__PURE__ */ new Set(), _.value = /* @__PURE__ */ new Map(), v.value = null, y.value = "", S = 0, ne(!0);
53845
53850
  }, { immediate: !0 }), R(() => r.value.room, (e, t) => {
@@ -53854,7 +53859,7 @@ var O1 = {
53854
53859
  };
53855
53860
  }
53856
53861
  function oe(e) {
53857
- c.value && e.target.closest?.(".wf-track, .wf-axis") && (e.ctrlKey || e.metaKey ? (e.preventDefault(), De.value = T1(De.value, ae(e).share, Math.exp(e.deltaY * q0), Te.value.total_ms)) : Oe.value && (e.shiftKey || Math.abs(e.deltaX) > Math.abs(e.deltaY)) && (e.preventDefault(), De.value = E1(De.value, (e.shiftKey ? e.deltaY : e.deltaX) / ae(e).width)));
53862
+ c.value && e.target.closest?.(".wf-track, .wf-axis") && (e.ctrlKey || e.metaKey ? (e.preventDefault(), De.value = E1(De.value, ae(e).share, Math.exp(e.deltaY * J0), Te.value.total_ms)) : Oe.value && (e.shiftKey || Math.abs(e.deltaX) > Math.abs(e.deltaY)) && (e.preventDefault(), De.value = D1(De.value, (e.shiftKey ? e.deltaY : e.deltaX) / ae(e).width)));
53858
53863
  }
53859
53864
  function k(e) {
53860
53865
  let t = e.target.closest?.(".wf-axis");
@@ -53865,7 +53870,7 @@ var O1 = {
53865
53870
  }, e.currentTarget.setPointerCapture(e.pointerId));
53866
53871
  }
53867
53872
  function se(e) {
53868
- ie && (De.value = E1({
53873
+ ie && (De.value = D1({
53869
53874
  from: ie.from,
53870
53875
  span: De.value.span
53871
53876
  }, -(e.clientX - ie.x) / ie.width));
@@ -53891,15 +53896,15 @@ var O1 = {
53891
53896
  }), ta(() => {
53892
53897
  clearInterval(T), cancelAnimationFrame(E), document.removeEventListener("pointerdown", ue), document.removeEventListener("keydown", de), u?.disconnect();
53893
53898
  });
53894
- let fe = /* @__PURE__ */ F(J0), pe = Z(() => re.value ? m1(re.value, h.value) : {
53899
+ let fe = /* @__PURE__ */ F(Y0), pe = Z(() => re.value ? h1(re.value, h.value) : {
53895
53900
  list: [],
53896
53901
  of: /* @__PURE__ */ new Map()
53897
- }), me = Z(() => fe.value === J0 ? pe.value.list[0]?.key : fe.value === Y0 || pe.value.list.some((e) => e.key === fe.value) ? fe.value : pe.value.list[0]?.key), he = Z(() => !re.value || me.value === Y0 ? re.value : {
53902
+ }), me = Z(() => fe.value === Y0 ? pe.value.list[0]?.key : fe.value === X0 || pe.value.list.some((e) => e.key === fe.value) ? fe.value : pe.value.list[0]?.key), he = Z(() => !re.value || me.value === X0 ? re.value : {
53898
53903
  ...re.value,
53899
53904
  executions: re.value.executions.filter((e) => pe.value.of.get(`${e.source}:${e.id}`) === me.value)
53900
53905
  });
53901
53906
  R(d, () => {
53902
- fe.value = J0;
53907
+ fe.value = Y0;
53903
53908
  });
53904
53909
  let ge = (e) => new Date(e).toLocaleString("zh-CN", {
53905
53910
  month: "numeric",
@@ -53909,13 +53914,13 @@ var O1 = {
53909
53914
  hour12: !1
53910
53915
  });
53911
53916
  function _e(e) {
53912
- let t = e.task ? `${e.task.replace(/\s+/g, " ").slice(0, X0)}${e.task.length > X0 ? "…" : ""}` : e.source === "discussion" ? "讨论" : "执行";
53917
+ let t = e.task ? `${e.task.replace(/\s+/g, " ").slice(0, Z0)}${e.task.length > Z0 ? "…" : ""}` : e.source === "discussion" ? "讨论" : "执行";
53913
53918
  return `${ge(e.start)} · ${t} · ${e.count} 次${e.running ? " · 进行中" : e.failed ? " · 有失败" : ""}`;
53914
53919
  }
53915
53920
  let M = Z(() => [
53916
53921
  {
53917
53922
  label: "最近一轮(自动跟随)",
53918
- value: J0
53923
+ value: Y0
53919
53924
  },
53920
53925
  ...pe.value.list.map((e) => ({
53921
53926
  label: _e(e),
@@ -53923,9 +53928,9 @@ var O1 = {
53923
53928
  })),
53924
53929
  {
53925
53930
  label: "全部执行",
53926
- value: Y0
53931
+ value: X0
53927
53932
  }
53928
- ]), N = Z(() => he.value ? f1(he.value, h.value) : []), ve = Z(() => N.value.some((e) => e.item.state === "running")), ye = Z(() => {
53933
+ ]), N = Z(() => he.value ? p1(he.value, h.value) : []), ve = Z(() => N.value.some((e) => e.item.state === "running")), ye = Z(() => {
53929
53934
  let e = Math.min(...N.value.map((e) => e.start)), t = Math.max(...N.value.map((e) => e.end));
53930
53935
  return Number.isFinite(e) ? {
53931
53936
  start: e,
@@ -53936,17 +53941,17 @@ var O1 = {
53936
53941
  end: 0,
53937
53942
  duration: 0
53938
53943
  };
53939
- }), be = Z(() => O.position !== null && !ve.value), xe = Z(() => be.value ? ye.value.start + O.position : h.value), Se = Z(() => be.value ? f1(u1(he.value, xe.value, _.value), xe.value) : N.value), Ce = Z(() => Se.value.filter((e) => !e.ancestors.some((e) => g.value.has(e)))), we = Z(() => Se.value.some((e) => e.item.state === "running")), Te = Z(() => v1(Se.value, we.value)), Ee = {
53944
+ }), be = Z(() => O.position !== null && !ve.value), xe = Z(() => be.value ? ye.value.start + O.position : h.value), Se = Z(() => be.value ? p1(d1(he.value, xe.value, _.value), xe.value) : N.value), Ce = Z(() => Se.value.filter((e) => !e.ancestors.some((e) => g.value.has(e)))), we = Z(() => Se.value.some((e) => e.item.state === "running")), Te = Z(() => y1(Se.value, we.value)), Ee = {
53940
53945
  from: 0,
53941
53946
  span: 1
53942
53947
  }, De = /* @__PURE__ */ F(Ee), Oe = Z(() => De.value.span < 1);
53943
53948
  R([me, d], () => {
53944
53949
  De.value = Ee;
53945
53950
  });
53946
- let ke = Z(() => w1(Te.value, De.value)), Ae = Z(() => {
53951
+ let ke = Z(() => T1(Te.value, De.value)), Ae = Z(() => {
53947
53952
  let e = we.value ? ke.value.x(xe.value) : null;
53948
53953
  return e === null || e < 0 || e > 1 ? null : e;
53949
- }), je = Z(() => Math.max(1, ye.value.duration / z0)), Me = Z(() => [{
53954
+ }), je = Z(() => Math.max(1, ye.value.duration / B0)), Me = Z(() => [{
53950
53955
  label: `自动 · ${Math.round(je.value)}×`,
53951
53956
  value: 0
53952
53957
  }, ...o.map((e) => ({
@@ -53956,7 +53961,7 @@ var O1 = {
53956
53961
  function Pe(e) {
53957
53962
  let t = ee ? Math.min(e - ee, 250) : 0;
53958
53963
  ee = e;
53959
- let n = Se.value.length <= R0 || e - D >= L0;
53964
+ let n = Se.value.length <= z0 || e - D >= R0;
53960
53965
  O.playing && (te += t * Ne.value, te >= ye.value.duration ? Object.assign(O, {
53961
53966
  position: null,
53962
53967
  playing: !1
@@ -54009,15 +54014,15 @@ var O1 = {
54009
54014
  let t = e.filter((e) => !Ve.has(e));
54010
54015
  t.forEach((e) => Ve.add(e)), t.length && (Be.value = /* @__PURE__ */ new Set([...Be.value, ...t]), setTimeout(() => {
54011
54016
  Be.value = new Set([...Be.value].filter((e) => !t.includes(e)));
54012
- }, B0));
54017
+ }, V0));
54013
54018
  }), R([me, d], () => {
54014
54019
  Ve = null;
54015
54020
  });
54016
- let Ue = Z(() => h1(Ce.value, ke.value)), We = Z(() => x1(Te.value, Math.min(G0, Math.max(W0, Math.round((l.value || 540) / U0))), De.value).map((e) => ({
54021
+ let Ue = Z(() => g1(Ce.value, ke.value)), We = Z(() => S1(Te.value, Math.min(K0, Math.max(G0, Math.round((l.value || 540) / W0))), De.value).map((e) => ({
54017
54022
  ...e,
54018
54023
  x: (e.x - De.value.from) / De.value.span
54019
- }))), Ge = Z(() => D1(Se.value, xe.value)), Ke = Z(() => Se.value.filter((e) => e.has_children).map((e) => e.key)), qe = Z(() => Se.value.find((e) => e.key === y.value)), Je = Z(() => qe.value ? l1(qe.value, _.value.get(qe.value.item.id)) : []), Ye = Z(() => {
54020
- let e = Se.value, t = new Set(e.flatMap((e) => e.segments.map((e) => t1[e.phase])));
54024
+ }))), Ge = Z(() => O1(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 ? u1(qe.value, _.value.get(qe.value.item.id)) : []), Ye = Z(() => {
54025
+ let e = Se.value, t = new Set(e.flatMap((e) => e.segments.map((e) => n1[e.phase])));
54021
54026
  return [
54022
54027
  ...e.some((e) => e.queue[1] > e.queue[0]) ? [["queue", "排队"]] : [],
54023
54028
  ...e.some((e) => e.wake) ? [["wake", "唤醒"]] : [],
@@ -54030,10 +54035,10 @@ var O1 = {
54030
54035
  ];
54031
54036
  }), Xe = Z(() => Se.value.length > 0 && Se.value.every((e) => !e.segments.length)), Ze = Z(() => {
54032
54037
  let e = /* @__PURE__ */ new Map();
54033
- for (let t of [...Se.value].sort((e, t) => e.start - t.start)) e.has(t.item.member) || e.set(t.item.member, e.size % Z0 + 1);
54038
+ 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 % Q0 + 1);
54034
54039
  return e;
54035
54040
  }), Qe = Z(() => {
54036
- let e = Q0 / (l.value || 800), t = [];
54041
+ let e = $0 / (l.value || 800), t = [];
54037
54042
  for (let n of ke.value.folds) {
54038
54043
  let r = n.from + n.width / 2;
54039
54044
  r < 0 || r > 1 || (!t.length || r - t.at(-1).middle >= e) && t.push({
@@ -54043,12 +54048,12 @@ var O1 = {
54043
54048
  }
54044
54049
  return t;
54045
54050
  }), $e = Z(() => {
54046
- let e = Q0 / (l.value || 800);
54051
+ let e = $0 / (l.value || 800);
54047
54052
  return We.value.filter((t) => !Qe.value.some((n) => Math.abs(t.x - n.middle) < e));
54048
54053
  });
54049
54054
  function et(e, t) {
54050
54055
  if (y.value = y.value === e.key ? "" : e.key, !y.value) return;
54051
- let n = t.currentTarget.getBoundingClientRect(), r = x.value.getBoundingClientRect(), i = Math.min(K0, r.width - 16);
54056
+ let n = t.currentTarget.getBoundingClientRect(), r = x.value.getBoundingClientRect(), i = Math.min(q0, r.width - 16);
54052
54057
  b.value = {
54053
54058
  top: n.bottom - r.top + 4,
54054
54059
  left: Math.max(8, Math.min(n.left - r.left, r.width - i - 8))
@@ -54075,15 +54080,15 @@ var O1 = {
54075
54080
  function it(e) {
54076
54081
  return [...e.item.source === "discussion" ? ["讨论"] : [], ...e.item.role === "host" ? ["主持"] : []];
54077
54082
  }
54078
- let at = (e) => c1(e, xe.value);
54083
+ let at = (e) => l1(e, xe.value);
54079
54084
  function ot(e) {
54080
54085
  let t = [
54081
54086
  i.display_name(e.item.member),
54082
54087
  rt(e),
54083
- n1[e.item.state],
54084
- `用时 ${a1(e.end - e.start)}`
54088
+ r1[e.item.state],
54089
+ `用时 ${o1(e.end - e.start)}`
54085
54090
  ];
54086
- return e.wake && t.push(`唤醒 ${a1(e.wake[1] - e.wake[0])}${e.wake_approx ? "(约)" : ""}`), !e.segments.length && e.work && t.push("无阶段明细"), e.notes.length && t.push(`${e.notes.length} 段过程说明`), t.join(",");
54091
+ return e.wake && t.push(`唤醒 ${o1(e.wake[1] - e.wake[0])}${e.wake_approx ? "(约)" : ""}`), !e.segments.length && e.work && t.push("无阶段明细"), e.notes.length && t.push(`${e.notes.length} 段过程说明`), t.join(",");
54087
54092
  }
54088
54093
  async function st(e) {
54089
54094
  let t = e.item.id;
@@ -54107,7 +54112,7 @@ var O1 = {
54107
54112
  let i = e.currentTarget.getBoundingClientRect(), a = n.note ? {
54108
54113
  notes: [n.note],
54109
54114
  earlier: !1
54110
- } : d1(t.notes, n.start, n.end), o = Math.min(360, window.innerWidth - 16), s = i.bottom + 6, c = s + 160 > window.innerHeight && i.top > 200 ? Math.max(8, i.top - 6 - 200) : s;
54115
+ } : f1(t.notes, n.start, n.end), o = Math.min(360, window.innerWidth - 16), s = i.bottom + 6, c = s + 160 > window.innerHeight && i.top > 200 ? Math.max(8, i.top - 6 - 200) : s;
54111
54116
  v.value = {
54112
54117
  key: t.key,
54113
54118
  id: dt(t, n),
@@ -54131,7 +54136,7 @@ var O1 = {
54131
54136
  }
54132
54137
  let ht = Z(() => {
54133
54138
  let e = v.value?.piece;
54134
- return e ? e.note ? `过程说明 · ${ct(e.note.at)}` : `${e.kind === "segment" ? `${e1[e.phase]}${e.tool ? ` · ${e.tool}` : ""}` : e.label} · ${a1(e.end - e.start)}${e.live ? " · 进行中" : ""}` : "";
54139
+ return e ? e.note ? `过程说明 · ${ct(e.note.at)}` : `${e.kind === "segment" ? `${t1[e.phase]}${e.tool ? ` · ${e.tool}` : ""}` : e.label} · ${o1(e.end - e.start)}${e.live ? " · 进行中" : ""}` : "";
54135
54140
  }), gt = Z(() => {
54136
54141
  if (!v.value) return [];
54137
54142
  let e = _.value.get(v.value.row.item.id);
@@ -54142,17 +54147,17 @@ var O1 = {
54142
54147
  });
54143
54148
  return (e, t) => {
54144
54149
  let r = bH, o = sA, s = pA;
54145
- return U(), W("section", O1, [
54150
+ return U(), W("section", k1, [
54146
54151
  t[30] ||= K("div", { class: "page-heading" }, [K("div", null, [K("h2", null, "执行时间线"), K("p", null, "本机接入程序唤醒的每次执行;点名字看详情,悬停条形看当时的过程说明。")])], -1),
54147
- m.value ? (U(), W("p", k1, P(m.value), 1)) : Y("", !0),
54148
- re.value && !Se.value.length ? (U(), W("p", A1, "还没有执行记录。")) : Y("", !0),
54152
+ m.value ? (U(), W("p", A1, P(m.value), 1)) : Y("", !0),
54153
+ re.value && !Se.value.length ? (U(), W("p", j1, "还没有执行记录。")) : Y("", !0),
54149
54154
  Se.value.length ? (U(), W("div", {
54150
54155
  key: 2,
54151
54156
  ref_key: "wf_element",
54152
54157
  ref: x,
54153
54158
  class: "wf"
54154
54159
  }, [
54155
- K("header", j1, [
54160
+ K("header", M1, [
54156
54161
  t[12] ||= K("span", { class: "wf-title" }, "执行瀑布", -1),
54157
54162
  q(r, {
54158
54163
  modelValue: fe.value,
@@ -54171,17 +54176,17 @@ var O1 = {
54171
54176
  trailingIcon: "wf-select-icon"
54172
54177
  }
54173
54178
  }, null, 8, ["modelValue", "items"]),
54174
- be.value ? (U(), W("span", M1, "回放中 · " + P(ct(xe.value)), 1)) : (U(), W("span", {
54179
+ be.value ? (U(), W("span", N1, "回放中 · " + P(ct(xe.value)), 1)) : (U(), W("span", {
54175
54180
  key: 1,
54176
54181
  class: j(["wf-state", { "is-live": Ge.value.running }])
54177
54182
  }, P(Ge.value.running ? `${Ge.value.running} 个进行中` : "均已结束"), 3)),
54178
- Ge.value.slowest ? (U(), W("span", N1, [
54183
+ Ge.value.slowest ? (U(), W("span", P1, [
54179
54184
  t[11] ||= J("最慢一步 ", -1),
54180
- K("b", null, [J(P(I(i).display_name(Ge.value.slowest.member)) + " · " + P(I(e1)[Ge.value.slowest.phase]), 1), Ge.value.slowest.tool ? (U(), W(H, { key: 0 }, [J(P(Ge.value.slowest.tool), 1)], 64)) : Y("", !0)]),
54181
- J(" · " + P(I(a1)(Ge.value.slowest.end - Ge.value.slowest.start)), 1)
54185
+ K("b", null, [J(P(I(i).display_name(Ge.value.slowest.member)) + " · " + P(I(t1)[Ge.value.slowest.phase]), 1), Ge.value.slowest.tool ? (U(), W(H, { key: 0 }, [J(P(Ge.value.slowest.tool), 1)], 64)) : Y("", !0)]),
54186
+ J(" · " + P(I(o1)(Ge.value.slowest.end - Ge.value.slowest.start)), 1)
54182
54187
  ])) : Y("", !0)
54183
54188
  ]),
54184
- K("dl", P1, [
54189
+ K("dl", F1, [
54185
54190
  K("div", null, [t[13] ||= K("dt", null, "执行", -1), K("dd", null, [(U(), W("span", {
54186
54191
  key: Ge.value.executions,
54187
54192
  class: "wf-roll"
@@ -54197,17 +54202,17 @@ var O1 = {
54197
54202
  K("div", { title: `超过 ${a} 分钟没有输出` }, [t[16] ||= K("dt", null, "可能卡住", -1), K("dd", { class: j(Ge.value.stalled ? "is-warn" : "is-zero") }, [(U(), W("span", {
54198
54203
  key: Ge.value.stalled,
54199
54204
  class: "wf-roll"
54200
- }, P(Ge.value.stalled), 1))], 2)], 8, F1),
54201
- K("div", { title: Te.value.folds.length ? `已折叠 ${Te.value.folds.length} 段超过 ${I(r1) / 6e4} 分钟的空闲` : void 0 }, [t[17] ||= K("dt", null, "有效时长", -1), K("dd", null, P(I(a1)(Te.value.busy_ms)), 1)], 8, I1),
54202
- K("div", L1, [t[19] ||= K("dt", null, "工具与命令", -1), K("dd", { class: j({ "is-zero": !Ge.value.tool_segments }) }, [(U(), W("span", {
54205
+ }, P(Ge.value.stalled), 1))], 2)], 8, I1),
54206
+ K("div", { title: Te.value.folds.length ? `已折叠 ${Te.value.folds.length} 段超过 ${I(i1) / 6e4} 分钟的空闲` : void 0 }, [t[17] ||= K("dt", null, "有效时长", -1), K("dd", null, P(I(o1)(Te.value.busy_ms)), 1)], 8, L1),
54207
+ K("div", R1, [t[19] ||= K("dt", null, "工具与命令", -1), K("dd", { class: j({ "is-zero": !Ge.value.tool_segments }) }, [(U(), W("span", {
54203
54208
  key: Ge.value.tool_segments,
54204
54209
  class: "wf-roll"
54205
54210
  }, P(Ge.value.tool_segments), 1)), t[18] ||= J(" 段", -1)], 2)])
54206
54211
  ]),
54207
- K("ul", R1, [
54212
+ K("ul", z1, [
54208
54213
  (U(!0), W(H, null, B(Ye.value, ([e, t]) => (U(), W("li", { key: e }, [K("i", { class: j(["wf-swatch", `is-${e}`]) }, null, 2), J(P(t), 1)]))), 128)),
54209
- Ze.value.size > 1 ? (U(), W("li", z1, "颜色区分成员,深浅区分模型与工具")) : Y("", !0),
54210
- Xe.value ? (U(), W("li", B1, "这些执行都没有阶段明细:发生在接入程序上报阶段之前,或来自手动接入、在线 AI、Codex App")) : Y("", !0)
54214
+ Ze.value.size > 1 ? (U(), W("li", B1, "颜色区分成员,深浅区分模型与工具")) : Y("", !0),
54215
+ Xe.value ? (U(), W("li", V1, "这些执行都没有阶段明细:发生在接入程序上报阶段之前,或来自手动接入、在线 AI、Codex App")) : Y("", !0)
54211
54216
  ]),
54212
54217
  K("div", {
54213
54218
  class: j(["wf-grid", {
@@ -54215,7 +54220,7 @@ var O1 = {
54215
54220
  "is-panning": I(ie)
54216
54221
  }]),
54217
54222
  role: "list",
54218
- style: A({ "--wf-depth-px": `${H0}px` }),
54223
+ style: A({ "--wf-depth-px": `${U0}px` }),
54219
54224
  onWheel: oe,
54220
54225
  onMousedown: le,
54221
54226
  onPointerdown: k,
@@ -54223,14 +54228,14 @@ var O1 = {
54223
54228
  onPointerup: ce,
54224
54229
  onPointercancel: ce
54225
54230
  }, [
54226
- K("div", V1, [
54231
+ K("div", H1, [
54227
54232
  K("span", null, "执行 · " + P(Ce.value.length) + "/" + P(Se.value.length), 1),
54228
- Oe.value ? (U(), W("span", H1, [J("放大 " + P((1 / De.value.span).toFixed(1)) + "×", 1), K("button", {
54233
+ Oe.value ? (U(), W("span", U1, [J("放大 " + P((1 / De.value.span).toFixed(1)) + "×", 1), K("button", {
54229
54234
  type: "button",
54230
54235
  class: "wf-text-button",
54231
54236
  onClick: t[1] ||= (e) => De.value = Ee
54232
- }, "重置")])) : (U(), W("span", U1, "Ctrl + 滚轮缩放")),
54233
- Ke.value.length ? (U(), W("span", W1, [K("button", {
54237
+ }, "重置")])) : (U(), W("span", W1, "Ctrl + 滚轮缩放")),
54238
+ Ke.value.length ? (U(), W("span", G1, [K("button", {
54234
54239
  type: "button",
54235
54240
  class: "wf-text-button",
54236
54241
  onClick: t[2] ||= (e) => g.value = /* @__PURE__ */ new Set()
@@ -54257,7 +54262,7 @@ var O1 = {
54257
54262
  class: "wf-fold-label",
54258
54263
  style: A({ left: `${e.middle * 100}%` }),
54259
54264
  title: `${ct(e.start)} – ${ct(e.end)} 没有执行,已折叠`
54260
- }, "⋯ " + P(I(a1)(e.end - e.start)), 13, G1))), 128)),
54265
+ }, "⋯ " + P(I(o1)(e.end - e.start)), 13, K1))), 128)),
54261
54266
  Ae.value === null ? Y("", !0) : (U(), W("span", {
54262
54267
  key: 0,
54263
54268
  class: "wf-cursor-head",
@@ -54277,7 +54282,7 @@ var O1 = {
54277
54282
  class: "wf-label",
54278
54283
  style: A({ "--depth": e.depth })
54279
54284
  }, [
54280
- e.depth ? (U(), W("span", K1)) : Y("", !0),
54285
+ e.depth ? (U(), W("span", q1)) : Y("", !0),
54281
54286
  e.has_children ? (U(), W("button", {
54282
54287
  key: 1,
54283
54288
  type: "button",
@@ -54285,7 +54290,7 @@ var O1 = {
54285
54290
  "aria-expanded": !g.value.has(e.key),
54286
54291
  "aria-label": `${g.value.has(e.key) ? "展开" : "收起"} ${I(i).display_name(e.item.member)} 派出的执行`,
54287
54292
  onClick: (t) => tt(e.key)
54288
- }, [q(o, { name: "i-lucide-chevron-right" })], 10, q1)) : (U(), W("span", J1)),
54293
+ }, [q(o, { name: "i-lucide-chevron-right" })], 10, J1)) : (U(), W("span", Y1)),
54289
54294
  q(s, {
54290
54295
  src: I(i).identities[e.item.member]?.icon,
54291
54296
  text: I(i).identities[e.item.member]?.initials,
@@ -54304,29 +54309,29 @@ var O1 = {
54304
54309
  "aria-expanded": y.value === e.key,
54305
54310
  onClick: (t) => et(e, t),
54306
54311
  onMouseenter: (t) => ft(t, e, {
54307
- label: I(n1)[e.item.state],
54312
+ label: I(r1)[e.item.state],
54308
54313
  start: e.start,
54309
54314
  end: e.end,
54310
54315
  text: at(e).text,
54311
54316
  live: e.item.state === "running"
54312
54317
  }),
54313
54318
  onMouseleave: (t) => mt(e)
54314
- }, [K("span", X1, [
54315
- e.item.state === "running" ? (U(), W("i", Z1)) : Y("", !0),
54319
+ }, [K("span", Z1, [
54320
+ e.item.state === "running" ? (U(), W("i", Q1)) : Y("", !0),
54316
54321
  K("strong", null, P(I(i).display_name(e.item.member)), 1),
54317
54322
  (U(!0), W(H, null, B(it(e), (e) => (U(), W("em", {
54318
54323
  key: e,
54319
54324
  class: "wf-pill is-role"
54320
54325
  }, P(e), 1))), 128)),
54321
- Ge.value.slowest?.row === e.key ? (U(), W("em", Q1, "最慢")) : Y("", !0)
54322
- ]), K("span", { class: j(["wf-status", `is-${at(e).tone}`]) }, [at(e).tone === "live" ? (U(), W("i", $1)) : Y("", !0), J(P(at(e).text), 1)], 2)], 40, Y1)
54326
+ Ge.value.slowest?.row === e.key ? (U(), W("em", $1, "最慢")) : Y("", !0)
54327
+ ]), K("span", { class: j(["wf-status", `is-${at(e).tone}`]) }, [at(e).tone === "live" ? (U(), W("i", e0)) : Y("", !0), J(P(at(e).text), 1)], 2)], 40, X1)
54323
54328
  ], 4),
54324
54329
  K("div", {
54325
54330
  class: "wf-lane",
54326
54331
  role: "img",
54327
54332
  "aria-label": ot(e),
54328
54333
  onMouseleave: (t) => mt(e)
54329
- }, [K("div", t0, [
54334
+ }, [K("div", n0, [
54330
54335
  (U(!0), W(H, null, B($e.value, (e) => (U(), W("i", {
54331
54336
  key: e.at,
54332
54337
  class: "wf-gridline",
@@ -54346,7 +54351,7 @@ var O1 = {
54346
54351
  class: j(["wf-link", `is-${e.part}`]),
54347
54352
  "data-tone": Ze.value.get(e.member),
54348
54353
  style: A({ left: `${e.x * 100}%` })
54349
- }, null, 14, n0))), 128)),
54354
+ }, null, 14, r0))), 128)),
54350
54355
  Ae.value === null ? Y("", !0) : (U(), W("i", {
54351
54356
  key: 0,
54352
54357
  class: "wf-cursor",
@@ -54365,7 +54370,7 @@ var O1 = {
54365
54370
  start: e.queue[0],
54366
54371
  end: e.queue[1]
54367
54372
  })
54368
- }, null, 44, r0),
54373
+ }, null, 44, i0),
54369
54374
  e.wake ? (U(), W("i", {
54370
54375
  key: 1,
54371
54376
  class: "wf-bar is-wake",
@@ -54380,7 +54385,7 @@ var O1 = {
54380
54385
  start: e.wake[0],
54381
54386
  end: e.wake[1]
54382
54387
  })
54383
- }, null, 44, i0)) : Y("", !0),
54388
+ }, null, 44, a0)) : Y("", !0),
54384
54389
  e.work ? (U(), W("i", {
54385
54390
  key: 2,
54386
54391
  class: j(["wf-bar is-work", { "has-detail": e.segments.length }]),
@@ -54398,9 +54403,9 @@ var O1 = {
54398
54403
  end: e.work[1],
54399
54404
  live: e.item.state === "running"
54400
54405
  })
54401
- }, null, 46, a0)) : Y("", !0),
54406
+ }, null, 46, o0)) : Y("", !0),
54402
54407
  (U(!0), W(H, null, B(e.segments, (t) => (U(), W(H, { key: t.start + t.phase }, [K("i", {
54403
- class: j(["wf-bar wf-seg", [`is-${I(t1)[t.phase]}`, { "is-live": t.live }]]),
54408
+ class: j(["wf-bar wf-seg", [`is-${I(n1)[t.phase]}`, { "is-live": t.live }]]),
54404
54409
  "data-tone": Ze.value.get(e.item.member),
54405
54410
  style: A(nt(t.start, t.seen, !0)),
54406
54411
  onMouseenter: (n) => ft(n, e, {
@@ -54411,9 +54416,9 @@ var O1 = {
54411
54416
  kind: "segment",
54412
54417
  ...t
54413
54418
  })
54414
- }, null, 46, o0), t.end > t.seen ? (U(), W("i", {
54419
+ }, null, 46, s0), t.end > t.seen ? (U(), W("i", {
54415
54420
  key: 0,
54416
- class: j(["wf-bar wf-seg is-tail", `is-${I(t1)[t.phase]}`]),
54421
+ class: j(["wf-bar wf-seg is-tail", `is-${I(n1)[t.phase]}`]),
54417
54422
  "data-tone": Ze.value.get(e.item.member),
54418
54423
  style: A(nt(t.seen, t.end)),
54419
54424
  onMouseenter: (n) => ft(n, e, {
@@ -54424,7 +54429,7 @@ var O1 = {
54424
54429
  kind: "segment",
54425
54430
  ...t
54426
54431
  })
54427
- }, null, 46, s0)) : Y("", !0)], 64))), 128)),
54432
+ }, null, 46, c0)) : Y("", !0)], 64))), 128)),
54428
54433
  (U(!0), W(H, null, B(e.notes, (t) => (U(), W("button", {
54429
54434
  key: `note-${t.index}`,
54430
54435
  type: "button",
@@ -54447,15 +54452,15 @@ var O1 = {
54447
54452
  end: t.at
54448
54453
  }),
54449
54454
  onBlur: (t) => mt(e)
54450
- }, null, 44, c0))), 128))
54451
- ])], 40, e0),
54452
- K("span", l0, [
54453
- J(P(I(a1)(e.end - e.start)) + P(e.wake_approx && e.wake ? "~" : ""), 1),
54455
+ }, null, 44, l0))), 128))
54456
+ ])], 40, t0),
54457
+ K("span", u0, [
54458
+ J(P(I(o1)(e.end - e.start)) + P(e.wake_approx && e.wake ? "~" : ""), 1),
54454
54459
  e.item.state === "done" ? Y("", !0) : (U(), W("small", {
54455
54460
  key: 0,
54456
54461
  class: j(`is-${e.item.state}`)
54457
- }, P(I(n1)[e.item.state]), 3)),
54458
- e.truncated ? (U(), W("small", u0, "明细已截断")) : Y("", !0)
54462
+ }, P(I(r1)[e.item.state]), 3)),
54463
+ e.truncated ? (U(), W("small", d0, "明细已截断")) : Y("", !0)
54459
54464
  ])
54460
54465
  ], 2))), 128))
54461
54466
  ], 38),
@@ -54469,9 +54474,9 @@ var O1 = {
54469
54474
  left: `${b.value.left}px`
54470
54475
  })
54471
54476
  }, [
54472
- K("header", f0, [
54477
+ K("header", p0, [
54473
54478
  K("strong", null, P(I(i).display_name(qe.value.item.member)), 1),
54474
- K("small", null, P(rt(qe.value)) + " · " + P(I(n1)[qe.value.item.state]) + " · " + P(I(a1)(qe.value.end - qe.value.start)), 1),
54479
+ K("small", null, P(rt(qe.value)) + " · " + P(I(r1)[qe.value.item.state]) + " · " + P(I(o1)(qe.value.end - qe.value.start)), 1),
54475
54480
  K("button", {
54476
54481
  type: "button",
54477
54482
  class: "wf-card-close",
@@ -54480,47 +54485,47 @@ var O1 = {
54480
54485
  }, [q(o, { name: "i-lucide-x" })])
54481
54486
  ]),
54482
54487
  K("dl", null, [
54483
- qe.value.item.task ? (U(), W("div", p0, [t[22] ||= K("dt", null, "任务", -1), K("dd", null, [J(P(qe.value.item.task), 1), qe.value.item.task_id ? (U(), W("button", {
54488
+ qe.value.item.task ? (U(), W("div", m0, [t[22] ||= K("dt", null, "任务", -1), K("dd", null, [J(P(qe.value.item.task), 1), qe.value.item.task_id ? (U(), W("button", {
54484
54489
  key: 0,
54485
54490
  type: "button",
54486
54491
  class: "subtle-link",
54487
54492
  onClick: t[6] ||= (e) => n("detail", qe.value.item.task_id)
54488
54493
  }, "#" + P(qe.value.item.task_id), 1)) : Y("", !0)])])) : Y("", !0),
54489
- qe.value.item.state === "failed" ? (U(), W("div", m0, [t[23] ||= K("dt", null, "失败原因", -1), K("dd", h0, P(qe.value.item.reason || "执行失败"), 1)])) : qe.value.item.result || qe.value.item.answer_id ? (U(), W("div", g0, [t[24] ||= K("dt", null, "结果", -1), K("dd", null, [J(P(qe.value.item.result), 1), qe.value.item.answer_id ? (U(), W("button", {
54494
+ qe.value.item.state === "failed" ? (U(), W("div", h0, [t[23] ||= K("dt", null, "失败原因", -1), K("dd", g0, P(qe.value.item.reason || "执行失败"), 1)])) : qe.value.item.result || qe.value.item.answer_id ? (U(), W("div", _0, [t[24] ||= K("dt", null, "结果", -1), K("dd", null, [J(P(qe.value.item.result), 1), qe.value.item.answer_id ? (U(), W("button", {
54490
54495
  key: 0,
54491
54496
  type: "button",
54492
54497
  class: "subtle-link",
54493
54498
  onClick: t[7] ||= (e) => n("detail", qe.value.item.answer_id)
54494
54499
  }, "在消息中查看 #" + P(qe.value.item.answer_id), 1)) : Y("", !0)])])) : Y("", !0),
54495
- qe.value.item.changes ? (U(), W("div", _0, [t[25] ||= K("dt", null, "改动", -1), K("dd", null, P(qe.value.item.changes) + " 个文件", 1)])) : Y("", !0)
54500
+ qe.value.item.changes ? (U(), W("div", v0, [t[25] ||= K("dt", null, "改动", -1), K("dd", null, P(qe.value.item.changes) + " 个文件", 1)])) : Y("", !0)
54496
54501
  ]),
54497
- Je.value.length ? (U(), W("ol", v0, [(U(!0), W(H, null, B(Je.value, (e) => (U(), W("li", {
54502
+ Je.value.length ? (U(), W("ol", y0, [(U(!0), W(H, null, B(Je.value, (e) => (U(), W("li", {
54498
54503
  key: `${e.kind}-${e.at}-${e.phase || ""}`,
54499
54504
  class: j(`log-${e.kind}`)
54500
54505
  }, [K("time", null, P(ct(e.at)), 1), e.kind === "phase" ? (U(), W(H, { key: 0 }, [K("i", {
54501
- class: j(["wf-swatch", `is-${I(t1)[e.phase]}`]),
54506
+ class: j(["wf-swatch", `is-${I(n1)[e.phase]}`]),
54502
54507
  "data-tone": Ze.value.get(qe.value.item.member),
54503
54508
  "aria-hidden": "true"
54504
- }, null, 10, y0), K("span", null, [
54505
- J(P(I(e1)[e.phase]), 1),
54509
+ }, null, 10, b0), K("span", null, [
54510
+ J(P(I(t1)[e.phase]), 1),
54506
54511
  e.tool ? (U(), W(H, { key: 0 }, [J(" · " + P(e.tool), 1)], 64)) : Y("", !0),
54507
- J(" · " + P(e.live ? "进行中" : I(a1)(e.duration)), 1)
54508
- ])], 64)) : (U(), W("span", b0, P(e.text), 1))], 2))), 128))])) : (U(), W("p", x0, "这次执行没有阶段明细或过程说明。"))
54509
- ], 12, d0)) : Y("", !0),
54510
- me.value === Y0 ? (U(), W("div", S0, [...t[26] ||= [K("span", { class: "wf-player-note" }, "回放按轮进行:在上方选一轮即可回放", -1)]])) : (U(), W("div", C0, [ve.value ? (U(), W(H, { key: 0 }, [t[27] ||= K("span", { class: "wf-state is-live" }, "实时", -1), t[28] ||= K("span", { class: "wf-player-note" }, "这一轮结束后可以回放", -1)], 64)) : (U(), W(H, { key: 1 }, [
54512
+ J(" · " + P(e.live ? "进行中" : I(o1)(e.duration)), 1)
54513
+ ])], 64)) : (U(), W("span", x0, P(e.text), 1))], 2))), 128))])) : (U(), W("p", S0, "这次执行没有阶段明细或过程说明。"))
54514
+ ], 12, f0)) : Y("", !0),
54515
+ me.value === X0 ? (U(), W("div", C0, [...t[26] ||= [K("span", { class: "wf-player-note" }, "回放按轮进行:在上方选一轮即可回放", -1)]])) : (U(), W("div", w0, [ve.value ? (U(), W(H, { key: 0 }, [t[27] ||= K("span", { class: "wf-state is-live" }, "实时", -1), t[28] ||= K("span", { class: "wf-player-note" }, "这一轮结束后可以回放", -1)], 64)) : (U(), W(H, { key: 1 }, [
54511
54516
  K("button", {
54512
54517
  type: "button",
54513
54518
  class: "wf-player-button",
54514
54519
  "aria-label": O.playing ? "暂停回放" : "回放这一轮",
54515
54520
  onClick: t[8] ||= (e) => O.playing ? Le() : Fe()
54516
- }, [q(o, { name: O.playing ? "i-lucide-pause" : "i-lucide-play" }, null, 8, ["name"])], 8, w0),
54521
+ }, [q(o, { name: O.playing ? "i-lucide-pause" : "i-lucide-play" }, null, 8, ["name"])], 8, T0),
54517
54522
  K("button", {
54518
54523
  type: "button",
54519
54524
  class: "wf-player-button",
54520
54525
  "aria-label": "从头回放",
54521
54526
  disabled: !be.value,
54522
54527
  onClick: Re
54523
- }, [q(o, { name: "i-lucide-rotate-ccw" })], 8, T0),
54528
+ }, [q(o, { name: "i-lucide-rotate-ccw" })], 8, E0),
54524
54529
  q(r, {
54525
54530
  modelValue: O.speed,
54526
54531
  "onUpdate:modelValue": t[9] ||= (e) => O.speed = e,
@@ -54547,13 +54552,13 @@ var O1 = {
54547
54552
  value: be.value ? O.position : ye.value.duration,
54548
54553
  "aria-label": "回放位置",
54549
54554
  onInput: ze
54550
- }, null, 40, E0),
54551
- K("span", D0, P(I(a1)(be.value ? O.position : ye.value.duration)) + " / " + P(I(a1)(ye.value.duration)), 1)
54555
+ }, null, 40, D0),
54556
+ K("span", O0, P(I(o1)(be.value ? O.position : ye.value.duration)) + " / " + P(I(o1)(ye.value.duration)), 1)
54552
54557
  ], 64))])),
54553
- Te.value.folds.length || re.value.executions.length >= re.value.execution_limit ? (U(), W("footer", O0, [Te.value.folds.length ? (U(), W("span", k0, [t[29] ||= K("i", {
54558
+ Te.value.folds.length || re.value.executions.length >= re.value.execution_limit ? (U(), W("footer", k0, [Te.value.folds.length ? (U(), W("span", A0, [t[29] ||= K("i", {
54554
54559
  class: "wf-swatch is-fold",
54555
54560
  "aria-hidden": "true"
54556
- }, null, -1), J("已折叠 " + P(Te.value.folds.length) + " 段超过 " + P(I(r1) / 6e4) + " 分钟的空闲", 1)])) : Y("", !0), re.value.executions.length >= re.value.execution_limit ? (U(), W("span", A0, "只列出最近 " + P(re.value.execution_limit) + " 次讨论执行与 " + P(re.value.execution_limit) + " 次协作执行", 1)) : Y("", !0)])) : Y("", !0)
54561
+ }, null, -1), J("已折叠 " + P(Te.value.folds.length) + " 段超过 " + P(I(i1) / 6e4) + " 分钟的空闲", 1)])) : Y("", !0), re.value.executions.length >= re.value.execution_limit ? (U(), W("span", j0, "只列出最近 " + P(re.value.execution_limit) + " 次讨论执行与 " + P(re.value.execution_limit) + " 次协作执行", 1)) : Y("", !0)])) : Y("", !0)
54557
54562
  ], 512)) : Y("", !0),
54558
54563
  v.value ? (U(), W("div", {
54559
54564
  key: 3,
@@ -54573,79 +54578,79 @@ var O1 = {
54573
54578
  onClick: t[10] ||= (e) => v.value = null
54574
54579
  }, [q(o, { name: "i-lucide-x" })])) : Y("", !0),
54575
54580
  K("small", null, [J(P(ct(v.value.piece.start)), 1), v.value.piece.end > v.value.piece.start ? (U(), W(H, { key: 0 }, [J(" – " + P(v.value.piece.live ? "现在" : ct(v.value.piece.end)), 1)], 64)) : Y("", !0)]),
54576
- v.value.piece.text ? (U(), W("p", M0, P(v.value.piece.text), 1)) : v.value.row.item.reason ? (U(), W("p", N0, P(v.value.row.item.reason), 1)) : Y("", !0),
54577
- gt.value.length ? (U(), W(H, { key: 3 }, [K("small", P0, P(v.value.related.earlier ? "此前的过程说明" : "过程说明"), 1), K("ol", null, [(U(!0), W(H, null, B(gt.value, (e) => (U(), W("li", { key: e.at + e.text }, [K("time", null, P(ct(e.at)), 1), J(P(e.text), 1)]))), 128))])], 64)) : Y("", !0)
54578
- ], 14, j0)) : Y("", !0)
54581
+ v.value.piece.text ? (U(), W("p", N0, P(v.value.piece.text), 1)) : v.value.row.item.reason ? (U(), W("p", P0, P(v.value.row.item.reason), 1)) : Y("", !0),
54582
+ gt.value.length ? (U(), W(H, { key: 3 }, [K("small", F0, 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)
54583
+ ], 14, M0)) : Y("", !0)
54579
54584
  ]);
54580
54585
  };
54581
54586
  }
54582
- }, [["__scopeId", "data-v-ae571187"]]), e2 = {
54587
+ }, [["__scopeId", "data-v-ae571187"]]), t2 = {
54583
54588
  id: "channel-sidebar",
54584
54589
  class: "channel-sidebar",
54585
54590
  "aria-label": "房间导航"
54586
- }, t2 = { class: "channel-sidebar-content" }, n2 = { class: "channel-directory-heading channel-tools-heading" }, r2 = ["aria-expanded"], i2 = { class: "channel-sidebar-footer" }, a2 = ["aria-label"], o2 = { class: "channel-self" }, s2 = ["title"], c2 = [
54591
+ }, n2 = { class: "channel-sidebar-content" }, r2 = { class: "channel-directory-heading channel-tools-heading" }, i2 = ["aria-expanded"], a2 = { class: "channel-sidebar-footer" }, o2 = ["aria-label"], s2 = { class: "channel-self" }, c2 = ["title"], l2 = [
54587
54592
  "aria-valuemax",
54588
54593
  "aria-valuenow",
54589
54594
  "aria-valuetext"
54590
- ], l2 = { class: "channel-main" }, u2 = { class: "channel-header" }, d2 = { class: "channel-title-icon" }, f2 = { class: "channel-title" }, p2 = { class: "channel-title-copy" }, m2 = ["title"], h2 = {
54595
+ ], u2 = { class: "channel-main" }, d2 = { class: "channel-header" }, f2 = { class: "channel-title-icon" }, p2 = { class: "channel-title" }, m2 = { class: "channel-title-copy" }, h2 = ["title"], g2 = {
54591
54596
  key: 2,
54592
54597
  class: "channel-header-context"
54593
- }, g2 = { class: "channel-header-actions" }, _2 = {
54598
+ }, _2 = { class: "channel-header-actions" }, v2 = {
54594
54599
  key: 0,
54595
54600
  class: "channel-launch-recovery",
54596
54601
  "aria-label": "未完成的创建或启动请求"
54597
- }, v2 = { role: "status" }, y2 = { class: "button-row" }, b2 = {
54602
+ }, y2 = { role: "status" }, b2 = { class: "button-row" }, x2 = {
54598
54603
  key: 1,
54599
54604
  class: "channel-tabbar"
54600
- }, x2 = { class: "channel-brief-inner" }, S2 = { class: "channel-brief-heading" }, C2 = ["aria-label", "aria-expanded"], w2 = {
54605
+ }, S2 = { class: "channel-brief-inner" }, C2 = { class: "channel-brief-heading" }, w2 = ["aria-label", "aria-expanded"], T2 = {
54601
54606
  key: 0,
54602
54607
  class: "channel-brief-preview"
54603
- }, T2 = {
54608
+ }, E2 = {
54604
54609
  id: "channel-brief-content",
54605
54610
  class: "channel-brief-content"
54606
- }, E2 = ["innerHTML"], D2 = { class: "channel-brief-footer" }, O2 = { class: "channel-brief-status" }, k2 = { class: "channel-content" }, A2 = {
54611
+ }, D2 = ["innerHTML"], O2 = { class: "channel-brief-footer" }, k2 = { class: "channel-brief-status" }, A2 = { class: "channel-content" }, j2 = {
54607
54612
  key: 0,
54608
54613
  class: "content-page merged-page",
54609
54614
  role: "tabpanel",
54610
54615
  "aria-label": "讨论"
54611
- }, j2 = {
54616
+ }, M2 = {
54612
54617
  key: 1,
54613
54618
  class: "merged-section",
54614
54619
  "aria-label": "当前讨论"
54615
- }, M2 = { class: "page-heading" }, N2 = {
54620
+ }, N2 = { class: "page-heading" }, P2 = {
54616
54621
  key: 0,
54617
54622
  class: "fine-print"
54618
- }, P2 = {
54623
+ }, F2 = {
54619
54624
  class: "merged-section channel-summary",
54620
54625
  "aria-label": "当前共识"
54621
- }, F2 = { class: "page-heading" }, I2 = { class: "form-footer" }, L2 = { class: "button-row" }, R2 = { class: "consensus-card is-brief" }, z2 = ["innerHTML"], B2 = {
54626
+ }, I2 = { class: "page-heading" }, L2 = { class: "form-footer" }, R2 = { class: "button-row" }, z2 = { class: "consensus-card is-brief" }, B2 = ["innerHTML"], V2 = {
54622
54627
  key: 0,
54623
54628
  class: "consensus-card"
54624
- }, V2 = ["innerHTML"], H2 = {
54629
+ }, H2 = ["innerHTML"], U2 = {
54625
54630
  key: 2,
54626
54631
  class: "fine-print"
54627
- }, U2 = {
54632
+ }, W2 = {
54628
54633
  key: 1,
54629
54634
  class: "content-page merged-page",
54630
54635
  role: "tabpanel",
54631
54636
  "aria-label": "房间"
54632
- }, W2 = {
54637
+ }, G2 = {
54633
54638
  key: 2,
54634
54639
  class: "content-page merged-page",
54635
54640
  role: "tabpanel",
54636
54641
  "aria-label": "执行"
54637
- }, G2 = {
54642
+ }, K2 = {
54638
54643
  key: 1,
54639
54644
  class: "channel-empty"
54640
- }, K2 = ["aria-valuenow", "aria-valuetext"], q2 = {
54645
+ }, q2 = ["aria-valuenow", "aria-valuetext"], J2 = {
54641
54646
  key: 2,
54642
54647
  id: "channel-member-rail",
54643
54648
  class: "channel-member-rail",
54644
54649
  "aria-label": "当前焦点与讨论进度"
54645
- }, J2 = { class: "channel-rail-board" }, Y2 = {
54650
+ }, Y2 = { class: "channel-rail-board" }, X2 = {
54646
54651
  key: 1,
54647
54652
  class: "progress-board is-docked"
54648
- }, X2 = { class: "channel-detail-title" }, Z2 = { class: "info-section" }, Q2 = "ai-codiscuss-channel-layout", $2 = 220, e4 = 440, t4 = 280, n4 = 16, r4 = 180, i4 = 400, a4 = 248, o4 = 16, s4 = 480, c4 = 1200, l4 = 0, u4 = {
54653
+ }, Z2 = { class: "channel-detail-title" }, Q2 = { class: "info-section" }, $2 = "ai-codiscuss-channel-layout", e4 = 220, t4 = 440, n4 = 280, r4 = 16, i4 = 180, a4 = 400, o4 = 248, s4 = 16, c4 = 480, l4 = 1200, u4 = 0, d4 = {
54649
54654
  __name: "ChannelWorkspace",
54650
54655
  setup(e) {
54651
54656
  let { view: t, bridge: n, field: r, act: i, pending: a } = xr("discussion"), o = Z(() => t.value.room), s = /* @__PURE__ */ F(""), c = /* @__PURE__ */ F(null), l = /* @__PURE__ */ F(null), u = /* @__PURE__ */ F(null), d = /* @__PURE__ */ F(!1), f = /* @__PURE__ */ F(!0), p = /* @__PURE__ */ F(!1), m = r("state-input"), h = r("brief-input"), g = r("search-input"), _ = r("author-select"), v = [{
@@ -54667,14 +54672,14 @@ var O1 = {
54667
54672
  label: "宽",
54668
54673
  width: 1240
54669
54674
  }
54670
- }, b = Ne(), x = /* @__PURE__ */ F(b.reading), S = /* @__PURE__ */ F(b.effects), C = /* @__PURE__ */ F(b.rail), w = /* @__PURE__ */ F(b.nav), T = /* @__PURE__ */ F(typeof window > "u" ? 728 : window.innerWidth), E = /* @__PURE__ */ F(b.collapsed), ee = /* @__PURE__ */ F(!0), D = /* @__PURE__ */ F(b.rail_collapsed), O = Z(() => T.value >= c4), te = Z(() => O.value && !E.value), ne = Z(() => t.value.tab === "discussion" && !D.value), re = Z(() => O.value && t.value.tab === "discussion" ? D.value ? "展开房间概览" : "收起房间概览" : "房间资料与参与者"), ie = Z(() => {
54675
+ }, b = Ne(), x = /* @__PURE__ */ F(b.reading), S = /* @__PURE__ */ F(b.effects), C = /* @__PURE__ */ F(b.rail), w = /* @__PURE__ */ F(b.nav), T = /* @__PURE__ */ F(typeof window > "u" ? 728 : window.innerWidth), E = /* @__PURE__ */ F(b.collapsed), ee = /* @__PURE__ */ F(!0), D = /* @__PURE__ */ F(b.rail_collapsed), O = Z(() => T.value >= l4), te = Z(() => O.value && !E.value), ne = Z(() => t.value.tab === "discussion" && !D.value), re = Z(() => O.value && t.value.tab === "discussion" ? D.value ? "展开房间概览" : "收起房间概览" : "房间资料与参与者"), ie = Z(() => {
54671
54676
  let e = document.createElement("template");
54672
54677
  return e.innerHTML = o.value?.rendered_brief || "", e.content.textContent.replace(/\s+/g, " ").trim();
54673
- }), ae = /* @__PURE__ */ F(null), oe = /* @__PURE__ */ F(0), k = null, se = /* @__PURE__ */ F(null), ce = /* @__PURE__ */ F(null), le = Z(() => Math.min(i4, Math.max(r4, T.value - s4 - l4))), ue = Z(() => Math.min(w.value, le.value)), de = Z(() => ({
54678
+ }), ae = /* @__PURE__ */ F(null), oe = /* @__PURE__ */ F(0), k = null, se = /* @__PURE__ */ F(null), ce = /* @__PURE__ */ F(null), le = Z(() => Math.min(a4, Math.max(i4, T.value - c4 - u4))), ue = Z(() => Math.min(w.value, le.value)), de = Z(() => ({
54674
54679
  "--channel-reading-width": `${y[x.value].width}px`,
54675
54680
  "--channel-rail-width": `${C.value}px`,
54676
54681
  "--channel-topbar-height": `${oe.value}px`,
54677
- "--channel-main-columns": te.value ? `${ue.value}px ${l4}px minmax(0, 1fr)` : "minmax(0, 1fr)"
54682
+ "--channel-main-columns": te.value ? `${ue.value}px ${u4}px minmax(0, 1fr)` : "minmax(0, 1fr)"
54678
54683
  })), fe = Object.entries(y).map(([e, t]) => ({
54679
54684
  value: e,
54680
54685
  label: t.label
@@ -54771,12 +54776,12 @@ var O1 = {
54771
54776
  }
54772
54777
  function Ne() {
54773
54778
  try {
54774
- let e = JSON.parse(localStorage.getItem(Q2)) || {};
54779
+ let e = JSON.parse(localStorage.getItem($2)) || {};
54775
54780
  return {
54776
54781
  reading: Object.hasOwn(y, e.reading) ? e.reading : "default",
54777
54782
  effects: e.effects === "reduced" ? "reduced" : "full",
54778
- rail: Number.isFinite(e.rail) ? Math.min(e4, Math.max($2, e.rail)) : t4,
54779
- nav: Number.isFinite(e.nav) ? Math.min(i4, Math.max(r4, e.nav)) : Pe(),
54783
+ rail: Number.isFinite(e.rail) ? Math.min(t4, Math.max(e4, e.rail)) : n4,
54784
+ nav: Number.isFinite(e.nav) ? Math.min(a4, Math.max(i4, e.nav)) : Pe(),
54780
54785
  collapsed: e.collapsed === !0,
54781
54786
  brief_collapsed: e.brief_collapsed === !0,
54782
54787
  rail_collapsed: e.rail_collapsed === !0
@@ -54785,7 +54790,7 @@ var O1 = {
54785
54790
  return {
54786
54791
  reading: "default",
54787
54792
  effects: "full",
54788
- rail: t4,
54793
+ rail: n4,
54789
54794
  nav: Pe(),
54790
54795
  collapsed: !1,
54791
54796
  brief_collapsed: !1,
@@ -54794,11 +54799,11 @@ var O1 = {
54794
54799
  }
54795
54800
  }
54796
54801
  function Pe() {
54797
- return typeof window > "u" ? a4 : window.innerWidth >= 1900 ? 280 : window.innerWidth <= 980 ? 220 : a4;
54802
+ return typeof window > "u" ? o4 : window.innerWidth >= 1900 ? 280 : window.innerWidth <= 980 ? 220 : o4;
54798
54803
  }
54799
54804
  function Fe() {
54800
54805
  try {
54801
- localStorage.setItem(Q2, JSON.stringify({
54806
+ localStorage.setItem($2, JSON.stringify({
54802
54807
  reading: x.value,
54803
54808
  effects: S.value,
54804
54809
  rail: C.value,
@@ -54829,19 +54834,19 @@ var O1 = {
54829
54834
  }, e.currentTarget.setPointerCapture(e.pointerId));
54830
54835
  }
54831
54836
  function Ve(e) {
54832
- se.value?.pointer === e.pointerId && (C.value = Math.round(Math.min(e4, Math.max($2, se.value.width + se.value.x - e.clientX))));
54837
+ se.value?.pointer === e.pointerId && (C.value = Math.round(Math.min(t4, Math.max(e4, se.value.width + se.value.x - e.clientX))));
54833
54838
  }
54834
54839
  function He(e) {
54835
54840
  se.value?.pointer === e.pointerId && (se.value = null, e.currentTarget.hasPointerCapture(e.pointerId) && e.currentTarget.releasePointerCapture(e.pointerId), Fe());
54836
54841
  }
54837
54842
  function Ue(e) {
54838
54843
  let t = {
54839
- ArrowLeft: C.value + n4,
54840
- ArrowRight: C.value - n4,
54841
- Home: $2,
54842
- End: e4
54844
+ ArrowLeft: C.value + r4,
54845
+ ArrowRight: C.value - r4,
54846
+ Home: e4,
54847
+ End: t4
54843
54848
  };
54844
- Object.hasOwn(t, e.key) && (e.preventDefault(), C.value = Math.min(e4, Math.max($2, t[e.key])), Fe());
54849
+ Object.hasOwn(t, e.key) && (e.preventDefault(), C.value = Math.min(t4, Math.max(e4, t[e.key])), Fe());
54845
54850
  }
54846
54851
  function We(e) {
54847
54852
  e.button === 0 && (e.preventDefault(), e.currentTarget.focus(), ce.value = {
@@ -54851,19 +54856,19 @@ var O1 = {
54851
54856
  }, e.currentTarget.setPointerCapture(e.pointerId));
54852
54857
  }
54853
54858
  function Ge(e) {
54854
- ce.value?.pointer === e.pointerId && (w.value = Math.round(Math.min(le.value, Math.max(r4, ce.value.width + e.clientX - ce.value.x))));
54859
+ ce.value?.pointer === e.pointerId && (w.value = Math.round(Math.min(le.value, Math.max(i4, ce.value.width + e.clientX - ce.value.x))));
54855
54860
  }
54856
54861
  function Ke(e) {
54857
54862
  ce.value?.pointer === e.pointerId && (ce.value = null, e.currentTarget.hasPointerCapture(e.pointerId) && e.currentTarget.releasePointerCapture(e.pointerId), Fe());
54858
54863
  }
54859
54864
  function qe(e) {
54860
54865
  let t = {
54861
- ArrowLeft: ue.value - o4,
54862
- ArrowRight: ue.value + o4,
54863
- Home: r4,
54866
+ ArrowLeft: ue.value - s4,
54867
+ ArrowRight: ue.value + s4,
54868
+ Home: i4,
54864
54869
  End: le.value
54865
54870
  };
54866
- Object.hasOwn(t, e.key) && (e.preventDefault(), w.value = Math.min(le.value, Math.max(r4, t[e.key])), Fe());
54871
+ Object.hasOwn(t, e.key) && (e.preventDefault(), w.value = Math.min(le.value, Math.max(i4, t[e.key])), Fe());
54867
54872
  }
54868
54873
  return (e, r) => {
54869
54874
  let y = sA, b = lH, w = pA, T = MA, D = $V, oe = WV, k = YV, he = KV, N = HV, Ne = zV, Pe = NV, Fe = AV;
@@ -54875,10 +54880,10 @@ var O1 = {
54875
54880
  }]),
54876
54881
  style: A(de.value)
54877
54882
  }, [
54878
- K("aside", e2, [
54883
+ K("aside", t2, [
54879
54884
  r[30] ||= ws("<header class=\"channel-workspace-heading\"><span class=\"channel-brand-icon\" aria-hidden=\"true\"><svg class=\"channel-brand-dark\" viewBox=\"0 0 100 100\"><defs><linearGradient id=\"brand-d0\" gradientUnits=\"userSpaceOnUse\" x1=\"4.5\" y1=\"64\" x2=\"95.5\" y2=\"64\"><stop offset=\"0.0%\" stop-color=\"#e9ebed\"></stop><stop offset=\"6.3%\" stop-color=\"#e2e5e7\"></stop><stop offset=\"12.5%\" stop-color=\"#dcdee1\"></stop><stop offset=\"18.8%\" stop-color=\"#d5d8db\"></stop><stop offset=\"25.0%\" stop-color=\"#ced2d5\"></stop><stop offset=\"31.3%\" stop-color=\"#c8cbcf\"></stop><stop offset=\"37.5%\" stop-color=\"#c1c5ca\"></stop><stop offset=\"43.8%\" stop-color=\"#babfc4\"></stop><stop offset=\"50.0%\" stop-color=\"#b4b9be\"></stop><stop offset=\"56.3%\" stop-color=\"#a9aeb3\"></stop><stop offset=\"62.5%\" stop-color=\"#9ea3a9\"></stop><stop offset=\"68.8%\" stop-color=\"#93999f\"></stop><stop offset=\"75.0%\" stop-color=\"#888e95\"></stop><stop offset=\"81.3%\" stop-color=\"#7e848a\"></stop><stop offset=\"87.5%\" stop-color=\"#737a80\"></stop><stop offset=\"93.8%\" stop-color=\"#697077\"></stop><stop offset=\"100.0%\" stop-color=\"#5f666d\"></stop></linearGradient><linearGradient id=\"brand-d1\" gradientUnits=\"userSpaceOnUse\" x1=\"8.5\" y1=\"36\" x2=\"91.5\" y2=\"36\"><stop offset=\"0.0%\" stop-color=\"#3f86ff\"></stop><stop offset=\"6.3%\" stop-color=\"#5588ff\"></stop><stop offset=\"12.5%\" stop-color=\"#6889ff\"></stop><stop offset=\"18.8%\" stop-color=\"#788aff\"></stop><stop offset=\"25.0%\" stop-color=\"#878bff\"></stop><stop offset=\"31.3%\" stop-color=\"#958cff\"></stop><stop offset=\"37.5%\" stop-color=\"#a78aef\"></stop><stop offset=\"43.8%\" stop-color=\"#b986d7\"></stop><stop offset=\"50.0%\" stop-color=\"#ca80bf\"></stop><stop offset=\"56.3%\" stop-color=\"#da78a6\"></stop><stop offset=\"62.5%\" stop-color=\"#ea6e8c\"></stop><stop offset=\"68.8%\" stop-color=\"#f56d78\"></stop><stop offset=\"75.0%\" stop-color=\"#f77f72\"></stop><stop offset=\"81.3%\" stop-color=\"#f8906b\"></stop><stop offset=\"87.5%\" stop-color=\"#f9a163\"></stop><stop offset=\"93.8%\" stop-color=\"#fab058\"></stop><stop offset=\"100.0%\" stop-color=\"#fac04a\"></stop></linearGradient><linearGradient id=\"brand-d2\" gradientUnits=\"userSpaceOnUse\" x1=\"28.021\" y1=\"95.435\" x2=\"39.978\" y2=\"4.564\"><stop offset=\"0.0%\" stop-color=\"#d06a49\"></stop><stop offset=\"6.3%\" stop-color=\"#d36f4f\"></stop><stop offset=\"12.5%\" stop-color=\"#d67456\"></stop><stop offset=\"18.8%\" stop-color=\"#d97a5c\"></stop><stop offset=\"25.0%\" stop-color=\"#dc7f62\"></stop><stop offset=\"31.3%\" stop-color=\"#df8468\"></stop><stop offset=\"37.5%\" stop-color=\"#e2896e\"></stop><stop offset=\"43.8%\" stop-color=\"#e58e74\"></stop><stop offset=\"50.0%\" stop-color=\"#e8937a\"></stop><stop offset=\"56.3%\" stop-color=\"#eb9d85\"></stop><stop offset=\"62.5%\" stop-color=\"#eea68f\"></stop><stop offset=\"68.8%\" stop-color=\"#f1b09a\"></stop><stop offset=\"75.0%\" stop-color=\"#f4baa4\"></stop><stop offset=\"81.3%\" stop-color=\"#f6c3af\"></stop><stop offset=\"87.5%\" stop-color=\"#f9cdb9\"></stop><stop offset=\"93.8%\" stop-color=\"#fbd6c4\"></stop><stop offset=\"100.0%\" stop-color=\"#fde0cf\"></stop></linearGradient><linearGradient id=\"brand-d3\" gradientUnits=\"userSpaceOnUse\" x1=\"71.978\" y1=\"95.435\" x2=\"60.021\" y2=\"4.564\"><stop offset=\"0.0%\" stop-color=\"#4a5cff\"></stop><stop offset=\"6.3%\" stop-color=\"#5062ff\"></stop><stop offset=\"12.5%\" stop-color=\"#5768ff\"></stop><stop offset=\"18.8%\" stop-color=\"#5d6dff\"></stop><stop offset=\"25.0%\" stop-color=\"#6472ff\"></stop><stop offset=\"31.3%\" stop-color=\"#6b77ff\"></stop><stop offset=\"37.5%\" stop-color=\"#717cff\"></stop><stop offset=\"43.8%\" stop-color=\"#7881ff\"></stop><stop offset=\"50.0%\" stop-color=\"#7f86ff\"></stop><stop offset=\"56.3%\" stop-color=\"#8990ff\"></stop><stop offset=\"62.5%\" stop-color=\"#9399ff\"></stop><stop offset=\"68.8%\" stop-color=\"#9da2ff\"></stop><stop offset=\"75.0%\" stop-color=\"#a8abff\"></stop><stop offset=\"81.3%\" stop-color=\"#b3b4ff\"></stop><stop offset=\"87.5%\" stop-color=\"#bebdff\"></stop><stop offset=\"93.8%\" stop-color=\"#c9c5ff\"></stop><stop offset=\"100.0%\" stop-color=\"#d4ceff\"></stop></linearGradient><clipPath id=\"brand-d4\"><polygon points=\"16,46.5 84,46.5 84,25.5 16,25.5\"></polygon></clipPath><clipPath id=\"brand-d5\"><polygon points=\"16,48.5 84,48.5 84,23.5 16,23.5\"></polygon></clipPath><clipPath id=\"brand-d6\"><polygon points=\"81.410,86.630 71.410,10.630 50.589,13.369 60.589,89.369\"></polygon></clipPath><clipPath id=\"brand-d7\"><polygon points=\"83.393,86.369 73.393,10.369 48.606,13.630 58.606,89.630\"></polygon></clipPath><clipPath id=\"brand-d8\"><polygon points=\"12,74.5 88,74.5 88,53.5 12,53.5\"></polygon></clipPath><clipPath id=\"brand-d9\"><polygon points=\"12,76.5 88,76.5 88,51.5 12,51.5\"></polygon></clipPath><clipPath id=\"brand-d10\"><polygon points=\"39.410,89.369 49.410,13.369 28.589,10.630 18.589,86.630\"></polygon></clipPath><clipPath id=\"brand-d11\"><polygon points=\"41.393,89.630 51.393,13.630 26.606,10.369 16.606,86.369\"></polygon></clipPath></defs><line x1=\"12\" y1=\"64\" x2=\"88\" y2=\"64\" stroke=\"url(#brand-d0)\" stroke-width=\"15\" stroke-linecap=\"round\"></line><line x1=\"16\" y1=\"36\" x2=\"84\" y2=\"36\" stroke=\"url(#brand-d1)\" stroke-width=\"15\" stroke-linecap=\"round\"></line><line x1=\"29\" y1=\"88\" x2=\"39\" y2=\"12\" stroke=\"url(#brand-d2)\" stroke-width=\"15\" stroke-linecap=\"round\"></line><line x1=\"71\" y1=\"88\" x2=\"61\" y2=\"12\" stroke=\"url(#brand-d3)\" stroke-width=\"15\" stroke-linecap=\"round\"></line><g clip-path=\"url(#brand-d4)\"><line x1=\"29\" y1=\"88\" x2=\"39\" y2=\"12\" stroke=\"#202127\" stroke-width=\"21\" stroke-linecap=\"round\"></line></g><g clip-path=\"url(#brand-d5)\"><line x1=\"29\" y1=\"88\" x2=\"39\" y2=\"12\" stroke=\"url(#brand-d2)\" stroke-width=\"15\" stroke-linecap=\"round\"></line></g><g clip-path=\"url(#brand-d6)\"><line x1=\"16\" y1=\"36\" x2=\"84\" y2=\"36\" stroke=\"#202127\" stroke-width=\"21\" stroke-linecap=\"round\"></line></g><g clip-path=\"url(#brand-d7)\"><line x1=\"16\" y1=\"36\" x2=\"84\" y2=\"36\" stroke=\"url(#brand-d1)\" stroke-width=\"15\" stroke-linecap=\"round\"></line></g><g clip-path=\"url(#brand-d8)\"><line x1=\"71\" y1=\"88\" x2=\"61\" y2=\"12\" stroke=\"#202127\" stroke-width=\"21\" stroke-linecap=\"round\"></line></g><g clip-path=\"url(#brand-d9)\"><line x1=\"71\" y1=\"88\" x2=\"61\" y2=\"12\" stroke=\"url(#brand-d3)\" stroke-width=\"15\" stroke-linecap=\"round\"></line></g><g clip-path=\"url(#brand-d10)\"><line x1=\"12\" y1=\"64\" x2=\"88\" y2=\"64\" stroke=\"#202127\" stroke-width=\"21\" stroke-linecap=\"round\"></line></g><g clip-path=\"url(#brand-d11)\"><line x1=\"12\" y1=\"64\" x2=\"88\" y2=\"64\" stroke=\"url(#brand-d0)\" stroke-width=\"15\" stroke-linecap=\"round\"></line></g></svg><svg class=\"channel-brand-light\" viewBox=\"0 0 100 100\"><defs><linearGradient id=\"brand-l0\" gradientUnits=\"userSpaceOnUse\" x1=\"4.5\" y1=\"64\" x2=\"95.5\" y2=\"64\"><stop offset=\"0.0%\" stop-color=\"#0b0d0f\"></stop><stop offset=\"6.3%\" stop-color=\"#101315\"></stop><stop offset=\"12.5%\" stop-color=\"#16191b\"></stop><stop offset=\"18.8%\" stop-color=\"#1c1f22\"></stop><stop offset=\"25.0%\" stop-color=\"#222529\"></stop><stop offset=\"31.3%\" stop-color=\"#282c2f\"></stop><stop offset=\"37.5%\" stop-color=\"#2e3237\"></stop><stop offset=\"43.8%\" stop-color=\"#34393e\"></stop><stop offset=\"50.0%\" stop-color=\"#3b4045\"></stop><stop offset=\"56.3%\" stop-color=\"#484d52\"></stop><stop offset=\"62.5%\" stop-color=\"#555a5f\"></stop><stop offset=\"68.8%\" stop-color=\"#62676d\"></stop><stop offset=\"75.0%\" stop-color=\"#70757b\"></stop><stop offset=\"81.3%\" stop-color=\"#7e8389\"></stop><stop offset=\"87.5%\" stop-color=\"#8c9297\"></stop><stop offset=\"93.8%\" stop-color=\"#9aa0a6\"></stop><stop offset=\"100.0%\" stop-color=\"#a9afb5\"></stop></linearGradient><linearGradient id=\"brand-l1\" gradientUnits=\"userSpaceOnUse\" x1=\"8.5\" y1=\"36\" x2=\"91.5\" y2=\"36\"><stop offset=\"0.0%\" stop-color=\"#2f7bff\"></stop><stop offset=\"6.3%\" stop-color=\"#487cff\"></stop><stop offset=\"12.5%\" stop-color=\"#5a7cff\"></stop><stop offset=\"18.8%\" stop-color=\"#6a7dff\"></stop><stop offset=\"25.0%\" stop-color=\"#797dff\"></stop><stop offset=\"31.3%\" stop-color=\"#877dff\"></stop><stop offset=\"37.5%\" stop-color=\"#997cee\"></stop><stop offset=\"43.8%\" stop-color=\"#ae79d3\"></stop><stop offset=\"50.0%\" stop-color=\"#c174b8\"></stop><stop offset=\"56.3%\" stop-color=\"#d36b9d\"></stop><stop offset=\"62.5%\" stop-color=\"#e56080\"></stop><stop offset=\"68.8%\" stop-color=\"#f15d69\"></stop><stop offset=\"75.0%\" stop-color=\"#f37162\"></stop><stop offset=\"81.3%\" stop-color=\"#f5835a\"></stop><stop offset=\"87.5%\" stop-color=\"#f79550\"></stop><stop offset=\"93.8%\" stop-color=\"#f8a542\"></stop><stop offset=\"100.0%\" stop-color=\"#f8b52c\"></stop></linearGradient><linearGradient id=\"brand-l2\" gradientUnits=\"userSpaceOnUse\" x1=\"28.021\" y1=\"95.435\" x2=\"39.978\" y2=\"4.564\"><stop offset=\"0.0%\" stop-color=\"#b9502f\"></stop><stop offset=\"6.3%\" stop-color=\"#bd5534\"></stop><stop offset=\"12.5%\" stop-color=\"#c15a39\"></stop><stop offset=\"18.8%\" stop-color=\"#c55f3e\"></stop><stop offset=\"25.0%\" stop-color=\"#c96443\"></stop><stop offset=\"31.3%\" stop-color=\"#cd6848\"></stop><stop offset=\"37.5%\" stop-color=\"#d16d4d\"></stop><stop offset=\"43.8%\" stop-color=\"#d57252\"></stop><stop offset=\"50.0%\" stop-color=\"#d97757\"></stop><stop offset=\"56.3%\" stop-color=\"#dd8060\"></stop><stop offset=\"62.5%\" stop-color=\"#e08a69\"></stop><stop offset=\"68.8%\" stop-color=\"#e49372\"></stop><stop offset=\"75.0%\" stop-color=\"#e79c7b\"></stop><stop offset=\"81.3%\" stop-color=\"#eaa584\"></stop><stop offset=\"87.5%\" stop-color=\"#edae8d\"></stop><stop offset=\"93.8%\" stop-color=\"#f0b796\"></stop><stop offset=\"100.0%\" stop-color=\"#f3c09f\"></stop></linearGradient><linearGradient id=\"brand-l3\" gradientUnits=\"userSpaceOnUse\" x1=\"71.978\" y1=\"95.435\" x2=\"60.021\" y2=\"4.564\"><stop offset=\"0.0%\" stop-color=\"#2b33e6\"></stop><stop offset=\"6.3%\" stop-color=\"#3139e9\"></stop><stop offset=\"12.5%\" stop-color=\"#363fec\"></stop><stop offset=\"18.8%\" stop-color=\"#3c44ef\"></stop><stop offset=\"25.0%\" stop-color=\"#4249f3\"></stop><stop offset=\"31.3%\" stop-color=\"#484ef6\"></stop><stop offset=\"37.5%\" stop-color=\"#4e53f9\"></stop><stop offset=\"43.8%\" stop-color=\"#5457fc\"></stop><stop offset=\"50.0%\" stop-color=\"#5a5cff\"></stop><stop offset=\"56.3%\" stop-color=\"#6569ff\"></stop><stop offset=\"62.5%\" stop-color=\"#7075ff\"></stop><stop offset=\"68.8%\" stop-color=\"#7c80ff\"></stop><stop offset=\"75.0%\" stop-color=\"#888bff\"></stop><stop offset=\"81.3%\" stop-color=\"#9595ff\"></stop><stop offset=\"87.5%\" stop-color=\"#a29fff\"></stop><stop offset=\"93.8%\" stop-color=\"#afa9ff\"></stop><stop offset=\"100.0%\" stop-color=\"#bdb3ff\"></stop></linearGradient><clipPath id=\"brand-l4\"><polygon points=\"16,46.5 84,46.5 84,25.5 16,25.5\"></polygon></clipPath><clipPath id=\"brand-l5\"><polygon points=\"16,48.5 84,48.5 84,23.5 16,23.5\"></polygon></clipPath><clipPath id=\"brand-l6\"><polygon points=\"81.410,86.630 71.410,10.630 50.589,13.369 60.589,89.369\"></polygon></clipPath><clipPath id=\"brand-l7\"><polygon points=\"83.393,86.369 73.393,10.369 48.606,13.630 58.606,89.630\"></polygon></clipPath><clipPath id=\"brand-l8\"><polygon points=\"12,74.5 88,74.5 88,53.5 12,53.5\"></polygon></clipPath><clipPath id=\"brand-l9\"><polygon points=\"12,76.5 88,76.5 88,51.5 12,51.5\"></polygon></clipPath><clipPath id=\"brand-l10\"><polygon points=\"39.410,89.369 49.410,13.369 28.589,10.630 18.589,86.630\"></polygon></clipPath><clipPath id=\"brand-l11\"><polygon points=\"41.393,89.630 51.393,13.630 26.606,10.369 16.606,86.369\"></polygon></clipPath></defs><line x1=\"12\" y1=\"64\" x2=\"88\" y2=\"64\" stroke=\"url(#brand-l0)\" stroke-width=\"15\" stroke-linecap=\"round\"></line><line x1=\"16\" y1=\"36\" x2=\"84\" y2=\"36\" stroke=\"url(#brand-l1)\" stroke-width=\"15\" stroke-linecap=\"round\"></line><line x1=\"29\" y1=\"88\" x2=\"39\" y2=\"12\" stroke=\"url(#brand-l2)\" stroke-width=\"15\" stroke-linecap=\"round\"></line><line x1=\"71\" y1=\"88\" x2=\"61\" y2=\"12\" stroke=\"url(#brand-l3)\" stroke-width=\"15\" stroke-linecap=\"round\"></line><g clip-path=\"url(#brand-l4)\"><line x1=\"29\" y1=\"88\" x2=\"39\" y2=\"12\" stroke=\"#f6f6f6\" stroke-width=\"21\" stroke-linecap=\"round\"></line></g><g clip-path=\"url(#brand-l5)\"><line x1=\"29\" y1=\"88\" x2=\"39\" y2=\"12\" stroke=\"url(#brand-l2)\" stroke-width=\"15\" stroke-linecap=\"round\"></line></g><g clip-path=\"url(#brand-l6)\"><line x1=\"16\" y1=\"36\" x2=\"84\" y2=\"36\" stroke=\"#f6f6f6\" stroke-width=\"21\" stroke-linecap=\"round\"></line></g><g clip-path=\"url(#brand-l7)\"><line x1=\"16\" y1=\"36\" x2=\"84\" y2=\"36\" stroke=\"url(#brand-l1)\" stroke-width=\"15\" stroke-linecap=\"round\"></line></g><g clip-path=\"url(#brand-l8)\"><line x1=\"71\" y1=\"88\" x2=\"61\" y2=\"12\" stroke=\"#f6f6f6\" stroke-width=\"21\" stroke-linecap=\"round\"></line></g><g clip-path=\"url(#brand-l9)\"><line x1=\"71\" y1=\"88\" x2=\"61\" y2=\"12\" stroke=\"url(#brand-l3)\" stroke-width=\"15\" stroke-linecap=\"round\"></line></g><g clip-path=\"url(#brand-l10)\"><line x1=\"12\" y1=\"64\" x2=\"88\" y2=\"64\" stroke=\"#f6f6f6\" stroke-width=\"21\" stroke-linecap=\"round\"></line></g><g clip-path=\"url(#brand-l11)\"><line x1=\"12\" y1=\"64\" x2=\"88\" y2=\"64\" stroke=\"url(#brand-l0)\" stroke-width=\"15\" stroke-linecap=\"round\"></line></g></svg></span><span class=\"channel-brand-text\"><strong>共议</strong><span>AI CoDiscuss</span></span></header>", 1),
54880
- K("div", t2, [
54881
- q(AZ, {
54885
+ K("div", n2, [
54886
+ q(jZ, {
54882
54887
  onSelect: Ee,
54883
54888
  onManage: we,
54884
54889
  onCreate: Oe,
@@ -54888,12 +54893,12 @@ var O1 = {
54888
54893
  onArchiveFolder: Me,
54889
54894
  onArchives: Te
54890
54895
  }),
54891
- K("div", n2, [K("button", {
54896
+ K("div", r2, [K("button", {
54892
54897
  type: "button",
54893
54898
  class: "channel-section-toggle",
54894
54899
  "aria-expanded": f.value,
54895
54900
  onClick: r[0] ||= (e) => f.value = !f.value
54896
- }, [q(y, { name: f.value ? "i-lucide-chevron-down" : "i-lucide-chevron-right" }, null, 8, ["name"]), r[29] ||= J("频道工具", -1)], 8, r2)]),
54901
+ }, [q(y, { name: f.value ? "i-lucide-chevron-down" : "i-lucide-chevron-right" }, null, 8, ["name"]), r[29] ||= J("频道工具", -1)], 8, i2)]),
54897
54902
  f.value ? (U(), G(b, {
54898
54903
  key: 0,
54899
54904
  items: xe.value,
@@ -54909,7 +54914,7 @@ var O1 = {
54909
54914
  }
54910
54915
  }, null, 8, ["items"])) : Y("", !0)
54911
54916
  ]),
54912
- K("footer", i2, [K("button", {
54917
+ K("footer", a2, [K("button", {
54913
54918
  type: "button",
54914
54919
  class: "channel-self-button",
54915
54920
  "aria-label": `账号与设置:${I(n).display_name(I(_))}${Se.value ? "," + Se.value : ""}`,
@@ -54925,10 +54930,10 @@ var O1 = {
54925
54930
  "text",
54926
54931
  "alt",
54927
54932
  "class"
54928
- ]), K("span", o2, [K("strong", null, P(I(n).display_name(I(_))), 1), K("span", { class: j(["channel-connection", { "is-action": Se.value }]) }, [K("span", {
54933
+ ]), K("span", s2, [K("strong", null, P(I(n).display_name(I(_))), 1), K("span", { class: j(["channel-connection", { "is-action": Se.value }]) }, [K("span", {
54929
54934
  class: j({ connected: I(t).connected }),
54930
54935
  title: I(t).connected ? "网站已连接" : "网站未连接"
54931
- }, null, 10, s2), J(P(Se.value || (I(t).connected ? "网站已连接" : "网站未连接")), 1)], 2)])], 8, a2), q(D, { text: "设置" }, {
54936
+ }, null, 10, c2), J(P(Se.value || (I(t).connected ? "网站已连接" : "网站未连接")), 1)], 2)])], 8, o2), q(D, { text: "设置" }, {
54932
54937
  default: L(() => [q(T, {
54933
54938
  icon: "i-lucide-settings-2",
54934
54939
  color: "neutral",
@@ -54949,7 +54954,7 @@ var O1 = {
54949
54954
  "aria-label": "调整房间栏宽度",
54950
54955
  "aria-orientation": "vertical",
54951
54956
  "aria-controls": "channel-sidebar",
54952
- "aria-valuemin": r4,
54957
+ "aria-valuemin": i4,
54953
54958
  "aria-valuemax": le.value,
54954
54959
  "aria-valuenow": ue.value,
54955
54960
  "aria-valuetext": `${ue.value} 像素`,
@@ -54960,13 +54965,13 @@ var O1 = {
54960
54965
  onPointercancel: Ke,
54961
54966
  onLostpointercapture: Ke,
54962
54967
  onKeydown: qe
54963
- }, null, 40, c2)) : Y("", !0),
54964
- K("main", l2, [K("div", {
54968
+ }, null, 40, l2)) : Y("", !0),
54969
+ K("main", u2, [K("div", {
54965
54970
  ref_key: "topbar",
54966
54971
  ref: ae,
54967
54972
  class: j(["channel-topbar", { "is-overlay": o.value && I(t).tab === "discussion" }])
54968
54973
  }, [
54969
- K("header", u2, [
54974
+ K("header", d2, [
54970
54975
  O.value ? (U(), G(D, {
54971
54976
  key: 0,
54972
54977
  text: E.value ? "展开房间栏" : "收起房间栏"
@@ -54994,8 +54999,8 @@ var O1 = {
54994
54999
  "aria-expanded": d.value,
54995
55000
  onClick: r[4] ||= (e) => d.value = !0
54996
55001
  }, null, 8, ["aria-expanded"])),
54997
- K("span", d2, [q(y, { name: "i-lucide-hash" })]),
54998
- K("div", f2, [K("div", p2, [K("h1", { title: o.value?.title }, P(o.value?.title || "共议"), 9, m2)]), o.value?.archived ? (U(), G(oe, {
55002
+ K("span", f2, [q(y, { name: "i-lucide-hash" })]),
55003
+ K("div", p2, [K("div", m2, [K("h1", { title: o.value?.title }, P(o.value?.title || "共议"), 9, h2)]), o.value?.archived ? (U(), G(oe, {
54999
55004
  key: 0,
55000
55005
  color: "neutral",
55001
55006
  variant: "subtle",
@@ -55004,12 +55009,12 @@ var O1 = {
55004
55009
  default: L(() => [...r[31] ||= [J("已存档", -1)]]),
55005
55010
  _: 1
55006
55011
  })) : Y("", !0)]),
55007
- o.value ? (U(), W("span", h2, [
55012
+ o.value ? (U(), W("span", g2, [
55008
55013
  J(P(me.find((e) => e.value === I(t).tab)?.label), 1),
55009
55014
  r[32] ||= K("span", null, "·", -1),
55010
55015
  J(P(o.value.message_count) + " 条记录", 1)
55011
55016
  ])) : Y("", !0),
55012
- K("div", g2, [
55017
+ K("div", _2, [
55013
55018
  I(t).tab === "discussion" ? (U(), W("form", {
55014
55019
  key: 0,
55015
55020
  class: "channel-search",
@@ -55067,7 +55072,7 @@ var O1 = {
55067
55072
  ])]),
55068
55073
  _: 1
55069
55074
  })) : Y("", !0),
55070
- o.value && !(ne.value && O.value) ? (U(), G(o$, { key: 2 })) : Y("", !0)
55075
+ o.value && !(ne.value && O.value) ? (U(), G(s$, { key: 2 })) : Y("", !0)
55071
55076
  ]),
55072
55077
  q(D, { text: re.value }, {
55073
55078
  default: L(() => [q(T, {
@@ -55088,12 +55093,12 @@ var O1 = {
55088
55093
  _: 1
55089
55094
  }, 8, ["text"])
55090
55095
  ]),
55091
- I(t).launch.recoveries.length ? (U(), W("section", _2, [
55096
+ I(t).launch.recoveries.length ? (U(), W("section", v2, [
55092
55097
  r[33] ||= K("h2", null, "继续未完成的请求", -1),
55093
55098
  (U(!0), W(H, null, B(I(t).launch.recoveries, (e) => (U(), W("article", { key: e.id }, [
55094
55099
  K("strong", null, P(e.title), 1),
55095
- K("p", v2, P(e.error || "启动结果尚未确认;原请求已保存在此浏览器中。"), 1),
55096
- K("div", y2, [
55100
+ K("p", y2, P(e.error || "启动结果尚未确认;原请求已保存在此浏览器中。"), 1),
55101
+ K("div", b2, [
55097
55102
  q(T, {
55098
55103
  label: e.direct ? "继续创建房间" : "继续本次启动",
55099
55104
  size: "sm",
@@ -55126,7 +55131,7 @@ var O1 = {
55126
55131
  ]))), 128)),
55127
55132
  r[34] ||= K("small", null, "移除待办不会删除房间或停止讨论。", -1)
55128
55133
  ])) : Y("", !0),
55129
- o.value ? (U(), W("div", b2, [q(he, {
55134
+ o.value ? (U(), W("div", x2, [q(he, {
55130
55135
  modelValue: pe.value,
55131
55136
  "onUpdate:modelValue": r[9] ||= (e) => pe.value = e,
55132
55137
  items: me,
@@ -55141,7 +55146,7 @@ var O1 = {
55141
55146
  key: 2,
55142
55147
  class: j(["channel-host-brief", { "is-collapsed": ee.value }]),
55143
55148
  "aria-label": "主持简报"
55144
- }, [K("div", x2, [K("div", S2, [K("button", {
55149
+ }, [K("div", S2, [K("div", C2, [K("button", {
55145
55150
  type: "button",
55146
55151
  class: "channel-brief-toggle",
55147
55152
  "aria-label": ee.value ? "展开主持简报" : "收起主持简报",
@@ -55151,8 +55156,8 @@ var O1 = {
55151
55156
  }, [
55152
55157
  q(y, { name: ee.value ? "i-lucide-chevron-right" : "i-lucide-chevron-down" }, null, 8, ["name"]),
55153
55158
  K("strong", null, "主持简报" + P(ee.value ? ":" : ""), 1),
55154
- ee.value ? (U(), W("span", w2, P(ie.value), 1)) : Y("", !0)
55155
- ], 8, C2), ee.value ? Y("", !0) : (U(), G(T, {
55159
+ ee.value ? (U(), W("span", T2, P(ie.value), 1)) : Y("", !0)
55160
+ ], 8, w2), ee.value ? Y("", !0) : (U(), G(T, {
55156
55161
  key: 0,
55157
55162
  label: "更新简报",
55158
55163
  color: "neutral",
@@ -55160,20 +55165,20 @@ var O1 = {
55160
55165
  size: "xs",
55161
55166
  class: "channel-brief-update",
55162
55167
  onClick: r[10] ||= (e) => I(i)("tab", "context")
55163
- }))]), vr(K("div", T2, [K("div", {
55168
+ }))]), vr(K("div", E2, [K("div", {
55164
55169
  class: "channel-brief-text markdown-body",
55165
55170
  innerHTML: o.value.rendered_brief
55166
- }, null, 8, E2), K("div", D2, [K("span", O2, P(I(n).progress_speaker(o.value)), 1), K("small", null, P(I(n).brief_meta(o.value)), 1)])], 512), [[Vc, !ee.value]])])], 2)) : Y("", !0)
55171
+ }, null, 8, D2), K("div", O2, [K("span", k2, P(I(n).progress_speaker(o.value)), 1), K("small", null, P(I(n).brief_meta(o.value)), 1)])], 512), [[Vc, !ee.value]])])], 2)) : Y("", !0)
55167
55172
  ], 2), o.value ? (U(), W("div", {
55168
55173
  key: 0,
55169
55174
  class: j(["channel-body", { "channel-body-discussion": I(t).tab === "discussion" }])
55170
- }, [K("div", k2, [
55175
+ }, [K("div", A2, [
55171
55176
  vr(q(uK, {
55172
55177
  onDetail: De,
55173
55178
  onEdit: r[11] ||= (e) => s.value = "edit"
55174
55179
  }, null, 512), [[Vc, I(t).tab === "discussion"]]),
55175
- I(t).tab === "history" ? (U(), W("div", A2, [
55176
- ge.value ? (U(), W("section", j2, [K("div", M2, [r[35] ||= K("div", null, [K("h2", null, "当前讨论"), K("p", null, "没有进行中的讨论。开启后由主持人推进成员轮流发言,到上限或结束后房间回到自由协作,记录与结论保留。")], -1), q(T, {
55180
+ I(t).tab === "history" ? (U(), W("div", j2, [
55181
+ ge.value ? (U(), W("section", M2, [K("div", N2, [r[35] ||= K("div", null, [K("h2", null, "当前讨论"), K("p", null, "没有进行中的讨论。开启后由主持人推进成员轮流发言,到上限或结束后房间回到自由协作,记录与结论保留。")], -1), q(T, {
55177
55182
  icon: "i-lucide-messages-square",
55178
55183
  label: "开启讨论",
55179
55184
  variant: "outline",
@@ -55181,13 +55186,13 @@ var O1 = {
55181
55186
  class: "channel-surface-button",
55182
55187
  disabled: !ve.value,
55183
55188
  onClick: r[13] ||= (e) => _e.value = !0
55184
- }, null, 8, ["disabled"])]), !ve.value && !o.value.archived ? (U(), W("p", N2, "开启讨论需要一位由本机唤醒的 AI 主持人,且本机服务在线。")) : Y("", !0)])) : (U(), G(jK, {
55189
+ }, null, 8, ["disabled"])]), !ve.value && !o.value.archived ? (U(), W("p", P2, "开启讨论需要一位由本机唤醒的 AI 主持人,且本机服务在线。")) : Y("", !0)])) : (U(), G(jK, {
55185
55190
  key: 0,
55186
55191
  section: "host",
55187
55192
  onOpen: r[12] ||= (e) => s.value = e,
55188
55193
  onDetail: De
55189
55194
  })),
55190
- K("section", P2, [K("div", F2, [r[36] ||= K("div", null, [K("h2", null, "当前共识"), K("p", null, "主持人整理的结论、共识与分歧,用 #消息编号 保留依据;讨论结束时保存进下方记录。")], -1), M.value ? Y("", !0) : (U(), G(T, {
55195
+ K("section", F2, [K("div", I2, [r[36] ||= K("div", null, [K("h2", null, "当前共识"), K("p", null, "主持人整理的结论、共识与分歧,用 #消息编号 保留依据;讨论结束时保存进下方记录。")], -1), M.value ? Y("", !0) : (U(), G(T, {
55191
55196
  key: 0,
55192
55197
  icon: "i-lucide-pencil",
55193
55198
  label: "编辑",
@@ -55231,7 +55236,7 @@ var O1 = {
55231
55236
  }, null, 8, ["modelValue"])]),
55232
55237
  _: 1
55233
55238
  }),
55234
- K("div", I2, [K("span", null, "依据消息截止 #" + P(I(t).snapshot_id), 1), K("div", L2, [q(T, {
55239
+ K("div", L2, [K("span", null, "依据消息截止 #" + P(I(t).snapshot_id), 1), K("div", R2, [q(T, {
55235
55240
  label: "取消",
55236
55241
  color: "neutral",
55237
55242
  variant: "ghost",
@@ -55244,7 +55249,7 @@ var O1 = {
55244
55249
  class: "channel-primary-button",
55245
55250
  loading: I(a) === "save_context"
55246
55251
  }, null, 8, ["loading"])])])
55247
- ], 32)) : o.value.host_brief?.text || o.value.state_text ? (U(), W(H, { key: 1 }, [K("div", R2, [K("h3", null, [r[37] ||= J("主持简报", -1), o.value.state_until ? (U(), W("button", {
55252
+ ], 32)) : o.value.host_brief?.text || o.value.state_text ? (U(), W(H, { key: 1 }, [K("div", z2, [K("h3", null, [r[37] ||= J("主持简报", -1), o.value.state_until ? (U(), W("button", {
55248
55253
  key: 0,
55249
55254
  type: "button",
55250
55255
  class: "subtle-link",
@@ -55252,7 +55257,7 @@ var O1 = {
55252
55257
  }, "整理至 #" + P(o.value.state_until), 1)) : Y("", !0)]), K("div", {
55253
55258
  class: "markdown-body",
55254
55259
  innerHTML: o.value.rendered_brief
55255
- }, null, 8, z2)]), ye.value ? (U(), W("details", B2, [K("summary", null, [
55260
+ }, null, 8, B2)]), ye.value ? (U(), W("details", V2, [K("summary", null, [
55256
55261
  r[38] ||= K("h3", null, "详细共识与进度", -1),
55257
55262
  r[39] ||= K("span", null, "依据、已处理内容、未决问题与下一步", -1),
55258
55263
  q(y, {
@@ -55262,21 +55267,21 @@ var O1 = {
55262
55267
  ]), K("div", {
55263
55268
  class: "markdown-body consensus-state",
55264
55269
  innerHTML: ye.value
55265
- }, null, 8, V2)])) : Y("", !0)], 64)) : (U(), W("p", H2, "还没有共识。主持人会在讨论中整理,也可以点“编辑”自己写。"))]),
55266
- q(x$, { onDetail: De }),
55267
- q(JZ, {
55270
+ }, null, 8, H2)])) : Y("", !0)], 64)) : (U(), W("p", U2, "还没有共识。主持人会在讨论中整理,也可以点“编辑”自己写。"))]),
55271
+ q(S$, { onDetail: De }),
55272
+ q(YZ, {
55268
55273
  open: _e.value,
55269
55274
  "onUpdate:open": r[19] ||= (e) => _e.value = e
55270
55275
  }, null, 8, ["open"])
55271
55276
  ])) : Y("", !0),
55272
- I(t).tab === "overview" ? (U(), W("div", U2, [q($$), ge.value ? Y("", !0) : (U(), G(jK, {
55277
+ I(t).tab === "overview" ? (U(), W("div", W2, [q(e1), ge.value ? Y("", !0) : (U(), G(jK, {
55273
55278
  key: 0,
55274
55279
  section: "access",
55275
55280
  onOpen: r[20] ||= (e) => s.value = e,
55276
55281
  onDetail: De
55277
55282
  }))])) : Y("", !0),
55278
- I(t).tab === "timeline" ? (U(), W("div", W2, [q($0, { onDetail: De })])) : Y("", !0)
55279
- ])], 2)) : (U(), W("div", G2, [
55283
+ I(t).tab === "timeline" ? (U(), W("div", G2, [q(e2, { onDetail: De })])) : Y("", !0)
55284
+ ])], 2)) : (U(), W("div", K2, [
55280
55285
  q(y, { name: "i-lucide-hash" }),
55281
55286
  r[40] ||= K("h2", null, "新建一个协作房间", -1),
55282
55287
  r[41] ||= K("p", null, "邀请 AI 一起协作,随时 @ 提问;需要时开启讨论,保留所有人的观点。", -1),
@@ -55295,8 +55300,8 @@ var O1 = {
55295
55300
  "aria-label": "调整右侧栏宽度",
55296
55301
  "aria-orientation": "vertical",
55297
55302
  "aria-controls": "channel-member-rail",
55298
- "aria-valuemin": $2,
55299
- "aria-valuemax": e4,
55303
+ "aria-valuemin": e4,
55304
+ "aria-valuemax": t4,
55300
55305
  "aria-valuenow": C.value,
55301
55306
  "aria-valuetext": `${C.value} 像素`,
55302
55307
  title: "拖动调整右侧栏宽度,也可使用左右方向键",
@@ -55306,8 +55311,8 @@ var O1 = {
55306
55311
  onPointercancel: He,
55307
55312
  onLostpointercapture: He,
55308
55313
  onKeydown: Ue
55309
- }, null, 40, K2)) : Y("", !0),
55310
- ne.value ? (U(), W("aside", q2, [K("section", J2, [o.value ? (U(), G(t$, { key: 0 })) : (U(), W("div", Y2, [...r[42] ||= [K("header", { class: "pb-header" }, [K("strong", null, "讨论进度")], -1), K("p", { class: "channel-rail-empty" }, "暂无房间,新建讨论后在这里查看进度与参与者。", -1)]]))])])) : Y("", !0),
55314
+ }, null, 40, q2)) : Y("", !0),
55315
+ ne.value ? (U(), W("aside", J2, [K("section", Y2, [o.value ? (U(), G(n$, { key: 0 })) : (U(), W("div", X2, [...r[42] ||= [K("header", { class: "pb-header" }, [K("strong", null, "讨论进度")], -1), K("p", { class: "channel-rail-empty" }, "暂无房间,新建讨论后在这里查看进度与参与者。", -1)]]))])])) : Y("", !0),
55311
55316
  q(Pe, {
55312
55317
  open: d.value,
55313
55318
  "onUpdate:open": r[23] ||= (e) => d.value = e,
@@ -55319,7 +55324,7 @@ var O1 = {
55319
55324
  body: "channel-drawer-body"
55320
55325
  }
55321
55326
  }, {
55322
- body: L(() => [q(AZ, {
55327
+ body: L(() => [q(jZ, {
55323
55328
  onSelect: Ee,
55324
55329
  onManage: we,
55325
55330
  onCreate: Oe,
@@ -55351,7 +55356,7 @@ var O1 = {
55351
55356
  }
55352
55357
  }, {
55353
55358
  body: L(() => [o.value ? (U(), W(H, { key: 0 }, [
55354
- K("div", X2, [q(y, { name: "i-lucide-hash" }), K("h2", null, P(o.value.title), 1)]),
55359
+ K("div", Z2, [q(y, { name: "i-lucide-hash" }), K("h2", null, P(o.value.title), 1)]),
55355
55360
  (U(), W(H, null, B([
55356
55361
  {
55357
55362
  key: "goal",
@@ -55378,7 +55383,7 @@ var O1 = {
55378
55383
  class: "info-section"
55379
55384
  }, [K("h3", null, P(e.label), 1), K("p", null, P(o.value[e.key] || "尚未填写"), 1)])), 64)),
55380
55385
  q(Fe),
55381
- K("section", Z2, [r[43] ||= K("h3", null, "参与身份", -1), (U(!0), W(H, null, B(Ce.value, (e) => (U(), W("div", {
55386
+ K("section", Q2, [r[43] ||= K("h3", null, "参与身份", -1), (U(!0), W(H, null, B(Ce.value, (e) => (U(), W("div", {
55382
55387
  key: e.name,
55383
55388
  class: "expert-row"
55384
55389
  }, [
@@ -55411,7 +55416,7 @@ var O1 = {
55411
55416
  ], 64)) : Y("", !0)]),
55412
55417
  _: 1
55413
55418
  }, 8, ["open"]),
55414
- q(ZX, {
55419
+ q(QX, {
55415
55420
  modelValue: s.value,
55416
55421
  "onUpdate:modelValue": r[26] ||= (e) => s.value = e,
55417
55422
  "reading-width": x.value,
@@ -55435,7 +55440,7 @@ var O1 = {
55435
55440
  ], 6);
55436
55441
  };
55437
55442
  }
55438
- }, d4 = {
55443
+ }, f4 = {
55439
55444
  __name: "App",
55440
55445
  setup(e) {
55441
55446
  return br("discussion", OV()), (e, t) => {
@@ -55446,7 +55451,7 @@ var O1 = {
55446
55451
  toaster: null
55447
55452
  }, {
55448
55453
  default: L(() => [q(I(Qz), { "reduced-motion": "user" }, {
55449
- default: L(() => [q(u4)]),
55454
+ default: L(() => [q(d4)]),
55450
55455
  _: 1
55451
55456
  })]),
55452
55457
  _: 1
@@ -55456,8 +55461,8 @@ var O1 = {
55456
55461
  };
55457
55462
  //#endregion
55458
55463
  //#region frontend/main.js
55459
- function f4() {
55460
- bu(d4).use(ph).mount("#modern-root");
55464
+ function p4() {
55465
+ bu(f4).use(ph).mount("#modern-root");
55461
55466
  }
55462
- document.readyState === "loading" ? document.addEventListener("DOMContentLoaded", f4) : f4();
55467
+ document.readyState === "loading" ? document.addEventListener("DOMContentLoaded", p4) : p4();
55463
55468
  //#endregion