page-agent-sdk 1.4.0 → 1.4.1

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.
@@ -24,10 +24,10 @@ function _(e) {
24
24
  var v = process.env.NODE_ENV === "production" ? {} : Object.freeze({}), y = process.env.NODE_ENV === "production" ? [] : Object.freeze([]), b = () => {}, x = () => !1, S = (e) => e.charCodeAt(0) === 111 && e.charCodeAt(1) === 110 && (e.charCodeAt(2) > 122 || e.charCodeAt(2) < 97), C = (e) => e.startsWith("onUpdate:"), w = Object.assign, T = (e, t) => {
25
25
  let n = e.indexOf(t);
26
26
  n > -1 && e.splice(n, 1);
27
- }, E = Object.prototype.hasOwnProperty, D = (e, t) => E.call(e, t), O = Array.isArray, k = (e) => ee(e) === "[object Map]", A = (e) => ee(e) === "[object Set]", j = (e) => ee(e) === "[object Date]", M = (e) => typeof e == "function", N = (e) => typeof e == "string", P = (e) => typeof e == "symbol", F = (e) => typeof e == "object" && !!e, I = (e) => (F(e) || M(e)) && M(e.then) && M(e.catch), L = Object.prototype.toString, ee = (e) => L.call(e), R = (e) => ee(e).slice(8, -1), te = (e) => ee(e) === "[object Object]", ne = (e) => N(e) && e !== "NaN" && e[0] !== "-" && "" + parseInt(e, 10) === e, re = /* @__PURE__ */ _(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"), ie = /* @__PURE__ */ _("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"), ae = (e) => {
27
+ }, E = Object.prototype.hasOwnProperty, D = (e, t) => E.call(e, t), O = Array.isArray, k = (e) => ee(e) === "[object Map]", A = (e) => ee(e) === "[object Set]", j = (e) => ee(e) === "[object Date]", M = (e) => typeof e == "function", N = (e) => typeof e == "string", P = (e) => typeof e == "symbol", F = (e) => typeof e == "object" && !!e, I = (e) => (F(e) || M(e)) && M(e.then) && M(e.catch), L = Object.prototype.toString, ee = (e) => L.call(e), R = (e) => ee(e).slice(8, -1), z = (e) => ee(e) === "[object Object]", te = (e) => N(e) && e !== "NaN" && e[0] !== "-" && "" + parseInt(e, 10) === e, ne = /* @__PURE__ */ _(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"), re = /* @__PURE__ */ _("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"), ie = (e) => {
28
28
  let t = /* @__PURE__ */ Object.create(null);
29
29
  return ((n) => t[n] || (t[n] = e(n)));
30
- }, oe = /-\w/g, se = ae((e) => e.replace(oe, (e) => e.slice(1).toUpperCase())), ce = /\B([A-Z])/g, le = ae((e) => e.replace(ce, "-$1").toLowerCase()), ue = ae((e) => e.charAt(0).toUpperCase() + e.slice(1)), de = ae((e) => e ? `on${ue(e)}` : ""), z = (e, t) => !Object.is(e, t), fe = (e, ...t) => {
30
+ }, ae = /-\w/g, oe = ie((e) => e.replace(ae, (e) => e.slice(1).toUpperCase())), se = /\B([A-Z])/g, ce = ie((e) => e.replace(se, "-$1").toLowerCase()), le = ie((e) => e.charAt(0).toUpperCase() + e.slice(1)), ue = ie((e) => e ? `on${le(e)}` : ""), de = (e, t) => !Object.is(e, t), fe = (e, ...t) => {
31
31
  for (let n = 0; n < e.length; n++) e[n](...t);
32
32
  }, pe = (e, t, n, r = !1) => {
33
33
  Object.defineProperty(e, t, {
@@ -99,7 +99,7 @@ function Ne(e, t) {
99
99
  }
100
100
  return String(e) === String(t);
101
101
  }
102
- var Pe = (e) => !!(e && e.__v_isRef === !0), V = (e) => N(e) ? e : e == null ? "" : O(e) || F(e) && (e.toString === L || !M(e.toString)) ? Pe(e) ? V(e.value) : JSON.stringify(e, Fe, 2) : String(e), Fe = (e, t) => Pe(t) ? Fe(e, t.value) : k(t) ? { [`Map(${t.size})`]: [...t.entries()].reduce((e, [t, n], r) => (e[Ie(t, r) + " =>"] = n, e), {}) } : A(t) ? { [`Set(${t.size})`]: [...t.values()].map((e) => Ie(e)) } : P(t) ? Ie(t) : F(t) && !O(t) && !te(t) ? String(t) : t, Ie = (e, t = "") => P(e) ? `Symbol(${e.description ?? t})` : e;
102
+ var Pe = (e) => !!(e && e.__v_isRef === !0), V = (e) => N(e) ? e : e == null ? "" : O(e) || F(e) && (e.toString === L || !M(e.toString)) ? Pe(e) ? V(e.value) : JSON.stringify(e, Fe, 2) : String(e), Fe = (e, t) => Pe(t) ? Fe(e, t.value) : k(t) ? { [`Map(${t.size})`]: [...t.entries()].reduce((e, [t, n], r) => (e[Ie(t, r) + " =>"] = n, e), {}) } : A(t) ? { [`Set(${t.size})`]: [...t.values()].map((e) => Ie(e)) } : P(t) ? Ie(t) : F(t) && !O(t) && !z(t) ? String(t) : t, Ie = (e, t = "") => P(e) ? `Symbol(${e.description ?? t})` : e;
103
103
  //#endregion
104
104
  //#region node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js
105
105
  function Le(e, ...t) {
@@ -275,7 +275,7 @@ function Qe(e) {
275
275
  try {
276
276
  Ye(e);
277
277
  let n = e.fn(e._value);
278
- (t.version === 0 || z(n, e._value)) && (e.flags |= 128, e._value = n, t.version++);
278
+ (t.version === 0 || de(n, e._value)) && (e.flags |= 128, e._value = n, t.version++);
279
279
  } catch (e) {
280
280
  throw t.version++, e;
281
281
  } finally {
@@ -387,7 +387,7 @@ function ht(e, t, n, r, i, a) {
387
387
  };
388
388
  if (qe(), t === "clear") o.forEach(s);
389
389
  else {
390
- let i = O(e), a = i && ne(n);
390
+ let i = O(e), a = i && te(n);
391
391
  if (i && n === "length") {
392
392
  let e = Number(r);
393
393
  o.forEach((t, n) => {
@@ -571,7 +571,7 @@ var kt = class {
571
571
  let o = Reflect.get(e, t, /* @__PURE__ */ dn(e) ? e : n);
572
572
  if ((P(t) ? Dt.has(t) : Et(t)) || (r || mt(e, "get", t), i)) return o;
573
573
  if (/* @__PURE__ */ dn(o)) {
574
- let e = a && ne(t) ? o : o.value;
574
+ let e = a && te(t) ? o : o.value;
575
575
  return r && F(e) ? /* @__PURE__ */ en(e) : e;
576
576
  }
577
577
  return F(o) ? r ? /* @__PURE__ */ en(o) : /* @__PURE__ */ Qt(o) : o;
@@ -581,13 +581,13 @@ var kt = class {
581
581
  super(!1, e);
582
582
  }
583
583
  set(e, t, n, r) {
584
- let i = e[t], a = O(e) && ne(t);
584
+ let i = e[t], a = O(e) && te(t);
585
585
  if (!this._isShallow) {
586
586
  let r = /* @__PURE__ */ an(i);
587
587
  if (!/* @__PURE__ */ on(n) && !/* @__PURE__ */ an(n) && (i = /* @__PURE__ */ U(i), n = /* @__PURE__ */ U(n)), !a && /* @__PURE__ */ dn(i) && !/* @__PURE__ */ dn(n)) return r ? (process.env.NODE_ENV !== "production" && Le(`Set operation on key "${String(t)}" failed: target is readonly.`, e[t]), !0) : (i.value = n, !0);
588
588
  }
589
589
  let o = a ? Number(t) < e.length : D(e, t), s = Reflect.set(e, t, n, /* @__PURE__ */ dn(e) ? e : r);
590
- return e === /* @__PURE__ */ U(r) && s && (o ? z(n, i) && ht(e, "set", t, n, i) : ht(e, "add", t, n)), s;
590
+ return e === /* @__PURE__ */ U(r) && s && (o ? de(n, i) && ht(e, "set", t, n, i) : ht(e, "add", t, n)), s;
591
591
  }
592
592
  deleteProperty(e, t) {
593
593
  let n = D(e, t), r = e[t], i = Reflect.deleteProperty(e, t);
@@ -630,7 +630,7 @@ function zt(e) {
630
630
  return function(...t) {
631
631
  if (process.env.NODE_ENV !== "production") {
632
632
  let n = t[0] ? `on key "${t[0]}" ` : "";
633
- Le(`${ue(e)} operation ${n}failed: target is readonly.`, /* @__PURE__ */ U(this));
633
+ Le(`${le(e)} operation ${n}failed: target is readonly.`, /* @__PURE__ */ U(this));
634
634
  }
635
635
  return e === "delete" ? !1 : e === "clear" ? void 0 : this;
636
636
  };
@@ -639,7 +639,7 @@ function Bt(e, t) {
639
639
  let n = {
640
640
  get(n) {
641
641
  let r = this.__v_raw, i = /* @__PURE__ */ U(r), a = /* @__PURE__ */ U(n);
642
- e || (z(n, a) && mt(i, "get", n), mt(i, "get", a));
642
+ e || (de(n, a) && mt(i, "get", n), mt(i, "get", a));
643
643
  let { has: o } = Lt(i), s = t ? It : e ? un : ln;
644
644
  if (o.call(i, n)) return s(r.get(n));
645
645
  if (o.call(i, a)) return s(r.get(a));
@@ -651,7 +651,7 @@ function Bt(e, t) {
651
651
  },
652
652
  has(t) {
653
653
  let n = this.__v_raw, r = /* @__PURE__ */ U(n), i = /* @__PURE__ */ U(t);
654
- return e || (z(t, i) && mt(r, "has", t), mt(r, "has", i)), t === i ? n.has(t) : n.has(t) || n.has(i);
654
+ return e || (de(t, i) && mt(r, "has", t), mt(r, "has", i)), t === i ? n.has(t) : n.has(t) || n.has(i);
655
655
  },
656
656
  forEach(n, r) {
657
657
  let i = this, a = i.__v_raw, o = /* @__PURE__ */ U(a), s = t ? It : e ? un : ln;
@@ -666,14 +666,14 @@ function Bt(e, t) {
666
666
  } : {
667
667
  add(e) {
668
668
  let n = /* @__PURE__ */ U(this), r = Lt(n), i = /* @__PURE__ */ U(e), a = !t && !/* @__PURE__ */ on(e) && !/* @__PURE__ */ an(e) ? i : e;
669
- return r.has.call(n, a) || z(e, a) && r.has.call(n, e) || z(i, a) && r.has.call(n, i) || (n.add(a), ht(n, "add", a, a)), this;
669
+ return r.has.call(n, a) || de(e, a) && r.has.call(n, e) || de(i, a) && r.has.call(n, i) || (n.add(a), ht(n, "add", a, a)), this;
670
670
  },
671
671
  set(e, n) {
672
672
  !t && !/* @__PURE__ */ on(n) && !/* @__PURE__ */ an(n) && (n = /* @__PURE__ */ U(n));
673
673
  let r = /* @__PURE__ */ U(this), { has: i, get: a } = Lt(r), o = i.call(r, e);
674
674
  o ? process.env.NODE_ENV !== "production" && Kt(r, i, e) : (e = /* @__PURE__ */ U(e), o = i.call(r, e));
675
675
  let s = a.call(r, e);
676
- return r.set(e, n), o ? z(n, s) && ht(r, "set", e, n, s) : ht(r, "add", e, n), this;
676
+ return r.set(e, n), o ? de(n, s) && ht(r, "set", e, n, s) : ht(r, "add", e, n), this;
677
677
  },
678
678
  delete(e) {
679
679
  let t = /* @__PURE__ */ U(this), { has: n, get: r } = Lt(t), i = n.call(t, e);
@@ -797,7 +797,7 @@ var hn = class {
797
797
  }
798
798
  set value(e) {
799
799
  let t = this._rawValue, n = this.__v_isShallow || /* @__PURE__ */ on(e) || /* @__PURE__ */ an(e);
800
- e = n ? e : /* @__PURE__ */ U(e), z(e, t) && (this._rawValue = e, this._value = n ? e : ln(e), process.env.NODE_ENV === "production" ? this.dep.trigger() : this.dep.trigger({
800
+ e = n ? e : /* @__PURE__ */ U(e), de(e, t) && (this._rawValue = e, this._value = n ? e : ln(e), process.env.NODE_ENV === "production" ? this.dep.trigger() : this.dep.trigger({
801
801
  target: this,
802
802
  type: "set",
803
803
  key: "value",
@@ -903,7 +903,7 @@ function Tn(e, t, n = v) {
903
903
  let x = g ? Array(e.length).fill(xn) : xn, S = (e) => {
904
904
  if (!(!(d.flags & 1) || !d.dirty && !e)) if (t) {
905
905
  let n = d.run();
906
- if (e || i || h || (g ? n.some((e, t) => z(e, x[t])) : z(n, x))) {
906
+ if (e || i || h || (g ? n.some((e, t) => de(e, x[t])) : de(n, x))) {
907
907
  p && p();
908
908
  let e = Cn;
909
909
  Cn = d;
@@ -936,7 +936,7 @@ function En(e, t = Infinity, n) {
936
936
  else if (A(e) || k(e)) e.forEach((e) => {
937
937
  En(e, t, n);
938
938
  });
939
- else if (te(e)) {
939
+ else if (z(e)) {
940
940
  for (let r in e) En(e[r], t, n);
941
941
  for (let r of Object.getOwnPropertySymbols(e)) Object.prototype.propertyIsEnumerable.call(e, r) && En(e[r], t, n);
942
942
  }
@@ -1298,7 +1298,7 @@ function Lr(e, t = Pr, n) {
1298
1298
  return r._n = !0, r._c = !0, r._d = !0, r;
1299
1299
  }
1300
1300
  function Rr(e) {
1301
- ie(e) && G("Do not use built-in directive ids as custom directive id: " + e);
1301
+ re(e) && G("Do not use built-in directive ids as custom directive id: " + e);
1302
1302
  }
1303
1303
  function zr(e, t) {
1304
1304
  if (Pr === null) return process.env.NODE_ENV !== "production" && G("withDirectives can only be used inside render functions."), e;
@@ -1772,7 +1772,7 @@ function Li(e, t, n = ps, r = !1) {
1772
1772
  return i(), it(), a;
1773
1773
  };
1774
1774
  return r ? i.unshift(a) : i.push(a), a;
1775
- } else process.env.NODE_ENV !== "production" && G(`${de(Ln[e].replace(/ hook$/, ""))} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup(). If you are using async setup(), make sure to register lifecycle hooks before the first await statement.`);
1775
+ } else process.env.NODE_ENV !== "production" && G(`${ue(Ln[e].replace(/ hook$/, ""))} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup(). If you are using async setup(), make sure to register lifecycle hooks before the first await statement.`);
1776
1776
  }
1777
1777
  var Ri = (e) => (t, n = ps) => {
1778
1778
  (!Ss || e === "sp") && Li(e, (...e) => t(...e), n);
@@ -2169,13 +2169,13 @@ function wa(e, t) {
2169
2169
  return c;
2170
2170
  };
2171
2171
  }
2172
- var Ta = null, Ea = (e, t) => t === "modelValue" || t === "model-value" ? e.modelModifiers : e[`${t}Modifiers`] || e[`${se(t)}Modifiers`] || e[`${le(t)}Modifiers`];
2172
+ var Ta = null, Ea = (e, t) => t === "modelValue" || t === "model-value" ? e.modelModifiers : e[`${t}Modifiers`] || e[`${oe(t)}Modifiers`] || e[`${ce(t)}Modifiers`];
2173
2173
  function Da(e, t, ...n) {
2174
2174
  if (e.isUnmounted) return;
2175
2175
  let r = e.vnode.props || v;
2176
2176
  if (process.env.NODE_ENV !== "production") {
2177
2177
  let { emitsOptions: r, propsOptions: [i] } = e;
2178
- if (r) if (!(t in r)) (!i || !(de(se(t)) in i)) && G(`Component emitted event "${t}" but it is neither declared in the emits option nor as an "${de(se(t))}" prop.`);
2178
+ if (r) if (!(t in r)) (!i || !(ue(oe(t)) in i)) && G(`Component emitted event "${t}" but it is neither declared in the emits option nor as an "${ue(oe(t))}" prop.`);
2179
2179
  else {
2180
2180
  let e = r[t];
2181
2181
  M(e) && (e(...n) || G(`Invalid event arguments: event validation failed for event "${t}".`));
@@ -2184,10 +2184,10 @@ function Da(e, t, ...n) {
2184
2184
  let i = n, a = t.startsWith("update:"), o = a && Ea(r, t.slice(7));
2185
2185
  if (o && (o.trim && (i = n.map((e) => N(e) ? e.trim() : e)), o.number && (i = n.map(B))), process.env.NODE_ENV !== "production" && Nr(e, t, i), process.env.NODE_ENV !== "production") {
2186
2186
  let n = t.toLowerCase();
2187
- n !== t && r[de(n)] && G(`Event "${n}" is emitted in component ${Ls(e, e.type)} but the handler is registered for "${t}". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use "${le(t)}" instead of "${t}".`);
2187
+ n !== t && r[ue(n)] && G(`Event "${n}" is emitted in component ${Ls(e, e.type)} but the handler is registered for "${t}". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use "${ce(t)}" instead of "${t}".`);
2188
2188
  }
2189
- let s, c = r[s = de(t)] || r[s = de(se(t))];
2190
- !c && a && (c = r[s = de(le(t))]), c && zn(c, e, 6, i);
2189
+ let s, c = r[s = ue(t)] || r[s = ue(oe(t))];
2190
+ !c && a && (c = r[s = ue(ce(t))]), c && zn(c, e, 6, i);
2191
2191
  let l = r[s + "Once"];
2192
2192
  if (l) {
2193
2193
  if (!e.emitted) e.emitted = {};
@@ -2210,7 +2210,7 @@ function ka(e, t, n = !1) {
2210
2210
  return !a && !s ? (F(e) && r.set(e, null), null) : (O(a) ? a.forEach((e) => o[e] = null) : w(o, a), F(e) && r.set(e, o), o);
2211
2211
  }
2212
2212
  function Aa(e, t) {
2213
- return !e || !S(t) ? !1 : (t = t.slice(2), t = t === "Once" ? t : t.replace(/Once$/, ""), D(e, t[0].toLowerCase() + t.slice(1)) || D(e, le(t)) || D(e, t));
2213
+ return !e || !S(t) ? !1 : (t = t.slice(2), t = t === "Once" ? t : t.replace(/Once$/, ""), D(e, t[0].toLowerCase() + t.slice(1)) || D(e, ce(t)) || D(e, t));
2214
2214
  }
2215
2215
  var ja = !1;
2216
2216
  function Ma() {
@@ -2351,7 +2351,7 @@ function Ja(e, t, n, r) {
2351
2351
  let u = t[o];
2352
2352
  if (c) if (D(a, o)) u !== a[o] && (a[o] = u, l = !0);
2353
2353
  else {
2354
- let t = se(o);
2354
+ let t = oe(o);
2355
2355
  i[t] = Xa(c, s, t, u, e, !1);
2356
2356
  }
2357
2357
  else u !== a[o] && (a[o] = u, l = !0);
@@ -2360,7 +2360,7 @@ function Ja(e, t, n, r) {
2360
2360
  } else {
2361
2361
  Ya(e, t, i, a) && (l = !0);
2362
2362
  let r;
2363
- for (let a in s) (!t || !D(t, a) && ((r = le(a)) === a || !D(t, r))) && (c ? n && (n[a] !== void 0 || n[r] !== void 0) && (i[a] = Xa(c, s, a, void 0, e, !0)) : delete i[a]);
2363
+ for (let a in s) (!t || !D(t, a) && ((r = ce(a)) === a || !D(t, r))) && (c ? n && (n[a] !== void 0 || n[r] !== void 0) && (i[a] = Xa(c, s, a, void 0, e, !0)) : delete i[a]);
2364
2364
  if (a !== s) for (let e in a) (!t || !D(t, e)) && (delete a[e], l = !0);
2365
2365
  }
2366
2366
  l && ht(e.attrs, "set", ""), process.env.NODE_ENV !== "production" && to(t || {}, i, e);
@@ -2368,9 +2368,9 @@ function Ja(e, t, n, r) {
2368
2368
  function Ya(e, t, n, r) {
2369
2369
  let [i, a] = e.propsOptions, o = !1, s;
2370
2370
  if (t) for (let c in t) {
2371
- if (re(c)) continue;
2371
+ if (ne(c)) continue;
2372
2372
  let l = t[c], u;
2373
- i && D(i, u = se(c)) ? !a || !a.includes(u) ? n[u] = l : (s ||= {})[u] = l : Aa(e.emitsOptions, c) || (!(c in r) || l !== r[c]) && (r[c] = l, o = !0);
2373
+ i && D(i, u = oe(c)) ? !a || !a.includes(u) ? n[u] = l : (s ||= {})[u] = l : Aa(e.emitsOptions, c) || (!(c in r) || l !== r[c]) && (r[c] = l, o = !0);
2374
2374
  }
2375
2375
  if (a) {
2376
2376
  let t = /* @__PURE__ */ U(n), r = s || v;
@@ -2397,7 +2397,7 @@ function Xa(e, t, n, r, i, a) {
2397
2397
  } else r = e;
2398
2398
  i.ce && i.ce._setProp(n, r);
2399
2399
  }
2400
- o[0] && (a && !e ? r = !1 : o[1] && (r === "" || r === le(n)) && (r = !0));
2400
+ o[0] && (a && !e ? r = !1 : o[1] && (r === "" || r === ce(n)) && (r = !0));
2401
2401
  }
2402
2402
  return r;
2403
2403
  }
@@ -2417,13 +2417,13 @@ function Qa(e, t, n = !1) {
2417
2417
  if (!a && !c) return F(e) && r.set(e, y), y;
2418
2418
  if (O(a)) for (let e = 0; e < a.length; e++) {
2419
2419
  process.env.NODE_ENV !== "production" && !N(a[e]) && G("props must be strings when using array syntax.", a[e]);
2420
- let t = se(a[e]);
2420
+ let t = oe(a[e]);
2421
2421
  $a(t) && (o[t] = v);
2422
2422
  }
2423
2423
  else if (a) {
2424
2424
  process.env.NODE_ENV !== "production" && !F(a) && G("invalid props options", a);
2425
2425
  for (let e in a) {
2426
- let t = se(e);
2426
+ let t = oe(e);
2427
2427
  if ($a(t)) {
2428
2428
  let n = a[e], r = o[t] = O(n) || M(n) ? { type: n } : w({}, n), i = r.type, c = !1, l = !0;
2429
2429
  if (O(i)) for (let e = 0; e < i.length; ++e) {
@@ -2442,13 +2442,13 @@ function Qa(e, t, n = !1) {
2442
2442
  return F(e) && r.set(e, l), l;
2443
2443
  }
2444
2444
  function $a(e) {
2445
- return e[0] !== "$" && !re(e) ? !0 : (process.env.NODE_ENV !== "production" && G(`Invalid prop name: "${e}" is a reserved property.`), !1);
2445
+ return e[0] !== "$" && !ne(e) ? !0 : (process.env.NODE_ENV !== "production" && G(`Invalid prop name: "${e}" is a reserved property.`), !1);
2446
2446
  }
2447
2447
  function eo(e) {
2448
2448
  return e === null ? "null" : typeof e == "function" ? e.name || "" : typeof e == "object" && e.constructor && e.constructor.name || "";
2449
2449
  }
2450
2450
  function to(e, t, n) {
2451
- let r = /* @__PURE__ */ U(t), i = n.propsOptions[0], a = Object.keys(e).map((e) => se(e));
2451
+ let r = /* @__PURE__ */ U(t), i = n.propsOptions[0], a = Object.keys(e).map((e) => oe(e));
2452
2452
  for (let e in i) {
2453
2453
  let t = i[e];
2454
2454
  t != null && no(e, r[e], t, process.env.NODE_ENV === "production" ? r : /* @__PURE__ */ tn(r), !a.includes(e));
@@ -2490,7 +2490,7 @@ function io(e, t) {
2490
2490
  }
2491
2491
  function ao(e, t, n) {
2492
2492
  if (n.length === 0) return `Prop type [] for prop "${e}" won't match anything. Did you mean to use type Array instead?`;
2493
- let r = `Invalid prop: type check failed for prop "${e}". Expected ${n.map(ue).join(" | ")}`, i = n[0], a = R(t), o = oo(t, i), s = oo(t, a);
2493
+ let r = `Invalid prop: type check failed for prop "${e}". Expected ${n.map(le).join(" | ")}`, i = n[0], a = R(t), o = oo(t, i), s = oo(t, a);
2494
2494
  return n.length === 1 && so(i) && co(i, a) && (r += ` with value ${o}`), r += `, got ${a} `, so(a) && (r += `with value ${s}.`), r;
2495
2495
  }
2496
2496
  function oo(e, t) {
@@ -2577,7 +2577,7 @@ function Eo(e, t) {
2577
2577
  n.__VUE__ = !0, process.env.NODE_ENV !== "production" && Sr(n.__VUE_DEVTOOLS_GLOBAL_HOOK__, n);
2578
2578
  let { insert: r, remove: i, patchProp: a, createElement: o, createText: s, createComment: c, setText: l, setElementText: u, parentNode: d, nextSibling: f, setScopeId: p = b, insertStaticContent: m } = e, h = (e, t, n, r = null, i = null, a = null, o = void 0, s = null, c = process.env.NODE_ENV !== "production" && or ? !1 : !!t.dynamicChildren) => {
2579
2579
  if (e === t) return;
2580
- e && !Jo(e, t) && (r = le(e), ie(e, i, a, !0), e = null), t.patchFlag === -2 && (c = !1, t.dynamicChildren = null);
2580
+ e && !Jo(e, t) && (r = ce(e), re(e, i, a, !0), e = null), t.patchFlag === -2 && (c = !1, t.dynamicChildren = null);
2581
2581
  let { type: l, ref: u, shapeFlag: d } = t;
2582
2582
  switch (l) {
2583
2583
  case Lo:
@@ -2592,7 +2592,7 @@ function Eo(e, t) {
2592
2592
  case K:
2593
2593
  M(e, t, n, r, i, a, o, s, c);
2594
2594
  break;
2595
- default: d & 1 ? T(e, t, n, r, i, a, o, s, c) : d & 6 ? N(e, t, n, r, i, a, o, s, c) : d & 64 || d & 128 ? l.process(e, t, n, r, i, a, o, s, c, z) : process.env.NODE_ENV !== "production" && G("Invalid VNode type:", l, `(${typeof l})`);
2595
+ default: d & 1 ? T(e, t, n, r, i, a, o, s, c) : d & 6 ? N(e, t, n, r, i, a, o, s, c) : d & 64 || d & 128 ? l.process(e, t, n, r, i, a, o, s, c, de) : process.env.NODE_ENV !== "production" && G("Invalid VNode type:", l, `(${typeof l})`);
2596
2596
  }
2597
2597
  u != null && i ? ki(u, e && e.ref, a, t || e, !t) : u == null && e && e.ref != null && ki(e.ref, null, a, e, !0);
2598
2598
  }, g = (e, t, n, i) => {
@@ -2631,7 +2631,7 @@ function Eo(e, t) {
2631
2631
  }, E = (e, t, n, i, s, c, l, d) => {
2632
2632
  let f, p, { props: m, shapeFlag: h, transition: g, dirs: _ } = e;
2633
2633
  if (f = e.el = o(e.type, c, m && m.is, m), h & 8 ? u(f, e.children) : h & 16 && O(e.children, f, null, i, s, Do(e, c), l, d), _ && Br(e, null, i, "created"), D(f, e, e.scopeId, l, i), m) {
2634
- for (let e in m) e !== "value" && !re(e) && a(f, e, null, m[e], c, i);
2634
+ for (let e in m) e !== "value" && !ne(e) && a(f, e, null, m[e], c, i);
2635
2635
  "value" in m && a(f, "value", null, m.value, c), (p = m.onVnodeBeforeMount) && ls(p, i, e);
2636
2636
  }
2637
2637
  process.env.NODE_ENV !== "production" && (pe(f, "__vnode", e, !0), pe(f, "__vueParentComponent", i, !0)), _ && Br(e, null, i, "beforeMount");
@@ -2689,9 +2689,9 @@ function Eo(e, t) {
2689
2689
  }
2690
2690
  }, j = (e, t, n, r, i) => {
2691
2691
  if (t !== n) {
2692
- if (t !== v) for (let o in t) !re(o) && !(o in n) && a(e, o, t[o], null, i, r);
2692
+ if (t !== v) for (let o in t) !ne(o) && !(o in n) && a(e, o, t[o], null, i, r);
2693
2693
  for (let o in n) {
2694
- if (re(o)) continue;
2694
+ if (ne(o)) continue;
2695
2695
  let s = n[o], c = t[o];
2696
2696
  s !== c && o !== "value" && a(e, o, c, s, i, r);
2697
2697
  }
@@ -2704,7 +2704,7 @@ function Eo(e, t) {
2704
2704
  t.slotScopeIds = s, e == null ? t.shapeFlag & 512 ? i.ctx.activate(t, n, r, o, c) : P(t, n, r, i, a, o, c) : F(e, t, c);
2705
2705
  }, P = (e, t, n, r, i, a, o) => {
2706
2706
  let s = e.component = fs(e, r, i);
2707
- if (process.env.NODE_ENV !== "production" && s.type.__hmrId && ur(s), process.env.NODE_ENV !== "production" && (On(e), bo(s, "mount")), Mi(e) && (s.ctx.renderer = z), process.env.NODE_ENV !== "production" && bo(s, "init"), Cs(s, !1, o), process.env.NODE_ENV !== "production" && xo(s, "init"), process.env.NODE_ENV !== "production" && or && (e.el = null), s.asyncDep) {
2707
+ if (process.env.NODE_ENV !== "production" && s.type.__hmrId && ur(s), process.env.NODE_ENV !== "production" && (On(e), bo(s, "mount")), Mi(e) && (s.ctx.renderer = de), process.env.NODE_ENV !== "production" && bo(s, "init"), Cs(s, !1, o), process.env.NODE_ENV !== "production" && xo(s, "init"), process.env.NODE_ENV !== "production" && or && (e.el = null), s.asyncDep) {
2708
2708
  if (i && i.registerDep(s, I, o), !e.el) {
2709
2709
  let r = s.subTree = $o(Ro);
2710
2710
  _(null, r, t, n), e.placeholder = r.el;
@@ -2738,7 +2738,7 @@ function Eo(e, t) {
2738
2738
  let p = Na(e);
2739
2739
  process.env.NODE_ENV !== "production" && xo(e, "render");
2740
2740
  let m = e.subTree;
2741
- e.subTree = p, process.env.NODE_ENV !== "production" && bo(e, "patch"), h(m, p, d(m.el), le(m), e, i, a), process.env.NODE_ENV !== "production" && xo(e, "patch"), t.el = p.el, u === null && Ha(e, p.el), r && wo(r, i), (f = t.props && t.props.onVnodeUpdated) && wo(() => ls(f, s, t, c), i), process.env.NODE_ENV !== "production" && Er(e), process.env.NODE_ENV !== "production" && kn();
2741
+ e.subTree = p, process.env.NODE_ENV !== "production" && bo(e, "patch"), h(m, p, d(m.el), ce(m), e, i, a), process.env.NODE_ENV !== "production" && xo(e, "patch"), t.el = p.el, u === null && Ha(e, p.el), r && wo(r, i), (f = t.props && t.props.onVnodeUpdated) && wo(() => ls(f, s, t, c), i), process.env.NODE_ENV !== "production" && Er(e), process.env.NODE_ENV !== "production" && kn();
2742
2742
  } else {
2743
2743
  let o, { el: s, props: c } = t, { bm: l, m: u, parent: d, root: f, type: p } = e, m = ji(t);
2744
2744
  if (Oo(e, !1), l && fe(l), !m && (o = c && c.onVnodeBeforeMount) && ls(o, d, t), Oo(e, !0), s && me) {
@@ -2771,14 +2771,14 @@ function Eo(e, t) {
2771
2771
  let l = e && e.children, d = e ? e.shapeFlag : 0, f = t.children, { patchFlag: p, shapeFlag: m } = t;
2772
2772
  if (p > 0) {
2773
2773
  if (p & 128) {
2774
- te(l, f, n, r, i, a, o, s, c);
2774
+ z(l, f, n, r, i, a, o, s, c);
2775
2775
  return;
2776
2776
  } else if (p & 256) {
2777
2777
  R(l, f, n, r, i, a, o, s, c);
2778
2778
  return;
2779
2779
  }
2780
2780
  }
2781
- m & 8 ? (d & 16 && ce(l, i, a), f !== l && u(n, f)) : d & 16 ? m & 16 ? te(l, f, n, r, i, a, o, s, c) : ce(l, i, a, !0) : (d & 8 && u(n, ""), m & 16 && O(f, n, r, i, a, o, s, c));
2781
+ m & 8 ? (d & 16 && se(l, i, a), f !== l && u(n, f)) : d & 16 ? m & 16 ? z(l, f, n, r, i, a, o, s, c) : se(l, i, a, !0) : (d & 8 && u(n, ""), m & 16 && O(f, n, r, i, a, o, s, c));
2782
2782
  }, R = (e, t, n, r, i, a, o, s, c) => {
2783
2783
  e ||= y, t ||= y;
2784
2784
  let l = e.length, u = t.length, d = Math.min(l, u), f;
@@ -2786,8 +2786,8 @@ function Eo(e, t) {
2786
2786
  let r = t[f] = c ? os(t[f]) : as(t[f]);
2787
2787
  h(e[f], r, n, null, i, a, o, s, c);
2788
2788
  }
2789
- l > u ? ce(e, i, a, !0, !1, d) : O(t, n, r, i, a, o, s, c, d);
2790
- }, te = (e, t, n, r, i, a, o, s, c) => {
2789
+ l > u ? se(e, i, a, !0, !1, d) : O(t, n, r, i, a, o, s, c, d);
2790
+ }, z = (e, t, n, r, i, a, o, s, c) => {
2791
2791
  let l = 0, u = t.length, d = e.length - 1, f = u - 1;
2792
2792
  for (; l <= d && l <= f;) {
2793
2793
  let r = e[l], u = t[l] = c ? os(t[l]) : as(t[l]);
@@ -2806,7 +2806,7 @@ function Eo(e, t) {
2806
2806
  let e = f + 1, d = e < u ? t[e].el : r;
2807
2807
  for (; l <= f;) h(null, t[l] = c ? os(t[l]) : as(t[l]), n, d, i, a, o, s, c), l++;
2808
2808
  }
2809
- } else if (l > f) for (; l <= d;) ie(e[l], i, a, !0), l++;
2809
+ } else if (l > f) for (; l <= d;) re(e[l], i, a, !0), l++;
2810
2810
  else {
2811
2811
  let p = l, m = l, g = /* @__PURE__ */ new Map();
2812
2812
  for (l = m; l <= f; l++) {
@@ -2818,7 +2818,7 @@ function Eo(e, t) {
2818
2818
  for (l = p; l <= d; l++) {
2819
2819
  let r = e[l];
2820
2820
  if (v >= b) {
2821
- ie(r, i, a, !0);
2821
+ re(r, i, a, !0);
2822
2822
  continue;
2823
2823
  }
2824
2824
  let u;
@@ -2827,18 +2827,18 @@ function Eo(e, t) {
2827
2827
  u = _;
2828
2828
  break;
2829
2829
  }
2830
- u === void 0 ? ie(r, i, a, !0) : (C[u - m] = l + 1, u >= S ? S = u : x = !0, h(r, t[u], n, null, i, a, o, s, c), v++);
2830
+ u === void 0 ? re(r, i, a, !0) : (C[u - m] = l + 1, u >= S ? S = u : x = !0, h(r, t[u], n, null, i, a, o, s, c), v++);
2831
2831
  }
2832
2832
  let w = x ? jo(C) : y;
2833
2833
  for (_ = w.length - 1, l = b - 1; l >= 0; l--) {
2834
2834
  let e = m + l, d = t[e], f = t[e + 1], p = e + 1 < u ? f.el || Po(f) : r;
2835
- C[l] === 0 ? h(null, d, n, p, i, a, o, s, c) : x && (_ < 0 || l !== w[_] ? ne(d, n, p, 2) : _--);
2835
+ C[l] === 0 ? h(null, d, n, p, i, a, o, s, c) : x && (_ < 0 || l !== w[_] ? te(d, n, p, 2) : _--);
2836
2836
  }
2837
2837
  }
2838
- }, ne = (e, t, n, a, o = null) => {
2838
+ }, te = (e, t, n, a, o = null) => {
2839
2839
  let { el: s, type: c, transition: l, children: u, shapeFlag: d } = e;
2840
2840
  if (d & 6) {
2841
- ne(e.component.subTree, t, n, a);
2841
+ te(e.component.subTree, t, n, a);
2842
2842
  return;
2843
2843
  }
2844
2844
  if (d & 128) {
@@ -2846,12 +2846,12 @@ function Eo(e, t) {
2846
2846
  return;
2847
2847
  }
2848
2848
  if (d & 64) {
2849
- c.move(e, t, n, z);
2849
+ c.move(e, t, n, de);
2850
2850
  return;
2851
2851
  }
2852
2852
  if (c === K) {
2853
2853
  r(s, t, n);
2854
- for (let e = 0; e < u.length; e++) ne(u[e], t, n, a);
2854
+ for (let e = 0; e < u.length; e++) te(u[e], t, n, a);
2855
2855
  r(e.anchor, t, n);
2856
2856
  return;
2857
2857
  }
@@ -2872,31 +2872,31 @@ function Eo(e, t) {
2872
2872
  o ? o(s, u, d) : d();
2873
2873
  }
2874
2874
  else r(s, t, n);
2875
- }, ie = (e, t, n, r = !1, i = !1) => {
2875
+ }, re = (e, t, n, r = !1, i = !1) => {
2876
2876
  let { type: a, props: o, ref: s, children: c, dynamicChildren: l, shapeFlag: u, patchFlag: d, dirs: f, cacheIndex: p, memo: m } = e;
2877
2877
  if (d === -2 && (i = !1), s != null && (rt(), ki(s, null, n, e, !0), it()), p != null && (t.renderCache[p] = void 0), u & 256) {
2878
2878
  t.ctx.deactivate(e);
2879
2879
  return;
2880
2880
  }
2881
2881
  let h = u & 1 && f, g = !ji(e), _;
2882
- if (g && (_ = o && o.onVnodeBeforeUnmount) && ls(_, t, e), u & 6) se(e.component, n, r);
2882
+ if (g && (_ = o && o.onVnodeBeforeUnmount) && ls(_, t, e), u & 6) oe(e.component, n, r);
2883
2883
  else {
2884
2884
  if (u & 128) {
2885
2885
  e.suspense.unmount(n, r);
2886
2886
  return;
2887
2887
  }
2888
- h && Br(e, null, t, "beforeUnmount"), u & 64 ? e.type.remove(e, t, n, z, r) : l && !l.hasOnce && (a !== K || d > 0 && d & 64) ? ce(l, t, n, !1, !0) : (a === K && d & 384 || !i && u & 16) && ce(c, t, n), r && ae(e);
2888
+ h && Br(e, null, t, "beforeUnmount"), u & 64 ? e.type.remove(e, t, n, de, r) : l && !l.hasOnce && (a !== K || d > 0 && d & 64) ? se(l, t, n, !1, !0) : (a === K && d & 384 || !i && u & 16) && se(c, t, n), r && ie(e);
2889
2889
  }
2890
2890
  let v = m != null && p == null;
2891
2891
  (g && (_ = o && o.onVnodeUnmounted) || h || v) && wo(() => {
2892
2892
  _ && ls(_, t, e), h && Br(e, null, t, "unmounted"), v && (e.el = null);
2893
2893
  }, n);
2894
- }, ae = (e) => {
2894
+ }, ie = (e) => {
2895
2895
  let { type: t, el: n, anchor: r, transition: a } = e;
2896
2896
  if (t === K) {
2897
2897
  process.env.NODE_ENV !== "production" && e.patchFlag > 0 && e.patchFlag & 2048 && a && !a.persisted ? e.children.forEach((e) => {
2898
- e.type === Ro ? i(e.el) : ae(e);
2899
- }) : oe(n, r);
2898
+ e.type === Ro ? i(e.el) : ie(e);
2899
+ }) : ae(n, r);
2900
2900
  return;
2901
2901
  }
2902
2902
  if (t === zo) {
@@ -2910,42 +2910,42 @@ function Eo(e, t) {
2910
2910
  let { leave: t, delayLeave: r } = a, i = () => t(n, o);
2911
2911
  r ? r(e.el, o, i) : i();
2912
2912
  } else o();
2913
- }, oe = (e, t) => {
2913
+ }, ae = (e, t) => {
2914
2914
  let n;
2915
2915
  for (; e !== t;) n = f(e), i(e), e = n;
2916
2916
  i(t);
2917
- }, se = (e, t, n) => {
2917
+ }, oe = (e, t, n) => {
2918
2918
  process.env.NODE_ENV !== "production" && e.type.__hmrId && dr(e);
2919
2919
  let { bum: r, scope: i, job: a, subTree: o, um: s, m: c, a: l } = e;
2920
- No(c), No(l), r && fe(r), i.stop(), a && (a.flags |= 8, ie(o, e, t, n)), s && wo(s, t), wo(() => {
2920
+ No(c), No(l), r && fe(r), i.stop(), a && (a.flags |= 8, re(o, e, t, n)), s && wo(s, t), wo(() => {
2921
2921
  e.isUnmounted = !0;
2922
2922
  }, t), process.env.NODE_ENV !== "production" && Or(e);
2923
- }, ce = (e, t, n, r = !1, i = !1, a = 0) => {
2924
- for (let o = a; o < e.length; o++) ie(e[o], t, n, r, i);
2925
- }, le = (e) => {
2926
- if (e.shapeFlag & 6) return le(e.component.subTree);
2923
+ }, se = (e, t, n, r = !1, i = !1, a = 0) => {
2924
+ for (let o = a; o < e.length; o++) re(e[o], t, n, r, i);
2925
+ }, ce = (e) => {
2926
+ if (e.shapeFlag & 6) return ce(e.component.subTree);
2927
2927
  if (e.shapeFlag & 128) return e.suspense.next();
2928
2928
  let t = f(e.anchor || e.el), n = t && t[Xr];
2929
2929
  return n ? f(n) : t;
2930
- }, ue = !1, de = (e, t, n) => {
2930
+ }, le = !1, ue = (e, t, n) => {
2931
2931
  let r;
2932
- e == null ? t._vnode && (ie(t._vnode, null, null, !0), r = t._vnode.component) : h(t._vnode || null, e, t, null, null, null, n), t._vnode = e, ue ||= (ue = !0, tr(r), nr(), !1);
2933
- }, z = {
2932
+ e == null ? t._vnode && (re(t._vnode, null, null, !0), r = t._vnode.component) : h(t._vnode || null, e, t, null, null, null, n), t._vnode = e, le ||= (le = !0, tr(r), nr(), !1);
2933
+ }, de = {
2934
2934
  p: h,
2935
- um: ie,
2936
- m: ne,
2937
- r: ae,
2935
+ um: re,
2936
+ m: te,
2937
+ r: ie,
2938
2938
  mt: P,
2939
2939
  mc: O,
2940
2940
  pc: ee,
2941
2941
  pbc: A,
2942
- n: le,
2942
+ n: ce,
2943
2943
  o: e
2944
2944
  }, B, me;
2945
- return t && ([B, me] = t(z)), {
2946
- render: de,
2945
+ return t && ([B, me] = t(de)), {
2946
+ render: ue,
2947
2947
  hydrate: B,
2948
- createApp: wa(de, B)
2948
+ createApp: wa(ue, B)
2949
2949
  };
2950
2950
  }
2951
2951
  function Do({ type: e, props: t }, n) {
@@ -3798,7 +3798,7 @@ function Oc(e, t, n) {
3798
3798
  else if (n ??= "", process.env.NODE_ENV !== "production" && Ec.test(n) && Us(`Unexpected semicolon at the end of '${t}' style value: '${n}'`), t.startsWith("--")) e.setProperty(t, n);
3799
3799
  else {
3800
3800
  let r = jc(e, t);
3801
- Dc.test(n) ? e.setProperty(le(r), n.replace(Dc, ""), "important") : e[r] = n;
3801
+ Dc.test(n) ? e.setProperty(ce(r), n.replace(Dc, ""), "important") : e[r] = n;
3802
3802
  }
3803
3803
  }
3804
3804
  var kc = [
@@ -3809,9 +3809,9 @@ var kc = [
3809
3809
  function jc(e, t) {
3810
3810
  let n = Ac[t];
3811
3811
  if (n) return n;
3812
- let r = se(t);
3812
+ let r = oe(t);
3813
3813
  if (r !== "filter" && r in e) return Ac[t] = r;
3814
- r = ue(r);
3814
+ r = le(r);
3815
3815
  for (let n = 0; n < kc.length; n++) {
3816
3816
  let i = kc[n] + r;
3817
3817
  if (i in e) return Ac[t] = i;
@@ -3867,7 +3867,7 @@ var Bc = /(Once|Passive|Capture)$/, Vc = /^on:?(?:Once|Passive|Capture)$/;
3867
3867
  function Hc(e) {
3868
3868
  let t, n;
3869
3869
  for (; (n = e.match(Bc)) && !Vc.test(e);) t ||= {}, e = e.slice(0, e.length - n[1].length), t[n[1].toLowerCase()] = !0;
3870
- return [e[2] === ":" ? e.slice(3) : le(e.slice(2)), t];
3870
+ return [e[2] === ":" ? e.slice(3) : ce(e.slice(2)), t];
3871
3871
  }
3872
3872
  var Uc = 0, Wc = /* @__PURE__ */ Promise.resolve(), Gc = () => Uc ||= (Wc.then(() => Uc = 0), Date.now());
3873
3873
  function Kc(e, t) {
@@ -3895,7 +3895,7 @@ Expected function or array of functions, received type ${typeof e}.`), b);
3895
3895
  }
3896
3896
  var Jc = (e) => e.charCodeAt(0) === 111 && e.charCodeAt(1) === 110 && e.charCodeAt(2) > 96 && e.charCodeAt(2) < 123, Yc = (e, t, n, r, i, a) => {
3897
3897
  let o = i === "svg";
3898
- t === "class" ? vc(e, r, o) : t === "style" ? Tc(e, n, r) : S(t) ? C(t) || zc(e, t, n, r, a) : (t[0] === "." ? (t = t.slice(1), !0) : t[0] === "^" ? (t = t.slice(1), !1) : Xc(e, t, r, o)) ? (Fc(e, t, r), !e.tagName.includes("-") && (t === "value" || t === "checked" || t === "selected") && Pc(e, t, r, o, a, t !== "value")) : e._isVueCE && (Zc(e, t) || e._def.__asyncLoader && (/[A-Z]/.test(t) || !N(r))) ? Fc(e, se(t), r, a, t) : (t === "true-value" ? e._trueValue = r : t === "false-value" && (e._falseValue = r), Pc(e, t, r, o));
3898
+ t === "class" ? vc(e, r, o) : t === "style" ? Tc(e, n, r) : S(t) ? C(t) || zc(e, t, n, r, a) : (t[0] === "." ? (t = t.slice(1), !0) : t[0] === "^" ? (t = t.slice(1), !1) : Xc(e, t, r, o)) ? (Fc(e, t, r), !e.tagName.includes("-") && (t === "value" || t === "checked" || t === "selected") && Pc(e, t, r, o, a, t !== "value")) : e._isVueCE && (Zc(e, t) || e._def.__asyncLoader && (/[A-Z]/.test(t) || !N(r))) ? Fc(e, oe(t), r, a, t) : (t === "true-value" ? e._trueValue = r : t === "false-value" && (e._falseValue = r), Pc(e, t, r, o));
3899
3899
  };
3900
3900
  function Xc(e, t, n, r) {
3901
3901
  if (r) return !!(t === "innerHTML" || t === "textContent" || t in e && Jc(t) && M(n));
@@ -3909,8 +3909,8 @@ function Xc(e, t, n, r) {
3909
3909
  function Zc(e, t) {
3910
3910
  let n = e._def.props;
3911
3911
  if (!n) return !1;
3912
- let r = se(t);
3913
- return Array.isArray(n) ? n.some((e) => se(e) === r) : Object.keys(n).some((e) => se(e) === r);
3912
+ let r = oe(t);
3913
+ return Array.isArray(n) ? n.some((e) => oe(e) === r) : Object.keys(n).some((e) => oe(e) === r);
3914
3914
  }
3915
3915
  var Qc = (e) => {
3916
3916
  let t = e.props["onUpdate:modelValue"] || !1;
@@ -5899,7 +5899,7 @@ var ed = /* @__PURE__ */ m(((e, t) => {
5899
5899
  });
5900
5900
  let i = y("I", "a", "is", "so", "us", "to", "at", "if", "in", "it", "on", /[A-Za-z]+['](d|ve|re|ll|t|s|n)/, /[A-Za-z]+[-][a-z]+/, /[A-Za-z][a-z]{2,}/);
5901
5901
  return r.contains.push({ begin: _(/[ ]+/, "(", i, /[.]?[:]?([.][ ]|[ ])/, "){3}") }), r;
5902
- }, L = I("//", "$"), ee = I("/\\*", "\\*/"), R = I("#", "$"), te = /*#__PURE__*/ Object.freeze({
5902
+ }, L = I("//", "$"), ee = I("/\\*", "\\*/"), R = I("#", "$"), z = /*#__PURE__*/ Object.freeze({
5903
5903
  __proto__: null,
5904
5904
  APOS_STRING_MODE: N,
5905
5905
  BACKSLASH_ESCAPE: M,
@@ -5968,28 +5968,28 @@ var ed = /* @__PURE__ */ m(((e, t) => {
5968
5968
  relevance: 0
5969
5969
  }
5970
5970
  });
5971
- function ne(e, t) {
5971
+ function te(e, t) {
5972
5972
  e.input[e.index - 1] === "." && t.ignoreMatch();
5973
5973
  }
5974
- function re(e, t) {
5974
+ function ne(e, t) {
5975
5975
  e.className !== void 0 && (e.scope = e.className, delete e.className);
5976
5976
  }
5977
- function ie(e, t) {
5978
- t && e.beginKeywords && (e.begin = "\\b(" + e.beginKeywords.split(" ").join("|") + ")(?!\\.)(?=\\b|\\s)", e.__beforeBegin = ne, e.keywords = e.keywords || e.beginKeywords, delete e.beginKeywords, e.relevance === void 0 && (e.relevance = 0));
5977
+ function re(e, t) {
5978
+ t && e.beginKeywords && (e.begin = "\\b(" + e.beginKeywords.split(" ").join("|") + ")(?!\\.)(?=\\b|\\s)", e.__beforeBegin = te, e.keywords = e.keywords || e.beginKeywords, delete e.beginKeywords, e.relevance === void 0 && (e.relevance = 0));
5979
5979
  }
5980
- function ae(e, t) {
5980
+ function ie(e, t) {
5981
5981
  Array.isArray(e.illegal) && (e.illegal = y(...e.illegal));
5982
5982
  }
5983
- function oe(e, t) {
5983
+ function ae(e, t) {
5984
5984
  if (e.match) {
5985
5985
  if (e.begin || e.end) throw Error("begin & end are not supported with match");
5986
5986
  e.begin = e.match, delete e.match;
5987
5987
  }
5988
5988
  }
5989
- function se(e, t) {
5989
+ function oe(e, t) {
5990
5990
  e.relevance === void 0 && (e.relevance = 1);
5991
5991
  }
5992
- var ce = (e, t) => {
5992
+ var se = (e, t) => {
5993
5993
  if (!e.beforeMatch) return;
5994
5994
  if (e.starts) throw Error("beforeMatch cannot be used with starts");
5995
5995
  let n = Object.assign({}, e);
@@ -5999,7 +5999,7 @@ var ed = /* @__PURE__ */ m(((e, t) => {
5999
5999
  relevance: 0,
6000
6000
  contains: [Object.assign(n, { endsParent: !0 })]
6001
6001
  }, e.relevance = 0, delete n.beforeMatch;
6002
- }, le = [
6002
+ }, ce = [
6003
6003
  "of",
6004
6004
  "and",
6005
6005
  "for",
@@ -6011,24 +6011,24 @@ var ed = /* @__PURE__ */ m(((e, t) => {
6011
6011
  "parent",
6012
6012
  "list",
6013
6013
  "value"
6014
- ], ue = "keyword";
6015
- function de(e, t, n = ue) {
6014
+ ], le = "keyword";
6015
+ function ue(e, t, n = le) {
6016
6016
  let r = Object.create(null);
6017
6017
  return typeof e == "string" ? i(n, e.split(" ")) : Array.isArray(e) ? i(n, e) : Object.keys(e).forEach(function(n) {
6018
- Object.assign(r, de(e[n], t, n));
6018
+ Object.assign(r, ue(e[n], t, n));
6019
6019
  }), r;
6020
6020
  function i(e, n) {
6021
6021
  t && (n = n.map((e) => e.toLowerCase())), n.forEach(function(t) {
6022
6022
  let n = t.split("|");
6023
- r[n[0]] = [e, z(n[0], n[1])];
6023
+ r[n[0]] = [e, de(n[0], n[1])];
6024
6024
  });
6025
6025
  }
6026
6026
  }
6027
- function z(e, t) {
6027
+ function de(e, t) {
6028
6028
  return t ? Number(t) : +!fe(e);
6029
6029
  }
6030
6030
  function fe(e) {
6031
- return le.includes(e.toLowerCase());
6031
+ return ce.includes(e.toLowerCase());
6032
6032
  }
6033
6033
  var pe = {}, B = (e) => {
6034
6034
  console.error(e);
@@ -6126,17 +6126,17 @@ var ed = /* @__PURE__ */ m(((e, t) => {
6126
6126
  let a = n;
6127
6127
  if (n.isCompiled) return a;
6128
6128
  [
6129
- re,
6130
- oe,
6129
+ ne,
6130
+ ae,
6131
6131
  xe,
6132
- ce
6132
+ se
6133
6133
  ].forEach((e) => e(n, r)), e.compilerExtensions.forEach((e) => e(n, r)), n.__beforeBegin = null, [
6134
+ re,
6134
6135
  ie,
6135
- ae,
6136
- se
6136
+ oe
6137
6137
  ].forEach((e) => e(n, r)), n.isCompiled = !0;
6138
6138
  let s = null;
6139
- return typeof n.keywords == "object" && n.keywords.$pattern && (n.keywords = Object.assign({}, n.keywords), s = n.keywords.$pattern, delete n.keywords.$pattern), s ||= /\w+/, n.keywords &&= de(n.keywords, e.case_insensitive), a.keywordPatternRe = t(s, !0), r && (n.begin ||= /\B|\b/, a.beginRe = t(a.begin), !n.end && !n.endsWithParent && (n.end = /\B|\b/), n.end && (a.endRe = t(a.end)), a.terminatorEnd = p(a.end) || "", n.endsWithParent && r.terminatorEnd && (a.terminatorEnd += (n.end ? "|" : "") + r.terminatorEnd)), n.illegal && (a.illegalRe = t(n.illegal)), n.contains ||= [], n.contains = [].concat(...n.contains.map(function(e) {
6139
+ return typeof n.keywords == "object" && n.keywords.$pattern && (n.keywords = Object.assign({}, n.keywords), s = n.keywords.$pattern, delete n.keywords.$pattern), s ||= /\w+/, n.keywords &&= ue(n.keywords, e.case_insensitive), a.keywordPatternRe = t(s, !0), r && (n.begin ||= /\B|\b/, a.beginRe = t(a.begin), !n.end && !n.endsWithParent && (n.end = /\B|\b/), n.end && (a.endRe = t(a.end)), a.terminatorEnd = p(a.end) || "", n.endsWithParent && r.terminatorEnd && (a.terminatorEnd += (n.end ? "|" : "") + r.terminatorEnd)), n.illegal && (a.illegalRe = t(n.illegal)), n.contains ||= [], n.contains = [].concat(...n.contains.map(function(e) {
6140
6140
  return we(e === "self" ? n : e);
6141
6141
  })), n.contains.forEach(function(e) {
6142
6142
  o(e, a);
@@ -6495,7 +6495,7 @@ var ed = /* @__PURE__ */ m(((e, t) => {
6495
6495
  e[n] && e[n](t);
6496
6496
  });
6497
6497
  }
6498
- function ne(e) {
6498
+ function te(e) {
6499
6499
  return he("10.7.0", "highlightBlock will be removed entirely in v12.0"), he("10.7.0", "Please use highlightElement now."), w(e);
6500
6500
  }
6501
6501
  Object.assign(e, {
@@ -6503,7 +6503,7 @@ var ed = /* @__PURE__ */ m(((e, t) => {
6503
6503
  highlightAuto: S,
6504
6504
  highlightAll: k,
6505
6505
  highlightElement: w,
6506
- highlightBlock: ne,
6506
+ highlightBlock: te,
6507
6507
  configure: T,
6508
6508
  initHighlighting: E,
6509
6509
  initHighlightingOnLoad: D,
@@ -6527,8 +6527,8 @@ var ed = /* @__PURE__ */ m(((e, t) => {
6527
6527
  optional: g,
6528
6528
  anyNumberOfTimes: h
6529
6529
  };
6530
- for (let e in te) typeof te[e] == "object" && n(te[e]);
6531
- return Object.assign(e, te), e;
6530
+ for (let e in z) typeof z[e] == "object" && n(z[e]);
6531
+ return Object.assign(e, z), e;
6532
6532
  }, Me = je({});
6533
6533
  Me.newInstance = () => je({}), t.exports = Me, Me.HighlightJS = Me, Me.default = Me;
6534
6534
  })), td = /* @__PURE__ */ m(((e, t) => {
@@ -8881,7 +8881,7 @@ var ed = /* @__PURE__ */ m(((e, t) => {
8881
8881
  3: "title.function"
8882
8882
  },
8883
8883
  contains: [{ begin: /\(\)/ }, k]
8884
- }, R = "(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|" + e.UNDERSCORE_IDENT_RE + ")\\s*=>", te = {
8884
+ }, R = "(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|" + e.UNDERSCORE_IDENT_RE + ")\\s*=>", z = {
8885
8885
  match: [
8886
8886
  /const|var|let/,
8887
8887
  /\s+/,
@@ -8934,7 +8934,7 @@ var ed = /* @__PURE__ */ m(((e, t) => {
8934
8934
  match: d + t.lookahead(":"),
8935
8935
  relevance: 0
8936
8936
  },
8937
- te,
8937
+ z,
8938
8938
  {
8939
8939
  begin: "(" + e.RE_STARTERS_RE + "|\\b(case|return|throw)\\b)\\s*",
8940
8940
  keywords: "return throw case",
@@ -11315,7 +11315,7 @@ var ed = /* @__PURE__ */ m(((e, t) => {
11315
11315
  begin: i(e, /"/),
11316
11316
  end: i(/"/, e),
11317
11317
  contains: [F(e), L(e)]
11318
- }), te = {
11318
+ }), z = {
11319
11319
  className: "string",
11320
11320
  variants: [
11321
11321
  ee(),
@@ -11327,36 +11327,36 @@ var ed = /* @__PURE__ */ m(((e, t) => {
11327
11327
  R("##"),
11328
11328
  R("###")
11329
11329
  ]
11330
- }, ne = [e.BACKSLASH_ESCAPE, {
11330
+ }, te = [e.BACKSLASH_ESCAPE, {
11331
11331
  begin: /\[/,
11332
11332
  end: /\]/,
11333
11333
  relevance: 0,
11334
11334
  contains: [e.BACKSLASH_ESCAPE]
11335
- }], re = {
11335
+ }], ne = {
11336
11336
  begin: /\/[^\s](?=[^/\n]*\/)/,
11337
11337
  end: /\//,
11338
- contains: ne
11339
- }, ie = (e) => {
11338
+ contains: te
11339
+ }, re = (e) => {
11340
11340
  let t = i(e, /\//), n = i(/\//, e);
11341
11341
  return {
11342
11342
  begin: t,
11343
11343
  end: n,
11344
- contains: [...ne, {
11344
+ contains: [...te, {
11345
11345
  scope: "comment",
11346
11346
  begin: `#(?!.*${n})`,
11347
11347
  end: /$/
11348
11348
  }]
11349
11349
  };
11350
- }, ae = {
11350
+ }, ie = {
11351
11351
  scope: "regexp",
11352
11352
  variants: [
11353
- ie("###"),
11354
- ie("##"),
11355
- ie("#"),
11356
- re
11353
+ re("###"),
11354
+ re("##"),
11355
+ re("#"),
11356
+ ne
11357
11357
  ]
11358
- }, oe = { match: i(/`/, x, /`/) }, se = [
11359
- oe,
11358
+ }, ae = { match: i(/`/, x, /`/) }, oe = [
11359
+ ae,
11360
11360
  {
11361
11361
  className: "variable",
11362
11362
  match: /\$\d+/
@@ -11365,7 +11365,7 @@ var ed = /* @__PURE__ */ m(((e, t) => {
11365
11365
  className: "variable",
11366
11366
  match: `\\$${b}+`
11367
11367
  }
11368
- ], ce = [
11368
+ ], se = [
11369
11369
  {
11370
11370
  match: /(@|#(un)?)available/,
11371
11371
  scope: "keyword",
@@ -11376,7 +11376,7 @@ var ed = /* @__PURE__ */ m(((e, t) => {
11376
11376
  contains: [
11377
11377
  ...j,
11378
11378
  P,
11379
- te
11379
+ z
11380
11380
  ]
11381
11381
  }] }
11382
11382
  },
@@ -11388,7 +11388,7 @@ var ed = /* @__PURE__ */ m(((e, t) => {
11388
11388
  scope: "meta",
11389
11389
  match: i(/@/, x)
11390
11390
  }
11391
- ], le = {
11391
+ ], ce = {
11392
11392
  match: r(/\b[A-Z]/),
11393
11393
  relevance: 0,
11394
11394
  contains: [
@@ -11414,20 +11414,20 @@ var ed = /* @__PURE__ */ m(((e, t) => {
11414
11414
  relevance: 0
11415
11415
  }
11416
11416
  ]
11417
- }, ue = {
11417
+ }, le = {
11418
11418
  begin: /</,
11419
11419
  end: />/,
11420
11420
  keywords: D,
11421
11421
  contains: [
11422
11422
  ...a,
11423
11423
  ...O,
11424
- ...ce,
11424
+ ...se,
11425
11425
  A,
11426
- le
11426
+ ce
11427
11427
  ]
11428
11428
  };
11429
- le.contains.push(ue);
11430
- let de = {
11429
+ ce.contains.push(le);
11430
+ let ue = {
11431
11431
  begin: /\(/,
11432
11432
  end: /\)/,
11433
11433
  relevance: 0,
@@ -11440,21 +11440,21 @@ var ed = /* @__PURE__ */ m(((e, t) => {
11440
11440
  relevance: 0
11441
11441
  },
11442
11442
  ...a,
11443
- ae,
11443
+ ie,
11444
11444
  ...O,
11445
11445
  ...k,
11446
11446
  ...j,
11447
11447
  P,
11448
- te,
11448
+ z,
11449
+ ...oe,
11449
11450
  ...se,
11450
- ...ce,
11451
- le
11451
+ ce
11452
11452
  ]
11453
- }, z = {
11453
+ }, de = {
11454
11454
  begin: /</,
11455
11455
  end: />/,
11456
11456
  keywords: "repeat each",
11457
- contains: [...a, le]
11457
+ contains: [...a, ce]
11458
11458
  }, fe = {
11459
11459
  begin: /\(/,
11460
11460
  end: /\)/,
@@ -11476,10 +11476,10 @@ var ed = /* @__PURE__ */ m(((e, t) => {
11476
11476
  ...O,
11477
11477
  ...j,
11478
11478
  P,
11479
- te,
11480
- ...ce,
11481
- le,
11482
- de
11479
+ z,
11480
+ ...se,
11481
+ ce,
11482
+ ue
11483
11483
  ],
11484
11484
  endsParent: !0,
11485
11485
  illegal: /["']/
@@ -11487,14 +11487,14 @@ var ed = /* @__PURE__ */ m(((e, t) => {
11487
11487
  match: [
11488
11488
  /(func|macro)/,
11489
11489
  /\s+/,
11490
- o(oe.match, x, v)
11490
+ o(ae.match, x, v)
11491
11491
  ],
11492
11492
  className: {
11493
11493
  1: "keyword",
11494
11494
  3: "title.function"
11495
11495
  },
11496
11496
  contains: [
11497
- z,
11497
+ de,
11498
11498
  fe,
11499
11499
  t
11500
11500
  ],
@@ -11503,7 +11503,7 @@ var ed = /* @__PURE__ */ m(((e, t) => {
11503
11503
  match: [/\b(?:subscript|init[?!]?)/, /\s*(?=[<(])/],
11504
11504
  className: { 1: "keyword" },
11505
11505
  contains: [
11506
- z,
11506
+ de,
11507
11507
  fe,
11508
11508
  t
11509
11509
  ],
@@ -11528,7 +11528,7 @@ var ed = /* @__PURE__ */ m(((e, t) => {
11528
11528
  1: "keyword",
11529
11529
  3: "title"
11530
11530
  },
11531
- contains: [le],
11531
+ contains: [ce],
11532
11532
  keywords: [...p, ...f],
11533
11533
  end: /}/
11534
11534
  }, ge = {
@@ -11567,7 +11567,7 @@ var ed = /* @__PURE__ */ m(((e, t) => {
11567
11567
  },
11568
11568
  keywords: D,
11569
11569
  contains: [
11570
- z,
11570
+ de,
11571
11571
  ...O,
11572
11572
  {
11573
11573
  begin: /:/,
@@ -11581,7 +11581,7 @@ var ed = /* @__PURE__ */ m(((e, t) => {
11581
11581
  }
11582
11582
  ]
11583
11583
  };
11584
- for (let e of te.variants) {
11584
+ for (let e of z.variants) {
11585
11585
  let t = e.contains.find((e) => e.label === "interpol");
11586
11586
  t.keywords = D;
11587
11587
  let n = [
@@ -11589,8 +11589,8 @@ var ed = /* @__PURE__ */ m(((e, t) => {
11589
11589
  ...k,
11590
11590
  ...j,
11591
11591
  P,
11592
- te,
11593
- ...se
11592
+ z,
11593
+ ...oe
11594
11594
  ];
11595
11595
  t.contains = [...n, {
11596
11596
  begin: /\(/,
@@ -11616,16 +11616,16 @@ var ed = /* @__PURE__ */ m(((e, t) => {
11616
11616
  contains: [...a],
11617
11617
  relevance: 0
11618
11618
  },
11619
- ae,
11619
+ ie,
11620
11620
  ...O,
11621
11621
  ...k,
11622
11622
  ...j,
11623
11623
  P,
11624
- te,
11624
+ z,
11625
+ ...oe,
11625
11626
  ...se,
11626
- ...ce,
11627
- le,
11628
- de
11627
+ ce,
11628
+ ue
11629
11629
  ]
11630
11630
  };
11631
11631
  }
@@ -12054,7 +12054,7 @@ var ed = /* @__PURE__ */ m(((e, t) => {
12054
12054
  3: "title.function"
12055
12055
  },
12056
12056
  contains: [{ begin: /\(\)/ }, k]
12057
- }, R = "(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|" + e.UNDERSCORE_IDENT_RE + ")\\s*=>", te = {
12057
+ }, R = "(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|" + e.UNDERSCORE_IDENT_RE + ")\\s*=>", z = {
12058
12058
  match: [
12059
12059
  /const|var|let/,
12060
12060
  /\s+/,
@@ -12107,7 +12107,7 @@ var ed = /* @__PURE__ */ m(((e, t) => {
12107
12107
  match: d + t.lookahead(":"),
12108
12108
  relevance: 0
12109
12109
  },
12110
- te,
12110
+ z,
12111
12111
  {
12112
12112
  begin: "(" + e.RE_STARTERS_RE + "|\\b(case|return|throw)\\b)\\s*",
12113
12113
  keywords: "return throw case",
@@ -12464,10 +12464,10 @@ function Bd(e) {
12464
12464
  }
12465
12465
  //#endregion
12466
12466
  //#region src/core/components/CodePreview.vue?vue&type=script&setup=true&lang.ts
12467
- var Vd = { class: "code-preview-modal" }, Hd = { class: "preview-header" }, Ud = { class: "preview-title" }, Wd = { class: "preview-tabs" }, Gd = ["disabled"], Kd = { class: "preview-actions" }, qd = { class: "preview-body" }, Jd = ["srcdoc"], Yd = {
12467
+ var Vd = { class: "code-preview-modal" }, Hd = { class: "preview-header" }, Ud = { class: "preview-title" }, Wd = { class: "preview-tabs" }, Gd = ["disabled"], Kd = { class: "preview-actions" }, qd = ["title"], Jd = { class: "preview-body" }, Yd = ["srcdoc"], Xd = {
12468
12468
  key: 1,
12469
12469
  class: "preview-source"
12470
- }, Xd = /*@__PURE__*/ wi({
12470
+ }, Zd = /*@__PURE__*/ wi({
12471
12471
  __name: "CodePreview",
12472
12472
  props: {
12473
12473
  code: {},
@@ -12475,7 +12475,7 @@ var Vd = { class: "code-preview-modal" }, Hd = { class: "preview-header" }, Ud =
12475
12475
  },
12476
12476
  emits: ["close"],
12477
12477
  setup(e, { emit: t }) {
12478
- let n = e, r = t, i = /* @__PURE__ */ fn(null), a = /* @__PURE__ */ fn("preview"), o = zs(() => {
12478
+ let n = e, r = t, i = /* @__PURE__ */ fn(null), a = /* @__PURE__ */ fn("preview"), o = /* @__PURE__ */ fn(!1), s = zs(() => {
12479
12479
  let e = n.lang.toLowerCase();
12480
12480
  return [
12481
12481
  "html",
@@ -12485,11 +12485,11 @@ var Vd = { class: "code-preview-modal" }, Hd = { class: "preview-header" }, Ud =
12485
12485
  "js",
12486
12486
  "css"
12487
12487
  ].includes(e);
12488
- }), s = zs(() => {
12488
+ }), c = zs(() => {
12489
12489
  let e = n.lang.toLowerCase();
12490
- return e === "html" || e === "htm" ? n.code : e === "vue" ? c(n.code) : e === "javascript" || e === "js" ? `<!DOCTYPE html><html><head><meta charset="utf-8"><style>body{font-family:sans-serif;padding:16px}</style></head><body><div id="app"></div><script>${n.code}<\/script></body></html>` : e === "css" ? `<!DOCTYPE html><html><head><meta charset="utf-8"><style>${n.code}</style></head><body><div class="demo"><h1>CSS 预览</h1><p>这是一段示例文字,用于展示 CSS 效果。</p><button>按钮</button><input placeholder="输入框"/></div></body></html>` : n.code;
12490
+ return e === "html" || e === "htm" ? n.code : e === "vue" ? l(n.code) : e === "javascript" || e === "js" ? `<!DOCTYPE html><html><head><meta charset="utf-8"><style>body{font-family:sans-serif;padding:16px}</style></head><body><div id="app"></div><script>${n.code}<\/script></body></html>` : e === "css" ? `<!DOCTYPE html><html><head><meta charset="utf-8"><style>${n.code}</style></head><body><div class="demo"><h1>CSS 预览</h1><p>这是一段示例文字,用于展示 CSS 效果。</p><button>按钮</button><input placeholder="输入框"/></div></body></html>` : n.code;
12491
12491
  });
12492
- function c(e) {
12492
+ function l(e) {
12493
12493
  let t = e.replace(/<\/script>/g, "<\\/script>");
12494
12494
  return `<!DOCTYPE html><html><head><meta charset="utf-8">
12495
12495
  <script src="https://unpkg.com/vue@3/dist/vue.global.js"><\/script>
@@ -12512,13 +12512,15 @@ app.mount('#app');
12512
12512
  <\/script></body></html>`;
12513
12513
  }
12514
12514
  Gr(() => a.value, async () => {
12515
- await Xn(), a.value === "preview" && i.value && (i.value.srcdoc = s.value);
12515
+ await Xn(), a.value === "preview" && i.value && (i.value.srcdoc = c.value);
12516
12516
  }, { immediate: !0 });
12517
- function l() {
12518
- navigator.clipboard.writeText(n.code);
12519
- }
12520
12517
  function u() {
12521
- let e = new Blob([s.value], { type: "text/html" }), t = URL.createObjectURL(e);
12518
+ navigator.clipboard.writeText(n.code).then(() => {
12519
+ o.value = !0, setTimeout(() => o.value = !1, 1500);
12520
+ });
12521
+ }
12522
+ function d() {
12523
+ let e = new Blob([c.value], { type: "text/html" }), t = URL.createObjectURL(e);
12522
12524
  window.open(t, "_blank"), setTimeout(() => URL.revokeObjectURL(t), 1e4);
12523
12525
  }
12524
12526
  return (t, n) => (q(), J("div", {
@@ -12528,7 +12530,7 @@ app.mount('#app');
12528
12530
  Y("span", Ud, "代码预览 · " + V(e.lang), 1),
12529
12531
  Y("div", Wd, [Y("button", {
12530
12532
  class: Se({ active: a.value === "preview" }),
12531
- disabled: !o.value,
12533
+ disabled: !s.value,
12532
12534
  onClick: n[0] ||= (e) => a.value = "preview"
12533
12535
  }, "预览", 10, Gd), Y("button", {
12534
12536
  class: Se({ active: a.value === "source" }),
@@ -12537,13 +12539,13 @@ app.mount('#app');
12537
12539
  Y("div", Kd, [
12538
12540
  Y("button", {
12539
12541
  class: "icon-btn",
12540
- title: "复制代码",
12541
- onClick: l
12542
- }, "📋"),
12542
+ title: o.value ? "已复制" : "复制代码",
12543
+ onClick: u
12544
+ }, V(o.value ? "✓" : "📋"), 9, qd),
12543
12545
  Y("button", {
12544
12546
  class: "icon-btn",
12545
12547
  title: "新窗口打开",
12546
- onClick: u
12548
+ onClick: d
12547
12549
  }, "↗"),
12548
12550
  Y("button", {
12549
12551
  class: "icon-btn",
@@ -12551,20 +12553,20 @@ app.mount('#app');
12551
12553
  onClick: n[2] ||= (e) => r("close")
12552
12554
  }, "✕")
12553
12555
  ])
12554
- ]), Y("div", qd, [a.value === "preview" && o.value ? (q(), J("iframe", {
12556
+ ]), Y("div", Jd, [a.value === "preview" && s.value ? (q(), J("iframe", {
12555
12557
  key: 0,
12556
12558
  ref_key: "iframeRef",
12557
12559
  ref: i,
12558
12560
  class: "preview-iframe",
12559
12561
  sandbox: "allow-scripts allow-modals allow-popups allow-forms",
12560
- srcdoc: s.value
12561
- }, null, 8, Jd)) : (q(), J("pre", Yd, [Y("code", null, V(e.code), 1)]))])])]));
12562
+ srcdoc: c.value
12563
+ }, null, 8, Yd)) : (q(), J("pre", Xd, [Y("code", null, V(e.code), 1)]))])])]));
12562
12564
  }
12563
- }), Zd = (e, t) => {
12565
+ }), Qd = (e, t) => {
12564
12566
  let n = e.__vccOpts || e;
12565
12567
  for (let [e, r] of t) n[e] = r;
12566
12568
  return n;
12567
- }, Qd = /*#__PURE__*/ Zd(Xd, [["__scopeId", "data-v-1e52dc9d"]]), $d = ["innerHTML"], ef = /* @__PURE__ */ wi({
12569
+ }, $d = /*#__PURE__*/ Qd(Zd, [["__scopeId", "data-v-245729f1"]]), ef = ["innerHTML"], tf = /* @__PURE__ */ wi({
12568
12570
  __name: "MessageContent",
12569
12571
  props: { content: {} },
12570
12572
  setup(e) {
@@ -12630,119 +12632,119 @@ app.mount('#app');
12630
12632
  ref_key: "containerRef",
12631
12633
  ref: i,
12632
12634
  innerHTML: W(n)
12633
- }, null, 8, $d), (q(), Ko(oi, { to: "body" }, [a.value ? (q(), Ko(Qd, {
12635
+ }, null, 8, ef), (q(), Ko(oi, { to: "body" }, [a.value ? (q(), Ko($d, {
12634
12636
  key: 0,
12635
12637
  code: a.value.code,
12636
12638
  lang: a.value.lang,
12637
12639
  onClose: t[0] ||= (e) => a.value = null
12638
12640
  }, null, 8, ["code", "lang"])) : X("", !0)]))], 64));
12639
12641
  }
12640
- }), tf = {
12642
+ }), nf = {
12641
12643
  key: 0,
12642
12644
  class: "debug-drawer"
12643
- }, nf = { class: "drawer-panel" }, rf = { class: "drawer-header" }, af = { class: "tab-group" }, of = { class: "header-actions" }, sf = {
12645
+ }, rf = { class: "drawer-panel" }, af = { class: "drawer-header" }, of = { class: "tab-group" }, sf = { class: "header-actions" }, cf = {
12644
12646
  key: 0,
12645
12647
  class: "drawer-filters"
12646
- }, cf = ["onClick"], lf = { class: "chip-count" }, uf = { class: "chip-count" }, df = { class: "drawer-body" }, ff = {
12648
+ }, lf = ["onClick"], uf = { class: "chip-count" }, df = { class: "chip-count" }, ff = { class: "drawer-body" }, pf = {
12647
12649
  key: 0,
12648
12650
  class: "empty"
12649
- }, pf = { class: "log-head" }, mf = {
12651
+ }, mf = { class: "log-head" }, hf = {
12650
12652
  key: 0,
12651
12653
  class: "log-source"
12652
- }, hf = { class: "log-time" }, gf = { class: "log-body" }, _f = { class: "kv-grid" }, vf = { class: "kv" }, yf = { class: "v" }, bf = { class: "kv" }, xf = { class: "v" }, Sf = { class: "kv" }, Cf = { class: "v" }, wf = { class: "kv" }, Tf = { class: "v" }, Ef = { class: "section-label" }, Df = { class: "chip-row" }, Of = { class: "msg-list" }, kf = { class: "msg-text" }, Af = { class: "badge-row" }, jf = { class: "badge" }, Mf = {
12654
+ }, gf = { class: "log-time" }, _f = { class: "log-body" }, vf = { class: "kv-grid" }, yf = { class: "kv" }, bf = { class: "v" }, xf = { class: "kv" }, Sf = { class: "v" }, Cf = { class: "kv" }, wf = { class: "v" }, Tf = { class: "kv" }, Ef = { class: "v" }, Df = { class: "section-label" }, Of = { class: "chip-row" }, kf = { class: "msg-list" }, Af = { class: "msg-text" }, jf = { class: "badge-row" }, Mf = { class: "badge" }, Nf = {
12653
12655
  key: 0,
12654
12656
  class: "badge muted"
12655
- }, Nf = { class: "badge muted" }, Pf = {
12657
+ }, Pf = { class: "badge muted" }, Ff = {
12656
12658
  key: 1,
12657
12659
  class: "badge muted"
12658
- }, Ff = ["onClick"], If = {
12660
+ }, If = ["onClick"], Lf = {
12659
12661
  key: 0,
12660
12662
  class: "msg-list"
12661
- }, Lf = { class: "msg-detail" }, Rf = {
12663
+ }, Rf = { class: "msg-detail" }, zf = {
12662
12664
  key: 0,
12663
12665
  class: "msg-text"
12664
- }, zf = { class: "tc-inline-name" }, Bf = { class: "tc-inline-args" }, Vf = {
12666
+ }, Bf = { class: "tc-inline-name" }, Vf = { class: "tc-inline-args" }, Hf = {
12665
12667
  key: 1,
12666
12668
  class: "tc-id"
12667
- }, Hf = {
12669
+ }, Uf = {
12668
12670
  key: 1,
12669
12671
  class: "log-raw"
12670
- }, Uf = { class: "badge-row" }, Wf = { class: "badge" }, Gf = {
12672
+ }, Wf = { class: "badge-row" }, Gf = { class: "badge" }, Kf = {
12671
12673
  key: 0,
12672
12674
  class: "badge warn"
12673
- }, Kf = {
12675
+ }, qf = {
12674
12676
  key: 0,
12675
12677
  class: "resp-content"
12676
- }, qf = {
12678
+ }, Jf = {
12677
12679
  key: 1,
12678
12680
  class: "tc-list"
12679
- }, Jf = { class: "tc-name" }, Yf = { class: "tc-args" }, Xf = {
12681
+ }, Yf = { class: "tc-name" }, Xf = { class: "tc-args" }, Zf = {
12680
12682
  key: 2,
12681
12683
  class: "usage-row"
12682
- }, Zf = { class: "usage" }, Qf = { class: "usage" }, $f = { class: "usage" }, ep = {
12684
+ }, Qf = { class: "usage" }, $f = { class: "usage" }, ep = { class: "usage" }, tp = {
12683
12685
  key: 3,
12684
12686
  class: "tc-card inline"
12685
- }, tp = { class: "tc-name" }, np = { class: "tc-args" }, rp = {
12687
+ }, np = { class: "tc-name" }, rp = { class: "tc-args" }, ip = {
12686
12688
  key: 4,
12687
12689
  class: "tc-card inline"
12688
- }, ip = { class: "tc-name" }, ap = { class: "tc-args" }, op = {
12690
+ }, ap = { class: "tc-name" }, op = { class: "tc-args" }, sp = {
12689
12691
  key: 5,
12690
12692
  class: "err-box"
12691
- }, sp = { class: "log-footer" }, cp = ["onClick"], lp = ["onClick"], up = {
12693
+ }, cp = { class: "log-footer" }, lp = ["onClick"], up = ["onClick"], dp = {
12692
12694
  key: 0,
12693
12695
  class: "log-raw"
12694
- }, dp = {
12696
+ }, fp = {
12695
12697
  key: 0,
12696
12698
  class: "empty"
12697
- }, fp = {
12699
+ }, pp = {
12698
12700
  key: 1,
12699
12701
  class: "flow-section"
12700
- }, pp = { class: "flow-ico" }, mp = { class: "flow-label" }, hp = { class: "flow-detail" }, gp = { class: "flow-time" }, _p = { class: "flow-round-head" }, vp = { class: "flow-round-body" }, yp = { class: "flow-ico" }, bp = { class: "flow-label" }, xp = { class: "flow-detail" }, Sp = { class: "flow-time" }, Cp = {
12702
+ }, mp = { class: "flow-ico" }, hp = { class: "flow-label" }, gp = { class: "flow-detail" }, _p = { class: "flow-time" }, vp = { class: "flow-round-head" }, yp = { class: "flow-round-body" }, bp = { class: "flow-ico" }, xp = { class: "flow-label" }, Sp = { class: "flow-detail" }, Cp = { class: "flow-time" }, wp = {
12701
12703
  key: 2,
12702
12704
  class: "info-body"
12703
- }, wp = {
12705
+ }, Tp = {
12704
12706
  key: 0,
12705
12707
  class: "empty"
12706
- }, Tp = { class: "info-section" }, Ep = { class: "kv-grid" }, Dp = { class: "kv" }, Op = { class: "v" }, kp = { class: "kv" }, Ap = { class: "v" }, jp = { class: "kv" }, Mp = { class: "v" }, Np = { class: "kv" }, Pp = { class: "v" }, Fp = {
12708
+ }, Ep = { class: "info-section" }, Dp = { class: "kv-grid" }, Op = { class: "kv" }, kp = { class: "v" }, Ap = { class: "kv" }, jp = { class: "v" }, Mp = { class: "kv" }, Np = { class: "v" }, Pp = { class: "kv" }, Fp = { class: "v" }, Ip = {
12707
12709
  class: "kv",
12708
12710
  style: { "margin-top": "6px" }
12709
- }, Ip = {
12711
+ }, Lp = {
12710
12712
  class: "v",
12711
12713
  style: { "font-size": "11px" }
12712
- }, Lp = { class: "info-section" }, Rp = { class: "info-title" }, zp = { class: "info-name" }, Bp = { class: "info-desc" }, Vp = {
12714
+ }, Rp = { class: "info-section" }, zp = { class: "info-title" }, Bp = { class: "info-name" }, Vp = { class: "info-desc" }, Hp = {
12713
12715
  key: 0,
12714
12716
  class: "info-section"
12715
- }, Hp = { class: "info-title" }, Up = { class: "info-name" }, Wp = { class: "info-desc" }, Gp = {
12717
+ }, Up = { class: "info-title" }, Wp = { class: "info-name" }, Gp = { class: "info-desc" }, Kp = {
12716
12718
  key: 1,
12717
12719
  class: "info-section"
12718
- }, Kp = { class: "info-title" }, qp = { class: "info-name" }, Jp = { class: "info-desc" }, Yp = { class: "info-section" }, Xp = { class: "kv-grid" }, Zp = { class: "kv" }, Qp = { class: "v" }, $p = { class: "kv" }, em = { class: "v" }, tm = { class: "kv" }, nm = { class: "v" }, rm = { class: "kv" }, im = {
12720
+ }, qp = { class: "info-title" }, Jp = { class: "info-name" }, Yp = { class: "info-desc" }, Xp = { class: "info-section" }, Zp = { class: "kv-grid" }, Qp = { class: "kv" }, $p = { class: "v" }, em = { class: "kv" }, tm = { class: "v" }, nm = { class: "kv" }, rm = { class: "v" }, im = { class: "kv" }, am = {
12719
12721
  class: "v",
12720
12722
  style: { "font-size": "11px" }
12721
- }, am = {
12723
+ }, om = {
12722
12724
  key: 2,
12723
12725
  class: "info-section"
12724
- }, om = { class: "info-title" }, sm = { class: "info-name" }, cm = { class: "src-tag mcp" }, lm = { class: "info-desc" }, um = {
12726
+ }, sm = { class: "info-title" }, cm = { class: "info-name" }, lm = { class: "src-tag mcp" }, um = { class: "info-desc" }, dm = {
12725
12727
  key: 3,
12726
12728
  class: "info-section"
12727
- }, dm = { class: "kv-grid" }, fm = { class: "kv" }, pm = { class: "v" }, mm = { class: "kv" }, hm = { class: "v" }, gm = { class: "kv" }, _m = { class: "v" }, vm = {
12729
+ }, fm = { class: "kv-grid" }, pm = { class: "kv" }, mm = { class: "v" }, hm = { class: "kv" }, gm = { class: "v" }, _m = { class: "kv" }, vm = { class: "v" }, ym = {
12728
12730
  key: 0,
12729
12731
  class: "kv"
12730
- }, ym = {
12732
+ }, bm = {
12731
12733
  class: "v",
12732
12734
  style: { "font-size": "11px" }
12733
- }, bm = {
12735
+ }, xm = {
12734
12736
  key: 4,
12735
12737
  class: "info-section"
12736
- }, xm = { class: "info-title" }, Sm = {
12738
+ }, Sm = { class: "info-title" }, Cm = {
12737
12739
  key: 5,
12738
12740
  class: "info-section"
12739
- }, Cm = { class: "info-pre" }, wm = {
12741
+ }, wm = { class: "info-pre" }, Tm = {
12740
12742
  key: 6,
12741
12743
  class: "info-section"
12742
- }, Tm = { class: "info-kv" }, Em = { class: "kv" }, Dm = { class: "v" }, Om = { class: "kv" }, km = { class: "v" }, Am = { class: "kv" }, jm = { class: "v" }, Mm = { class: "kv" }, Nm = { class: "v" }, Pm = { class: "kv" }, Fm = {
12744
+ }, Em = { class: "info-kv" }, Dm = { class: "kv" }, Om = { class: "v" }, km = { class: "kv" }, Am = { class: "v" }, jm = { class: "kv" }, Mm = { class: "v" }, Nm = { class: "kv" }, Pm = { class: "v" }, Fm = { class: "kv" }, Im = {
12743
12745
  class: "v",
12744
12746
  style: { "font-size": "11px" }
12745
- }, Im = /*#__PURE__*/ Zd(/* @__PURE__ */ wi({
12747
+ }, Lm = /*#__PURE__*/ Qd(/* @__PURE__ */ wi({
12746
12748
  __name: "DebugDrawer",
12747
12749
  props: {
12748
12750
  logs: { default: () => [] },
@@ -12910,8 +12912,8 @@ app.mount('#app');
12910
12912
  }
12911
12913
  }
12912
12914
  return (t, n) => (q(), Ko(oi, { to: "body" }, [$o(rc, { name: "drawer" }, {
12913
- default: Lr(() => [e.visible ? (q(), J("div", tf, [Y("div", nf, [
12914
- Y("div", rf, [Y("div", af, [
12915
+ default: Lr(() => [e.visible ? (q(), J("div", nf, [Y("div", rf, [
12916
+ Y("div", af, [Y("div", of, [
12915
12917
  Y("button", {
12916
12918
  class: Se(["tab-btn", { active: b.value === "logs" }]),
12917
12919
  onClick: n[0] ||= (e) => S("logs")
@@ -12925,7 +12927,7 @@ app.mount('#app');
12925
12927
  class: Se(["tab-btn", { active: b.value === "info" }]),
12926
12928
  onClick: n[2] ||= (e) => S("info")
12927
12929
  }, "🧬 Agent 信息", 2)) : X("", !0)
12928
- ]), Y("div", of, [b.value === "logs" ? (q(), J("button", {
12930
+ ]), Y("div", sf, [b.value === "logs" ? (q(), J("button", {
12929
12931
  key: 0,
12930
12932
  class: "hd-btn",
12931
12933
  title: "清空日志",
@@ -12935,171 +12937,171 @@ app.mount('#app');
12935
12937
  title: "关闭",
12936
12938
  onClick: v
12937
12939
  }, "✕")])]),
12938
- b.value === "logs" ? (q(), J("div", sf, [(q(), J(K, null, Xi(s, (e, t) => Y("button", {
12940
+ b.value === "logs" ? (q(), J("div", cf, [(q(), J(K, null, Xi(s, (e, t) => Y("button", {
12939
12941
  key: t,
12940
12942
  class: Se(["filter-chip", { active: i.value === t }]),
12941
12943
  style: _e({ "--chip-color": e.color }),
12942
12944
  onClick: (e) => i.value = t
12943
- }, [is(V(e.icon) + " " + V(e.label) + " ", 1), Y("span", lf, V(u.value[t] || 0), 1)], 14, cf)), 64)), Y("button", {
12945
+ }, [is(V(e.icon) + " " + V(e.label) + " ", 1), Y("span", uf, V(u.value[t] || 0), 1)], 14, lf)), 64)), Y("button", {
12944
12946
  class: Se(["filter-chip all", { active: i.value === "all" }]),
12945
12947
  onClick: n[3] ||= (e) => i.value = "all"
12946
- }, [n[4] ||= is(" 全部 ", -1), Y("span", uf, V(u.value.all || 0), 1)], 2)])) : X("", !0),
12947
- Y("div", df, [b.value === "logs" ? (q(), J(K, { key: 0 }, [l.value.length === 0 ? (q(), J("div", ff, " 暂无日志,发送消息后这里会显示 Agent 的完整上下文、工具调用等信息 ")) : X("", !0), (q(!0), J(K, null, Xi(l.value, (e, t) => (q(), J("div", {
12948
+ }, [n[4] ||= is(" 全部 ", -1), Y("span", df, V(u.value.all || 0), 1)], 2)])) : X("", !0),
12949
+ Y("div", ff, [b.value === "logs" ? (q(), J(K, { key: 0 }, [l.value.length === 0 ? (q(), J("div", pf, " 暂无日志,发送消息后这里会显示 Agent 的完整上下文、工具调用等信息 ")) : X("", !0), (q(!0), J(K, null, Xi(l.value, (e, t) => (q(), J("div", {
12948
12950
  key: t,
12949
12951
  class: "log-item"
12950
12952
  }, [
12951
- Y("div", pf, [
12953
+ Y("div", mf, [
12952
12954
  Y("span", {
12953
12955
  class: "log-type",
12954
12956
  style: _e({ background: s[e.type].color })
12955
12957
  }, V(s[e.type].icon) + " " + V(s[e.type].label), 5),
12956
- e.source ? (q(), J("span", mf, "↳ " + V(e.source), 1)) : X("", !0),
12957
- Y("span", hf, V(d(e.timestamp)), 1)
12958
+ e.source ? (q(), J("span", hf, "↳ " + V(e.source), 1)) : X("", !0),
12959
+ Y("span", gf, V(d(e.timestamp)), 1)
12958
12960
  ]),
12959
- Y("div", gf, [e.type === "context" ? (q(), J(K, { key: 0 }, [
12960
- Y("div", _f, [
12961
- Y("div", vf, [n[5] ||= Y("span", { class: "k" }, "模型", -1), Y("span", yf, V(e.data.model), 1)]),
12962
- Y("div", bf, [n[6] ||= Y("span", { class: "k" }, "温度", -1), Y("span", xf, V(e.data.temperature), 1)]),
12963
- Y("div", Sf, [n[7] ||= Y("span", { class: "k" }, "MaxTokens", -1), Y("span", Cf, V(e.data.maxTokens), 1)]),
12964
- Y("div", wf, [n[8] ||= Y("span", { class: "k" }, "消息数", -1), Y("span", Tf, V(e.data.totalMessages), 1)])
12961
+ Y("div", _f, [e.type === "context" ? (q(), J(K, { key: 0 }, [
12962
+ Y("div", vf, [
12963
+ Y("div", yf, [n[5] ||= Y("span", { class: "k" }, "模型", -1), Y("span", bf, V(e.data.model), 1)]),
12964
+ Y("div", xf, [n[6] ||= Y("span", { class: "k" }, "温度", -1), Y("span", Sf, V(e.data.temperature), 1)]),
12965
+ Y("div", Cf, [n[7] ||= Y("span", { class: "k" }, "MaxTokens", -1), Y("span", wf, V(e.data.maxTokens), 1)]),
12966
+ Y("div", Tf, [n[8] ||= Y("span", { class: "k" }, "消息数", -1), Y("span", Ef, V(e.data.totalMessages), 1)])
12965
12967
  ]),
12966
- Y("div", Ef, "工具 (" + V(e.data.tools?.length || 0) + ")", 1),
12967
- Y("div", Df, [(q(!0), J(K, null, Xi(e.data.tools, (e) => (q(), J("span", {
12968
+ Y("div", Df, "工具 (" + V(e.data.tools?.length || 0) + ")", 1),
12969
+ Y("div", Of, [(q(!0), J(K, null, Xi(e.data.tools, (e) => (q(), J("span", {
12968
12970
  key: e,
12969
12971
  class: "tool-chip"
12970
12972
  }, V(e), 1))), 128))]),
12971
12973
  n[9] ||= Y("div", { class: "section-label" }, "上下文消息", -1),
12972
- Y("div", Of, [(q(!0), J(K, null, Xi(e.data.messages, (e, t) => (q(), J("div", {
12974
+ Y("div", kf, [(q(!0), J(K, null, Xi(e.data.messages, (e, t) => (q(), J("div", {
12973
12975
  key: t,
12974
12976
  class: "msg-row"
12975
12977
  }, [Y("span", {
12976
12978
  class: "msg-role",
12977
12979
  style: _e({ background: _(e.type).color })
12978
- }, V(_(e.type).label), 5), Y("span", kf, V(e.content), 1)]))), 128))])
12979
- ], 64)) : e.type === "llm_request" ? (q(), J(K, { key: 1 }, [Y("div", Af, [
12980
- Y("span", jf, "第 " + V(e.data.round) + " 轮", 1),
12981
- e.data.model ? (q(), J("span", Mf, V(e.data.model), 1)) : X("", !0),
12982
- Y("span", Nf, V((e.data.messages || []).length) + " 条消息", 1),
12983
- e.data.tools?.length ? (q(), J("span", Pf, V(e.data.tools.length) + " 工具", 1)) : X("", !0),
12980
+ }, V(_(e.type).label), 5), Y("span", Af, V(e.content), 1)]))), 128))])
12981
+ ], 64)) : e.type === "llm_request" ? (q(), J(K, { key: 1 }, [Y("div", jf, [
12982
+ Y("span", Mf, "第 " + V(e.data.round) + " 轮", 1),
12983
+ e.data.model ? (q(), J("span", Nf, V(e.data.model), 1)) : X("", !0),
12984
+ Y("span", Pf, V((e.data.messages || []).length) + " 条消息", 1),
12985
+ e.data.tools?.length ? (q(), J("span", Ff, V(e.data.tools.length) + " 工具", 1)) : X("", !0),
12984
12986
  Y("button", {
12985
12987
  class: "view-toggle",
12986
12988
  onClick: (e) => p(t)
12987
- }, V(o.value.has(t) ? "🗂 卡片视图" : "📋 请求体"), 9, Ff)
12988
- ]), o.value.has(t) ? (q(), J("pre", Hf, [Y("code", null, V(m(e.data.messages)), 1)])) : (q(), J("div", If, [(q(!0), J(K, null, Xi(e.data.messages, (e, t) => (q(), J("div", {
12989
+ }, V(o.value.has(t) ? "🗂 卡片视图" : "📋 请求体"), 9, If)
12990
+ ]), o.value.has(t) ? (q(), J("pre", Uf, [Y("code", null, V(m(e.data.messages)), 1)])) : (q(), J("div", Lf, [(q(!0), J(K, null, Xi(e.data.messages, (e, t) => (q(), J("div", {
12989
12991
  key: t,
12990
12992
  class: "msg-row"
12991
12993
  }, [Y("span", {
12992
12994
  class: "msg-role",
12993
12995
  style: _e({ background: _(e.role).color })
12994
- }, V(_(e.role).label), 5), Y("div", Lf, [
12995
- e.content ? (q(), J("span", Rf, V(e.content), 1)) : X("", !0),
12996
+ }, V(_(e.role).label), 5), Y("div", Rf, [
12997
+ e.content ? (q(), J("span", zf, V(e.content), 1)) : X("", !0),
12996
12998
  (q(!0), J(K, null, Xi(e.tool_calls || [], (e, t) => (q(), J("div", {
12997
12999
  key: t,
12998
13000
  class: "tc-inline"
12999
- }, [Y("span", zf, "🔧 " + V(e.function?.name || e.name), 1), Y("code", Bf, V(e.function?.arguments ?? e.args), 1)]))), 128)),
13000
- e.tool_call_id ? (q(), J("span", Vf, "↳ tool_call_id: " + V(e.tool_call_id), 1)) : X("", !0)
13001
+ }, [Y("span", Bf, "🔧 " + V(e.function?.name || e.name), 1), Y("code", Vf, V(e.function?.arguments ?? e.args), 1)]))), 128)),
13002
+ e.tool_call_id ? (q(), J("span", Hf, "↳ tool_call_id: " + V(e.tool_call_id), 1)) : X("", !0)
13001
13003
  ])]))), 128))]))], 64)) : e.type === "llm_response" ? (q(), J(K, { key: 2 }, [
13002
- Y("div", Uf, [Y("span", Wf, "第 " + V(e.data.round) + " 轮", 1), e.data.toolCalls?.length ? (q(), J("span", Gf, "🔧 " + V(e.data.toolCalls.length) + " 个工具调用", 1)) : X("", !0)]),
13003
- e.data.content ? (q(), J("div", Kf, V(e.data.content), 1)) : X("", !0),
13004
- e.data.toolCalls?.length ? (q(), J("div", qf, [(q(!0), J(K, null, Xi(e.data.toolCalls, (e, t) => (q(), J("div", {
13004
+ Y("div", Wf, [Y("span", Gf, "第 " + V(e.data.round) + " 轮", 1), e.data.toolCalls?.length ? (q(), J("span", Kf, "🔧 " + V(e.data.toolCalls.length) + " 个工具调用", 1)) : X("", !0)]),
13005
+ e.data.content ? (q(), J("div", qf, V(e.data.content), 1)) : X("", !0),
13006
+ e.data.toolCalls?.length ? (q(), J("div", Jf, [(q(!0), J(K, null, Xi(e.data.toolCalls, (e, t) => (q(), J("div", {
13005
13007
  key: t,
13006
13008
  class: "tc-card"
13007
- }, [Y("div", Jf, "🔧 " + V(e.name), 1), Y("pre", Yf, V(m(e.args)), 1)]))), 128))])) : X("", !0),
13008
- e.data.usage ? (q(), J("div", Xf, [
13009
- Y("span", Zf, "prompt: " + V(e.data.usage.prompt_tokens ?? "-"), 1),
13010
- Y("span", Qf, "completion: " + V(e.data.usage.completion_tokens ?? "-"), 1),
13011
- Y("span", $f, "total: " + V(e.data.usage.total_tokens ?? "-"), 1)
13009
+ }, [Y("div", Yf, "🔧 " + V(e.name), 1), Y("pre", Xf, V(m(e.args)), 1)]))), 128))])) : X("", !0),
13010
+ e.data.usage ? (q(), J("div", Zf, [
13011
+ Y("span", Qf, "prompt: " + V(e.data.usage.prompt_tokens ?? "-"), 1),
13012
+ Y("span", $f, "completion: " + V(e.data.usage.completion_tokens ?? "-"), 1),
13013
+ Y("span", ep, "total: " + V(e.data.usage.total_tokens ?? "-"), 1)
13012
13014
  ])) : X("", !0)
13013
- ], 64)) : e.type === "tool_call" ? (q(), J("div", ep, [Y("div", tp, "🔧 " + V(e.data.name), 1), Y("pre", np, V(m(e.data.args)), 1)])) : e.type === "tool_result" ? (q(), J("div", rp, [Y("div", ip, "✅ " + V(e.data.name) + " 结果", 1), Y("pre", ap, V(e.data.result), 1)])) : e.type === "error" ? (q(), J("div", op, V(e.data.tool ? `[${e.data.tool}] ` : "") + V(e.data.error), 1)) : X("", !0)]),
13014
- Y("div", sp, [Y("button", {
13015
+ ], 64)) : e.type === "tool_call" ? (q(), J("div", tp, [Y("div", np, "🔧 " + V(e.data.name), 1), Y("pre", rp, V(m(e.data.args)), 1)])) : e.type === "tool_result" ? (q(), J("div", ip, [Y("div", ap, "✅ " + V(e.data.name) + " 结果", 1), Y("pre", op, V(e.data.result), 1)])) : e.type === "error" ? (q(), J("div", sp, V(e.data.tool ? `[${e.data.tool}] ` : "") + V(e.data.error), 1)) : X("", !0)]),
13016
+ Y("div", cp, [Y("button", {
13015
13017
  class: "raw-toggle",
13016
13018
  onClick: (e) => f(t)
13017
- }, V(a.value.has(t) ? "收起原始 JSON" : "查看原始 JSON"), 9, cp), Y("button", {
13019
+ }, V(a.value.has(t) ? "收起原始 JSON" : "查看原始 JSON"), 9, lp), Y("button", {
13018
13020
  class: "raw-toggle",
13019
13021
  onClick: (t) => h(m(e.data))
13020
- }, "复制", 8, lp)]),
13021
- a.value.has(t) ? (q(), J("pre", up, [Y("code", null, V(m(e.data)), 1)])) : X("", !0)
13022
+ }, "复制", 8, up)]),
13023
+ a.value.has(t) ? (q(), J("pre", dp, [Y("code", null, V(m(e.data)), 1)])) : X("", !0)
13022
13024
  ]))), 128))], 64)) : b.value === "flow" ? (q(), J(K, { key: 1 }, [
13023
- c.value.length ? X("", !0) : (q(), J("div", dp, "暂无日志,发送消息后这里按轮次展示执行流程")),
13024
- E.value.pre.length ? (q(), J("div", fp, [n[10] ||= Y("div", { class: "flow-section-title" }, "⚙️ 准备 / 其他", -1), (q(!0), J(K, null, Xi(E.value.pre, (e, t) => (q(), J("div", {
13025
+ c.value.length ? X("", !0) : (q(), J("div", fp, "暂无日志,发送消息后这里按轮次展示执行流程")),
13026
+ E.value.pre.length ? (q(), J("div", pp, [n[10] ||= Y("div", { class: "flow-section-title" }, "⚙️ 准备 / 其他", -1), (q(!0), J(K, null, Xi(E.value.pre, (e, t) => (q(), J("div", {
13025
13027
  key: "p" + t,
13026
13028
  class: Se(["flow-node", e.type])
13027
13029
  }, [
13028
- Y("span", pp, V(s[e.type]?.icon), 1),
13029
- Y("span", mp, V(s[e.type]?.label), 1),
13030
- Y("span", hp, V(O(e)), 1),
13031
- Y("span", gp, V(d(e.timestamp)), 1)
13030
+ Y("span", mp, V(s[e.type]?.icon), 1),
13031
+ Y("span", hp, V(s[e.type]?.label), 1),
13032
+ Y("span", gp, V(O(e)), 1),
13033
+ Y("span", _p, V(d(e.timestamp)), 1)
13032
13034
  ], 2))), 128))])) : X("", !0),
13033
13035
  (q(!0), J(K, null, Xi(E.value.rounds, (e) => (q(), J("div", {
13034
13036
  key: e.round,
13035
13037
  class: "flow-round"
13036
- }, [Y("div", _p, "🔁 第 " + V(e.round) + " 轮", 1), Y("div", vp, [(q(!0), J(K, null, Xi(e.items, (e, t) => (q(), J("div", {
13038
+ }, [Y("div", vp, "🔁 第 " + V(e.round) + " 轮", 1), Y("div", yp, [(q(!0), J(K, null, Xi(e.items, (e, t) => (q(), J("div", {
13037
13039
  key: t,
13038
13040
  class: Se(["flow-node", e.type])
13039
13041
  }, [
13040
- Y("span", yp, V(s[e.type]?.icon), 1),
13041
- Y("span", bp, V(s[e.type]?.label), 1),
13042
- Y("span", xp, V(O(e)), 1),
13043
- Y("span", Sp, V(d(e.timestamp)), 1)
13042
+ Y("span", bp, V(s[e.type]?.icon), 1),
13043
+ Y("span", xp, V(s[e.type]?.label), 1),
13044
+ Y("span", Sp, V(O(e)), 1),
13045
+ Y("span", Cp, V(d(e.timestamp)), 1)
13044
13046
  ], 2))), 128))])]))), 128))
13045
- ], 64)) : (q(), J("div", Cp, [x.value ? (q(), J(K, { key: 1 }, [
13046
- Y("div", Tp, [
13047
+ ], 64)) : (q(), J("div", wp, [x.value ? (q(), J(K, { key: 1 }, [
13048
+ Y("div", Ep, [
13047
13049
  n[16] ||= Y("div", { class: "info-title" }, "基本信息", -1),
13048
- Y("div", Ep, [
13049
- Y("div", Dp, [n[11] ||= Y("span", { class: "k" }, "ID", -1), Y("span", Op, V(x.value.id), 1)]),
13050
- Y("div", kp, [n[12] ||= Y("span", { class: "k" }, "模型", -1), Y("span", Ap, V(x.value.model || "-"), 1)]),
13051
- Y("div", jp, [n[13] ||= Y("span", { class: "k" }, "工具数", -1), Y("span", Mp, V(x.value.tools.length), 1)]),
13052
- Y("div", Np, [n[14] ||= Y("span", { class: "k" }, "中间件", -1), Y("span", Pp, V(x.value.middleware.length), 1)])
13050
+ Y("div", Dp, [
13051
+ Y("div", Op, [n[11] ||= Y("span", { class: "k" }, "ID", -1), Y("span", kp, V(x.value.id), 1)]),
13052
+ Y("div", Ap, [n[12] ||= Y("span", { class: "k" }, "模型", -1), Y("span", jp, V(x.value.model || "-"), 1)]),
13053
+ Y("div", Mp, [n[13] ||= Y("span", { class: "k" }, "工具数", -1), Y("span", Np, V(x.value.tools.length), 1)]),
13054
+ Y("div", Pp, [n[14] ||= Y("span", { class: "k" }, "中间件", -1), Y("span", Fp, V(x.value.middleware.length), 1)])
13053
13055
  ]),
13054
- Y("div", Fp, [n[15] ||= Y("span", { class: "k" }, "中间件栈", -1), Y("span", Ip, V(x.value.middleware.join(" → ") || "-"), 1)])
13056
+ Y("div", Ip, [n[15] ||= Y("span", { class: "k" }, "中间件栈", -1), Y("span", Lp, V(x.value.middleware.join(" → ") || "-"), 1)])
13055
13057
  ]),
13056
- Y("div", Lp, [Y("div", Rp, "🔧 工具 (" + V(x.value.tools.length) + ")", 1), (q(!0), J(K, null, Xi(x.value.tools, (e) => (q(), J("div", {
13058
+ Y("div", Rp, [Y("div", zp, "🔧 工具 (" + V(x.value.tools.length) + ")", 1), (q(!0), J(K, null, Xi(x.value.tools, (e) => (q(), J("div", {
13057
13059
  key: e.name,
13058
13060
  class: "info-item"
13059
- }, [Y("div", zp, [is(V(e.name), 1), e.source ? (q(), J("span", {
13061
+ }, [Y("div", Bp, [is(V(e.name), 1), e.source ? (q(), J("span", {
13060
13062
  key: 0,
13061
13063
  class: Se(["src-tag", T(e.source)])
13062
- }, V(e.source), 3)) : X("", !0)]), Y("div", Bp, V(e.description), 1)]))), 128))]),
13063
- x.value.skills.length ? (q(), J("div", Vp, [Y("div", Hp, "📘 技能 (" + V(x.value.skills.length) + ")", 1), (q(!0), J(K, null, Xi(x.value.skills, (e) => (q(), J("div", {
13064
+ }, V(e.source), 3)) : X("", !0)]), Y("div", Vp, V(e.description), 1)]))), 128))]),
13065
+ x.value.skills.length ? (q(), J("div", Hp, [Y("div", Up, "📘 技能 (" + V(x.value.skills.length) + ")", 1), (q(!0), J(K, null, Xi(x.value.skills, (e) => (q(), J("div", {
13064
13066
  key: e.name,
13065
13067
  class: "info-item"
13066
- }, [Y("div", Up, V(e.name), 1), Y("div", Wp, V(e.description), 1)]))), 128))])) : X("", !0),
13067
- x.value.windowProps.length ? (q(), J("div", Gp, [Y("div", Kp, "🪟 可操作属性 (" + V(x.value.windowProps.length) + ")", 1), (q(!0), J(K, null, Xi(x.value.windowProps, (e) => (q(), J("div", {
13068
+ }, [Y("div", Wp, V(e.name), 1), Y("div", Gp, V(e.description), 1)]))), 128))])) : X("", !0),
13069
+ x.value.windowProps.length ? (q(), J("div", Kp, [Y("div", qp, "🪟 可操作属性 (" + V(x.value.windowProps.length) + ")", 1), (q(!0), J(K, null, Xi(x.value.windowProps, (e) => (q(), J("div", {
13068
13070
  key: e.path,
13069
13071
  class: "info-item"
13070
- }, [Y("div", qp, V(e.path), 1), Y("div", Jp, V(e.description), 1)]))), 128))])) : X("", !0),
13071
- Y("div", Yp, [n[21] ||= Y("div", { class: "info-title" }, "🧬 子 Agent", -1), Y("div", Xp, [
13072
- Y("div", Zp, [n[17] ||= Y("span", { class: "k" }, "启用", -1), Y("span", Qp, V(x.value.subagent.enabled ? "是" : "否"), 1)]),
13073
- Y("div", $p, [n[18] ||= Y("span", { class: "k" }, "最大递归", -1), Y("span", em, V(x.value.subagent.maxDepth), 1)]),
13074
- Y("div", tm, [n[19] ||= Y("span", { class: "k" }, "并行上限", -1), Y("span", nm, V(x.value.subagent.maxParallel), 1)]),
13075
- Y("div", rm, [n[20] ||= Y("span", { class: "k" }, "额外工具", -1), Y("span", im, V(x.value.subagent.allowedTools.length ? x.value.subagent.allowedTools.join(", ") : "默认只读"), 1)])
13072
+ }, [Y("div", Jp, V(e.path), 1), Y("div", Yp, V(e.description), 1)]))), 128))])) : X("", !0),
13073
+ Y("div", Xp, [n[21] ||= Y("div", { class: "info-title" }, "🧬 子 Agent", -1), Y("div", Zp, [
13074
+ Y("div", Qp, [n[17] ||= Y("span", { class: "k" }, "启用", -1), Y("span", $p, V(x.value.subagent.enabled ? "是" : "否"), 1)]),
13075
+ Y("div", em, [n[18] ||= Y("span", { class: "k" }, "最大递归", -1), Y("span", tm, V(x.value.subagent.maxDepth), 1)]),
13076
+ Y("div", nm, [n[19] ||= Y("span", { class: "k" }, "并行上限", -1), Y("span", rm, V(x.value.subagent.maxParallel), 1)]),
13077
+ Y("div", im, [n[20] ||= Y("span", { class: "k" }, "额外工具", -1), Y("span", am, V(x.value.subagent.allowedTools.length ? x.value.subagent.allowedTools.join(", ") : "默认只读"), 1)])
13076
13078
  ])]),
13077
- x.value.mcp?.servers?.length ? (q(), J("div", am, [Y("div", om, "🔌 MCP (" + V(x.value.mcp.servers.length) + ")", 1), (q(!0), J(K, null, Xi(x.value.mcp.servers, (e) => (q(), J("div", {
13079
+ x.value.mcp?.servers?.length ? (q(), J("div", om, [Y("div", sm, "🔌 MCP (" + V(x.value.mcp.servers.length) + ")", 1), (q(!0), J(K, null, Xi(x.value.mcp.servers, (e) => (q(), J("div", {
13078
13080
  key: e.name,
13079
13081
  class: "info-item"
13080
- }, [Y("div", sm, [is(V(e.name) + " ", 1), Y("span", cm, V(e.toolCount) + " 工具", 1)]), Y("div", lm, V(e.url), 1)]))), 128))])) : X("", !0),
13081
- x.value.verify ? (q(), J("div", um, [n[26] ||= Y("div", { class: "info-title" }, "✅ Verify 自检", -1), Y("div", dm, [
13082
- Y("div", fm, [n[22] ||= Y("span", { class: "k" }, "启用", -1), Y("span", pm, V(x.value.verify.enabled ? "是" : "否"), 1)]),
13083
- Y("div", mm, [n[23] ||= Y("span", { class: "k" }, "自纠上限", -1), Y("span", hm, V(x.value.verify.maxAttempts), 1)]),
13084
- Y("div", gm, [n[24] ||= Y("span", { class: "k" }, "对抗验证", -1), Y("span", _m, V(x.value.verify.adversarial ? "开启" : "关闭"), 1)]),
13085
- x.value.verify.adversarial ? (q(), J("div", vm, [n[25] ||= Y("span", { class: "k" }, "对抗模型", -1), Y("span", ym, V(x.value.model || "-") + "(同主)", 1)])) : X("", !0)
13082
+ }, [Y("div", cm, [is(V(e.name) + " ", 1), Y("span", lm, V(e.toolCount) + " 工具", 1)]), Y("div", um, V(e.url), 1)]))), 128))])) : X("", !0),
13083
+ x.value.verify ? (q(), J("div", dm, [n[26] ||= Y("div", { class: "info-title" }, "✅ Verify 自检", -1), Y("div", fm, [
13084
+ Y("div", pm, [n[22] ||= Y("span", { class: "k" }, "启用", -1), Y("span", mm, V(x.value.verify.enabled ? "是" : "否"), 1)]),
13085
+ Y("div", hm, [n[23] ||= Y("span", { class: "k" }, "自纠上限", -1), Y("span", gm, V(x.value.verify.maxAttempts), 1)]),
13086
+ Y("div", _m, [n[24] ||= Y("span", { class: "k" }, "对抗验证", -1), Y("span", vm, V(x.value.verify.adversarial ? "开启" : "关闭"), 1)]),
13087
+ x.value.verify.adversarial ? (q(), J("div", ym, [n[25] ||= Y("span", { class: "k" }, "对抗模型", -1), Y("span", bm, V(x.value.model || "-") + "(同主)", 1)])) : X("", !0)
13086
13088
  ])])) : X("", !0),
13087
- x.value.todos.length ? (q(), J("div", bm, [Y("div", xm, "📋 任务清单 (" + V(x.value.todos.length) + ")", 1), (q(!0), J(K, null, Xi(x.value.todos, (e, t) => (q(), J("div", {
13089
+ x.value.todos.length ? (q(), J("div", xm, [Y("div", Sm, "📋 任务清单 (" + V(x.value.todos.length) + ")", 1), (q(!0), J(K, null, Xi(x.value.todos, (e, t) => (q(), J("div", {
13088
13090
  key: t,
13089
13091
  class: "info-todo"
13090
13092
  }, [Y("span", {
13091
13093
  class: "todo-tag",
13092
13094
  style: _e({ background: C[e.status] && C[e.status].color || "#9ca3af" })
13093
13095
  }, V(w(e.status)), 5), Y("span", null, V(e.content), 1)]))), 128))])) : X("", !0),
13094
- x.value.memory ? (q(), J("div", Sm, [n[27] ||= Y("div", { class: "info-title" }, "📝 持久指令 (memory)", -1), Y("pre", Cm, V(x.value.memory), 1)])) : X("", !0),
13095
- x.value.lastCompression ? (q(), J("div", wm, [n[33] ||= Y("div", { class: "info-title" }, "🗜️ 上轮压缩", -1), Y("div", Tm, [
13096
- Y("div", Em, [n[28] ||= Y("span", { class: "k" }, "触发", -1), Y("span", Dm, V(x.value.lastCompression.triggered ? "✓" : "✗(未达阈值)"), 1)]),
13097
- Y("div", Om, [n[29] ||= Y("span", { class: "k" }, "摘要轮次", -1), Y("span", km, V(x.value.lastCompression.roundsSummarized) + " / " + V(x.value.lastCompression.roundsTotal), 1)]),
13098
- Y("div", Am, [n[30] ||= Y("span", { class: "k" }, "召回", -1), Y("span", jm, V(x.value.lastCompression.roundsRecalled) + " 条", 1)]),
13099
- Y("div", Mm, [n[31] ||= Y("span", { class: "k" }, "消息数", -1), Y("span", Nm, V(x.value.lastCompression.originalMessages) + " → " + V(x.value.lastCompression.compressedMessages), 1)]),
13100
- Y("div", Pm, [n[32] ||= Y("span", { class: "k" }, "策略", -1), Y("span", Fm, V(x.value.lastCompression.strategy), 1)])
13096
+ x.value.memory ? (q(), J("div", Cm, [n[27] ||= Y("div", { class: "info-title" }, "📝 持久指令 (memory)", -1), Y("pre", wm, V(x.value.memory), 1)])) : X("", !0),
13097
+ x.value.lastCompression ? (q(), J("div", Tm, [n[33] ||= Y("div", { class: "info-title" }, "🗜️ 上轮压缩", -1), Y("div", Em, [
13098
+ Y("div", Dm, [n[28] ||= Y("span", { class: "k" }, "触发", -1), Y("span", Om, V(x.value.lastCompression.triggered ? "✓" : "✗(未达阈值)"), 1)]),
13099
+ Y("div", km, [n[29] ||= Y("span", { class: "k" }, "摘要轮次", -1), Y("span", Am, V(x.value.lastCompression.roundsSummarized) + " / " + V(x.value.lastCompression.roundsTotal), 1)]),
13100
+ Y("div", jm, [n[30] ||= Y("span", { class: "k" }, "召回", -1), Y("span", Mm, V(x.value.lastCompression.roundsRecalled) + " 条", 1)]),
13101
+ Y("div", Nm, [n[31] ||= Y("span", { class: "k" }, "消息数", -1), Y("span", Pm, V(x.value.lastCompression.originalMessages) + " → " + V(x.value.lastCompression.compressedMessages), 1)]),
13102
+ Y("div", Fm, [n[32] ||= Y("span", { class: "k" }, "策略", -1), Y("span", Im, V(x.value.lastCompression.strategy), 1)])
13101
13103
  ])])) : X("", !0)
13102
- ], 64)) : (q(), J("div", wp, "暂无信息"))]))])
13104
+ ], 64)) : (q(), J("div", Tp, "暂无信息"))]))])
13103
13105
  ]), Y("div", {
13104
13106
  class: "drawer-mask",
13105
13107
  onClick: v
@@ -13107,102 +13109,102 @@ app.mount('#app');
13107
13109
  _: 1
13108
13110
  })]));
13109
13111
  }
13110
- }), [["__scopeId", "data-v-1bf2e689"]]), Lm = { class: "chat-header" }, Rm = { class: "header-left" }, zm = { class: "header-title" }, Bm = {
13112
+ }), [["__scopeId", "data-v-1bf2e689"]]), Rm = { class: "chat-header" }, zm = { class: "header-left" }, Bm = { class: "header-title" }, Vm = {
13111
13113
  key: 0,
13112
13114
  class: "status-dot pulse"
13113
- }, Vm = { class: "header-actions" }, Hm = {
13115
+ }, Hm = { class: "header-actions" }, Um = {
13114
13116
  key: 0,
13115
13117
  class: "debug-badge"
13116
- }, Um = ["disabled"], Wm = {
13118
+ }, Wm = ["disabled"], Gm = {
13117
13119
  width: "16",
13118
13120
  height: "16",
13119
13121
  viewBox: "0 0 24 24",
13120
13122
  fill: "none",
13121
13123
  stroke: "currentColor",
13122
13124
  "stroke-width": "2"
13123
- }, Gm = {
13125
+ }, Km = {
13124
13126
  key: 0,
13125
13127
  d: "M18 15l-6-6-6 6"
13126
- }, Km = {
13128
+ }, qm = {
13127
13129
  key: 1,
13128
13130
  d: "M6 9l6 6 6-6"
13129
- }, qm = {
13131
+ }, Jm = {
13130
13132
  key: 0,
13131
13133
  class: "empty-state"
13132
- }, Jm = ["data-msg-idx"], Ym = {
13134
+ }, Ym = ["data-msg-idx"], Xm = {
13133
13135
  key: 0,
13134
13136
  class: "message-avatar"
13135
- }, Xm = { class: "message-content" }, Zm = ["onClick"], Qm = { class: "reasoning-toggle" }, $m = {
13137
+ }, Zm = { class: "message-content" }, Qm = ["onClick"], $m = { class: "reasoning-toggle" }, eh = {
13136
13138
  key: 0,
13137
13139
  class: "reasoning-body"
13138
- }, eh = {
13140
+ }, th = {
13139
13141
  key: 1,
13140
13142
  class: "steps-block"
13141
- }, th = { class: "step-head" }, nh = { class: "step-icon" }, rh = { class: "step-name" }, ih = {
13143
+ }, nh = { class: "step-head" }, rh = { class: "step-icon" }, ih = { class: "step-name" }, ah = {
13142
13144
  key: 0,
13143
13145
  class: "step-count"
13144
- }, ah = {
13146
+ }, oh = {
13145
13147
  key: 1,
13146
13148
  class: "step-status running"
13147
- }, oh = {
13149
+ }, sh = {
13148
13150
  key: 0,
13149
13151
  class: "step-children"
13150
- }, sh = { class: "step-icon" }, ch = { class: "step-name" }, lh = {
13152
+ }, ch = { class: "step-icon" }, lh = { class: "step-name" }, uh = {
13151
13153
  key: 0,
13152
13154
  class: "step-status running"
13153
- }, uh = {
13155
+ }, dh = {
13154
13156
  key: 1,
13155
13157
  class: "typing-text"
13156
- }, dh = {
13158
+ }, fh = {
13157
13159
  key: 2,
13158
13160
  class: "stream-cursor"
13159
- }, fh = { class: "message-time" }, ph = {
13161
+ }, ph = { class: "message-time" }, mh = {
13160
13162
  key: 3,
13161
13163
  class: "msg-actions"
13162
- }, mh = ["onClick"], hh = {
13164
+ }, hh = ["title", "onClick"], gh = {
13163
13165
  key: 1,
13164
13166
  class: "message-row assistant"
13165
- }, gh = {
13167
+ }, _h = {
13166
13168
  key: 0,
13167
13169
  class: "message-avatar"
13168
- }, _h = { class: "message-content" }, vh = { class: "message-bubble typing" }, yh = {
13170
+ }, vh = { class: "message-content" }, yh = { class: "message-bubble typing" }, bh = {
13169
13171
  key: 1,
13170
13172
  class: "typing-text"
13171
- }, bh = {
13173
+ }, xh = {
13172
13174
  key: 2,
13173
13175
  class: "error-bar"
13174
- }, xh = { class: "error-text" }, Sh = {
13176
+ }, Sh = { class: "error-text" }, Ch = {
13175
13177
  key: 0,
13176
13178
  class: "approval-bar"
13177
- }, Ch = {
13179
+ }, wh = {
13178
13180
  key: 0,
13179
13181
  class: "approval-question"
13180
- }, wh = {
13182
+ }, Th = {
13181
13183
  key: 1,
13182
13184
  class: "approval-context"
13183
- }, Th = {
13185
+ }, Eh = {
13184
13186
  key: 2,
13185
13187
  class: "approval-recommend"
13186
- }, Eh = { class: "approval-actions" }, Dh = ["onClick"], Oh = { class: "approval-head" }, kh = { class: "approval-title" }, Ah = {
13188
+ }, Dh = { class: "approval-actions" }, Oh = ["onClick"], kh = { class: "approval-head" }, Ah = { class: "approval-title" }, jh = {
13187
13189
  key: 0,
13188
13190
  class: "approval-args"
13189
- }, jh = { class: "approval-actions" }, Mh = {
13191
+ }, Mh = { class: "approval-actions" }, Nh = {
13190
13192
  key: 1,
13191
13193
  class: "conflict-bar"
13192
- }, Nh = { class: "conflict-head" }, Ph = { class: "conflict-title" }, Fh = { class: "conflict-detail" }, Ih = {
13194
+ }, Ph = { class: "conflict-head" }, Fh = { class: "conflict-title" }, Ih = { class: "conflict-detail" }, Lh = {
13193
13195
  key: 0,
13194
13196
  class: "conflict-diff"
13195
- }, Lh = { class: "conflict-diff-col" }, Rh = { class: "conflict-diff-pre" }, zh = { class: "conflict-diff-col" }, Bh = { class: "conflict-diff-pre" }, Vh = { class: "conflict-actions" }, Hh = { class: "chat-footer" }, Uh = {
13197
+ }, Rh = { class: "conflict-diff-col" }, zh = { class: "conflict-diff-pre" }, Bh = { class: "conflict-diff-col" }, Vh = { class: "conflict-diff-pre" }, Hh = { class: "conflict-actions" }, Uh = { class: "chat-footer" }, Wh = {
13196
13198
  key: 0,
13197
13199
  class: "cap-badge",
13198
13200
  title: "能力概览(MCP / 工具数)"
13199
- }, Wh = ["placeholder"], Gh = ["disabled", "title"], Kh = {
13201
+ }, Gh = ["placeholder"], Kh = ["disabled", "title"], qh = {
13200
13202
  key: 0,
13201
13203
  width: "16",
13202
13204
  height: "16",
13203
13205
  viewBox: "0 0 24 24",
13204
13206
  fill: "currentColor"
13205
- }, qh = {
13207
+ }, Jh = {
13206
13208
  key: 1,
13207
13209
  width: "18",
13208
13210
  height: "18",
@@ -13210,7 +13212,7 @@ app.mount('#app');
13210
13212
  fill: "none",
13211
13213
  stroke: "currentColor",
13212
13214
  "stroke-width": "2"
13213
- }, Jh = /*#__PURE__*/ Zd(/* @__PURE__ */ wi({
13215
+ }, Yh = /*#__PURE__*/ Qd(/* @__PURE__ */ wi({
13214
13216
  __name: "ChatDialog",
13215
13217
  props: {
13216
13218
  fetchResponse: {},
@@ -13337,19 +13339,22 @@ app.mount('#app');
13337
13339
  };
13338
13340
  });
13339
13341
  function ee(e) {
13340
- navigator.clipboard.writeText(e);
13342
+ navigator.clipboard.writeText(e).then(() => {
13343
+ R.value = !0, setTimeout(() => R.value = !1, 1500);
13344
+ });
13341
13345
  }
13342
- return (a, R) => (q(), J("div", { class: Se(["chat-dialog", { collapsed: !C.value }]) }, [
13343
- Y("div", Lm, [Y("div", Rm, [
13344
- R[19] ||= Y("span", { class: "header-icon" }, "🤖", -1),
13345
- Y("span", zm, V(e.title), 1),
13346
- W(n).loading ? (q(), J("span", Bm)) : X("", !0)
13347
- ]), Y("div", Vm, [
13346
+ let R = /* @__PURE__ */ fn(!1);
13347
+ return (a, z) => (q(), J("div", { class: Se(["chat-dialog", { collapsed: !C.value }]) }, [
13348
+ Y("div", Rm, [Y("div", zm, [
13349
+ z[19] ||= Y("span", { class: "header-icon" }, "🤖", -1),
13350
+ Y("span", Bm, V(e.title), 1),
13351
+ W(n).loading ? (q(), J("span", Vm)) : X("", !0)
13352
+ ]), Y("div", Hm, [
13348
13353
  Y("button", {
13349
13354
  class: Se(["action-btn debug-btn", { active: w.value }]),
13350
13355
  title: "日志 / 执行流程 / Agent 信息",
13351
- onClick: R[0] ||= (e) => w.value = !0
13352
- }, [R[20] ||= Y("svg", {
13356
+ onClick: z[0] ||= (e) => w.value = !0
13357
+ }, [z[20] ||= Y("svg", {
13353
13358
  width: "16",
13354
13359
  height: "16",
13355
13360
  viewBox: "0 0 24 24",
@@ -13360,38 +13365,38 @@ app.mount('#app');
13360
13365
  Y("path", { d: "M9 2v8l-3 3v2h12v-2l-3-3V2" }),
13361
13366
  Y("path", { d: "M9 2h6" }),
13362
13367
  Y("path", { d: "M9 18h6" })
13363
- ], -1), O.value ? (q(), J("span", Hm, V(e.debugLogs?.length), 1)) : X("", !0)], 2),
13368
+ ], -1), O.value ? (q(), J("span", Um, V(e.debugLogs?.length), 1)) : X("", !0)], 2),
13364
13369
  Y("button", {
13365
13370
  class: "action-btn",
13366
13371
  title: "清空对话",
13367
- onClick: R[1] ||= (...e) => W(o) && W(o)(...e),
13372
+ onClick: z[1] ||= (...e) => W(o) && W(o)(...e),
13368
13373
  disabled: !E.value
13369
- }, [...R[21] ||= [Y("svg", {
13374
+ }, [...z[21] ||= [Y("svg", {
13370
13375
  width: "16",
13371
13376
  height: "16",
13372
13377
  viewBox: "0 0 24 24",
13373
13378
  fill: "none",
13374
13379
  stroke: "currentColor",
13375
13380
  "stroke-width": "2"
13376
- }, [Y("polyline", { points: "3 6 5 6 21 6" }), Y("path", { d: "M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2" })], -1)]], 8, Um),
13381
+ }, [Y("polyline", { points: "3 6 5 6 21 6" }), Y("path", { d: "M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2" })], -1)]], 8, Wm),
13377
13382
  Y("button", {
13378
13383
  class: "action-btn",
13379
- onClick: R[2] ||= (e) => C.value = !C.value
13380
- }, [(q(), J("svg", Wm, [C.value ? (q(), J("path", Gm)) : (q(), J("path", Km))]))])
13384
+ onClick: z[2] ||= (e) => C.value = !C.value
13385
+ }, [(q(), J("svg", Gm, [C.value ? (q(), J("path", Km)) : (q(), J("path", qm))]))])
13381
13386
  ])]),
13382
13387
  zr(Y("div", {
13383
13388
  class: "chat-body",
13384
13389
  ref_key: "scrollContainer",
13385
13390
  ref: r,
13386
- onScroll: R[5] ||= (...e) => W(d) && W(d)(...e),
13387
- onWheel: R[6] ||= (...e) => W(f) && W(f)(...e)
13391
+ onScroll: z[5] ||= (...e) => W(d) && W(d)(...e),
13392
+ onWheel: z[6] ||= (...e) => W(f) && W(f)(...e)
13388
13393
  }, [
13389
- E.value ? X("", !0) : (q(), J("div", qm, [...R[22] ||= [Y("div", { class: "empty-icon" }, "💬", -1), Y("p", null, "有什么可以帮你的?", -1)]])),
13394
+ E.value ? X("", !0) : (q(), J("div", Jm, [...z[22] ||= [Y("div", { class: "empty-icon" }, "💬", -1), Y("p", null, "有什么可以帮你的?", -1)]])),
13390
13395
  (q(!0), J(K, null, Xi(W(n).messages, (t, r) => (q(), J("div", {
13391
13396
  key: r,
13392
13397
  class: Se(["message-row", t.role]),
13393
13398
  "data-msg-idx": r
13394
- }, [e.showAvatar ? (q(), J("div", Ym, V(t.role === "user" ? "👤" : "🤖"), 1)) : X("", !0), Y("div", Xm, [
13399
+ }, [e.showAvatar ? (q(), J("div", Xm, V(t.role === "user" ? "👤" : "🤖"), 1)) : X("", !0), Y("div", Zm, [
13395
13400
  t.role === "assistant" && t.reasoning ? (q(), J("div", {
13396
13401
  key: 0,
13397
13402
  class: Se(["reasoning-block", { expanded: T.value[r] }])
@@ -13399,57 +13404,57 @@ app.mount('#app');
13399
13404
  class: "reasoning-header",
13400
13405
  onClick: (e) => k(r)
13401
13406
  }, [
13402
- R[23] ||= Y("span", { class: "reasoning-icon" }, "🧠", -1),
13403
- R[24] ||= Y("span", { class: "reasoning-title" }, "思考过程", -1),
13404
- Y("span", Qm, V(T.value[r] ? "▾" : "▸"), 1)
13405
- ], 8, Zm), T.value[r] ? (q(), J("div", $m, V(t.reasoning), 1)) : X("", !0)], 2)) : X("", !0),
13406
- t.role === "assistant" && t.steps && t.steps.length ? (q(), J("div", eh, [(q(!0), J(K, null, Xi(j(t.steps), (e, t) => (q(), J("div", {
13407
+ z[23] ||= Y("span", { class: "reasoning-icon" }, "🧠", -1),
13408
+ z[24] ||= Y("span", { class: "reasoning-title" }, "思考过程", -1),
13409
+ Y("span", $m, V(T.value[r] ? "▾" : "▸"), 1)
13410
+ ], 8, Qm), T.value[r] ? (q(), J("div", eh, V(t.reasoning), 1)) : X("", !0)], 2)) : X("", !0),
13411
+ t.role === "assistant" && t.steps && t.steps.length ? (q(), J("div", th, [(q(!0), J(K, null, Xi(j(t.steps), (e, t) => (q(), J("div", {
13407
13412
  key: t,
13408
13413
  class: "step-item"
13409
- }, [Y("div", th, [
13410
- Y("span", nh, V(M(e.status)), 1),
13411
- Y("span", rh, V(e.name), 1),
13412
- e.count > 1 ? (q(), J("span", ih, "×" + V(e.count), 1)) : X("", !0),
13413
- e.status === "running" ? (q(), J("span", ah, "执行中…")) : X("", !0)
13414
- ]), e.children && e.children.length ? (q(), J("div", oh, [R[25] ||= Y("div", { class: "step-children-label" }, "🧬 子 agent 进度", -1), (q(!0), J(K, null, Xi(e.children, (e, t) => (q(), J("div", {
13414
+ }, [Y("div", nh, [
13415
+ Y("span", rh, V(M(e.status)), 1),
13416
+ Y("span", ih, V(e.name), 1),
13417
+ e.count > 1 ? (q(), J("span", ah, "×" + V(e.count), 1)) : X("", !0),
13418
+ e.status === "running" ? (q(), J("span", oh, "执行中…")) : X("", !0)
13419
+ ]), e.children && e.children.length ? (q(), J("div", sh, [z[25] ||= Y("div", { class: "step-children-label" }, "🧬 子 agent 进度", -1), (q(!0), J(K, null, Xi(e.children, (e, t) => (q(), J("div", {
13415
13420
  key: t,
13416
13421
  class: "step-child"
13417
13422
  }, [
13418
- Y("span", sh, V(A(e)), 1),
13419
- Y("span", ch, V(e.name), 1),
13420
- e.status === "running" ? (q(), J("span", lh, "…")) : X("", !0)
13423
+ Y("span", ch, V(A(e)), 1),
13424
+ Y("span", lh, V(e.name), 1),
13425
+ e.status === "running" ? (q(), J("span", uh, "…")) : X("", !0)
13421
13426
  ]))), 128))])) : X("", !0)]))), 128))])) : X("", !0),
13422
13427
  Y("div", { class: Se(["message-bubble", { typing: N(r) }]) }, [N(r) ? (q(), J(K, { key: 0 }, [e.showTyping ? (q(), J(K, { key: 0 }, [
13423
- R[26] ||= Y("span", { class: "dot" }, null, -1),
13424
- R[27] ||= Y("span", { class: "dot" }, null, -1),
13425
- R[28] ||= Y("span", { class: "dot" }, null, -1)
13426
- ], 64)) : (q(), J("span", uh, "思考中…"))], 64)) : (q(), J(K, { key: 1 }, [t.role === "assistant" ? (q(), Ko(ef, {
13428
+ z[26] ||= Y("span", { class: "dot" }, null, -1),
13429
+ z[27] ||= Y("span", { class: "dot" }, null, -1),
13430
+ z[28] ||= Y("span", { class: "dot" }, null, -1)
13431
+ ], 64)) : (q(), J("span", dh, "思考中…"))], 64)) : (q(), J(K, { key: 1 }, [t.role === "assistant" ? (q(), Ko(tf, {
13427
13432
  key: 0,
13428
13433
  content: t.content
13429
13434
  }, null, 8, ["content"])) : (q(), J(K, { key: 1 }, [is(V(t.content), 1)], 64))], 64))], 2),
13430
- t.role === "assistant" && W(n).loading && r === W(n).messages.length - 1 && t.content ? (q(), J("span", dh)) : X("", !0),
13431
- Y("div", fh, V(I(t.timestamp)), 1),
13432
- t.role === "assistant" && t.content && !W(n).loading && r === W(n).messages.length - 1 ? (q(), J("div", ph, [Y("button", {
13435
+ t.role === "assistant" && W(n).loading && r === W(n).messages.length - 1 && t.content ? (q(), J("span", fh)) : X("", !0),
13436
+ Y("div", ph, V(I(t.timestamp)), 1),
13437
+ t.role === "assistant" && t.content && !W(n).loading && r === W(n).messages.length - 1 ? (q(), J("div", mh, [Y("button", {
13433
13438
  class: "msg-action-btn",
13434
- title: "复制",
13439
+ title: R.value ? "已复制" : "复制",
13435
13440
  onClick: (e) => ee(t.content)
13436
- }, "📋 复制", 8, mh), Y("button", {
13441
+ }, V(R.value ? "✓ 已复制" : "📋 复制"), 9, hh), Y("button", {
13437
13442
  class: "msg-action-btn",
13438
13443
  title: "重新生成",
13439
- onClick: R[3] ||= (...e) => W(l) && W(l)(...e)
13444
+ onClick: z[3] ||= (...e) => W(l) && W(l)(...e)
13440
13445
  }, "🔄 重新生成")])) : X("", !0)
13441
- ])], 10, Jm))), 128)),
13442
- W(n).loading && W(n).messages[W(n).messages.length - 1]?.role !== "assistant" ? (q(), J("div", hh, [e.showAvatar ? (q(), J("div", gh, "🤖")) : X("", !0), Y("div", _h, [Y("div", vh, [e.showTyping ? (q(), J(K, { key: 0 }, [
13443
- R[29] ||= Y("span", { class: "dot" }, null, -1),
13444
- R[30] ||= Y("span", { class: "dot" }, null, -1),
13445
- R[31] ||= Y("span", { class: "dot" }, null, -1)
13446
- ], 64)) : (q(), J("span", yh, "思考中…"))])])])) : X("", !0),
13447
- W(n).error ? (q(), J("div", bh, [
13448
- Y("span", xh, V(W(n).error), 1),
13446
+ ])], 10, Ym))), 128)),
13447
+ W(n).loading && W(n).messages[W(n).messages.length - 1]?.role !== "assistant" ? (q(), J("div", gh, [e.showAvatar ? (q(), J("div", _h, "🤖")) : X("", !0), Y("div", vh, [Y("div", yh, [e.showTyping ? (q(), J(K, { key: 0 }, [
13448
+ z[29] ||= Y("span", { class: "dot" }, null, -1),
13449
+ z[30] ||= Y("span", { class: "dot" }, null, -1),
13450
+ z[31] ||= Y("span", { class: "dot" }, null, -1)
13451
+ ], 64)) : (q(), J("span", bh, "思考中…"))])])])) : X("", !0),
13452
+ W(n).error ? (q(), J("div", xh, [
13453
+ Y("span", Sh, V(W(n).error), 1),
13449
13454
  D.value ? (q(), J("button", {
13450
13455
  key: 0,
13451
13456
  class: "retry-btn",
13452
- onClick: R[4] ||= (...e) => W(c) && W(c)(...e)
13457
+ onClick: z[4] ||= (...e) => W(c) && W(c)(...e)
13453
13458
  }, "重试")) : X("", !0),
13454
13459
  b.value ? (q(), J("button", {
13455
13460
  key: 1,
@@ -13459,74 +13464,74 @@ app.mount('#app');
13459
13464
  }, "↩ 回退")) : X("", !0)
13460
13465
  ])) : X("", !0)
13461
13466
  ], 544), [[xc, C.value]]),
13462
- W(i) ? (q(), J("div", Sh, [_.value ? (q(), J(K, { key: 0 }, [
13463
- R[32] ||= Y("div", { class: "approval-head" }, [Y("span", { class: "approval-icon" }, "❓"), Y("span", { class: "approval-title" }, "AI 需要你确认")], -1),
13464
- W(i).args?.question ? (q(), J("div", Ch, V(W(i).args.question), 1)) : X("", !0),
13465
- W(i).args?.context ? (q(), J("div", wh, V(W(i).args.context), 1)) : X("", !0),
13466
- W(i).args?.recommendation ? (q(), J("div", Th, "💡 推荐:" + V(W(i).args.recommendation), 1)) : X("", !0),
13467
- Y("div", Eh, [Y("button", {
13467
+ W(i) ? (q(), J("div", Ch, [_.value ? (q(), J(K, { key: 0 }, [
13468
+ z[32] ||= Y("div", { class: "approval-head" }, [Y("span", { class: "approval-icon" }, "❓"), Y("span", { class: "approval-title" }, "AI 需要你确认")], -1),
13469
+ W(i).args?.question ? (q(), J("div", wh, V(W(i).args.question), 1)) : X("", !0),
13470
+ W(i).args?.context ? (q(), J("div", Th, V(W(i).args.context), 1)) : X("", !0),
13471
+ W(i).args?.recommendation ? (q(), J("div", Eh, "💡 推荐:" + V(W(i).args.recommendation), 1)) : X("", !0),
13472
+ Y("div", Dh, [Y("button", {
13468
13473
  class: "approval-deny",
13469
- onClick: R[7] ||= (e) => W(u)(!1)
13474
+ onClick: z[7] ||= (e) => W(u)(!1)
13470
13475
  }, "拒绝"), v.value.length ? (q(!0), J(K, { key: 0 }, Xi(v.value, (e) => (q(), J("button", {
13471
13476
  key: e,
13472
13477
  class: "approval-opt",
13473
13478
  onClick: (t) => W(u)(e)
13474
- }, V(e), 9, Dh))), 128)) : (q(), J("button", {
13479
+ }, V(e), 9, Oh))), 128)) : (q(), J("button", {
13475
13480
  key: 1,
13476
13481
  class: "approval-allow",
13477
- onClick: R[8] ||= (e) => W(u)(!0)
13482
+ onClick: z[8] ||= (e) => W(u)(!0)
13478
13483
  }, "允许"))])
13479
13484
  ], 64)) : (q(), J(K, { key: 1 }, [
13480
- Y("div", Oh, [
13481
- R[34] ||= Y("span", { class: "approval-icon" }, "✋", -1),
13482
- Y("span", kh, [R[33] ||= is("需确认工具调用:", -1), Y("code", null, V(W(i).toolName), 1)]),
13485
+ Y("div", kh, [
13486
+ z[34] ||= Y("span", { class: "approval-icon" }, "✋", -1),
13487
+ Y("span", Ah, [z[33] ||= is("需确认工具调用:", -1), Y("code", null, V(W(i).toolName), 1)]),
13483
13488
  p.value ? (q(), J("button", {
13484
13489
  key: 0,
13485
13490
  class: "approval-toggle",
13486
- onClick: R[9] ||= (e) => y.value = !y.value
13491
+ onClick: z[9] ||= (e) => y.value = !y.value
13487
13492
  }, V(y.value ? "收起参数" : "查看参数") + V(y.value ? " ▴" : " ▾"), 1)) : X("", !0)
13488
13493
  ]),
13489
- p.value && y.value ? (q(), J("pre", Ah, V(p.value), 1)) : X("", !0),
13490
- Y("div", jh, [Y("button", {
13494
+ p.value && y.value ? (q(), J("pre", jh, V(p.value), 1)) : X("", !0),
13495
+ Y("div", Mh, [Y("button", {
13491
13496
  class: "approval-deny",
13492
- onClick: R[10] ||= (e) => W(u)(!1)
13497
+ onClick: z[10] ||= (e) => W(u)(!1)
13493
13498
  }, "拒绝"), Y("button", {
13494
13499
  class: "approval-allow",
13495
- onClick: R[11] ||= (e) => W(u)(!0)
13500
+ onClick: z[11] ||= (e) => W(u)(!0)
13496
13501
  }, "允许")])
13497
13502
  ], 64))])) : X("", !0),
13498
- t.pendingConflict ? (q(), J("div", Mh, [
13499
- Y("div", Nh, [R[37] ||= Y("span", { class: "conflict-icon" }, "⚠️", -1), Y("span", Ph, [
13500
- R[35] ||= is("写入冲突:", -1),
13503
+ t.pendingConflict ? (q(), J("div", Nh, [
13504
+ Y("div", Ph, [z[37] ||= Y("span", { class: "conflict-icon" }, "⚠️", -1), Y("span", Fh, [
13505
+ z[35] ||= is("写入冲突:", -1),
13501
13506
  Y("code", null, V(t.pendingConflict.path), 1),
13502
- R[36] ||= is(" 已被外部修改", -1)
13507
+ z[36] ||= is(" 已被外部修改", -1)
13503
13508
  ])]),
13504
- Y("div", Fh, " AI 基于「读取时的旧值」准备" + V(t.pendingConflict.op === "delete" ? "删除" : "写入") + ",但该属性在你读取之后被外部代码/其他 agent/手动改过。 ", 1),
13509
+ Y("div", Ih, " AI 基于「读取时的旧值」准备" + V(t.pendingConflict.op === "delete" ? "删除" : "写入") + ",但该属性在你读取之后被外部代码/其他 agent/手动改过。 ", 1),
13505
13510
  Y("button", {
13506
13511
  class: "conflict-toggle",
13507
- onClick: R[12] ||= (e) => g.value = !g.value
13512
+ onClick: z[12] ||= (e) => g.value = !g.value
13508
13513
  }, V(g.value ? "收起对比" : "查看值对比") + V(g.value ? " ▴" : " ▾"), 1),
13509
- g.value ? (q(), J("div", Ih, [Y("div", Lh, [R[38] ||= Y("div", { class: "conflict-diff-label" }, "AI 想写的值", -1), Y("pre", Rh, V(m.value || "(delete 操作无值)"), 1)]), Y("div", zh, [R[39] ||= Y("div", { class: "conflict-diff-label" }, "外部改后的当前值", -1), Y("pre", Bh, V(h.value), 1)])])) : X("", !0),
13510
- Y("div", Vh, [
13514
+ g.value ? (q(), J("div", Lh, [Y("div", Rh, [z[38] ||= Y("div", { class: "conflict-diff-label" }, "AI 想写的值", -1), Y("pre", zh, V(m.value || "(delete 操作无值)"), 1)]), Y("div", Bh, [z[39] ||= Y("div", { class: "conflict-diff-label" }, "外部改后的当前值", -1), Y("pre", Vh, V(h.value), 1)])])) : X("", !0),
13515
+ Y("div", Hh, [
13511
13516
  Y("button", {
13512
13517
  class: "conflict-keep",
13513
- onClick: R[13] ||= (e) => t.onResolveConflict?.("keep_external"),
13518
+ onClick: z[13] ||= (e) => t.onResolveConflict?.("keep_external"),
13514
13519
  title: "不写入,保留外部修改后的值,AI 重新读取再改"
13515
13520
  }, "保留外部"),
13516
13521
  Y("button", {
13517
13522
  class: "conflict-overwrite",
13518
- onClick: R[14] ||= (e) => t.onResolveConflict?.("overwrite"),
13523
+ onClick: z[14] ||= (e) => t.onResolveConflict?.("overwrite"),
13519
13524
  title: "用 AI 的值覆盖外部修改"
13520
13525
  }, "强制覆盖"),
13521
13526
  Y("button", {
13522
13527
  class: "conflict-restore",
13523
- onClick: R[15] ||= (e) => t.onResolveConflict?.("restore"),
13528
+ onClick: z[15] ||= (e) => t.onResolveConflict?.("restore"),
13524
13529
  title: "回退到最近一次历史快照(agent 之前操作的检查点),撤销外部修改 + AI 不写入"
13525
13530
  }, "回退")
13526
13531
  ])
13527
13532
  ])) : X("", !0),
13528
- zr(Y("div", Hh, [
13529
- t.getInfo ? (q(), J("span", Uh, " 🔌" + V(L.value.mcp) + " · 🔧" + V(L.value.tools), 1)) : X("", !0),
13533
+ zr(Y("div", Uh, [
13534
+ t.getInfo ? (q(), J("span", Wh, " 🔌" + V(L.value.mcp) + " · 🔧" + V(L.value.tools), 1)) : X("", !0),
13530
13535
  b.value ? (q(), J("button", {
13531
13536
  key: 1,
13532
13537
  class: "undo-foot-btn",
@@ -13534,33 +13539,33 @@ app.mount('#app');
13534
13539
  onClick: x
13535
13540
  }, "↩ 回退")) : X("", !0),
13536
13541
  zr(Y("textarea", {
13537
- "onUpdate:modelValue": R[16] ||= (e) => S.value = e,
13542
+ "onUpdate:modelValue": z[16] ||= (e) => S.value = e,
13538
13543
  class: "chat-input",
13539
13544
  placeholder: e.placeholder,
13540
13545
  rows: "1",
13541
13546
  onKeydown: F
13542
- }, null, 40, Wh), [[rl, S.value]]),
13547
+ }, null, 40, Gh), [[rl, S.value]]),
13543
13548
  Y("button", {
13544
13549
  class: Se(["send-btn", { "stop-btn": W(n).loading }]),
13545
13550
  disabled: !W(n).loading && !S.value.trim(),
13546
13551
  title: W(n).loading ? "停止生成" : "发送",
13547
- onClick: R[17] ||= (e) => W(n).loading ? W(s)() : P()
13548
- }, [W(n).loading ? (q(), J("svg", Kh, [...R[40] ||= [Y("rect", {
13552
+ onClick: z[17] ||= (e) => W(n).loading ? W(s)() : P()
13553
+ }, [W(n).loading ? (q(), J("svg", qh, [...z[40] ||= [Y("rect", {
13549
13554
  x: "6",
13550
13555
  y: "6",
13551
13556
  width: "12",
13552
13557
  height: "12",
13553
13558
  rx: "2"
13554
- }, null, -1)]])) : (q(), J("svg", qh, [...R[41] ||= [Y("line", {
13559
+ }, null, -1)]])) : (q(), J("svg", Jh, [...z[41] ||= [Y("line", {
13555
13560
  x1: "22",
13556
13561
  y1: "2",
13557
13562
  x2: "11",
13558
13563
  y2: "13"
13559
- }, null, -1), Y("polygon", { points: "22 2 15 22 11 13 2 9 22 2" }, null, -1)]]))], 10, Gh)
13564
+ }, null, -1), Y("polygon", { points: "22 2 15 22 11 13 2 9 22 2" }, null, -1)]]))], 10, Kh)
13560
13565
  ], 512), [[xc, C.value]]),
13561
- $o(Im, {
13566
+ $o(Lm, {
13562
13567
  visible: w.value,
13563
- "onUpdate:visible": R[18] ||= (e) => w.value = e,
13568
+ "onUpdate:visible": z[18] ||= (e) => w.value = e,
13564
13569
  logs: e.debugLogs,
13565
13570
  "get-info": t.getInfo
13566
13571
  }, null, 8, [
@@ -13570,15 +13575,15 @@ app.mount('#app');
13570
13575
  ])
13571
13576
  ], 2));
13572
13577
  }
13573
- }), [["__scopeId", "data-v-fef90945"]]);
13574
- function Yh(e) {
13578
+ }), [["__scopeId", "data-v-ee351851"]]);
13579
+ function Xh(e) {
13575
13580
  return e.replace(/^\/+/, "").replace(/\/+/g, "/");
13576
13581
  }
13577
- function Xh(e, t) {
13582
+ function Zh(e, t) {
13578
13583
  let n = t.threshold ?? 6e3;
13579
13584
  if (e.length <= n) return e;
13580
13585
  if (t.vfsAvailable && t.files) {
13581
- let n = Math.random().toString(36).slice(2, 10), r = `large_results/${t.toolName}-${n}.txt`, i = Yh(r);
13586
+ let n = Math.random().toString(36).slice(2, 10), r = `large_results/${t.toolName}-${n}.txt`, i = Xh(r);
13582
13587
  return t.files[i] = {
13583
13588
  content: e,
13584
13589
  updatedAt: Date.now()
@@ -13593,7 +13598,7 @@ function Xh(e, t) {
13593
13598
  }
13594
13599
  //#endregion
13595
13600
  //#region src/core/utils/pool.ts
13596
- async function Zh(e, t, n, r) {
13601
+ async function Qh(e, t, n, r) {
13597
13602
  let i = Array(e.length), a = Math.max(1, t);
13598
13603
  if (a === 1) {
13599
13604
  for (let t = 0; t < e.length && !r?.aborted; t++) i[t] = await n(e[t], t);
@@ -13610,7 +13615,7 @@ async function Zh(e, t, n, r) {
13610
13615
  }
13611
13616
  //#endregion
13612
13617
  //#region src/core/utils/modelCaps.ts
13613
- var Qh = [
13618
+ var $h = [
13614
13619
  {
13615
13620
  pattern: /deepseek-v4/i,
13616
13621
  caps: {
@@ -13772,34 +13777,34 @@ var Qh = [
13772
13777
  maxOutputTokens: 4096
13773
13778
  }
13774
13779
  }
13775
- ], $h = {
13780
+ ], eg = {
13776
13781
  contextWindow: 32768,
13777
13782
  maxOutputTokens: 4096
13778
13783
  };
13779
- function eg(e = {}) {
13784
+ function tg(e = {}) {
13780
13785
  let t = (() => {
13781
- if (e.model) return Qh.find((t) => t.pattern.test(e.model))?.caps;
13786
+ if (e.model) return $h.find((t) => t.pattern.test(e.model))?.caps;
13782
13787
  })();
13783
13788
  return {
13784
- contextWindow: e.contextWindow ?? t?.contextWindow ?? $h.contextWindow,
13785
- maxOutputTokens: e.maxOutputTokens ?? t?.maxOutputTokens ?? $h.maxOutputTokens
13789
+ contextWindow: e.contextWindow ?? t?.contextWindow ?? eg.contextWindow,
13790
+ maxOutputTokens: e.maxOutputTokens ?? t?.maxOutputTokens ?? eg.maxOutputTokens
13786
13791
  };
13787
13792
  }
13788
- function tg(e) {
13793
+ function ng(e) {
13789
13794
  if (!e) return 0;
13790
13795
  let t = (e.match(/[\u4e00-\u9fff]/g) || []).length, n = e.length - t;
13791
13796
  return Math.ceil(t * 1.5 + n * .25);
13792
13797
  }
13793
- function ng(e) {
13798
+ function rg(e) {
13794
13799
  return Math.max(2e3, Math.min(2e4, Math.round(e * .035)));
13795
13800
  }
13796
- function rg(e) {
13797
- let t = ng(e);
13801
+ function ig(e) {
13802
+ let t = rg(e);
13798
13803
  return Math.min(2e5, Math.max(t, Math.round(e * .7)));
13799
13804
  }
13800
13805
  //#endregion
13801
13806
  //#region src/core/harness/state.ts
13802
- function ig() {
13807
+ function ag() {
13803
13808
  return {
13804
13809
  messages: [],
13805
13810
  todos: [],
@@ -13812,42 +13817,42 @@ function ig() {
13812
13817
  }
13813
13818
  //#endregion
13814
13819
  //#region src/core/harness/middleware.ts
13815
- function ag(e, t) {
13820
+ function og(e, t) {
13816
13821
  return t ? {
13817
13822
  ...e,
13818
13823
  ...t
13819
13824
  } : e;
13820
13825
  }
13821
- async function og(e, t) {
13826
+ async function sg(e, t) {
13822
13827
  let n = t;
13823
- for (let t of e) t.beforeAgent && (n = ag(n, await t.beforeAgent(n)));
13828
+ for (let t of e) t.beforeAgent && (n = og(n, await t.beforeAgent(n)));
13824
13829
  return n;
13825
13830
  }
13826
- function sg(e, t) {
13831
+ function cg(e, t) {
13827
13832
  let n = t.state;
13828
- for (let r of e) r.beforeModel && (n = ag(n, r.beforeModel({
13833
+ for (let r of e) r.beforeModel && (n = og(n, r.beforeModel({
13829
13834
  messages: t.messages,
13830
13835
  state: n
13831
13836
  })));
13832
13837
  return n;
13833
13838
  }
13834
- function cg(e, t, n) {
13839
+ function lg(e, t, n) {
13835
13840
  let r = n;
13836
13841
  for (let n = e.length - 1; n >= 0; n--) {
13837
13842
  let i = e[n];
13838
- i.afterModel && (r = ag(r, i.afterModel(t, r)));
13843
+ i.afterModel && (r = og(r, i.afterModel(t, r)));
13839
13844
  }
13840
13845
  return r;
13841
13846
  }
13842
- async function lg(e, t) {
13847
+ async function ug(e, t) {
13843
13848
  let n = t;
13844
13849
  for (let t = e.length - 1; t >= 0; t--) {
13845
13850
  let r = e[t];
13846
- r.afterAgent && (n = ag(n, await r.afterAgent(n)));
13851
+ r.afterAgent && (n = og(n, await r.afterAgent(n)));
13847
13852
  }
13848
13853
  return n;
13849
13854
  }
13850
- async function ug(e, t) {
13855
+ async function dg(e, t) {
13851
13856
  let n = [];
13852
13857
  for (let r of e) {
13853
13858
  if (!r.beforeReturn) continue;
@@ -13856,19 +13861,19 @@ async function ug(e, t) {
13856
13861
  }
13857
13862
  return n.length ? n.join("\n\n") : null;
13858
13863
  }
13859
- function dg(e, t) {
13864
+ function fg(e, t) {
13860
13865
  return e.reduceRight((e, t) => (n) => t.wrapModelCall ? t.wrapModelCall(n, e) : e(n), t);
13861
13866
  }
13862
- function fg(e, t) {
13867
+ function pg(e, t) {
13863
13868
  return e.reduceRight((e, t) => (n) => t.wrapToolCall ? t.wrapToolCall(n, e) : e(n), t);
13864
13869
  }
13865
13870
  //#endregion
13866
13871
  //#region src/core/harness/createAgent.ts
13867
- function pg(e) {
13872
+ function mg(e) {
13868
13873
  return e ? /<|tool_calls|>|<||[^>]*tool_call|<invoke\s+name=|<\/?tool_call>|<function_call>/i.test(e) : !1;
13869
13874
  }
13870
- var mg = 10, hg = 300, gg = 6e3;
13871
- function _g(e, t) {
13875
+ var hg = 10, gg = 300, _g = 6e3;
13876
+ function vg(e, t) {
13872
13877
  let n = e.reduce((e, t) => e + (typeof t.content == "string" ? t.content.length : JSON.stringify(t.content).length), 0);
13873
13878
  if (n <= t) return e;
13874
13879
  let r = 0, i = n - t, a = Math.max(100, Math.min(400, Math.round(t / 500)));
@@ -13883,29 +13888,29 @@ function _g(e, t) {
13883
13888
  });
13884
13889
  });
13885
13890
  }
13886
- function vg(e) {
13887
- let { apiKey: t, baseUrl: n, model: c = "gpt-3.5-turbo", temperature: l = .7, maxTokens: u, systemPrompt: d, tools: f = [], middleware: p = [], maxToolRounds: m = mg, maxRetries: h = 2, retryDelayMs: g = 500, maxParallelTools: _ = 1, maxVerifyAttempts: v = 0, onLog: y, debug: b = !1 } = e, x = eg({
13891
+ function yg(e) {
13892
+ let { apiKey: t, baseUrl: n, model: c = "gpt-3.5-turbo", temperature: l = .7, maxTokens: u, systemPrompt: d, tools: f = [], middleware: p = [], maxToolRounds: m = hg, maxRetries: h = 2, retryDelayMs: g = 500, maxParallelTools: _ = 1, maxVerifyAttempts: v = 0, onLog: y, debug: b = !1 } = e, x = tg({
13888
13893
  model: c,
13889
13894
  contextWindow: e.contextWindow,
13890
13895
  maxOutputTokens: e.maxOutputTokens
13891
- }), S = u ?? x.maxOutputTokens, C = ng(x.contextWindow), w = rg(x.contextWindow), T = /* @__PURE__ */ pn([]);
13896
+ }), S = u ?? x.maxOutputTokens, C = rg(x.contextWindow), w = ig(x.contextWindow), T = /* @__PURE__ */ pn([]);
13892
13897
  function E(e, t) {
13893
13898
  let n = {
13894
13899
  timestamp: Date.now(),
13895
13900
  type: e,
13896
13901
  data: t
13897
13902
  };
13898
- T.value.push(n), T.value.length > hg && T.value.splice(0, T.value.length - hg), gn(T), y?.(n), b && console.log(`%c[Agent] ${e}`, "color:#667eea;font-weight:bold", t);
13903
+ T.value.push(n), T.value.length > gg && T.value.splice(0, T.value.length - gg), gn(T), y?.(n), b && console.log(`%c[Agent] ${e}`, "color:#667eea;font-weight:bold", t);
13899
13904
  }
13900
13905
  let D = (e) => {
13901
- T.value.push(e), T.value.length > hg && T.value.splice(0, T.value.length - hg), gn(T);
13906
+ T.value.push(e), T.value.length > gg && T.value.splice(0, T.value.length - gg), gn(T);
13902
13907
  }, O = [...p.flatMap((e) => e.tools || []), ...f], k = e.llm ?? new s({
13903
13908
  apiKey: t,
13904
13909
  model: c,
13905
13910
  temperature: l,
13906
13911
  maxTokens: S,
13907
13912
  configuration: n ? { baseURL: n } : void 0
13908
- }), A = O.length > 0 ? k.bindTools?.(O) ?? k : k, j = ig();
13913
+ }), A = O.length > 0 ? k.bindTools?.(O) ?? k : k, j = ag();
13909
13914
  function M() {
13910
13915
  let e = [d || "你是一个智能助手。"];
13911
13916
  for (let t of p) if (t.augmentPrompt) {
@@ -13980,7 +13985,7 @@ function vg(e) {
13980
13985
  };
13981
13986
  try {
13982
13987
  let n = await t.invoke(e.args), r = typeof n == "string" ? n : JSON.stringify(n);
13983
- return r = Xh(r, {
13988
+ return r = Zh(r, {
13984
13989
  files: e.state.files,
13985
13990
  vfsAvailable: O.some((e) => e.name === "vfs_read"),
13986
13991
  toolName: e.name,
@@ -14001,12 +14006,12 @@ function vg(e) {
14001
14006
  return e instanceof i ? "human" : e instanceof r ? "ai" : e instanceof a ? "system" : e instanceof o ? "tool" : "unknown";
14002
14007
  }
14003
14008
  function ee(e, t) {
14004
- return _g(e, t);
14009
+ return vg(e, t);
14005
14010
  }
14006
14011
  function R(e) {
14007
14012
  return e.map((e) => {
14008
14013
  let t = L(e), n = { role: t === "human" ? "user" : t === "ai" ? "assistant" : t }, r = typeof e.content == "string" ? e.content : JSON.stringify(e.content);
14009
- r && (n.content = r.length > gg ? r.slice(0, gg) + `…(截断 ${r.length - gg} 字符)` : r);
14014
+ r && (n.content = r.length > _g ? r.slice(0, _g) + `…(截断 ${r.length - _g} 字符)` : r);
14010
14015
  let i = e.tool_calls;
14011
14016
  Array.isArray(i) && i.length && (n.tool_calls = i.map((e) => ({
14012
14017
  id: e.id,
@@ -14020,8 +14025,8 @@ function vg(e) {
14020
14025
  return a && (n.tool_call_id = a), n;
14021
14026
  });
14022
14027
  }
14023
- async function te(e, t, n) {
14024
- T.value = [], j = ig(), j.messages = e, j = await og(p, j);
14028
+ async function z(e, t, n) {
14029
+ T.value = [], j = ag(), j.messages = e, j = await sg(p, j);
14025
14030
  let r = e;
14026
14031
  for (let e of p) if (e.compressInput) {
14027
14032
  let t = await e.compressInput(r);
@@ -14036,13 +14041,13 @@ function vg(e) {
14036
14041
  tools: O.map((e) => e.name),
14037
14042
  middleware: p.map((e) => e.name)
14038
14043
  });
14039
- let l = dg(p, (e) => F(e, t, n)), u = fg(p, I), d = 0, f = null, h = 0;
14044
+ let l = fg(p, (e) => F(e, t, n)), u = pg(p, I), d = 0, f = null, h = 0;
14040
14045
  try {
14041
14046
  for (; d < m && !n?.aborted;) {
14042
14047
  t({
14043
14048
  type: "round_start",
14044
14049
  round: d + 1
14045
- }), j = sg(p, {
14050
+ }), j = cg(p, {
14046
14051
  messages: s,
14047
14052
  state: j
14048
14053
  }), s = P(s), s = ee(s, w), E("llm_request", {
@@ -14059,12 +14064,12 @@ function vg(e) {
14059
14064
  round: d + 1,
14060
14065
  content: e.content,
14061
14066
  toolCalls: e.toolCalls
14062
- }), j = cg(p, e, j), e.aborted) return t({
14067
+ }), j = lg(p, e, j), e.aborted) return t({
14063
14068
  type: "done",
14064
14069
  content: e.content
14065
14070
  }), e.content;
14066
14071
  if (!e.toolCalls.length) {
14067
- if (h < 2 && pg(e.content)) {
14072
+ if (h < 2 && mg(e.content)) {
14068
14073
  h += 1, E("middleware", {
14069
14074
  stage: "format_retry",
14070
14075
  attempt: h,
@@ -14073,7 +14078,7 @@ function vg(e) {
14073
14078
  continue;
14074
14079
  }
14075
14080
  if (v > 0 && j.verifyAttempts < v) {
14076
- let t = await ug(p, {
14081
+ let t = await dg(p, {
14077
14082
  messages: s,
14078
14083
  state: j,
14079
14084
  response: e,
@@ -14108,7 +14113,7 @@ function vg(e) {
14108
14113
  logSink: D
14109
14114
  }
14110
14115
  };
14111
- }), a = await Zh(r, _, async (e) => {
14116
+ }), a = await Qh(r, _, async (e) => {
14112
14117
  if (n?.aborted) return;
14113
14118
  t({
14114
14119
  type: "tool_call",
@@ -14179,21 +14184,21 @@ function vg(e) {
14179
14184
  }), r;
14180
14185
  } finally {
14181
14186
  try {
14182
- await lg(p, j);
14187
+ await ug(p, j);
14183
14188
  } catch (e) {
14184
14189
  console.warn("[Agent] afterAgent 清理出错(已忽略):", e);
14185
14190
  }
14186
14191
  }
14187
14192
  }
14188
- async function ne(e, t) {
14193
+ async function te(e, t) {
14189
14194
  let n = "";
14190
- return await te(e, (e) => {
14195
+ return await z(e, (e) => {
14191
14196
  e.type === "done" && (n = e.content);
14192
14197
  }, t), n;
14193
14198
  }
14194
14199
  return {
14195
- invoke: ne,
14196
- stream: te,
14200
+ invoke: te,
14201
+ stream: z,
14197
14202
  getState: () => j,
14198
14203
  allTools: O,
14199
14204
  debugLogs: T
@@ -14201,14 +14206,14 @@ function vg(e) {
14201
14206
  }
14202
14207
  //#endregion
14203
14208
  //#region src/core/harness/todos.ts
14204
- function yg(e) {
14209
+ function bg(e) {
14205
14210
  if (e.length) return [
14206
14211
  "## 当前任务清单(用 write_todos 工具管理)",
14207
14212
  e.map((e, t) => `${t + 1}. [${e.status}] ${e.content}`).join("\n"),
14208
14213
  "规则:开始前用 write_todos 拆解;首个任务标 in_progress;完成一个立即标 completed(不批量);保持至少一个 in_progress 直到全部完成。"
14209
14214
  ].join("\n");
14210
14215
  }
14211
- function bg(e = []) {
14216
+ function xg(e = []) {
14212
14217
  let r = e.map((e) => ({ ...e })), i = 0;
14213
14218
  return {
14214
14219
  name: "todos",
@@ -14226,7 +14231,7 @@ function bg(e = []) {
14226
14231
  })],
14227
14232
  beforeAgent: () => ({ todos: r }),
14228
14233
  beforeModel: () => (i = 0, { todos: r }),
14229
- augmentPrompt: () => yg(r),
14234
+ augmentPrompt: () => bg(r),
14230
14235
  wrapToolCall: async (e, t) => e.name === "write_todos" && (i++, i > 1) ? {
14231
14236
  content: "错误:write_todos 不应在一轮中并行多次调用(整表替换语义)。请串行使用。",
14232
14237
  status: "error"
@@ -14238,18 +14243,18 @@ function bg(e = []) {
14238
14243
  }
14239
14244
  //#endregion
14240
14245
  //#region src/core/harness/skills.ts
14241
- function xg(e) {
14246
+ function Sg(e) {
14242
14247
  return e;
14243
14248
  }
14244
- var Sg = /^https?:\/\//i;
14245
- function Cg(e) {
14246
- return Sg.test(e) || e.startsWith("//") ? "http" : "vfs";
14247
- }
14249
+ var Cg = /^https?:\/\//i;
14248
14250
  function wg(e) {
14251
+ return Cg.test(e) || e.startsWith("//") ? "http" : "vfs";
14252
+ }
14253
+ function Tg(e) {
14249
14254
  return e.replace(/^vfs:\/\//, "").replace(/^\/+/, "").replace(/\/+/g, "/");
14250
14255
  }
14251
- async function Tg(e, t) {
14252
- if (Cg(e) === "http") try {
14256
+ async function Eg(e, t) {
14257
+ if (wg(e) === "http") try {
14253
14258
  let t = await fetch(e);
14254
14259
  return t.ok ? {
14255
14260
  ok: !0,
@@ -14272,7 +14277,7 @@ async function Tg(e, t) {
14272
14277
  ok: !1,
14273
14278
  error: `skill 文档 ${e} 是 vfs 路径,但 vfs 未启用`
14274
14279
  };
14275
- let n = t(wg(e));
14280
+ let n = t(Tg(e));
14276
14281
  return n == null ? {
14277
14282
  ok: !1,
14278
14283
  error: `未找到 vfs 文档 ${e}(可用 vfs_ls 查看)`
@@ -14281,14 +14286,14 @@ async function Tg(e, t) {
14281
14286
  content: n
14282
14287
  };
14283
14288
  }
14284
- function Eg(e) {
14289
+ function Dg(e) {
14285
14290
  if (e.length) return [
14286
14291
  "## 可用 Skills(渐进式披露)",
14287
14292
  e.map((e) => `- ${e.name}: ${e.description}`).join("\n"),
14288
14293
  "当某 skill 适用时,先调用 load_skill(name) 加载其完整指令,再按指令执行。不要凭记忆猜测 skill 内容。"
14289
14294
  ].join("\n");
14290
14295
  }
14291
- function Dg(e, r) {
14296
+ function Og(e, r) {
14292
14297
  let i = new Map(e.map((e) => [e.name, e])), a = /* @__PURE__ */ new Set();
14293
14298
  return {
14294
14299
  name: "skills",
@@ -14298,7 +14303,7 @@ function Dg(e, r) {
14298
14303
  if (a.has(e)) return `skill "${e}" 已在本轮加载,无需重复。`;
14299
14304
  let n;
14300
14305
  if (t.doc) {
14301
- let i = await Tg(t.doc, r?.readVfs);
14306
+ let i = await Eg(t.doc, r?.readVfs);
14302
14307
  if (!i.ok) return `加载 skill "${e}" 文档失败:${i.error}`;
14303
14308
  n = i.content;
14304
14309
  } else if (t.getContent) n = await t.getContent();
@@ -14316,13 +14321,13 @@ function Dg(e, r) {
14316
14321
  })),
14317
14322
  skillsLoaded: []
14318
14323
  }),
14319
- augmentPrompt: () => Eg(e),
14324
+ augmentPrompt: () => Dg(e),
14320
14325
  afterModel: () => ({ skillsLoaded: [...a] })
14321
14326
  };
14322
14327
  }
14323
14328
  //#endregion
14324
14329
  //#region src/core/harness/memory.ts
14325
- function Og(e = "") {
14330
+ function kg(e = "") {
14326
14331
  let t = e;
14327
14332
  return {
14328
14333
  name: "memory",
@@ -14335,12 +14340,12 @@ function Og(e = "") {
14335
14340
  }
14336
14341
  //#endregion
14337
14342
  //#region src/core/harness/permissions.ts
14338
- var kg = /* @__PURE__ */ new Set([
14343
+ var Ag = /* @__PURE__ */ new Set([
14339
14344
  "set_window_prop",
14340
14345
  "delete_window_prop",
14341
14346
  "vfs_write",
14342
14347
  "vfs_edit"
14343
- ]), Ag = /* @__PURE__ */ new Set([
14348
+ ]), jg = /* @__PURE__ */ new Set([
14344
14349
  "get_window_prop",
14345
14350
  "describe_window_prop",
14346
14351
  "list_window_props",
@@ -14349,7 +14354,7 @@ var kg = /* @__PURE__ */ new Set([
14349
14354
  "vfs_glob",
14350
14355
  "vfs_grep"
14351
14356
  ]);
14352
- function jg(e) {
14357
+ function Mg(e) {
14353
14358
  let t = "";
14354
14359
  for (let n = 0; n < e.length; n++) {
14355
14360
  let r = e[n];
@@ -14357,16 +14362,16 @@ function jg(e) {
14357
14362
  }
14358
14363
  return RegExp("^" + t + "$");
14359
14364
  }
14360
- function Mg(e, t, n) {
14361
- for (let r of e) if (r.operations.includes(t) && r.scopes.some((e) => jg(e).test(n))) return r.mode;
14365
+ function Ng(e, t, n) {
14366
+ for (let r of e) if (r.operations.includes(t) && r.scopes.some((e) => Mg(e).test(n))) return r.mode;
14362
14367
  return "allow";
14363
14368
  }
14364
- function Ng(e) {
14369
+ function Pg(e) {
14365
14370
  return {
14366
14371
  name: "permissions",
14367
14372
  wrapToolCall: async (t, n) => {
14368
- let r = kg.has(t.name) ? "write" : Ag.has(t.name) ? "read" : null, i = t.args?.path || "";
14369
- return r && i && Mg(e, r, i) === "deny" ? {
14373
+ let r = Ag.has(t.name) ? "write" : jg.has(t.name) ? "read" : null, i = t.args?.path || "";
14374
+ return r && i && Ng(e, r, i) === "deny" ? {
14370
14375
  content: `权限拒绝:${r} 操作 "${i}" 被 permissions 规则禁止。`,
14371
14376
  status: "error"
14372
14377
  } : n(t);
@@ -14375,7 +14380,7 @@ function Ng(e) {
14375
14380
  }
14376
14381
  //#endregion
14377
14382
  //#region src/core/harness/approval.ts
14378
- function Pg(e = {}) {
14383
+ function Fg(e = {}) {
14379
14384
  let t = (t, n) => e.confirm ? !!e.confirm(t, n) : e.tools === void 0 || e.tools.includes(t);
14380
14385
  return {
14381
14386
  name: "approval",
@@ -14409,15 +14414,15 @@ function Pg(e = {}) {
14409
14414
  }
14410
14415
  //#endregion
14411
14416
  //#region src/core/harness/humanConfirm.ts
14412
- var Fg = "request_human_confirmation", Ig = t.object({
14417
+ var Ig = "request_human_confirmation", Lg = t.object({
14413
14418
  question: t.string().describe("要征询用户的问题/方案描述。清晰具体:说明当前情况、为什么需要确认、确认什么。"),
14414
14419
  options: t.array(t.string()).optional().describe("可选方案列表(2-4 个)。用户从中选一个。不传则用户只回答允许/拒绝。"),
14415
14420
  recommendation: t.string().optional().describe("你推荐的方案(优先在 options 中选一个)及推荐理由,帮用户快速决策。"),
14416
14421
  context: t.string().optional().describe("补充上下文:已做了什么、约束、影响范围等,帮用户判断。")
14417
14422
  });
14418
- function Lg() {
14423
+ function Rg() {
14419
14424
  return n(async () => "人工确认中间件未装载,无法征询用户。请直接向用户说明情况并等待回复。", {
14420
- name: Fg,
14425
+ name: Ig,
14421
14426
  description: [
14422
14427
  "当遇到以下情况时,主动调用本工具征询用户确认后再继续(不要默默猜测后直接执行高风险动作):",
14423
14428
  "1) 不确定用户意图、需求有歧义;",
@@ -14427,10 +14432,10 @@ function Lg() {
14427
14432
  "入参:question=问题/方案描述;options=可选方案列表(多方案时给);recommendation=你推荐的方案及理由。",
14428
14433
  "用户选择后,据其回答继续;若用户拒绝,停止当前操作并询问如何调整。"
14429
14434
  ].join(""),
14430
- schema: Ig
14435
+ schema: Lg
14431
14436
  });
14432
14437
  }
14433
- function Rg() {
14438
+ function zg() {
14434
14439
  return {
14435
14440
  name: "humanConfirm",
14436
14441
  wrapToolCall: async (e, t) => e.name === "request_human_confirmation" ? new Promise((t) => {
@@ -14462,14 +14467,14 @@ function Rg() {
14462
14467
  }
14463
14468
  //#endregion
14464
14469
  //#region src/core/harness/checkpoint.ts
14465
- function zg(e) {
14470
+ function Bg(e) {
14466
14471
  if (typeof e != "object" || !e) return e;
14467
14472
  if (typeof structuredClone == "function") try {
14468
14473
  return structuredClone(e);
14469
14474
  } catch {}
14470
14475
  return JSON.parse(JSON.stringify(e));
14471
14476
  }
14472
- function Bg(e, t) {
14477
+ function Vg(e, t) {
14473
14478
  let n = t.split("."), r = e;
14474
14479
  for (let e of n) {
14475
14480
  if (r == null) return;
@@ -14477,12 +14482,12 @@ function Bg(e, t) {
14477
14482
  }
14478
14483
  return r;
14479
14484
  }
14480
- function Vg(e, t, n) {
14485
+ function Hg(e, t, n) {
14481
14486
  let r = t.split("."), i = e;
14482
14487
  for (let e = 0; e < r.length - 1; e++) i[r[e]] ?? (i[r[e]] = {}), i = i[r[e]];
14483
14488
  i[r[r.length - 1]] = n;
14484
14489
  }
14485
- function Hg(e, t) {
14490
+ function Ug(e, t) {
14486
14491
  if (Array.isArray(e)) {
14487
14492
  e.length = 0, Array.isArray(t) && e.push(...t);
14488
14493
  return;
@@ -14491,11 +14496,11 @@ function Hg(e, t) {
14491
14496
  for (let t of Object.keys(e)) t in n || delete e[t];
14492
14497
  for (let t of Object.keys(n)) e[t] = n[t];
14493
14498
  }
14494
- function Ug(e, t) {
14495
- let n = Bg(window, e);
14496
- typeof n == "object" && n ? Hg(n, t) : Vg(window, e, t);
14499
+ function Wg(e, t) {
14500
+ let n = Vg(window, e);
14501
+ typeof n == "object" && n ? Ug(n, t) : Hg(window, e, t);
14497
14502
  }
14498
- function Wg(e) {
14503
+ function Gg(e) {
14499
14504
  let t = e.slice();
14500
14505
  for (; t.length;) {
14501
14506
  let e = t[t.length - 1];
@@ -14504,20 +14509,20 @@ function Wg(e) {
14504
14509
  }
14505
14510
  return t;
14506
14511
  }
14507
- function Gg(e) {
14512
+ function Kg(e) {
14508
14513
  let t = [], n = e.maxCheckpoints ?? 5, r = 1;
14509
14514
  return {
14510
14515
  save(i) {
14511
- let a = Wg(e.messages), o = {};
14512
- for (let t of e.windowPaths) o[t] = zg(Bg(window, t));
14516
+ let a = Gg(e.messages), o = {};
14517
+ for (let t of e.windowPaths) o[t] = Bg(Vg(window, t));
14513
14518
  let s = {
14514
14519
  id: r++,
14515
14520
  label: i,
14516
14521
  timestamp: Date.now(),
14517
- messages: zg(a),
14522
+ messages: Bg(a),
14518
14523
  windowVals: o,
14519
- vfs: zg(e.vfsStore.files),
14520
- todos: zg(e.getTodos()),
14524
+ vfs: Bg(e.vfsStore.files),
14525
+ todos: Bg(e.getTodos()),
14521
14526
  messageCount: a.length
14522
14527
  };
14523
14528
  for (t.push(s); t.length > n;) t.shift();
@@ -14537,15 +14542,15 @@ function Gg(e) {
14537
14542
  restore(n) {
14538
14543
  let r = n == null ? t[t.length - 1] : t.find((e) => e.id === n);
14539
14544
  if (!r) return !1;
14540
- e.messages.splice(0, e.messages.length, ...zg(r.messages));
14541
- for (let [e, t] of Object.entries(r.windowVals)) Ug(e, zg(t));
14545
+ e.messages.splice(0, e.messages.length, ...Bg(r.messages));
14546
+ for (let [e, t] of Object.entries(r.windowVals)) Wg(e, Bg(t));
14542
14547
  let i = e.vfsStore.files;
14543
14548
  for (let e of Object.keys(i)) delete i[e];
14544
- return Object.assign(i, zg(r.vfs)), e.todosMw.reset(zg(r.todos)), !0;
14549
+ return Object.assign(i, Bg(r.vfs)), e.todosMw.reset(Bg(r.todos)), !0;
14545
14550
  }
14546
14551
  };
14547
14552
  }
14548
- function Kg(e) {
14553
+ function qg(e) {
14549
14554
  let t = !1;
14550
14555
  return {
14551
14556
  name: "checkpoint",
@@ -14559,22 +14564,22 @@ function Kg(e) {
14559
14564
  }
14560
14565
  //#endregion
14561
14566
  //#region src/core/harness/subagent.ts
14562
- function qg(e) {
14567
+ function Jg(e) {
14563
14568
  return !!e && typeof e == "object" && typeof e.invoke == "function" && typeof e.stream == "function";
14564
14569
  }
14565
- var Jg = [
14570
+ var Yg = [
14566
14571
  "get_window_prop",
14567
14572
  "get_window_paths",
14568
14573
  "list_window_props",
14569
14574
  "describe_window_prop",
14570
14575
  "fetch_document"
14571
- ], Yg = 1, Xg = 4, Zg = 6, Qg = ["spawn_agent", "spawn_agents"];
14572
- async function $g(e, t, n, r, i) {
14573
- let a = t.depth ?? 0, o = t.maxDepth ?? Yg, s = /* @__PURE__ */ new Set([...Jg, ...t.allowedTools ?? []]), c = [...t.allTools.filter((e) => s.has(e.name) && !Qg.includes(e.name)), ...t.extraTools ?? []], l = a + 1 < o ? [e_({
14576
+ ], Xg = 1, Zg = 4, Qg = 6, $g = ["spawn_agent", "spawn_agents"];
14577
+ async function e_(e, t, n, r, i) {
14578
+ let a = t.depth ?? 0, o = t.maxDepth ?? Xg, s = /* @__PURE__ */ new Set([...Yg, ...t.allowedTools ?? []]), c = [...t.allTools.filter((e) => s.has(e.name) && !$g.includes(e.name)), ...t.extraTools ?? []], l = a + 1 < o ? [t_({
14574
14579
  ...t,
14575
14580
  depth: a + 1
14576
- })] : [], u = vg({
14577
- ...qg(t.llm) ? { llm: t.llm } : {
14581
+ })] : [], u = yg({
14582
+ ...Jg(t.llm) ? { llm: t.llm } : {
14578
14583
  apiKey: t.llm.apiKey,
14579
14584
  baseUrl: t.llm.baseUrl,
14580
14585
  model: e.model ?? t.llm.model,
@@ -14583,8 +14588,8 @@ async function $g(e, t, n, r, i) {
14583
14588
  },
14584
14589
  systemPrompt: e.role?.trim() || t.systemPrompt || "你是一个专注的子任务执行者。你只有只读工具(读 window / 抓文档),用它们完成给定任务,给出简洁结论,不要展开多余解释。",
14585
14590
  tools: c,
14586
- middleware: [...t.skills?.length ? [Dg(t.skills)] : [], ...l],
14587
- maxToolRounds: t.maxToolRounds ?? Zg,
14591
+ middleware: [...t.skills?.length ? [Og(t.skills)] : [], ...l],
14592
+ maxToolRounds: t.maxToolRounds ?? Qg,
14588
14593
  onLog: i,
14589
14594
  debug: t.debug
14590
14595
  });
@@ -14596,8 +14601,8 @@ async function $g(e, t, n, r, i) {
14596
14601
  r && (e.type === "tool_call" || e.type === "tool_result") && r(e);
14597
14602
  }, n);
14598
14603
  }
14599
- function e_(e) {
14600
- let r = e.maxParallel ?? Xg, i, a, o, s = (e, t) => (n) => {
14604
+ function t_(e) {
14605
+ let r = e.maxParallel ?? Zg, i, a, o, s = (e, t) => (n) => {
14601
14606
  a && a({
14602
14607
  type: "subagent",
14603
14608
  taskId: e,
@@ -14616,7 +14621,7 @@ function e_(e) {
14616
14621
  ...e,
14617
14622
  allowedTools: r
14618
14623
  } : e, l = `sub-${Math.random().toString(36).slice(2, 8)}`, u = n?.trim() || "子任务";
14619
- return await $g({
14624
+ return await e_({
14620
14625
  prompt: t,
14621
14626
  role: n,
14622
14627
  model: a
@@ -14633,9 +14638,9 @@ function e_(e) {
14633
14638
  tools: t.array(t.string()).optional().describe("子 agent 可用工具名白名单(默认只读 window + fetch)"),
14634
14639
  model: t.string().optional().describe("覆盖模型(默认同主)")
14635
14640
  })
14636
- }), n(async ({ tasks: t }) => (await Zh(t, r, async (t, n) => {
14641
+ }), n(async ({ tasks: t }) => (await Qh(t, r, async (t, n) => {
14637
14642
  let r = `sub-${n}-${Math.random().toString(36).slice(2, 6)}`, a = t.role?.trim() || `子任务${n + 1}`;
14638
- return $g(t, e, i, s(r, a), (e) => o?.({
14643
+ return e_(t, e, i, s(r, a), (e) => o?.({
14639
14644
  ...e,
14640
14645
  source: `子:${a}`
14641
14646
  }));
@@ -14650,8 +14655,8 @@ function e_(e) {
14650
14655
  wrapToolCall: async (e, t) => (e.signal && (i = e.signal), e.emit && (a = e.emit), e.logSink && (o = e.logSink), t(e))
14651
14656
  };
14652
14657
  }
14653
- var t_ = /^[a-zA-Z_][a-zA-Z0-9_]*$/;
14654
- function n_(e, t) {
14658
+ var n_ = /^[a-zA-Z_][a-zA-Z0-9_]*$/;
14659
+ function r_(e, t) {
14655
14660
  let n = e.tools ?? [];
14656
14661
  return {
14657
14662
  llm: e.llm ?? t.llm,
@@ -14665,9 +14670,9 @@ function n_(e, t) {
14665
14670
  debug: t.debug
14666
14671
  };
14667
14672
  }
14668
- function r_(e, r) {
14673
+ function i_(e, r) {
14669
14674
  let i = /* @__PURE__ */ new Set(), a = e.filter((e) => {
14670
- if (!t_.test(e.id)) return console.warn(`[subagents] id "${e.id}" 非合法工具名(须 [a-zA-Z_][a-zA-Z0-9_]*),已跳过`), !1;
14675
+ if (!n_.test(e.id)) return console.warn(`[subagents] id "${e.id}" 非合法工具名(须 [a-zA-Z_][a-zA-Z0-9_]*),已跳过`), !1;
14671
14676
  let t = `use_${e.id}`;
14672
14677
  return i.has(t) ? (console.warn(`[subagents] id "${e.id}" 重复,已跳过`), !1) : (i.add(t), !0);
14673
14678
  }), o, s, c, l = (e, t) => (n) => {
@@ -14685,8 +14690,8 @@ function r_(e, r) {
14685
14690
  return {
14686
14691
  name: "subagents",
14687
14692
  tools: a.map((e) => n(async ({ task: t }) => {
14688
- let n = n_(e, r);
14689
- return $g({ prompt: t }, n, o, l(`use_${e.id}`, e.id), (t) => c?.({
14693
+ let n = r_(e, r);
14694
+ return e_({ prompt: t }, n, o, l(`use_${e.id}`, e.id), (t) => c?.({
14690
14695
  ...t,
14691
14696
  source: `子:${e.id}`
14692
14697
  }));
@@ -14705,7 +14710,7 @@ function r_(e, r) {
14705
14710
  }
14706
14711
  //#endregion
14707
14712
  //#region src/core/harness/verify.ts
14708
- function i_(e) {
14713
+ function a_(e) {
14709
14714
  return {
14710
14715
  name: "verify",
14711
14716
  async beforeReturn({ messages: t, state: n, log: r }) {
@@ -14717,10 +14722,10 @@ function i_(e) {
14717
14722
  if (e.adversarial) {
14718
14723
  r?.("middleware", {
14719
14724
  stage: "adversarial_start",
14720
- model: f_(e.adversarial.llm),
14725
+ model: p_(e.adversarial.llm),
14721
14726
  tools: (e.adversarial.tools ?? []).length
14722
14727
  });
14723
- let n = await g_(t, e.adversarial.llm, r, e.adversarial.tools);
14728
+ let n = await __(t, e.adversarial.llm, r, e.adversarial.tools);
14724
14729
  if (r?.("middleware", {
14725
14730
  stage: "adversarial_done",
14726
14731
  clean: n === null,
@@ -14731,16 +14736,16 @@ function i_(e) {
14731
14736
  }
14732
14737
  };
14733
14738
  }
14734
- var a_ = /* @__PURE__ */ new Set([
14739
+ var o_ = /* @__PURE__ */ new Set([
14735
14740
  "set_window_prop",
14736
14741
  "edit_window_prop",
14737
14742
  "delete_window_prop"
14738
- ]), o_ = /校验失败|未在注册表中声明|未注册|不存在|仅支持|必须是/;
14739
- function s_(e) {
14743
+ ]), s_ = /校验失败|未在注册表中声明|未注册|不存在|仅支持|必须是/;
14744
+ function c_(e) {
14740
14745
  let t = /* @__PURE__ */ new Map();
14741
14746
  for (let n of e) {
14742
14747
  let e = n?.tool_calls;
14743
- if (Array.isArray(e)) for (let n of e) a_.has(n.name) && typeof n?.args?.path == "string" && t.set(n.args.path, {
14748
+ if (Array.isArray(e)) for (let n of e) o_.has(n.name) && typeof n?.args?.path == "string" && t.set(n.args.path, {
14744
14749
  path: n.args.path,
14745
14750
  op: n.name,
14746
14751
  callId: n.id
@@ -14748,7 +14753,7 @@ function s_(e) {
14748
14753
  }
14749
14754
  return [...t.values()];
14750
14755
  }
14751
- function c_(e) {
14756
+ function l_(e) {
14752
14757
  let t = /* @__PURE__ */ new Map();
14753
14758
  for (let n of e) {
14754
14759
  let e = n?.tool_call_id, r = n?.content;
@@ -14756,7 +14761,7 @@ function c_(e) {
14756
14761
  }
14757
14762
  return t;
14758
14763
  }
14759
- function l_(e, t) {
14764
+ function u_(e, t) {
14760
14765
  if (e == null) return;
14761
14766
  let n = e;
14762
14767
  for (let e of t.split(".")) {
@@ -14765,16 +14770,16 @@ function l_(e, t) {
14765
14770
  }
14766
14771
  return n;
14767
14772
  }
14768
- function u_(e = {}) {
14773
+ function d_(e = {}) {
14769
14774
  let t = e.window ?? globalThis.window, n = typeof e.schemas == "function" ? e.schemas : () => e.schemas ?? {};
14770
14775
  return async ({ messages: e }) => {
14771
- let r = s_(e);
14776
+ let r = c_(e);
14772
14777
  if (!r.length) return { ok: !0 };
14773
- let i = c_(e), a = n(), o = [];
14778
+ let i = l_(e), a = n(), o = [];
14774
14779
  for (let { path: e, op: n, callId: s } of r) {
14775
14780
  let r = s ? i.get(s) : void 0;
14776
- if (r && o_.test(r)) continue;
14777
- let c = l_(t, e);
14781
+ if (r && s_.test(r)) continue;
14782
+ let c = u_(t, e);
14778
14783
  if (n === "delete_window_prop") c !== void 0 && o.push(`${e} 删除后读回仍有值,疑似未生效`);
14779
14784
  else if (c == null) o.push(`写入 ${e} 后读回为空,疑似未生效`);
14780
14785
  else if (a[e]) {
@@ -14788,17 +14793,17 @@ function u_(e = {}) {
14788
14793
  } : { ok: !0 };
14789
14794
  };
14790
14795
  }
14791
- function d_(e) {
14792
- return !!e && typeof e == "object" && typeof e.invoke == "function" && typeof e.stream == "function";
14793
- }
14794
14796
  function f_(e) {
14795
- return d_(e) ? e.model ?? e.modelName ?? "<实例>" : e.model ?? "<配置>";
14797
+ return !!e && typeof e == "object" && typeof e.invoke == "function" && typeof e.stream == "function";
14796
14798
  }
14797
- var p_ = /无问题|没有问题|未发现问题|没有发现|没问题|未发现/;
14798
- function m_(e) {
14799
- return p_.test(e);
14799
+ function p_(e) {
14800
+ return f_(e) ? e.model ?? e.modelName ?? "<实例>" : e.model ?? "<配置>";
14800
14801
  }
14802
+ var m_ = /无问题|没有问题|未发现问题|没有发现|没问题|未发现/;
14801
14803
  function h_(e) {
14804
+ return m_.test(e);
14805
+ }
14806
+ function g_(e) {
14802
14807
  let t = "", n = "";
14803
14808
  for (let a of e) a instanceof i ? t = typeof a.content == "string" ? a.content : "" : a instanceof r && !(a.tool_calls?.length > 0) && (n = typeof a.content == "string" ? a.content : "");
14804
14809
  return {
@@ -14806,8 +14811,8 @@ function h_(e) {
14806
14811
  lastReply: n
14807
14812
  };
14808
14813
  }
14809
- async function g_(e, t, n, r) {
14810
- let { lastUser: i, lastReply: a } = h_(e);
14814
+ async function __(e, t, n, r) {
14815
+ let { lastUser: i, lastReply: a } = g_(e);
14811
14816
  if (!a) return null;
14812
14817
  let o = Array.isArray(r) && r.length > 0, s = [
14813
14818
  "你是严格的对抗式审查者,目标是找出以下 AI 助手回复的错误并证明它有问题(事实错误 / 遗漏 / 逻辑矛盾 / 与需求不符)。",
@@ -14818,7 +14823,7 @@ async function g_(e, t, n, r) {
14818
14823
  ].join("\n"), c = "你是严格的对抗式审查者,只找问题不赞美。目标是反驳,不是改进。", l = n ? (e) => n(e.type, {
14819
14824
  ...e.data,
14820
14825
  source: "adversarial"
14821
- }) : void 0, u = await vg(d_(t) ? {
14826
+ }) : void 0, u = await yg(f_(t) ? {
14822
14827
  llm: t,
14823
14828
  tools: r,
14824
14829
  maxToolRounds: o ? 4 : 1,
@@ -14843,17 +14848,17 @@ async function g_(e, t, n, r) {
14843
14848
  stage: "adversarial_verdict",
14844
14849
  verdict: u,
14845
14850
  source: "adversarial"
14846
- }), m_(u) ? null : u.trim();
14851
+ }), h_(u) ? null : u.trim();
14847
14852
  }
14848
14853
  //#endregion
14849
14854
  //#region src/core/mcp/client.ts
14850
- function __(e) {
14855
+ function v_(e) {
14851
14856
  let t = e?.content;
14852
14857
  if (!Array.isArray(t) || !t.length) return "";
14853
14858
  let n = t.map((e) => e.type === "text" && e.text ? e.text : e.type === "image" && e.data ? `[image:${String(e.data).slice(0, 32)}…]` : e.type === "audio" && e.data ? "[audio]" : e.type === "resource" && e.resource ? e.resource.text ?? e.resource.blob ?? "" : "").filter(Boolean).join("\n");
14854
14859
  return e?.isError ? `工具错误:${n}` : n;
14855
14860
  }
14856
- async function v_(e) {
14861
+ async function y_(e) {
14857
14862
  let t = new URL(e.url), n = e.requestInit;
14858
14863
  if (e.transport === "http") {
14859
14864
  let { StreamableHTTPClientTransport: e } = await import("@modelcontextprotocol/sdk/client/streamableHttp.js");
@@ -14866,8 +14871,8 @@ async function v_(e) {
14866
14871
  let { WebSocketClientTransport: r } = await import("@modelcontextprotocol/sdk/client/websocket.js");
14867
14872
  return new r(t);
14868
14873
  }
14869
- function y_(e, t) {
14870
- return n(async (n) => __(await t.callTool({
14874
+ function b_(e, t) {
14875
+ return n(async (n) => v_(await t.callTool({
14871
14876
  name: e.name,
14872
14877
  arguments: n
14873
14878
  })), {
@@ -14876,21 +14881,21 @@ function y_(e, t) {
14876
14881
  schema: e.inputSchema
14877
14882
  });
14878
14883
  }
14879
- async function b_(e) {
14880
- let { Client: t } = await import("@modelcontextprotocol/sdk/client"), n = await v_(e), r = new t({
14884
+ async function x_(e) {
14885
+ let { Client: t } = await import("@modelcontextprotocol/sdk/client"), n = await y_(e), r = new t({
14881
14886
  name: "page-agent-sdk",
14882
14887
  version: "1.0"
14883
14888
  }, { capabilities: {} });
14884
14889
  await r.connect(n);
14885
14890
  let { tools: i } = await r.listTools();
14886
14891
  return {
14887
- tools: i.map((e) => y_(e, r)),
14892
+ tools: i.map((e) => b_(e, r)),
14888
14893
  close: () => r.close()
14889
14894
  };
14890
14895
  }
14891
14896
  //#endregion
14892
14897
  //#region src/core/utils/rounds.ts
14893
- function x_(e) {
14898
+ function S_(e) {
14894
14899
  let t = [], n = null, r = 0;
14895
14900
  for (let i = 0; i < e.length; i++) {
14896
14901
  let a = e[i];
@@ -14904,14 +14909,14 @@ function x_(e) {
14904
14909
  }
14905
14910
  return n && t.push(n), t;
14906
14911
  }
14907
- function S_(e, t) {
14912
+ function C_(e, t) {
14908
14913
  let n = (e || "").replace(/```[\s\S]*?```/g, "[代码]").replace(/`([^`]+)`/g, "$1").replace(/[#*_>\-]\s?/g, "").replace(/\[(代码)\]/g, "「代码」").replace(/\s+/g, " ").trim();
14909
14914
  return n.length > t ? n.slice(0, t) + "…" : n;
14910
14915
  }
14911
- var C_ = "【更早对话摘要";
14912
- function w_(e, t) {
14916
+ var w_ = "【更早对话摘要";
14917
+ function T_(e, t) {
14913
14918
  if (t <= 0) return { trimmed: !1 };
14914
- let n = x_(e);
14919
+ let n = S_(e);
14915
14920
  if (n.length <= t) return { trimmed: !1 };
14916
14921
  let r = n[n.length - t].startIdx, i = n.slice(0, n.length - t), a = n[0].startIdx, o = "";
14917
14922
  for (let t = 0; t < a; t++) {
@@ -14922,7 +14927,7 @@ function w_(e, t) {
14922
14927
  }
14923
14928
  }
14924
14929
  let s = i.map((e) => {
14925
- let t = S_(e.userMsg.content, 60) || "(空)", n = e.assistantMsgs[0] ? S_(e.assistantMsgs[0].content, 80) : "(无回复)";
14930
+ let t = C_(e.userMsg.content, 60) || "(空)", n = e.assistantMsgs[0] ? C_(e.assistantMsgs[0].content, 80) : "(无回复)";
14926
14931
  return `- 第${e.round}轮:${t} → ${n}`;
14927
14932
  }).join("\n"), c = o ? o.replace(/^【[^】]*】\n?/, "") : "";
14928
14933
  return {
@@ -14931,47 +14936,47 @@ function w_(e, t) {
14931
14936
  deleteCount: r,
14932
14937
  summary: {
14933
14938
  role: "system",
14934
- content: c ? `${C_}(${i.length} 轮,含累积)】\n${c}\n【续】\n${s}` : `${C_}(${i.length} 轮)】\n${s}`,
14939
+ content: c ? `${w_}(${i.length} 轮,含累积)】\n${c}\n【续】\n${s}` : `${w_}(${i.length} 轮)】\n${s}`,
14935
14940
  timestamp: i[0].userMsg.timestamp
14936
14941
  }
14937
14942
  };
14938
14943
  }
14939
14944
  //#endregion
14940
14945
  //#region src/core/composables/useContextManager.ts
14941
- var T_ = {
14946
+ var E_ = {
14942
14947
  windowRounds: 6,
14943
14948
  summaryThresholdRounds: 8,
14944
14949
  toolResultMaxChars: 800,
14945
14950
  enableRecall: !0,
14946
14951
  recallTopK: 3,
14947
14952
  enableLLMSummary: !1
14948
- }, E_ = /* @__PURE__ */ new Set(/* @__PURE__ */ "的.了.是.在.我.你.他.她.它.这.那.和.与.及.或.一个.什么.怎么.如何.为什么.可以.能.请.帮.一下.需要.想要.the.a.an.is.are.of.to.in.on".split("."));
14949
- function D_(e) {
14950
- return e.toLowerCase().split(/[^a-z0-9\u4e00-\u9fa5]+/i).map((e) => e.trim()).filter((e) => e.length >= 2 && !E_.has(e));
14951
- }
14953
+ }, D_ = /* @__PURE__ */ new Set(/* @__PURE__ */ "的.了.是.在.我.你.他.她.它.这.那.和.与.及.或.一个.什么.怎么.如何.为什么.可以.能.请.帮.一下.需要.想要.the.a.an.is.are.of.to.in.on".split("."));
14952
14954
  function O_(e) {
14955
+ return e.toLowerCase().split(/[^a-z0-9\u4e00-\u9fa5]+/i).map((e) => e.trim()).filter((e) => e.length >= 2 && !D_.has(e));
14956
+ }
14957
+ function k_(e) {
14953
14958
  let t = typeof e.content == "string" ? e.content : "";
14954
14959
  if (e.reasoning && (t += e.reasoning), e.steps) for (let n of e.steps) t += " " + (n.name || ""), n.args != null && (t += " " + (typeof n.args == "string" ? n.args : JSON.stringify(n.args))), n.result && (t += " " + n.result);
14955
- return tg(t);
14960
+ return ng(t);
14956
14961
  }
14957
- function k_(e) {
14958
- let t = O_(e.userMsg);
14959
- for (let n of e.assistantMsgs) t += O_(n);
14962
+ function A_(e) {
14963
+ let t = k_(e.userMsg);
14964
+ for (let n of e.assistantMsgs) t += k_(n);
14960
14965
  return t;
14961
14966
  }
14962
- function A_(e, t) {
14967
+ function j_(e, t) {
14963
14968
  return e.map((e) => {
14964
- let n = S_(e.userMsg.content, 60) || "(空)", r = e.assistantMsgs[0] ? S_(e.assistantMsgs[0].content, 80) : "(无回复)", i = e.assistantMsgs.flatMap((e) => (e.steps || []).map((e) => e.name)), a = i.length ? ` [工具: ${i.join(", ")}]` : "", o = "";
14969
+ let n = C_(e.userMsg.content, 60) || "(空)", r = e.assistantMsgs[0] ? C_(e.assistantMsgs[0].content, 80) : "(无回复)", i = e.assistantMsgs.flatMap((e) => (e.steps || []).map((e) => e.name)), a = i.length ? ` [工具: ${i.join(", ")}]` : "", o = "";
14965
14970
  if (t && t.size) {
14966
14971
  let n = [];
14967
- for (let r of e.assistantMsgs) for (let e of r.steps || []) e.name && t.has(e.name) && e.result && n.push(`${e.name}: ${S_(e.result, 120)}`);
14972
+ for (let r of e.assistantMsgs) for (let e of r.steps || []) e.name && t.has(e.name) && e.result && n.push(`${e.name}: ${C_(e.result, 120)}`);
14968
14973
  n.length && (o = `\n 字段提示: ${n.join(" | ")}`);
14969
14974
  }
14970
14975
  return `- 第${e.round}轮:${n} → ${r}${a}${o}`;
14971
14976
  }).join("\n");
14972
14977
  }
14973
- function j_(e, t, n) {
14974
- let r = D_(t);
14978
+ function M_(e, t, n) {
14979
+ let r = O_(t);
14975
14980
  return r.length === 0 ? [] : e.map((e) => {
14976
14981
  let t = (e.userMsg.content + " " + e.assistantMsgs.map((e) => e.content).join(" ")).toLowerCase(), n = 0;
14977
14982
  for (let e of r) t.includes(e) && n++;
@@ -14981,13 +14986,13 @@ function j_(e, t, n) {
14981
14986
  };
14982
14987
  }).filter((e) => e.score > 0).sort((e, t) => t.score - e.score).slice(0, n).map((e) => e.r);
14983
14988
  }
14984
- function M_(e = {}) {
14989
+ function N_(e = {}) {
14985
14990
  let t = {
14986
- ...T_,
14991
+ ...E_,
14987
14992
  ...e
14988
14993
  };
14989
14994
  async function n(e) {
14990
- let n = x_(e), r = e.length, i = (t) => ({
14995
+ let n = S_(e), r = e.length, i = (t) => ({
14991
14996
  messages: e,
14992
14997
  stats: {
14993
14998
  triggered: !1,
@@ -15000,9 +15005,9 @@ function M_(e = {}) {
15000
15005
  }
15001
15006
  }), a, o, s;
15002
15007
  if (t.contextWindow && t.contextWindow > 0) {
15003
- if (n.reduce((e, t) => e + k_(t), 0) <= t.contextWindow * (t.summaryThresholdRatio ?? .5)) return i("none");
15008
+ if (n.reduce((e, t) => e + A_(t), 0) <= t.contextWindow * (t.summaryThresholdRatio ?? .5)) return i("none");
15004
15009
  let e = t.contextWindow * (t.windowRatio ?? .4), r = 0, c = 0;
15005
- for (let t = n.length - 1; t >= 0; t--) if (r += k_(n[t]), r >= e) {
15010
+ for (let t = n.length - 1; t >= 0; t--) if (r += A_(n[t]), r >= e) {
15006
15011
  c = t + 1;
15007
15012
  break;
15008
15013
  }
@@ -15015,12 +15020,12 @@ function M_(e = {}) {
15015
15020
  }
15016
15021
  let c = [...e].reverse().find((e) => e.role === "user")?.content || "", l = t.preserveLastToolResults?.length ? new Set(t.preserveLastToolResults) : void 0, u, d;
15017
15022
  if (t.enableLLMSummary && t.llmInvoke) try {
15018
- u = await t.llmInvoke(A_(o, l)), d = s + "llm_summary";
15023
+ u = await t.llmInvoke(j_(o, l)), d = s + "llm_summary";
15019
15024
  } catch {
15020
- u = A_(o, l), d = s + "index_summary(llm_fallback)";
15025
+ u = j_(o, l), d = s + "index_summary(llm_fallback)";
15021
15026
  }
15022
- else u = A_(o, l), d = s + "index_summary";
15023
- let f = t.enableRecall ? j_(o, c, t.recallTopK) : [], p = f.length ? f.map((e) => `- 第${e.round}轮:${S_(e.userMsg.content, 60)} → ${e.assistantMsgs[0] ? S_(e.assistantMsgs[0].content, 80) : ""}`).join("\n") : "", m = [`【对话历史摘要】以下是之前 ${o.length} 轮对话的要点(最新 ${a.length} 轮已完整保留):`, u];
15027
+ else u = j_(o, l), d = s + "index_summary";
15028
+ let f = t.enableRecall ? M_(o, c, t.recallTopK) : [], p = f.length ? f.map((e) => `- 第${e.round}轮:${C_(e.userMsg.content, 60)} → ${e.assistantMsgs[0] ? C_(e.assistantMsgs[0].content, 80) : ""}`).join("\n") : "", m = [`【对话历史摘要】以下是之前 ${o.length} 轮对话的要点(最新 ${a.length} 轮已完整保留):`, u];
15024
15029
  if (p && m.push("\n【与当前问题可能相关的早期对话】", p), t.getRegisteredProps) try {
15025
15030
  let e = t.getRegisteredProps();
15026
15031
  if (e.length) {
@@ -15051,10 +15056,10 @@ function M_(e = {}) {
15051
15056
  return {
15052
15057
  compress: n,
15053
15058
  config: t,
15054
- trimToolResults: N_
15059
+ trimToolResults: P_
15055
15060
  };
15056
15061
  }
15057
- function N_(e, t) {
15062
+ function P_(e, t) {
15058
15063
  let n = [];
15059
15064
  if (e.forEach((e, t) => {
15060
15065
  e instanceof o && n.push(t);
@@ -15073,8 +15078,8 @@ function N_(e, t) {
15073
15078
  }
15074
15079
  //#endregion
15075
15080
  //#region src/core/harness/summarization.ts
15076
- function P_(e = {}) {
15077
- let t = M_(e);
15081
+ function F_(e = {}) {
15082
+ let t = N_(e);
15078
15083
  return {
15079
15084
  name: "summarization",
15080
15085
  compressInput: async (e) => {
@@ -15088,7 +15093,7 @@ function P_(e = {}) {
15088
15093
  }
15089
15094
  //#endregion
15090
15095
  //#region src/core/presets.ts
15091
- var F_ = {
15096
+ var I_ = {
15092
15097
  pageBuilder: { systemPrompt: "你是页面构建助手。流程:get_window_prop 读取当前页面结构 → set_window_prop / edit_window_prop 修改属性 → 页面实时更新。多步任务先用 write_todos 拆解,逐步推进。" },
15093
15098
  researcher: {
15094
15099
  systemPrompt: "你是调研助手。多路调研用 spawn_agents 并行委派子 agent(各负责一个方向);单份资料用 fetch_document 抓取;最后结构化汇总,给出结论与依据。",
@@ -15102,14 +15107,14 @@ var F_ = {
15102
15107
  memory: !1,
15103
15108
  subagent: !1
15104
15109
  } }
15105
- }, I_ = { reliableWriteRules: [
15110
+ }, L_ = { reliableWriteRules: [
15106
15111
  "【可靠写入规则】",
15107
15112
  "1. 改任何属性前,先用 get_window_prop 读其当前真实值,基于真实值改,不要凭记忆;",
15108
15113
  "2. 若不确定可操作哪些属性,先 list_window_props 查看当前注册项(动态组件场景下注册表会增删,以工具返回为准,勿凭旧记忆);",
15109
15114
  "3. 不确定某属性字段结构时,先 describe_window_prop 看其说明,字段以 describe 返回为准;",
15110
15115
  "4. 写入若被 schema 校验拒绝(返回结构化错误含字段名与期望类型),按错误修正后重试,不要放弃;",
15111
15116
  "5. 优先用 edit_window_prop 增量 patch(只发改动),避免 set 整体重传大 JSON 被截断。"
15112
- ].join("\n") }, L_ = {
15117
+ ].join("\n") }, R_ = {
15113
15118
  auto: {
15114
15119
  summaryThresholdRatio: .5,
15115
15120
  windowRatio: .4,
@@ -15131,8 +15136,8 @@ var F_ = {
15131
15136
  enableLLMSummary: !0
15132
15137
  }
15133
15138
  };
15134
- function R_(e, t) {
15135
- let n = L_[e.contextPreset ?? "auto"] ?? {}, r = e.contextOptions === !1 ? {} : e.contextOptions ?? {};
15139
+ function z_(e, t) {
15140
+ let n = R_[e.contextPreset ?? "auto"] ?? {}, r = e.contextOptions === !1 ? {} : e.contextOptions ?? {};
15136
15141
  return {
15137
15142
  ...n,
15138
15143
  ...r,
@@ -15149,7 +15154,7 @@ function $(e) {
15149
15154
  };
15150
15155
  return e.path !== void 0 && (t.path = e.path), e.hint && (t.hint = e.hint), e.details !== void 0 && (t.details = e.details), `ERROR: ${JSON.stringify(t)}`;
15151
15156
  }
15152
- function z_(e) {
15157
+ function B_(e) {
15153
15158
  return e.slice(0, 10).map((e) => {
15154
15159
  let t = e, n = {
15155
15160
  path: (Array.isArray(t.path) ? t.path.join(".") : String(t.path ?? "")) || "(root)",
@@ -15158,16 +15163,16 @@ function z_(e) {
15158
15163
  return t.expected !== void 0 && (n.expected = t.expected), t.received !== void 0 && (n.received = t.received), t.code !== void 0 && (n.code = t.code), n;
15159
15164
  });
15160
15165
  }
15161
- function B_(e, t) {
15166
+ function V_(e, t) {
15162
15167
  return $({
15163
15168
  code: "SCHEMA_INVALID",
15164
15169
  path: e,
15165
15170
  message: `值不符合 "${e}" 的 schema(${t.length} 处问题)`,
15166
15171
  hint: `按 describe_window_prop("${e}") 查看格式,修正后重试;改大对象优先用 edit_window_prop 增量 patch(只发改动部分)`,
15167
- details: z_(t)
15172
+ details: B_(t)
15168
15173
  });
15169
15174
  }
15170
- function V_(e, t, n) {
15175
+ function H_(e, t, n) {
15171
15176
  let r = n?.message || String(n);
15172
15177
  return $({
15173
15178
  code: "JSON_PARSE",
@@ -15176,18 +15181,18 @@ function V_(e, t, n) {
15176
15181
  hint: `检查引号/逗号/括号是否闭合;字符串值需双引号包裹(如 '"dark"' 表示字符串 dark,数字直接写如 5);预览前 80 字符:${t.slice(0, 80)}`
15177
15182
  });
15178
15183
  }
15179
- var H_ = .9;
15180
- function U_(e, t = {}) {
15184
+ var U_ = .9;
15185
+ function W_(e, t = {}) {
15181
15186
  let n = Object.create(null);
15182
- if (e) for (let [t, r] of Object.entries(e)) n[K_(t)] = {
15187
+ if (e) for (let [t, r] of Object.entries(e)) n[q_(t)] = {
15183
15188
  content: r,
15184
- updatedAt: J_()
15189
+ updatedAt: Y_()
15185
15190
  };
15186
15191
  let { persist: r } = t, i = t.maxBytes ?? 4194304;
15187
15192
  function a() {
15188
- if (G_(n) <= i) return;
15189
- let e = i * H_, t = Object.entries(n).sort((e, t) => e[1].updatedAt - t[1].updatedAt);
15190
- for (let [r] of t) if (delete n[r], G_(n) <= e) break;
15193
+ if (K_(n) <= i) return;
15194
+ let e = i * U_, t = Object.entries(n).sort((e, t) => e[1].updatedAt - t[1].updatedAt);
15195
+ for (let [r] of t) if (delete n[r], K_(n) <= e) break;
15191
15196
  }
15192
15197
  let o = null;
15193
15198
  function s() {
@@ -15212,7 +15217,7 @@ function U_(e, t = {}) {
15212
15217
  }
15213
15218
  }) };
15214
15219
  return r && (l.hydrate = (e) => {
15215
- for (let [t, r] of Object.entries(e)) n[K_(t)] = r;
15220
+ for (let [t, r] of Object.entries(e)) n[q_(t)] = r;
15216
15221
  a();
15217
15222
  }, l.flush = () => {
15218
15223
  o &&= (clearTimeout(o), null), s();
@@ -15221,17 +15226,17 @@ function U_(e, t = {}) {
15221
15226
  c();
15222
15227
  }), l;
15223
15228
  }
15224
- var W_ = null;
15225
- function G_(e) {
15226
- W_ ||= new TextEncoder();
15229
+ var G_ = null;
15230
+ function K_(e) {
15231
+ G_ ||= new TextEncoder();
15227
15232
  let t = 0;
15228
- for (let n of Object.values(e)) t += W_.encode(n.content).length;
15233
+ for (let n of Object.values(e)) t += G_.encode(n.content).length;
15229
15234
  return t;
15230
15235
  }
15231
- function K_(e) {
15236
+ function q_(e) {
15232
15237
  return e.replace(/^\/+/, "").replace(/\/+/g, "/");
15233
15238
  }
15234
- function q_(e) {
15239
+ function J_(e) {
15235
15240
  let t = "";
15236
15241
  for (let n = 0; n < e.length; n++) {
15237
15242
  let r = e[n];
@@ -15239,13 +15244,13 @@ function q_(e) {
15239
15244
  }
15240
15245
  return RegExp("^" + t + "$");
15241
15246
  }
15242
- function J_() {
15247
+ function Y_() {
15243
15248
  return Date.now();
15244
15249
  }
15245
- function Y_(e) {
15250
+ function X_(e) {
15246
15251
  return [
15247
15252
  n(async ({ path: t, offset: n, limit: r }) => {
15248
- let i = e.files[K_(t)];
15253
+ let i = e.files[q_(t)];
15249
15254
  if (!i) return $({
15250
15255
  code: "NOT_FOUND",
15251
15256
  path: t,
@@ -15263,9 +15268,9 @@ function Y_(e) {
15263
15268
  limit: t.number().int().min(1).default(2e3).describe("读取行数")
15264
15269
  })
15265
15270
  }),
15266
- n(async ({ path: t, content: n }) => (e.files[K_(t)] = {
15271
+ n(async ({ path: t, content: n }) => (e.files[q_(t)] = {
15267
15272
  content: n,
15268
- updatedAt: J_()
15273
+ updatedAt: Y_()
15269
15274
  }, `已写入 ${t}(${n.length} 字符)`), {
15270
15275
  name: "vfs_write",
15271
15276
  description: "写入/覆盖虚拟工作区文件,作为中间工作记忆。",
@@ -15275,7 +15280,7 @@ function Y_(e) {
15275
15280
  })
15276
15281
  }),
15277
15282
  n(async ({ path: t, oldString: n, newString: r }) => {
15278
- let i = K_(t), a = e.files[i];
15283
+ let i = q_(t), a = e.files[i];
15279
15284
  if (!a) return $({
15280
15285
  code: "NOT_FOUND",
15281
15286
  path: t,
@@ -15305,7 +15310,7 @@ function Y_(e) {
15305
15310
  }
15306
15311
  return e.files[i] = {
15307
15312
  content: a.content.replace(n, r),
15308
- updatedAt: J_()
15313
+ updatedAt: Y_()
15309
15314
  }, `已替换 ${t} 中 1 处。`;
15310
15315
  }, {
15311
15316
  name: "vfs_edit",
@@ -15327,7 +15332,7 @@ function Y_(e) {
15327
15332
  n(async ({ pattern: t }) => {
15328
15333
  let n;
15329
15334
  try {
15330
- n = q_(t);
15335
+ n = J_(t);
15331
15336
  } catch (e) {
15332
15337
  return $({
15333
15338
  code: "GLOB_INVALID",
@@ -15356,7 +15361,7 @@ function Y_(e) {
15356
15361
  details: { pattern: t }
15357
15362
  });
15358
15363
  }
15359
- let i = n ? [K_(n)] : Object.keys(e.files), a = [];
15364
+ let i = n ? [q_(n)] : Object.keys(e.files), a = [];
15360
15365
  for (let t of i) {
15361
15366
  let n = e.files[t];
15362
15367
  n && n.content.split("\n").forEach((e, n) => {
@@ -15374,17 +15379,17 @@ function Y_(e) {
15374
15379
  })
15375
15380
  ];
15376
15381
  }
15377
- function X_(e) {
15382
+ function Z_(e) {
15378
15383
  return {
15379
15384
  name: "vfs",
15380
- tools: Y_(e),
15385
+ tools: X_(e),
15381
15386
  beforeAgent: () => ({ files: e.files })
15382
15387
  };
15383
15388
  }
15384
15389
  //#endregion
15385
15390
  //#region src/core/tools/windowQuery.ts
15386
- var Z_ = /[\w$-]/;
15387
- function Q_(e) {
15391
+ var Q_ = /[\w$-]/;
15392
+ function $_(e) {
15388
15393
  let t = [], n = e.trim(), r = +(n[0] === "$");
15389
15394
  for (; r < n.length;) {
15390
15395
  let e = n[r];
@@ -15395,7 +15400,7 @@ function Q_(e) {
15395
15400
  continue;
15396
15401
  }
15397
15402
  let e = "";
15398
- for (; r < n.length && Z_.test(n[r]);) e += n[r++];
15403
+ for (; r < n.length && Q_.test(n[r]);) e += n[r++];
15399
15404
  if (!e) throw Error("JSONPath: .. 后缺属性名");
15400
15405
  t.push({
15401
15406
  type: "descendKey",
@@ -15408,7 +15413,7 @@ function Q_(e) {
15408
15413
  continue;
15409
15414
  }
15410
15415
  let e = "";
15411
- for (; r < n.length && Z_.test(n[r]);) e += n[r++];
15416
+ for (; r < n.length && Q_.test(n[r]);) e += n[r++];
15412
15417
  if (!e) throw Error("JSONPath: . 后缺属性名");
15413
15418
  t.push({
15414
15419
  type: "key",
@@ -15464,7 +15469,7 @@ function Q_(e) {
15464
15469
  }
15465
15470
  return t;
15466
15471
  }
15467
- function $_(e) {
15472
+ function ev(e) {
15468
15473
  let t = [], n = 0, r = e.trim();
15469
15474
  for (; n < r.length;) {
15470
15475
  let e = r[n];
@@ -15509,7 +15514,7 @@ function $_(e) {
15509
15514
  }
15510
15515
  return t;
15511
15516
  }
15512
- var ev = class {
15517
+ var tv = class {
15513
15518
  toks;
15514
15519
  item;
15515
15520
  pos = 0;
@@ -15545,12 +15550,12 @@ var ev = class {
15545
15550
  return this.next(), e;
15546
15551
  }
15547
15552
  let e = this.operand(), t = this.peek();
15548
- return t === "==" || t === "!=" || t === "<" || t === "<=" || t === ">" || t === ">=" ? (this.next(), rv(t, e, this.operand())) : tv(e);
15553
+ return t === "==" || t === "!=" || t === "<" || t === "<=" || t === ">" || t === ">=" ? (this.next(), iv(t, e, this.operand())) : nv(e);
15549
15554
  }
15550
15555
  operand() {
15551
15556
  let e = this.next();
15552
15557
  if (e === void 0) throw Error("过滤表达式:缺操作数");
15553
- if (e.startsWith("@")) return nv(e, this.item);
15558
+ if (e.startsWith("@")) return rv(e, this.item);
15554
15559
  if (e[0] === "'" || e[0] === "\"") return e.slice(1, -1);
15555
15560
  if (e === "true") return !0;
15556
15561
  if (e === "false") return !1;
@@ -15560,10 +15565,10 @@ var ev = class {
15560
15565
  throw Error(`过滤表达式:未知操作数 '${e}'`);
15561
15566
  }
15562
15567
  };
15563
- function tv(e) {
15568
+ function nv(e) {
15564
15569
  return !!e && e !== 0 && e !== "" && e !== null;
15565
15570
  }
15566
- function nv(e, t) {
15571
+ function rv(e, t) {
15567
15572
  let n = e.split(".").filter((e) => e && e !== "@"), r = t;
15568
15573
  for (let e of n) {
15569
15574
  if (typeof r != "object" || !r) return;
@@ -15571,7 +15576,7 @@ function nv(e, t) {
15571
15576
  }
15572
15577
  return r;
15573
15578
  }
15574
- function rv(e, t, n) {
15579
+ function iv(e, t, n) {
15575
15580
  switch (e) {
15576
15581
  case "==": return t === n;
15577
15582
  case "!=": return t !== n;
@@ -15582,47 +15587,47 @@ function rv(e, t, n) {
15582
15587
  default: return !1;
15583
15588
  }
15584
15589
  }
15585
- function iv(e, t) {
15586
- return new ev($_(e), t).parse();
15587
- }
15588
15590
  function av(e, t) {
15589
- return e ? `${e}.${t}` : String(t);
15591
+ return new tv(ev(e), t).parse();
15590
15592
  }
15591
15593
  function ov(e, t) {
15594
+ return e ? `${e}.${t}` : String(t);
15595
+ }
15596
+ function sv(e, t) {
15592
15597
  let n = [{
15593
15598
  path: "",
15594
15599
  value: e
15595
15600
  }];
15596
- for (let e of Q_(t)) {
15601
+ for (let e of $_(t)) {
15597
15602
  let t = [];
15598
15603
  if (e.type === "key") for (let r of n) r.value != null && typeof r.value == "object" && e.key in r.value && t.push({
15599
- path: av(r.path, e.key),
15604
+ path: ov(r.path, e.key),
15600
15605
  value: r.value[e.key]
15601
15606
  });
15602
15607
  else if (e.type === "index") {
15603
15608
  for (let r of n) if (Array.isArray(r.value)) {
15604
15609
  let n = r.value[e.index];
15605
15610
  e.index >= 0 && e.index < r.value.length && t.push({
15606
- path: av(r.path, e.index),
15611
+ path: ov(r.path, e.index),
15607
15612
  value: n,
15608
15613
  index: e.index
15609
15614
  });
15610
15615
  }
15611
15616
  } else if (e.type === "wildcard") {
15612
15617
  for (let e of n) if (Array.isArray(e.value)) e.value.forEach((n, r) => t.push({
15613
- path: av(e.path, r),
15618
+ path: ov(e.path, r),
15614
15619
  value: n,
15615
15620
  index: r
15616
15621
  }));
15617
15622
  else if (e.value != null && typeof e.value == "object") for (let n of Object.keys(e.value)) t.push({
15618
- path: av(e.path, n),
15623
+ path: ov(e.path, n),
15619
15624
  value: e.value[n]
15620
15625
  });
15621
15626
  } else if (e.type === "descendKey") {
15622
15627
  let r = e.key, i = (e) => {
15623
15628
  if (!(e.value == null || typeof e.value != "object")) for (let n of Object.keys(e.value)) {
15624
15629
  let a = {
15625
- path: av(e.path, n),
15630
+ path: ov(e.path, n),
15626
15631
  value: e.value[n]
15627
15632
  };
15628
15633
  n === r && t.push(a), i(a);
@@ -15633,7 +15638,7 @@ function ov(e, t) {
15633
15638
  let e = (n) => {
15634
15639
  if (!(n.value == null || typeof n.value != "object")) for (let r of Object.keys(n.value)) {
15635
15640
  let i = {
15636
- path: av(n.path, r),
15641
+ path: ov(n.path, r),
15637
15642
  value: n.value[r]
15638
15643
  };
15639
15644
  t.push(i), e(i);
@@ -15642,16 +15647,16 @@ function ov(e, t) {
15642
15647
  for (let t of n) e(t);
15643
15648
  } else if (e.type === "filter") {
15644
15649
  for (let r of n) if (Array.isArray(r.value)) r.value.forEach((n, i) => {
15645
- iv(e.filter, n) && t.push({
15646
- path: av(r.path, i),
15650
+ av(e.filter, n) && t.push({
15651
+ path: ov(r.path, i),
15647
15652
  value: n,
15648
15653
  index: i
15649
15654
  });
15650
15655
  });
15651
15656
  else if (r.value != null && typeof r.value == "object") for (let n of Object.keys(r.value)) {
15652
15657
  let i = r.value[n];
15653
- iv(e.filter, i) && t.push({
15654
- path: av(r.path, n),
15658
+ av(e.filter, i) && t.push({
15659
+ path: ov(r.path, n),
15655
15660
  value: i
15656
15661
  });
15657
15662
  }
@@ -15660,7 +15665,7 @@ function ov(e, t) {
15660
15665
  }
15661
15666
  return n;
15662
15667
  }
15663
- function sv(e, t) {
15668
+ function cv(e, t) {
15664
15669
  let n = e.length, r = t.length;
15665
15670
  if (!n) return r;
15666
15671
  if (!r) return n;
@@ -15676,7 +15681,7 @@ function sv(e, t) {
15676
15681
  }
15677
15682
  return i[r];
15678
15683
  }
15679
- function cv(e, t, n = {}) {
15684
+ function lv(e, t, n = {}) {
15680
15685
  let r = n.mode || "substring", i = n.limit ?? 50, a = n.matchKey !== !1, o = [], s = null;
15681
15686
  if (r === "regex") try {
15682
15687
  s = new RegExp(t, "i");
@@ -15686,11 +15691,11 @@ function cv(e, t, n = {}) {
15686
15691
  let c = (e, l, u) => {
15687
15692
  if (o.length >= i || e == null) return;
15688
15693
  if (typeof e == "object") {
15689
- if (Array.isArray(e)) e.forEach((e, t) => c(e, av(l, t), String(t)));
15690
- else for (let t of Object.keys(e)) c(e[t], av(l, t), t);
15694
+ if (Array.isArray(e)) e.forEach((e, t) => c(e, ov(l, t), String(t)));
15695
+ else for (let t of Object.keys(e)) c(e[t], ov(l, t), t);
15691
15696
  return;
15692
15697
  }
15693
- let d = String(e), f = lv(d, t, r, n.fuzzyThreshold ?? 2, s);
15698
+ let d = String(e), f = uv(d, t, r, n.fuzzyThreshold ?? 2, s);
15694
15699
  if (f) {
15695
15700
  o.push({
15696
15701
  path: l,
@@ -15701,7 +15706,7 @@ function cv(e, t, n = {}) {
15701
15706
  return;
15702
15707
  }
15703
15708
  if (a && u) {
15704
- let e = lv(u, t, r, n.fuzzyThreshold ?? 2, s);
15709
+ let e = uv(u, t, r, n.fuzzyThreshold ?? 2, s);
15705
15710
  e && o.push({
15706
15711
  path: l,
15707
15712
  key: u,
@@ -15712,18 +15717,18 @@ function cv(e, t, n = {}) {
15712
15717
  };
15713
15718
  return c(e, ""), o;
15714
15719
  }
15715
- function lv(e, t, n, r, i) {
15720
+ function uv(e, t, n, r, i) {
15716
15721
  let a = e.toLowerCase(), o = t.toLowerCase();
15717
15722
  if (n === "substring") return a.includes(o) ? 1 : null;
15718
15723
  if (n === "regex") return i && i.test(e) ? 1 : null;
15719
15724
  if (n === "fuzzy") {
15720
15725
  if (a.includes(o)) return 2;
15721
- let e = sv(a, o);
15726
+ let e = cv(a, o);
15722
15727
  return e <= r ? r - e + 1 : null;
15723
15728
  }
15724
15729
  return null;
15725
15730
  }
15726
- var uv = [
15731
+ var dv = [
15727
15732
  "self.fetch = () => { throw new Error('fetch 已被沙箱禁用') }",
15728
15733
  "self.XMLHttpRequest = function(){ throw new Error('XMLHttpRequest 已被沙箱禁用') }",
15729
15734
  "self.importScripts = () => { throw new Error('importScripts 已被沙箱禁用') }",
@@ -15736,7 +15741,7 @@ var uv = [
15736
15741
  "try { self.BroadcastChannel = undefined } catch {}",
15737
15742
  "if (self.navigator && self.navigator.sendBeacon) self.navigator.sendBeacon = () => { throw new Error('sendBeacon 已被沙箱禁用') }"
15738
15743
  ].join("\n");
15739
- function dv(e, t, n = 3e3) {
15744
+ function fv(e, t, n = 3e3) {
15740
15745
  return new Promise((r) => {
15741
15746
  let i = Date.now(), a = !1, o = (e) => {
15742
15747
  if (!a) {
@@ -15749,7 +15754,7 @@ function dv(e, t, n = 3e3) {
15749
15754
  elapsedMs: Date.now() - i
15750
15755
  });
15751
15756
  }
15752
- }, s = uv + "\nself.onmessage = async (e) => {\n try {\n const fn = new Function(\"data\", e.data.script);\n let result = fn(e.data.data);\n if (result && typeof result.then === \"function\") result = await result;\n self.postMessage({ ok: true, result });\n } catch (err) {\n self.postMessage({ ok: false, error: String((err && err.message) || err) });\n }\n};", c, l;
15757
+ }, s = dv + "\nself.onmessage = async (e) => {\n try {\n const fn = new Function(\"data\", e.data.script);\n let result = fn(e.data.data);\n if (result && typeof result.then === \"function\") result = await result;\n self.postMessage({ ok: true, result });\n } catch (err) {\n self.postMessage({ ok: false, error: String((err && err.message) || err) });\n }\n};", c, l;
15753
15758
  try {
15754
15759
  let e = new Blob([s], { type: "application/javascript" });
15755
15760
  c = URL.createObjectURL(e), l = new Worker(c);
@@ -15784,19 +15789,19 @@ function dv(e, t, n = 3e3) {
15784
15789
  }
15785
15790
  //#endregion
15786
15791
  //#region src/core/tools/windowOps.ts
15787
- var fv = /* @__PURE__ */ new Set([
15792
+ var pv = /* @__PURE__ */ new Set([
15788
15793
  "__proto__",
15789
15794
  "constructor",
15790
15795
  "prototype"
15791
15796
  ]);
15792
- function pv(e) {
15793
- return e.split(".").some((e) => fv.has(e));
15794
- }
15795
- function mv(e, t) {
15796
- if (!(!t || typeof t != "object" || Array.isArray(t))) for (let n of Object.keys(t)) fv.has(n) || (e[n] = t[n]);
15797
+ function mv(e) {
15798
+ return e.split(".").some((e) => pv.has(e));
15797
15799
  }
15798
15800
  function hv(e, t) {
15799
- if (pv(t)) return;
15801
+ if (!(!t || typeof t != "object" || Array.isArray(t))) for (let n of Object.keys(t)) pv.has(n) || (e[n] = t[n]);
15802
+ }
15803
+ function gv(e, t) {
15804
+ if (mv(t)) return;
15800
15805
  let n = t.split("."), r = e;
15801
15806
  for (let e of n) {
15802
15807
  if (r == null) return;
@@ -15804,8 +15809,8 @@ function hv(e, t) {
15804
15809
  }
15805
15810
  return r;
15806
15811
  }
15807
- function gv(e, t, n) {
15808
- if (pv(t)) return;
15812
+ function _v(e, t, n) {
15813
+ if (mv(t)) return;
15809
15814
  let r = t.split("."), i = e;
15810
15815
  for (let e = 0; e < r.length - 1; e++) {
15811
15816
  let t = r[e];
@@ -15813,8 +15818,8 @@ function gv(e, t, n) {
15813
15818
  }
15814
15819
  i[r[r.length - 1]] = n;
15815
15820
  }
15816
- function _v(e, t) {
15817
- if (pv(t)) return !1;
15821
+ function vv(e, t) {
15822
+ if (mv(t)) return !1;
15818
15823
  let n = t.split("."), r = e;
15819
15824
  for (let e = 0; e < n.length - 1; e++) {
15820
15825
  if (r == null) return !1;
@@ -15823,10 +15828,10 @@ function _v(e, t) {
15823
15828
  let i = n[n.length - 1];
15824
15829
  return r == null || !(i in r) ? !1 : (delete r[i], !0);
15825
15830
  }
15826
- function vv(e) {
15831
+ function yv(e) {
15827
15832
  return e === void 0 ? void 0 : JSON.parse(JSON.stringify(e));
15828
15833
  }
15829
- function yv(e, t = Infinity) {
15834
+ function bv(e, t = Infinity) {
15830
15835
  let n = /* @__PURE__ */ new WeakSet(), r;
15831
15836
  try {
15832
15837
  r = JSON.stringify(e, (e, t) => {
@@ -15845,35 +15850,35 @@ function yv(e, t = Infinity) {
15845
15850
  }
15846
15851
  return r.length > t && (r = r.slice(0, t) + `\n…[已截断,原长度 ${r.length}]`), r;
15847
15852
  }
15848
- function bv(e) {
15849
- let t = yv(e), n = 5381;
15853
+ function xv(e) {
15854
+ let t = bv(e), n = 5381;
15850
15855
  for (let e = 0; e < t.length; e++) n = (n << 5) + n + t.charCodeAt(e) >>> 0;
15851
15856
  return n.toString(36);
15852
15857
  }
15853
- function xv(e, t, n, r) {
15854
- if (t === "set") return n ? (gv(e, n, r), null) : "set 操作需要 jsonPath(整体替换请用 set_window_prop)";
15855
- if (t === "remove") return n ? (_v(e, n), null) : "remove 操作需要 jsonPath";
15858
+ function Sv(e, t, n, r) {
15859
+ if (t === "set") return n ? (_v(e, n, r), null) : "set 操作需要 jsonPath(整体替换请用 set_window_prop)";
15860
+ if (t === "remove") return n ? (vv(e, n), null) : "remove 操作需要 jsonPath";
15856
15861
  if (t === "merge") {
15857
- let t = n ? hv(e, n) : e;
15858
- return typeof t != "object" || !t || Array.isArray(t) ? `merge 目标${n ? `(${n})` : "(根)"}不是对象` : (mv(t, r), null);
15862
+ let t = n ? gv(e, n) : e;
15863
+ return typeof t != "object" || !t || Array.isArray(t) ? `merge 目标${n ? `(${n})` : "(根)"}不是对象` : (hv(t, r), null);
15859
15864
  }
15860
- let i = n ? hv(e, n) : e;
15865
+ let i = n ? gv(e, n) : e;
15861
15866
  return Array.isArray(i) ? (Array.isArray(r) ? i.push(...r) : i.push(r), null) : `append 目标${n ? `(${n})` : "(根)"}不是数组`;
15862
15867
  }
15863
- function Sv(e, t, n, r) {
15864
- if (t === "set") gv(window, `${e}.${n}`, r);
15865
- else if (t === "remove") _v(window, `${e}.${n}`);
15866
- else if (t === "merge") mv(n ? hv(window, `${e}.${n}`) : hv(window, e), r);
15868
+ function Cv(e, t, n, r) {
15869
+ if (t === "set") _v(window, `${e}.${n}`, r);
15870
+ else if (t === "remove") vv(window, `${e}.${n}`);
15871
+ else if (t === "merge") hv(n ? gv(window, `${e}.${n}`) : gv(window, e), r);
15867
15872
  else {
15868
- let t = n ? hv(window, `${e}.${n}`) : hv(window, e);
15873
+ let t = n ? gv(window, `${e}.${n}`) : gv(window, e);
15869
15874
  Array.isArray(r) ? t.push(...r) : t.push(r);
15870
15875
  }
15871
15876
  }
15872
- function Cv(e, t) {
15873
- let n = hv(window, e);
15874
- typeof n == "object" && n ? wv(n, t) : gv(window, e, t);
15875
- }
15876
15877
  function wv(e, t) {
15878
+ let n = gv(window, e);
15879
+ typeof n == "object" && n ? Tv(n, t) : _v(window, e, t);
15880
+ }
15881
+ function Tv(e, t) {
15877
15882
  if (Array.isArray(e)) {
15878
15883
  e.length = 0, Array.isArray(t) && e.push(...t);
15879
15884
  return;
@@ -15882,7 +15887,7 @@ function wv(e, t) {
15882
15887
  for (let t of Object.keys(e)) t in n || delete e[t];
15883
15888
  for (let t of Object.keys(n)) e[t] = n[t];
15884
15889
  }
15885
- function Tv(e, r = {}) {
15890
+ function Ev(e, r = {}) {
15886
15891
  let i = /* @__PURE__ */ new Map();
15887
15892
  for (let t of e) i.set(t.path, t);
15888
15893
  let a = /* @__PURE__ */ new Map(), o = r.maxSnapshots ?? 20, s = {
@@ -15909,7 +15914,7 @@ function Tv(e, r = {}) {
15909
15914
  return r.allowRawRead ? !0 : [...i.keys()].some((t) => e === t || e.startsWith(t + ".") || u && t.startsWith(e + "."));
15910
15915
  }
15911
15916
  function f(e, t, n) {
15912
- let r = vv(hv(window, e)), i = a.get(e) || [], s = i.length ? i[i.length - 1].id + 1 : 1;
15917
+ let r = yv(gv(window, e)), i = a.get(e) || [], s = i.length ? i[i.length - 1].id + 1 : 1;
15913
15918
  for (i.push({
15914
15919
  id: s,
15915
15920
  ts: Date.now(),
@@ -15921,13 +15926,13 @@ function Tv(e, r = {}) {
15921
15926
  }
15922
15927
  async function p(e, t, n, i) {
15923
15928
  if (!n || n === "") return null;
15924
- let o = hv(window, e), s = bv(o);
15929
+ let o = gv(window, e), s = xv(o);
15925
15930
  if (s === n) return null;
15926
15931
  if (!r.onConflict) return $({
15927
15932
  code: "VERSION_CONFLICT",
15928
15933
  path: e,
15929
15934
  message: `乐观锁冲突:expectedHash=${n} 但当前 hash=${s}。属性 "${e}" 在你 get 之后已被修改(外部代码/其他 agent/用户手动改)。`,
15930
- hint: `重新 get_window_prop("${e}") 拿最新值与 hash,基于最新值修改后再写入(传新的 expectedHash)。当前值:${yv(o, 400)}`
15935
+ hint: `重新 get_window_prop("${e}") 拿最新值与 hash,基于最新值修改后再写入(传新的 expectedHash)。当前值:${bv(o, 400)}`
15931
15936
  });
15932
15937
  let c = await r.onConflict({
15933
15938
  path: e,
@@ -15938,14 +15943,14 @@ function Tv(e, r = {}) {
15938
15943
  expectedHash: n,
15939
15944
  snapshotId: 0
15940
15945
  });
15941
- if (c.action === "keep_external") return `已保留外部修改(未写入)。当前值:${yv(o, 400)} (hash=${s})。请重新 get_window_prop("${e}") 拿最新值与 hash 再改。`;
15946
+ if (c.action === "keep_external") return `已保留外部修改(未写入)。当前值:${bv(o, 400)} (hash=${s})。请重新 get_window_prop("${e}") 拿最新值与 hash 再改。`;
15942
15947
  if (c.action === "restore") {
15943
15948
  let t = a.get(e) || [];
15944
- if (!t.length) return `无历史快照可回退(本次为首次操作)。当前值:${yv(o, 400)} (hash=${s})。请重新 get 再改或选「强制覆盖」。`;
15949
+ if (!t.length) return `无历史快照可回退(本次为首次操作)。当前值:${bv(o, 400)} (hash=${s})。请重新 get 再改或选「强制覆盖」。`;
15945
15950
  let n = t[t.length - 1];
15946
- Cv(e, vv(n.value));
15947
- let r = hv(window, e);
15948
- return `已回退 ${e} 到历史快照 #${n.id}[${n.op}]。当前值:${yv(r, 400)} (hash=${bv(r)})。请基于回退后的值重写或停止。`;
15951
+ wv(e, yv(n.value));
15952
+ let r = gv(window, e);
15953
+ return `已回退 ${e} 到历史快照 #${n.id}[${n.op}]。当前值:${bv(r, 400)} (hash=${xv(r)})。请基于回退后的值重写或停止。`;
15949
15954
  }
15950
15955
  return null;
15951
15956
  }
@@ -15980,8 +15985,8 @@ function Tv(e, r = {}) {
15980
15985
  message: `属性 "${e}" 不可读取(未注册,且非已注册路径的后代)`,
15981
15986
  hint: "用 list_window_props 查看可操作字段;字段白名单读模式下未注册的祖先(整体大 JSON)不暴露,需读其声明子路径"
15982
15987
  });
15983
- let t = hv(window, e);
15984
- return t === void 0 ? `${e} = (undefined)` : `${e} = ${yv(t)} (hash=${bv(t)})`;
15988
+ let t = gv(window, e);
15989
+ return t === void 0 ? `${e} = (undefined)` : `${e} = ${bv(t)} (hash=${xv(t)})`;
15985
15990
  }, {
15986
15991
  name: "get_window_prop",
15987
15992
  description: "读取一个已注册 window 属性的当前值(安全序列化:函数/DOM/循环引用做摘要;大结果由系统自动外存,提示用 vfs_read 回读)。返回含 hash(乐观锁):改属性前先 get 拿 hash,写入时(set/edit/delete)传 expectedHash 回传,系统对比当前 hash 防\"基于过期值覆盖\"(外部代码/其他 agent/用户手动改过会 CONFLICT,需重新 get 再改)。字段白名单读模式(默认)下仅可读注册 path 自身/后代;未注册祖先(整体大 JSON)不可读,避免大 JSON 拉进上下文。",
@@ -16000,18 +16005,18 @@ function Tv(e, r = {}) {
16000
16005
  try {
16001
16006
  o = JSON.parse(t);
16002
16007
  } catch (n) {
16003
- return V_(e, t, n);
16008
+ return H_(e, t, n);
16004
16009
  }
16005
16010
  let s = r.schema.safeParse(o);
16006
- if (!s.success) return B_(e, s.error.issues);
16011
+ if (!s.success) return V_(e, s.error.issues);
16007
16012
  f(e, "set");
16008
- let u = hv(window, e);
16009
- return typeof u == "object" && u && s.data !== null && typeof s.data == "object" ? wv(u, s.data) : gv(window, e, s.data), c({
16013
+ let u = gv(window, e);
16014
+ return typeof u == "object" && u && s.data !== null && typeof s.data == "object" ? Tv(u, s.data) : _v(window, e, s.data), c({
16010
16015
  op: "set",
16011
16016
  path: e,
16012
16017
  value: s.data,
16013
16018
  timestamp: Date.now()
16014
- }), `已设置 ${e} = ${yv(s.data, 600)} (新 hash=${bv(hv(window, e))})${l()}`;
16019
+ }), `已设置 ${e} = ${bv(s.data, 600)} (新 hash=${xv(gv(window, e))})${l()}`;
16015
16020
  }, {
16016
16021
  name: "set_window_prop",
16017
16022
  description: "设置一个已注册 window 属性的值(整体替换)。仅能操作注册表内声明的属性;value 为 JSON 字符串,需通过该属性声明的 schema 校验。校验失败会返回错误而非写入。expectedHash(可选):改前 get_window_prop 返回的 hash,传入则启用乐观锁——若属性已被改过(外部代码/其他 agent/用户手动)则返回 VERSION_CONFLICT 不写入,需重新 get 再改,防\"基于过期值覆盖\"。大对象/数组强烈建议改用 edit_window_prop 增量 patch。",
@@ -16029,13 +16034,13 @@ function Tv(e, r = {}) {
16029
16034
  hint: "用 list_window_props 查看可用属性"
16030
16035
  });
16031
16036
  let s = n || "";
16032
- if (pv(s)) return $({
16037
+ if (mv(s)) return $({
16033
16038
  code: "PATH_UNSAFE",
16034
16039
  path: e,
16035
16040
  message: `jsonPath "${s}" 含非法段(__proto__/constructor/prototype)`,
16036
16041
  hint: "使用正常的属性路径,如 components.0.text(数组索引用数字)"
16037
16042
  });
16038
- let u = hv(window, e), d = await p(e, "edit", a);
16043
+ let u = gv(window, e), d = await p(e, "edit", a);
16039
16044
  if (d !== null) return d;
16040
16045
  if (typeof u != "object" || !u) return $({
16041
16046
  code: "NOT_OBJECT",
@@ -16054,10 +16059,10 @@ function Tv(e, r = {}) {
16054
16059
  try {
16055
16060
  m = JSON.parse(r);
16056
16061
  } catch (t) {
16057
- return V_(e, r, t);
16062
+ return H_(e, r, t);
16058
16063
  }
16059
16064
  }
16060
- let h = vv(u), g = xv(h, t, s, m);
16065
+ let h = yv(u), g = Sv(h, t, s, m);
16061
16066
  if (g) return $({
16062
16067
  code: "PATCH_FAILED",
16063
16068
  path: e,
@@ -16065,13 +16070,13 @@ function Tv(e, r = {}) {
16065
16070
  hint: "检查 op 与目标类型:merge 需目标为对象,append 需目标为数组;jsonPath 指向需存在"
16066
16071
  });
16067
16072
  let _ = o.schema.safeParse(h);
16068
- return _.success ? (f(e, "edit"), Sv(e, t, s, m), c({
16073
+ return _.success ? (f(e, "edit"), Cv(e, t, s, m), c({
16069
16074
  op: "edit",
16070
16075
  path: e,
16071
16076
  detail: `${t}${s ? "@" + s : ""}`,
16072
16077
  value: m,
16073
16078
  timestamp: Date.now()
16074
- }), `已 edit ${e}(${t}${s ? " @ " + s : ""})。当前值:${yv(hv(window, e), 600)} (新 hash=${bv(hv(window, e))})${l()}`) : B_(e, _.error.issues);
16079
+ }), `已 edit ${e}(${t}${s ? " @ " + s : ""})。当前值:${bv(gv(window, e), 600)} (新 hash=${xv(gv(window, e))})${l()}`) : V_(e, _.error.issues);
16075
16080
  }, {
16076
16081
  name: "edit_window_prop",
16077
16082
  description: "增量编辑一个已注册的「对象/数组」window 属性,只发改动的 patch,无需重传整个大对象。op:set(在 jsonPath 设值)、remove(删 jsonPath)、merge(把 value 合并到 jsonPath 指向的对象,默认根)、append(把 value 追加到 jsonPath 指向的数组,默认根)。jsonPath 为相对属性根的点号路径(数组索引用数字,如 components.0.text);value 为 JSON 字符串。整体仍经 schema 校验,失败不写入。expectedHash(可选):改前 get_window_prop 返回的 hash,传入启用乐观锁防\"基于过期值覆盖\"。",
@@ -16097,7 +16102,7 @@ function Tv(e, r = {}) {
16097
16102
  let n = await p(e, "delete", t);
16098
16103
  if (n !== null) return n;
16099
16104
  f(e, "delete");
16100
- let r = _v(window, e);
16105
+ let r = vv(window, e);
16101
16106
  return c({
16102
16107
  op: "delete",
16103
16108
  path: e,
@@ -16171,7 +16176,7 @@ function Tv(e, r = {}) {
16171
16176
  hint: "用 list_window_snapshots 查看可用快照序号"
16172
16177
  });
16173
16178
  let s = n.schema.safeParse(o.value);
16174
- return s.success ? (Cv(e, vv(o.value)), c({
16179
+ return s.success ? (wv(e, yv(o.value)), c({
16175
16180
  op: "restore",
16176
16181
  path: e,
16177
16182
  detail: `#${o.id}`,
@@ -16181,7 +16186,7 @@ function Tv(e, r = {}) {
16181
16186
  path: e,
16182
16187
  message: `快照 #${o.id} 的值不符合当前 schema,无法回退`,
16183
16188
  hint: "schema 可能已变更;该快照已过期,选其他快照或重新设置",
16184
- details: z_(s.error.issues)
16189
+ details: B_(s.error.issues)
16185
16190
  });
16186
16191
  }, {
16187
16192
  name: "restore_window_snapshot",
@@ -16206,8 +16211,8 @@ function Tv(e, r = {}) {
16206
16211
  })}`);
16207
16212
  continue;
16208
16213
  }
16209
- let e = hv(window, n);
16210
- t.push(`- ${n} = ${e === void 0 ? "(undefined)" : yv(e)}`);
16214
+ let e = gv(window, n);
16215
+ t.push(`- ${n} = ${e === void 0 ? "(undefined)" : bv(e)}`);
16211
16216
  }
16212
16217
  return t.join("\n");
16213
16218
  }, {
@@ -16228,7 +16233,7 @@ function Tv(e, r = {}) {
16228
16233
  message: `属性 "${e}" 未注册`,
16229
16234
  hint: "用 list_window_props 查看可用属性"
16230
16235
  });
16231
- let r = hv(window, e);
16236
+ let r = gv(window, e);
16232
16237
  if (typeof r != "object" || !r) return $({
16233
16238
  code: "NOT_OBJECT",
16234
16239
  path: e,
@@ -16237,7 +16242,7 @@ function Tv(e, r = {}) {
16237
16242
  });
16238
16243
  let a;
16239
16244
  try {
16240
- a = ov(r, t);
16245
+ a = sv(r, t);
16241
16246
  } catch (n) {
16242
16247
  return $({
16243
16248
  code: "JSONPATH_SYNTAX",
@@ -16247,7 +16252,7 @@ function Tv(e, r = {}) {
16247
16252
  details: { expr: t }
16248
16253
  });
16249
16254
  }
16250
- let o = n ?? 50, s = a.slice(0, o), c = s.map((e) => `{"path":${JSON.stringify(e.path)},"index":${e.index === void 0 ? "null" : e.index},"value":${yv(e.value)}}`);
16255
+ let o = n ?? 50, s = a.slice(0, o), c = s.map((e) => `{"path":${JSON.stringify(e.path)},"index":${e.index === void 0 ? "null" : e.index},"value":${bv(e.value)}}`);
16251
16256
  return `{"matched":${a.length},"returned":${s.length},"truncated":${a.length > o},"results":[${c.join(",")}]}`;
16252
16257
  }, {
16253
16258
  name: "query_window_prop",
@@ -16265,20 +16270,20 @@ function Tv(e, r = {}) {
16265
16270
  message: `属性 "${e}" 未注册`,
16266
16271
  hint: "用 list_window_props 查看可用属性"
16267
16272
  });
16268
- let s = hv(window, e);
16273
+ let s = gv(window, e);
16269
16274
  if (s == null) return $({
16270
16275
  code: "EMPTY",
16271
16276
  path: e,
16272
16277
  message: `"${e}" 为空,无可搜索内容`
16273
16278
  });
16274
16279
  try {
16275
- let e = cv(s, t, {
16280
+ let e = lv(s, t, {
16276
16281
  mode: n,
16277
16282
  fuzzyThreshold: r,
16278
16283
  matchKey: a,
16279
16284
  limit: o ?? 50
16280
16285
  });
16281
- return yv({
16286
+ return bv({
16282
16287
  matched: e.length,
16283
16288
  results: e
16284
16289
  });
@@ -16321,7 +16326,7 @@ function Tv(e, r = {}) {
16321
16326
  message: `脚本过长(${t.length} 字符,上限 8000)`,
16322
16327
  hint: "精简脚本;复杂逻辑可分步(先 query 探查再 transform 改),或拆成多次 eval"
16323
16328
  });
16324
- let a = await dv(vv(hv(window, e)), t, 3e3);
16329
+ let a = await fv(yv(gv(window, e)), t, 3e3);
16325
16330
  if (!a.ok) {
16326
16331
  let n = /超时/.test(a.error || "");
16327
16332
  return $({
@@ -16342,18 +16347,18 @@ function Tv(e, r = {}) {
16342
16347
  path: e,
16343
16348
  message: "脚本返回值校验失败,未写入(transform 模式要求返回该属性的完整新值且符合 schema)",
16344
16349
  hint: `确认脚本 return 了完整新值(非部分);按 describe_window_prop("${e}") 查看格式`,
16345
- details: z_(t.error.issues)
16350
+ details: B_(t.error.issues)
16346
16351
  });
16347
16352
  f(e, "edit", "eval_transform");
16348
- let n = hv(window, e);
16349
- return typeof n == "object" && n && t.data !== null && typeof t.data == "object" ? wv(n, t.data) : gv(window, e, t.data), c({
16353
+ let n = gv(window, e);
16354
+ return typeof n == "object" && n && t.data !== null && typeof t.data == "object" ? Tv(n, t.data) : _v(window, e, t.data), c({
16350
16355
  op: "edit",
16351
16356
  path: e,
16352
16357
  detail: "eval_transform",
16353
16358
  timestamp: Date.now()
16354
- }), `已通过脚本 transform 更新 ${e}(耗时 ${a.elapsedMs}ms)。当前值: ${yv(hv(window, e), 600)}`;
16359
+ }), `已通过脚本 transform 更新 ${e}(耗时 ${a.elapsedMs}ms)。当前值: ${bv(gv(window, e), 600)}`;
16355
16360
  }
16356
- return yv({
16361
+ return bv({
16357
16362
  ok: !0,
16358
16363
  result: a.result,
16359
16364
  elapsedMs: a.elapsedMs
@@ -16377,8 +16382,8 @@ function Tv(e, r = {}) {
16377
16382
  }
16378
16383
  //#endregion
16379
16384
  //#region src/core/tools/fetchDoc.ts
16380
- var Ev = 3e4, Dv = [n(async ({ url: e, as: t }) => {
16381
- let n = new AbortController(), r = setTimeout(() => n.abort(), Ev);
16385
+ var Dv = 3e4, Ov = [n(async ({ url: e, as: t }) => {
16386
+ let n = new AbortController(), r = setTimeout(() => n.abort(), Dv);
16382
16387
  try {
16383
16388
  let r = await fetch(e, {
16384
16389
  method: "GET",
@@ -16395,7 +16400,7 @@ var Ev = 3e4, Dv = [n(async ({ url: e, as: t }) => {
16395
16400
  ].join("\n");
16396
16401
  } catch (t) {
16397
16402
  let r = t?.message || String(t);
16398
- return n.signal.aborted ? `获取失败:请求超时(${Ev}ms,${e})。` : /Failed to fetch|NetworkError|CORS|blocked/i.test(r) ? `获取失败:可能是 CORS 跨域拦截或网络错误(${r})。浏览器仅能 GET 同源或服务端已配置 CORS 的资源;跨域抓取需后端代理。` : `获取失败:${r}`;
16403
+ return n.signal.aborted ? `获取失败:请求超时(${Dv}ms,${e})。` : /Failed to fetch|NetworkError|CORS|blocked/i.test(r) ? `获取失败:可能是 CORS 跨域拦截或网络错误(${r})。浏览器仅能 GET 同源或服务端已配置 CORS 的资源;跨域抓取需后端代理。` : `获取失败:${r}`;
16399
16404
  } finally {
16400
16405
  clearTimeout(r);
16401
16406
  }
@@ -16406,24 +16411,24 @@ var Ev = 3e4, Dv = [n(async ({ url: e, as: t }) => {
16406
16411
  url: t.string().describe("要抓取的 URL(同源或已配 CORS)"),
16407
16412
  as: t.enum(["text", "markdown"]).optional().describe("返回格式标签,默认 text")
16408
16413
  })
16409
- })], Ov = Dv;
16410
- function kv(e, t) {
16411
- return Tv(e, t);
16414
+ })], kv = Ov;
16415
+ function Av(e, t) {
16416
+ return Ev(e, t);
16412
16417
  }
16413
- function Av(e, t, n) {
16418
+ function jv(e, t, n) {
16414
16419
  let r = e?.windowOps !== !1, i = e?.fetch !== !1;
16415
16420
  return [...r ? t : [], ...i ? n : []];
16416
16421
  }
16417
16422
  //#endregion
16418
16423
  //#region src/core/harness/usageHints.ts
16419
- var jv = .7;
16420
- function Mv(e, t) {
16424
+ var Mv = .7;
16425
+ function Nv(e, t) {
16421
16426
  return {
16422
16427
  name: "usageHints",
16423
16428
  augmentPrompt: () => {
16424
16429
  let n = [];
16425
16430
  if (e?.planning !== !1 && n.push("多步任务建议先 write_todos 拆解为步骤并逐步推进。"), t && (n.push("改属性前先 get_window_prop(path) 读其当前真实值与 hash(返回末尾 hash=xxx),基于真实值改,不要凭记忆。写入(set/edit/delete)时回传 expectedHash=该 hash 启用乐观锁——若属性在你 get 之后被外部代码/其他 agent/用户手动改过,会触发冲突:集成方若开启人工介入,工具会挂起等用户决定(保留外部/强制覆盖/回退),你应等待工具返回后按结果继续(保留外部→重新 get 再改;强制覆盖→已写入,继续;回退→已回退到历史快照,基于回退值重写);未开启人工介入时返回 VERSION_CONFLICT 不写入,重新 get 拿最新值与 hash 再改。"), n.push("不确定可操作哪些属性时用 list_window_props 查看(动态组件场景下注册表会增删,以工具返回为准,勿凭旧记忆);不确定某属性字段结构时用 describe_window_prop。"), n.push("修改大对象/数组属性优先用 edit_window_prop 增量 patch(只发改动部分),避免 set 整体重传被 max_tokens 截断导致 JSON 不完整、校验失败。"), n.push("修改属性出错时可用 restore_window_snapshot(path) 回退最近一次。"), n.push("在大数组里按条件筛选元素用 query_window_prop(JSONPath,如 $[?(@.type==\"card\" && @.price<100)]),返回匹配元素的 path/index;定位后再 edit_window_prop 改。"), n.push("找名字记不清的元素用 search_window_prop(支持 substring/regex/fuzzy 模糊搜索)。"), n.push("需要过滤/映射/聚合/批量重写大数组时用 eval_window_script(沙箱脚本,入参 data);只读探查用 mode=query,批量重写用 mode=transform(返回值经校验后落地)。")), e?.subagent !== !1 && n.push("独立子任务可 spawn_agent 委派(只读工具,过程不占主上下文)。"), e?.subagents?.length) {
16426
- let t = e.subagents.filter((e) => (e.temperature ?? 0) >= jv || /规划|创意|设计|方案|brainstorm|plan/i.test(e.description)), r = e.subagents.filter((e) => (e.temperature ?? 0) < jv && /反思|审查|挑刺|校验|review|critique|reflect/i.test(e.description));
16431
+ let t = e.subagents.filter((e) => (e.temperature ?? 0) >= Mv || /规划|创意|设计|方案|brainstorm|plan/i.test(e.description)), r = e.subagents.filter((e) => (e.temperature ?? 0) < Mv && /反思|审查|挑刺|校验|review|critique|reflect/i.test(e.description));
16427
16432
  n.push("【规划-反思-执行·路由】按任务性质选模式,不要对简单任务过度编排:"), t.length && (n.push(` · 创作/设计/开放性需求(如"设计主题风格""换个感觉")→ 先调 ${t.map((e) => "use_" + e.id).join("/")} 出 2-3 套方案(高温创意),`), n.push(" 不要自己拍板;拿到方案后,若需用户拍板用 request_human_confirmation 弹选项。")), r.length && n.push(` · 严谨/易错/校验类 → 可先调 ${r.map((e) => "use_" + e.id).join("/")} 反思挑刺(低温审查),据反馈修订。`), n.push(" · 方案定稿后,由你(主 agent)用 edit_window_prop 落地成 JSON(低温度执行 + schema 校验 + 写前确认)。"), n.push(" · 简单/明确任务(如\"标题改红色\")直接执行,不必走规划-反思。");
16428
16433
  }
16429
16434
  return e?.humanConfirm && (n.push("【人工确认·必读】以下情形必须先调 request_human_confirmation 征询用户、拿到答复后再继续,不要自行拍板:"), n.push(" 1) 用户让你「给方案/列选项/我来选/挑一个」时:把每个方案作为一个 option,调 request_human_confirmation(question=简述, options=[方案A,方案B,...], recommendation=你推荐的)。不要只回文字罗列方案让用户自己回复——要用工具把选项做成可点选按钮。"), n.push(" 2) 需求有歧义/不确定时:调工具问清楚(options 不传则用户答同意或拒绝)。"), n.push(" 3) 即将执行高风险不可逆操作(删除/覆盖/批量改动)前:调工具确认。"), n.push("用户在选项里选了哪个,就按那个方案继续;选「拒绝」则停止并询问如何调整。")), n.length && n.unshift("调用工具务必用标准 function calling(工具调用)格式发起,不要在回复正文里输出伪 XML/标签(如 deepseek 的 tool_calls 标签、invoke、function_call、tool_call 等)或 JSON 文本——那不会被识别为工具调用,会被当普通文字,工具不执行。"), n.length ? "## 能力使用提示\n" + n.join("\n") : void 0;
@@ -16432,7 +16437,7 @@ function Mv(e, t) {
16432
16437
  }
16433
16438
  //#endregion
16434
16439
  //#region src/core/utils/id.ts
16435
- function Nv() {
16440
+ function Pv() {
16436
16441
  try {
16437
16442
  if (typeof crypto < "u" && typeof crypto.randomUUID == "function") return crypto.randomUUID();
16438
16443
  } catch {}
@@ -16440,57 +16445,57 @@ function Nv() {
16440
16445
  }
16441
16446
  //#endregion
16442
16447
  //#region src/core/backends/storage.ts
16443
- var Pv = "chat-sdk", Fv = 50 * 1024 * 1024, Iv = 4 * 1024 * 1024, Lv = 10 * 1024 * 1024, Rv = .9, zv = 500, Bv = 300, Vv = "__meta__", Hv = "v:1", Uv = [
16448
+ var Fv = "chat-sdk", Iv = 50 * 1024 * 1024, Lv = 4 * 1024 * 1024, Rv = 10 * 1024 * 1024, zv = .9, Bv = 500, Vv = 300, Hv = "__meta__", Uv = "v:1", Wv = [
16444
16449
  "messages",
16445
16450
  "vfs",
16446
16451
  "todos",
16447
16452
  "memory"
16448
16453
  ];
16449
- function Wv(e) {
16450
- return e === "local" || e === "session" ? Iv : Fv;
16451
- }
16452
16454
  function Gv(e) {
16455
+ return e === "local" || e === "session" ? Lv : Iv;
16456
+ }
16457
+ function Kv(e) {
16453
16458
  if (typeof e != "object" || !e) return !1;
16454
16459
  let t = e;
16455
16460
  return t.name === "QuotaExceededError" || t.name === "NS_ERROR_DOM_QUOTA_REACHED" || t.code === 22 || t.code === 1014;
16456
16461
  }
16457
- function Kv(e, t, n, r) {
16462
+ function qv(e, t, n, r) {
16458
16463
  return [
16459
- Hv,
16464
+ Uv,
16460
16465
  e,
16461
16466
  t,
16462
16467
  n,
16463
16468
  r
16464
16469
  ].join("::");
16465
16470
  }
16466
- function qv(e, t, n) {
16471
+ function Jv(e, t, n) {
16467
16472
  return [
16468
- Hv,
16473
+ Uv,
16469
16474
  e,
16470
16475
  t,
16471
16476
  n
16472
16477
  ].join("::") + "::";
16473
16478
  }
16474
- function Jv(e, t) {
16479
+ function Yv(e, t) {
16475
16480
  return [
16476
- Hv,
16481
+ Uv,
16477
16482
  e,
16478
16483
  t
16479
16484
  ].join("::") + "::";
16480
16485
  }
16481
- function Yv(e) {
16482
- return [Hv, e].join("::") + "::";
16486
+ function Xv(e) {
16487
+ return [Uv, e].join("::") + "::";
16483
16488
  }
16484
- var Xv = null;
16485
- function Zv(e) {
16486
- Xv ||= new TextEncoder();
16489
+ var Zv = null;
16490
+ function Qv(e) {
16491
+ Zv ||= new TextEncoder();
16487
16492
  try {
16488
- return Xv.encode(JSON.stringify(e)).length;
16493
+ return Zv.encode(JSON.stringify(e)).length;
16489
16494
  } catch {
16490
16495
  return 0;
16491
16496
  }
16492
16497
  }
16493
- function Qv(e, t, n) {
16498
+ function $v(e, t, n) {
16494
16499
  let r = e.reduce((e, t) => e + t.bytes, 0);
16495
16500
  if (r <= t) return [];
16496
16501
  let i = t * n, a = [...e].sort((e, t) => e.lastAccessed - t.lastAccessed), o = [];
@@ -16500,7 +16505,7 @@ function Qv(e, t, n) {
16500
16505
  }
16501
16506
  return o;
16502
16507
  }
16503
- function $v() {
16508
+ function ey() {
16504
16509
  let e = /* @__PURE__ */ new Map();
16505
16510
  return {
16506
16511
  async get(t) {
@@ -16520,7 +16525,7 @@ function $v() {
16520
16525
  }
16521
16526
  };
16522
16527
  }
16523
- function ey(e) {
16528
+ function ty(e) {
16524
16529
  return new Promise((t, n) => {
16525
16530
  if (typeof indexedDB > "u") {
16526
16531
  n(/* @__PURE__ */ Error("indexedDB 不可用"));
@@ -16581,7 +16586,7 @@ function ey(e) {
16581
16586
  }, r.onerror = () => n(r.error);
16582
16587
  });
16583
16588
  }
16584
- function ty(e) {
16589
+ function ny(e) {
16585
16590
  return {
16586
16591
  async get(t) {
16587
16592
  let n = e.getItem(t);
@@ -16615,12 +16620,12 @@ function ty(e) {
16615
16620
  }
16616
16621
  };
16617
16622
  }
16618
- function ny(e, t, n) {
16623
+ function ry(e, t, n) {
16619
16624
  let r = (e.get(t) ?? Promise.resolve()).then(n, n);
16620
16625
  return e.set(t, r.then(() => void 0, () => void 0)), r;
16621
16626
  }
16622
- function ry(e = {}) {
16623
- let t = e.dbName ?? Pv, n = e.backend ?? "indexed", r = e.maxBytes ?? Wv(n), i = e.maxBytesPerSession ?? Lv, a = e.evictionWatermark ?? Rv, o = e.debounceMs ?? zv, s = /* @__PURE__ */ new Set();
16627
+ function iy(e = {}) {
16628
+ let t = e.dbName ?? Fv, n = e.backend ?? "indexed", r = e.maxBytes ?? Gv(n), i = e.maxBytesPerSession ?? Rv, a = e.evictionWatermark ?? zv, o = e.debounceMs ?? Bv, s = /* @__PURE__ */ new Set();
16624
16629
  function c(e) {
16625
16630
  for (let t of s) try {
16626
16631
  t(e);
@@ -16633,16 +16638,16 @@ function ry(e = {}) {
16633
16638
  try {
16634
16639
  if (n === "indexed") {
16635
16640
  if (typeof indexedDB > "u") throw Error("indexedDB 不可用");
16636
- l = await ey(t), d(!0);
16641
+ l = await ty(t), d(!0);
16637
16642
  } else if (n === "session") {
16638
16643
  if (typeof sessionStorage > "u") throw Error("sessionStorage 不可用");
16639
- l = ty(sessionStorage), d(!0);
16644
+ l = ny(sessionStorage), d(!0);
16640
16645
  } else if (n === "local") {
16641
16646
  if (typeof localStorage > "u") throw Error("localStorage 不可用");
16642
- l = ty(localStorage), d(!0);
16643
- } else l = $v(), d(!1);
16647
+ l = ny(localStorage), d(!0);
16648
+ } else l = ey(), d(!1);
16644
16649
  } catch (e) {
16645
- l = $v();
16650
+ l = ey();
16646
16651
  let t = e instanceof Error ? e.message : String(e);
16647
16652
  d(!1), Promise.resolve().then(() => c({
16648
16653
  type: "degraded",
@@ -16652,10 +16657,10 @@ function ry(e = {}) {
16652
16657
  })();
16653
16658
  let p = /* @__PURE__ */ new Map(), m = /* @__PURE__ */ new Map(), h = /* @__PURE__ */ new Map();
16654
16659
  function g(e, n, r, a) {
16655
- let o = Kv(t, r, a, Vv);
16656
- return ny(h, o, async () => {
16660
+ let o = qv(t, r, a, Hv);
16661
+ return ry(h, o, async () => {
16657
16662
  let t = async () => {
16658
- let t = await l.get(o), s = await l.get(e), u = s == null ? 0 : Zv(s), d = Zv(n), f = (t?.bytes ?? 0) + (d - u);
16663
+ let t = await l.get(o), s = await l.get(e), u = s == null ? 0 : Qv(s), d = Qv(n), f = (t?.bytes ?? 0) + (d - u);
16659
16664
  if (f > i) {
16660
16665
  c({
16661
16666
  type: "quota",
@@ -16677,12 +16682,12 @@ function ry(e = {}) {
16677
16682
  try {
16678
16683
  await t();
16679
16684
  } catch (e) {
16680
- if (Gv(e) && !u) {
16685
+ if (Kv(e) && !u) {
16681
16686
  u = !0;
16682
16687
  try {
16683
16688
  await b();
16684
16689
  } catch {}
16685
- l = $v(), Promise.resolve().then(() => c({
16690
+ l = ey(), Promise.resolve().then(() => c({
16686
16691
  type: "degraded",
16687
16692
  reason: "存储配额超限(QuotaExceededError),已淘汰最旧会话并降级内存"
16688
16693
  }));
@@ -16694,7 +16699,7 @@ function ry(e = {}) {
16694
16699
  });
16695
16700
  }
16696
16701
  function _(e, n, r, i) {
16697
- let a = Kv(t, e, n, r), s = p.get(a);
16702
+ let a = qv(t, e, n, r), s = p.get(a);
16698
16703
  s && s.resolve();
16699
16704
  let c = m.get(a);
16700
16705
  return c && clearTimeout(c), new Promise((t) => {
@@ -16721,15 +16726,15 @@ function ry(e = {}) {
16721
16726
  function y() {
16722
16727
  v ||= setTimeout(() => {
16723
16728
  v = null, b();
16724
- }, Bv);
16729
+ }, Vv);
16725
16730
  }
16726
16731
  async function b() {
16727
16732
  let e = [];
16728
- await l.scan(Yv(t), (t, n) => {
16733
+ await l.scan(Xv(t), (t, n) => {
16729
16734
  t.endsWith("::__meta__") && e.push(n);
16730
16735
  });
16731
- let n = Qv(e, r, a);
16732
- for (let e of n) await l.clearPrefix(qv(t, e.agentId, e.sessionId)), c({
16736
+ let n = $v(e, r, a);
16737
+ for (let e of n) await l.clearPrefix(Jv(t, e.agentId, e.sessionId)), c({
16733
16738
  type: "evicted",
16734
16739
  agentId: e.agentId,
16735
16740
  sessionId: e.sessionId,
@@ -16740,13 +16745,13 @@ function ry(e = {}) {
16740
16745
  ready: f,
16741
16746
  async listSessions(e) {
16742
16747
  let n = [];
16743
- return await l.scan(Jv(t, e), (e, t) => {
16748
+ return await l.scan(Yv(t, e), (e, t) => {
16744
16749
  e.endsWith("::__meta__") && n.push(t);
16745
16750
  }), n.sort((e, t) => t.lastAccessed - e.lastAccessed);
16746
16751
  },
16747
16752
  async load(e, n) {
16748
- let r = Kv(t, e, n, Vv);
16749
- return await ny(h, r, async () => {
16753
+ let r = qv(t, e, n, Hv);
16754
+ return await ry(h, r, async () => {
16750
16755
  let i = await l.get(r);
16751
16756
  if (!i) return;
16752
16757
  let a = {
@@ -16755,8 +16760,8 @@ function ry(e = {}) {
16755
16760
  todos: [],
16756
16761
  memory: ""
16757
16762
  };
16758
- for (let r of Uv) {
16759
- let i = await l.get(Kv(t, e, n, r));
16763
+ for (let r of Wv) {
16764
+ let i = await l.get(qv(t, e, n, r));
16760
16765
  i != null && (a[r] = i);
16761
16766
  }
16762
16767
  return i.lastAccessed = Date.now(), await l.set(r, i), a;
@@ -16764,7 +16769,7 @@ function ry(e = {}) {
16764
16769
  },
16765
16770
  async save(e, t, n) {
16766
16771
  let r = [];
16767
- for (let i of Uv) n[i] !== void 0 && r.push(_(e, t, i, n[i]));
16772
+ for (let i of Wv) n[i] !== void 0 && r.push(_(e, t, i, n[i]));
16768
16773
  await Promise.all(r);
16769
16774
  },
16770
16775
  async flush() {
@@ -16778,10 +16783,10 @@ function ry(e = {}) {
16778
16783
  })), c({ type: "flush" }), await b();
16779
16784
  },
16780
16785
  async deleteSession(e, n) {
16781
- await l.clearPrefix(qv(t, e, n));
16786
+ await l.clearPrefix(Jv(t, e, n));
16782
16787
  },
16783
16788
  async createSession(e, n, r) {
16784
- let i = r ?? Nv(), a = Date.now(), o = {
16789
+ let i = r ?? Pv(), a = Date.now(), o = {
16785
16790
  agentId: e,
16786
16791
  sessionId: i,
16787
16792
  createdAt: a,
@@ -16789,7 +16794,7 @@ function ry(e = {}) {
16789
16794
  bytes: 0,
16790
16795
  title: n
16791
16796
  };
16792
- return await l.set(Kv(t, e, i, Vv), o), i;
16797
+ return await l.set(qv(t, e, i, Hv), o), i;
16793
16798
  },
16794
16799
  onEvent(e) {
16795
16800
  s.add(e);
@@ -16804,28 +16809,28 @@ function ry(e = {}) {
16804
16809
  }
16805
16810
  //#endregion
16806
16811
  //#region src/core/sdk/createChatSdk.ts
16807
- var iy = [
16812
+ var ay = [
16808
16813
  "你是一个页面操作助手。宿主页面在 window 对象上注册了可操作的属性,你通过专用工具安全地读写这些属性来操作页面。",
16809
16814
  "所有写操作都经范围控制(仅注册表内)与 schema 校验(不合法会返回结构化错误而非写入),并自动留快照可回退。",
16810
16815
  "大对象/数组优先用增量 patch(只发改动)而非整体重传,避免输出被截断。",
16811
- I_.reliableWriteRules
16812
- ].join("\n\n"), ay = 50;
16813
- function oy(e) {
16814
- return e === void 0 || e === !1 ? null : typeof e == "string" ? ry({ backend: e }) : e.enabled === !1 ? null : ry(e);
16815
- }
16816
+ L_.reliableWriteRules
16817
+ ].join("\n\n"), oy = 50;
16816
16818
  function sy(e) {
16819
+ return e === void 0 || e === !1 ? null : typeof e == "string" ? iy({ backend: e }) : e.enabled === !1 ? null : iy(e);
16820
+ }
16821
+ function cy(e) {
16817
16822
  return !!e && typeof e == "object" && typeof e.invoke == "function" && typeof e.stream == "function";
16818
16823
  }
16819
- var cy = /* @__PURE__ */ new Map();
16820
- function ly(e) {
16824
+ var ly = /* @__PURE__ */ new Map();
16825
+ function uy(e) {
16821
16826
  let t = e.content;
16822
16827
  return typeof t == "string" ? t : Array.isArray(t) ? t.map((e) => typeof e == "string" ? e : e?.text ?? "").join("") : String(t ?? "");
16823
16828
  }
16824
- function uy(e) {
16829
+ function dy(e) {
16825
16830
  let t = e.summaryLlm ?? e.llm;
16826
16831
  if (!t) return;
16827
16832
  let n = e.summaryTemperature ?? .3, r = e.summaryMaxTokens ?? 1024, o = e.summaryTimeoutMs ?? 15e3, c;
16828
- if (sy(t)) c = t;
16833
+ if (cy(t)) c = t;
16829
16834
  else {
16830
16835
  let i = t;
16831
16836
  if (!i.apiKey) {
@@ -16843,16 +16848,16 @@ function uy(e) {
16843
16848
  return async (e) => {
16844
16849
  let t = new AbortController(), n = setTimeout(() => t.abort(), o);
16845
16850
  try {
16846
- return ly(await c.invoke([new a("你是对话历史压缩助手。把下面按轮次索引的对话要点,改写成一段连贯、紧凑的中文摘要,保留关键事实、用户意图与已用工具,不要编造。直接输出摘要正文。"), new i(e)], { signal: t.signal })).trim();
16851
+ return uy(await c.invoke([new a("你是对话历史压缩助手。把下面按轮次索引的对话要点,改写成一段连贯、紧凑的中文摘要,保留关键事实、用户意图与已用工具,不要编造。直接输出摘要正文。"), new i(e)], { signal: t.signal })).trim();
16847
16852
  } finally {
16848
16853
  clearTimeout(n);
16849
16854
  }
16850
16855
  };
16851
16856
  }
16852
- function dy(e) {
16857
+ function fy(e) {
16853
16858
  return e === "set_window_prop" ? "set" : e === "edit_window_prop" ? "edit" : e === "delete_window_prop" ? "delete" : e === "restore_window_snapshot" ? "restore" : null;
16854
16859
  }
16855
- function fy(e) {
16860
+ function py(e) {
16856
16861
  let t = e.split("."), n = globalThis.window;
16857
16862
  for (let e of t) {
16858
16863
  if (n == null) return;
@@ -16860,18 +16865,18 @@ function fy(e) {
16860
16865
  }
16861
16866
  return n;
16862
16867
  }
16863
- function py(e, t) {
16868
+ function my(e, t) {
16864
16869
  return {
16865
16870
  name: "sdk-events",
16866
16871
  wrapToolCall: async (t, n) => {
16867
- let r = await n(t), i = dy(t.name);
16872
+ let r = await n(t), i = fy(t.name);
16868
16873
  if (i) {
16869
16874
  let n = String(t.args?.path ?? "");
16870
16875
  e({
16871
16876
  type: "window_prop_change",
16872
16877
  path: n,
16873
16878
  operation: i,
16874
- value: n ? fy(n) : void 0
16879
+ value: n ? py(n) : void 0
16875
16880
  });
16876
16881
  }
16877
16882
  return r;
@@ -16884,7 +16889,7 @@ function py(e, t) {
16884
16889
  }
16885
16890
  };
16886
16891
  }
16887
- function my(e, r) {
16892
+ function hy(e, r) {
16888
16893
  let i = /* @__PURE__ */ fn(null), a = 0;
16889
16894
  function o(e) {
16890
16895
  return new Promise((t) => {
@@ -16893,7 +16898,7 @@ function my(e, r) {
16893
16898
  id: ++a,
16894
16899
  resolve: t
16895
16900
  };
16896
- i.value = n, z({
16901
+ i.value = n, de({
16897
16902
  type: "conflict",
16898
16903
  conflict: n
16899
16904
  });
@@ -16903,38 +16908,38 @@ function my(e, r) {
16903
16908
  let t = i.value;
16904
16909
  t && (i.value = null, t.resolve({ action: e }));
16905
16910
  }
16906
- let c = oy(e.storage);
16911
+ let c = sy(e.storage);
16907
16912
  e.debug && c && c.onEvent((e) => console.log("[page-agent-sdk][storage]", e));
16908
- let l = sy(e.llm) ? void 0 : e.llm, u = eg({
16913
+ let l = cy(e.llm) ? void 0 : e.llm, u = tg({
16909
16914
  model: l?.model,
16910
16915
  contextWindow: e.contextWindow ?? l?.contextWindow,
16911
16916
  maxOutputTokens: e.maxOutputTokens ?? l?.maxOutputTokens
16912
16917
  });
16913
16918
  e.debug && console.log("[page-agent-sdk][modelCaps]", u);
16914
- let d = uy(e);
16919
+ let d = dy(e);
16915
16920
  e.debug && !d && console.warn("[page-agent-sdk][summarization] 未构造 llmInvoke(apiKey 缺失?),摘要回退零成本索引摘要");
16916
- let f = /* @__PURE__ */ Qt([]), p = U_(e.vfs?.initialFiles, {
16921
+ let f = /* @__PURE__ */ Qt([]), p = W_(e.vfs?.initialFiles, {
16917
16922
  persist: c ? { save: (e) => {
16918
16923
  B.sessionId && c && c.save(r, B.sessionId, { vfs: e });
16919
16924
  } } : void 0,
16920
16925
  maxBytes: e.vfs?.maxBytes
16921
- }), m = bg(), h = Og(e.memory || ""), g = { current: null }, _ = e.checkpoint, v = _ !== void 0 && _ !== !1, y = v ? Gg({
16926
+ }), m = xg(), h = kg(e.memory || ""), g = { current: null }, _ = e.checkpoint, v = _ !== void 0 && _ !== !1, y = v ? Kg({
16922
16927
  windowPaths: (e.windowProps ?? []).map((e) => e.path),
16923
16928
  vfsStore: p,
16924
16929
  todosMw: m,
16925
16930
  getTodos: () => g.current?.getState?.()?.todos ?? [],
16926
16931
  messages: f,
16927
16932
  maxCheckpoints: _ && typeof _ == "object" ? _.maxCheckpoints : void 0
16928
- }) : null, b = !_ || typeof _ != "object" || _.auto !== !1, x = e.capabilities, S = x?.windowOps !== !1, C = S ? Tv(e.windowProps || [], {
16933
+ }) : null, b = !_ || typeof _ != "object" || _.auto !== !1, x = e.capabilities, S = x?.windowOps !== !1, C = S ? Ev(e.windowProps || [], {
16929
16934
  onAudit: e.debug ? (e) => console.log("[page-agent-sdk][window audit]", e) : void 0,
16930
16935
  maxSnapshots: e.maxSnapshots,
16931
16936
  onConflict: o
16932
- }) : [], w = S ? C.controller ?? null : null, T = () => w?.list() ?? e.windowProps ?? [], E = /* @__PURE__ */ new Map(), D = Av(x, C, Dv);
16937
+ }) : [], w = S ? C.controller ?? null : null, T = () => w?.list() ?? e.windowProps ?? [], E = /* @__PURE__ */ new Map(), D = jv(x, C, Ov);
16933
16938
  D.forEach((e) => E.set(e.name, "builtin"));
16934
16939
  let O = [...e.tools || []];
16935
16940
  O.forEach((e) => E.set(e.name, "user"));
16936
- let k = e.humanConfirm !== !1 && (!e.approval || e.approval.humanConfirmTool !== !1), A = k ? Lg() : null;
16937
- A && E.set(Fg, "builtin");
16941
+ let k = e.humanConfirm !== !1 && (!e.approval || e.approval.humanConfirmTool !== !1), A = k ? Rg() : null;
16942
+ A && E.set(Ig, "builtin");
16938
16943
  let j = v && y ? [n(async () => {
16939
16944
  let e = y.list();
16940
16945
  return e.length ? y.restore() ? `已回退到最近一次正常状态(checkpoint #${e[e.length - 1].id})。对话历史、window 注册属性、vfs、todos 已整体还原。请基于回退后的状态重新判断并继续。` : "回退失败:无可用 checkpoint。" : "无可用 checkpoint,无法回退。";
@@ -16956,36 +16961,36 @@ function my(e, r) {
16956
16961
  ...O,
16957
16962
  ...A ? [A] : [],
16958
16963
  ...j
16959
- ], N = x?.planning !== !1, P = x?.skills !== !1, F = x?.vfs !== !1, I = x?.summarization !== !1, L = x?.memory !== !1, ee = x?.subagent !== !1, R = e.verify?.maxAttempts ?? 2, te = x?.verify === !0 && e.verify?.enabled !== !1 && R > 0;
16964
+ ], N = x?.planning !== !1, P = x?.skills !== !1, F = x?.vfs !== !1, I = x?.summarization !== !1, L = x?.memory !== !1, ee = x?.subagent !== !1, R = e.verify?.maxAttempts ?? 2, z = x?.verify === !0 && e.verify?.enabled !== !1 && R > 0;
16960
16965
  e.verify?.check && x?.verify !== !0 && console.warn("[page-agent-sdk][verify] 检测到 verify.check 但 capabilities.verify 未开启,verify 未装载");
16961
- let ne = e.subagent, re = ne?.allowedTools ?? [], ie = !ee || ne?.enabled === !1 ? void 0 : e_({
16962
- llm: ne?.llm ?? e.llm,
16966
+ let te = e.subagent, ne = te?.allowedTools ?? [], re = !ee || te?.enabled === !1 ? void 0 : t_({
16967
+ llm: te?.llm ?? e.llm,
16963
16968
  allTools: M,
16964
- allowedTools: re.length ? re : void 0,
16965
- systemPrompt: ne?.systemPrompt,
16966
- temperature: ne?.temperature,
16967
- maxTokens: ne?.maxTokens,
16968
- skills: ne?.skills,
16969
- maxDepth: ne?.maxDepth,
16970
- maxParallel: ne?.maxParallel,
16969
+ allowedTools: ne.length ? ne : void 0,
16970
+ systemPrompt: te?.systemPrompt,
16971
+ temperature: te?.temperature,
16972
+ maxTokens: te?.maxTokens,
16973
+ skills: te?.skills,
16974
+ maxDepth: te?.maxDepth,
16975
+ maxParallel: te?.maxParallel,
16971
16976
  debug: e.debug
16972
- }), ae = e.subagents?.length ? r_(e.subagents, {
16977
+ }), ie = e.subagents?.length ? i_(e.subagents, {
16973
16978
  llm: e.llm,
16974
16979
  allTools: M,
16975
16980
  debug: e.debug
16976
- }) : void 0, oe = [
16981
+ }) : void 0, ae = [
16977
16982
  "get_window_prop",
16978
16983
  "get_window_paths",
16979
16984
  "list_window_props",
16980
16985
  "describe_window_prop",
16981
16986
  "fetch_document"
16982
- ], se = M.filter((e) => oe.includes(e.name)), ce = te ? i_({
16983
- check: e.verify.check ?? u_({ schemas: () => Object.fromEntries(T().map((e) => [e.path, e.schema])) }),
16987
+ ], oe = M.filter((e) => ae.includes(e.name)), se = z ? a_({
16988
+ check: e.verify.check ?? d_({ schemas: () => Object.fromEntries(T().map((e) => [e.path, e.schema])) }),
16984
16989
  adversarial: e.verify?.adversarial ? {
16985
16990
  llm: e.llm,
16986
- tools: se
16991
+ tools: oe
16987
16992
  } : void 0
16988
- }) : void 0, le = Mv({
16993
+ }) : void 0, ce = Nv({
16989
16994
  ...x,
16990
16995
  humanConfirm: k,
16991
16996
  subagents: e.subagents?.map((e) => ({
@@ -16993,22 +16998,22 @@ function my(e, r) {
16993
16998
  description: e.description,
16994
16999
  temperature: e.temperature
16995
17000
  }))
16996
- }, S && !!e.windowProps?.length), ue = e.onEvent, de = /* @__PURE__ */ new Set(), z = (e) => {
17001
+ }, S && !!e.windowProps?.length), le = e.onEvent, ue = /* @__PURE__ */ new Set(), de = (e) => {
16997
17002
  if (e.type !== "approval_request") {
16998
- if (ue) try {
16999
- ue(e);
17003
+ if (le) try {
17004
+ le(e);
17000
17005
  } catch {}
17001
- for (let t of de) try {
17006
+ for (let t of ue) try {
17002
17007
  t(e);
17003
17008
  } catch {}
17004
17009
  }
17005
17010
  }, fe = [
17006
- le,
17011
+ ce,
17007
17012
  ...N ? [m] : [],
17008
- ...P ? [Dg(e.skills || [], { readVfs: F ? (e) => p.files[e]?.content : void 0 })] : [],
17009
- ...F ? [X_(p)] : [],
17010
- ...I ? [P_({
17011
- ...R_(e, u.contextWindow),
17013
+ ...P ? [Og(e.skills || [], { readVfs: F ? (e) => p.files[e]?.content : void 0 })] : [],
17014
+ ...F ? [Z_(p)] : [],
17015
+ ...I ? [F_({
17016
+ ...z_(e, u.contextWindow),
17012
17017
  llmInvoke: d,
17013
17018
  getRegisteredProps: () => T().map((e) => ({
17014
17019
  path: e.path,
@@ -17017,21 +17022,21 @@ function my(e, r) {
17017
17022
  preserveLastToolResults: (e.contextOptions && e.contextOptions.preserveLastToolResults) ?? ["describe_window_prop", "list_window_props"]
17018
17023
  })] : [],
17019
17024
  ...L ? [h] : [],
17020
- ...e.permissions?.length ? [Ng(e.permissions)] : [],
17021
- ...v && b && y ? [Kg(y)] : [],
17022
- ...k ? [Rg()] : [],
17023
- ...e.approval && (e.approval.tools !== void 0 || e.approval.confirm) ? [Pg(e.approval)] : [],
17024
- ...ce ? [ce] : [],
17025
+ ...e.permissions?.length ? [Pg(e.permissions)] : [],
17026
+ ...v && b && y ? [qg(y)] : [],
17027
+ ...k ? [zg()] : [],
17028
+ ...e.approval && (e.approval.tools !== void 0 || e.approval.confirm) ? [Fg(e.approval)] : [],
17029
+ ...se ? [se] : [],
17030
+ ...re ? [re] : [],
17025
17031
  ...ie ? [ie] : [],
17026
- ...ae ? [ae] : [],
17027
17032
  ...e.middleware || [],
17028
- py(z, f)
17029
- ], pe = e.maxMemoryRounds ?? ay, B = {
17033
+ my(de, f)
17034
+ ], pe = e.maxMemoryRounds ?? oy, B = {
17030
17035
  agentId: r,
17031
17036
  store: c,
17032
17037
  messages: f,
17033
17038
  vfsStore: p,
17034
- listeners: de,
17039
+ listeners: ue,
17035
17040
  todosMw: m,
17036
17041
  memoryMw: h,
17037
17042
  agent: null,
@@ -17064,7 +17069,7 @@ function my(e, r) {
17064
17069
  timestamp: Date.now()
17065
17070
  }), B.afterRound(), c && await c.flush(), e;
17066
17071
  } catch (e) {
17067
- throw z({
17072
+ throw de({
17068
17073
  type: "error",
17069
17074
  message: e?.message || String(e)
17070
17075
  }), e;
@@ -17078,8 +17083,8 @@ function my(e, r) {
17078
17083
  },
17079
17084
  stream: (e, t, n) => {
17080
17085
  if (!B.agent) throw Error("page-agent-sdk: agent 尚未初始化完成,请先 await mount()");
17081
- let r = ue ? (e) => {
17082
- t?.(e), z(e);
17086
+ let r = le ? (e) => {
17087
+ t?.(e), de(e);
17083
17088
  } : t;
17084
17089
  if (n) {
17085
17090
  let e = () => s("keep_external");
@@ -17091,15 +17096,15 @@ function my(e, r) {
17091
17096
  if (B.refCount--, B.refCount <= 0) {
17092
17097
  c && (p.flush?.(), c.flush(), c.dispose());
17093
17098
  let e = B.mcpClosers.splice(0);
17094
- e.length && Promise.allSettled(e.map((e) => e())), cy.delete(r);
17099
+ e.length && Promise.allSettled(e.map((e) => e())), ly.delete(r);
17095
17100
  }
17096
17101
  },
17097
17102
  resolveConflict: s,
17098
17103
  getInfo() {
17099
17104
  return {
17100
17105
  id: r,
17101
- model: sy(e.llm) ? e.llm.model ?? e.llm.modelName : e.llm.model,
17102
- systemPrompt: e.systemPrompt ?? iy,
17106
+ model: cy(e.llm) ? e.llm.model ?? e.llm.modelName : e.llm.model,
17107
+ systemPrompt: e.systemPrompt ?? ay,
17103
17108
  tools: M.map((e) => ({
17104
17109
  name: e.name,
17105
17110
  description: e.description,
@@ -17122,15 +17127,15 @@ function my(e, r) {
17122
17127
  status: e.status
17123
17128
  })),
17124
17129
  subagent: {
17125
- enabled: !!ie,
17130
+ enabled: !!re,
17126
17131
  maxDepth: e.subagent?.maxDepth ?? 1,
17127
17132
  maxParallel: e.subagent?.maxParallel ?? 4,
17128
17133
  allowedTools: e.subagent?.allowedTools ?? []
17129
17134
  },
17130
17135
  verify: {
17131
- enabled: !!ce,
17132
- maxAttempts: te ? R : 0,
17133
- adversarial: te && !!e.verify?.adversarial
17136
+ enabled: !!se,
17137
+ maxAttempts: z ? R : 0,
17138
+ adversarial: z && !!e.verify?.adversarial
17134
17139
  },
17135
17140
  mcp: { servers: B.mcpServers },
17136
17141
  lastCompression: B.agent?.getState?.()?.lastCompression,
@@ -17161,7 +17166,7 @@ function my(e, r) {
17161
17166
  e.memory && c.save(r, B.sessionId, { memory: e.memory });
17162
17167
  }
17163
17168
  function he() {
17164
- let e = w_(f, pe);
17169
+ let e = T_(f, pe);
17165
17170
  e.trimmed && f.splice(e.deleteFrom, e.deleteCount, e.summary);
17166
17171
  }
17167
17172
  function ge() {
@@ -17173,7 +17178,7 @@ function my(e, r) {
17173
17178
  }
17174
17179
  return B.initDone = (async () => {
17175
17180
  if (await me(), e.mcp?.length) {
17176
- let t = await Promise.allSettled(e.mcp.map((e) => b_(e)));
17181
+ let t = await Promise.allSettled(e.mcp.map((e) => x_(e)));
17177
17182
  B.mcpClosers = t.flatMap((e) => e.status === "fulfilled" ? [e.value.close] : []), B.mcpServers = [];
17178
17183
  let n = [];
17179
17184
  t.forEach((t, r) => {
@@ -17185,15 +17190,15 @@ function my(e, r) {
17185
17190
  }), t.value.tools.forEach((e) => E.set(e.name, `mcp:${a}`)), n.push(...t.value.tools)) : console.warn(`[page-agent-sdk][mcp] server ${a} 连接失败:`, t.reason);
17186
17191
  }), M.push(...n), e.debug && console.log(`[page-agent-sdk][mcp] 注入 ${n.length} 个工具,${B.mcpServers.length} 个 server`);
17187
17192
  }
17188
- B.agent = vg({
17189
- ...sy(e.llm) ? { llm: e.llm } : {
17193
+ B.agent = yg({
17194
+ ...cy(e.llm) ? { llm: e.llm } : {
17190
17195
  apiKey: e.llm.apiKey,
17191
17196
  baseUrl: e.llm.baseUrl,
17192
17197
  model: e.llm.model,
17193
17198
  temperature: e.llm.temperature,
17194
17199
  maxTokens: e.llm.maxTokens
17195
17200
  },
17196
- systemPrompt: e.systemPrompt ?? iy,
17201
+ systemPrompt: e.systemPrompt ?? ay,
17197
17202
  tools: M,
17198
17203
  middleware: fe,
17199
17204
  maxToolRounds: e.maxToolRounds,
@@ -17201,16 +17206,16 @@ function my(e, r) {
17201
17206
  maxParallelTools: e.maxParallelTools,
17202
17207
  contextWindow: u.contextWindow,
17203
17208
  maxOutputTokens: u.maxOutputTokens,
17204
- maxVerifyAttempts: te ? R : 0,
17209
+ maxVerifyAttempts: z ? R : 0,
17205
17210
  debug: e.debug
17206
17211
  }), g.current = B.agent;
17207
17212
  })(), B;
17208
17213
  }
17209
- function hy(e) {
17210
- let t = e.id ?? Nv();
17214
+ function gy(e) {
17215
+ let t = e.id ?? Pv();
17211
17216
  e.id || console.warn(`[page-agent-sdk] 未传 options.id,已生成随机 id "${t}"。刷新后持久化数据无法恢复,请传稳定 id。`);
17212
- let n = e.streaming ?? !0, r = e.ui ?? "default", i, a = e.shareContext ? cy.get(t) : void 0;
17213
- a ? i = a : (i = my(e, t), e.shareContext && cy.set(t, i)), i.refCount++;
17217
+ let n = e.streaming ?? !0, r = e.ui ?? "default", i, a = e.shareContext ? ly.get(t) : void 0;
17218
+ a ? i = a : (i = hy(e, t), e.shareContext && ly.set(t, i)), i.refCount++;
17214
17219
  let o = null, s = null, c = null;
17215
17220
  async function l() {
17216
17221
  if (await i.initDone, r === !1) {
@@ -17225,7 +17230,7 @@ function hy(e) {
17225
17230
  if (!t) throw Error(`createChatSdk: 挂载点未找到(${e.container})`);
17226
17231
  let a = i.agent.debugLogs;
17227
17232
  o = ul(/* @__PURE__ */ wi({ setup() {
17228
- return () => Bs(Jh, {
17233
+ return () => Bs(Yh, {
17229
17234
  fetchStream: n ? i.agent.stream : void 0,
17230
17235
  fetchResponse: n ? void 0 : (e, t) => {
17231
17236
  if (t) {
@@ -17245,7 +17250,7 @@ function hy(e) {
17245
17250
  i.afterRound(), i.store && await i.store.flush();
17246
17251
  },
17247
17252
  onClear: () => {
17248
- i.store && (i.sessionId = Nv(), i.vfsStore.clear?.(), i.todosMw.reset([]), e.memory || i.memoryMw.reset(""), i.agent.debugLogs.value = [], i.store.createSession(i.agentId, e.session?.title, i.sessionId));
17253
+ i.store && (i.sessionId = Pv(), i.vfsStore.clear?.(), i.todosMw.reset([]), e.memory || i.memoryMw.reset(""), i.agent.debugLogs.value = [], i.store.createSession(i.agentId, e.session?.title, i.sessionId));
17249
17254
  },
17250
17255
  pendingConflict: i.pendingConflict.value,
17251
17256
  onResolveConflict: (e) => i.resolveConflict(e)
@@ -17285,7 +17290,7 @@ function hy(e) {
17285
17290
  }
17286
17291
  //#endregion
17287
17292
  //#region src/core/sdk/defineTool.ts
17288
- function gy(e) {
17293
+ function _y(e) {
17289
17294
  return n(async (t) => {
17290
17295
  let n = await e.handler(t);
17291
17296
  return typeof n == "string" ? n : JSON.stringify(n);
@@ -17296,4 +17301,4 @@ function gy(e) {
17296
17301
  });
17297
17302
  }
17298
17303
  //#endregion
17299
- export { L_ as CONTEXT_PRESETS, Jh as ChatDialog, Qd as CodePreview, Fg as HUMAN_CONFIRM_TOOL_NAME, ef as MessageContent, b_ as connectMcp, vg as createAgent, Pg as createApprovalMiddleware, hy as createChatSdk, Gg as createCheckpointManager, Kg as createCheckpointMiddleware, Rg as createHumanConfirmMiddleware, Lg as createHumanConfirmTool, $v as createMemoryBackend, ry as createSessionStore, e_ as createSubagentMiddleware, r_ as createSubagentsMiddleware, Mv as createUsageHintsMiddleware, i_ as createVerifyMiddleware, U_ as createVfs, ty as createWebStorageBackend, Tv as createWindowOps, u_ as createWriteBackCheck, xg as defineSkill, gy as defineTool, kv as defineWindowToolset, pg as detectGarbledToolCall, tg as estimateTokens, __ as extractText, Dv as fetchDocTools, Ov as fetchTools, z_ as formatZodIssues, Gv as isQuotaError, ov as jpEval, V_ as jsonParseError, rg as offloadPassThroughChars, ng as offloadThresholdChars, F_ as presets, R_ as resolveContextOptions, eg as resolveModelCaps, dv as runSandboxedScript, cv as searchJson, Av as selectBuiltinTools, I_ as systemPromptHelpers, $ as toolError, xl as useChat, e as z, B_ as zodError };
17304
+ export { R_ as CONTEXT_PRESETS, Yh as ChatDialog, $d as CodePreview, Ig as HUMAN_CONFIRM_TOOL_NAME, tf as MessageContent, x_ as connectMcp, yg as createAgent, Fg as createApprovalMiddleware, gy as createChatSdk, Kg as createCheckpointManager, qg as createCheckpointMiddleware, zg as createHumanConfirmMiddleware, Rg as createHumanConfirmTool, ey as createMemoryBackend, iy as createSessionStore, t_ as createSubagentMiddleware, i_ as createSubagentsMiddleware, Nv as createUsageHintsMiddleware, a_ as createVerifyMiddleware, W_ as createVfs, ny as createWebStorageBackend, Ev as createWindowOps, d_ as createWriteBackCheck, Sg as defineSkill, _y as defineTool, Av as defineWindowToolset, mg as detectGarbledToolCall, ng as estimateTokens, v_ as extractText, Ov as fetchDocTools, kv as fetchTools, B_ as formatZodIssues, Kv as isQuotaError, sv as jpEval, H_ as jsonParseError, ig as offloadPassThroughChars, rg as offloadThresholdChars, I_ as presets, z_ as resolveContextOptions, tg as resolveModelCaps, fv as runSandboxedScript, lv as searchJson, jv as selectBuiltinTools, L_ as systemPromptHelpers, $ as toolError, xl as useChat, e as z, V_ as zodError };