ai_co_discuss 0.2.90 → 0.2.91

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
@@ -53744,18 +53744,24 @@ var r$ = { class: "progress-board is-docked" }, i$ = { class: "pb-header" }, a$
53744
53744
  editing: "编辑",
53745
53745
  writing: "撰写"
53746
53746
  }, T1 = {
53747
+ thinking: "model",
53748
+ writing: "model",
53749
+ command: "tool",
53750
+ tool: "tool",
53751
+ editing: "tool"
53752
+ }, E1 = {
53747
53753
  running: "进行中",
53748
53754
  done: "完成",
53749
53755
  failed: "失败",
53750
53756
  cancelled: "已撤销"
53751
- }, E1 = 3e5, D1 = .03;
53752
- function O1(e) {
53757
+ }, D1 = 3e5, O1 = .03;
53758
+ function k1(e) {
53753
53759
  if (e < 1e3) return `${Math.max(0, Math.round(e))}ms`;
53754
53760
  if (e < 1e4) return `${(e / 1e3).toFixed(1)}s`;
53755
53761
  let t = Math.round(e / 1e3);
53756
53762
  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`;
53757
53763
  }
53758
- function k1(e, t) {
53764
+ function A1(e, t) {
53759
53765
  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) => {
53760
53766
  let o = n && a === e.segments.length - 1, s = Math.min(i + t.end_ms, r);
53761
53767
  return {
@@ -53781,8 +53787,8 @@ function k1(e, t) {
53781
53787
  notes: l
53782
53788
  };
53783
53789
  }
53784
- var A1 = 18e4;
53785
- function j1(e, t) {
53790
+ var j1 = 18e4;
53791
+ function M1(e, t) {
53786
53792
  let { item: n } = e;
53787
53793
  if (n.state === "failed") return {
53788
53794
  tone: "failed",
@@ -53806,10 +53812,10 @@ function j1(e, t) {
53806
53812
  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;
53807
53813
  return o >= 18e4 ? i?.phase === "command" ? {
53808
53814
  tone: "warn",
53809
- text: `命令已运行 ${O1(o)}`
53815
+ text: `命令已运行 ${k1(o)}`
53810
53816
  } : {
53811
53817
  tone: "warn",
53812
- text: `已 ${O1(o)} 无输出,可能卡住`
53818
+ text: `已 ${k1(o)} 无输出,可能卡住`
53813
53819
  } : n.last_note ? {
53814
53820
  tone: "live",
53815
53821
  text: n.last_note
@@ -53821,7 +53827,7 @@ function j1(e, t) {
53821
53827
  text: "处理中"
53822
53828
  };
53823
53829
  }
53824
- function M1(e, t) {
53830
+ function N1(e, t) {
53825
53831
  return [...e.segments.map((e) => ({
53826
53832
  at: e.start,
53827
53833
  kind: "phase",
@@ -53835,7 +53841,41 @@ function M1(e, t) {
53835
53841
  text: t?.[e.index] ?? (t ? "(未能读取)" : "读取中…")
53836
53842
  }))].sort((e, t) => e.at - t.at || (e.kind === "note") - (t.kind === "note"));
53837
53843
  }
53838
- function N1(e, t, n) {
53844
+ function P1(e, t, n = /* @__PURE__ */ new Map()) {
53845
+ let r = t / 1e3, i = [];
53846
+ for (let t of e.executions) {
53847
+ if ((t.queued_at || t.dispatched_at || Infinity) > r) continue;
53848
+ if (t.finished_at && t.finished_at <= r) {
53849
+ i.push(t);
53850
+ continue;
53851
+ }
53852
+ let e = t.dispatched_at && t.dispatched_at <= r ? t.dispatched_at : 0, a = e ? (r - e) * 1e3 : 0, o = (t.notes || []).filter((e) => e <= r);
53853
+ i.push({
53854
+ ...t,
53855
+ state: "running",
53856
+ status: "started",
53857
+ finished_at: 0,
53858
+ dispatched_at: e,
53859
+ started_at: t.started_at && t.started_at <= r ? t.started_at : 0,
53860
+ segments: e ? t.segments.filter((e) => e.start_ms <= a).map((e) => ({
53861
+ ...e,
53862
+ end_ms: Math.min(e.end_ms, a)
53863
+ })) : [],
53864
+ notes: o,
53865
+ last_note: o.length ? n.get(t.id)?.[o.length - 1] ?? null : null,
53866
+ activity_at: t.activity_at && t.activity_at <= r ? t.activity_at : 0,
53867
+ reason: "",
53868
+ result: null,
53869
+ answer_id: null,
53870
+ changes: null
53871
+ });
53872
+ }
53873
+ return {
53874
+ ...e,
53875
+ executions: i
53876
+ };
53877
+ }
53878
+ function F1(e, t, n) {
53839
53879
  let r = e.filter((e) => e.at >= t && e.at <= n);
53840
53880
  if (r.length) return {
53841
53881
  notes: r,
@@ -53847,13 +53887,13 @@ function N1(e, t, n) {
53847
53887
  earlier: !!i
53848
53888
  };
53849
53889
  }
53850
- function P1(e, t) {
53890
+ function I1(e, t) {
53851
53891
  let n = e.executions.map((n) => ({
53852
53892
  key: `${n.source}:${n.id}`,
53853
53893
  parent: n.parent_id ? `free:${n.parent_id}` : "",
53854
53894
  item: n,
53855
53895
  truncated: n.segments.length >= e.segment_limit,
53856
- ...k1(n, t)
53896
+ ...A1(n, t)
53857
53897
  })), r = new Map(n.map((e) => [e.key, e])), i = (e) => {
53858
53898
  let t = r.get(e.parent);
53859
53899
  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);
@@ -53868,6 +53908,7 @@ function P1(e, t) {
53868
53908
  ...r,
53869
53909
  depth: t,
53870
53910
  ancestors: n,
53911
+ placed_parent: e,
53871
53912
  has_children: !!a.get(r.key)?.length
53872
53913
  }), c(r.key, t + 1, [...n, r.key]));
53873
53914
  };
@@ -53876,59 +53917,144 @@ function P1(e, t) {
53876
53917
  ...e,
53877
53918
  depth: 0,
53878
53919
  ancestors: [],
53920
+ placed_parent: "",
53879
53921
  has_children: !1
53880
53922
  });
53881
53923
  return o;
53882
53924
  }
53883
- function F1(e) {
53884
- let t = e.map((e) => [e.start, e.end]).sort((e, t) => e[0] - t[0]);
53885
- if (!t.length) return {
53925
+ function L1(e, t) {
53926
+ if (e.source === "discussion") return `run:${e.run_id || e.id}`;
53927
+ let n = e;
53928
+ 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);
53929
+ return n.task_id ? `task:${n.task_id}` : `exec:${n.id}`;
53930
+ }
53931
+ function R1(e, t) {
53932
+ let n = new Map(e.executions.filter((e) => e.source === "free").map((e) => [e.id, e])), r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map();
53933
+ for (let a of e.executions) {
53934
+ let e = L1(a, n);
53935
+ i.set(`${a.source}:${a.id}`, e);
53936
+ let o = A1(a, t), s = r.get(e) || {
53937
+ key: e,
53938
+ source: a.source,
53939
+ start: o.start,
53940
+ end: o.end,
53941
+ count: 0,
53942
+ running: !1,
53943
+ failed: !1,
53944
+ task: "",
53945
+ first: Infinity
53946
+ };
53947
+ s.start = Math.min(s.start, o.start), s.end = Math.max(s.end, o.end), s.count += 1, s.running ||= a.state === "running", s.failed ||= a.state === "failed", a.task && o.start < s.first && (s.task = a.task, s.first = o.start), r.set(e, s);
53948
+ }
53949
+ return {
53950
+ list: [...r.values()].sort((e, t) => t.start - e.start),
53951
+ of: i
53952
+ };
53953
+ }
53954
+ function z1(e, t) {
53955
+ let n = new Map(e.map((e, t) => [e.key, t])), r = /* @__PURE__ */ new Map(), i = (e, t) => {
53956
+ r.has(e) || r.set(e, []), r.get(e).push(t);
53957
+ };
53958
+ return e.forEach((r, a) => {
53959
+ let o = n.get(r.placed_parent);
53960
+ if (o === void 0 || o >= a) return;
53961
+ let s = t.x(r.queue[0]), c = r.item.member;
53962
+ i(e[o].key, {
53963
+ x: s,
53964
+ part: "start",
53965
+ member: c
53966
+ });
53967
+ for (let t = o + 1; t < a; t += 1) i(e[t].key, {
53968
+ x: s,
53969
+ part: "through",
53970
+ member: c
53971
+ });
53972
+ i(r.key, {
53973
+ x: s,
53974
+ part: "end",
53975
+ member: c,
53976
+ to: t.x(r.queue[1] > r.queue[0] ? r.queue[0] : r.start)
53977
+ });
53978
+ }), r;
53979
+ }
53980
+ var B1 = [
53981
+ 5,
53982
+ 10,
53983
+ 15,
53984
+ 20,
53985
+ 30,
53986
+ 45,
53987
+ 60,
53988
+ 90,
53989
+ 120,
53990
+ 180,
53991
+ 300,
53992
+ 600,
53993
+ 900,
53994
+ 1200,
53995
+ 1800,
53996
+ 2700,
53997
+ 3600,
53998
+ 5400,
53999
+ 7200,
54000
+ 10800,
54001
+ 21600,
54002
+ 43200,
54003
+ 86400
54004
+ ].map((e) => e * 1e3), V1 = .75;
54005
+ function H1(e, t = !1) {
54006
+ let n = e.map((e) => [e.start, e.end]).sort((e, t) => e[0] - t[0]);
54007
+ if (!n.length) return {
53886
54008
  start: 0,
53887
54009
  end: 0,
53888
54010
  busy_ms: 0,
53889
54011
  folds: [],
54012
+ spans: [],
53890
54013
  x: () => 0
53891
54014
  };
53892
- let n = [];
53893
- for (let [e, r] of t) {
53894
- let t = n.at(-1);
53895
- t && e <= t[1] + 3e5 ? t[1] = Math.max(t[1], r) : n.push([e, r]);
53896
- }
53897
- let r = n.reduce((e, [t, n]) => e + (n - t), 0), i = Math.min(D1, .5 / Math.max(1, n.length - 1)), a = r ? (1 - i * (n.length - 1)) / r : 0, o = [], s = 0;
53898
- return n.forEach(([e, t], c) => {
53899
- if (c) {
53900
- let t = n[c - 1][1];
53901
- o.push({
54015
+ let r = [];
54016
+ for (let [e, t] of n) {
54017
+ let n = r.at(-1);
54018
+ n && e <= n[1] + 3e5 ? n[1] = Math.max(n[1], t) : r.push([e, t]);
54019
+ }
54020
+ let i = r.reduce((e, [t, n]) => e + (n - t), 0), a = i;
54021
+ t && i && (a = B1.find((e) => e >= i / V1) ?? Math.ceil(i / V1), r.at(-1)[1] += a - i);
54022
+ let o = Math.min(O1, .5 / Math.max(1, r.length - 1)), s = a ? (1 - o * (r.length - 1)) / a : 0, c = [], l = 0;
54023
+ return r.forEach(([e, t], n) => {
54024
+ if (n) {
54025
+ let t = r[n - 1][1];
54026
+ c.push({
53902
54027
  start: t,
53903
54028
  end: e,
53904
- from: s,
53905
- width: i,
54029
+ from: l,
54030
+ width: o,
53906
54031
  fold: !0
53907
- }), s += i;
54032
+ }), l += o;
53908
54033
  }
53909
- let l = r ? (t - e) * a : 1 / n.length;
53910
- o.push({
54034
+ let i = a ? (t - e) * s : 1 / r.length;
54035
+ c.push({
53911
54036
  start: e,
53912
54037
  end: t,
53913
- from: s,
53914
- width: l,
54038
+ from: l,
54039
+ width: i,
53915
54040
  fold: !1
53916
- }), s += l;
54041
+ }), l += i;
53917
54042
  }), {
53918
- start: n[0][0],
53919
- end: n.at(-1)[1],
53920
- busy_ms: r,
54043
+ start: r[0][0],
54044
+ end: r.at(-1)[1],
54045
+ busy_ms: i,
54046
+ total_ms: a,
53921
54047
  x: (e) => {
53922
- let t = o.find((t) => e <= t.end) || o.at(-1);
54048
+ let t = c.find((t) => e <= t.end) || c.at(-1);
53923
54049
  return e <= t.start ? t.from : t.from + (t.end > t.start ? Math.min(1, (e - t.start) / (t.end - t.start)) * t.width : 0);
53924
54050
  },
53925
- spans: o.filter((e) => !e.fold).map(({ start: e, end: t, from: n, width: r }) => ({
54051
+ spans: c.filter((e) => !e.fold).map(({ start: e, end: t, from: n, width: r }) => ({
53926
54052
  start: e,
53927
54053
  end: t,
53928
54054
  from: n,
53929
54055
  width: r
53930
54056
  })),
53931
- folds: o.filter((e) => e.fold).map(({ start: e, end: t, from: n, width: r }) => ({
54057
+ folds: c.filter((e) => e.fold).map(({ start: e, end: t, from: n, width: r }) => ({
53932
54058
  start: e,
53933
54059
  end: t,
53934
54060
  from: n,
@@ -53936,7 +54062,7 @@ function F1(e) {
53936
54062
  }))
53937
54063
  };
53938
54064
  }
53939
- var I1 = [
54065
+ var U1 = [
53940
54066
  1,
53941
54067
  2,
53942
54068
  5,
@@ -53955,23 +54081,24 @@ var I1 = [
53955
54081
  21600,
53956
54082
  43200,
53957
54083
  86400
53958
- ].map((e) => e * 1e3), L1 = .12;
53959
- function R1(e, t = 6) {
53960
- if (!e.busy_ms) return [];
53961
- let n = I1.find((n) => e.busy_ms / n <= t) ?? I1.at(-1), r = [];
53962
- for (let t of e.spans) for (let i = Math.ceil(t.start / n) * n; i <= t.end; i += n) {
53963
- let t = e.x(i);
53964
- (!r.length || t - r.at(-1).x >= L1) && r.push({
53965
- at: i,
54084
+ ].map((e) => e * 1e3), W1 = .12;
54085
+ function G1(e, t = 6) {
54086
+ let n = e.total_ms ?? e.busy_ms;
54087
+ if (!n) return [];
54088
+ let r = U1.find((e) => n / e <= t) ?? U1.at(-1), i = [];
54089
+ for (let t of e.spans) for (let n = Math.ceil(t.start / r) * r; n <= t.end; n += r) {
54090
+ let t = e.x(n);
54091
+ (!i.length || t - i.at(-1).x >= W1) && i.push({
54092
+ at: n,
53966
54093
  x: t
53967
54094
  });
53968
54095
  }
53969
- return r.map((e) => ({
54096
+ return i.map((e) => ({
53970
54097
  ...e,
53971
- seconds: n < 6e4
54098
+ seconds: r < 6e4
53972
54099
  }));
53973
54100
  }
53974
- function z1(e, t = Date.now()) {
54101
+ function K1(e, t = Date.now()) {
53975
54102
  let n = null;
53976
54103
  for (let t of e) for (let e of t.segments) (!n || e.seen - e.start > n.end - n.start) && (n = {
53977
54104
  ...e,
@@ -53983,7 +54110,7 @@ function z1(e, t = Date.now()) {
53983
54110
  executions: e.length,
53984
54111
  running: e.filter((e) => e.item.state === "running").length,
53985
54112
  failed: e.filter((e) => e.item.state === "failed").length,
53986
- stalled: e.filter((e) => e.item.state === "running" && j1(e, t).tone === "warn").length,
54113
+ stalled: e.filter((e) => e.item.state === "running" && M1(e, t).tone === "warn").length,
53987
54114
  tool_segments: e.reduce((e, t) => e + t.segments.filter((e) => [
53988
54115
  "command",
53989
54116
  "tool",
@@ -53994,319 +54121,483 @@ function z1(e, t = Date.now()) {
53994
54121
  }
53995
54122
  //#endregion
53996
54123
  //#region frontend/ExecutionTimeline.vue
53997
- var B1 = {
54124
+ var q1 = {
53998
54125
  class: "merged-section execution-timeline",
53999
54126
  "aria-label": "执行时间线"
54000
- }, V1 = {
54127
+ }, J1 = {
54001
54128
  key: 0,
54002
54129
  role: "alert",
54003
54130
  class: "fine-print wf-error"
54004
- }, H1 = {
54131
+ }, Y1 = {
54005
54132
  key: 1,
54006
54133
  class: "fine-print"
54007
- }, U1 = {
54134
+ }, X1 = {
54008
54135
  key: 2,
54009
54136
  class: "wf"
54010
- }, W1 = { class: "wf-head" }, G1 = {
54137
+ }, Z1 = { class: "wf-head" }, Q1 = { class: "wf-run" }, $1 = ["value"], e0 = {
54011
54138
  key: 0,
54012
54139
  class: "wf-headline"
54013
- }, K1 = { class: "wf-summary" }, q1 = ["title"], J1 = ["title"], Y1 = { title: "连续调用同一工具合并为一段" }, X1 = {
54140
+ }, t0 = { class: "wf-summary" }, n0 = ["title"], r0 = ["title"], i0 = { title: "连续调用同一工具合并为一段" }, a0 = {
54014
54141
  class: "wf-legend",
54015
54142
  "aria-label": "图例"
54016
- }, Z1 = {
54143
+ }, o0 = {
54017
54144
  key: 0,
54018
54145
  class: "wf-legend-note"
54019
- }, Q1 = { class: "wf-axis-label" }, $1 = {
54146
+ }, s0 = {
54147
+ key: 1,
54148
+ class: "wf-legend-note"
54149
+ }, c0 = { class: "wf-axis-label" }, l0 = {
54020
54150
  key: 0,
54021
54151
  class: "wf-branch"
54022
- }, e0 = ["title"], t0 = {
54023
- key: 0,
54024
- class: "wf-now"
54025
- }, n0 = {
54152
+ }, u0 = ["title"], d0 = {
54026
54153
  key: 0,
54027
54154
  class: "wf-guides",
54028
54155
  "aria-hidden": "true"
54029
- }, r0 = [
54156
+ }, f0 = [
54030
54157
  "aria-expanded",
54031
54158
  "aria-label",
54032
54159
  "onClick"
54033
- ], i0 = {
54160
+ ], p0 = {
54034
54161
  key: 2,
54035
54162
  class: "wf-toggle-space"
54036
- }, a0 = [
54163
+ }, m0 = [
54037
54164
  "aria-expanded",
54038
54165
  "title",
54039
54166
  "onClick"
54040
- ], o0 = { class: "wf-name-line" }, s0 = {
54167
+ ], h0 = { class: "wf-name-line" }, g0 = {
54041
54168
  key: 0,
54169
+ class: "wf-spinner",
54170
+ "aria-hidden": "true"
54171
+ }, _0 = {
54172
+ key: 1,
54042
54173
  class: "wf-pill is-slowest"
54043
- }, c0 = {
54174
+ }, v0 = {
54044
54175
  key: 0,
54045
54176
  class: "wf-live-dot",
54046
54177
  "aria-hidden": "true"
54047
- }, l0 = ["aria-label", "onMouseleave"], u0 = { class: "wf-track" }, d0 = ["onMouseenter", "onClick"], f0 = ["onMouseenter", "onClick"], p0 = [
54178
+ }, y0 = ["aria-label", "onMouseleave"], b0 = { class: "wf-track" }, x0 = ["data-tone"], S0 = ["onMouseenter", "onClick"], C0 = ["onMouseenter", "onClick"], w0 = [
54048
54179
  "data-tone",
54049
54180
  "onMouseenter",
54050
54181
  "onClick"
54051
- ], m0 = ["onMouseenter", "onClick"], h0 = ["onMouseenter", "onClick"], g0 = [
54182
+ ], T0 = [
54183
+ "data-tone",
54184
+ "onMouseenter",
54185
+ "onClick"
54186
+ ], E0 = [
54187
+ "data-tone",
54188
+ "onMouseenter",
54189
+ "onClick"
54190
+ ], D0 = [
54052
54191
  "aria-label",
54053
54192
  "onMouseenter",
54054
54193
  "onClick",
54055
54194
  "onFocus",
54056
54195
  "onBlur"
54057
- ], _0 = { class: "wf-end" }, v0 = { key: 1 }, y0 = { key: 0 }, b0 = ["onClick"], x0 = { key: 1 }, S0 = { class: "is-failed" }, C0 = { key: 2 }, w0 = ["onClick"], T0 = { key: 3 }, E0 = {
54196
+ ], O0 = { class: "wf-end" }, k0 = { key: 1 }, A0 = { key: 0 }, j0 = ["onClick"], M0 = { key: 1 }, N0 = { class: "is-failed" }, P0 = { key: 2 }, F0 = ["onClick"], I0 = { key: 3 }, L0 = {
54058
54197
  key: 0,
54059
54198
  class: "wf-log",
54060
54199
  "aria-label": "过程"
54061
- }, D0 = {
54200
+ }, R0 = ["data-tone"], z0 = {
54062
54201
  key: 1,
54063
54202
  class: "wf-log-note"
54064
- }, O0 = {
54203
+ }, B0 = {
54065
54204
  key: 1,
54066
54205
  class: "fine-print"
54067
- }, k0 = {
54206
+ }, V0 = {
54068
54207
  key: 0,
54208
+ class: "wf-player"
54209
+ }, H0 = ["aria-label"], U0 = ["disabled"], W0 = { value: 0 }, G0 = ["value"], K0 = ["max", "value"], q0 = { class: "wf-player-time" }, J0 = {
54210
+ key: 1,
54069
54211
  class: "wf-foot"
54070
- }, A0 = { key: 0 }, j0 = { key: 1 }, M0 = ["role"], N0 = {
54212
+ }, Y0 = { key: 0 }, X0 = { key: 1 }, Z0 = ["role"], Q0 = {
54071
54213
  key: 1,
54072
54214
  class: "wf-card-reason"
54073
- }, P0 = { class: "wf-card-label" }, F0 = 2e3, I0 = 6e4, L0 = 100, R0 = 5, z0 = 16, B0 = 90, V0 = 2, H0 = 8, U0 = 5, W0 = 52, G0 = /*#__PURE__*/ XH({
54215
+ }, $0 = { class: "wf-card-label" }, e2 = 2e3, t2 = 6e4, n2 = 100, r2 = 60, i2 = 2e4, a2 = 600, o2 = 5, s2 = 16, c2 = 90, l2 = 2, u2 = 8, d2 = "latest", f2 = "all", p2 = 22, m2 = 5, h2 = 52, g2 = /*#__PURE__*/ XH({
54074
54216
  __name: "ExecutionTimeline",
54075
54217
  emits: ["detail"],
54076
54218
  setup(e, { emit: t }) {
54077
- let n = t, { view: r, bridge: i } = xr("discussion"), a = A1 / 6e4, o = typeof window < "u" && window.matchMedia?.("(hover: hover)").matches !== !1, s = /* @__PURE__ */ F(null), c = /* @__PURE__ */ F(0), l = null, u = Z(() => r.value.room?.id), d = /* @__PURE__ */ F(/* @__PURE__ */ new Map()), f = /* @__PURE__ */ F(null), p = /* @__PURE__ */ F(""), m = /* @__PURE__ */ F(Date.now()), h = /* @__PURE__ */ F(/* @__PURE__ */ new Set()), g = /* @__PURE__ */ F(/* @__PURE__ */ new Map()), _ = /* @__PURE__ */ F(null), v = /* @__PURE__ */ F(""), y = 0, b = 0, x = !1, S = 0, C = 0;
54078
- async function w(e = !1) {
54079
- let t = u.value;
54080
- if (!t || x) return;
54081
- x = !0;
54082
- let n = e || !y || Date.now() - b >= I0 ? 0 : y - R0;
54219
+ let n = t, { view: r, bridge: i } = xr("discussion"), a = j1 / 6e4, o = [
54220
+ 1,
54221
+ 2,
54222
+ 4,
54223
+ 8,
54224
+ 16,
54225
+ 32
54226
+ ], s = typeof window < "u" && window.matchMedia?.("(hover: hover)").matches !== !1, c = /* @__PURE__ */ F(null), l = /* @__PURE__ */ F(0), u = null, d = Z(() => r.value.room?.id), f = /* @__PURE__ */ F(/* @__PURE__ */ new Map()), p = /* @__PURE__ */ F(null), m = /* @__PURE__ */ F(""), h = /* @__PURE__ */ F(Date.now()), g = /* @__PURE__ */ F(/* @__PURE__ */ new Set()), _ = /* @__PURE__ */ F(/* @__PURE__ */ new Map()), v = /* @__PURE__ */ F(null), y = /* @__PURE__ */ F(""), b = 0, x = 0, S = !1, C = 0, w = 0, T = 0, E = 0, D = /* @__PURE__ */ Yt({
54227
+ position: null,
54228
+ playing: !1,
54229
+ speed: 0
54230
+ }), O = 0;
54231
+ async function ee(e = !1) {
54232
+ let t = d.value;
54233
+ if (!t || S) return;
54234
+ S = !0;
54235
+ let n = e || !b || Date.now() - x >= t2 ? 0 : b - o2;
54083
54236
  try {
54084
54237
  let e = await i.request(`/api/rooms/${t}/timeline${n ? `?after=${n}` : ""}`);
54085
- if (t !== u.value) return;
54086
- let r = n ? new Map(d.value) : /* @__PURE__ */ new Map();
54238
+ if (t !== d.value) return;
54239
+ let r = n ? new Map(f.value) : /* @__PURE__ */ new Map();
54087
54240
  for (let t of e.executions) r.set(`${t.source}:${t.id}`, t);
54088
- d.value = r, f.value = {
54241
+ f.value = r, p.value = {
54089
54242
  execution_limit: e.execution_limit,
54090
54243
  segment_limit: e.segment_limit
54091
- }, y = e.now, n || (b = Date.now()), p.value = "";
54244
+ }, b = e.now, n || (x = Date.now()), m.value = "";
54092
54245
  } catch (e) {
54093
- p.value = `读取执行记录失败:${e.message}`;
54246
+ m.value = `读取执行记录失败:${e.message}`;
54094
54247
  } finally {
54095
- x = !1;
54096
- }
54097
- }
54098
- let T = Z(() => f.value && {
54099
- ...f.value,
54100
- executions: [...d.value.values()]
54101
- }), E = Z(() => T.value?.executions.some((e) => e.state === "running"));
54102
- R(E, (e) => {
54103
- clearInterval(S), clearInterval(C), e && (S = setInterval(() => {
54104
- document.hidden || w();
54105
- }, F0), C = setInterval(() => {
54106
- m.value = Date.now();
54107
- }, L0));
54108
- }, { immediate: !0 }), R(u, () => {
54109
- d.value = /* @__PURE__ */ new Map(), f.value = null, h.value = /* @__PURE__ */ new Set(), g.value = /* @__PURE__ */ new Map(), _.value = null, v.value = "", y = 0, w(!0);
54248
+ S = !1;
54249
+ }
54250
+ }
54251
+ let k = Z(() => p.value && {
54252
+ ...p.value,
54253
+ executions: [...f.value.values()]
54254
+ });
54255
+ R(Z(() => k.value?.executions.some((e) => e.state === "running")), (e) => {
54256
+ clearInterval(C), e && (C = setInterval(() => {
54257
+ document.hidden || ee();
54258
+ }, e2));
54259
+ }, { immediate: !0 }), R(d, () => {
54260
+ f.value = /* @__PURE__ */ new Map(), p.value = null, g.value = /* @__PURE__ */ new Set(), _.value = /* @__PURE__ */ new Map(), v.value = null, y.value = "", b = 0, ee(!0);
54110
54261
  }, { immediate: !0 }), R(() => r.value.room, (e, t) => {
54111
- e?.id && e.id === t?.id && w();
54262
+ e?.id && e.id === t?.id && ee();
54112
54263
  });
54113
- function D(e) {
54114
- _.value && !e.target.closest?.(".wf-card, .wf-bar, .wf-note") && (_.value = null);
54264
+ function te(e) {
54265
+ v.value && !e.target.closest?.(".wf-card, .wf-bar, .wf-note") && (v.value = null);
54115
54266
  }
54116
54267
  Qi(() => {
54117
- document.addEventListener("pointerdown", D), l = new ResizeObserver(([e]) => {
54118
- c.value = e.contentRect.width;
54268
+ document.addEventListener("pointerdown", te), u = new ResizeObserver(([e]) => {
54269
+ l.value = e.contentRect.width;
54119
54270
  });
54120
- }), R(s, (e, t) => {
54121
- t && l?.unobserve(t), e && l?.observe(e);
54271
+ }), R(c, (e, t) => {
54272
+ t && u?.unobserve(t), e && u?.observe(e);
54122
54273
  }), ta(() => {
54123
- clearInterval(S), clearInterval(C), document.removeEventListener("pointerdown", D), l?.disconnect();
54274
+ clearInterval(C), cancelAnimationFrame(w), document.removeEventListener("pointerdown", te), u?.disconnect();
54275
+ });
54276
+ let ne = /* @__PURE__ */ F(d2), re = Z(() => k.value ? R1(k.value, h.value) : {
54277
+ list: [],
54278
+ of: /* @__PURE__ */ new Map()
54279
+ }), ie = Z(() => ne.value === d2 ? re.value.list[0]?.key : ne.value === f2 || re.value.list.some((e) => e.key === ne.value) ? ne.value : re.value.list[0]?.key), A = Z(() => !k.value || ie.value === f2 ? k.value : {
54280
+ ...k.value,
54281
+ executions: k.value.executions.filter((e) => re.value.of.get(`${e.source}:${e.id}`) === ie.value)
54282
+ });
54283
+ R(d, () => {
54284
+ ne.value = d2;
54285
+ });
54286
+ let j = (e) => new Date(e).toLocaleString("zh-CN", {
54287
+ month: "numeric",
54288
+ day: "numeric",
54289
+ hour: "2-digit",
54290
+ minute: "2-digit",
54291
+ hour12: !1
54292
+ });
54293
+ function ae(e) {
54294
+ let t = e.task ? `${e.task.replace(/\s+/g, " ").slice(0, p2)}${e.task.length > p2 ? "…" : ""}` : e.source === "discussion" ? "讨论" : "执行";
54295
+ return `${j(e.start)} · ${t} · ${e.count} 次${e.running ? " · 进行中" : e.failed ? " · 有失败" : ""}`;
54296
+ }
54297
+ let oe = Z(() => A.value ? I1(A.value, h.value) : []), se = Z(() => oe.value.some((e) => e.item.state === "running")), ce = Z(() => {
54298
+ let e = Math.min(...oe.value.map((e) => e.start)), t = Math.max(...oe.value.map((e) => e.end));
54299
+ return Number.isFinite(e) ? {
54300
+ start: e,
54301
+ end: t,
54302
+ duration: Math.max(0, t - e)
54303
+ } : {
54304
+ start: 0,
54305
+ end: 0,
54306
+ duration: 0
54307
+ };
54308
+ }), le = Z(() => D.position !== null && !se.value), ue = Z(() => le.value ? ce.value.start + D.position : h.value), de = Z(() => le.value ? I1(P1(A.value, ue.value, _.value), ue.value) : oe.value), pe = Z(() => de.value.filter((e) => !e.ancestors.some((e) => g.value.has(e)))), me = Z(() => de.value.some((e) => e.item.state === "running")), he = Z(() => H1(de.value, me.value)), ge = Z(() => me.value ? he.value.x(ue.value) : null), N = Z(() => Math.max(1, ce.value.duration / i2)), _e = Z(() => D.speed || N.value);
54309
+ function ve(e) {
54310
+ let t = T ? Math.min(e - T, 250) : 0;
54311
+ T = e;
54312
+ let n = de.value.length <= r2 || e - E >= n2;
54313
+ D.playing && (O += t * _e.value, O >= ce.value.duration ? Object.assign(D, {
54314
+ position: null,
54315
+ playing: !1
54316
+ }) : n && (D.position = O)), se.value && n && (h.value = Date.now()), n && (E = e), w = se.value || D.playing ? requestAnimationFrame(ve) : 0, w || (T = 0);
54317
+ }
54318
+ R([se, () => D.playing], () => {
54319
+ !w && (se.value || D.playing) && (w = requestAnimationFrame(ve));
54320
+ }, { immediate: !0 });
54321
+ async function ye() {
54322
+ D.position === null ? (O = 0, Ee()) : O = D.position, Object.assign(D, {
54323
+ position: O,
54324
+ playing: !0
54325
+ }), be();
54326
+ }
54327
+ function be() {
54328
+ for (let e of A.value?.executions || []) We({
54329
+ item: e,
54330
+ notes: e.notes || []
54331
+ });
54332
+ }
54333
+ function xe() {
54334
+ D.playing = !1;
54335
+ }
54336
+ function Se() {
54337
+ O = 0, Ee(), Object.assign(D, {
54338
+ position: 0,
54339
+ playing: !0
54340
+ });
54341
+ }
54342
+ function Ce(e) {
54343
+ O = Number(e.target.value), Object.assign(D, {
54344
+ position: O,
54345
+ playing: !1
54346
+ }), be();
54347
+ }
54348
+ R([ie, d], () => Object.assign(D, {
54349
+ position: null,
54350
+ playing: !1
54351
+ }));
54352
+ let we = /* @__PURE__ */ F(/* @__PURE__ */ new Set()), Te = null;
54353
+ function Ee() {
54354
+ Te = /* @__PURE__ */ new Set(), we.value = /* @__PURE__ */ new Set();
54355
+ }
54356
+ R(() => pe.value.map((e) => e.key).join(), () => {
54357
+ let e = pe.value.map((e) => e.key);
54358
+ if (!Te) {
54359
+ Te = new Set(e);
54360
+ return;
54361
+ }
54362
+ let t = e.filter((e) => !Te.has(e));
54363
+ t.forEach((e) => Te.add(e)), t.length && (we.value = /* @__PURE__ */ new Set([...we.value, ...t]), setTimeout(() => {
54364
+ we.value = new Set([...we.value].filter((e) => !t.includes(e)));
54365
+ }, a2));
54366
+ }), R([ie, d], () => {
54367
+ Te = null;
54124
54368
  });
54125
- let O = Z(() => T.value ? P1(T.value, m.value) : []), ee = Z(() => O.value.filter((e) => !e.ancestors.some((e) => h.value.has(e)))), k = Z(() => F1(O.value)), te = Z(() => R1(k.value, Math.min(H0, Math.max(V0, Math.round((c.value || 540) / B0))))), ne = Z(() => z1(O.value, m.value)), re = Z(() => O.value.filter((e) => e.has_children).map((e) => e.key)), ie = Z(() => O.value.find((e) => e.key === v.value)), A = Z(() => ie.value ? M1(ie.value, g.value.get(ie.value.item.id)) : []), j = Z(() => {
54126
- let e = O.value, t = new Set(e.flatMap((e) => e.segments.map((e) => e.phase)));
54369
+ let De = Z(() => z1(pe.value, he.value)), Oe = Z(() => G1(he.value, Math.min(u2, Math.max(l2, Math.round((l.value || 540) / c2))))), ke = Z(() => K1(de.value, ue.value)), Ae = Z(() => de.value.filter((e) => e.has_children).map((e) => e.key)), je = Z(() => de.value.find((e) => e.key === y.value)), Me = Z(() => je.value ? N1(je.value, _.value.get(je.value.item.id)) : []), Ne = Z(() => {
54370
+ let e = de.value, t = new Set(e.flatMap((e) => e.segments.map((e) => T1[e.phase])));
54127
54371
  return [
54128
54372
  ...e.some((e) => e.queue[1] > e.queue[0]) ? [["queue", "排队"]] : [],
54129
54373
  ...e.some((e) => e.wake) ? [["wake", "唤醒"]] : [],
54130
- ...e.some((e) => e.work && !e.segments.length) ? [["work", "执行(无阶段明细,按成员着色)"]] : [],
54131
- ...Object.entries(w1).filter(([e]) => t.has(e)),
54374
+ ...t.has("model") ? [["model", "模型(思考、撰写)"]] : [],
54375
+ ...t.has("tool") ? [["tool", "工具(命令、工具、编辑)"]] : [],
54376
+ ...e.some((e) => e.work && !e.segments.length) ? [["work", "执行(无阶段明细)"]] : [],
54377
+ ...e.some((e) => e.placed_parent) ? [["handoff", "派活"]] : [],
54132
54378
  ...e.some((e) => e.notes.length) ? [["note-mark", "过程说明"]] : [],
54133
54379
  ...e.some((e) => e.item.state === "failed") ? [["failed-mark", "失败"]] : []
54134
54380
  ];
54135
- }), ae = Z(() => O.value.length > 0 && O.value.every((e) => !e.segments.length)), oe = Z(() => {
54381
+ }), Pe = Z(() => de.value.length > 0 && de.value.every((e) => !e.segments.length)), Fe = Z(() => {
54136
54382
  let e = /* @__PURE__ */ new Map();
54137
- for (let t of [...O.value].sort((e, t) => e.start - t.start)) e.has(t.item.member) || e.set(t.item.member, e.size % U0 + 1);
54383
+ for (let t of [...de.value].sort((e, t) => e.start - t.start)) e.has(t.item.member) || e.set(t.item.member, e.size % m2 + 1);
54138
54384
  return e;
54139
- }), se = Z(() => {
54140
- let e = W0 / (c.value || 800);
54141
- return te.value.filter((t) => !k.value.folds.some((n) => Math.abs(t.x - (n.from + n.width / 2)) < e));
54385
+ }), Ie = Z(() => {
54386
+ let e = h2 / (l.value || 800);
54387
+ return Oe.value.filter((t) => !he.value.folds.some((n) => Math.abs(t.x - (n.from + n.width / 2)) < e));
54142
54388
  });
54143
- function ce(e) {
54144
- v.value = v.value === e.key ? "" : e.key, v.value && ge(e);
54389
+ function Le(e) {
54390
+ y.value = y.value === e.key ? "" : e.key, y.value && We(e);
54145
54391
  }
54146
- R(() => ie.value?.notes.length, () => {
54147
- ie.value && ge(ie.value);
54392
+ R(() => je.value?.notes.length, () => {
54393
+ je.value && We(je.value);
54148
54394
  });
54149
- function le(e) {
54150
- let t = new Set(h.value);
54151
- t.has(e) ? t.delete(e) : t.add(e), h.value = t;
54395
+ function Re(e) {
54396
+ let t = new Set(g.value);
54397
+ t.has(e) ? t.delete(e) : t.add(e), g.value = t;
54152
54398
  }
54153
- function ue(e, t, n = !1) {
54154
- let r = k.value.x(e), i = Math.max(0, k.value.x(t) - r) * 100;
54399
+ function ze(e, t, n = !1) {
54400
+ let r = he.value.x(e), i = Math.max(0, he.value.x(t) - r) * 100;
54155
54401
  return {
54156
54402
  left: `${r * 100}%`,
54157
54403
  width: n ? `max(2px, calc(${i}% - 1px))` : `${i}%`
54158
54404
  };
54159
54405
  }
54160
- function de(e) {
54406
+ function Be(e) {
54161
54407
  let t = e.item.role === "host";
54162
54408
  return e.item.source === "discussion" ? t ? "讨论 · 主持" : "讨论 · 专家" : t ? "协作 · 主持" : "协作";
54163
54409
  }
54164
- function pe(e) {
54410
+ function Ve(e) {
54165
54411
  return [...e.item.source === "discussion" ? ["讨论"] : [], ...e.item.role === "host" ? ["主持"] : []];
54166
54412
  }
54167
- let me = (e) => j1(e, m.value);
54168
- function he(e) {
54413
+ let He = (e) => M1(e, ue.value);
54414
+ function Ue(e) {
54169
54415
  let t = [
54170
54416
  i.display_name(e.item.member),
54171
- de(e),
54172
- T1[e.item.state],
54173
- `用时 ${O1(e.end - e.start)}`
54417
+ Be(e),
54418
+ E1[e.item.state],
54419
+ `用时 ${k1(e.end - e.start)}`
54174
54420
  ];
54175
- 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(",");
54421
+ return e.wake && t.push(`唤醒 ${k1(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(",");
54176
54422
  }
54177
- async function ge(e) {
54423
+ async function We(e) {
54178
54424
  let t = e.item.id;
54179
- if (!(e.item.source !== "free" || !e.notes.length || (g.value.get(t)?.length || 0) >= e.notes.length)) try {
54180
- let { notes: e } = await i.request(`/api/rooms/${u.value}/executions/${t}/notes`);
54181
- g.value = new Map(g.value).set(t, e.map((e) => e.text));
54425
+ if (!(e.item.source !== "free" || !e.notes.length || (_.value.get(t)?.length || 0) >= e.notes.length)) try {
54426
+ let { notes: e } = await i.request(`/api/rooms/${d.value}/executions/${t}/notes`);
54427
+ _.value = new Map(_.value).set(t, e.map((e) => e.text));
54182
54428
  } catch {}
54183
54429
  }
54184
- let N = (e) => new Date(e).toLocaleTimeString("zh-CN", {
54430
+ let Ge = (e) => new Date(e).toLocaleTimeString("zh-CN", {
54185
54431
  hour: "2-digit",
54186
54432
  minute: "2-digit",
54187
54433
  second: "2-digit",
54188
54434
  hour12: !1
54189
- }), _e = (e) => new Date(e.at).toLocaleTimeString("zh-CN", {
54435
+ }), Ke = (e) => new Date(e.at).toLocaleTimeString("zh-CN", {
54190
54436
  hour: "2-digit",
54191
54437
  minute: "2-digit",
54192
54438
  ...e.seconds ? { second: "2-digit" } : {},
54193
54439
  hour12: !1
54194
54440
  });
54195
- function ve(e, t, n, r = !1) {
54441
+ function qe(e, t, n, r = !1) {
54196
54442
  let i = e.currentTarget.getBoundingClientRect(), a = n.note ? {
54197
54443
  notes: [n.note],
54198
54444
  earlier: !1
54199
- } : N1(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;
54200
- _.value = {
54445
+ } : 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;
54446
+ v.value = {
54201
54447
  key: t.key,
54202
- id: ye(t, n),
54448
+ id: Je(t, n),
54203
54449
  row: t,
54204
54450
  piece: n,
54205
54451
  related: a,
54206
54452
  pinned: r,
54207
54453
  left: Math.max(8, Math.min(i.left, window.innerWidth - o - 8)),
54208
54454
  top: c
54209
- }, ge(t);
54455
+ }, We(t);
54210
54456
  }
54211
- let ye = (e, t) => `${e.key}:${t.kind || t.label || "note"}:${t.start}`;
54212
- function be(e, t, n) {
54213
- o && ve(e, t, n);
54457
+ let Je = (e, t) => `${e.key}:${t.kind || t.label || "note"}:${t.start}`;
54458
+ function Ye(e, t, n) {
54459
+ s && qe(e, t, n);
54214
54460
  }
54215
- function xe(e, t, n) {
54216
- o || (_.value?.id === ye(t, n) ? _.value = null : ve(e, t, n, !0));
54461
+ function Xe(e, t, n) {
54462
+ s || (v.value?.id === Je(t, n) ? v.value = null : qe(e, t, n, !0));
54217
54463
  }
54218
- function Se(e) {
54219
- _.value?.key === e.key && !_.value.pinned && (_.value = null);
54220
- }
54221
- let Ce = Z(() => {
54222
- let e = _.value?.piece;
54223
- return e ? e.note ? `过程说明 · ${N(e.note.at)}` : `${e.kind === "segment" ? `${w1[e.phase]}${e.tool ? ` · ${e.tool}` : ""}` : e.label} · ${O1(e.end - e.start)}${e.live ? " · 进行中" : ""}` : "";
54224
- }), we = Z(() => {
54225
- if (!_.value) return [];
54226
- let e = g.value.get(_.value.row.item.id);
54227
- return _.value.related.notes.map((t) => ({
54464
+ function Ze(e) {
54465
+ v.value?.key === e.key && !v.value.pinned && (v.value = null);
54466
+ }
54467
+ let Qe = Z(() => {
54468
+ let e = v.value?.piece;
54469
+ return e ? e.note ? `过程说明 · ${Ge(e.note.at)}` : `${e.kind === "segment" ? `${w1[e.phase]}${e.tool ? ` · ${e.tool}` : ""}` : e.label} · ${k1(e.end - e.start)}${e.live ? " · 进行中" : ""}` : "";
54470
+ }), $e = Z(() => {
54471
+ if (!v.value) return [];
54472
+ let e = _.value.get(v.value.row.item.id);
54473
+ return v.value.related.notes.map((t) => ({
54228
54474
  at: t.at,
54229
54475
  text: e?.[t.index] ?? (e ? "(未能读取)" : "读取中…")
54230
54476
  }));
54231
54477
  });
54232
54478
  return (e, t) => {
54233
- let r = sA, o = pA;
54234
- return U(), W("section", B1, [
54235
- t[18] ||= K("div", { class: "page-heading" }, [K("div", null, [K("h2", null, "执行时间线"), K("p", null, "本机接入程序唤醒的每次执行;点名字看详情,悬停条形看当时的过程说明。")])], -1),
54236
- p.value ? (U(), W("p", V1, P(p.value), 1)) : Y("", !0),
54237
- T.value && !O.value.length ? (U(), W("p", H1, "还没有执行记录。")) : Y("", !0),
54238
- O.value.length ? (U(), W("div", U1, [
54239
- K("header", W1, [
54240
- t[4] ||= K("span", { class: "wf-title" }, "执行瀑布", -1),
54241
- K("span", { class: M(["wf-state", { "is-live": ne.value.running }]) }, P(ne.value.running ? `${ne.value.running} 个进行中` : "均已结束"), 3),
54242
- ne.value.slowest ? (U(), W("span", G1, [
54243
- t[3] ||= J("最慢一步 ", -1),
54244
- K("b", null, [J(P(I(i).display_name(ne.value.slowest.member)) + " · " + P(I(w1)[ne.value.slowest.phase]), 1), ne.value.slowest.tool ? (U(), W(H, { key: 0 }, [J(P(ne.value.slowest.tool), 1)], 64)) : Y("", !0)]),
54245
- J(" · " + P(I(O1)(ne.value.slowest.end - ne.value.slowest.start)), 1)
54479
+ let r = sA, s = pA;
54480
+ return U(), W("section", q1, [
54481
+ t[25] ||= K("div", { class: "page-heading" }, [K("div", null, [K("h2", null, "执行时间线"), K("p", null, "本机接入程序唤醒的每次执行;点名字看详情,悬停条形看当时的过程说明。")])], -1),
54482
+ m.value ? (U(), W("p", J1, P(m.value), 1)) : Y("", !0),
54483
+ k.value && !de.value.length ? (U(), W("p", Y1, "还没有执行记录。")) : Y("", !0),
54484
+ de.value.length ? (U(), W("div", X1, [
54485
+ K("header", Z1, [
54486
+ t[8] ||= K("span", { class: "wf-title" }, "执行瀑布", -1),
54487
+ K("label", Q1, [
54488
+ t[6] ||= K("span", { class: "sr-only" }, "查看哪一轮", -1),
54489
+ vr(K("select", {
54490
+ "onUpdate:modelValue": t[0] ||= (e) => ne.value = e,
54491
+ class: "wf-run-select"
54492
+ }, [
54493
+ K("option", { value: d2 }, "最近一轮(自动跟随)"),
54494
+ (U(!0), W(H, null, B(re.value.list, (e) => (U(), W("option", {
54495
+ key: e.key,
54496
+ value: e.key
54497
+ }, P(ae(e)), 9, $1))), 128)),
54498
+ K("option", { value: f2 }, "全部执行")
54499
+ ], 512), [[$l, ne.value]]),
54500
+ q(r, {
54501
+ name: "i-lucide-chevrons-up-down",
54502
+ class: "wf-run-icon",
54503
+ "aria-hidden": "true"
54504
+ })
54505
+ ]),
54506
+ K("span", { class: M(["wf-state", { "is-live": ke.value.running }]) }, P(ke.value.running ? `${ke.value.running} 个进行中` : "均已结束"), 3),
54507
+ ke.value.slowest ? (U(), W("span", e0, [
54508
+ t[7] ||= J("最慢一步 ", -1),
54509
+ K("b", null, [J(P(I(i).display_name(ke.value.slowest.member)) + " · " + P(I(w1)[ke.value.slowest.phase]), 1), ke.value.slowest.tool ? (U(), W(H, { key: 0 }, [J(P(ke.value.slowest.tool), 1)], 64)) : Y("", !0)]),
54510
+ J(" · " + P(I(k1)(ke.value.slowest.end - ke.value.slowest.start)), 1)
54246
54511
  ])) : Y("", !0)
54247
54512
  ]),
54248
- K("dl", K1, [
54249
- K("div", null, [t[5] ||= K("dt", null, "执行", -1), K("dd", null, P(ne.value.executions), 1)]),
54250
- K("div", null, [t[6] ||= K("dt", null, "进行中", -1), K("dd", { class: M(ne.value.running ? "is-live" : "is-zero") }, P(ne.value.running), 3)]),
54251
- K("div", null, [t[7] ||= K("dt", null, "失败", -1), K("dd", { class: M(ne.value.failed ? "is-failed" : "is-zero") }, P(ne.value.failed), 3)]),
54252
- K("div", { title: `超过 ${a} 分钟没有输出` }, [t[8] ||= K("dt", null, "可能卡住", -1), K("dd", { class: M(ne.value.stalled ? "is-warn" : "is-zero") }, P(ne.value.stalled), 3)], 8, q1),
54253
- K("div", { title: k.value.folds.length ? `已折叠 ${k.value.folds.length} 段超过 ${I(E1) / 6e4} 分钟的空闲` : void 0 }, [t[9] ||= K("dt", null, "有效时长", -1), K("dd", null, P(I(O1)(k.value.busy_ms)), 1)], 8, J1),
54254
- K("div", Y1, [t[10] ||= K("dt", null, "工具与命令", -1), K("dd", { class: M({ "is-zero": !ne.value.tool_segments }) }, P(ne.value.tool_segments) + " 段", 3)])
54513
+ K("dl", t0, [
54514
+ K("div", null, [t[9] ||= K("dt", null, "执行", -1), K("dd", null, [(U(), W("span", {
54515
+ key: ke.value.executions,
54516
+ class: "wf-roll"
54517
+ }, P(ke.value.executions), 1))])]),
54518
+ K("div", null, [t[10] ||= K("dt", null, "进行中", -1), K("dd", { class: M(ke.value.running ? "is-live" : "is-zero") }, [(U(), W("span", {
54519
+ key: ke.value.running,
54520
+ class: "wf-roll"
54521
+ }, P(ke.value.running), 1))], 2)]),
54522
+ K("div", null, [t[11] ||= K("dt", null, "失败", -1), K("dd", { class: M(ke.value.failed ? "is-failed" : "is-zero") }, [(U(), W("span", {
54523
+ key: ke.value.failed,
54524
+ class: "wf-roll"
54525
+ }, P(ke.value.failed), 1))], 2)]),
54526
+ K("div", { title: `超过 ${a} 分钟没有输出` }, [t[12] ||= K("dt", null, "可能卡住", -1), K("dd", { class: M(ke.value.stalled ? "is-warn" : "is-zero") }, [(U(), W("span", {
54527
+ key: ke.value.stalled,
54528
+ class: "wf-roll"
54529
+ }, P(ke.value.stalled), 1))], 2)], 8, n0),
54530
+ K("div", { title: he.value.folds.length ? `已折叠 ${he.value.folds.length} 段超过 ${I(D1) / 6e4} 分钟的空闲` : void 0 }, [t[13] ||= K("dt", null, "有效时长", -1), K("dd", null, P(I(k1)(he.value.busy_ms)), 1)], 8, r0),
54531
+ K("div", i0, [t[15] ||= K("dt", null, "工具与命令", -1), K("dd", { class: M({ "is-zero": !ke.value.tool_segments }) }, [(U(), W("span", {
54532
+ key: ke.value.tool_segments,
54533
+ class: "wf-roll"
54534
+ }, P(ke.value.tool_segments), 1)), t[14] ||= J(" 段", -1)], 2)])
54535
+ ]),
54536
+ K("ul", a0, [
54537
+ (U(!0), W(H, null, B(Ne.value, ([e, t]) => (U(), W("li", { key: e }, [K("i", { class: M(["wf-swatch", `is-${e}`]) }, null, 2), J(P(t), 1)]))), 128)),
54538
+ Fe.value.size > 1 ? (U(), W("li", o0, "颜色区分成员,深浅区分模型与工具")) : Y("", !0),
54539
+ Pe.value ? (U(), W("li", s0, "这些执行都没有阶段明细:发生在接入程序上报阶段之前,或来自手动接入、在线 AI、Codex App")) : Y("", !0)
54255
54540
  ]),
54256
- K("ul", X1, [(U(!0), W(H, null, B(j.value, ([e, t]) => (U(), W("li", { key: e }, [K("i", { class: M(["wf-swatch", `is-${e}`]) }, null, 2), J(P(t), 1)]))), 128)), ae.value ? (U(), W("li", Z1, "这些执行都没有阶段明细:发生在接入程序上报阶段之前,或来自手动接入、在线 AI、Codex App")) : Y("", !0)]),
54257
54541
  K("div", {
54258
54542
  class: "wf-grid",
54259
54543
  role: "list",
54260
- style: fe({ "--wf-depth-px": `${z0}px` })
54544
+ style: fe({ "--wf-depth-px": `${s2}px` })
54261
54545
  }, [
54262
- K("div", Q1, [K("span", null, "执行 · " + P(ee.value.length) + "/" + P(O.value.length), 1), re.value.length ? (U(), W("span", $1, [K("button", {
54546
+ K("div", c0, [K("span", null, "执行 · " + P(pe.value.length) + "/" + P(de.value.length), 1), Ae.value.length ? (U(), W("span", l0, [K("button", {
54263
54547
  type: "button",
54264
54548
  class: "wf-text-button",
54265
- onClick: t[0] ||= (e) => h.value = /* @__PURE__ */ new Set()
54549
+ onClick: t[1] ||= (e) => g.value = /* @__PURE__ */ new Set()
54266
54550
  }, "展开全部"), K("button", {
54267
54551
  type: "button",
54268
54552
  class: "wf-text-button",
54269
- onClick: t[1] ||= (e) => h.value = new Set(re.value)
54553
+ onClick: t[2] ||= (e) => g.value = new Set(Ae.value)
54270
54554
  }, "收起全部")])) : Y("", !0)]),
54271
54555
  K("div", {
54272
54556
  ref_key: "axis_element",
54273
- ref: s,
54557
+ ref: c,
54274
54558
  class: "wf-axis",
54275
54559
  "aria-hidden": "true"
54276
54560
  }, [
54277
- (U(!0), W(H, null, B(se.value, (e) => (U(), W("span", {
54561
+ (U(!0), W(H, null, B(Ie.value, (e) => (U(), W("span", {
54278
54562
  key: e.at,
54279
54563
  class: "wf-tick",
54280
54564
  style: fe({ left: `${e.x * 100}%` })
54281
- }, P(_e(e)), 5))), 128)),
54282
- (U(!0), W(H, null, B(k.value.folds, (e) => (U(), W("span", {
54565
+ }, P(Ke(e)), 5))), 128)),
54566
+ (U(!0), W(H, null, B(he.value.folds, (e) => (U(), W("span", {
54283
54567
  key: `fold-${e.start}`,
54284
54568
  class: "wf-fold-label",
54285
54569
  style: fe({ left: `${(e.from + e.width / 2) * 100}%` }),
54286
- title: `${N(e.start)} – ${N(e.end)} 没有执行,已折叠`
54287
- }, "⋯ " + P(I(O1)(e.end - e.start)), 13, e0))), 128)),
54288
- E.value ? (U(), W("span", t0, "现在")) : Y("", !0)
54570
+ title: `${Ge(e.start)} – ${Ge(e.end)} 没有执行,已折叠`
54571
+ }, "⋯ " + P(I(k1)(e.end - e.start)), 13, u0))), 128)),
54572
+ ge.value === null ? Y("", !0) : (U(), W("span", {
54573
+ key: 0,
54574
+ class: "wf-cursor-head",
54575
+ style: fe({ left: `${ge.value * 100}%` })
54576
+ }, null, 4))
54289
54577
  ], 512),
54290
- t[16] ||= K("span", { class: "wf-axis-end" }, "用时", -1),
54291
- (U(!0), W(H, null, B(ee.value, (e) => (U(), W("div", {
54578
+ t[21] ||= K("span", { class: "wf-axis-end" }, "用时", -1),
54579
+ (U(!0), W(H, null, B(pe.value, (e) => (U(), W("div", {
54292
54580
  key: e.key,
54293
54581
  role: "listitem",
54294
- class: M(["wf-row", [`is-${e.item.state}`, { "is-open": v.value === e.key }]])
54582
+ class: M(["wf-row", [`is-${e.item.state}`, {
54583
+ "is-open": y.value === e.key,
54584
+ "is-entering": we.value.has(e.key)
54585
+ }]])
54295
54586
  }, [
54296
54587
  K("div", {
54297
54588
  class: "wf-label",
54298
54589
  style: fe({ "--depth": e.depth })
54299
54590
  }, [
54300
- e.depth ? (U(), W("span", n0)) : Y("", !0),
54591
+ e.depth ? (U(), W("span", d0)) : Y("", !0),
54301
54592
  e.has_children ? (U(), W("button", {
54302
54593
  key: 1,
54303
54594
  type: "button",
54304
- class: M(["wf-toggle", { "is-open": !h.value.has(e.key) }]),
54305
- "aria-expanded": !h.value.has(e.key),
54306
- "aria-label": `${h.value.has(e.key) ? "展开" : "收起"} ${I(i).display_name(e.item.member)} 派出的执行`,
54307
- onClick: (t) => le(e.key)
54308
- }, [q(r, { name: "i-lucide-chevron-right" })], 10, r0)) : (U(), W("span", i0)),
54309
- q(o, {
54595
+ class: M(["wf-toggle", { "is-open": !g.value.has(e.key) }]),
54596
+ "aria-expanded": !g.value.has(e.key),
54597
+ "aria-label": `${g.value.has(e.key) ? "展开" : "收起"} ${I(i).display_name(e.item.member)} 派出的执行`,
54598
+ onClick: (t) => Re(e.key)
54599
+ }, [q(r, { name: "i-lucide-chevron-right" })], 10, f0)) : (U(), W("span", p0)),
54600
+ q(s, {
54310
54601
  src: I(i).identities[e.item.member]?.icon,
54311
54602
  text: I(i).identities[e.item.member]?.initials,
54312
54603
  alt: e.item.member,
@@ -54321,30 +54612,31 @@ var B1 = {
54321
54612
  K("button", {
54322
54613
  type: "button",
54323
54614
  class: "wf-names",
54324
- "aria-expanded": v.value === e.key,
54325
- title: me(e).text,
54326
- onClick: (t) => ce(e)
54327
- }, [K("span", o0, [
54615
+ "aria-expanded": y.value === e.key,
54616
+ title: He(e).text,
54617
+ onClick: (t) => Le(e)
54618
+ }, [K("span", h0, [
54619
+ e.item.state === "running" ? (U(), W("i", g0)) : Y("", !0),
54328
54620
  K("strong", null, P(I(i).display_name(e.item.member)), 1),
54329
- (U(!0), W(H, null, B(pe(e), (e) => (U(), W("em", {
54621
+ (U(!0), W(H, null, B(Ve(e), (e) => (U(), W("em", {
54330
54622
  key: e,
54331
54623
  class: "wf-pill is-role"
54332
54624
  }, P(e), 1))), 128)),
54333
- ne.value.slowest?.row === e.key ? (U(), W("em", s0, "最慢")) : Y("", !0)
54334
- ]), K("span", { class: M(["wf-status", `is-${me(e).tone}`]) }, [me(e).tone === "live" ? (U(), W("i", c0)) : Y("", !0), J(P(me(e).text), 1)], 2)], 8, a0)
54625
+ ke.value.slowest?.row === e.key ? (U(), W("em", _0, "最慢")) : Y("", !0)
54626
+ ]), K("span", { class: M(["wf-status", `is-${He(e).tone}`]) }, [He(e).tone === "live" ? (U(), W("i", v0)) : Y("", !0), J(P(He(e).text), 1)], 2)], 8, m0)
54335
54627
  ], 4),
54336
54628
  K("div", {
54337
54629
  class: "wf-lane",
54338
54630
  role: "img",
54339
- "aria-label": he(e),
54340
- onMouseleave: (t) => Se(e)
54341
- }, [K("div", u0, [
54342
- (U(!0), W(H, null, B(se.value, (e) => (U(), W("i", {
54631
+ "aria-label": Ue(e),
54632
+ onMouseleave: (t) => Ze(e)
54633
+ }, [K("div", b0, [
54634
+ (U(!0), W(H, null, B(Ie.value, (e) => (U(), W("i", {
54343
54635
  key: e.at,
54344
54636
  class: "wf-gridline",
54345
54637
  style: fe({ left: `${e.x * 100}%` })
54346
54638
  }, null, 4))), 128)),
54347
- (U(!0), W(H, null, B(k.value.folds, (e) => (U(), W("i", {
54639
+ (U(!0), W(H, null, B(he.value.folds, (e) => (U(), W("i", {
54348
54640
  key: e.start,
54349
54641
  class: "wf-fold",
54350
54642
  style: fe({
@@ -54352,237 +54644,290 @@ var B1 = {
54352
54644
  width: `${e.width * 100}%`
54353
54645
  })
54354
54646
  }, null, 4))), 128)),
54355
- t[11] ||= K("i", { class: "wf-well" }, null, -1),
54647
+ t[16] ||= K("i", { class: "wf-well" }, null, -1),
54648
+ (U(!0), W(H, null, B(De.value.get(e.key) || [], (e, t) => (U(), W("i", {
54649
+ key: `link-${t}`,
54650
+ class: M(["wf-link", `is-${e.part}`]),
54651
+ "data-tone": Fe.value.get(e.member),
54652
+ style: fe({ left: `${e.x * 100}%` })
54653
+ }, null, 14, x0))), 128)),
54654
+ ge.value === null ? Y("", !0) : (U(), W("i", {
54655
+ key: 0,
54656
+ class: "wf-cursor",
54657
+ style: fe({ left: `${ge.value * 100}%` })
54658
+ }, null, 4)),
54356
54659
  K("i", {
54357
54660
  class: "wf-bar is-queue",
54358
- style: fe(ue(...e.queue)),
54359
- onMouseenter: (t) => be(t, e, {
54661
+ style: fe(ze(...e.queue)),
54662
+ onMouseenter: (t) => Ye(t, e, {
54360
54663
  label: "排队",
54361
54664
  start: e.queue[0],
54362
54665
  end: e.queue[1]
54363
54666
  }),
54364
- onClick: (t) => xe(t, e, {
54667
+ onClick: (t) => Xe(t, e, {
54365
54668
  label: "排队",
54366
54669
  start: e.queue[0],
54367
54670
  end: e.queue[1]
54368
54671
  })
54369
- }, null, 44, d0),
54672
+ }, null, 44, S0),
54370
54673
  e.wake ? (U(), W("i", {
54371
- key: 0,
54674
+ key: 1,
54372
54675
  class: "wf-bar is-wake",
54373
- style: fe(ue(...e.wake)),
54374
- onMouseenter: (t) => be(t, e, {
54676
+ style: fe(ze(...e.wake)),
54677
+ onMouseenter: (t) => Ye(t, e, {
54375
54678
  label: e.wake_approx ? "唤醒(约)" : "唤醒",
54376
54679
  start: e.wake[0],
54377
54680
  end: e.wake[1]
54378
54681
  }),
54379
- onClick: (t) => xe(t, e, {
54682
+ onClick: (t) => Xe(t, e, {
54380
54683
  label: e.wake_approx ? "唤醒(约)" : "唤醒",
54381
54684
  start: e.wake[0],
54382
54685
  end: e.wake[1]
54383
54686
  })
54384
- }, null, 44, f0)) : Y("", !0),
54687
+ }, null, 44, C0)) : Y("", !0),
54385
54688
  e.work ? (U(), W("i", {
54386
- key: 1,
54689
+ key: 2,
54387
54690
  class: M(["wf-bar is-work", { "has-detail": e.segments.length }]),
54388
- "data-tone": e.segments.length ? void 0 : oe.value.get(e.item.member),
54389
- style: fe(ue(...e.work)),
54390
- onMouseenter: (t) => be(t, e, {
54691
+ "data-tone": e.segments.length ? void 0 : Fe.value.get(e.item.member),
54692
+ style: fe(ze(...e.work)),
54693
+ onMouseenter: (t) => Ye(t, e, {
54391
54694
  label: e.segments.length ? "执行" : "执行 · 无阶段明细",
54392
54695
  start: e.work[0],
54393
54696
  end: e.work[1],
54394
54697
  live: e.item.state === "running"
54395
54698
  }),
54396
- onClick: (t) => xe(t, e, {
54699
+ onClick: (t) => Xe(t, e, {
54397
54700
  label: e.segments.length ? "执行" : "执行 · 无阶段明细",
54398
54701
  start: e.work[0],
54399
54702
  end: e.work[1],
54400
54703
  live: e.item.state === "running"
54401
54704
  })
54402
- }, null, 46, p0)) : Y("", !0),
54705
+ }, null, 46, w0)) : Y("", !0),
54403
54706
  (U(!0), W(H, null, B(e.segments, (t) => (U(), W(H, { key: t.start + t.phase }, [K("i", {
54404
- class: M(["wf-bar wf-seg", [`is-${t.phase}`, { "is-live": t.live }]]),
54405
- style: fe(ue(t.start, t.seen, !0)),
54406
- onMouseenter: (n) => be(n, e, {
54707
+ class: M(["wf-bar wf-seg", [`is-${I(T1)[t.phase]}`, { "is-live": t.live }]]),
54708
+ "data-tone": Fe.value.get(e.item.member),
54709
+ style: fe(ze(t.start, t.seen, !0)),
54710
+ onMouseenter: (n) => Ye(n, e, {
54407
54711
  kind: "segment",
54408
54712
  ...t
54409
54713
  }),
54410
- onClick: (n) => xe(n, e, {
54714
+ onClick: (n) => Xe(n, e, {
54411
54715
  kind: "segment",
54412
54716
  ...t
54413
54717
  })
54414
- }, null, 46, m0), t.end > t.seen ? (U(), W("i", {
54718
+ }, null, 46, T0), t.end > t.seen ? (U(), W("i", {
54415
54719
  key: 0,
54416
- class: M(["wf-bar wf-seg is-tail", `is-${t.phase}`]),
54417
- style: fe(ue(t.seen, t.end)),
54418
- onMouseenter: (n) => be(n, e, {
54720
+ class: M(["wf-bar wf-seg is-tail", `is-${I(T1)[t.phase]}`]),
54721
+ "data-tone": Fe.value.get(e.item.member),
54722
+ style: fe(ze(t.seen, t.end)),
54723
+ onMouseenter: (n) => Ye(n, e, {
54419
54724
  kind: "segment",
54420
54725
  ...t
54421
54726
  }),
54422
- onClick: (n) => xe(n, e, {
54727
+ onClick: (n) => Xe(n, e, {
54423
54728
  kind: "segment",
54424
54729
  ...t
54425
54730
  })
54426
- }, null, 46, h0)) : Y("", !0)], 64))), 128)),
54731
+ }, null, 46, E0)) : Y("", !0)], 64))), 128)),
54427
54732
  (U(!0), W(H, null, B(e.notes, (t) => (U(), W("button", {
54428
54733
  key: `note-${t.index}`,
54429
54734
  type: "button",
54430
54735
  class: "wf-note",
54431
- style: fe({ left: `${k.value.x(t.at) * 100}%` }),
54432
- "aria-label": `${I(i).display_name(e.item.member)} 的第 ${t.index + 1} 段过程说明,${N(t.at)}`,
54433
- onMouseenter: (n) => be(n, e, {
54736
+ style: fe({ left: `${he.value.x(t.at) * 100}%` }),
54737
+ "aria-label": `${I(i).display_name(e.item.member)} 的第 ${t.index + 1} 段过程说明,${Ge(t.at)}`,
54738
+ onMouseenter: (n) => Ye(n, e, {
54434
54739
  note: t,
54435
54740
  start: t.at,
54436
54741
  end: t.at
54437
54742
  }),
54438
- onClick: (n) => xe(n, e, {
54743
+ onClick: (n) => Xe(n, e, {
54439
54744
  note: t,
54440
54745
  start: t.at,
54441
54746
  end: t.at
54442
54747
  }),
54443
- onFocus: (n) => be(n, e, {
54748
+ onFocus: (n) => Ye(n, e, {
54444
54749
  note: t,
54445
54750
  start: t.at,
54446
54751
  end: t.at
54447
54752
  }),
54448
- onBlur: (t) => Se(e)
54449
- }, null, 44, g0))), 128))
54450
- ])], 40, l0),
54451
- K("span", _0, [
54452
- J(P(I(O1)(e.end - e.start)) + P(e.wake_approx && e.wake ? "~" : ""), 1),
54753
+ onBlur: (t) => Ze(e)
54754
+ }, null, 44, D0))), 128))
54755
+ ])], 40, y0),
54756
+ K("span", O0, [
54757
+ J(P(I(k1)(e.end - e.start)) + P(e.wake_approx && e.wake ? "~" : ""), 1),
54453
54758
  e.item.state === "done" ? Y("", !0) : (U(), W("small", {
54454
54759
  key: 0,
54455
54760
  class: M(`is-${e.item.state}`)
54456
- }, P(I(T1)[e.item.state]), 3)),
54457
- e.truncated ? (U(), W("small", v0, "明细已截断")) : Y("", !0)
54761
+ }, P(I(E1)[e.item.state]), 3)),
54762
+ e.truncated ? (U(), W("small", k0, "明细已截断")) : Y("", !0)
54458
54763
  ]),
54459
- v.value === e.key ? (U(), W("div", {
54764
+ y.value === e.key ? (U(), W("div", {
54460
54765
  key: 0,
54461
54766
  class: "wf-detail",
54462
- style: fe({ "--wf-indent": `${e.depth * z0 + 44}px` })
54767
+ style: fe({ "--wf-indent": `${e.depth * s2 + 44}px` })
54463
54768
  }, [K("dl", null, [
54464
- e.item.task ? (U(), W("div", y0, [t[12] ||= K("dt", null, "任务", -1), K("dd", null, [J(P(e.item.task), 1), e.item.task_id ? (U(), W("button", {
54769
+ e.item.task ? (U(), W("div", A0, [t[17] ||= K("dt", null, "任务", -1), K("dd", null, [J(P(e.item.task), 1), e.item.task_id ? (U(), W("button", {
54465
54770
  key: 0,
54466
54771
  type: "button",
54467
54772
  class: "subtle-link",
54468
54773
  onClick: (t) => n("detail", e.item.task_id)
54469
- }, "#" + P(e.item.task_id), 9, b0)) : Y("", !0)])])) : Y("", !0),
54470
- e.item.state === "failed" ? (U(), W("div", x0, [t[13] ||= K("dt", null, "失败原因", -1), K("dd", S0, P(e.item.reason || "执行失败"), 1)])) : e.item.result || e.item.answer_id ? (U(), W("div", C0, [t[14] ||= K("dt", null, "结果", -1), K("dd", null, [J(P(e.item.result), 1), e.item.answer_id ? (U(), W("button", {
54774
+ }, "#" + P(e.item.task_id), 9, j0)) : Y("", !0)])])) : Y("", !0),
54775
+ e.item.state === "failed" ? (U(), W("div", M0, [t[18] ||= K("dt", null, "失败原因", -1), K("dd", N0, P(e.item.reason || "执行失败"), 1)])) : e.item.result || e.item.answer_id ? (U(), W("div", P0, [t[19] ||= K("dt", null, "结果", -1), K("dd", null, [J(P(e.item.result), 1), e.item.answer_id ? (U(), W("button", {
54471
54776
  key: 0,
54472
54777
  type: "button",
54473
54778
  class: "subtle-link",
54474
54779
  onClick: (t) => n("detail", e.item.answer_id)
54475
- }, "在消息中查看 #" + P(e.item.answer_id), 9, w0)) : Y("", !0)])])) : Y("", !0),
54476
- e.item.changes ? (U(), W("div", T0, [t[15] ||= K("dt", null, "改动", -1), K("dd", null, P(e.item.changes) + " 个文件", 1)])) : Y("", !0)
54477
- ]), A.value.length ? (U(), W("ol", E0, [(U(!0), W(H, null, B(A.value, (e) => (U(), W("li", {
54478
- key: `${e.kind}-${e.at}-${e.phase || ""}`,
54479
- class: M(`log-${e.kind}`)
54480
- }, [K("time", null, P(N(e.at)), 1), e.kind === "phase" ? (U(), W(H, { key: 0 }, [K("i", {
54481
- class: M(["wf-swatch", `is-${e.phase}`]),
54780
+ }, "在消息中查看 #" + P(e.item.answer_id), 9, F0)) : Y("", !0)])])) : Y("", !0),
54781
+ e.item.changes ? (U(), W("div", I0, [t[20] ||= K("dt", null, "改动", -1), K("dd", null, P(e.item.changes) + " 个文件", 1)])) : Y("", !0)
54782
+ ]), Me.value.length ? (U(), W("ol", L0, [(U(!0), W(H, null, B(Me.value, (t) => (U(), W("li", {
54783
+ key: `${t.kind}-${t.at}-${t.phase || ""}`,
54784
+ class: M(`log-${t.kind}`)
54785
+ }, [K("time", null, P(Ge(t.at)), 1), t.kind === "phase" ? (U(), W(H, { key: 0 }, [K("i", {
54786
+ class: M(["wf-swatch", `is-${I(T1)[t.phase]}`]),
54787
+ "data-tone": Fe.value.get(e.item.member),
54482
54788
  "aria-hidden": "true"
54483
- }, null, 2), K("span", null, [
54484
- J(P(I(w1)[e.phase]), 1),
54485
- e.tool ? (U(), W(H, { key: 0 }, [J(" · " + P(e.tool), 1)], 64)) : Y("", !0),
54486
- J(" · " + P(e.live ? "进行中" : I(O1)(e.duration)), 1)
54487
- ])], 64)) : (U(), W("span", D0, P(e.text), 1))], 2))), 128))])) : (U(), W("p", O0, "这次执行没有阶段明细或过程说明。"))], 4)) : Y("", !0)
54789
+ }, null, 10, R0), K("span", null, [
54790
+ J(P(I(w1)[t.phase]), 1),
54791
+ t.tool ? (U(), W(H, { key: 0 }, [J(" · " + P(t.tool), 1)], 64)) : Y("", !0),
54792
+ J(" · " + P(t.live ? "进行中" : I(k1)(t.duration)), 1)
54793
+ ])], 64)) : (U(), W("span", z0, P(t.text), 1))], 2))), 128))])) : (U(), W("p", B0, "这次执行没有阶段明细或过程说明。"))], 4)) : Y("", !0)
54488
54794
  ], 2))), 128))
54489
54795
  ], 4),
54490
- k.value.folds.length || T.value.executions.length >= T.value.execution_limit ? (U(), W("footer", k0, [k.value.folds.length ? (U(), W("span", A0, [t[17] ||= K("i", {
54796
+ ie.value === f2 ? Y("", !0) : (U(), W("div", V0, [se.value ? (U(), W(H, { key: 0 }, [t[22] ||= K("span", { class: "wf-state is-live" }, "实时", -1), t[23] ||= K("span", { class: "wf-player-note" }, "这一轮结束后可以回放", -1)], 64)) : (U(), W(H, { key: 1 }, [
54797
+ K("button", {
54798
+ type: "button",
54799
+ class: "wf-player-button",
54800
+ "aria-label": D.playing ? "暂停回放" : "回放这一轮",
54801
+ onClick: t[3] ||= (e) => D.playing ? xe() : ye()
54802
+ }, [q(r, { name: D.playing ? "i-lucide-pause" : "i-lucide-play" }, null, 8, ["name"])], 8, H0),
54803
+ K("button", {
54804
+ type: "button",
54805
+ class: "wf-player-button",
54806
+ "aria-label": "从头回放",
54807
+ disabled: !le.value,
54808
+ onClick: Se
54809
+ }, [q(r, { name: "i-lucide-rotate-ccw" })], 8, U0),
54810
+ vr(K("select", {
54811
+ "onUpdate:modelValue": t[4] ||= (e) => D.speed = e,
54812
+ class: "wf-speed",
54813
+ "aria-label": "回放速度"
54814
+ }, [K("option", W0, "自动 · " + P(Math.round(N.value)) + "×", 1), (U(), W(H, null, B(o, (e) => K("option", {
54815
+ key: e,
54816
+ value: e
54817
+ }, P(e) + "×", 9, G0)), 64))], 512), [[
54818
+ $l,
54819
+ D.speed,
54820
+ void 0,
54821
+ { number: !0 }
54822
+ ]]),
54823
+ K("input", {
54824
+ type: "range",
54825
+ class: "wf-scrub",
54826
+ min: "0",
54827
+ max: ce.value.duration,
54828
+ step: "100",
54829
+ value: le.value ? D.position : ce.value.duration,
54830
+ "aria-label": "回放位置",
54831
+ onInput: Ce
54832
+ }, null, 40, K0),
54833
+ K("span", q0, P(I(k1)(le.value ? D.position : ce.value.duration)) + " / " + P(I(k1)(ce.value.duration)), 1)
54834
+ ], 64))])),
54835
+ he.value.folds.length || k.value.executions.length >= k.value.execution_limit ? (U(), W("footer", J0, [he.value.folds.length ? (U(), W("span", Y0, [t[24] ||= K("i", {
54491
54836
  class: "wf-swatch is-fold",
54492
54837
  "aria-hidden": "true"
54493
- }, null, -1), J("已折叠 " + P(k.value.folds.length) + " 段超过 " + P(I(E1) / 6e4) + " 分钟的空闲", 1)])) : Y("", !0), T.value.executions.length >= T.value.execution_limit ? (U(), W("span", j0, "只列出最近 " + P(T.value.execution_limit) + " 次讨论执行与 " + P(T.value.execution_limit) + " 次协作执行", 1)) : Y("", !0)])) : Y("", !0)
54838
+ }, null, -1), J("已折叠 " + P(he.value.folds.length) + " 段超过 " + P(I(D1) / 6e4) + " 分钟的空闲", 1)])) : Y("", !0), k.value.executions.length >= k.value.execution_limit ? (U(), W("span", X0, "只列出最近 " + P(k.value.execution_limit) + " 次讨论执行与 " + P(k.value.execution_limit) + " 次协作执行", 1)) : Y("", !0)])) : Y("", !0)
54494
54839
  ])) : Y("", !0),
54495
- _.value ? (U(), W("div", {
54840
+ v.value ? (U(), W("div", {
54496
54841
  key: 3,
54497
- class: M(["wf-card", { "is-pinned": _.value.pinned }]),
54498
- role: _.value.pinned ? "dialog" : "tooltip",
54842
+ class: M(["wf-card", { "is-pinned": v.value.pinned }]),
54843
+ role: v.value.pinned ? "dialog" : "tooltip",
54499
54844
  style: fe({
54500
- left: `${_.value.left}px`,
54501
- top: `${_.value.top}px`
54845
+ left: `${v.value.left}px`,
54846
+ top: `${v.value.top}px`
54502
54847
  })
54503
54848
  }, [
54504
- K("strong", null, P(I(i).display_name(_.value.row.item.member)) + " · " + P(Ce.value), 1),
54505
- _.value.pinned ? (U(), W("button", {
54849
+ K("strong", null, P(I(i).display_name(v.value.row.item.member)) + " · " + P(Qe.value), 1),
54850
+ v.value.pinned ? (U(), W("button", {
54506
54851
  key: 0,
54507
54852
  type: "button",
54508
54853
  class: "wf-card-close",
54509
54854
  "aria-label": "关闭",
54510
- onClick: t[2] ||= (e) => _.value = null
54855
+ onClick: t[5] ||= (e) => v.value = null
54511
54856
  }, [q(r, { name: "i-lucide-x" })])) : Y("", !0),
54512
- K("small", null, [J(P(N(_.value.piece.start)), 1), _.value.piece.end > _.value.piece.start ? (U(), W(H, { key: 0 }, [J(" – " + P(_.value.piece.live ? "现在" : N(_.value.piece.end)), 1)], 64)) : Y("", !0)]),
54513
- _.value.row.item.reason ? (U(), W("p", N0, P(_.value.row.item.reason), 1)) : Y("", !0),
54514
- we.value.length ? (U(), W(H, { key: 2 }, [K("small", P0, P(_.value.related.earlier ? "此前的过程说明" : "过程说明"), 1), K("ol", null, [(U(!0), W(H, null, B(we.value, (e) => (U(), W("li", { key: e.at + e.text }, [K("time", null, P(N(e.at)), 1), J(P(e.text), 1)]))), 128))])], 64)) : Y("", !0)
54515
- ], 14, M0)) : Y("", !0)
54857
+ K("small", null, [J(P(Ge(v.value.piece.start)), 1), v.value.piece.end > v.value.piece.start ? (U(), W(H, { key: 0 }, [J(" – " + P(v.value.piece.live ? "现在" : Ge(v.value.piece.end)), 1)], 64)) : Y("", !0)]),
54858
+ v.value.row.item.reason ? (U(), W("p", Q0, P(v.value.row.item.reason), 1)) : Y("", !0),
54859
+ $e.value.length ? (U(), W(H, { key: 2 }, [K("small", $0, P(v.value.related.earlier ? "此前的过程说明" : "过程说明"), 1), K("ol", null, [(U(!0), W(H, null, B($e.value, (e) => (U(), W("li", { key: e.at + e.text }, [K("time", null, P(Ge(e.at)), 1), J(P(e.text), 1)]))), 128))])], 64)) : Y("", !0)
54860
+ ], 14, Z0)) : Y("", !0)
54516
54861
  ]);
54517
54862
  };
54518
54863
  }
54519
- }, [["__scopeId", "data-v-0ceb3415"]]), K0 = {
54864
+ }, [["__scopeId", "data-v-3db0325d"]]), _2 = {
54520
54865
  id: "channel-sidebar",
54521
54866
  class: "channel-sidebar",
54522
54867
  "aria-label": "房间导航"
54523
- }, q0 = { class: "channel-sidebar-content" }, J0 = { class: "channel-directory-heading channel-tools-heading" }, Y0 = ["aria-expanded"], X0 = { class: "channel-sidebar-footer" }, Z0 = ["aria-label"], Q0 = { class: "channel-self" }, $0 = ["title"], e2 = [
54868
+ }, v2 = { class: "channel-sidebar-content" }, y2 = { class: "channel-directory-heading channel-tools-heading" }, b2 = ["aria-expanded"], x2 = { class: "channel-sidebar-footer" }, S2 = ["aria-label"], C2 = { class: "channel-self" }, w2 = ["title"], T2 = [
54524
54869
  "aria-valuemax",
54525
54870
  "aria-valuenow",
54526
54871
  "aria-valuetext"
54527
- ], t2 = { class: "channel-main" }, n2 = { class: "channel-header" }, r2 = { class: "channel-title-icon" }, i2 = { class: "channel-title" }, a2 = { class: "channel-title-copy" }, o2 = ["title"], s2 = {
54872
+ ], E2 = { class: "channel-main" }, D2 = { class: "channel-header" }, O2 = { class: "channel-title-icon" }, k2 = { class: "channel-title" }, A2 = { class: "channel-title-copy" }, j2 = ["title"], M2 = {
54528
54873
  key: 0,
54529
54874
  class: "channel-header-context"
54530
- }, c2 = { class: "channel-header-actions" }, l2 = {
54875
+ }, N2 = { class: "channel-header-actions" }, P2 = {
54531
54876
  key: 0,
54532
54877
  class: "channel-launch-recovery",
54533
54878
  "aria-label": "未完成的创建或启动请求"
54534
- }, u2 = { role: "status" }, d2 = { class: "button-row" }, f2 = {
54879
+ }, F2 = { role: "status" }, I2 = { class: "button-row" }, L2 = {
54535
54880
  key: 1,
54536
54881
  class: "channel-tabbar"
54537
- }, p2 = { class: "channel-brief-inner" }, m2 = { class: "channel-brief-heading" }, h2 = ["aria-label", "aria-expanded"], g2 = {
54882
+ }, R2 = { class: "channel-brief-inner" }, z2 = { class: "channel-brief-heading" }, B2 = ["aria-label", "aria-expanded"], V2 = {
54538
54883
  key: 0,
54539
54884
  class: "channel-brief-preview"
54540
- }, _2 = {
54885
+ }, H2 = {
54541
54886
  id: "channel-brief-content",
54542
54887
  class: "channel-brief-content"
54543
- }, v2 = ["innerHTML"], y2 = { class: "channel-brief-footer" }, b2 = { class: "channel-brief-status" }, x2 = { class: "channel-content" }, S2 = {
54888
+ }, U2 = ["innerHTML"], W2 = { class: "channel-brief-footer" }, G2 = { class: "channel-brief-status" }, K2 = { class: "channel-content" }, q2 = {
54544
54889
  key: 0,
54545
54890
  class: "content-page merged-page",
54546
54891
  role: "tabpanel",
54547
54892
  "aria-label": "讨论"
54548
- }, C2 = {
54893
+ }, J2 = {
54549
54894
  key: 1,
54550
54895
  class: "merged-section",
54551
54896
  "aria-label": "当前讨论"
54552
- }, w2 = { class: "page-heading" }, T2 = {
54897
+ }, Y2 = { class: "page-heading" }, X2 = {
54553
54898
  key: 0,
54554
54899
  class: "fine-print"
54555
- }, E2 = {
54900
+ }, Z2 = {
54556
54901
  class: "merged-section channel-summary",
54557
54902
  "aria-label": "当前共识"
54558
- }, D2 = { class: "page-heading" }, O2 = { class: "form-footer" }, k2 = { class: "button-row" }, A2 = { class: "consensus-card is-brief" }, j2 = ["innerHTML"], M2 = {
54903
+ }, Q2 = { class: "page-heading" }, $2 = { class: "form-footer" }, e4 = { class: "button-row" }, t4 = { class: "consensus-card is-brief" }, n4 = ["innerHTML"], r4 = {
54559
54904
  key: 0,
54560
54905
  class: "consensus-card"
54561
- }, N2 = ["innerHTML"], P2 = {
54906
+ }, i4 = ["innerHTML"], a4 = {
54562
54907
  key: 2,
54563
54908
  class: "fine-print"
54564
- }, F2 = {
54909
+ }, o4 = {
54565
54910
  key: 1,
54566
54911
  class: "content-page merged-page",
54567
54912
  role: "tabpanel",
54568
54913
  "aria-label": "房间"
54569
- }, I2 = {
54914
+ }, s4 = {
54570
54915
  key: 2,
54571
54916
  class: "content-page merged-page",
54572
54917
  role: "tabpanel",
54573
54918
  "aria-label": "执行"
54574
- }, L2 = {
54919
+ }, c4 = {
54575
54920
  key: 1,
54576
54921
  class: "channel-empty"
54577
- }, R2 = ["aria-valuenow", "aria-valuetext"], z2 = {
54922
+ }, l4 = ["aria-valuenow", "aria-valuetext"], u4 = {
54578
54923
  key: 2,
54579
54924
  id: "channel-member-rail",
54580
54925
  class: "channel-member-rail",
54581
54926
  "aria-label": "当前焦点与讨论进度"
54582
- }, B2 = { class: "channel-rail-board" }, V2 = {
54927
+ }, d4 = { class: "channel-rail-board" }, f4 = {
54583
54928
  key: 2,
54584
54929
  class: "progress-board is-docked"
54585
- }, H2 = { class: "channel-detail-title" }, U2 = { class: "info-section" }, W2 = "ai-codiscuss-channel-layout", G2 = 220, K2 = 440, q2 = 280, J2 = 16, Y2 = 180, X2 = 400, Z2 = 248, Q2 = 16, $2 = 480, e4 = 1200, t4 = 0, n4 = {
54930
+ }, p4 = { class: "channel-detail-title" }, m4 = { class: "info-section" }, h4 = "ai-codiscuss-channel-layout", g4 = 220, _4 = 440, v4 = 280, y4 = 16, b4 = 180, x4 = 400, S4 = 248, C4 = 16, w4 = 480, T4 = 1200, E4 = 0, D4 = {
54586
54931
  __name: "ChannelWorkspace",
54587
54932
  setup(e) {
54588
54933
  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 = [{
@@ -54604,14 +54949,14 @@ var B1 = {
54604
54949
  label: "宽",
54605
54950
  width: 1240
54606
54951
  }
54607
- }, b = je(), x = /* @__PURE__ */ F(b.reading), S = /* @__PURE__ */ F(b.effects), C = /* @__PURE__ */ F(b.rail), w = /* @__PURE__ */ F(b.nav), T = /* @__PURE__ */ F(typeof window > "u" ? 728 : window.innerWidth), E = /* @__PURE__ */ F(b.collapsed), D = /* @__PURE__ */ F(!0), O = /* @__PURE__ */ F(b.rail_collapsed), ee = Z(() => T.value >= e4), k = Z(() => t.value.tab === "discussion" && !O.value), te = Z(() => ee.value && t.value.tab === "discussion" ? O.value ? "展开房间概览" : "收起房间概览" : "房间资料与参与者"), ne = Z(() => {
54952
+ }, b = je(), x = /* @__PURE__ */ F(b.reading), S = /* @__PURE__ */ F(b.effects), C = /* @__PURE__ */ F(b.rail), w = /* @__PURE__ */ F(b.nav), T = /* @__PURE__ */ F(typeof window > "u" ? 728 : window.innerWidth), E = /* @__PURE__ */ F(b.collapsed), D = /* @__PURE__ */ F(!0), O = /* @__PURE__ */ F(b.rail_collapsed), ee = Z(() => T.value >= T4), k = Z(() => t.value.tab === "discussion" && !O.value), te = Z(() => ee.value && t.value.tab === "discussion" ? O.value ? "展开房间概览" : "收起房间概览" : "房间资料与参与者"), ne = Z(() => {
54608
54953
  let e = document.createElement("template");
54609
54954
  return e.innerHTML = o.value?.rendered_brief || "", e.content.textContent.replace(/\s+/g, " ").trim();
54610
- }), re = /* @__PURE__ */ F(null), ie = /* @__PURE__ */ F(0), A = null, j = /* @__PURE__ */ F(null), ae = /* @__PURE__ */ F(null), oe = Z(() => Math.min(X2, Math.max(Y2, T.value - $2 - t4))), se = Z(() => Math.min(w.value, oe.value)), ce = Z(() => ({
54955
+ }), re = /* @__PURE__ */ F(null), ie = /* @__PURE__ */ F(0), A = null, j = /* @__PURE__ */ F(null), ae = /* @__PURE__ */ F(null), oe = Z(() => Math.min(x4, Math.max(b4, T.value - w4 - E4))), se = Z(() => Math.min(w.value, oe.value)), ce = Z(() => ({
54611
54956
  "--channel-reading-width": `${y[x.value].width}px`,
54612
54957
  "--channel-rail-width": `${C.value}px`,
54613
54958
  "--channel-topbar-height": `${ie.value}px`,
54614
- "--channel-main-columns": E.value ? "minmax(0, 1fr)" : `${se.value}px ${t4}px minmax(0, 1fr)`
54959
+ "--channel-main-columns": E.value ? "minmax(0, 1fr)" : `${se.value}px ${E4}px minmax(0, 1fr)`
54615
54960
  })), le = Object.entries(y).map(([e, t]) => ({
54616
54961
  value: e,
54617
54962
  label: t.label
@@ -54705,12 +55050,12 @@ var B1 = {
54705
55050
  }
54706
55051
  function je() {
54707
55052
  try {
54708
- let e = JSON.parse(localStorage.getItem(W2)) || {};
55053
+ let e = JSON.parse(localStorage.getItem(h4)) || {};
54709
55054
  return {
54710
55055
  reading: Object.hasOwn(y, e.reading) ? e.reading : "default",
54711
55056
  effects: e.effects === "reduced" ? "reduced" : "full",
54712
- rail: Number.isFinite(e.rail) ? Math.min(K2, Math.max(G2, e.rail)) : q2,
54713
- nav: Number.isFinite(e.nav) ? Math.min(X2, Math.max(Y2, e.nav)) : Me(),
55057
+ rail: Number.isFinite(e.rail) ? Math.min(_4, Math.max(g4, e.rail)) : v4,
55058
+ nav: Number.isFinite(e.nav) ? Math.min(x4, Math.max(b4, e.nav)) : Me(),
54714
55059
  collapsed: e.collapsed === !0,
54715
55060
  brief_collapsed: e.brief_collapsed === !0,
54716
55061
  rail_collapsed: e.rail_collapsed === !0
@@ -54719,7 +55064,7 @@ var B1 = {
54719
55064
  return {
54720
55065
  reading: "default",
54721
55066
  effects: "full",
54722
- rail: q2,
55067
+ rail: v4,
54723
55068
  nav: Me(),
54724
55069
  collapsed: !1,
54725
55070
  brief_collapsed: !1,
@@ -54728,11 +55073,11 @@ var B1 = {
54728
55073
  }
54729
55074
  }
54730
55075
  function Me() {
54731
- return typeof window > "u" ? Z2 : window.innerWidth >= 1900 ? 280 : window.innerWidth <= 980 ? 220 : Z2;
55076
+ return typeof window > "u" ? S4 : window.innerWidth >= 1900 ? 280 : window.innerWidth <= 980 ? 220 : S4;
54732
55077
  }
54733
55078
  function Ne() {
54734
55079
  try {
54735
- localStorage.setItem(W2, JSON.stringify({
55080
+ localStorage.setItem(h4, JSON.stringify({
54736
55081
  reading: x.value,
54737
55082
  effects: S.value,
54738
55083
  rail: C.value,
@@ -54763,19 +55108,19 @@ var B1 = {
54763
55108
  }, e.currentTarget.setPointerCapture(e.pointerId));
54764
55109
  }
54765
55110
  function ze(e) {
54766
- j.value?.pointer === e.pointerId && (C.value = Math.round(Math.min(K2, Math.max(G2, j.value.width + j.value.x - e.clientX))));
55111
+ j.value?.pointer === e.pointerId && (C.value = Math.round(Math.min(_4, Math.max(g4, j.value.width + j.value.x - e.clientX))));
54767
55112
  }
54768
55113
  function Be(e) {
54769
55114
  j.value?.pointer === e.pointerId && (j.value = null, e.currentTarget.hasPointerCapture(e.pointerId) && e.currentTarget.releasePointerCapture(e.pointerId), Ne());
54770
55115
  }
54771
55116
  function Ve(e) {
54772
55117
  let t = {
54773
- ArrowLeft: C.value + J2,
54774
- ArrowRight: C.value - J2,
54775
- Home: G2,
54776
- End: K2
55118
+ ArrowLeft: C.value + y4,
55119
+ ArrowRight: C.value - y4,
55120
+ Home: g4,
55121
+ End: _4
54777
55122
  };
54778
- Object.hasOwn(t, e.key) && (e.preventDefault(), C.value = Math.min(K2, Math.max(G2, t[e.key])), Ne());
55123
+ Object.hasOwn(t, e.key) && (e.preventDefault(), C.value = Math.min(_4, Math.max(g4, t[e.key])), Ne());
54779
55124
  }
54780
55125
  function He(e) {
54781
55126
  e.button === 0 && (e.preventDefault(), e.currentTarget.focus(), ae.value = {
@@ -54785,19 +55130,19 @@ var B1 = {
54785
55130
  }, e.currentTarget.setPointerCapture(e.pointerId));
54786
55131
  }
54787
55132
  function Ue(e) {
54788
- ae.value?.pointer === e.pointerId && (w.value = Math.round(Math.min(oe.value, Math.max(Y2, ae.value.width + e.clientX - ae.value.x))));
55133
+ ae.value?.pointer === e.pointerId && (w.value = Math.round(Math.min(oe.value, Math.max(b4, ae.value.width + e.clientX - ae.value.x))));
54789
55134
  }
54790
55135
  function We(e) {
54791
55136
  ae.value?.pointer === e.pointerId && (ae.value = null, e.currentTarget.hasPointerCapture(e.pointerId) && e.currentTarget.releasePointerCapture(e.pointerId), Ne());
54792
55137
  }
54793
55138
  function Ge(e) {
54794
55139
  let t = {
54795
- ArrowLeft: se.value - Q2,
54796
- ArrowRight: se.value + Q2,
54797
- Home: Y2,
55140
+ ArrowLeft: se.value - C4,
55141
+ ArrowRight: se.value + C4,
55142
+ Home: b4,
54798
55143
  End: oe.value
54799
55144
  };
54800
- Object.hasOwn(t, e.key) && (e.preventDefault(), w.value = Math.min(oe.value, Math.max(Y2, t[e.key])), Ne());
55145
+ Object.hasOwn(t, e.key) && (e.preventDefault(), w.value = Math.min(oe.value, Math.max(b4, t[e.key])), Ne());
54801
55146
  }
54802
55147
  return (e, r) => {
54803
55148
  let y = sA, b = lH, w = pA, T = MA, O = $V, ie = WV, A = YV, pe = KV, N = HV, je = zV, Me = NV, Ne = AV;
@@ -54809,9 +55154,9 @@ var B1 = {
54809
55154
  }]),
54810
55155
  style: fe(ce.value)
54811
55156
  }, [
54812
- K("aside", K0, [
55157
+ K("aside", _2, [
54813
55158
  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),
54814
- K("div", q0, [
55159
+ K("div", v2, [
54815
55160
  q(gZ, {
54816
55161
  onSelect: Te,
54817
55162
  onManage: Ce,
@@ -54821,12 +55166,12 @@ var B1 = {
54821
55166
  onDeleteFolder: Ae,
54822
55167
  onArchives: we
54823
55168
  }),
54824
- K("div", J0, [K("button", {
55169
+ K("div", y2, [K("button", {
54825
55170
  type: "button",
54826
55171
  class: "channel-section-toggle",
54827
55172
  "aria-expanded": f.value,
54828
55173
  onClick: r[0] ||= (e) => f.value = !f.value
54829
- }, [q(y, { name: f.value ? "i-lucide-chevron-down" : "i-lucide-chevron-right" }, null, 8, ["name"]), r[29] ||= J("频道工具", -1)], 8, Y0)]),
55174
+ }, [q(y, { name: f.value ? "i-lucide-chevron-down" : "i-lucide-chevron-right" }, null, 8, ["name"]), r[29] ||= J("频道工具", -1)], 8, b2)]),
54830
55175
  f.value ? (U(), G(b, {
54831
55176
  key: 0,
54832
55177
  items: be.value,
@@ -54842,7 +55187,7 @@ var B1 = {
54842
55187
  }
54843
55188
  }, null, 8, ["items"])) : Y("", !0)
54844
55189
  ]),
54845
- K("footer", X0, [K("button", {
55190
+ K("footer", x2, [K("button", {
54846
55191
  type: "button",
54847
55192
  class: "channel-self-button",
54848
55193
  "aria-label": `账号与设置:${I(n).display_name(I(_))}${xe.value ? "," + xe.value : ""}`,
@@ -54858,10 +55203,10 @@ var B1 = {
54858
55203
  "text",
54859
55204
  "alt",
54860
55205
  "class"
54861
- ]), K("span", Q0, [K("strong", null, P(I(n).display_name(I(_))), 1), K("span", { class: M(["channel-connection", { "is-action": xe.value }]) }, [K("span", {
55206
+ ]), K("span", C2, [K("strong", null, P(I(n).display_name(I(_))), 1), K("span", { class: M(["channel-connection", { "is-action": xe.value }]) }, [K("span", {
54862
55207
  class: M({ connected: I(t).connected }),
54863
55208
  title: I(t).connected ? "网站已连接" : "网站未连接"
54864
- }, null, 10, $0), J(P(xe.value || (I(t).connected ? "网站已连接" : "网站未连接")), 1)], 2)])], 8, Z0), q(O, { text: "设置" }, {
55209
+ }, null, 10, w2), J(P(xe.value || (I(t).connected ? "网站已连接" : "网站未连接")), 1)], 2)])], 8, S2), q(O, { text: "设置" }, {
54865
55210
  default: L(() => [q(T, {
54866
55211
  icon: "i-lucide-settings-2",
54867
55212
  color: "neutral",
@@ -54882,7 +55227,7 @@ var B1 = {
54882
55227
  "aria-label": "调整房间栏宽度",
54883
55228
  "aria-orientation": "vertical",
54884
55229
  "aria-controls": "channel-sidebar",
54885
- "aria-valuemin": Y2,
55230
+ "aria-valuemin": b4,
54886
55231
  "aria-valuemax": oe.value,
54887
55232
  "aria-valuenow": se.value,
54888
55233
  "aria-valuetext": `${se.value} 像素`,
@@ -54893,13 +55238,13 @@ var B1 = {
54893
55238
  onPointercancel: We,
54894
55239
  onLostpointercapture: We,
54895
55240
  onKeydown: Ge
54896
- }, null, 40, e2)),
54897
- K("main", t2, [K("div", {
55241
+ }, null, 40, T2)),
55242
+ K("main", E2, [K("div", {
54898
55243
  ref_key: "topbar",
54899
55244
  ref: re,
54900
55245
  class: M(["channel-topbar", { "is-overlay": o.value && I(t).tab === "discussion" }])
54901
55246
  }, [
54902
- K("header", n2, [
55247
+ K("header", D2, [
54903
55248
  q(O, { text: E.value ? "展开房间栏" : "收起房间栏" }, {
54904
55249
  default: L(() => [q(T, {
54905
55250
  icon: "i-lucide-panel-left",
@@ -54924,8 +55269,8 @@ var B1 = {
54924
55269
  "aria-expanded": d.value,
54925
55270
  onClick: r[4] ||= (e) => d.value = !0
54926
55271
  }, null, 8, ["aria-expanded"]),
54927
- K("span", r2, [q(y, { name: "i-lucide-hash" })]),
54928
- K("div", i2, [K("div", a2, [K("h1", { title: o.value?.title }, P(o.value?.title || "共议"), 9, o2)]), o.value?.archived ? (U(), G(ie, {
55272
+ K("span", O2, [q(y, { name: "i-lucide-hash" })]),
55273
+ K("div", k2, [K("div", A2, [K("h1", { title: o.value?.title }, P(o.value?.title || "共议"), 9, j2)]), o.value?.archived ? (U(), G(ie, {
54929
55274
  key: 0,
54930
55275
  color: "neutral",
54931
55276
  variant: "subtle",
@@ -54934,12 +55279,12 @@ var B1 = {
54934
55279
  default: L(() => [...r[31] ||= [J("已存档", -1)]]),
54935
55280
  _: 1
54936
55281
  })) : Y("", !0)]),
54937
- o.value ? (U(), W("span", s2, [
55282
+ o.value ? (U(), W("span", M2, [
54938
55283
  J(P(de.find((e) => e.value === I(t).tab)?.label), 1),
54939
55284
  r[32] ||= K("span", null, "·", -1),
54940
55285
  J(P(o.value.message_count) + " 条记录", 1)
54941
55286
  ])) : Y("", !0),
54942
- K("div", c2, [
55287
+ K("div", N2, [
54943
55288
  I(t).tab === "discussion" ? (U(), W("form", {
54944
55289
  key: 0,
54945
55290
  class: "channel-search",
@@ -55018,12 +55363,12 @@ var B1 = {
55018
55363
  _: 1
55019
55364
  }, 8, ["text"])
55020
55365
  ]),
55021
- I(t).launch.recoveries.length ? (U(), W("section", l2, [
55366
+ I(t).launch.recoveries.length ? (U(), W("section", P2, [
55022
55367
  r[33] ||= K("h2", null, "继续未完成的请求", -1),
55023
55368
  (U(!0), W(H, null, B(I(t).launch.recoveries, (e) => (U(), W("article", { key: e.id }, [
55024
55369
  K("strong", null, P(e.title), 1),
55025
- K("p", u2, P(e.error || "启动结果尚未确认;原请求已保存在此浏览器中。"), 1),
55026
- K("div", d2, [
55370
+ K("p", F2, P(e.error || "启动结果尚未确认;原请求已保存在此浏览器中。"), 1),
55371
+ K("div", I2, [
55027
55372
  q(T, {
55028
55373
  label: e.direct ? "继续创建房间" : "继续本次启动",
55029
55374
  size: "sm",
@@ -55056,7 +55401,7 @@ var B1 = {
55056
55401
  ]))), 128)),
55057
55402
  r[34] ||= K("small", null, "移除待办不会删除房间或停止讨论。", -1)
55058
55403
  ])) : Y("", !0),
55059
- o.value ? (U(), W("div", f2, [q(pe, {
55404
+ o.value ? (U(), W("div", L2, [q(pe, {
55060
55405
  modelValue: ue.value,
55061
55406
  "onUpdate:modelValue": r[9] ||= (e) => ue.value = e,
55062
55407
  items: de,
@@ -55071,7 +55416,7 @@ var B1 = {
55071
55416
  key: 2,
55072
55417
  class: M(["channel-host-brief", { "is-collapsed": D.value }]),
55073
55418
  "aria-label": "主持简报"
55074
- }, [K("div", p2, [K("div", m2, [K("button", {
55419
+ }, [K("div", R2, [K("div", z2, [K("button", {
55075
55420
  type: "button",
55076
55421
  class: "channel-brief-toggle",
55077
55422
  "aria-label": D.value ? "展开主持简报" : "收起主持简报",
@@ -55081,8 +55426,8 @@ var B1 = {
55081
55426
  }, [
55082
55427
  q(y, { name: D.value ? "i-lucide-chevron-right" : "i-lucide-chevron-down" }, null, 8, ["name"]),
55083
55428
  K("strong", null, "主持简报" + P(D.value ? ":" : ""), 1),
55084
- D.value ? (U(), W("span", g2, P(ne.value), 1)) : Y("", !0)
55085
- ], 8, h2), D.value ? Y("", !0) : (U(), G(T, {
55429
+ D.value ? (U(), W("span", V2, P(ne.value), 1)) : Y("", !0)
55430
+ ], 8, B2), D.value ? Y("", !0) : (U(), G(T, {
55086
55431
  key: 0,
55087
55432
  label: "更新简报",
55088
55433
  color: "neutral",
@@ -55090,20 +55435,20 @@ var B1 = {
55090
55435
  size: "xs",
55091
55436
  class: "channel-brief-update",
55092
55437
  onClick: r[10] ||= (e) => I(i)("tab", "context")
55093
- }))]), vr(K("div", _2, [K("div", {
55438
+ }))]), vr(K("div", H2, [K("div", {
55094
55439
  class: "channel-brief-text markdown-body",
55095
55440
  innerHTML: o.value.rendered_brief
55096
- }, null, 8, v2), K("div", y2, [K("span", b2, P(I(n).progress_speaker(o.value)), 1), K("small", null, P(I(n).brief_meta(o.value)), 1)])], 512), [[Vc, !D.value]])])], 2)) : Y("", !0)
55441
+ }, null, 8, U2), K("div", W2, [K("span", G2, P(I(n).progress_speaker(o.value)), 1), K("small", null, P(I(n).brief_meta(o.value)), 1)])], 512), [[Vc, !D.value]])])], 2)) : Y("", !0)
55097
55442
  ], 2), o.value ? (U(), W("div", {
55098
55443
  key: 0,
55099
55444
  class: M(["channel-body", { "channel-body-discussion": I(t).tab === "discussion" }])
55100
- }, [K("div", x2, [
55445
+ }, [K("div", K2, [
55101
55446
  vr(q(lK, {
55102
55447
  onDetail: Ee,
55103
55448
  onEdit: r[11] ||= (e) => s.value = "edit"
55104
55449
  }, null, 512), [[Vc, I(t).tab === "discussion"]]),
55105
- I(t).tab === "history" ? (U(), W("div", S2, [
55106
- me.value ? (U(), W("section", C2, [K("div", w2, [r[35] ||= K("div", null, [K("h2", null, "当前讨论"), K("p", null, "没有进行中的讨论。开启后由主持人推进成员轮流发言,到上限或结束后房间回到自由协作,记录与结论保留。")], -1), q(T, {
55450
+ I(t).tab === "history" ? (U(), W("div", q2, [
55451
+ me.value ? (U(), W("section", J2, [K("div", Y2, [r[35] ||= K("div", null, [K("h2", null, "当前讨论"), K("p", null, "没有进行中的讨论。开启后由主持人推进成员轮流发言,到上限或结束后房间回到自由协作,记录与结论保留。")], -1), q(T, {
55107
55452
  icon: "i-lucide-messages-square",
55108
55453
  label: "开启讨论",
55109
55454
  variant: "outline",
@@ -55111,13 +55456,13 @@ var B1 = {
55111
55456
  class: "channel-surface-button",
55112
55457
  disabled: !_e.value,
55113
55458
  onClick: r[13] ||= (e) => he.value = !0
55114
- }, null, 8, ["disabled"])]), !_e.value && !o.value.archived ? (U(), W("p", T2, "开启讨论需要一位由本机唤醒的 AI 主持人,且本机服务在线。")) : Y("", !0)])) : (U(), G(kq, {
55459
+ }, null, 8, ["disabled"])]), !_e.value && !o.value.archived ? (U(), W("p", X2, "开启讨论需要一位由本机唤醒的 AI 主持人,且本机服务在线。")) : Y("", !0)])) : (U(), G(kq, {
55115
55460
  key: 0,
55116
55461
  section: "host",
55117
55462
  onOpen: r[12] ||= (e) => s.value = e,
55118
55463
  onDetail: Ee
55119
55464
  })),
55120
- K("section", E2, [K("div", D2, [r[36] ||= K("div", null, [K("h2", null, "当前共识"), K("p", null, "主持人整理的结论、共识与分歧,用 #消息编号 保留依据;讨论结束时保存进下方记录。")], -1), ge.value ? Y("", !0) : (U(), G(T, {
55465
+ K("section", Z2, [K("div", Q2, [r[36] ||= K("div", null, [K("h2", null, "当前共识"), K("p", null, "主持人整理的结论、共识与分歧,用 #消息编号 保留依据;讨论结束时保存进下方记录。")], -1), ge.value ? Y("", !0) : (U(), G(T, {
55121
55466
  key: 0,
55122
55467
  icon: "i-lucide-pencil",
55123
55468
  label: "编辑",
@@ -55161,7 +55506,7 @@ var B1 = {
55161
55506
  }, null, 8, ["modelValue"])]),
55162
55507
  _: 1
55163
55508
  }),
55164
- K("div", O2, [K("span", null, "依据消息截止 #" + P(I(t).snapshot_id), 1), K("div", k2, [q(T, {
55509
+ K("div", $2, [K("span", null, "依据消息截止 #" + P(I(t).snapshot_id), 1), K("div", e4, [q(T, {
55165
55510
  label: "取消",
55166
55511
  color: "neutral",
55167
55512
  variant: "ghost",
@@ -55174,7 +55519,7 @@ var B1 = {
55174
55519
  class: "channel-primary-button",
55175
55520
  loading: I(a) === "save_context"
55176
55521
  }, null, 8, ["loading"])])])
55177
- ], 32)) : o.value.host_brief?.text || o.value.state_text ? (U(), W(H, { key: 1 }, [K("div", A2, [K("h3", null, [r[37] ||= J("主持简报", -1), o.value.state_until ? (U(), W("button", {
55522
+ ], 32)) : o.value.host_brief?.text || o.value.state_text ? (U(), W(H, { key: 1 }, [K("div", t4, [K("h3", null, [r[37] ||= J("主持简报", -1), o.value.state_until ? (U(), W("button", {
55178
55523
  key: 0,
55179
55524
  type: "button",
55180
55525
  class: "subtle-link",
@@ -55182,7 +55527,7 @@ var B1 = {
55182
55527
  }, "整理至 #" + P(o.value.state_until), 1)) : Y("", !0)]), K("div", {
55183
55528
  class: "markdown-body",
55184
55529
  innerHTML: o.value.rendered_brief
55185
- }, null, 8, j2)]), ve.value ? (U(), W("details", M2, [K("summary", null, [
55530
+ }, null, 8, n4)]), ve.value ? (U(), W("details", r4, [K("summary", null, [
55186
55531
  r[38] ||= K("h3", null, "详细共识与进度", -1),
55187
55532
  r[39] ||= K("span", null, "依据、已处理内容、未决问题与下一步", -1),
55188
55533
  q(y, {
@@ -55192,21 +55537,21 @@ var B1 = {
55192
55537
  ]), K("div", {
55193
55538
  class: "markdown-body consensus-state",
55194
55539
  innerHTML: ve.value
55195
- }, null, 8, N2)])) : Y("", !0)], 64)) : (U(), W("p", P2, "还没有共识。主持人会在讨论中整理,也可以点“编辑”自己写。"))]),
55540
+ }, null, 8, i4)])) : Y("", !0)], 64)) : (U(), W("p", a4, "还没有共识。主持人会在讨论中整理,也可以点“编辑”自己写。"))]),
55196
55541
  q(J$, { onDetail: Ee }),
55197
55542
  q($Q, {
55198
55543
  open: he.value,
55199
55544
  "onUpdate:open": r[19] ||= (e) => he.value = e
55200
55545
  }, null, 8, ["open"])
55201
55546
  ])) : Y("", !0),
55202
- I(t).tab === "overview" ? (U(), W("div", F2, [q(C1), me.value ? Y("", !0) : (U(), G(kq, {
55547
+ I(t).tab === "overview" ? (U(), W("div", o4, [q(C1), me.value ? Y("", !0) : (U(), G(kq, {
55203
55548
  key: 0,
55204
55549
  section: "access",
55205
55550
  onOpen: r[20] ||= (e) => s.value = e,
55206
55551
  onDetail: Ee
55207
55552
  }))])) : Y("", !0),
55208
- I(t).tab === "timeline" ? (U(), W("div", I2, [q(G0, { onDetail: Ee })])) : Y("", !0)
55209
- ])], 2)) : (U(), W("div", L2, [
55553
+ I(t).tab === "timeline" ? (U(), W("div", s4, [q(g2, { onDetail: Ee })])) : Y("", !0)
55554
+ ])], 2)) : (U(), W("div", c4, [
55210
55555
  q(y, { name: "i-lucide-hash" }),
55211
55556
  r[40] ||= K("h2", null, "新建一个协作房间", -1),
55212
55557
  r[41] ||= K("p", null, "邀请 AI 一起协作,随时 @ 提问;需要时开启讨论,保留所有人的观点。", -1),
@@ -55225,8 +55570,8 @@ var B1 = {
55225
55570
  "aria-label": "调整右侧栏宽度",
55226
55571
  "aria-orientation": "vertical",
55227
55572
  "aria-controls": "channel-member-rail",
55228
- "aria-valuemin": G2,
55229
- "aria-valuemax": K2,
55573
+ "aria-valuemin": g4,
55574
+ "aria-valuemax": _4,
55230
55575
  "aria-valuenow": C.value,
55231
55576
  "aria-valuetext": `${C.value} 像素`,
55232
55577
  title: "拖动调整右侧栏宽度,也可使用左右方向键",
@@ -55236,11 +55581,11 @@ var B1 = {
55236
55581
  onPointercancel: Be,
55237
55582
  onLostpointercapture: Be,
55238
55583
  onKeydown: Ve
55239
- }, null, 40, R2)) : Y("", !0),
55240
- k.value ? (U(), W("aside", z2, [K("section", B2, [o.value && me.value ? (U(), G(N$, { key: 0 })) : o.value ? (U(), G(GQ, {
55584
+ }, null, 40, l4)) : Y("", !0),
55585
+ k.value ? (U(), W("aside", u4, [K("section", d4, [o.value && me.value ? (U(), G(N$, { key: 0 })) : o.value ? (U(), G(GQ, {
55241
55586
  key: 1,
55242
55587
  docked: ""
55243
- })) : (U(), W("div", V2, [...r[42] ||= [K("header", { class: "pb-header" }, [K("strong", null, "讨论进度")], -1), K("p", { class: "channel-rail-empty" }, "暂无房间,新建讨论后在这里查看进度与参与者。", -1)]]))])])) : Y("", !0),
55588
+ })) : (U(), W("div", f4, [...r[42] ||= [K("header", { class: "pb-header" }, [K("strong", null, "讨论进度")], -1), K("p", { class: "channel-rail-empty" }, "暂无房间,新建讨论后在这里查看进度与参与者。", -1)]]))])])) : Y("", !0),
55244
55589
  q(Me, {
55245
55590
  open: d.value,
55246
55591
  "onUpdate:open": r[23] ||= (e) => d.value = e,
@@ -55283,7 +55628,7 @@ var B1 = {
55283
55628
  }
55284
55629
  }, {
55285
55630
  body: L(() => [o.value ? (U(), W(H, { key: 0 }, [
55286
- K("div", H2, [q(y, { name: "i-lucide-hash" }), K("h2", null, P(o.value.title), 1)]),
55631
+ K("div", p4, [q(y, { name: "i-lucide-hash" }), K("h2", null, P(o.value.title), 1)]),
55287
55632
  (U(), W(H, null, B([
55288
55633
  {
55289
55634
  key: "goal",
@@ -55310,7 +55655,7 @@ var B1 = {
55310
55655
  class: "info-section"
55311
55656
  }, [K("h3", null, P(e.label), 1), K("p", null, P(o.value[e.key] || "尚未填写"), 1)])), 64)),
55312
55657
  q(Ne),
55313
- K("section", U2, [r[43] ||= K("h3", null, "参与身份", -1), (U(!0), W(H, null, B(Se.value, (e) => (U(), W("div", {
55658
+ K("section", m4, [r[43] ||= K("h3", null, "参与身份", -1), (U(!0), W(H, null, B(Se.value, (e) => (U(), W("div", {
55314
55659
  key: e.name,
55315
55660
  class: "expert-row"
55316
55661
  }, [
@@ -55367,7 +55712,7 @@ var B1 = {
55367
55712
  ], 6);
55368
55713
  };
55369
55714
  }
55370
- }, r4 = {
55715
+ }, O4 = {
55371
55716
  __name: "App",
55372
55717
  setup(e) {
55373
55718
  return br("discussion", OV()), (e, t) => {
@@ -55378,7 +55723,7 @@ var B1 = {
55378
55723
  toaster: null
55379
55724
  }, {
55380
55725
  default: L(() => [q(I(Qz), { "reduced-motion": "user" }, {
55381
- default: L(() => [q(n4)]),
55726
+ default: L(() => [q(D4)]),
55382
55727
  _: 1
55383
55728
  })]),
55384
55729
  _: 1
@@ -55388,8 +55733,8 @@ var B1 = {
55388
55733
  };
55389
55734
  //#endregion
55390
55735
  //#region frontend/main.js
55391
- function i4() {
55392
- bu(r4).use(ph).mount("#modern-root");
55736
+ function k4() {
55737
+ bu(O4).use(ph).mount("#modern-root");
55393
55738
  }
55394
- document.readyState === "loading" ? document.addEventListener("DOMContentLoaded", i4) : i4();
55739
+ document.readyState === "loading" ? document.addEventListener("DOMContentLoaded", k4) : k4();
55395
55740
  //#endregion