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.
- package/dist/page-agent-sdk.css +1 -1
- package/dist/page-agent-sdk.iife.js +79 -79
- package/dist/page-agent-sdk.js +902 -897
- package/dist/page-agent-sdk.umd.cjs +48 -48
- package/package.json +1 -1
package/dist/page-agent-sdk.js
CHANGED
|
@@ -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),
|
|
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
|
-
},
|
|
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) && !
|
|
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 ||
|
|
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 &&
|
|
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 &&
|
|
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) &&
|
|
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 ?
|
|
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(`${
|
|
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 || (
|
|
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 || (
|
|
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) ||
|
|
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 ?
|
|
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),
|
|
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) =>
|
|
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 (
|
|
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
|
-
|
|
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(`${
|
|
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[`${
|
|
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 || !(
|
|
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[
|
|
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 =
|
|
2190
|
-
!c && a && (c = r[s =
|
|
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,
|
|
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 =
|
|
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 =
|
|
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 (
|
|
2371
|
+
if (ne(c)) continue;
|
|
2372
2372
|
let l = t[c], u;
|
|
2373
|
-
i && D(i, u =
|
|
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 ===
|
|
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 =
|
|
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 =
|
|
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] !== "$" && !
|
|
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) =>
|
|
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(
|
|
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 =
|
|
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,
|
|
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" && !
|
|
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) !
|
|
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 (
|
|
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 =
|
|
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),
|
|
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
|
-
|
|
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 &&
|
|
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 ?
|
|
2790
|
-
},
|
|
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;)
|
|
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
|
-
|
|
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 ?
|
|
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[_] ?
|
|
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
|
-
},
|
|
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
|
-
|
|
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,
|
|
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++)
|
|
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
|
-
},
|
|
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)
|
|
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,
|
|
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
|
-
},
|
|
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) :
|
|
2899
|
-
}) :
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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,
|
|
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
|
-
},
|
|
2924
|
-
for (let o = a; o < e.length; o++)
|
|
2925
|
-
},
|
|
2926
|
-
if (e.shapeFlag & 6) return
|
|
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
|
-
},
|
|
2930
|
+
}, le = !1, ue = (e, t, n) => {
|
|
2931
2931
|
let r;
|
|
2932
|
-
e == null ? t._vnode && (
|
|
2933
|
-
},
|
|
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:
|
|
2936
|
-
m:
|
|
2937
|
-
r:
|
|
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:
|
|
2942
|
+
n: ce,
|
|
2943
2943
|
o: e
|
|
2944
2944
|
}, B, me;
|
|
2945
|
-
return t && ([B, me] = t(
|
|
2946
|
-
render:
|
|
2945
|
+
return t && ([B, me] = t(de)), {
|
|
2946
|
+
render: ue,
|
|
2947
2947
|
hydrate: B,
|
|
2948
|
-
createApp: wa(
|
|
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(
|
|
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 =
|
|
3812
|
+
let r = oe(t);
|
|
3813
3813
|
if (r !== "filter" && r in e) return Ac[t] = r;
|
|
3814
|
-
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) :
|
|
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,
|
|
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 =
|
|
3913
|
-
return Array.isArray(n) ? n.some((e) =>
|
|
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("#", "$"),
|
|
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
|
|
5971
|
+
function te(e, t) {
|
|
5972
5972
|
e.input[e.index - 1] === "." && t.ignoreMatch();
|
|
5973
5973
|
}
|
|
5974
|
-
function
|
|
5974
|
+
function ne(e, t) {
|
|
5975
5975
|
e.className !== void 0 && (e.scope = e.className, delete e.className);
|
|
5976
5976
|
}
|
|
5977
|
-
function
|
|
5978
|
-
t && e.beginKeywords && (e.begin = "\\b(" + e.beginKeywords.split(" ").join("|") + ")(?!\\.)(?=\\b|\\s)", e.__beforeBegin =
|
|
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
|
|
5980
|
+
function ie(e, t) {
|
|
5981
5981
|
Array.isArray(e.illegal) && (e.illegal = y(...e.illegal));
|
|
5982
5982
|
}
|
|
5983
|
-
function
|
|
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
|
|
5989
|
+
function oe(e, t) {
|
|
5990
5990
|
e.relevance === void 0 && (e.relevance = 1);
|
|
5991
5991
|
}
|
|
5992
|
-
var
|
|
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
|
-
},
|
|
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
|
-
],
|
|
6015
|
-
function
|
|
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,
|
|
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,
|
|
6023
|
+
r[n[0]] = [e, de(n[0], n[1])];
|
|
6024
6024
|
});
|
|
6025
6025
|
}
|
|
6026
6026
|
}
|
|
6027
|
-
function
|
|
6027
|
+
function de(e, t) {
|
|
6028
6028
|
return t ? Number(t) : +!fe(e);
|
|
6029
6029
|
}
|
|
6030
6030
|
function fe(e) {
|
|
6031
|
-
return
|
|
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
|
-
|
|
6130
|
-
|
|
6129
|
+
ne,
|
|
6130
|
+
ae,
|
|
6131
6131
|
xe,
|
|
6132
|
-
|
|
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
|
-
|
|
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 &&=
|
|
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
|
|
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:
|
|
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
|
|
6531
|
-
return Object.assign(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*=>",
|
|
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
|
-
|
|
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
|
-
}),
|
|
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
|
-
},
|
|
11330
|
+
}, te = [e.BACKSLASH_ESCAPE, {
|
|
11331
11331
|
begin: /\[/,
|
|
11332
11332
|
end: /\]/,
|
|
11333
11333
|
relevance: 0,
|
|
11334
11334
|
contains: [e.BACKSLASH_ESCAPE]
|
|
11335
|
-
}],
|
|
11335
|
+
}], ne = {
|
|
11336
11336
|
begin: /\/[^\s](?=[^/\n]*\/)/,
|
|
11337
11337
|
end: /\//,
|
|
11338
|
-
contains:
|
|
11339
|
-
},
|
|
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: [...
|
|
11344
|
+
contains: [...te, {
|
|
11345
11345
|
scope: "comment",
|
|
11346
11346
|
begin: `#(?!.*${n})`,
|
|
11347
11347
|
end: /$/
|
|
11348
11348
|
}]
|
|
11349
11349
|
};
|
|
11350
|
-
},
|
|
11350
|
+
}, ie = {
|
|
11351
11351
|
scope: "regexp",
|
|
11352
11352
|
variants: [
|
|
11353
|
-
|
|
11354
|
-
|
|
11355
|
-
|
|
11356
|
-
|
|
11353
|
+
re("###"),
|
|
11354
|
+
re("##"),
|
|
11355
|
+
re("#"),
|
|
11356
|
+
ne
|
|
11357
11357
|
]
|
|
11358
|
-
},
|
|
11359
|
-
|
|
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
|
-
],
|
|
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
|
-
|
|
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
|
-
],
|
|
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
|
-
},
|
|
11417
|
+
}, le = {
|
|
11418
11418
|
begin: /</,
|
|
11419
11419
|
end: />/,
|
|
11420
11420
|
keywords: D,
|
|
11421
11421
|
contains: [
|
|
11422
11422
|
...a,
|
|
11423
11423
|
...O,
|
|
11424
|
-
...
|
|
11424
|
+
...se,
|
|
11425
11425
|
A,
|
|
11426
|
-
|
|
11426
|
+
ce
|
|
11427
11427
|
]
|
|
11428
11428
|
};
|
|
11429
|
-
|
|
11430
|
-
let
|
|
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
|
-
|
|
11443
|
+
ie,
|
|
11444
11444
|
...O,
|
|
11445
11445
|
...k,
|
|
11446
11446
|
...j,
|
|
11447
11447
|
P,
|
|
11448
|
-
|
|
11448
|
+
z,
|
|
11449
|
+
...oe,
|
|
11449
11450
|
...se,
|
|
11450
|
-
|
|
11451
|
-
le
|
|
11451
|
+
ce
|
|
11452
11452
|
]
|
|
11453
|
-
},
|
|
11453
|
+
}, de = {
|
|
11454
11454
|
begin: /</,
|
|
11455
11455
|
end: />/,
|
|
11456
11456
|
keywords: "repeat each",
|
|
11457
|
-
contains: [...a,
|
|
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
|
-
|
|
11480
|
-
...
|
|
11481
|
-
|
|
11482
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
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: [
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
11593
|
-
...
|
|
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
|
-
|
|
11619
|
+
ie,
|
|
11620
11620
|
...O,
|
|
11621
11621
|
...k,
|
|
11622
11622
|
...j,
|
|
11623
11623
|
P,
|
|
11624
|
-
|
|
11624
|
+
z,
|
|
11625
|
+
...oe,
|
|
11625
11626
|
...se,
|
|
11626
|
-
|
|
11627
|
-
|
|
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*=>",
|
|
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
|
-
|
|
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" },
|
|
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
|
-
},
|
|
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
|
-
}),
|
|
12488
|
+
}), c = zs(() => {
|
|
12489
12489
|
let e = n.lang.toLowerCase();
|
|
12490
|
-
return e === "html" || e === "htm" ? n.code : e === "vue" ?
|
|
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
|
|
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 =
|
|
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
|
-
|
|
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: !
|
|
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:
|
|
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:
|
|
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",
|
|
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:
|
|
12561
|
-
}, null, 8,
|
|
12562
|
+
srcdoc: c.value
|
|
12563
|
+
}, null, 8, Yd)) : (q(), J("pre", Xd, [Y("code", null, V(e.code), 1)]))])])]));
|
|
12562
12564
|
}
|
|
12563
|
-
}),
|
|
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
|
-
},
|
|
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,
|
|
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
|
-
}),
|
|
12642
|
+
}), nf = {
|
|
12641
12643
|
key: 0,
|
|
12642
12644
|
class: "debug-drawer"
|
|
12643
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
12651
|
+
}, mf = { class: "log-head" }, hf = {
|
|
12650
12652
|
key: 0,
|
|
12651
12653
|
class: "log-source"
|
|
12652
|
-
},
|
|
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
|
-
},
|
|
12657
|
+
}, Pf = { class: "badge muted" }, Ff = {
|
|
12656
12658
|
key: 1,
|
|
12657
12659
|
class: "badge muted"
|
|
12658
|
-
},
|
|
12660
|
+
}, If = ["onClick"], Lf = {
|
|
12659
12661
|
key: 0,
|
|
12660
12662
|
class: "msg-list"
|
|
12661
|
-
},
|
|
12663
|
+
}, Rf = { class: "msg-detail" }, zf = {
|
|
12662
12664
|
key: 0,
|
|
12663
12665
|
class: "msg-text"
|
|
12664
|
-
},
|
|
12666
|
+
}, Bf = { class: "tc-inline-name" }, Vf = { class: "tc-inline-args" }, Hf = {
|
|
12665
12667
|
key: 1,
|
|
12666
12668
|
class: "tc-id"
|
|
12667
|
-
},
|
|
12669
|
+
}, Uf = {
|
|
12668
12670
|
key: 1,
|
|
12669
12671
|
class: "log-raw"
|
|
12670
|
-
},
|
|
12672
|
+
}, Wf = { class: "badge-row" }, Gf = { class: "badge" }, Kf = {
|
|
12671
12673
|
key: 0,
|
|
12672
12674
|
class: "badge warn"
|
|
12673
|
-
},
|
|
12675
|
+
}, qf = {
|
|
12674
12676
|
key: 0,
|
|
12675
12677
|
class: "resp-content"
|
|
12676
|
-
},
|
|
12678
|
+
}, Jf = {
|
|
12677
12679
|
key: 1,
|
|
12678
12680
|
class: "tc-list"
|
|
12679
|
-
},
|
|
12681
|
+
}, Yf = { class: "tc-name" }, Xf = { class: "tc-args" }, Zf = {
|
|
12680
12682
|
key: 2,
|
|
12681
12683
|
class: "usage-row"
|
|
12682
|
-
},
|
|
12684
|
+
}, Qf = { class: "usage" }, $f = { class: "usage" }, ep = { class: "usage" }, tp = {
|
|
12683
12685
|
key: 3,
|
|
12684
12686
|
class: "tc-card inline"
|
|
12685
|
-
},
|
|
12687
|
+
}, np = { class: "tc-name" }, rp = { class: "tc-args" }, ip = {
|
|
12686
12688
|
key: 4,
|
|
12687
12689
|
class: "tc-card inline"
|
|
12688
|
-
},
|
|
12690
|
+
}, ap = { class: "tc-name" }, op = { class: "tc-args" }, sp = {
|
|
12689
12691
|
key: 5,
|
|
12690
12692
|
class: "err-box"
|
|
12691
|
-
},
|
|
12693
|
+
}, cp = { class: "log-footer" }, lp = ["onClick"], up = ["onClick"], dp = {
|
|
12692
12694
|
key: 0,
|
|
12693
12695
|
class: "log-raw"
|
|
12694
|
-
},
|
|
12696
|
+
}, fp = {
|
|
12695
12697
|
key: 0,
|
|
12696
12698
|
class: "empty"
|
|
12697
|
-
},
|
|
12699
|
+
}, pp = {
|
|
12698
12700
|
key: 1,
|
|
12699
12701
|
class: "flow-section"
|
|
12700
|
-
},
|
|
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
|
-
},
|
|
12705
|
+
}, Tp = {
|
|
12704
12706
|
key: 0,
|
|
12705
12707
|
class: "empty"
|
|
12706
|
-
},
|
|
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
|
-
},
|
|
12711
|
+
}, Lp = {
|
|
12710
12712
|
class: "v",
|
|
12711
12713
|
style: { "font-size": "11px" }
|
|
12712
|
-
},
|
|
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
|
-
},
|
|
12717
|
+
}, Up = { class: "info-title" }, Wp = { class: "info-name" }, Gp = { class: "info-desc" }, Kp = {
|
|
12716
12718
|
key: 1,
|
|
12717
12719
|
class: "info-section"
|
|
12718
|
-
},
|
|
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
|
-
},
|
|
12723
|
+
}, om = {
|
|
12722
12724
|
key: 2,
|
|
12723
12725
|
class: "info-section"
|
|
12724
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
12732
|
+
}, bm = {
|
|
12731
12733
|
class: "v",
|
|
12732
12734
|
style: { "font-size": "11px" }
|
|
12733
|
-
},
|
|
12735
|
+
}, xm = {
|
|
12734
12736
|
key: 4,
|
|
12735
12737
|
class: "info-section"
|
|
12736
|
-
},
|
|
12738
|
+
}, Sm = { class: "info-title" }, Cm = {
|
|
12737
12739
|
key: 5,
|
|
12738
12740
|
class: "info-section"
|
|
12739
|
-
},
|
|
12741
|
+
}, wm = { class: "info-pre" }, Tm = {
|
|
12740
12742
|
key: 6,
|
|
12741
12743
|
class: "info-section"
|
|
12742
|
-
},
|
|
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
|
-
},
|
|
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",
|
|
12914
|
-
Y("div",
|
|
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",
|
|
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",
|
|
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",
|
|
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",
|
|
12947
|
-
Y("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",
|
|
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",
|
|
12957
|
-
Y("span",
|
|
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",
|
|
12960
|
-
Y("div",
|
|
12961
|
-
Y("div",
|
|
12962
|
-
Y("div",
|
|
12963
|
-
Y("div",
|
|
12964
|
-
Y("div",
|
|
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",
|
|
12967
|
-
Y("div",
|
|
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",
|
|
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",
|
|
12979
|
-
], 64)) : e.type === "llm_request" ? (q(), J(K, { key: 1 }, [Y("div",
|
|
12980
|
-
Y("span",
|
|
12981
|
-
e.data.model ? (q(), J("span",
|
|
12982
|
-
Y("span",
|
|
12983
|
-
e.data.tools?.length ? (q(), J("span",
|
|
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,
|
|
12988
|
-
]), o.value.has(t) ? (q(), J("pre",
|
|
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",
|
|
12995
|
-
e.content ? (q(), J("span",
|
|
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",
|
|
13000
|
-
e.tool_call_id ? (q(), J("span",
|
|
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",
|
|
13003
|
-
e.data.content ? (q(), J("div",
|
|
13004
|
-
e.data.toolCalls?.length ? (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",
|
|
13008
|
-
e.data.usage ? (q(), J("div",
|
|
13009
|
-
Y("span",
|
|
13010
|
-
Y("span",
|
|
13011
|
-
Y("span",
|
|
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",
|
|
13014
|
-
Y("div",
|
|
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,
|
|
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,
|
|
13021
|
-
a.value.has(t) ? (q(), J("pre",
|
|
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",
|
|
13024
|
-
E.value.pre.length ? (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",
|
|
13029
|
-
Y("span",
|
|
13030
|
-
Y("span",
|
|
13031
|
-
Y("span",
|
|
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",
|
|
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",
|
|
13041
|
-
Y("span",
|
|
13042
|
-
Y("span",
|
|
13043
|
-
Y("span",
|
|
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",
|
|
13046
|
-
Y("div",
|
|
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",
|
|
13049
|
-
Y("div",
|
|
13050
|
-
Y("div",
|
|
13051
|
-
Y("div",
|
|
13052
|
-
Y("div",
|
|
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",
|
|
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",
|
|
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",
|
|
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",
|
|
13063
|
-
x.value.skills.length ? (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",
|
|
13067
|
-
x.value.windowProps.length ? (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",
|
|
13071
|
-
Y("div",
|
|
13072
|
-
Y("div",
|
|
13073
|
-
Y("div",
|
|
13074
|
-
Y("div",
|
|
13075
|
-
Y("div",
|
|
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",
|
|
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",
|
|
13081
|
-
x.value.verify ? (q(), J("div",
|
|
13082
|
-
Y("div",
|
|
13083
|
-
Y("div",
|
|
13084
|
-
Y("div",
|
|
13085
|
-
x.value.verify.adversarial ? (q(), J("div",
|
|
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",
|
|
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",
|
|
13095
|
-
x.value.lastCompression ? (q(), J("div",
|
|
13096
|
-
Y("div",
|
|
13097
|
-
Y("div",
|
|
13098
|
-
Y("div",
|
|
13099
|
-
Y("div",
|
|
13100
|
-
Y("div",
|
|
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",
|
|
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"]]),
|
|
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
|
-
},
|
|
13115
|
+
}, Hm = { class: "header-actions" }, Um = {
|
|
13114
13116
|
key: 0,
|
|
13115
13117
|
class: "debug-badge"
|
|
13116
|
-
},
|
|
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
|
-
},
|
|
13125
|
+
}, Km = {
|
|
13124
13126
|
key: 0,
|
|
13125
13127
|
d: "M18 15l-6-6-6 6"
|
|
13126
|
-
},
|
|
13128
|
+
}, qm = {
|
|
13127
13129
|
key: 1,
|
|
13128
13130
|
d: "M6 9l6 6 6-6"
|
|
13129
|
-
},
|
|
13131
|
+
}, Jm = {
|
|
13130
13132
|
key: 0,
|
|
13131
13133
|
class: "empty-state"
|
|
13132
|
-
},
|
|
13134
|
+
}, Ym = ["data-msg-idx"], Xm = {
|
|
13133
13135
|
key: 0,
|
|
13134
13136
|
class: "message-avatar"
|
|
13135
|
-
},
|
|
13137
|
+
}, Zm = { class: "message-content" }, Qm = ["onClick"], $m = { class: "reasoning-toggle" }, eh = {
|
|
13136
13138
|
key: 0,
|
|
13137
13139
|
class: "reasoning-body"
|
|
13138
|
-
},
|
|
13140
|
+
}, th = {
|
|
13139
13141
|
key: 1,
|
|
13140
13142
|
class: "steps-block"
|
|
13141
|
-
},
|
|
13143
|
+
}, nh = { class: "step-head" }, rh = { class: "step-icon" }, ih = { class: "step-name" }, ah = {
|
|
13142
13144
|
key: 0,
|
|
13143
13145
|
class: "step-count"
|
|
13144
|
-
},
|
|
13146
|
+
}, oh = {
|
|
13145
13147
|
key: 1,
|
|
13146
13148
|
class: "step-status running"
|
|
13147
|
-
},
|
|
13149
|
+
}, sh = {
|
|
13148
13150
|
key: 0,
|
|
13149
13151
|
class: "step-children"
|
|
13150
|
-
},
|
|
13152
|
+
}, ch = { class: "step-icon" }, lh = { class: "step-name" }, uh = {
|
|
13151
13153
|
key: 0,
|
|
13152
13154
|
class: "step-status running"
|
|
13153
|
-
},
|
|
13155
|
+
}, dh = {
|
|
13154
13156
|
key: 1,
|
|
13155
13157
|
class: "typing-text"
|
|
13156
|
-
},
|
|
13158
|
+
}, fh = {
|
|
13157
13159
|
key: 2,
|
|
13158
13160
|
class: "stream-cursor"
|
|
13159
|
-
},
|
|
13161
|
+
}, ph = { class: "message-time" }, mh = {
|
|
13160
13162
|
key: 3,
|
|
13161
13163
|
class: "msg-actions"
|
|
13162
|
-
},
|
|
13164
|
+
}, hh = ["title", "onClick"], gh = {
|
|
13163
13165
|
key: 1,
|
|
13164
13166
|
class: "message-row assistant"
|
|
13165
|
-
},
|
|
13167
|
+
}, _h = {
|
|
13166
13168
|
key: 0,
|
|
13167
13169
|
class: "message-avatar"
|
|
13168
|
-
},
|
|
13170
|
+
}, vh = { class: "message-content" }, yh = { class: "message-bubble typing" }, bh = {
|
|
13169
13171
|
key: 1,
|
|
13170
13172
|
class: "typing-text"
|
|
13171
|
-
},
|
|
13173
|
+
}, xh = {
|
|
13172
13174
|
key: 2,
|
|
13173
13175
|
class: "error-bar"
|
|
13174
|
-
},
|
|
13176
|
+
}, Sh = { class: "error-text" }, Ch = {
|
|
13175
13177
|
key: 0,
|
|
13176
13178
|
class: "approval-bar"
|
|
13177
|
-
},
|
|
13179
|
+
}, wh = {
|
|
13178
13180
|
key: 0,
|
|
13179
13181
|
class: "approval-question"
|
|
13180
|
-
},
|
|
13182
|
+
}, Th = {
|
|
13181
13183
|
key: 1,
|
|
13182
13184
|
class: "approval-context"
|
|
13183
|
-
},
|
|
13185
|
+
}, Eh = {
|
|
13184
13186
|
key: 2,
|
|
13185
13187
|
class: "approval-recommend"
|
|
13186
|
-
},
|
|
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
|
-
},
|
|
13191
|
+
}, Mh = { class: "approval-actions" }, Nh = {
|
|
13190
13192
|
key: 1,
|
|
13191
13193
|
class: "conflict-bar"
|
|
13192
|
-
},
|
|
13194
|
+
}, Ph = { class: "conflict-head" }, Fh = { class: "conflict-title" }, Ih = { class: "conflict-detail" }, Lh = {
|
|
13193
13195
|
key: 0,
|
|
13194
13196
|
class: "conflict-diff"
|
|
13195
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
|
|
13343
|
-
|
|
13344
|
-
|
|
13345
|
-
Y("span",
|
|
13346
|
-
|
|
13347
|
-
|
|
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:
|
|
13352
|
-
}, [
|
|
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",
|
|
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:
|
|
13372
|
+
onClick: z[1] ||= (...e) => W(o) && W(o)(...e),
|
|
13368
13373
|
disabled: !E.value
|
|
13369
|
-
}, [...
|
|
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,
|
|
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:
|
|
13380
|
-
}, [(q(), J("svg",
|
|
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:
|
|
13387
|
-
onWheel:
|
|
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",
|
|
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",
|
|
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
|
-
|
|
13403
|
-
|
|
13404
|
-
Y("span",
|
|
13405
|
-
], 8,
|
|
13406
|
-
t.role === "assistant" && t.steps && t.steps.length ? (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",
|
|
13410
|
-
Y("span",
|
|
13411
|
-
Y("span",
|
|
13412
|
-
e.count > 1 ? (q(), J("span",
|
|
13413
|
-
e.status === "running" ? (q(), J("span",
|
|
13414
|
-
]), e.children && e.children.length ? (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",
|
|
13419
|
-
Y("span",
|
|
13420
|
-
e.status === "running" ? (q(), J("span",
|
|
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
|
-
|
|
13424
|
-
|
|
13425
|
-
|
|
13426
|
-
], 64)) : (q(), J("span",
|
|
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",
|
|
13431
|
-
Y("div",
|
|
13432
|
-
t.role === "assistant" && t.content && !W(n).loading && r === W(n).messages.length - 1 ? (q(), J("div",
|
|
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
|
-
}, "📋 复制",
|
|
13441
|
+
}, V(R.value ? "✓ 已复制" : "📋 复制"), 9, hh), Y("button", {
|
|
13437
13442
|
class: "msg-action-btn",
|
|
13438
13443
|
title: "重新生成",
|
|
13439
|
-
onClick:
|
|
13444
|
+
onClick: z[3] ||= (...e) => W(l) && W(l)(...e)
|
|
13440
13445
|
}, "🔄 重新生成")])) : X("", !0)
|
|
13441
|
-
])], 10,
|
|
13442
|
-
W(n).loading && W(n).messages[W(n).messages.length - 1]?.role !== "assistant" ? (q(), J("div",
|
|
13443
|
-
|
|
13444
|
-
|
|
13445
|
-
|
|
13446
|
-
], 64)) : (q(), J("span",
|
|
13447
|
-
W(n).error ? (q(), J("div",
|
|
13448
|
-
Y("span",
|
|
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:
|
|
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",
|
|
13463
|
-
|
|
13464
|
-
W(i).args?.question ? (q(), J("div",
|
|
13465
|
-
W(i).args?.context ? (q(), J("div",
|
|
13466
|
-
W(i).args?.recommendation ? (q(), J("div",
|
|
13467
|
-
Y("div",
|
|
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:
|
|
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,
|
|
13479
|
+
}, V(e), 9, Oh))), 128)) : (q(), J("button", {
|
|
13475
13480
|
key: 1,
|
|
13476
13481
|
class: "approval-allow",
|
|
13477
|
-
onClick:
|
|
13482
|
+
onClick: z[8] ||= (e) => W(u)(!0)
|
|
13478
13483
|
}, "允许"))])
|
|
13479
13484
|
], 64)) : (q(), J(K, { key: 1 }, [
|
|
13480
|
-
Y("div",
|
|
13481
|
-
|
|
13482
|
-
Y("span",
|
|
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:
|
|
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",
|
|
13490
|
-
Y("div",
|
|
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:
|
|
13497
|
+
onClick: z[10] ||= (e) => W(u)(!1)
|
|
13493
13498
|
}, "拒绝"), Y("button", {
|
|
13494
13499
|
class: "approval-allow",
|
|
13495
|
-
onClick:
|
|
13500
|
+
onClick: z[11] ||= (e) => W(u)(!0)
|
|
13496
13501
|
}, "允许")])
|
|
13497
13502
|
], 64))])) : X("", !0),
|
|
13498
|
-
t.pendingConflict ? (q(), J("div",
|
|
13499
|
-
Y("div",
|
|
13500
|
-
|
|
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
|
-
|
|
13507
|
+
z[36] ||= is(" 已被外部修改", -1)
|
|
13503
13508
|
])]),
|
|
13504
|
-
Y("div",
|
|
13509
|
+
Y("div", Ih, " AI 基于「读取时的旧值」准备" + V(t.pendingConflict.op === "delete" ? "删除" : "写入") + ",但该属性在你读取之后被外部代码/其他 agent/手动改过。 ", 1),
|
|
13505
13510
|
Y("button", {
|
|
13506
13511
|
class: "conflict-toggle",
|
|
13507
|
-
onClick:
|
|
13512
|
+
onClick: z[12] ||= (e) => g.value = !g.value
|
|
13508
13513
|
}, V(g.value ? "收起对比" : "查看值对比") + V(g.value ? " ▴" : " ▾"), 1),
|
|
13509
|
-
g.value ? (q(), J("div",
|
|
13510
|
-
Y("div",
|
|
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:
|
|
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:
|
|
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:
|
|
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",
|
|
13529
|
-
t.getInfo ? (q(), J("span",
|
|
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":
|
|
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,
|
|
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:
|
|
13548
|
-
}, [W(n).loading ? (q(), J("svg",
|
|
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",
|
|
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,
|
|
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(
|
|
13566
|
+
$o(Lm, {
|
|
13562
13567
|
visible: w.value,
|
|
13563
|
-
"onUpdate:visible":
|
|
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-
|
|
13574
|
-
function
|
|
13578
|
+
}), [["__scopeId", "data-v-ee351851"]]);
|
|
13579
|
+
function Xh(e) {
|
|
13575
13580
|
return e.replace(/^\/+/, "").replace(/\/+/g, "/");
|
|
13576
13581
|
}
|
|
13577
|
-
function
|
|
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 =
|
|
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
|
|
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
|
|
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
|
-
],
|
|
13780
|
+
], eg = {
|
|
13776
13781
|
contextWindow: 32768,
|
|
13777
13782
|
maxOutputTokens: 4096
|
|
13778
13783
|
};
|
|
13779
|
-
function
|
|
13784
|
+
function tg(e = {}) {
|
|
13780
13785
|
let t = (() => {
|
|
13781
|
-
if (e.model) return
|
|
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 ??
|
|
13785
|
-
maxOutputTokens: e.maxOutputTokens ?? t?.maxOutputTokens ??
|
|
13789
|
+
contextWindow: e.contextWindow ?? t?.contextWindow ?? eg.contextWindow,
|
|
13790
|
+
maxOutputTokens: e.maxOutputTokens ?? t?.maxOutputTokens ?? eg.maxOutputTokens
|
|
13786
13791
|
};
|
|
13787
13792
|
}
|
|
13788
|
-
function
|
|
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
|
|
13798
|
+
function rg(e) {
|
|
13794
13799
|
return Math.max(2e3, Math.min(2e4, Math.round(e * .035)));
|
|
13795
13800
|
}
|
|
13796
|
-
function
|
|
13797
|
-
let t =
|
|
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
|
|
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
|
|
13820
|
+
function og(e, t) {
|
|
13816
13821
|
return t ? {
|
|
13817
13822
|
...e,
|
|
13818
13823
|
...t
|
|
13819
13824
|
} : e;
|
|
13820
13825
|
}
|
|
13821
|
-
async function
|
|
13826
|
+
async function sg(e, t) {
|
|
13822
13827
|
let n = t;
|
|
13823
|
-
for (let t of e) 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
|
|
13831
|
+
function cg(e, t) {
|
|
13827
13832
|
let n = t.state;
|
|
13828
|
-
for (let r of e) r.beforeModel && (n =
|
|
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
|
|
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 =
|
|
13843
|
+
i.afterModel && (r = og(r, i.afterModel(t, r)));
|
|
13839
13844
|
}
|
|
13840
13845
|
return r;
|
|
13841
13846
|
}
|
|
13842
|
-
async function
|
|
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 =
|
|
13851
|
+
r.afterAgent && (n = og(n, await r.afterAgent(n)));
|
|
13847
13852
|
}
|
|
13848
13853
|
return n;
|
|
13849
13854
|
}
|
|
13850
|
-
async function
|
|
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
|
|
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
|
|
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
|
|
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
|
|
13871
|
-
function
|
|
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
|
|
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 =
|
|
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 =
|
|
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 >
|
|
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 >
|
|
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 =
|
|
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 =
|
|
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
|
|
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 >
|
|
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
|
|
14024
|
-
T.value = [], 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 =
|
|
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 =
|
|
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 =
|
|
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 &&
|
|
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
|
|
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
|
|
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
|
|
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
|
|
14193
|
+
async function te(e, t) {
|
|
14189
14194
|
let n = "";
|
|
14190
|
-
return await
|
|
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:
|
|
14196
|
-
stream:
|
|
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
|
|
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
|
|
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: () =>
|
|
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
|
|
14246
|
+
function Sg(e) {
|
|
14242
14247
|
return e;
|
|
14243
14248
|
}
|
|
14244
|
-
var
|
|
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
|
|
14252
|
-
if (
|
|
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(
|
|
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
|
|
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
|
|
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
|
|
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: () =>
|
|
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
|
|
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
|
|
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
|
-
]),
|
|
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
|
|
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
|
|
14361
|
-
for (let r of e) if (r.operations.includes(t) && r.scopes.some((e) =>
|
|
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
|
|
14369
|
+
function Pg(e) {
|
|
14365
14370
|
return {
|
|
14366
14371
|
name: "permissions",
|
|
14367
14372
|
wrapToolCall: async (t, n) => {
|
|
14368
|
-
let r =
|
|
14369
|
-
return r && i &&
|
|
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
|
|
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
|
|
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
|
|
14423
|
+
function Rg() {
|
|
14419
14424
|
return n(async () => "人工确认中间件未装载,无法征询用户。请直接向用户说明情况并等待回复。", {
|
|
14420
|
-
name:
|
|
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:
|
|
14435
|
+
schema: Lg
|
|
14431
14436
|
});
|
|
14432
14437
|
}
|
|
14433
|
-
function
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
14495
|
-
let n =
|
|
14496
|
-
typeof n == "object" && n ?
|
|
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
|
|
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
|
|
14512
|
+
function Kg(e) {
|
|
14508
14513
|
let t = [], n = e.maxCheckpoints ?? 5, r = 1;
|
|
14509
14514
|
return {
|
|
14510
14515
|
save(i) {
|
|
14511
|
-
let a =
|
|
14512
|
-
for (let t of e.windowPaths) o[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:
|
|
14522
|
+
messages: Bg(a),
|
|
14518
14523
|
windowVals: o,
|
|
14519
|
-
vfs:
|
|
14520
|
-
todos:
|
|
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, ...
|
|
14541
|
-
for (let [e, t] of Object.entries(r.windowVals))
|
|
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,
|
|
14549
|
+
return Object.assign(i, Bg(r.vfs)), e.todosMw.reset(Bg(r.todos)), !0;
|
|
14545
14550
|
}
|
|
14546
14551
|
};
|
|
14547
14552
|
}
|
|
14548
|
-
function
|
|
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
|
|
14567
|
+
function Jg(e) {
|
|
14563
14568
|
return !!e && typeof e == "object" && typeof e.invoke == "function" && typeof e.stream == "function";
|
|
14564
14569
|
}
|
|
14565
|
-
var
|
|
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
|
-
],
|
|
14572
|
-
async function
|
|
14573
|
-
let a = t.depth ?? 0, o = t.maxDepth ??
|
|
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 =
|
|
14577
|
-
...
|
|
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 ? [
|
|
14587
|
-
maxToolRounds: t.maxToolRounds ??
|
|
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
|
|
14600
|
-
let r = e.maxParallel ??
|
|
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
|
|
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
|
|
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
|
|
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
|
|
14654
|
-
function
|
|
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
|
|
14673
|
+
function i_(e, r) {
|
|
14669
14674
|
let i = /* @__PURE__ */ new Set(), a = e.filter((e) => {
|
|
14670
|
-
if (!
|
|
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 =
|
|
14689
|
-
return
|
|
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
|
|
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:
|
|
14725
|
+
model: p_(e.adversarial.llm),
|
|
14721
14726
|
tools: (e.adversarial.tools ?? []).length
|
|
14722
14727
|
});
|
|
14723
|
-
let n = await
|
|
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
|
|
14739
|
+
var o_ = /* @__PURE__ */ new Set([
|
|
14735
14740
|
"set_window_prop",
|
|
14736
14741
|
"edit_window_prop",
|
|
14737
14742
|
"delete_window_prop"
|
|
14738
|
-
]),
|
|
14739
|
-
function
|
|
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)
|
|
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
|
|
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
|
|
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
|
|
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 =
|
|
14776
|
+
let r = c_(e);
|
|
14772
14777
|
if (!r.length) return { ok: !0 };
|
|
14773
|
-
let i =
|
|
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 &&
|
|
14777
|
-
let c =
|
|
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
|
|
14797
|
+
return !!e && typeof e == "object" && typeof e.invoke == "function" && typeof e.stream == "function";
|
|
14796
14798
|
}
|
|
14797
|
-
|
|
14798
|
-
|
|
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
|
|
14810
|
-
let { lastUser: i, lastReply: a } =
|
|
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
|
|
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
|
-
}),
|
|
14851
|
+
}), h_(u) ? null : u.trim();
|
|
14847
14852
|
}
|
|
14848
14853
|
//#endregion
|
|
14849
14854
|
//#region src/core/mcp/client.ts
|
|
14850
|
-
function
|
|
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
|
|
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
|
|
14870
|
-
return n(async (n) =>
|
|
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
|
|
14880
|
-
let { Client: t } = await import("@modelcontextprotocol/sdk/client"), n = await
|
|
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) =>
|
|
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
|
|
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
|
|
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
|
|
14912
|
-
function
|
|
14916
|
+
var w_ = "【更早对话摘要";
|
|
14917
|
+
function T_(e, t) {
|
|
14913
14918
|
if (t <= 0) return { trimmed: !1 };
|
|
14914
|
-
let n =
|
|
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 =
|
|
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 ? `${
|
|
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
|
|
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
|
-
},
|
|
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
|
|
14960
|
+
return ng(t);
|
|
14956
14961
|
}
|
|
14957
|
-
function
|
|
14958
|
-
let t =
|
|
14959
|
-
for (let n of e.assistantMsgs) t +=
|
|
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
|
|
14967
|
+
function j_(e, t) {
|
|
14963
14968
|
return e.map((e) => {
|
|
14964
|
-
let n =
|
|
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}: ${
|
|
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
|
|
14974
|
-
let r =
|
|
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
|
|
14989
|
+
function N_(e = {}) {
|
|
14985
14990
|
let t = {
|
|
14986
|
-
...
|
|
14991
|
+
...E_,
|
|
14987
14992
|
...e
|
|
14988
14993
|
};
|
|
14989
14994
|
async function n(e) {
|
|
14990
|
-
let n =
|
|
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 +
|
|
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 +=
|
|
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(
|
|
15023
|
+
u = await t.llmInvoke(j_(o, l)), d = s + "llm_summary";
|
|
15019
15024
|
} catch {
|
|
15020
|
-
u =
|
|
15025
|
+
u = j_(o, l), d = s + "index_summary(llm_fallback)";
|
|
15021
15026
|
}
|
|
15022
|
-
else u =
|
|
15023
|
-
let f = t.enableRecall ?
|
|
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:
|
|
15059
|
+
trimToolResults: P_
|
|
15055
15060
|
};
|
|
15056
15061
|
}
|
|
15057
|
-
function
|
|
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
|
|
15077
|
-
let t =
|
|
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
|
|
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
|
-
},
|
|
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") },
|
|
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
|
|
15135
|
-
let n =
|
|
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
|
|
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
|
|
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:
|
|
15172
|
+
details: B_(t)
|
|
15168
15173
|
});
|
|
15169
15174
|
}
|
|
15170
|
-
function
|
|
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
|
|
15180
|
-
function
|
|
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[
|
|
15187
|
+
if (e) for (let [t, r] of Object.entries(e)) n[q_(t)] = {
|
|
15183
15188
|
content: r,
|
|
15184
|
-
updatedAt:
|
|
15189
|
+
updatedAt: Y_()
|
|
15185
15190
|
};
|
|
15186
15191
|
let { persist: r } = t, i = t.maxBytes ?? 4194304;
|
|
15187
15192
|
function a() {
|
|
15188
|
-
if (
|
|
15189
|
-
let e = i *
|
|
15190
|
-
for (let [r] of t) if (delete n[r],
|
|
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[
|
|
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
|
|
15225
|
-
function
|
|
15226
|
-
|
|
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 +=
|
|
15233
|
+
for (let n of Object.values(e)) t += G_.encode(n.content).length;
|
|
15229
15234
|
return t;
|
|
15230
15235
|
}
|
|
15231
|
-
function
|
|
15236
|
+
function q_(e) {
|
|
15232
15237
|
return e.replace(/^\/+/, "").replace(/\/+/g, "/");
|
|
15233
15238
|
}
|
|
15234
|
-
function
|
|
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
|
|
15247
|
+
function Y_() {
|
|
15243
15248
|
return Date.now();
|
|
15244
15249
|
}
|
|
15245
|
-
function
|
|
15250
|
+
function X_(e) {
|
|
15246
15251
|
return [
|
|
15247
15252
|
n(async ({ path: t, offset: n, limit: r }) => {
|
|
15248
|
-
let i = e.files[
|
|
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[
|
|
15271
|
+
n(async ({ path: t, content: n }) => (e.files[q_(t)] = {
|
|
15267
15272
|
content: n,
|
|
15268
|
-
updatedAt:
|
|
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 =
|
|
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:
|
|
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 =
|
|
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 ? [
|
|
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
|
|
15382
|
+
function Z_(e) {
|
|
15378
15383
|
return {
|
|
15379
15384
|
name: "vfs",
|
|
15380
|
-
tools:
|
|
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
|
|
15387
|
-
function
|
|
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 &&
|
|
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 &&
|
|
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
|
|
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
|
|
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(),
|
|
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
|
|
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
|
|
15568
|
+
function nv(e) {
|
|
15564
15569
|
return !!e && e !== 0 && e !== "" && e !== null;
|
|
15565
15570
|
}
|
|
15566
|
-
function
|
|
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
|
|
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
|
|
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
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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
|
-
|
|
15646
|
-
path:
|
|
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
|
-
|
|
15654
|
-
path:
|
|
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
|
|
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
|
|
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,
|
|
15690
|
-
else for (let t of Object.keys(e)) c(e[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 =
|
|
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 =
|
|
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
|
|
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 =
|
|
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
|
|
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
|
|
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 =
|
|
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
|
|
15792
|
+
var pv = /* @__PURE__ */ new Set([
|
|
15788
15793
|
"__proto__",
|
|
15789
15794
|
"constructor",
|
|
15790
15795
|
"prototype"
|
|
15791
15796
|
]);
|
|
15792
|
-
function
|
|
15793
|
-
return e.split(".").some((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 (
|
|
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
|
|
15808
|
-
if (
|
|
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
|
|
15817
|
-
if (
|
|
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
|
|
15831
|
+
function yv(e) {
|
|
15827
15832
|
return e === void 0 ? void 0 : JSON.parse(JSON.stringify(e));
|
|
15828
15833
|
}
|
|
15829
|
-
function
|
|
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
|
|
15849
|
-
let t =
|
|
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
|
|
15854
|
-
if (t === "set") return n ? (
|
|
15855
|
-
if (t === "remove") return n ? (
|
|
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 ?
|
|
15858
|
-
return typeof t != "object" || !t || Array.isArray(t) ? `merge 目标${n ? `(${n})` : "(根)"}不是对象` : (
|
|
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 ?
|
|
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
|
|
15864
|
-
if (t === "set")
|
|
15865
|
-
else if (t === "remove")
|
|
15866
|
-
else if (t === "merge")
|
|
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 ?
|
|
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
|
|
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 =
|
|
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 =
|
|
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)。当前值:${
|
|
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 `已保留外部修改(未写入)。当前值:${
|
|
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 `无历史快照可回退(本次为首次操作)。当前值:${
|
|
15949
|
+
if (!t.length) return `无历史快照可回退(本次为首次操作)。当前值:${bv(o, 400)} (hash=${s})。请重新 get 再改或选「强制覆盖」。`;
|
|
15945
15950
|
let n = t[t.length - 1];
|
|
15946
|
-
|
|
15947
|
-
let r =
|
|
15948
|
-
return `已回退 ${e} 到历史快照 #${n.id}[${n.op}]。当前值:${
|
|
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 =
|
|
15984
|
-
return t === void 0 ? `${e} = (undefined)` : `${e} = ${
|
|
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
|
|
16008
|
+
return H_(e, t, n);
|
|
16004
16009
|
}
|
|
16005
16010
|
let s = r.schema.safeParse(o);
|
|
16006
|
-
if (!s.success) return
|
|
16011
|
+
if (!s.success) return V_(e, s.error.issues);
|
|
16007
16012
|
f(e, "set");
|
|
16008
|
-
let u =
|
|
16009
|
-
return typeof u == "object" && u && s.data !== null && typeof s.data == "object" ?
|
|
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} = ${
|
|
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 (
|
|
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 =
|
|
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
|
|
16062
|
+
return H_(e, r, t);
|
|
16058
16063
|
}
|
|
16059
16064
|
}
|
|
16060
|
-
let h =
|
|
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"),
|
|
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 : ""})。当前值:${
|
|
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 =
|
|
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 ? (
|
|
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:
|
|
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 =
|
|
16210
|
-
t.push(`- ${n} = ${e === void 0 ? "(undefined)" :
|
|
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 =
|
|
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 =
|
|
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":${
|
|
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 =
|
|
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 =
|
|
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
|
|
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
|
|
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:
|
|
16350
|
+
details: B_(t.error.issues)
|
|
16346
16351
|
});
|
|
16347
16352
|
f(e, "edit", "eval_transform");
|
|
16348
|
-
let n =
|
|
16349
|
-
return typeof n == "object" && n && t.data !== null && typeof t.data == "object" ?
|
|
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)。当前值: ${
|
|
16359
|
+
}), `已通过脚本 transform 更新 ${e}(耗时 ${a.elapsedMs}ms)。当前值: ${bv(gv(window, e), 600)}`;
|
|
16355
16360
|
}
|
|
16356
|
-
return
|
|
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
|
|
16381
|
-
let n = new AbortController(), r = setTimeout(() => n.abort(),
|
|
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 ? `获取失败:请求超时(${
|
|
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
|
-
})],
|
|
16410
|
-
function
|
|
16411
|
-
return
|
|
16414
|
+
})], kv = Ov;
|
|
16415
|
+
function Av(e, t) {
|
|
16416
|
+
return Ev(e, t);
|
|
16412
16417
|
}
|
|
16413
|
-
function
|
|
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
|
|
16420
|
-
function
|
|
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) >=
|
|
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
|
|
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
|
|
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
|
|
16462
|
+
function qv(e, t, n, r) {
|
|
16458
16463
|
return [
|
|
16459
|
-
|
|
16464
|
+
Uv,
|
|
16460
16465
|
e,
|
|
16461
16466
|
t,
|
|
16462
16467
|
n,
|
|
16463
16468
|
r
|
|
16464
16469
|
].join("::");
|
|
16465
16470
|
}
|
|
16466
|
-
function
|
|
16471
|
+
function Jv(e, t, n) {
|
|
16467
16472
|
return [
|
|
16468
|
-
|
|
16473
|
+
Uv,
|
|
16469
16474
|
e,
|
|
16470
16475
|
t,
|
|
16471
16476
|
n
|
|
16472
16477
|
].join("::") + "::";
|
|
16473
16478
|
}
|
|
16474
|
-
function
|
|
16479
|
+
function Yv(e, t) {
|
|
16475
16480
|
return [
|
|
16476
|
-
|
|
16481
|
+
Uv,
|
|
16477
16482
|
e,
|
|
16478
16483
|
t
|
|
16479
16484
|
].join("::") + "::";
|
|
16480
16485
|
}
|
|
16481
|
-
function
|
|
16482
|
-
return [
|
|
16486
|
+
function Xv(e) {
|
|
16487
|
+
return [Uv, e].join("::") + "::";
|
|
16483
16488
|
}
|
|
16484
|
-
var
|
|
16485
|
-
function
|
|
16486
|
-
|
|
16489
|
+
var Zv = null;
|
|
16490
|
+
function Qv(e) {
|
|
16491
|
+
Zv ||= new TextEncoder();
|
|
16487
16492
|
try {
|
|
16488
|
-
return
|
|
16493
|
+
return Zv.encode(JSON.stringify(e)).length;
|
|
16489
16494
|
} catch {
|
|
16490
16495
|
return 0;
|
|
16491
16496
|
}
|
|
16492
16497
|
}
|
|
16493
|
-
function
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
16623
|
-
let t = e.dbName ??
|
|
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
|
|
16641
|
+
l = await ty(t), d(!0);
|
|
16637
16642
|
} else if (n === "session") {
|
|
16638
16643
|
if (typeof sessionStorage > "u") throw Error("sessionStorage 不可用");
|
|
16639
|
-
l =
|
|
16644
|
+
l = ny(sessionStorage), d(!0);
|
|
16640
16645
|
} else if (n === "local") {
|
|
16641
16646
|
if (typeof localStorage > "u") throw Error("localStorage 不可用");
|
|
16642
|
-
l =
|
|
16643
|
-
} else l =
|
|
16647
|
+
l = ny(localStorage), d(!0);
|
|
16648
|
+
} else l = ey(), d(!1);
|
|
16644
16649
|
} catch (e) {
|
|
16645
|
-
l =
|
|
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 =
|
|
16656
|
-
return
|
|
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 :
|
|
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 (
|
|
16685
|
+
if (Kv(e) && !u) {
|
|
16681
16686
|
u = !0;
|
|
16682
16687
|
try {
|
|
16683
16688
|
await b();
|
|
16684
16689
|
} catch {}
|
|
16685
|
-
l =
|
|
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 =
|
|
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
|
-
},
|
|
16729
|
+
}, Vv);
|
|
16725
16730
|
}
|
|
16726
16731
|
async function b() {
|
|
16727
16732
|
let e = [];
|
|
16728
|
-
await l.scan(
|
|
16733
|
+
await l.scan(Xv(t), (t, n) => {
|
|
16729
16734
|
t.endsWith("::__meta__") && e.push(n);
|
|
16730
16735
|
});
|
|
16731
|
-
let n =
|
|
16732
|
-
for (let e of n) await l.clearPrefix(
|
|
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(
|
|
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 =
|
|
16749
|
-
return await
|
|
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
|
|
16759
|
-
let i = await l.get(
|
|
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
|
|
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(
|
|
16786
|
+
await l.clearPrefix(Jv(t, e, n));
|
|
16782
16787
|
},
|
|
16783
16788
|
async createSession(e, n, r) {
|
|
16784
|
-
let i = r ??
|
|
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(
|
|
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
|
|
16812
|
+
var ay = [
|
|
16808
16813
|
"你是一个页面操作助手。宿主页面在 window 对象上注册了可操作的属性,你通过专用工具安全地读写这些属性来操作页面。",
|
|
16809
16814
|
"所有写操作都经范围控制(仅注册表内)与 schema 校验(不合法会返回结构化错误而非写入),并自动留快照可回退。",
|
|
16810
16815
|
"大对象/数组优先用增量 patch(只发改动)而非整体重传,避免输出被截断。",
|
|
16811
|
-
|
|
16812
|
-
].join("\n\n"),
|
|
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
|
|
16820
|
-
function
|
|
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
|
|
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 (
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 =
|
|
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 ?
|
|
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
|
|
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,
|
|
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 =
|
|
16911
|
+
let c = sy(e.storage);
|
|
16907
16912
|
e.debug && c && c.onEvent((e) => console.log("[page-agent-sdk][storage]", e));
|
|
16908
|
-
let l =
|
|
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 =
|
|
16919
|
+
let d = dy(e);
|
|
16915
16920
|
e.debug && !d && console.warn("[page-agent-sdk][summarization] 未构造 llmInvoke(apiKey 缺失?),摘要回退零成本索引摘要");
|
|
16916
|
-
let f = /* @__PURE__ */ Qt([]), p =
|
|
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 =
|
|
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 ?
|
|
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 =
|
|
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 ?
|
|
16937
|
-
A && E.set(
|
|
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,
|
|
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
|
|
16962
|
-
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:
|
|
16965
|
-
systemPrompt:
|
|
16966
|
-
temperature:
|
|
16967
|
-
maxTokens:
|
|
16968
|
-
skills:
|
|
16969
|
-
maxDepth:
|
|
16970
|
-
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
|
-
}),
|
|
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,
|
|
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
|
-
],
|
|
16983
|
-
check: e.verify.check ??
|
|
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:
|
|
16991
|
+
tools: oe
|
|
16987
16992
|
} : void 0
|
|
16988
|
-
}) : void 0,
|
|
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),
|
|
17001
|
+
}, S && !!e.windowProps?.length), le = e.onEvent, ue = /* @__PURE__ */ new Set(), de = (e) => {
|
|
16997
17002
|
if (e.type !== "approval_request") {
|
|
16998
|
-
if (
|
|
16999
|
-
|
|
17003
|
+
if (le) try {
|
|
17004
|
+
le(e);
|
|
17000
17005
|
} catch {}
|
|
17001
|
-
for (let t of
|
|
17006
|
+
for (let t of ue) try {
|
|
17002
17007
|
t(e);
|
|
17003
17008
|
} catch {}
|
|
17004
17009
|
}
|
|
17005
17010
|
}, fe = [
|
|
17006
|
-
|
|
17011
|
+
ce,
|
|
17007
17012
|
...N ? [m] : [],
|
|
17008
|
-
...P ? [
|
|
17009
|
-
...F ? [
|
|
17010
|
-
...I ? [
|
|
17011
|
-
...
|
|
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 ? [
|
|
17021
|
-
...v && b && y ? [
|
|
17022
|
-
...k ? [
|
|
17023
|
-
...e.approval && (e.approval.tools !== void 0 || e.approval.confirm) ? [
|
|
17024
|
-
...
|
|
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
|
-
|
|
17029
|
-
], pe = e.maxMemoryRounds ??
|
|
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:
|
|
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
|
|
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 =
|
|
17082
|
-
t?.(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())),
|
|
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:
|
|
17102
|
-
systemPrompt: e.systemPrompt ??
|
|
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: !!
|
|
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: !!
|
|
17132
|
-
maxAttempts:
|
|
17133
|
-
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 =
|
|
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) =>
|
|
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 =
|
|
17189
|
-
...
|
|
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 ??
|
|
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:
|
|
17209
|
+
maxVerifyAttempts: z ? R : 0,
|
|
17205
17210
|
debug: e.debug
|
|
17206
17211
|
}), g.current = B.agent;
|
|
17207
17212
|
})(), B;
|
|
17208
17213
|
}
|
|
17209
|
-
function
|
|
17210
|
-
let t = e.id ??
|
|
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 ?
|
|
17213
|
-
a ? i = a : (i =
|
|
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(
|
|
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 =
|
|
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
|
|
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 {
|
|
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 };
|