@opentiny/next-sdk 0.2.1 → 0.2.3
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/README.md +635 -5
- package/agent/AgentModelProvider.ts +47 -19
- package/dist/agent/AgentModelProvider.d.ts +10 -4
- package/dist/index.es.dev.js +74 -32
- package/dist/index.es.js +5942 -5923
- package/dist/index.js +496 -477
- package/dist/index.umd.dev.js +74 -32
- package/dist/index.umd.js +37 -37
- package/dist/{mcpsdk@1.25.2.dev.js → mcpsdk@1.25.3.dev.js} +3 -1
- package/dist/{mcpsdk@1.25.2.es.dev.js → mcpsdk@1.25.3.es.dev.js} +3 -1
- package/dist/{mcpsdk@1.25.2.es.js → mcpsdk@1.25.3.es.js} +1855 -1855
- package/dist/{mcpsdk@1.25.2.js → mcpsdk@1.25.3.js} +13 -13
- package/dist/remoter/createRemoter.d.ts +6 -1
- package/dist/webagent.dev.js +74 -32
- package/dist/webagent.es.dev.js +74 -32
- package/dist/webagent.es.js +3067 -3048
- package/dist/webagent.js +38 -38
- package/dist/webmcp-full.dev.js +3 -1
- package/dist/webmcp-full.es.dev.js +3 -1
- package/dist/webmcp-full.es.js +523 -523
- package/dist/webmcp-full.js +9 -9
- package/package.json +17 -2
- package/remoter/createRemoter.ts +72 -37
package/dist/index.js
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
import { default as
|
|
2
|
-
import { z as
|
|
3
|
-
import { MessageChannelServerTransport as i2, createTransportPair as
|
|
4
|
-
import { AuthClientProvider as
|
|
5
|
-
import { McpServer as
|
|
6
|
-
import { ResourceTemplate as
|
|
7
|
-
import { UriTemplate as
|
|
8
|
-
import { completable as
|
|
9
|
-
import { getDisplayName as
|
|
10
|
-
import { InMemoryTransport as
|
|
11
|
-
import { InMemoryTransport as
|
|
12
|
-
import { SetLevelRequestSchema as m2, SubscribeRequestSchema as
|
|
13
|
-
import { Client as
|
|
1
|
+
import { default as $0 } from "ajv";
|
|
2
|
+
import { z as j0 } from "zod";
|
|
3
|
+
import { MessageChannelServerTransport as i2, createTransportPair as G2, MessageChannelClientTransport as n2, sseOptions as Y2, streamOptions as K2, createSseProxy as Q2, createSocketProxy as X2, createStreamProxy as ee, MessageChannelTransport as te } from "@opentiny/next";
|
|
4
|
+
import { AuthClientProvider as N0 } from "@opentiny/next";
|
|
5
|
+
import { McpServer as R2 } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
6
|
+
import { ResourceTemplate as Z0 } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
7
|
+
import { UriTemplate as F0 } from "@modelcontextprotocol/sdk/shared/uriTemplate.js";
|
|
8
|
+
import { completable as V0 } from "@modelcontextprotocol/sdk/server/completable.js";
|
|
9
|
+
import { getDisplayName as W0 } from "@modelcontextprotocol/sdk/shared/metadataUtils.js";
|
|
10
|
+
import { InMemoryTransport as re } from "@modelcontextprotocol/sdk/inMemory.js";
|
|
11
|
+
import { InMemoryTransport as Y0 } from "@modelcontextprotocol/sdk/inMemory.js";
|
|
12
|
+
import { SetLevelRequestSchema as m2, SubscribeRequestSchema as se, UnsubscribeRequestSchema as oe, ListResourcesRequestSchema as ie, RootsListChangedNotificationSchema as ne, CallToolResultSchema as ae, ElicitRequestSchema as ce, CreateMessageRequestSchema as le, ListRootsRequestSchema as he, ToolListChangedNotificationSchema as de, PromptListChangedNotificationSchema as pe, ResourceListChangedNotificationSchema as ue, ResourceUpdatedNotificationSchema as me, LoggingMessageNotificationSchema as ge, JSONRPCMessageSchema as a2 } from "@modelcontextprotocol/sdk/types.js";
|
|
13
|
+
import { Client as E2 } from "@modelcontextprotocol/sdk/client/index.js";
|
|
14
14
|
import { SSEClientTransport as c2 } from "@modelcontextprotocol/sdk/client/sse.js";
|
|
15
15
|
import { StreamableHTTPClientTransport as G } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
|
|
16
|
-
import { WebSocketClientTransport as
|
|
16
|
+
import { WebSocketClientTransport as fe } from "@modelcontextprotocol/sdk/client/websocket.js";
|
|
17
17
|
import g2 from "qrcode";
|
|
18
|
-
import { dynamicTool as
|
|
19
|
-
import { InvalidArgumentError as
|
|
18
|
+
import { dynamicTool as Ce, jsonSchema as we, generateText as f2, streamText as X, stepCountIs as ye } from "ai";
|
|
19
|
+
import { InvalidArgumentError as ve, AISDKError as Z } from "@ai-sdk/provider";
|
|
20
20
|
import { z as o } from "zod/v4";
|
|
21
21
|
import "zod/v3";
|
|
22
|
-
import { createOpenAI as
|
|
23
|
-
import { createDeepSeek as
|
|
24
|
-
class
|
|
22
|
+
import { createOpenAI as _e } from "@ai-sdk/openai";
|
|
23
|
+
import { createDeepSeek as be } from "@ai-sdk/deepseek";
|
|
24
|
+
class y0 {
|
|
25
25
|
constructor(e, t) {
|
|
26
26
|
const s = {
|
|
27
27
|
name: "web-mcp-server",
|
|
@@ -33,7 +33,7 @@ class w0 {
|
|
|
33
33
|
completions: {},
|
|
34
34
|
logging: {}
|
|
35
35
|
};
|
|
36
|
-
this.server = new
|
|
36
|
+
this.server = new R2(e || s, t || { capabilities: i }), this.server.server.oninitialized = () => {
|
|
37
37
|
this.oninitialized?.();
|
|
38
38
|
}, this.server.server.onclose = () => {
|
|
39
39
|
this.onclose?.();
|
|
@@ -187,13 +187,13 @@ class w0 {
|
|
|
187
187
|
* Registers a handler for the subscribe request.
|
|
188
188
|
*/
|
|
189
189
|
onSubscribe(e) {
|
|
190
|
-
this.server.server.setRequestHandler(
|
|
190
|
+
this.server.server.setRequestHandler(se, e);
|
|
191
191
|
}
|
|
192
192
|
/**
|
|
193
193
|
* Registers a handler for the unsubscribe request.
|
|
194
194
|
*/
|
|
195
195
|
onUnsubscribe(e) {
|
|
196
|
-
this.server.server.setRequestHandler(
|
|
196
|
+
this.server.server.setRequestHandler(oe, e);
|
|
197
197
|
}
|
|
198
198
|
/**
|
|
199
199
|
* Registers a handler for the set log level request.
|
|
@@ -205,13 +205,13 @@ class w0 {
|
|
|
205
205
|
* Registers a handler for the list tools request.
|
|
206
206
|
*/
|
|
207
207
|
onListResources(e) {
|
|
208
|
-
this.server.server.setRequestHandler(
|
|
208
|
+
this.server.server.setRequestHandler(ie, e);
|
|
209
209
|
}
|
|
210
210
|
/**
|
|
211
211
|
* Registers a handler for the roots list changed notification.
|
|
212
212
|
*/
|
|
213
213
|
onRootsListChanged(e) {
|
|
214
|
-
this.server.server.setNotificationHandler(
|
|
214
|
+
this.server.server.setNotificationHandler(ne, e);
|
|
215
215
|
}
|
|
216
216
|
/**
|
|
217
217
|
* Close the transport for window.addEventListener('pagehide')
|
|
@@ -220,8 +220,8 @@ class w0 {
|
|
|
220
220
|
e.persisted || this.transport && typeof this.transport.close == "function" && await this.transport.close();
|
|
221
221
|
}
|
|
222
222
|
}
|
|
223
|
-
const
|
|
224
|
-
class
|
|
223
|
+
const v0 = (r, e) => new i2(r, e), _0 = () => G2(), b0 = (r) => r instanceof i2, x0 = (r) => r instanceof R2;
|
|
224
|
+
class xe {
|
|
225
225
|
constructor(e, t) {
|
|
226
226
|
const s = {
|
|
227
227
|
name: "web-mcp-client",
|
|
@@ -231,7 +231,7 @@ class Le {
|
|
|
231
231
|
sampling: {},
|
|
232
232
|
elicitation: {}
|
|
233
233
|
};
|
|
234
|
-
this.client = new
|
|
234
|
+
this.client = new E2(e || s, t || { capabilities: i }), this.client.onclose = () => {
|
|
235
235
|
this.onclose?.();
|
|
236
236
|
}, this.client.onerror = (n) => {
|
|
237
237
|
this.onerror?.(n);
|
|
@@ -243,28 +243,28 @@ class Le {
|
|
|
243
243
|
async connect(e) {
|
|
244
244
|
if (typeof e.start == "function")
|
|
245
245
|
return this.transport = e, this.transport.onclose = void 0, this.transport.onerror = void 0, this.transport.onmessage = void 0, await this.client.connect(this.transport), { transport: this.transport, sessionId: this.transport.sessionId };
|
|
246
|
-
const { url: t, token: s, sessionId: i, type: n, agent: a, onError:
|
|
246
|
+
const { url: t, token: s, sessionId: i, type: n, agent: a, onError: h } = e;
|
|
247
247
|
if (a === !0) {
|
|
248
248
|
const d = { client: this.client, url: t, token: s, sessionId: i };
|
|
249
249
|
let g;
|
|
250
250
|
return await (async () => {
|
|
251
|
-
const { transport: C, sessionId: f } = n === "sse" ? await
|
|
251
|
+
const { transport: C, sessionId: f } = n === "sse" ? await Q2(d) : n === "socket" ? await X2(d) : await ee(d);
|
|
252
252
|
C.onerror = async (u) => {
|
|
253
|
-
|
|
253
|
+
h?.(u);
|
|
254
254
|
}, g = { transport: C, sessionId: f };
|
|
255
255
|
})(), g;
|
|
256
256
|
}
|
|
257
|
-
const
|
|
258
|
-
let
|
|
259
|
-
if (n === "channel" && (
|
|
260
|
-
const d =
|
|
261
|
-
|
|
257
|
+
const c = new URL(t);
|
|
258
|
+
let l;
|
|
259
|
+
if (n === "channel" && (l = new n2(t), await this.client.connect(l)), n === "sse") {
|
|
260
|
+
const d = Y2(s, i);
|
|
261
|
+
l = new c2(c, d), await this.client.connect(l);
|
|
262
262
|
}
|
|
263
|
-
if (n === "socket" && (
|
|
264
|
-
const d =
|
|
265
|
-
|
|
263
|
+
if (n === "socket" && (l = new fe(new URL(`${t}?sessionId=${i}&token=${s}`)), l.sessionId = i, await this.client.connect(l)), typeof l > "u") {
|
|
264
|
+
const d = K2(s, i);
|
|
265
|
+
l = new G(c, d), await this.client.connect(l);
|
|
266
266
|
}
|
|
267
|
-
return this.transport =
|
|
267
|
+
return this.transport = l, { transport: this.transport, sessionId: this.transport.sessionId };
|
|
268
268
|
}
|
|
269
269
|
/**
|
|
270
270
|
* Closes the connection.
|
|
@@ -354,7 +354,7 @@ class Le {
|
|
|
354
354
|
* Calls a tool on the server with the given parameters.
|
|
355
355
|
*/
|
|
356
356
|
async callTool(e, t) {
|
|
357
|
-
return await this.client.callTool(e,
|
|
357
|
+
return await this.client.callTool(e, ae, t);
|
|
358
358
|
}
|
|
359
359
|
/**
|
|
360
360
|
* Lists all tools available on the server.
|
|
@@ -414,58 +414,58 @@ class Le {
|
|
|
414
414
|
* Registers a handler for the elicitation request.
|
|
415
415
|
*/
|
|
416
416
|
onElicit(e) {
|
|
417
|
-
this.client.setRequestHandler(
|
|
417
|
+
this.client.setRequestHandler(ce, e);
|
|
418
418
|
}
|
|
419
419
|
/**
|
|
420
420
|
* Registers a handler for the create LLM message request.
|
|
421
421
|
*/
|
|
422
422
|
onCreateMessage(e) {
|
|
423
|
-
this.client.setRequestHandler(
|
|
423
|
+
this.client.setRequestHandler(le, e);
|
|
424
424
|
}
|
|
425
425
|
/**
|
|
426
426
|
* Registers a handler for the list roots request.
|
|
427
427
|
*/
|
|
428
428
|
onListRoots(e) {
|
|
429
|
-
this.client.setRequestHandler(
|
|
429
|
+
this.client.setRequestHandler(he, e);
|
|
430
430
|
}
|
|
431
431
|
/**
|
|
432
432
|
* Registers a handler for the tool list changed notification.
|
|
433
433
|
*/
|
|
434
434
|
onToolListChanged(e) {
|
|
435
|
-
this.client.setNotificationHandler(
|
|
435
|
+
this.client.setNotificationHandler(de, e);
|
|
436
436
|
}
|
|
437
437
|
/**
|
|
438
438
|
* Registers a handler for the prompt list changed notification.
|
|
439
439
|
*/
|
|
440
440
|
onPromptListChanged(e) {
|
|
441
|
-
this.client.setNotificationHandler(
|
|
441
|
+
this.client.setNotificationHandler(pe, e);
|
|
442
442
|
}
|
|
443
443
|
/**
|
|
444
444
|
* Registers a handler for the resource list changed notification.
|
|
445
445
|
*/
|
|
446
446
|
onResourceListChanged(e) {
|
|
447
|
-
this.client.setNotificationHandler(
|
|
447
|
+
this.client.setNotificationHandler(ue, e);
|
|
448
448
|
}
|
|
449
449
|
/**
|
|
450
450
|
* Registers a handler for the resource updated notification.
|
|
451
451
|
*/
|
|
452
452
|
onResourceUpdated(e) {
|
|
453
|
-
this.client.setNotificationHandler(
|
|
453
|
+
this.client.setNotificationHandler(me, e);
|
|
454
454
|
}
|
|
455
455
|
/**
|
|
456
456
|
* Registers a handler for the logging message notification.
|
|
457
457
|
*/
|
|
458
458
|
onLoggingMessage(e) {
|
|
459
|
-
this.client.setNotificationHandler(
|
|
459
|
+
this.client.setNotificationHandler(ge, e);
|
|
460
460
|
}
|
|
461
461
|
/**
|
|
462
462
|
* Close the transport for window.addEventListener('pagehide')
|
|
463
463
|
*/
|
|
464
464
|
async onPagehide(e) {
|
|
465
|
-
e.persisted || (
|
|
465
|
+
e.persisted || (Le(this.transport) ? await this.transport.terminateSession() : this.transport && typeof this.transport.close == "function" && await this.transport.close());
|
|
466
466
|
}
|
|
467
467
|
}
|
|
468
|
-
const
|
|
468
|
+
const L0 = (r, e) => new c2(r, e), S0 = (r, e) => new G(r, e), T0 = (r, e) => new n2(r, e), M0 = (r) => r instanceof c2, Le = (r) => r instanceof G, R0 = (r) => r instanceof n2, E0 = (r) => r instanceof E2, A = (r, e, t) => {
|
|
469
469
|
window.postMessage({ type: r, direction: t, data: e }, "*");
|
|
470
470
|
}, C2 = (r, e, t) => {
|
|
471
471
|
const s = async function(i) {
|
|
@@ -482,15 +482,15 @@ const x0 = (r, e) => new c2(r, e), L0 = (r, e) => new G(r, e), S0 = (r, e) => ne
|
|
|
482
482
|
else
|
|
483
483
|
return chrome.runtime.sendMessage({ direction: t, type: r, data: e });
|
|
484
484
|
}, s2 = (r, e, t, s) => {
|
|
485
|
-
const i = (n, a,
|
|
485
|
+
const i = (n, a, h) => {
|
|
486
486
|
if (n.type === r && n.direction === t && (!s || s && n.tabId === s)) {
|
|
487
|
-
const { data:
|
|
488
|
-
e(
|
|
487
|
+
const { data: c } = n;
|
|
488
|
+
e(c, a, h), h(a);
|
|
489
489
|
}
|
|
490
490
|
};
|
|
491
491
|
return chrome.runtime.onMessage.addListener(i), () => chrome.runtime.onMessage.removeListener(i);
|
|
492
492
|
};
|
|
493
|
-
class
|
|
493
|
+
class Se {
|
|
494
494
|
constructor(e) {
|
|
495
495
|
this._isStarted = !1, this._isClosed = !1, this.targetSessionId = e, this._messageListener = s2(
|
|
496
496
|
"mcp-server-to-client",
|
|
@@ -539,13 +539,13 @@ class Re {
|
|
|
539
539
|
}
|
|
540
540
|
}
|
|
541
541
|
}
|
|
542
|
-
const
|
|
542
|
+
const P2 = () => typeof crypto < "u" && crypto.randomUUID ? crypto.randomUUID() : "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (r) => {
|
|
543
543
|
const e = Math.random() * 16 | 0;
|
|
544
544
|
return (r === "x" ? e : e & 3 | 8).toString(16);
|
|
545
545
|
});
|
|
546
|
-
class
|
|
546
|
+
class P0 {
|
|
547
547
|
constructor(e = null) {
|
|
548
|
-
this._isStarted = !1, this._isClosed = !1, this._lastRegistration = null, this.sessionId = e ||
|
|
548
|
+
this._isStarted = !1, this._isClosed = !1, this._lastRegistration = null, this.sessionId = e || P2(), this._messageListener1 = C2(
|
|
549
549
|
"sidepanel-ready-to-page",
|
|
550
550
|
() => {
|
|
551
551
|
this._lastRegistration && this._isStarted && this.notifyRegistration(this._lastRegistration).catch((t) => {
|
|
@@ -628,9 +628,9 @@ class E0 {
|
|
|
628
628
|
}
|
|
629
629
|
}
|
|
630
630
|
}
|
|
631
|
-
class
|
|
631
|
+
class k0 {
|
|
632
632
|
constructor(e = null, t) {
|
|
633
|
-
this._isStarted = !1, this._isClosed = !1, this._lastRegistration = null, this.sessionId = e ||
|
|
633
|
+
this._isStarted = !1, this._isClosed = !1, this._lastRegistration = null, this.sessionId = e || P2(), this.tabId = t, s2(
|
|
634
634
|
"sidepanel-ready",
|
|
635
635
|
() => {
|
|
636
636
|
this._lastRegistration && this._isStarted && this.notifyRegistration(this._lastRegistration).catch((s) => {
|
|
@@ -757,7 +757,7 @@ const Me = {
|
|
|
757
757
|
container: document.body,
|
|
758
758
|
className: "tiny-remoter-native-tooltip"
|
|
759
759
|
};
|
|
760
|
-
class
|
|
760
|
+
class Re {
|
|
761
761
|
constructor(e, t = {}) {
|
|
762
762
|
if (this.tip = null, this.showTimer = 0, this.hideTimer = 0, this.clickOutside = null, this.el = typeof e == "string" ? document.querySelector(e) : e, !this.el) throw new Error("Tooltip: invalid element");
|
|
763
763
|
this.opts = { ...Me, ...t }, this.bindEvents();
|
|
@@ -806,9 +806,9 @@ class Ee {
|
|
|
806
806
|
this.applyStyle(this.calcStyle("top"));
|
|
807
807
|
}
|
|
808
808
|
calcStyle(e) {
|
|
809
|
-
const t = this.el.getBoundingClientRect(), s = this.tip.getBoundingClientRect(), i = window.pageYOffset || document.documentElement.scrollTop, n = window.pageXOffset || document.documentElement.scrollLeft, a = 6, [
|
|
810
|
-
let
|
|
811
|
-
return
|
|
809
|
+
const t = this.el.getBoundingClientRect(), s = this.tip.getBoundingClientRect(), i = window.pageYOffset || document.documentElement.scrollTop, n = window.pageXOffset || document.documentElement.scrollLeft, a = 6, [h, c = "center"] = e.split("-");
|
|
810
|
+
let l = 0, d = 0;
|
|
811
|
+
return h === "top" ? l = t.top + i - s.height - a : h === "bottom" ? l = t.bottom + i + a : h === "left" ? d = t.left + n - s.width - a : h === "right" && (d = t.right + n + a), (h === "top" || h === "bottom") && (c === "start" ? d = t.left + n : c === "end" ? d = t.right + n - s.width : d = (t.left + t.right) / 2 + n - s.width / 2), (h === "left" || h === "right") && (c === "start" ? l = t.top + i : c === "end" ? l = t.bottom + i - s.height : l = (t.top + t.bottom) / 2 + i - s.height / 2), { top: Math.round(l), left: Math.round(d) };
|
|
812
812
|
}
|
|
813
813
|
applyStyle({ top: e, left: t }) {
|
|
814
814
|
Object.assign(this.tip.style, {
|
|
@@ -899,20 +899,20 @@ const w2 = "tiny-remoter-native-tooltip-style";
|
|
|
899
899
|
}
|
|
900
900
|
`, document.head.appendChild(r);
|
|
901
901
|
})();
|
|
902
|
-
const Pe = "data:image/svg+xml,%3csvg%20viewBox='0%200%2040%2039.9692'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='40.000000'%20height='39.969238'%20fill='none'%20customFrame='url(%23clipPath_3)'%3e%3cdefs%3e%3cclipPath%20id='clipPath_3'%3e%3crect%20width='40.000000'%20height='39.969238'%20x='0.000000'%20y='0.000000'%20rx='12.000000'%20fill='rgb(255,255,255)'%20/%3e%3c/clipPath%3e%3cclipPath%20id='clipPath_4'%3e%3crect%20width='24.000000'%20height='24.000000'%20x='8.000000'%20y='7.984619'%20fill='rgb(255,255,255)'%20/%3e%3c/clipPath%3e%3cclipPath%20id='clipPath_5'%3e%3crect%20width='20.000000'%20height='20.000000'%20x='10.000000'%20y='9.984619'%20fill='rgb(255,255,255)'%20/%3e%3c/clipPath%3e%3cclipPath%20id='clipPath_6'%3e%3crect%20width='20.000000'%20height='20.000000'%20x='10.000000'%20y='9.984619'%20fill='rgb(255,255,255)'%20/%3e%3c/clipPath%3e%3cclipPath%20id='clipPath_7'%3e%3crect%20width='21.666666'%20height='13.333333'%20x='20.000000'%20y='9.984619'%20rx='6.666667'%20fill='rgb(255,255,255)'%20/%3e%3c/clipPath%3e%3cclipPath%20id='clipPath_8'%3e%3crect%20width='6.666667'%20height='6.666667'%20x='23.333496'%20y='9.984619'%20fill='rgb(255,255,255)'%20/%3e%3c/clipPath%3e%3c/defs%3e%3crect%20id='2'%20width='40.000000'%20height='39.969238'%20x='0.000000'%20y='0.000000'%20rx='12.000000'%20fill='rgb(239,246,255)'%20/%3e%3cg%20id='物业'%20clip-path='url(%23clipPath_4)'%20customFrame='url(%23clipPath_4)'%3e%3crect%20id='物业'%20width='24.000000'%20height='24.000000'%20x='8.000000'%20y='7.984619'%20/%3e%3cg%20id='物业服务'%3e%3cg%20id='00公共/红点/图标+红点'%20customFrame='url(%23clipPath_5)'%3e%3crect%20id='00公共/红点/图标+红点'%20width='20.000000'%20height='20.000000'%20x='10.000000'%20y='9.984619'%20/%3e%3cg%20id='common_chats_line'%20customFrame='url(%23clipPath_6)'%3e%3crect%20id='common_chats_line'%20width='20.000000'%20height='20.000000'%20x='10.000000'%20y='9.984619'%20/%3e%3cpath%20id='形状'%20d='M28.3332%2019.9847C28.3332%2015.3823%2024.6022%2011.6514%2019.9998%2011.6514C15.3975%2011.6514%2011.6665%2015.3823%2011.6665%2019.9847C11.6665%2024.5871%2015.3975%2028.318%2019.9998%2028.318C21.0018%2028.318%2021.9624%2028.1412%2022.8522%2027.8171L26.581%2028.1578C26.7205%2028.1706%2026.8611%2028.1598%2026.9971%2028.1259C27.6669%2027.959%2028.0746%2027.2806%2027.9077%2026.6108L27.2716%2024.0578C27.9477%2022.8535%2028.3332%2021.4641%2028.3332%2019.9847ZM19.9998%2013.1514C16.2259%2013.1514%2013.1665%2016.2108%2013.1665%2019.9847C13.1665%2023.7586%2016.2259%2026.818%2019.9998%2026.818C20.8089%2026.818%2021.5967%2026.678%2022.3388%2026.4077C22.505%2026.3471%2022.6803%2026.3166%2022.8565%2026.3171L22.9887%2026.3233L26.3665%2026.6322L25.8161%2024.4205C25.7352%2024.0958%2025.7655%2023.7548%2025.8997%2023.4512L25.9636%2023.3236C26.5311%2022.3126%2026.8332%2021.1723%2026.8332%2019.9847C26.8332%2016.2108%2023.7738%2013.1514%2019.9998%2013.1514ZM23.1152%2021.2468C23.352%2020.9069%2023.2684%2020.4394%2022.9286%2020.2026C22.5887%2019.9659%2022.1212%2020.0494%2021.8845%2020.3893C21.2894%2021.2433%2020.4268%2021.7347%2019.5102%2021.7347C18.9513%2021.7347%2018.4132%2021.554%2017.9375%2021.2122C17.6011%2020.9705%2017.1325%2021.0472%2016.8908%2021.3836C16.6491%2021.7199%2016.7258%2022.1886%2017.0622%2022.4303C17.7879%2022.9518%2018.6305%2023.2347%2019.5102%2023.2347C20.9394%2023.2347%2022.2505%2022.4878%2023.1152%2021.2468Z'%20fill='rgb(65,142,255)'%20fill-rule='evenodd'%20/%3e%3c/g%3e%3cg%20id='00公共/3位数红点'%20opacity='0'%20customFrame='url(%23clipPath_7)'%3e%3crect%20id='00公共/3位数红点'%20width='21.666666'%20height='13.333333'%20x='20.000000'%20y='9.984619'%20rx='6.666667'%20opacity='0'%20fill='rgb(243,111,100)'%20/%3e%3cpath%20id='文本'%20d='M26.0421%2013.4421C26.4259%2013.4421%2026.7677%2013.5255%2027.0675%2013.6923C27.3672%2013.8591%2027.6005%2014.0931%2027.7673%2014.3942C27.9342%2014.694%2028.0176%2015.0351%2028.0176%2015.4176C28.0176%2015.7173%2027.9633%2015.994%2027.8548%2016.2476C27.7463%2016.4999%2027.5673%2016.8315%2027.3177%2017.2425L25.859%2019.6432L25.0167%2019.6432L26.276%2017.5924C26.3534%2017.4704%2026.4307%2017.3564%2026.508%2017.2507C26.3357%2017.3063%2026.1445%2017.3341%2025.9342%2017.3341C25.5721%2017.3341%2025.2493%2017.2479%2024.9658%2017.0757C24.6837%2016.9034%2024.4633%2016.6701%2024.3046%2016.3758C24.1459%2016.0815%2024.0666%2015.7566%2024.0666%2015.4013C24.0666%2015.0351%2024.1513%2014.7021%2024.3209%2014.4023C24.4904%2014.1012%2024.7264%2013.8659%2025.0289%2013.6964C25.3314%2013.5268%2025.6691%2013.4421%2026.0421%2013.4421ZM26.0421%2016.6505C26.4029%2016.6505%2026.6904%2016.5325%2026.9047%2016.2965C27.119%2016.0605%2027.2262%2015.7539%2027.2262%2015.3769C27.2262%2014.9985%2027.119%2014.694%2026.9047%2014.4634C26.6904%2014.2328%2026.4029%2014.1175%2026.0421%2014.1175C25.6867%2014.1175%2025.4019%2014.2342%2025.1876%2014.4674C24.9733%2014.7007%2024.8661%2015.0039%2024.8661%2015.3769C24.8661%2015.7539%2024.9719%2016.0605%2025.1835%2016.2965C25.3951%2016.5325%2025.6813%2016.6505%2026.0421%2016.6505ZM30.7921%2013.4421C31.1759%2013.4421%2031.5177%2013.5255%2031.8175%2013.6923C32.1172%2013.8591%2032.3505%2014.0931%2032.5173%2014.3942C32.6842%2014.694%2032.7676%2015.0351%2032.7676%2015.4176C32.7676%2015.7173%2032.7133%2015.994%2032.6048%2016.2476C32.4963%2016.4999%2032.3173%2016.8315%2032.0677%2017.2425L30.609%2019.6432L29.7667%2019.6432L31.026%2017.5924C31.1034%2017.4704%2031.1807%2017.3564%2031.258%2017.2507C31.0857%2017.3063%2030.8945%2017.3341%2030.6842%2017.3341C30.3221%2017.3341%2029.9993%2017.2479%2029.7158%2017.0757C29.4337%2016.9034%2029.2133%2016.6701%2029.0546%2016.3758C28.8959%2016.0815%2028.8166%2015.7566%2028.8166%2015.4013C28.8166%2015.0351%2028.9013%2014.7021%2029.0709%2014.4023C29.2404%2014.1012%2029.4764%2013.8659%2029.7789%2013.6964C30.0814%2013.5268%2030.4191%2013.4421%2030.7921%2013.4421ZM30.7921%2016.6505C31.1529%2016.6505%2031.4404%2016.5325%2031.6547%2016.2965C31.869%2016.0605%2031.9762%2015.7539%2031.9762%2015.3769C31.9762%2014.9985%2031.869%2014.694%2031.6547%2014.4634C31.4404%2014.2328%2031.1529%2014.1175%2030.7921%2014.1175C30.4367%2014.1175%2030.1519%2014.2342%2029.9376%2014.4674C29.7233%2014.7007%2029.6161%2015.0039%2029.6161%2015.3769C29.6161%2015.7539%2029.7219%2016.0605%2029.9335%2016.2965C30.1451%2016.5325%2030.4313%2016.6505%2030.7921%2016.6505ZM35.2674%2014.6851L35.9001%2014.6851L35.9001%2016.3188L37.5339%2016.3188L37.5339%2016.9516L35.9001%2016.9516L35.9001%2018.5853L35.2674%2018.5853L35.2674%2016.9516L33.6337%2016.9516L33.6337%2016.3188L35.2674%2016.3188L35.2674%2014.6851Z'%20fill='rgb(255,255,255)'%20fill-rule='nonzero'%20/%3e%3c/g%3e%3cg%20id='00公共/单红点'%20opacity='0'%20customFrame='url(%23clipPath_8)'%3e%3crect%20id='00公共/单红点'%20width='6.666667'%20height='6.666667'%20x='23.333496'%20y='9.984619'%20opacity='0'%20fill='rgb(255,255,255)'%20fill-opacity='0'%20/%3e%3ccircle%20id='红点'%20cx='26.6668301'%20cy='13.3179522'%20r='3.33333325'%20fill='rgb(243,111,100)'%20/%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e", ke = "data:image/svg+xml,%3csvg%20viewBox='0%200%2040%2040'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='40.000000'%20height='40.000000'%20fill='none'%20customFrame='url(%23clipPath_12)'%3e%3cdefs%3e%3cclipPath%20id='clipPath_12'%3e%3crect%20width='40.000000'%20height='40.000000'%20x='0.000000'%20y='0.000000'%20rx='12.000000'%20fill='rgb(255,255,255)'%20/%3e%3c/clipPath%3e%3cclipPath%20id='clipPath_13'%3e%3crect%20width='24.000000'%20height='24.000000'%20x='8.000000'%20y='8.000000'%20fill='rgb(255,255,255)'%20/%3e%3c/clipPath%3e%3cclipPath%20id='clipPath_14'%3e%3crect%20width='20.000000'%20height='20.000000'%20x='10.000000'%20y='10.000000'%20fill='rgb(255,255,255)'%20/%3e%3c/clipPath%3e%3c/defs%3e%3crect%20id='4'%20width='40.000000'%20height='40.000000'%20x='0.000000'%20y='0.000000'%20rx='12.000000'%20fill='rgb(234,255,244)'%20/%3e%3cg%20id='我的信息'%20clip-path='url(%23clipPath_13)'%20customFrame='url(%23clipPath_13)'%3e%3crect%20id='我的信息'%20width='24.000000'%20height='24.000000'%20x='8.000000'%20y='8.000000'%20/%3e%3cg%20id='组合%208'%20customFrame='url(%23clipPath_14)'%3e%3crect%20id='组合%208'%20width='20.000000'%20height='20.000000'%20x='10.000000'%20y='10.000000'%20/%3e%3cpath%20id='合并'%20d='M28.4994%2012.3142C28.4994%2012.2578%2028.4937%2012.2018%2028.4825%2012.1465C28.4713%2012.0911%2028.4547%2012.0373%2028.4327%2011.9851C28.4107%2011.933%2028.3836%2011.8835%2028.3516%2011.8365C28.3197%2011.7896%2028.2834%2011.7461%2028.2427%2011.7062C28.202%2011.6663%2028.1579%2011.6307%2028.1101%2011.5993C28.0622%2011.568%2028.0117%2011.5415%2027.9585%2011.5199C27.9054%2011.4983%2027.8506%2011.4819%2027.7942%2011.4709C27.7378%2011.4599%2027.6806%2011.4544%2027.6231%2011.4544L24.1832%2011.5199L24.1832%2010L29.0796%2010C29.1472%2010%2029.2143%2010.0065%2029.2806%2010.0194C29.347%2010.0324%2029.4114%2010.0516%2029.4739%2010.077C29.5364%2010.1024%2029.5961%2010.1336%2029.6523%2010.1705C29.7086%2010.2074%2029.7605%2010.2493%2029.8084%2010.2963C29.8562%2010.3433%2029.8991%2010.3944%2029.9367%2010.4496C29.9743%2010.5048%2030.006%2010.5631%2030.0319%2010.6244C30.0578%2010.6858%2030.0773%2010.7491%2030.0905%2010.8142C30.1037%2010.8794%2030.1104%2010.9451%2030.1104%2011.0115L30.1832%2014.4522L28.4992%2014.5L28.4994%2012.3142ZM11.6995%2012.3143C11.6995%2012.2579%2011.7051%2012.2019%2011.7163%2012.1466C11.7275%2012.0912%2011.7441%2012.0374%2011.7661%2011.9852C11.7882%2011.9331%2011.8152%2011.8836%2011.8472%2011.8366C11.8791%2011.7897%2011.9155%2011.7462%2011.9562%2011.7063C11.9968%2011.6664%2012.0409%2011.6308%2012.0888%2011.5994C12.1366%2011.5681%2012.1871%2011.5416%2012.2403%2011.52C12.2934%2011.4984%2012.3482%2011.482%2012.4046%2011.471C12.4611%2011.46%2012.5182%2011.4545%2012.5758%2011.4545L16.0157%2011.52L16.0157%2010.0001L11.1193%2010.0001C11.0516%2010.0001%2010.9846%2010.0066%2010.9182%2010.0196C10.8518%2010.0325%2010.7874%2010.0517%2010.7249%2010.0771C10.6624%2010.1025%2010.6028%2010.1337%2010.5465%2010.1706C10.4902%2010.2075%2010.4383%2010.2494%2010.3904%2010.2964C10.3426%2010.3434%2010.2997%2010.3945%2010.2621%2010.4497C10.2245%2010.5049%2010.1929%2010.5632%2010.167%2010.6245C10.1411%2010.6859%2010.1215%2010.7492%2010.1083%2010.8143C10.0951%2010.8795%2010.0885%2010.9452%2010.0884%2011.0116L10.0157%2014.4523L11.6997%2014.5L11.6995%2012.3143ZM25.3135%2021.8051L25.3135%2022.8167C25.7656%2022.8929%2026.2209%2022.9249%2026.6792%2022.9127C28.3381%2022.9127%2029.1675%2022.326%2029.1675%2021.1527C29.1733%2020.9869%2029.151%2020.825%2029.1006%2020.667C29.0503%2020.509%2028.9747%2020.3641%2028.8742%2020.2322C28.767%2020.1025%2028.6403%2019.9963%2028.4938%2019.9134C28.3474%2019.8306%2028.191%2019.7767%2028.0246%2019.7517L28.0246%2019.7011C28.0971%2019.6839%2028.1676%2019.6606%2028.236%2019.6311C28.3044%2019.6016%2028.3698%2019.5665%2028.4321%2019.5257C28.4944%2019.4848%2028.5526%2019.4389%2028.6069%2019.3879C28.6613%2019.3369%2028.7109%2019.2816%2028.7556%2019.222C28.8003%2019.1624%2028.8394%2019.0994%2028.8732%2019.033C28.9069%2018.9665%2028.9346%2018.8977%2028.9564%2018.8265C28.9782%2018.7552%2028.9937%2018.6826%2029.0028%2018.6086C29.0119%2018.5347%2029.0145%2018.4605%2029.0107%2018.3861C29.0217%2018.2675%2029.0176%2018.1495%2028.9984%2018.0319C28.9791%2017.9144%2028.9454%2017.8012%2028.8971%2017.6923C28.8489%2017.5834%2028.7875%2017.4823%2028.7134%2017.3891C28.6393%2017.2959%2028.5547%2017.2135%2028.4595%2017.1419C28.219%2017.0003%2027.963%2016.8972%2027.6915%2016.8326C27.4199%2016.7679%2027.1449%2016.7446%2026.8664%2016.7626C26.6258%2016.7621%2026.3864%2016.7791%2026.1482%2016.8132C25.9479%2016.8386%2025.7504%2016.8791%2025.5563%2016.9346L25.5563%2017.8854C25.743%2017.8264%2025.9337%2017.7842%2026.128%2017.759C26.3276%2017.73%2026.5282%2017.7148%2026.7298%2017.7134C27.0252%2017.6949%2027.3049%2017.7523%2027.5692%2017.8854C27.6168%2017.9161%2027.6595%2017.9525%2027.6972%2017.9947C27.7348%2018.037%2027.766%2018.0835%2027.791%2018.1343C27.816%2018.1851%2027.8337%2018.2383%2027.8441%2018.294C27.8545%2018.3496%2027.8573%2018.4056%2027.8525%2018.462C27.8566%2018.5278%2027.8514%2018.5927%2027.8367%2018.657C27.822%2018.7212%2027.7986%2018.7821%2027.7663%2018.8395C27.734%2018.897%2027.694%2018.9487%2027.6468%2018.9946C27.5995%2019.0405%2027.5468%2019.0787%2027.4885%2019.1093C27.1544%2019.2631%2026.8037%2019.3306%2026.4364%2019.3117L25.9862%2019.3117L25.9862%2020.1917L26.4466%2020.1917C26.8409%2020.1669%2027.2202%2020.2309%2027.5845%2020.3839C27.6459%2020.4167%2027.7011%2020.4576%2027.7505%2020.5066C27.7999%2020.5556%2027.8412%2020.6107%2027.8745%2020.6718C27.9077%2020.733%2027.9315%2020.7976%2027.9458%2020.8656C27.9602%2020.9337%2027.9644%2021.0024%2027.9587%2021.0717C27.9648%2021.1402%2027.9612%2021.2083%2027.9478%2021.2757C27.9344%2021.3432%2027.912%2021.4074%2027.8801%2021.4683C27.8483%2021.5293%2027.8086%2021.5846%2027.7609%2021.6341C27.7132%2021.6837%2027.6593%2021.7254%2027.5996%2021.7596C27.2884%2021.9045%2026.9613%2021.9685%2026.6184%2021.9518C26.1786%2021.9465%2025.7436%2021.8977%2025.3135%2021.8051ZM21.3382%2018.6238C21.3445%2018.5593%2021.343%2018.495%2021.3335%2018.4308C21.3241%2018.3667%2021.3069%2018.3046%2021.2822%2018.2447C21.2575%2018.1847%2021.226%2018.1287%2021.1876%2018.0765C21.1492%2018.0242%2021.1049%2017.9774%2021.055%2017.936C20.9359%2017.8608%2020.808%2017.806%2020.6714%2017.7714C20.5349%2017.7368%2020.3964%2017.7242%2020.2558%2017.7337C19.8009%2017.7395%2019.356%2017.8087%2018.9208%2017.9411L18.9208%2016.9598C19.4252%2016.8181%2019.9393%2016.7524%2020.4633%2016.7626C20.7322%2016.7484%2020.9964%2016.7773%2021.256%2016.8491C21.5156%2016.9209%2021.7571%2017.032%2021.9806%2017.1824C22.0729%2017.2601%2022.1548%2017.3474%2022.2263%2017.4446C22.2978%2017.5418%2022.3567%2017.646%2022.4034%2017.7573C22.45%2017.8686%2022.483%2017.9838%2022.5021%2018.1029C22.5213%2018.222%2022.5261%2018.3417%2022.5167%2018.462C22.5245%2018.7882%2022.4655%2019.1017%2022.3396%2019.4027C22.1879%2019.7384%2021.984%2020.0384%2021.7277%2020.3029C21.3021%2020.7337%2020.8502%2021.135%2020.3721%2021.5067L19.9928%2021.8051L19.9928%2021.8759L22.6938%2021.8759L22.6938%2022.8419L18.5464%2022.8419L18.5464%2021.7697C19.2882%2021.1796%2019.8579%2020.6975%2020.2558%2020.3232C20.574%2020.0432%2020.8523%2019.728%2021.0905%2019.3774C21.1675%2019.2665%2021.2269%2019.1469%2021.2691%2019.0187C21.3113%2018.8904%2021.3344%2018.7588%2021.3382%2018.6238ZM12.3102%2017.2127L12.3102%2018.1939L13.7769%2017.9107L13.7769%2022.8419L14.9605%2022.8419L14.9605%2016.8486L14.0957%2016.8486L12.3102%2017.2127ZM28.5524%2028.0475C28.5524%2028.104%2028.5467%2028.1599%2028.5353%2028.2152C28.5239%2028.2706%2028.5071%2028.3244%2028.4849%2028.3766C28.4626%2028.4287%2028.4352%2028.4782%2028.4028%2028.5252C28.3705%2028.5721%2028.3337%2028.6156%2028.2925%2028.6555C28.2513%2028.6954%2028.2067%2028.731%2028.1583%2028.7624C28.1098%2028.7937%2028.0587%2028.8202%2028.0049%2028.8418C27.9511%2028.8634%2027.8957%2028.8798%2027.8385%2028.8908C27.7814%2028.9018%2027.7235%2028.9073%2027.6653%2028.9073L24.1832%2028.8418L24.1832%2030.3617L29.1397%2030.3617C29.2082%2030.3617%2029.276%2030.3552%2029.3432%2030.3423C29.4104%2030.3293%2029.4756%2030.3101%2029.5389%2030.2847C29.6022%2030.2593%2029.6625%2030.2281%2029.7195%2030.1912C29.7765%2030.1543%2029.829%2030.1124%2029.8774%2030.0654C29.9259%2030.0184%2029.9693%2029.9673%2030.0074%2029.9121C30.0454%2029.8569%2030.0774%2029.7986%2030.1037%2029.7373C30.1299%2029.6759%2030.1497%2029.6126%2030.163%2029.5475C30.1764%2029.4823%2030.1831%2029.4166%2030.1832%2029.3502L30.1832%2026.0478L28.4785%2026L28.5524%2028.0475ZM11.6308%2028.0099C11.6308%2028.0664%2011.6365%2028.1223%2011.6479%2028.1777C11.6592%2028.233%2011.676%2028.2868%2011.6983%2028.339C11.7206%2028.3911%2011.748%2028.4406%2011.7803%2028.4876C11.8127%2028.5345%2011.8495%2028.578%2011.8906%2028.6179C11.9318%2028.6578%2011.9765%2028.6934%2012.0249%2028.7248C12.0733%2028.7562%2012.1244%2028.7826%2012.1783%2028.8042C12.2321%2028.8259%2012.2875%2028.8422%2012.3446%2028.8532C12.4017%2028.8642%2012.4596%2028.8697%2012.5178%2028.8698L16%2028.8042L16%2030.3241L11.0435%2030.3241C10.975%2030.3241%2010.9071%2030.3176%2010.8399%2030.3047C10.7727%2030.2917%2010.7076%2030.2725%2010.6443%2030.2471C10.581%2030.2217%2010.5206%2030.1906%2010.4637%2030.1537C10.4067%2030.1168%2010.3542%2030.0748%2010.3057%2030.0278C10.2573%2029.9809%2010.2138%2029.9298%2010.1758%2029.8745C10.1377%2029.8193%2010.1057%2029.7611%2010.0795%2029.6997C10.0533%2029.6383%2010.0335%2029.575%2010.0201%2029.5099C10.0068%2029.4448%2010%2029.379%2010%2029.3126L10%2026.0478L11.7047%2026L11.6308%2028.0099Z'%20fill='rgb(14,191,241)'%20fill-rule='evenodd'%20/%3e%3c/g%3e%3c/g%3e%3c/svg%3e", Ie = "data:image/svg+xml,%3csvg%20viewBox='0%200%2040%2040'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='40.000000'%20height='40.000000'%20fill='none'%20customFrame='url(%23clipPath_9)'%3e%3cdefs%3e%3cclipPath%20id='clipPath_9'%3e%3crect%20width='40.000000'%20height='40.000000'%20x='0.000000'%20y='0.000000'%20rx='12.000000'%20fill='rgb(255,255,255)'%20/%3e%3c/clipPath%3e%3cclipPath%20id='clipPath_10'%3e%3crect%20width='24.000000'%20height='24.000000'%20x='8.000000'%20y='8.000000'%20fill='rgb(255,255,255)'%20/%3e%3c/clipPath%3e%3cclipPath%20id='clipPath_11'%3e%3crect%20width='20.000000'%20height='20.000000'%20x='10.000000'%20y='10.000000'%20fill='rgb(255,255,255)'%20/%3e%3c/clipPath%3e%3c/defs%3e%3crect%20id='3'%20width='40.000000'%20height='40.000000'%20x='0.000000'%20y='0.000000'%20rx='12.000000'%20fill='rgb(236,250,254)'%20/%3e%3cg%20id='画板%202310'%20customFrame='url(%23clipPath_10)'%3e%3crect%20id='画板%202310'%20width='24.000000'%20height='24.000000'%20x='8.000000'%20y='8.000000'%20fill='rgb(255,255,255)'%20fill-opacity='0'%20/%3e%3cg%20id='人事服务'%3e%3cg%20id='ic_public_link'%20clip-path='url(%23clipPath_11)'%20customFrame='url(%23clipPath_11)'%3e%3crect%20id='ic_public_link'%20width='20.000000'%20height='20.000000'%20x='10.000000'%20y='10.000000'%20/%3e%3cpath%20id='path1'%20d='M9.9999%2019.9917C9.9999%2018.4292%209.99573%2016.8667%209.9999%2015.3042C9.99573%2014.5459%2010.0916%2013.7917%2010.2749%2013.0626C10.6874%2011.5126%2011.6957%2010.5917%2013.2457%2010.2334C14.0207%2010.0667%2014.8166%209.98756%2015.6082%2010.0001C18.6041%2010.0001%2021.5999%2010.0001%2024.5999%2010.0001C25.3541%209.99589%2026.1082%2010.0792%2026.8457%2010.2584C28.4416%2010.6459%2029.3999%2011.6584%2029.7624%2013.2501C29.9291%2014.0001%2030.0041%2014.7667%2029.9957%2015.5376C29.9957%2018.5667%2029.9957%2021.5959%2029.9957%2024.6209C29.9999%2025.3709%2029.9166%2026.1209%2029.7416%2026.8459C29.3499%2028.4459%2028.3332%2029.3959%2026.7457%2029.7626C25.9666%2029.9292%2025.1749%2030.0084%2024.3791%2029.9959C21.3957%2029.9959%2018.4124%2029.9959%2015.4291%2029.9959C14.6666%2030.0042%2013.9082%2029.9167%2013.1666%2029.7417C11.5624%2029.3542%2010.5999%2028.3376%2010.2374%2026.7376C10.0499%2025.9251%209.9999%2025.1126%209.9999%2024.2917C9.9999%2022.8584%209.9999%2021.4251%209.9999%2019.9917Z'%20fill='rgb(255,255,255)'%20fill-opacity='0'%20fill-rule='evenodd'%20/%3e%3ccircle%20id='path2'%20cx='20'%20cy='20'%20r='10'%20fill='rgb(255,255,255)'%20fill-opacity='0'%20/%3e%3cpath%20id='path3'%20d='M25.0333%2021.8666L26.9%2020C28.8083%2018.0916%2028.8083%2015%2026.9%2013.0958C24.9958%2011.1875%2021.9041%2011.1875%2020%2013.0958L18.1291%2014.9625M21.8666%2025.0333L20%2026.9C18.0916%2028.8083%2015%2028.8083%2013.0958%2026.9C11.1875%2024.9958%2011.1875%2021.9041%2013.0958%2020L14.9625%2018.1291'%20fill-rule='nonzero'%20stroke='rgb(14,191,241)'%20stroke-linecap='round'%20stroke-width='1.25'%20/%3e%3cpath%20id='pah4'%20d='M18.125%2021.875L21.875%2018.125'%20stroke='rgb(14,191,241)'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='1.25'%20/%3e%3cpath%20id='path5'%20d='M25.8207%2019.2626L24.0457%2021.0376C23.7998%2021.2834%2023.6748%2021.5292%2023.6748%2021.7751C23.6748%2022.0209%2023.7998%2022.2667%2024.0457%2022.5126C24.1498%2022.6167%2024.2665%2022.6959%2024.3915%2022.7459C24.5123%2022.7917%2024.6415%2022.8167%2024.779%2022.8167C24.9207%2022.8167%2025.0498%2022.7917%2025.1665%2022.7459C25.2957%2022.6959%2025.4123%2022.6167%2025.5165%2022.5126L27.2915%2020.7334C27.8165%2020.2126%2028.2165%2019.6334%2028.4957%2019.0001C28.5082%2018.9667%2028.5248%2018.9334%2028.5373%2018.8959C28.554%2018.8626%2028.5665%2018.8292%2028.579%2018.7917C28.8332%2018.1501%2028.9582%2017.4584%2028.9582%2016.7209C28.9582%2015.9792%2028.8332%2015.2876%2028.579%2014.6459C28.5665%2014.6084%2028.554%2014.5751%2028.5373%2014.5417C28.5248%2014.5042%2028.5082%2014.4709%2028.4957%2014.4376C28.2165%2013.8042%2027.8165%2013.2292%2027.2915%2012.7042C26.7707%2012.1792%2026.1915%2011.7792%2025.5582%2011.5001C25.5248%2011.4876%2025.4915%2011.4709%2025.454%2011.4584C25.4207%2011.4417%2025.3873%2011.4292%2025.354%2011.4167C24.7082%2011.1667%2024.0165%2011.0417%2023.279%2011.0417C22.5373%2011.0417%2021.8457%2011.1667%2021.204%2011.4167C21.1665%2011.4292%2021.1332%2011.4417%2021.0998%2011.4584C21.0623%2011.4709%2021.029%2011.4876%2020.9957%2011.5001C20.3623%2011.7792%2019.7832%2012.1792%2019.2623%2012.7042L17.4832%2014.4792C17.379%2014.5834%2017.2998%2014.7001%2017.2498%2014.8292C17.204%2014.9501%2017.179%2015.0751%2017.179%2015.2167C17.179%2015.3542%2017.204%2015.4834%2017.2498%2015.6042C17.2998%2015.7292%2017.379%2015.8459%2017.4832%2015.9542C17.5915%2016.0584%2017.7082%2016.1376%2017.8332%2016.1876C17.954%2016.2334%2018.0832%2016.2584%2018.2207%2016.2584C18.3623%2016.2584%2018.4915%2016.2334%2018.6082%2016.1876C18.7373%2016.1376%2018.854%2016.0584%2018.9582%2015.9542L20.7332%2014.1751C21.0873%2013.8209%2021.4748%2013.5584%2021.8957%2013.3834C22.3165%2013.2084%2022.779%2013.1251%2023.279%2013.1251C23.7748%2013.1251%2024.2373%2013.2084%2024.6582%2013.3834C25.079%2013.5584%2025.4665%2013.8209%2025.8207%2014.1751C26.1748%2014.5292%2026.4373%2014.9167%2026.6123%2015.3376C26.7873%2015.7584%2026.8748%2016.2167%2026.8748%2016.7209C26.8748%2017.2209%2026.7873%2017.6792%2026.6123%2018.1001C26.4373%2018.5209%2026.1748%2018.9084%2025.8207%2019.2626ZM13.3832%2021.8959C13.5582%2021.4751%2013.8207%2021.0876%2014.1748%2020.7334L15.954%2018.9584C16.0582%2018.8542%2016.1373%2018.7376%2016.1873%2018.6084C16.2332%2018.4876%2016.2582%2018.3626%2016.2582%2018.2209C16.2582%2018.0834%2016.2332%2017.9542%2016.1873%2017.8334C16.1373%2017.7084%2016.0582%2017.5917%2015.954%2017.4834C15.7082%2017.2417%2015.4623%2017.1167%2015.2165%2017.1167C14.9707%2017.1167%2014.7248%2017.2417%2014.479%2017.4834L12.704%2019.2626C12.179%2019.7876%2011.779%2020.3626%2011.4998%2020.9959C11.4873%2021.0292%2011.4707%2021.0626%2011.4582%2021.1001C11.4415%2021.1334%2011.429%2021.1667%2011.4165%2021.2042C11.1665%2021.8459%2011.0415%2022.5376%2011.0415%2023.2792C11.0415%2024.0167%2011.1665%2024.7084%2011.4165%2025.3542C11.429%2025.3876%2011.4415%2025.4209%2011.4582%2025.4584C11.4707%2025.4917%2011.4873%2025.5251%2011.4998%2025.5584C11.779%2026.1917%2012.179%2026.7709%2012.704%2027.2917C13.2248%2027.8167%2013.804%2028.2167%2014.4373%2028.4959C14.4707%2028.5084%2014.504%2028.5251%2014.5415%2028.5376C14.5748%2028.5542%2014.6082%2028.5667%2014.6457%2028.5792C15.2873%2028.8292%2015.979%2028.9584%2016.7207%2028.9584C17.4582%2028.9584%2018.1498%2028.8292%2018.7915%2028.5792C18.829%2028.5667%2018.8623%2028.5542%2018.8957%2028.5376C18.9332%2028.5251%2018.9665%2028.5084%2018.9998%2028.4959C19.6332%2028.2167%2020.2123%2027.8167%2020.7332%2027.2917L22.5123%2025.5167C22.6165%2025.4126%2022.6957%2025.2959%2022.7457%2025.1667C22.7915%2025.0459%2022.8165%2024.9209%2022.8165%2024.7792C22.8165%2024.6417%2022.7915%2024.5126%2022.7457%2024.3917C22.6957%2024.2667%2022.6165%2024.1501%2022.5123%2024.0417C22.2665%2023.8001%2022.0207%2023.6751%2021.7748%2023.6751C21.529%2023.6751%2021.2832%2023.8001%2021.0373%2024.0417L19.2623%2025.8209C18.9082%2026.1751%2018.5207%2026.4376%2018.0998%2026.6126C17.679%2026.7876%2017.2165%2026.8751%2016.7207%2026.8751C16.2207%2026.8751%2015.7582%2026.7876%2015.3373%2026.6126C14.9165%2026.4376%2014.529%2026.1751%2014.1748%2025.8209C13.8207%2025.4667%2013.5582%2025.0792%2013.3832%2024.6584C13.2082%2024.2376%2013.1248%2023.7792%2013.1248%2023.2792C13.1248%2022.7751%2013.2082%2022.3167%2013.3832%2021.8959Z'%20fill='rgb(255,255,255)'%20fill-opacity='0'%20fill-rule='evenodd'%20/%3e%3cpath%20id='path6'%20d='M21.8127%2016.7458C21.746%2016.7874%2021.6877%2016.8374%2021.6293%2016.8916L16.8918%2021.6291C16.8377%2021.6874%2016.7877%2021.7499%2016.746%2021.8124C16.7127%2021.8624%2016.6877%2021.9166%2016.6627%2021.9749C16.6377%2022.0374%2016.6168%2022.1041%2016.6043%2022.1708C16.5918%2022.2333%2016.5835%2022.2999%2016.5835%2022.3666C16.5835%2022.4333%2016.5918%2022.4999%2016.6043%2022.5666C16.6168%2022.6333%2016.6377%2022.6999%2016.6627%2022.7624C16.6877%2022.8166%2016.7127%2022.8708%2016.746%2022.9208C16.7877%2022.9874%2016.8377%2023.0499%2016.8918%2023.1041C16.946%2023.1583%2017.0085%2023.2083%2017.0752%2023.2499C17.1252%2023.2833%2017.1793%2023.3083%2017.2335%2023.3333C17.3002%2023.3583%2017.3627%2023.3791%2017.4293%2023.3916C17.496%2023.4041%2017.5627%2023.4124%2017.6293%2023.4124C17.696%2023.4124%2017.7627%2023.4041%2017.8252%2023.3916C17.8918%2023.3791%2017.9585%2023.3583%2018.021%2023.3333C18.0793%2023.3083%2018.1335%2023.2833%2018.1835%2023.2499C18.246%2023.2083%2018.3085%2023.1583%2018.3668%2023.1041L23.1043%2018.3666C23.1585%2018.3083%2023.2085%2018.2499%2023.2502%2018.1833C23.2835%2018.1333%2023.3085%2018.0791%2023.3335%2018.0208C23.3585%2017.9583%2023.3793%2017.8916%2023.3918%2017.8249C23.4043%2017.7624%2023.4127%2017.6958%2023.4127%2017.6291C23.4127%2017.5624%2023.4043%2017.4958%2023.3918%2017.4291C23.3793%2017.3624%2023.3585%2017.2999%2023.3335%2017.2333C23.3085%2017.1791%2023.2835%2017.1249%2023.2502%2017.0749C23.2085%2017.0083%2023.1585%2016.9458%2023.1043%2016.8916C23.046%2016.8374%2022.9877%2016.7874%2022.921%2016.7458C22.871%2016.7124%2022.8168%2016.6874%2022.7627%2016.6624C22.696%2016.6374%2022.6335%2016.6166%2022.5668%2016.6041C22.5002%2016.5916%2022.4335%2016.5833%2022.3668%2016.5833C22.3002%2016.5833%2022.2335%2016.5916%2022.171%2016.6041C22.1043%2016.6166%2022.0377%2016.6374%2021.9752%2016.6624C21.9168%2016.6874%2021.8627%2016.7124%2021.8127%2016.7458Z'%20fill='rgb(255,255,255)'%20fill-opacity='0'%20fill-rule='evenodd'%20/%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e", Ue = "data:image/svg+xml,%3csvg%20viewBox='0%200%2040%2040'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='40.000000'%20height='40.000000'%20fill='none'%20customFrame='url(%23clipPath_0)'%3e%3cdefs%3e%3cclipPath%20id='clipPath_0'%3e%3crect%20width='40.000000'%20height='40.000000'%20x='0.000000'%20y='0.000000'%20rx='12.000000'%20fill='rgb(255,255,255)'%20/%3e%3c/clipPath%3e%3cclipPath%20id='clipPath_1'%3e%3crect%20width='24.000000'%20height='24.000000'%20x='8.000000'%20y='8.000000'%20fill='rgb(255,255,255)'%20/%3e%3c/clipPath%3e%3cclipPath%20id='clipPath_2'%3e%3crect%20width='20.000000'%20height='20.000000'%20x='10.000000'%20y='10.000000'%20fill='rgb(255,255,255)'%20/%3e%3c/clipPath%3e%3c/defs%3e%3crect%20id='1'%20width='40.000000'%20height='40.000000'%20x='0.000000'%20y='0.000000'%20rx='12.000000'%20fill='rgb(236,250,254)'%20/%3e%3cg%20id='车辆'%20clip-path='url(%23clipPath_1)'%20customFrame='url(%23clipPath_1)'%3e%3crect%20id='车辆'%20width='24.000000'%20height='24.000000'%20x='8.000000'%20y='8.000000'%20/%3e%3cg%20id='编组'%3e%3cg%20id='ic_public_qrcode'%20clip-path='url(%23clipPath_2)'%20customFrame='url(%23clipPath_2)'%3e%3crect%20id='ic_public_qrcode'%20width='20.000000'%20height='20.000000'%20x='10.000000'%20y='10.000000'%20/%3e%3cg%20id='ic_public_qrcode_1_1'%3e%3cpath%20id='ic_public_qrcode_2_0'%20d='M10.6273%2019.9924C10.6273%2018.5277%2010.6222%2017.0631%2010.6273%2015.5985C10.6243%2014.8898%2010.7114%2014.1836%2010.8865%2013.4968C11.2702%2012.0432%2012.2171%2011.1805%2013.6693%2010.8458C14.3974%2010.6885%2015.1411%2010.6148%2015.886%2010.6261C18.6946%2010.6261%2021.5035%2010.6261%2024.3127%2010.6261C25.0221%2010.6217%2025.7295%2010.7029%2026.4195%2010.8678C27.9156%2011.2339%2028.8134%2012.1816%2029.1554%2013.6725C29.3092%2014.3772%2029.3826%2015.097%2029.3744%2015.8182C29.3744%2018.6571%2029.3744%2021.4963%2029.3744%2024.3357C29.3782%2025.0383%2029.2973%2025.7388%2029.1334%2026.422C28.7673%2027.9189%2027.8153%2028.8123%2026.3243%2029.1543C25.5961%2029.311%2024.8524%2029.3847%2024.1076%2029.374C21.3107%2029.374%2018.514%2029.374%2015.7176%2029.374C15.0027%2029.3798%2014.2897%2029.2999%2013.5939%2029.136C12.0912%2028.7698%2011.189%2027.8178%2010.8477%2026.3195C10.6734%2025.5579%2010.6273%2024.7941%2010.6273%2024.0237C10.6273%2022.6802%2010.6273%2021.3364%2010.6273%2019.9924Z'%20fill='rgb(255,255,255)'%20fill-opacity='0'%20fill-rule='nonzero'%20/%3e%3cpath%20id='ic_public_qrcode_2_0'%20d='M10.6273%2015.5985C10.6243%2014.8898%2010.7114%2014.1836%2010.8865%2013.4968C11.2702%2012.0432%2012.2171%2011.1805%2013.6693%2010.8458C14.3974%2010.6885%2015.1411%2010.6148%2015.886%2010.6261C18.6946%2010.6261%2021.5035%2010.6261%2024.3127%2010.6261C25.0221%2010.6217%2025.7295%2010.7029%2026.4195%2010.8678C27.9156%2011.2339%2028.8134%2012.1816%2029.1554%2013.6725C29.3092%2014.3772%2029.3826%2015.097%2029.3744%2015.8182C29.3744%2018.6571%2029.3744%2021.4963%2029.3744%2024.3357C29.3782%2025.0383%2029.2973%2025.7388%2029.1334%2026.422C28.7673%2027.9189%2027.8153%2028.8123%2026.3243%2029.1543C25.5961%2029.311%2024.8524%2029.3847%2024.1076%2029.374C21.3107%2029.374%2018.514%2029.374%2015.7176%2029.374C15.0027%2029.3798%2014.2897%2029.2999%2013.5939%2029.136C12.0912%2028.7698%2011.189%2027.8178%2010.8477%2026.3195C10.6734%2025.5579%2010.6273%2024.7941%2010.6273%2024.0237C10.6273%2022.6802%2010.6273%2021.3364%2010.6273%2019.9924C10.6273%2018.5277%2010.6222%2017.0631%2010.6273%2015.5985Z'%20fill-rule='nonzero'%20stroke='rgb(255,255,255)'%20stroke-opacity='0'%20stroke-width='1.25'%20/%3e%3cpath%20id='ic_public_qrcode_2_1'%20d='M10.6273%2015.5985C10.6243%2014.8898%2010.7114%2014.1836%2010.8865%2013.4968C11.2702%2012.0432%2012.2171%2011.1805%2013.6693%2010.8458C14.3974%2010.6885%2015.1411%2010.6148%2015.886%2010.6261C18.6946%2010.6261%2021.5035%2010.6261%2024.3127%2010.6261C25.0221%2010.6217%2025.7295%2010.7029%2026.4195%2010.8678C27.9156%2011.2339%2028.8134%2012.1816%2029.1554%2013.6725C29.3092%2014.3772%2029.3826%2015.097%2029.3744%2015.8182C29.3744%2018.6571%2029.3744%2021.4963%2029.3744%2024.3357C29.3782%2025.0383%2029.2973%2025.7388%2029.1334%2026.422C28.7673%2027.9189%2027.8153%2028.8123%2026.3243%2029.1543C25.5961%2029.311%2024.8524%2029.3847%2024.1076%2029.374C21.3107%2029.374%2018.514%2029.374%2015.7176%2029.374C15.0027%2029.3798%2014.2897%2029.2999%2013.5939%2029.136C12.0912%2028.7698%2011.189%2027.8178%2010.8477%2026.3195C10.6734%2025.5579%2010.6273%2024.7941%2010.6273%2024.0237C10.6273%2022.6802%2010.6273%2021.3364%2010.6273%2019.9924C10.6273%2018.5277%2010.6222%2017.0631%2010.6273%2015.5985Z'%20opacity='0.200000003'%20fill-rule='nonzero'%20stroke='rgb(255,255,255)'%20stroke-opacity='0'%20stroke-width='1.25'%20/%3e%3ccircle%20id='ic_public_qrcode_2_2'%20cx='20'%20cy='20'%20r='10'%20fill='rgb(255,255,255)'%20fill-opacity='0'%20/%3e%3cpath%20id='ic_public_qrcode_2_3'%20d='M17.5%2011.25C17.9602%2011.25%2018.3333%2011.6231%2018.3333%2012.0833L18.3333%2017.5C18.3333%2017.9602%2017.9602%2018.3333%2017.5%2018.3333L12.0833%2018.3333C11.6231%2018.3333%2011.25%2017.9602%2011.25%2017.5L11.25%2012.0833C11.25%2011.6231%2011.6231%2011.25%2012.0833%2011.25L17.5%2011.25ZM17.5%2021.6667C17.9602%2021.6667%2018.3333%2022.0398%2018.3333%2022.5L18.3333%2027.9167C18.3333%2028.3769%2017.9602%2028.75%2017.5%2028.75L12.0833%2028.75C11.6231%2028.75%2011.25%2028.3769%2011.25%2027.9167L11.25%2022.5C11.25%2022.0398%2011.6231%2021.6667%2012.0833%2021.6667L17.5%2021.6667ZM27.9167%2011.25C28.3769%2011.25%2028.75%2011.6231%2028.75%2012.0833L28.75%2017.5C28.75%2017.9602%2028.3769%2018.3333%2027.9167%2018.3333L22.5%2018.3333C22.0398%2018.3333%2021.6667%2017.9602%2021.6667%2017.5L21.6667%2012.0833C21.6667%2011.6231%2022.0398%2011.25%2022.5%2011.25L27.9167%2011.25Z'%20fill-rule='evenodd'%20stroke='rgb(14,191,241)'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='1.25'%20/%3e%3cpath%20id='ic_public_qrcode_2_4'%20d='M17.5002%2010.8333C18.1905%2010.8333%2018.7502%2011.3929%2018.7502%2012.0833L18.7502%2017.4999C18.7502%2018.1903%2018.1905%2018.7499%2017.5002%2018.7499L12.0835%2018.7499C11.3931%2018.7499%2010.8335%2018.1903%2010.8335%2017.4999L10.8335%2012.0833C10.8335%2011.3929%2011.3931%2010.8333%2012.0835%2010.8333L17.5002%2010.8333ZM17.5002%2011.6666L12.0835%2011.6666C11.8534%2011.6666%2011.6668%2011.8531%2011.6668%2012.0833L11.6668%2017.4999C11.6668%2017.73%2011.8534%2017.9166%2012.0835%2017.9166L17.5002%2017.9166C17.7303%2017.9166%2017.9168%2017.73%2017.9168%2017.4999L17.9168%2012.0833C17.9168%2011.8531%2017.7303%2011.6666%2017.5002%2011.6666ZM17.5002%2021.2499C18.1905%2021.2499%2018.7502%2021.8096%2018.7502%2022.4999L18.7502%2027.9166C18.7502%2028.6069%2018.1905%2029.1666%2017.5002%2029.1666L12.0835%2029.1666C11.3931%2029.1666%2010.8335%2028.6069%2010.8335%2027.9166L10.8335%2022.4999C10.8335%2021.8096%2011.3931%2021.2499%2012.0835%2021.2499L17.5002%2021.2499ZM17.5002%2022.0833L12.0835%2022.0833C11.8534%2022.0833%2011.6668%2022.2698%2011.6668%2022.4999L11.6668%2027.9166C11.6668%2028.1467%2011.8534%2028.3333%2012.0835%2028.3333L17.5002%2028.3333C17.7303%2028.3333%2017.9168%2028.1467%2017.9168%2027.9166L17.9168%2022.4999C17.9168%2022.2698%2017.7303%2022.0833%2017.5002%2022.0833ZM27.9168%2010.8333C28.6072%2010.8333%2029.1668%2011.3929%2029.1668%2012.0833L29.1668%2017.4999C29.1668%2018.1903%2028.6072%2018.7499%2027.9168%2018.7499L22.5002%2018.7499C21.8098%2018.7499%2021.2502%2018.1903%2021.2502%2017.4999L21.2502%2012.0833C21.2502%2011.3929%2021.8098%2010.8333%2022.5002%2010.8333L27.9168%2010.8333ZM27.9168%2011.6666L22.5002%2011.6666C22.27%2011.6666%2022.0835%2011.8531%2022.0835%2012.0833L22.0835%2017.4999C22.0835%2017.73%2022.27%2017.9166%2022.5002%2017.9166L27.9168%2017.9166C28.1469%2017.9166%2028.3335%2017.73%2028.3335%2017.4999L28.3335%2012.0833C28.3335%2011.8531%2028.1469%2011.6666%2027.9168%2011.6666Z'%20fill='rgb(255,255,255)'%20fill-opacity='0'%20fill-rule='nonzero'%20/%3e%3cpath%20id='ic_public_qrcode_2_4'%20d='M18.7502%2012.0833L18.7502%2017.4999C18.7502%2018.1903%2018.1905%2018.7499%2017.5002%2018.7499L12.0835%2018.7499C11.3931%2018.7499%2010.8335%2018.1903%2010.8335%2017.4999L10.8335%2012.0833C10.8335%2011.3929%2011.3931%2010.8333%2012.0835%2010.8333L17.5002%2010.8333C18.1905%2010.8333%2018.7502%2011.3929%2018.7502%2012.0833ZM12.0835%2011.6666C11.8534%2011.6666%2011.6668%2011.8531%2011.6668%2012.0833L11.6668%2017.4999C11.6668%2017.73%2011.8534%2017.9166%2012.0835%2017.9166L17.5002%2017.9166C17.7303%2017.9166%2017.9168%2017.73%2017.9168%2017.4999L17.9168%2012.0833C17.9168%2011.8531%2017.7303%2011.6666%2017.5002%2011.6666L12.0835%2011.6666ZM18.7502%2022.4999L18.7502%2027.9166C18.7502%2028.6069%2018.1905%2029.1666%2017.5002%2029.1666L12.0835%2029.1666C11.3931%2029.1666%2010.8335%2028.6069%2010.8335%2027.9166L10.8335%2022.4999C10.8335%2021.8096%2011.3931%2021.2499%2012.0835%2021.2499L17.5002%2021.2499C18.1905%2021.2499%2018.7502%2021.8096%2018.7502%2022.4999ZM12.0835%2022.0833C11.8534%2022.0833%2011.6668%2022.2698%2011.6668%2022.4999L11.6668%2027.9166C11.6668%2028.1467%2011.8534%2028.3333%2012.0835%2028.3333L17.5002%2028.3333C17.7303%2028.3333%2017.9168%2028.1467%2017.9168%2027.9166L17.9168%2022.4999C17.9168%2022.2698%2017.7303%2022.0833%2017.5002%2022.0833L12.0835%2022.0833ZM29.1668%2012.0833L29.1668%2017.4999C29.1668%2018.1903%2028.6072%2018.7499%2027.9168%2018.7499L22.5002%2018.7499C21.8098%2018.7499%2021.2502%2018.1903%2021.2502%2017.4999L21.2502%2012.0833C21.2502%2011.3929%2021.8098%2010.8333%2022.5002%2010.8333L27.9168%2010.8333C28.6072%2010.8333%2029.1668%2011.3929%2029.1668%2012.0833ZM22.5002%2011.6666C22.27%2011.6666%2022.0835%2011.8531%2022.0835%2012.0833L22.0835%2017.4999C22.0835%2017.73%2022.27%2017.9166%2022.5002%2017.9166L27.9168%2017.9166C28.1469%2017.9166%2028.3335%2017.73%2028.3335%2017.4999L28.3335%2012.0833C28.3335%2011.8531%2028.1469%2011.6666%2027.9168%2011.6666L22.5002%2011.6666Z'%20fill-rule='nonzero'%20stroke='rgb(255,255,255)'%20stroke-opacity='0'%20stroke-linejoin='round'%20stroke-width='1.25'%20/%3e%3cpath%20id='ic_public_qrcode_2_5'%20d='M27.9165%2021.6667L27.9165%2024.5834L28.7498%2024.5834L28.7498%2021.6667L27.9165%2021.6667ZM24.5832%2021.6667L24.5832%2022.639L24.5828%2022.6388L24.5832%2024.5834L23.6109%2024.5834L23.6107%2022.6388L21.6665%2022.639L21.6665%2021.6667L24.5832%2021.6667ZM21.6665%2025.8334L21.6665%2028.7501L22.4998%2028.7501L22.4998%2025.8334L21.6665%2025.8334ZM27.9165%2027.9167L27.9165%2028.7501L28.7498%2028.7501L28.7498%2027.9167L27.9165%2027.9167ZM25.8332%2025.8334L25.8332%2026.6667L26.6665%2026.6667L26.6665%2025.8334L25.8332%2025.8334Z'%20fill='rgb(14,191,241)'%20fill-rule='nonzero'%20/%3e%3cpath%20id='ic_public_qrcode_2_5'%20d='M27.9165%2024.5834L28.7498%2024.5834L28.7498%2021.6667L27.9165%2021.6667L27.9165%2024.5834ZM24.5832%2022.639L24.5828%2022.6388L24.5832%2024.5834L23.6109%2024.5834L23.6107%2022.6388L21.6665%2022.639L21.6665%2021.6667L24.5832%2021.6667L24.5832%2022.639ZM21.6665%2028.7501L22.4998%2028.7501L22.4998%2025.8334L21.6665%2025.8334L21.6665%2028.7501ZM27.9165%2028.7501L28.7498%2028.7501L28.7498%2027.9167L27.9165%2027.9167L27.9165%2028.7501ZM25.8332%2026.6667L26.6665%2026.6667L26.6665%2025.8334L25.8332%2025.8334L25.8332%2026.6667Z'%20fill-rule='nonzero'%20stroke='rgb(14,191,241)'%20stroke-linejoin='round'%20stroke-width='1.25'%20/%3e%3cpath%20id='ic_public_qrcode_2_6'%20d='M14.375%2014.375L14.375%2015.2083L15.2083%2015.2083L15.2083%2014.375L14.375%2014.375ZM14.375%2024.7917L14.375%2025.625L15.2083%2025.625L15.2083%2024.7917L14.375%2024.7917ZM24.7917%2014.375L24.7917%2015.2083L25.625%2015.2083L25.625%2014.375L24.7917%2014.375Z'%20fill='rgb(14,191,241)'%20fill-rule='nonzero'%20/%3e%3cpath%20id='ic_public_qrcode_2_6'%20d='M14.375%2015.2083L15.2083%2015.2083L15.2083%2014.375L14.375%2014.375L14.375%2015.2083ZM14.375%2025.625L15.2083%2025.625L15.2083%2024.7917L14.375%2024.7917L14.375%2025.625ZM24.7917%2015.2083L25.625%2015.2083L25.625%2014.375L24.7917%2014.375L24.7917%2015.2083Z'%20fill-rule='nonzero'%20stroke='rgb(14,191,241)'%20stroke-linejoin='round'%20stroke-width='1.25'%20/%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e", Ae = "data:image/svg+xml,%3csvg%20viewBox='0%200%2012%2012'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='12.000000'%20height='12.000000'%20fill='none'%3e%3cdefs%3e%3cfilter%20id='pixso_custom_mask_type_luminance'%3e%3cfeColorMatrix%20type='matrix'%20values='1%200%200%200%200%200%201%200%200%200%200%200%201%200%200%200%200%200%201%200%20'%20/%3e%3c/filter%3e%3c/defs%3e%3cmask%20id='mask_0'%20width='11.999876'%20height='11.999876'%20x='0.000000'%20y='0.000000'%20maskUnits='userSpaceOnUse'%3e%3cg%20filter='url(%23pixso_custom_mask_type_luminance)'%3e%3cg%20id='mask401_19830'%3e%3cpath%20id='蒙版'%20d='M0%200L11.9999%200L11.9999%2011.9999L0%2011.9999L0%200ZM2.69992%201.34999L8.09977%201.34999C9.5082%201.34999%2010.6498%202.49167%2010.6498%203.89998L10.6498%209.2999C10.6498%2010.7082%209.5082%2011.8499%208.09977%2011.8499L2.69992%2011.8499C1.29149%2011.8499%200.149901%2010.7082%200.149901%209.2999L0.149901%203.89998C0.149901%202.49167%201.29149%201.34999%202.69992%201.34999Z'%20fill='rgb(196,196,196)'%20fill-rule='evenodd'%20/%3e%3c/g%3e%3c/g%3e%3c/mask%3e%3crect%20id='ic_public_copy'%20width='12.000000'%20height='12.000000'%20x='0.000000'%20y='0.000000'%20/%3e%3crect%20id='ic_public_copy-复制/base/ic_public_copy'%20width='11.999876'%20height='11.999876'%20x='0.000000'%20y='0.000000'%20fill='rgb(255,255,255)'%20fill-opacity='0'%20/%3e%3cpath%20id='path1'%20d='M0.000134537%205.99497C0.000134537%205.05748%20-0.00236544%204.11999%200.000134537%203.1825C-0.00236544%202.72751%200.055134%202.27501%200.165133%201.83752C0.41263%200.907526%201.01762%200.355032%201.94761%200.140034C2.41261%200.040035%202.8901%20-0.00746449%203.3651%203.54269e-05C5.16258%203.54269e-05%206.96006%203.54269e-05%208.76004%203.54269e-05C9.21254%20-0.00246455%209.66503%200.0475349%2010.1075%200.155034C11.065%200.387531%2011.64%200.995025%2011.8575%201.95002C11.9575%202.40001%2012.005%202.86001%2011.9975%203.3225C11.9975%205.13998%2011.9975%206.95746%2011.9975%208.77244C12%209.22244%2011.95%209.67243%2011.845%2010.1099C11.61%2011.0674%2011%2011.6374%2010.0475%2011.8574C9.58003%2011.9574%209.10504%2012.0049%208.62754%2011.9974C6.83756%2011.9974%205.04758%2011.9974%203.2576%2011.9974C2.80011%2012.0024%202.34511%2011.9499%201.90011%2011.8449C0.937625%2011.6124%200.360131%2011.0024%200.142633%2010.0424C0.0301342%209.55494%200.000134537%209.06744%200.000134537%208.57495C0.000134537%207.71495%200.000134537%206.85496%200.000134537%205.99497Z'%20fill='rgb(255,255,255)'%20fill-opacity='0'%20fill-rule='evenodd'%20/%3e%3ccircle%20id='path2'%20cx='5.99993801'%20cy='5.99993801'%20r='5.99993801'%20fill='rgb(255,255,255)'%20fill-opacity='0'%20/%3e%3cg%20id='mask'%20mask='url(%23mask_0)'%3e%3cg%20id='组合%208'%3e%3cpath%20id='path'%20d='M11.1%203.89993L11.1%206.8999C11.1%208.55488%209.75502%209.89737%208.10004%209.89737L5.10007%209.89737C3.44258%209.89737%202.1001%208.55488%202.1001%206.8999L2.1001%203.89993C2.1001%202.24245%203.44258%200.897461%205.10007%200.897461L8.10004%200.897461C9.75502%200.897461%2011.1%202.24245%2011.1%203.89993Z'%20fill-rule='nonzero'%20stroke='rgb(25,25,25)'%20stroke-linejoin='round'%20stroke-width='0.749992251'%20/%3e%3c/g%3e%3c/g%3e%3cpath%20id='path4'%20d='M2.10008%202.39746L8.10002%202.39746C8.92751%202.39746%209.6%203.06995%209.6%203.89995L9.6%209.89738C9.6%2010.7274%208.92751%2011.3999%208.10002%2011.3999L2.10008%2011.3999C1.27009%2011.3999%200.600098%2010.7274%200.600098%209.89738L0.600098%203.89995C0.600098%203.06995%201.27009%202.39746%202.10008%202.39746Z'%20fill='rgb(255,255,255)'%20fill-opacity='0'%20fill-rule='evenodd'%20/%3e%3cpath%20id='path4'%20d='M9.6%203.89995L9.6%209.89738C9.6%2010.7274%208.92751%2011.3999%208.10002%2011.3999L2.10008%2011.3999C1.27009%2011.3999%200.600098%2010.7274%200.600098%209.89738L0.600098%203.89995C0.600098%203.06995%201.27009%202.39746%202.10008%202.39746L8.10002%202.39746C8.92751%202.39746%209.6%203.06995%209.6%203.89995Z'%20fill-rule='nonzero'%20stroke='rgb(25,25,25)'%20stroke-linejoin='round'%20stroke-width='0.749992251'%20/%3e%3c/svg%3e", Oe = "https://agent.opentiny.design/tiny-robot", y2 = "https://ai.opentiny.design/next-remoter", v2 = (r) => [
|
|
902
|
+
const Ee = "data:image/svg+xml,%3csvg%20viewBox='0%200%2040%2039.9692'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='40.000000'%20height='39.969238'%20fill='none'%20customFrame='url(%23clipPath_3)'%3e%3cdefs%3e%3cclipPath%20id='clipPath_3'%3e%3crect%20width='40.000000'%20height='39.969238'%20x='0.000000'%20y='0.000000'%20rx='12.000000'%20fill='rgb(255,255,255)'%20/%3e%3c/clipPath%3e%3cclipPath%20id='clipPath_4'%3e%3crect%20width='24.000000'%20height='24.000000'%20x='8.000000'%20y='7.984619'%20fill='rgb(255,255,255)'%20/%3e%3c/clipPath%3e%3cclipPath%20id='clipPath_5'%3e%3crect%20width='20.000000'%20height='20.000000'%20x='10.000000'%20y='9.984619'%20fill='rgb(255,255,255)'%20/%3e%3c/clipPath%3e%3cclipPath%20id='clipPath_6'%3e%3crect%20width='20.000000'%20height='20.000000'%20x='10.000000'%20y='9.984619'%20fill='rgb(255,255,255)'%20/%3e%3c/clipPath%3e%3cclipPath%20id='clipPath_7'%3e%3crect%20width='21.666666'%20height='13.333333'%20x='20.000000'%20y='9.984619'%20rx='6.666667'%20fill='rgb(255,255,255)'%20/%3e%3c/clipPath%3e%3cclipPath%20id='clipPath_8'%3e%3crect%20width='6.666667'%20height='6.666667'%20x='23.333496'%20y='9.984619'%20fill='rgb(255,255,255)'%20/%3e%3c/clipPath%3e%3c/defs%3e%3crect%20id='2'%20width='40.000000'%20height='39.969238'%20x='0.000000'%20y='0.000000'%20rx='12.000000'%20fill='rgb(239,246,255)'%20/%3e%3cg%20id='物业'%20clip-path='url(%23clipPath_4)'%20customFrame='url(%23clipPath_4)'%3e%3crect%20id='物业'%20width='24.000000'%20height='24.000000'%20x='8.000000'%20y='7.984619'%20/%3e%3cg%20id='物业服务'%3e%3cg%20id='00公共/红点/图标+红点'%20customFrame='url(%23clipPath_5)'%3e%3crect%20id='00公共/红点/图标+红点'%20width='20.000000'%20height='20.000000'%20x='10.000000'%20y='9.984619'%20/%3e%3cg%20id='common_chats_line'%20customFrame='url(%23clipPath_6)'%3e%3crect%20id='common_chats_line'%20width='20.000000'%20height='20.000000'%20x='10.000000'%20y='9.984619'%20/%3e%3cpath%20id='形状'%20d='M28.3332%2019.9847C28.3332%2015.3823%2024.6022%2011.6514%2019.9998%2011.6514C15.3975%2011.6514%2011.6665%2015.3823%2011.6665%2019.9847C11.6665%2024.5871%2015.3975%2028.318%2019.9998%2028.318C21.0018%2028.318%2021.9624%2028.1412%2022.8522%2027.8171L26.581%2028.1578C26.7205%2028.1706%2026.8611%2028.1598%2026.9971%2028.1259C27.6669%2027.959%2028.0746%2027.2806%2027.9077%2026.6108L27.2716%2024.0578C27.9477%2022.8535%2028.3332%2021.4641%2028.3332%2019.9847ZM19.9998%2013.1514C16.2259%2013.1514%2013.1665%2016.2108%2013.1665%2019.9847C13.1665%2023.7586%2016.2259%2026.818%2019.9998%2026.818C20.8089%2026.818%2021.5967%2026.678%2022.3388%2026.4077C22.505%2026.3471%2022.6803%2026.3166%2022.8565%2026.3171L22.9887%2026.3233L26.3665%2026.6322L25.8161%2024.4205C25.7352%2024.0958%2025.7655%2023.7548%2025.8997%2023.4512L25.9636%2023.3236C26.5311%2022.3126%2026.8332%2021.1723%2026.8332%2019.9847C26.8332%2016.2108%2023.7738%2013.1514%2019.9998%2013.1514ZM23.1152%2021.2468C23.352%2020.9069%2023.2684%2020.4394%2022.9286%2020.2026C22.5887%2019.9659%2022.1212%2020.0494%2021.8845%2020.3893C21.2894%2021.2433%2020.4268%2021.7347%2019.5102%2021.7347C18.9513%2021.7347%2018.4132%2021.554%2017.9375%2021.2122C17.6011%2020.9705%2017.1325%2021.0472%2016.8908%2021.3836C16.6491%2021.7199%2016.7258%2022.1886%2017.0622%2022.4303C17.7879%2022.9518%2018.6305%2023.2347%2019.5102%2023.2347C20.9394%2023.2347%2022.2505%2022.4878%2023.1152%2021.2468Z'%20fill='rgb(65,142,255)'%20fill-rule='evenodd'%20/%3e%3c/g%3e%3cg%20id='00公共/3位数红点'%20opacity='0'%20customFrame='url(%23clipPath_7)'%3e%3crect%20id='00公共/3位数红点'%20width='21.666666'%20height='13.333333'%20x='20.000000'%20y='9.984619'%20rx='6.666667'%20opacity='0'%20fill='rgb(243,111,100)'%20/%3e%3cpath%20id='文本'%20d='M26.0421%2013.4421C26.4259%2013.4421%2026.7677%2013.5255%2027.0675%2013.6923C27.3672%2013.8591%2027.6005%2014.0931%2027.7673%2014.3942C27.9342%2014.694%2028.0176%2015.0351%2028.0176%2015.4176C28.0176%2015.7173%2027.9633%2015.994%2027.8548%2016.2476C27.7463%2016.4999%2027.5673%2016.8315%2027.3177%2017.2425L25.859%2019.6432L25.0167%2019.6432L26.276%2017.5924C26.3534%2017.4704%2026.4307%2017.3564%2026.508%2017.2507C26.3357%2017.3063%2026.1445%2017.3341%2025.9342%2017.3341C25.5721%2017.3341%2025.2493%2017.2479%2024.9658%2017.0757C24.6837%2016.9034%2024.4633%2016.6701%2024.3046%2016.3758C24.1459%2016.0815%2024.0666%2015.7566%2024.0666%2015.4013C24.0666%2015.0351%2024.1513%2014.7021%2024.3209%2014.4023C24.4904%2014.1012%2024.7264%2013.8659%2025.0289%2013.6964C25.3314%2013.5268%2025.6691%2013.4421%2026.0421%2013.4421ZM26.0421%2016.6505C26.4029%2016.6505%2026.6904%2016.5325%2026.9047%2016.2965C27.119%2016.0605%2027.2262%2015.7539%2027.2262%2015.3769C27.2262%2014.9985%2027.119%2014.694%2026.9047%2014.4634C26.6904%2014.2328%2026.4029%2014.1175%2026.0421%2014.1175C25.6867%2014.1175%2025.4019%2014.2342%2025.1876%2014.4674C24.9733%2014.7007%2024.8661%2015.0039%2024.8661%2015.3769C24.8661%2015.7539%2024.9719%2016.0605%2025.1835%2016.2965C25.3951%2016.5325%2025.6813%2016.6505%2026.0421%2016.6505ZM30.7921%2013.4421C31.1759%2013.4421%2031.5177%2013.5255%2031.8175%2013.6923C32.1172%2013.8591%2032.3505%2014.0931%2032.5173%2014.3942C32.6842%2014.694%2032.7676%2015.0351%2032.7676%2015.4176C32.7676%2015.7173%2032.7133%2015.994%2032.6048%2016.2476C32.4963%2016.4999%2032.3173%2016.8315%2032.0677%2017.2425L30.609%2019.6432L29.7667%2019.6432L31.026%2017.5924C31.1034%2017.4704%2031.1807%2017.3564%2031.258%2017.2507C31.0857%2017.3063%2030.8945%2017.3341%2030.6842%2017.3341C30.3221%2017.3341%2029.9993%2017.2479%2029.7158%2017.0757C29.4337%2016.9034%2029.2133%2016.6701%2029.0546%2016.3758C28.8959%2016.0815%2028.8166%2015.7566%2028.8166%2015.4013C28.8166%2015.0351%2028.9013%2014.7021%2029.0709%2014.4023C29.2404%2014.1012%2029.4764%2013.8659%2029.7789%2013.6964C30.0814%2013.5268%2030.4191%2013.4421%2030.7921%2013.4421ZM30.7921%2016.6505C31.1529%2016.6505%2031.4404%2016.5325%2031.6547%2016.2965C31.869%2016.0605%2031.9762%2015.7539%2031.9762%2015.3769C31.9762%2014.9985%2031.869%2014.694%2031.6547%2014.4634C31.4404%2014.2328%2031.1529%2014.1175%2030.7921%2014.1175C30.4367%2014.1175%2030.1519%2014.2342%2029.9376%2014.4674C29.7233%2014.7007%2029.6161%2015.0039%2029.6161%2015.3769C29.6161%2015.7539%2029.7219%2016.0605%2029.9335%2016.2965C30.1451%2016.5325%2030.4313%2016.6505%2030.7921%2016.6505ZM35.2674%2014.6851L35.9001%2014.6851L35.9001%2016.3188L37.5339%2016.3188L37.5339%2016.9516L35.9001%2016.9516L35.9001%2018.5853L35.2674%2018.5853L35.2674%2016.9516L33.6337%2016.9516L33.6337%2016.3188L35.2674%2016.3188L35.2674%2014.6851Z'%20fill='rgb(255,255,255)'%20fill-rule='nonzero'%20/%3e%3c/g%3e%3cg%20id='00公共/单红点'%20opacity='0'%20customFrame='url(%23clipPath_8)'%3e%3crect%20id='00公共/单红点'%20width='6.666667'%20height='6.666667'%20x='23.333496'%20y='9.984619'%20opacity='0'%20fill='rgb(255,255,255)'%20fill-opacity='0'%20/%3e%3ccircle%20id='红点'%20cx='26.6668301'%20cy='13.3179522'%20r='3.33333325'%20fill='rgb(243,111,100)'%20/%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e", Pe = "data:image/svg+xml,%3csvg%20viewBox='0%200%2040%2040'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='40.000000'%20height='40.000000'%20fill='none'%20customFrame='url(%23clipPath_12)'%3e%3cdefs%3e%3cclipPath%20id='clipPath_12'%3e%3crect%20width='40.000000'%20height='40.000000'%20x='0.000000'%20y='0.000000'%20rx='12.000000'%20fill='rgb(255,255,255)'%20/%3e%3c/clipPath%3e%3cclipPath%20id='clipPath_13'%3e%3crect%20width='24.000000'%20height='24.000000'%20x='8.000000'%20y='8.000000'%20fill='rgb(255,255,255)'%20/%3e%3c/clipPath%3e%3cclipPath%20id='clipPath_14'%3e%3crect%20width='20.000000'%20height='20.000000'%20x='10.000000'%20y='10.000000'%20fill='rgb(255,255,255)'%20/%3e%3c/clipPath%3e%3c/defs%3e%3crect%20id='4'%20width='40.000000'%20height='40.000000'%20x='0.000000'%20y='0.000000'%20rx='12.000000'%20fill='rgb(234,255,244)'%20/%3e%3cg%20id='我的信息'%20clip-path='url(%23clipPath_13)'%20customFrame='url(%23clipPath_13)'%3e%3crect%20id='我的信息'%20width='24.000000'%20height='24.000000'%20x='8.000000'%20y='8.000000'%20/%3e%3cg%20id='组合%208'%20customFrame='url(%23clipPath_14)'%3e%3crect%20id='组合%208'%20width='20.000000'%20height='20.000000'%20x='10.000000'%20y='10.000000'%20/%3e%3cpath%20id='合并'%20d='M28.4994%2012.3142C28.4994%2012.2578%2028.4937%2012.2018%2028.4825%2012.1465C28.4713%2012.0911%2028.4547%2012.0373%2028.4327%2011.9851C28.4107%2011.933%2028.3836%2011.8835%2028.3516%2011.8365C28.3197%2011.7896%2028.2834%2011.7461%2028.2427%2011.7062C28.202%2011.6663%2028.1579%2011.6307%2028.1101%2011.5993C28.0622%2011.568%2028.0117%2011.5415%2027.9585%2011.5199C27.9054%2011.4983%2027.8506%2011.4819%2027.7942%2011.4709C27.7378%2011.4599%2027.6806%2011.4544%2027.6231%2011.4544L24.1832%2011.5199L24.1832%2010L29.0796%2010C29.1472%2010%2029.2143%2010.0065%2029.2806%2010.0194C29.347%2010.0324%2029.4114%2010.0516%2029.4739%2010.077C29.5364%2010.1024%2029.5961%2010.1336%2029.6523%2010.1705C29.7086%2010.2074%2029.7605%2010.2493%2029.8084%2010.2963C29.8562%2010.3433%2029.8991%2010.3944%2029.9367%2010.4496C29.9743%2010.5048%2030.006%2010.5631%2030.0319%2010.6244C30.0578%2010.6858%2030.0773%2010.7491%2030.0905%2010.8142C30.1037%2010.8794%2030.1104%2010.9451%2030.1104%2011.0115L30.1832%2014.4522L28.4992%2014.5L28.4994%2012.3142ZM11.6995%2012.3143C11.6995%2012.2579%2011.7051%2012.2019%2011.7163%2012.1466C11.7275%2012.0912%2011.7441%2012.0374%2011.7661%2011.9852C11.7882%2011.9331%2011.8152%2011.8836%2011.8472%2011.8366C11.8791%2011.7897%2011.9155%2011.7462%2011.9562%2011.7063C11.9968%2011.6664%2012.0409%2011.6308%2012.0888%2011.5994C12.1366%2011.5681%2012.1871%2011.5416%2012.2403%2011.52C12.2934%2011.4984%2012.3482%2011.482%2012.4046%2011.471C12.4611%2011.46%2012.5182%2011.4545%2012.5758%2011.4545L16.0157%2011.52L16.0157%2010.0001L11.1193%2010.0001C11.0516%2010.0001%2010.9846%2010.0066%2010.9182%2010.0196C10.8518%2010.0325%2010.7874%2010.0517%2010.7249%2010.0771C10.6624%2010.1025%2010.6028%2010.1337%2010.5465%2010.1706C10.4902%2010.2075%2010.4383%2010.2494%2010.3904%2010.2964C10.3426%2010.3434%2010.2997%2010.3945%2010.2621%2010.4497C10.2245%2010.5049%2010.1929%2010.5632%2010.167%2010.6245C10.1411%2010.6859%2010.1215%2010.7492%2010.1083%2010.8143C10.0951%2010.8795%2010.0885%2010.9452%2010.0884%2011.0116L10.0157%2014.4523L11.6997%2014.5L11.6995%2012.3143ZM25.3135%2021.8051L25.3135%2022.8167C25.7656%2022.8929%2026.2209%2022.9249%2026.6792%2022.9127C28.3381%2022.9127%2029.1675%2022.326%2029.1675%2021.1527C29.1733%2020.9869%2029.151%2020.825%2029.1006%2020.667C29.0503%2020.509%2028.9747%2020.3641%2028.8742%2020.2322C28.767%2020.1025%2028.6403%2019.9963%2028.4938%2019.9134C28.3474%2019.8306%2028.191%2019.7767%2028.0246%2019.7517L28.0246%2019.7011C28.0971%2019.6839%2028.1676%2019.6606%2028.236%2019.6311C28.3044%2019.6016%2028.3698%2019.5665%2028.4321%2019.5257C28.4944%2019.4848%2028.5526%2019.4389%2028.6069%2019.3879C28.6613%2019.3369%2028.7109%2019.2816%2028.7556%2019.222C28.8003%2019.1624%2028.8394%2019.0994%2028.8732%2019.033C28.9069%2018.9665%2028.9346%2018.8977%2028.9564%2018.8265C28.9782%2018.7552%2028.9937%2018.6826%2029.0028%2018.6086C29.0119%2018.5347%2029.0145%2018.4605%2029.0107%2018.3861C29.0217%2018.2675%2029.0176%2018.1495%2028.9984%2018.0319C28.9791%2017.9144%2028.9454%2017.8012%2028.8971%2017.6923C28.8489%2017.5834%2028.7875%2017.4823%2028.7134%2017.3891C28.6393%2017.2959%2028.5547%2017.2135%2028.4595%2017.1419C28.219%2017.0003%2027.963%2016.8972%2027.6915%2016.8326C27.4199%2016.7679%2027.1449%2016.7446%2026.8664%2016.7626C26.6258%2016.7621%2026.3864%2016.7791%2026.1482%2016.8132C25.9479%2016.8386%2025.7504%2016.8791%2025.5563%2016.9346L25.5563%2017.8854C25.743%2017.8264%2025.9337%2017.7842%2026.128%2017.759C26.3276%2017.73%2026.5282%2017.7148%2026.7298%2017.7134C27.0252%2017.6949%2027.3049%2017.7523%2027.5692%2017.8854C27.6168%2017.9161%2027.6595%2017.9525%2027.6972%2017.9947C27.7348%2018.037%2027.766%2018.0835%2027.791%2018.1343C27.816%2018.1851%2027.8337%2018.2383%2027.8441%2018.294C27.8545%2018.3496%2027.8573%2018.4056%2027.8525%2018.462C27.8566%2018.5278%2027.8514%2018.5927%2027.8367%2018.657C27.822%2018.7212%2027.7986%2018.7821%2027.7663%2018.8395C27.734%2018.897%2027.694%2018.9487%2027.6468%2018.9946C27.5995%2019.0405%2027.5468%2019.0787%2027.4885%2019.1093C27.1544%2019.2631%2026.8037%2019.3306%2026.4364%2019.3117L25.9862%2019.3117L25.9862%2020.1917L26.4466%2020.1917C26.8409%2020.1669%2027.2202%2020.2309%2027.5845%2020.3839C27.6459%2020.4167%2027.7011%2020.4576%2027.7505%2020.5066C27.7999%2020.5556%2027.8412%2020.6107%2027.8745%2020.6718C27.9077%2020.733%2027.9315%2020.7976%2027.9458%2020.8656C27.9602%2020.9337%2027.9644%2021.0024%2027.9587%2021.0717C27.9648%2021.1402%2027.9612%2021.2083%2027.9478%2021.2757C27.9344%2021.3432%2027.912%2021.4074%2027.8801%2021.4683C27.8483%2021.5293%2027.8086%2021.5846%2027.7609%2021.6341C27.7132%2021.6837%2027.6593%2021.7254%2027.5996%2021.7596C27.2884%2021.9045%2026.9613%2021.9685%2026.6184%2021.9518C26.1786%2021.9465%2025.7436%2021.8977%2025.3135%2021.8051ZM21.3382%2018.6238C21.3445%2018.5593%2021.343%2018.495%2021.3335%2018.4308C21.3241%2018.3667%2021.3069%2018.3046%2021.2822%2018.2447C21.2575%2018.1847%2021.226%2018.1287%2021.1876%2018.0765C21.1492%2018.0242%2021.1049%2017.9774%2021.055%2017.936C20.9359%2017.8608%2020.808%2017.806%2020.6714%2017.7714C20.5349%2017.7368%2020.3964%2017.7242%2020.2558%2017.7337C19.8009%2017.7395%2019.356%2017.8087%2018.9208%2017.9411L18.9208%2016.9598C19.4252%2016.8181%2019.9393%2016.7524%2020.4633%2016.7626C20.7322%2016.7484%2020.9964%2016.7773%2021.256%2016.8491C21.5156%2016.9209%2021.7571%2017.032%2021.9806%2017.1824C22.0729%2017.2601%2022.1548%2017.3474%2022.2263%2017.4446C22.2978%2017.5418%2022.3567%2017.646%2022.4034%2017.7573C22.45%2017.8686%2022.483%2017.9838%2022.5021%2018.1029C22.5213%2018.222%2022.5261%2018.3417%2022.5167%2018.462C22.5245%2018.7882%2022.4655%2019.1017%2022.3396%2019.4027C22.1879%2019.7384%2021.984%2020.0384%2021.7277%2020.3029C21.3021%2020.7337%2020.8502%2021.135%2020.3721%2021.5067L19.9928%2021.8051L19.9928%2021.8759L22.6938%2021.8759L22.6938%2022.8419L18.5464%2022.8419L18.5464%2021.7697C19.2882%2021.1796%2019.8579%2020.6975%2020.2558%2020.3232C20.574%2020.0432%2020.8523%2019.728%2021.0905%2019.3774C21.1675%2019.2665%2021.2269%2019.1469%2021.2691%2019.0187C21.3113%2018.8904%2021.3344%2018.7588%2021.3382%2018.6238ZM12.3102%2017.2127L12.3102%2018.1939L13.7769%2017.9107L13.7769%2022.8419L14.9605%2022.8419L14.9605%2016.8486L14.0957%2016.8486L12.3102%2017.2127ZM28.5524%2028.0475C28.5524%2028.104%2028.5467%2028.1599%2028.5353%2028.2152C28.5239%2028.2706%2028.5071%2028.3244%2028.4849%2028.3766C28.4626%2028.4287%2028.4352%2028.4782%2028.4028%2028.5252C28.3705%2028.5721%2028.3337%2028.6156%2028.2925%2028.6555C28.2513%2028.6954%2028.2067%2028.731%2028.1583%2028.7624C28.1098%2028.7937%2028.0587%2028.8202%2028.0049%2028.8418C27.9511%2028.8634%2027.8957%2028.8798%2027.8385%2028.8908C27.7814%2028.9018%2027.7235%2028.9073%2027.6653%2028.9073L24.1832%2028.8418L24.1832%2030.3617L29.1397%2030.3617C29.2082%2030.3617%2029.276%2030.3552%2029.3432%2030.3423C29.4104%2030.3293%2029.4756%2030.3101%2029.5389%2030.2847C29.6022%2030.2593%2029.6625%2030.2281%2029.7195%2030.1912C29.7765%2030.1543%2029.829%2030.1124%2029.8774%2030.0654C29.9259%2030.0184%2029.9693%2029.9673%2030.0074%2029.9121C30.0454%2029.8569%2030.0774%2029.7986%2030.1037%2029.7373C30.1299%2029.6759%2030.1497%2029.6126%2030.163%2029.5475C30.1764%2029.4823%2030.1831%2029.4166%2030.1832%2029.3502L30.1832%2026.0478L28.4785%2026L28.5524%2028.0475ZM11.6308%2028.0099C11.6308%2028.0664%2011.6365%2028.1223%2011.6479%2028.1777C11.6592%2028.233%2011.676%2028.2868%2011.6983%2028.339C11.7206%2028.3911%2011.748%2028.4406%2011.7803%2028.4876C11.8127%2028.5345%2011.8495%2028.578%2011.8906%2028.6179C11.9318%2028.6578%2011.9765%2028.6934%2012.0249%2028.7248C12.0733%2028.7562%2012.1244%2028.7826%2012.1783%2028.8042C12.2321%2028.8259%2012.2875%2028.8422%2012.3446%2028.8532C12.4017%2028.8642%2012.4596%2028.8697%2012.5178%2028.8698L16%2028.8042L16%2030.3241L11.0435%2030.3241C10.975%2030.3241%2010.9071%2030.3176%2010.8399%2030.3047C10.7727%2030.2917%2010.7076%2030.2725%2010.6443%2030.2471C10.581%2030.2217%2010.5206%2030.1906%2010.4637%2030.1537C10.4067%2030.1168%2010.3542%2030.0748%2010.3057%2030.0278C10.2573%2029.9809%2010.2138%2029.9298%2010.1758%2029.8745C10.1377%2029.8193%2010.1057%2029.7611%2010.0795%2029.6997C10.0533%2029.6383%2010.0335%2029.575%2010.0201%2029.5099C10.0068%2029.4448%2010%2029.379%2010%2029.3126L10%2026.0478L11.7047%2026L11.6308%2028.0099Z'%20fill='rgb(14,191,241)'%20fill-rule='evenodd'%20/%3e%3c/g%3e%3c/g%3e%3c/svg%3e", ke = "data:image/svg+xml,%3csvg%20viewBox='0%200%2040%2040'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='40.000000'%20height='40.000000'%20fill='none'%20customFrame='url(%23clipPath_9)'%3e%3cdefs%3e%3cclipPath%20id='clipPath_9'%3e%3crect%20width='40.000000'%20height='40.000000'%20x='0.000000'%20y='0.000000'%20rx='12.000000'%20fill='rgb(255,255,255)'%20/%3e%3c/clipPath%3e%3cclipPath%20id='clipPath_10'%3e%3crect%20width='24.000000'%20height='24.000000'%20x='8.000000'%20y='8.000000'%20fill='rgb(255,255,255)'%20/%3e%3c/clipPath%3e%3cclipPath%20id='clipPath_11'%3e%3crect%20width='20.000000'%20height='20.000000'%20x='10.000000'%20y='10.000000'%20fill='rgb(255,255,255)'%20/%3e%3c/clipPath%3e%3c/defs%3e%3crect%20id='3'%20width='40.000000'%20height='40.000000'%20x='0.000000'%20y='0.000000'%20rx='12.000000'%20fill='rgb(236,250,254)'%20/%3e%3cg%20id='画板%202310'%20customFrame='url(%23clipPath_10)'%3e%3crect%20id='画板%202310'%20width='24.000000'%20height='24.000000'%20x='8.000000'%20y='8.000000'%20fill='rgb(255,255,255)'%20fill-opacity='0'%20/%3e%3cg%20id='人事服务'%3e%3cg%20id='ic_public_link'%20clip-path='url(%23clipPath_11)'%20customFrame='url(%23clipPath_11)'%3e%3crect%20id='ic_public_link'%20width='20.000000'%20height='20.000000'%20x='10.000000'%20y='10.000000'%20/%3e%3cpath%20id='path1'%20d='M9.9999%2019.9917C9.9999%2018.4292%209.99573%2016.8667%209.9999%2015.3042C9.99573%2014.5459%2010.0916%2013.7917%2010.2749%2013.0626C10.6874%2011.5126%2011.6957%2010.5917%2013.2457%2010.2334C14.0207%2010.0667%2014.8166%209.98756%2015.6082%2010.0001C18.6041%2010.0001%2021.5999%2010.0001%2024.5999%2010.0001C25.3541%209.99589%2026.1082%2010.0792%2026.8457%2010.2584C28.4416%2010.6459%2029.3999%2011.6584%2029.7624%2013.2501C29.9291%2014.0001%2030.0041%2014.7667%2029.9957%2015.5376C29.9957%2018.5667%2029.9957%2021.5959%2029.9957%2024.6209C29.9999%2025.3709%2029.9166%2026.1209%2029.7416%2026.8459C29.3499%2028.4459%2028.3332%2029.3959%2026.7457%2029.7626C25.9666%2029.9292%2025.1749%2030.0084%2024.3791%2029.9959C21.3957%2029.9959%2018.4124%2029.9959%2015.4291%2029.9959C14.6666%2030.0042%2013.9082%2029.9167%2013.1666%2029.7417C11.5624%2029.3542%2010.5999%2028.3376%2010.2374%2026.7376C10.0499%2025.9251%209.9999%2025.1126%209.9999%2024.2917C9.9999%2022.8584%209.9999%2021.4251%209.9999%2019.9917Z'%20fill='rgb(255,255,255)'%20fill-opacity='0'%20fill-rule='evenodd'%20/%3e%3ccircle%20id='path2'%20cx='20'%20cy='20'%20r='10'%20fill='rgb(255,255,255)'%20fill-opacity='0'%20/%3e%3cpath%20id='path3'%20d='M25.0333%2021.8666L26.9%2020C28.8083%2018.0916%2028.8083%2015%2026.9%2013.0958C24.9958%2011.1875%2021.9041%2011.1875%2020%2013.0958L18.1291%2014.9625M21.8666%2025.0333L20%2026.9C18.0916%2028.8083%2015%2028.8083%2013.0958%2026.9C11.1875%2024.9958%2011.1875%2021.9041%2013.0958%2020L14.9625%2018.1291'%20fill-rule='nonzero'%20stroke='rgb(14,191,241)'%20stroke-linecap='round'%20stroke-width='1.25'%20/%3e%3cpath%20id='pah4'%20d='M18.125%2021.875L21.875%2018.125'%20stroke='rgb(14,191,241)'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='1.25'%20/%3e%3cpath%20id='path5'%20d='M25.8207%2019.2626L24.0457%2021.0376C23.7998%2021.2834%2023.6748%2021.5292%2023.6748%2021.7751C23.6748%2022.0209%2023.7998%2022.2667%2024.0457%2022.5126C24.1498%2022.6167%2024.2665%2022.6959%2024.3915%2022.7459C24.5123%2022.7917%2024.6415%2022.8167%2024.779%2022.8167C24.9207%2022.8167%2025.0498%2022.7917%2025.1665%2022.7459C25.2957%2022.6959%2025.4123%2022.6167%2025.5165%2022.5126L27.2915%2020.7334C27.8165%2020.2126%2028.2165%2019.6334%2028.4957%2019.0001C28.5082%2018.9667%2028.5248%2018.9334%2028.5373%2018.8959C28.554%2018.8626%2028.5665%2018.8292%2028.579%2018.7917C28.8332%2018.1501%2028.9582%2017.4584%2028.9582%2016.7209C28.9582%2015.9792%2028.8332%2015.2876%2028.579%2014.6459C28.5665%2014.6084%2028.554%2014.5751%2028.5373%2014.5417C28.5248%2014.5042%2028.5082%2014.4709%2028.4957%2014.4376C28.2165%2013.8042%2027.8165%2013.2292%2027.2915%2012.7042C26.7707%2012.1792%2026.1915%2011.7792%2025.5582%2011.5001C25.5248%2011.4876%2025.4915%2011.4709%2025.454%2011.4584C25.4207%2011.4417%2025.3873%2011.4292%2025.354%2011.4167C24.7082%2011.1667%2024.0165%2011.0417%2023.279%2011.0417C22.5373%2011.0417%2021.8457%2011.1667%2021.204%2011.4167C21.1665%2011.4292%2021.1332%2011.4417%2021.0998%2011.4584C21.0623%2011.4709%2021.029%2011.4876%2020.9957%2011.5001C20.3623%2011.7792%2019.7832%2012.1792%2019.2623%2012.7042L17.4832%2014.4792C17.379%2014.5834%2017.2998%2014.7001%2017.2498%2014.8292C17.204%2014.9501%2017.179%2015.0751%2017.179%2015.2167C17.179%2015.3542%2017.204%2015.4834%2017.2498%2015.6042C17.2998%2015.7292%2017.379%2015.8459%2017.4832%2015.9542C17.5915%2016.0584%2017.7082%2016.1376%2017.8332%2016.1876C17.954%2016.2334%2018.0832%2016.2584%2018.2207%2016.2584C18.3623%2016.2584%2018.4915%2016.2334%2018.6082%2016.1876C18.7373%2016.1376%2018.854%2016.0584%2018.9582%2015.9542L20.7332%2014.1751C21.0873%2013.8209%2021.4748%2013.5584%2021.8957%2013.3834C22.3165%2013.2084%2022.779%2013.1251%2023.279%2013.1251C23.7748%2013.1251%2024.2373%2013.2084%2024.6582%2013.3834C25.079%2013.5584%2025.4665%2013.8209%2025.8207%2014.1751C26.1748%2014.5292%2026.4373%2014.9167%2026.6123%2015.3376C26.7873%2015.7584%2026.8748%2016.2167%2026.8748%2016.7209C26.8748%2017.2209%2026.7873%2017.6792%2026.6123%2018.1001C26.4373%2018.5209%2026.1748%2018.9084%2025.8207%2019.2626ZM13.3832%2021.8959C13.5582%2021.4751%2013.8207%2021.0876%2014.1748%2020.7334L15.954%2018.9584C16.0582%2018.8542%2016.1373%2018.7376%2016.1873%2018.6084C16.2332%2018.4876%2016.2582%2018.3626%2016.2582%2018.2209C16.2582%2018.0834%2016.2332%2017.9542%2016.1873%2017.8334C16.1373%2017.7084%2016.0582%2017.5917%2015.954%2017.4834C15.7082%2017.2417%2015.4623%2017.1167%2015.2165%2017.1167C14.9707%2017.1167%2014.7248%2017.2417%2014.479%2017.4834L12.704%2019.2626C12.179%2019.7876%2011.779%2020.3626%2011.4998%2020.9959C11.4873%2021.0292%2011.4707%2021.0626%2011.4582%2021.1001C11.4415%2021.1334%2011.429%2021.1667%2011.4165%2021.2042C11.1665%2021.8459%2011.0415%2022.5376%2011.0415%2023.2792C11.0415%2024.0167%2011.1665%2024.7084%2011.4165%2025.3542C11.429%2025.3876%2011.4415%2025.4209%2011.4582%2025.4584C11.4707%2025.4917%2011.4873%2025.5251%2011.4998%2025.5584C11.779%2026.1917%2012.179%2026.7709%2012.704%2027.2917C13.2248%2027.8167%2013.804%2028.2167%2014.4373%2028.4959C14.4707%2028.5084%2014.504%2028.5251%2014.5415%2028.5376C14.5748%2028.5542%2014.6082%2028.5667%2014.6457%2028.5792C15.2873%2028.8292%2015.979%2028.9584%2016.7207%2028.9584C17.4582%2028.9584%2018.1498%2028.8292%2018.7915%2028.5792C18.829%2028.5667%2018.8623%2028.5542%2018.8957%2028.5376C18.9332%2028.5251%2018.9665%2028.5084%2018.9998%2028.4959C19.6332%2028.2167%2020.2123%2027.8167%2020.7332%2027.2917L22.5123%2025.5167C22.6165%2025.4126%2022.6957%2025.2959%2022.7457%2025.1667C22.7915%2025.0459%2022.8165%2024.9209%2022.8165%2024.7792C22.8165%2024.6417%2022.7915%2024.5126%2022.7457%2024.3917C22.6957%2024.2667%2022.6165%2024.1501%2022.5123%2024.0417C22.2665%2023.8001%2022.0207%2023.6751%2021.7748%2023.6751C21.529%2023.6751%2021.2832%2023.8001%2021.0373%2024.0417L19.2623%2025.8209C18.9082%2026.1751%2018.5207%2026.4376%2018.0998%2026.6126C17.679%2026.7876%2017.2165%2026.8751%2016.7207%2026.8751C16.2207%2026.8751%2015.7582%2026.7876%2015.3373%2026.6126C14.9165%2026.4376%2014.529%2026.1751%2014.1748%2025.8209C13.8207%2025.4667%2013.5582%2025.0792%2013.3832%2024.6584C13.2082%2024.2376%2013.1248%2023.7792%2013.1248%2023.2792C13.1248%2022.7751%2013.2082%2022.3167%2013.3832%2021.8959Z'%20fill='rgb(255,255,255)'%20fill-opacity='0'%20fill-rule='evenodd'%20/%3e%3cpath%20id='path6'%20d='M21.8127%2016.7458C21.746%2016.7874%2021.6877%2016.8374%2021.6293%2016.8916L16.8918%2021.6291C16.8377%2021.6874%2016.7877%2021.7499%2016.746%2021.8124C16.7127%2021.8624%2016.6877%2021.9166%2016.6627%2021.9749C16.6377%2022.0374%2016.6168%2022.1041%2016.6043%2022.1708C16.5918%2022.2333%2016.5835%2022.2999%2016.5835%2022.3666C16.5835%2022.4333%2016.5918%2022.4999%2016.6043%2022.5666C16.6168%2022.6333%2016.6377%2022.6999%2016.6627%2022.7624C16.6877%2022.8166%2016.7127%2022.8708%2016.746%2022.9208C16.7877%2022.9874%2016.8377%2023.0499%2016.8918%2023.1041C16.946%2023.1583%2017.0085%2023.2083%2017.0752%2023.2499C17.1252%2023.2833%2017.1793%2023.3083%2017.2335%2023.3333C17.3002%2023.3583%2017.3627%2023.3791%2017.4293%2023.3916C17.496%2023.4041%2017.5627%2023.4124%2017.6293%2023.4124C17.696%2023.4124%2017.7627%2023.4041%2017.8252%2023.3916C17.8918%2023.3791%2017.9585%2023.3583%2018.021%2023.3333C18.0793%2023.3083%2018.1335%2023.2833%2018.1835%2023.2499C18.246%2023.2083%2018.3085%2023.1583%2018.3668%2023.1041L23.1043%2018.3666C23.1585%2018.3083%2023.2085%2018.2499%2023.2502%2018.1833C23.2835%2018.1333%2023.3085%2018.0791%2023.3335%2018.0208C23.3585%2017.9583%2023.3793%2017.8916%2023.3918%2017.8249C23.4043%2017.7624%2023.4127%2017.6958%2023.4127%2017.6291C23.4127%2017.5624%2023.4043%2017.4958%2023.3918%2017.4291C23.3793%2017.3624%2023.3585%2017.2999%2023.3335%2017.2333C23.3085%2017.1791%2023.2835%2017.1249%2023.2502%2017.0749C23.2085%2017.0083%2023.1585%2016.9458%2023.1043%2016.8916C23.046%2016.8374%2022.9877%2016.7874%2022.921%2016.7458C22.871%2016.7124%2022.8168%2016.6874%2022.7627%2016.6624C22.696%2016.6374%2022.6335%2016.6166%2022.5668%2016.6041C22.5002%2016.5916%2022.4335%2016.5833%2022.3668%2016.5833C22.3002%2016.5833%2022.2335%2016.5916%2022.171%2016.6041C22.1043%2016.6166%2022.0377%2016.6374%2021.9752%2016.6624C21.9168%2016.6874%2021.8627%2016.7124%2021.8127%2016.7458Z'%20fill='rgb(255,255,255)'%20fill-opacity='0'%20fill-rule='evenodd'%20/%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e", Ie = "data:image/svg+xml,%3csvg%20viewBox='0%200%2040%2040'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='40.000000'%20height='40.000000'%20fill='none'%20customFrame='url(%23clipPath_0)'%3e%3cdefs%3e%3cclipPath%20id='clipPath_0'%3e%3crect%20width='40.000000'%20height='40.000000'%20x='0.000000'%20y='0.000000'%20rx='12.000000'%20fill='rgb(255,255,255)'%20/%3e%3c/clipPath%3e%3cclipPath%20id='clipPath_1'%3e%3crect%20width='24.000000'%20height='24.000000'%20x='8.000000'%20y='8.000000'%20fill='rgb(255,255,255)'%20/%3e%3c/clipPath%3e%3cclipPath%20id='clipPath_2'%3e%3crect%20width='20.000000'%20height='20.000000'%20x='10.000000'%20y='10.000000'%20fill='rgb(255,255,255)'%20/%3e%3c/clipPath%3e%3c/defs%3e%3crect%20id='1'%20width='40.000000'%20height='40.000000'%20x='0.000000'%20y='0.000000'%20rx='12.000000'%20fill='rgb(236,250,254)'%20/%3e%3cg%20id='车辆'%20clip-path='url(%23clipPath_1)'%20customFrame='url(%23clipPath_1)'%3e%3crect%20id='车辆'%20width='24.000000'%20height='24.000000'%20x='8.000000'%20y='8.000000'%20/%3e%3cg%20id='编组'%3e%3cg%20id='ic_public_qrcode'%20clip-path='url(%23clipPath_2)'%20customFrame='url(%23clipPath_2)'%3e%3crect%20id='ic_public_qrcode'%20width='20.000000'%20height='20.000000'%20x='10.000000'%20y='10.000000'%20/%3e%3cg%20id='ic_public_qrcode_1_1'%3e%3cpath%20id='ic_public_qrcode_2_0'%20d='M10.6273%2019.9924C10.6273%2018.5277%2010.6222%2017.0631%2010.6273%2015.5985C10.6243%2014.8898%2010.7114%2014.1836%2010.8865%2013.4968C11.2702%2012.0432%2012.2171%2011.1805%2013.6693%2010.8458C14.3974%2010.6885%2015.1411%2010.6148%2015.886%2010.6261C18.6946%2010.6261%2021.5035%2010.6261%2024.3127%2010.6261C25.0221%2010.6217%2025.7295%2010.7029%2026.4195%2010.8678C27.9156%2011.2339%2028.8134%2012.1816%2029.1554%2013.6725C29.3092%2014.3772%2029.3826%2015.097%2029.3744%2015.8182C29.3744%2018.6571%2029.3744%2021.4963%2029.3744%2024.3357C29.3782%2025.0383%2029.2973%2025.7388%2029.1334%2026.422C28.7673%2027.9189%2027.8153%2028.8123%2026.3243%2029.1543C25.5961%2029.311%2024.8524%2029.3847%2024.1076%2029.374C21.3107%2029.374%2018.514%2029.374%2015.7176%2029.374C15.0027%2029.3798%2014.2897%2029.2999%2013.5939%2029.136C12.0912%2028.7698%2011.189%2027.8178%2010.8477%2026.3195C10.6734%2025.5579%2010.6273%2024.7941%2010.6273%2024.0237C10.6273%2022.6802%2010.6273%2021.3364%2010.6273%2019.9924Z'%20fill='rgb(255,255,255)'%20fill-opacity='0'%20fill-rule='nonzero'%20/%3e%3cpath%20id='ic_public_qrcode_2_0'%20d='M10.6273%2015.5985C10.6243%2014.8898%2010.7114%2014.1836%2010.8865%2013.4968C11.2702%2012.0432%2012.2171%2011.1805%2013.6693%2010.8458C14.3974%2010.6885%2015.1411%2010.6148%2015.886%2010.6261C18.6946%2010.6261%2021.5035%2010.6261%2024.3127%2010.6261C25.0221%2010.6217%2025.7295%2010.7029%2026.4195%2010.8678C27.9156%2011.2339%2028.8134%2012.1816%2029.1554%2013.6725C29.3092%2014.3772%2029.3826%2015.097%2029.3744%2015.8182C29.3744%2018.6571%2029.3744%2021.4963%2029.3744%2024.3357C29.3782%2025.0383%2029.2973%2025.7388%2029.1334%2026.422C28.7673%2027.9189%2027.8153%2028.8123%2026.3243%2029.1543C25.5961%2029.311%2024.8524%2029.3847%2024.1076%2029.374C21.3107%2029.374%2018.514%2029.374%2015.7176%2029.374C15.0027%2029.3798%2014.2897%2029.2999%2013.5939%2029.136C12.0912%2028.7698%2011.189%2027.8178%2010.8477%2026.3195C10.6734%2025.5579%2010.6273%2024.7941%2010.6273%2024.0237C10.6273%2022.6802%2010.6273%2021.3364%2010.6273%2019.9924C10.6273%2018.5277%2010.6222%2017.0631%2010.6273%2015.5985Z'%20fill-rule='nonzero'%20stroke='rgb(255,255,255)'%20stroke-opacity='0'%20stroke-width='1.25'%20/%3e%3cpath%20id='ic_public_qrcode_2_1'%20d='M10.6273%2015.5985C10.6243%2014.8898%2010.7114%2014.1836%2010.8865%2013.4968C11.2702%2012.0432%2012.2171%2011.1805%2013.6693%2010.8458C14.3974%2010.6885%2015.1411%2010.6148%2015.886%2010.6261C18.6946%2010.6261%2021.5035%2010.6261%2024.3127%2010.6261C25.0221%2010.6217%2025.7295%2010.7029%2026.4195%2010.8678C27.9156%2011.2339%2028.8134%2012.1816%2029.1554%2013.6725C29.3092%2014.3772%2029.3826%2015.097%2029.3744%2015.8182C29.3744%2018.6571%2029.3744%2021.4963%2029.3744%2024.3357C29.3782%2025.0383%2029.2973%2025.7388%2029.1334%2026.422C28.7673%2027.9189%2027.8153%2028.8123%2026.3243%2029.1543C25.5961%2029.311%2024.8524%2029.3847%2024.1076%2029.374C21.3107%2029.374%2018.514%2029.374%2015.7176%2029.374C15.0027%2029.3798%2014.2897%2029.2999%2013.5939%2029.136C12.0912%2028.7698%2011.189%2027.8178%2010.8477%2026.3195C10.6734%2025.5579%2010.6273%2024.7941%2010.6273%2024.0237C10.6273%2022.6802%2010.6273%2021.3364%2010.6273%2019.9924C10.6273%2018.5277%2010.6222%2017.0631%2010.6273%2015.5985Z'%20opacity='0.200000003'%20fill-rule='nonzero'%20stroke='rgb(255,255,255)'%20stroke-opacity='0'%20stroke-width='1.25'%20/%3e%3ccircle%20id='ic_public_qrcode_2_2'%20cx='20'%20cy='20'%20r='10'%20fill='rgb(255,255,255)'%20fill-opacity='0'%20/%3e%3cpath%20id='ic_public_qrcode_2_3'%20d='M17.5%2011.25C17.9602%2011.25%2018.3333%2011.6231%2018.3333%2012.0833L18.3333%2017.5C18.3333%2017.9602%2017.9602%2018.3333%2017.5%2018.3333L12.0833%2018.3333C11.6231%2018.3333%2011.25%2017.9602%2011.25%2017.5L11.25%2012.0833C11.25%2011.6231%2011.6231%2011.25%2012.0833%2011.25L17.5%2011.25ZM17.5%2021.6667C17.9602%2021.6667%2018.3333%2022.0398%2018.3333%2022.5L18.3333%2027.9167C18.3333%2028.3769%2017.9602%2028.75%2017.5%2028.75L12.0833%2028.75C11.6231%2028.75%2011.25%2028.3769%2011.25%2027.9167L11.25%2022.5C11.25%2022.0398%2011.6231%2021.6667%2012.0833%2021.6667L17.5%2021.6667ZM27.9167%2011.25C28.3769%2011.25%2028.75%2011.6231%2028.75%2012.0833L28.75%2017.5C28.75%2017.9602%2028.3769%2018.3333%2027.9167%2018.3333L22.5%2018.3333C22.0398%2018.3333%2021.6667%2017.9602%2021.6667%2017.5L21.6667%2012.0833C21.6667%2011.6231%2022.0398%2011.25%2022.5%2011.25L27.9167%2011.25Z'%20fill-rule='evenodd'%20stroke='rgb(14,191,241)'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-width='1.25'%20/%3e%3cpath%20id='ic_public_qrcode_2_4'%20d='M17.5002%2010.8333C18.1905%2010.8333%2018.7502%2011.3929%2018.7502%2012.0833L18.7502%2017.4999C18.7502%2018.1903%2018.1905%2018.7499%2017.5002%2018.7499L12.0835%2018.7499C11.3931%2018.7499%2010.8335%2018.1903%2010.8335%2017.4999L10.8335%2012.0833C10.8335%2011.3929%2011.3931%2010.8333%2012.0835%2010.8333L17.5002%2010.8333ZM17.5002%2011.6666L12.0835%2011.6666C11.8534%2011.6666%2011.6668%2011.8531%2011.6668%2012.0833L11.6668%2017.4999C11.6668%2017.73%2011.8534%2017.9166%2012.0835%2017.9166L17.5002%2017.9166C17.7303%2017.9166%2017.9168%2017.73%2017.9168%2017.4999L17.9168%2012.0833C17.9168%2011.8531%2017.7303%2011.6666%2017.5002%2011.6666ZM17.5002%2021.2499C18.1905%2021.2499%2018.7502%2021.8096%2018.7502%2022.4999L18.7502%2027.9166C18.7502%2028.6069%2018.1905%2029.1666%2017.5002%2029.1666L12.0835%2029.1666C11.3931%2029.1666%2010.8335%2028.6069%2010.8335%2027.9166L10.8335%2022.4999C10.8335%2021.8096%2011.3931%2021.2499%2012.0835%2021.2499L17.5002%2021.2499ZM17.5002%2022.0833L12.0835%2022.0833C11.8534%2022.0833%2011.6668%2022.2698%2011.6668%2022.4999L11.6668%2027.9166C11.6668%2028.1467%2011.8534%2028.3333%2012.0835%2028.3333L17.5002%2028.3333C17.7303%2028.3333%2017.9168%2028.1467%2017.9168%2027.9166L17.9168%2022.4999C17.9168%2022.2698%2017.7303%2022.0833%2017.5002%2022.0833ZM27.9168%2010.8333C28.6072%2010.8333%2029.1668%2011.3929%2029.1668%2012.0833L29.1668%2017.4999C29.1668%2018.1903%2028.6072%2018.7499%2027.9168%2018.7499L22.5002%2018.7499C21.8098%2018.7499%2021.2502%2018.1903%2021.2502%2017.4999L21.2502%2012.0833C21.2502%2011.3929%2021.8098%2010.8333%2022.5002%2010.8333L27.9168%2010.8333ZM27.9168%2011.6666L22.5002%2011.6666C22.27%2011.6666%2022.0835%2011.8531%2022.0835%2012.0833L22.0835%2017.4999C22.0835%2017.73%2022.27%2017.9166%2022.5002%2017.9166L27.9168%2017.9166C28.1469%2017.9166%2028.3335%2017.73%2028.3335%2017.4999L28.3335%2012.0833C28.3335%2011.8531%2028.1469%2011.6666%2027.9168%2011.6666Z'%20fill='rgb(255,255,255)'%20fill-opacity='0'%20fill-rule='nonzero'%20/%3e%3cpath%20id='ic_public_qrcode_2_4'%20d='M18.7502%2012.0833L18.7502%2017.4999C18.7502%2018.1903%2018.1905%2018.7499%2017.5002%2018.7499L12.0835%2018.7499C11.3931%2018.7499%2010.8335%2018.1903%2010.8335%2017.4999L10.8335%2012.0833C10.8335%2011.3929%2011.3931%2010.8333%2012.0835%2010.8333L17.5002%2010.8333C18.1905%2010.8333%2018.7502%2011.3929%2018.7502%2012.0833ZM12.0835%2011.6666C11.8534%2011.6666%2011.6668%2011.8531%2011.6668%2012.0833L11.6668%2017.4999C11.6668%2017.73%2011.8534%2017.9166%2012.0835%2017.9166L17.5002%2017.9166C17.7303%2017.9166%2017.9168%2017.73%2017.9168%2017.4999L17.9168%2012.0833C17.9168%2011.8531%2017.7303%2011.6666%2017.5002%2011.6666L12.0835%2011.6666ZM18.7502%2022.4999L18.7502%2027.9166C18.7502%2028.6069%2018.1905%2029.1666%2017.5002%2029.1666L12.0835%2029.1666C11.3931%2029.1666%2010.8335%2028.6069%2010.8335%2027.9166L10.8335%2022.4999C10.8335%2021.8096%2011.3931%2021.2499%2012.0835%2021.2499L17.5002%2021.2499C18.1905%2021.2499%2018.7502%2021.8096%2018.7502%2022.4999ZM12.0835%2022.0833C11.8534%2022.0833%2011.6668%2022.2698%2011.6668%2022.4999L11.6668%2027.9166C11.6668%2028.1467%2011.8534%2028.3333%2012.0835%2028.3333L17.5002%2028.3333C17.7303%2028.3333%2017.9168%2028.1467%2017.9168%2027.9166L17.9168%2022.4999C17.9168%2022.2698%2017.7303%2022.0833%2017.5002%2022.0833L12.0835%2022.0833ZM29.1668%2012.0833L29.1668%2017.4999C29.1668%2018.1903%2028.6072%2018.7499%2027.9168%2018.7499L22.5002%2018.7499C21.8098%2018.7499%2021.2502%2018.1903%2021.2502%2017.4999L21.2502%2012.0833C21.2502%2011.3929%2021.8098%2010.8333%2022.5002%2010.8333L27.9168%2010.8333C28.6072%2010.8333%2029.1668%2011.3929%2029.1668%2012.0833ZM22.5002%2011.6666C22.27%2011.6666%2022.0835%2011.8531%2022.0835%2012.0833L22.0835%2017.4999C22.0835%2017.73%2022.27%2017.9166%2022.5002%2017.9166L27.9168%2017.9166C28.1469%2017.9166%2028.3335%2017.73%2028.3335%2017.4999L28.3335%2012.0833C28.3335%2011.8531%2028.1469%2011.6666%2027.9168%2011.6666L22.5002%2011.6666Z'%20fill-rule='nonzero'%20stroke='rgb(255,255,255)'%20stroke-opacity='0'%20stroke-linejoin='round'%20stroke-width='1.25'%20/%3e%3cpath%20id='ic_public_qrcode_2_5'%20d='M27.9165%2021.6667L27.9165%2024.5834L28.7498%2024.5834L28.7498%2021.6667L27.9165%2021.6667ZM24.5832%2021.6667L24.5832%2022.639L24.5828%2022.6388L24.5832%2024.5834L23.6109%2024.5834L23.6107%2022.6388L21.6665%2022.639L21.6665%2021.6667L24.5832%2021.6667ZM21.6665%2025.8334L21.6665%2028.7501L22.4998%2028.7501L22.4998%2025.8334L21.6665%2025.8334ZM27.9165%2027.9167L27.9165%2028.7501L28.7498%2028.7501L28.7498%2027.9167L27.9165%2027.9167ZM25.8332%2025.8334L25.8332%2026.6667L26.6665%2026.6667L26.6665%2025.8334L25.8332%2025.8334Z'%20fill='rgb(14,191,241)'%20fill-rule='nonzero'%20/%3e%3cpath%20id='ic_public_qrcode_2_5'%20d='M27.9165%2024.5834L28.7498%2024.5834L28.7498%2021.6667L27.9165%2021.6667L27.9165%2024.5834ZM24.5832%2022.639L24.5828%2022.6388L24.5832%2024.5834L23.6109%2024.5834L23.6107%2022.6388L21.6665%2022.639L21.6665%2021.6667L24.5832%2021.6667L24.5832%2022.639ZM21.6665%2028.7501L22.4998%2028.7501L22.4998%2025.8334L21.6665%2025.8334L21.6665%2028.7501ZM27.9165%2028.7501L28.7498%2028.7501L28.7498%2027.9167L27.9165%2027.9167L27.9165%2028.7501ZM25.8332%2026.6667L26.6665%2026.6667L26.6665%2025.8334L25.8332%2025.8334L25.8332%2026.6667Z'%20fill-rule='nonzero'%20stroke='rgb(14,191,241)'%20stroke-linejoin='round'%20stroke-width='1.25'%20/%3e%3cpath%20id='ic_public_qrcode_2_6'%20d='M14.375%2014.375L14.375%2015.2083L15.2083%2015.2083L15.2083%2014.375L14.375%2014.375ZM14.375%2024.7917L14.375%2025.625L15.2083%2025.625L15.2083%2024.7917L14.375%2024.7917ZM24.7917%2014.375L24.7917%2015.2083L25.625%2015.2083L25.625%2014.375L24.7917%2014.375Z'%20fill='rgb(14,191,241)'%20fill-rule='nonzero'%20/%3e%3cpath%20id='ic_public_qrcode_2_6'%20d='M14.375%2015.2083L15.2083%2015.2083L15.2083%2014.375L14.375%2014.375L14.375%2015.2083ZM14.375%2025.625L15.2083%2025.625L15.2083%2024.7917L14.375%2024.7917L14.375%2025.625ZM24.7917%2015.2083L25.625%2015.2083L25.625%2014.375L24.7917%2014.375L24.7917%2015.2083Z'%20fill-rule='nonzero'%20stroke='rgb(14,191,241)'%20stroke-linejoin='round'%20stroke-width='1.25'%20/%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e", Ue = "data:image/svg+xml,%3csvg%20viewBox='0%200%2012%2012'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='12.000000'%20height='12.000000'%20fill='none'%3e%3cdefs%3e%3cfilter%20id='pixso_custom_mask_type_luminance'%3e%3cfeColorMatrix%20type='matrix'%20values='1%200%200%200%200%200%201%200%200%200%200%200%201%200%200%200%200%200%201%200%20'%20/%3e%3c/filter%3e%3c/defs%3e%3cmask%20id='mask_0'%20width='11.999876'%20height='11.999876'%20x='0.000000'%20y='0.000000'%20maskUnits='userSpaceOnUse'%3e%3cg%20filter='url(%23pixso_custom_mask_type_luminance)'%3e%3cg%20id='mask401_19830'%3e%3cpath%20id='蒙版'%20d='M0%200L11.9999%200L11.9999%2011.9999L0%2011.9999L0%200ZM2.69992%201.34999L8.09977%201.34999C9.5082%201.34999%2010.6498%202.49167%2010.6498%203.89998L10.6498%209.2999C10.6498%2010.7082%209.5082%2011.8499%208.09977%2011.8499L2.69992%2011.8499C1.29149%2011.8499%200.149901%2010.7082%200.149901%209.2999L0.149901%203.89998C0.149901%202.49167%201.29149%201.34999%202.69992%201.34999Z'%20fill='rgb(196,196,196)'%20fill-rule='evenodd'%20/%3e%3c/g%3e%3c/g%3e%3c/mask%3e%3crect%20id='ic_public_copy'%20width='12.000000'%20height='12.000000'%20x='0.000000'%20y='0.000000'%20/%3e%3crect%20id='ic_public_copy-复制/base/ic_public_copy'%20width='11.999876'%20height='11.999876'%20x='0.000000'%20y='0.000000'%20fill='rgb(255,255,255)'%20fill-opacity='0'%20/%3e%3cpath%20id='path1'%20d='M0.000134537%205.99497C0.000134537%205.05748%20-0.00236544%204.11999%200.000134537%203.1825C-0.00236544%202.72751%200.055134%202.27501%200.165133%201.83752C0.41263%200.907526%201.01762%200.355032%201.94761%200.140034C2.41261%200.040035%202.8901%20-0.00746449%203.3651%203.54269e-05C5.16258%203.54269e-05%206.96006%203.54269e-05%208.76004%203.54269e-05C9.21254%20-0.00246455%209.66503%200.0475349%2010.1075%200.155034C11.065%200.387531%2011.64%200.995025%2011.8575%201.95002C11.9575%202.40001%2012.005%202.86001%2011.9975%203.3225C11.9975%205.13998%2011.9975%206.95746%2011.9975%208.77244C12%209.22244%2011.95%209.67243%2011.845%2010.1099C11.61%2011.0674%2011%2011.6374%2010.0475%2011.8574C9.58003%2011.9574%209.10504%2012.0049%208.62754%2011.9974C6.83756%2011.9974%205.04758%2011.9974%203.2576%2011.9974C2.80011%2012.0024%202.34511%2011.9499%201.90011%2011.8449C0.937625%2011.6124%200.360131%2011.0024%200.142633%2010.0424C0.0301342%209.55494%200.000134537%209.06744%200.000134537%208.57495C0.000134537%207.71495%200.000134537%206.85496%200.000134537%205.99497Z'%20fill='rgb(255,255,255)'%20fill-opacity='0'%20fill-rule='evenodd'%20/%3e%3ccircle%20id='path2'%20cx='5.99993801'%20cy='5.99993801'%20r='5.99993801'%20fill='rgb(255,255,255)'%20fill-opacity='0'%20/%3e%3cg%20id='mask'%20mask='url(%23mask_0)'%3e%3cg%20id='组合%208'%3e%3cpath%20id='path'%20d='M11.1%203.89993L11.1%206.8999C11.1%208.55488%209.75502%209.89737%208.10004%209.89737L5.10007%209.89737C3.44258%209.89737%202.1001%208.55488%202.1001%206.8999L2.1001%203.89993C2.1001%202.24245%203.44258%200.897461%205.10007%200.897461L8.10004%200.897461C9.75502%200.897461%2011.1%202.24245%2011.1%203.89993Z'%20fill-rule='nonzero'%20stroke='rgb(25,25,25)'%20stroke-linejoin='round'%20stroke-width='0.749992251'%20/%3e%3c/g%3e%3c/g%3e%3cpath%20id='path4'%20d='M2.10008%202.39746L8.10002%202.39746C8.92751%202.39746%209.6%203.06995%209.6%203.89995L9.6%209.89738C9.6%2010.7274%208.92751%2011.3999%208.10002%2011.3999L2.10008%2011.3999C1.27009%2011.3999%200.600098%2010.7274%200.600098%209.89738L0.600098%203.89995C0.600098%203.06995%201.27009%202.39746%202.10008%202.39746Z'%20fill='rgb(255,255,255)'%20fill-opacity='0'%20fill-rule='evenodd'%20/%3e%3cpath%20id='path4'%20d='M9.6%203.89995L9.6%209.89738C9.6%2010.7274%208.92751%2011.3999%208.10002%2011.3999L2.10008%2011.3999C1.27009%2011.3999%200.600098%2010.7274%200.600098%209.89738L0.600098%203.89995C0.600098%203.06995%201.27009%202.39746%202.10008%202.39746L8.10002%202.39746C8.92751%202.39746%209.6%203.06995%209.6%203.89995Z'%20fill-rule='nonzero'%20stroke='rgb(25,25,25)'%20stroke-linejoin='round'%20stroke-width='0.749992251'%20/%3e%3c/svg%3e", Ae = "https://agent.opentiny.design/tiny-robot", Oe = "https://ai.opentiny.design/next-remoter", $e = "https://ai.opentiny.design/next-remoter/svgs/logo-next-no-bg-left.svg", y2 = (r) => [
|
|
903
903
|
{
|
|
904
904
|
action: "qr-code",
|
|
905
905
|
show: !0,
|
|
906
906
|
text: "扫码登录",
|
|
907
907
|
desc: "使用手机遥控页面",
|
|
908
|
-
icon:
|
|
908
|
+
icon: Ie
|
|
909
909
|
},
|
|
910
910
|
{
|
|
911
911
|
action: "ai-chat",
|
|
912
912
|
show: !0,
|
|
913
913
|
text: "打开对话框",
|
|
914
914
|
desc: "支持在网页端操作AI",
|
|
915
|
-
icon:
|
|
915
|
+
icon: Ee
|
|
916
916
|
},
|
|
917
917
|
{
|
|
918
918
|
action: "remote-url",
|
|
@@ -922,7 +922,7 @@ const Pe = "data:image/svg+xml,%3csvg%20viewBox='0%200%2040%2039.9692'%20xmlns='
|
|
|
922
922
|
active: !0,
|
|
923
923
|
tip: r.remoteUrl,
|
|
924
924
|
showCopyIcon: !0,
|
|
925
|
-
icon:
|
|
925
|
+
icon: ke
|
|
926
926
|
},
|
|
927
927
|
{
|
|
928
928
|
action: "remote-control",
|
|
@@ -931,28 +931,26 @@ const Pe = "data:image/svg+xml,%3csvg%20viewBox='0%200%2040%2039.9692'%20xmlns='
|
|
|
931
931
|
desc: `${r.sessionId.slice(-6)}`,
|
|
932
932
|
know: !0,
|
|
933
933
|
showCopyIcon: !0,
|
|
934
|
-
icon:
|
|
934
|
+
icon: Pe
|
|
935
935
|
}
|
|
936
936
|
];
|
|
937
|
-
class
|
|
937
|
+
class qe {
|
|
938
938
|
constructor(e) {
|
|
939
|
-
if (this.isExpanded = !1, this.getImageUrl = (t) => {
|
|
939
|
+
if (this.isExpanded = !1, this.closingTimer = 0, this.getImageUrl = (t) => {
|
|
940
940
|
if (!t) return;
|
|
941
941
|
const s = new Image();
|
|
942
942
|
return s.src = t, s;
|
|
943
943
|
}, this.renderItem = () => {
|
|
944
|
-
this.menuItems.filter((t) => t.show !== !1).map(
|
|
945
|
-
(t)
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
}
|
|
952
|
-
);
|
|
944
|
+
this.menuItems.filter((t) => t.show !== !1).map((t) => {
|
|
945
|
+
const s = document.getElementById(`tiny-remoter-icon-item-${t.action}`);
|
|
946
|
+
if (!s) return;
|
|
947
|
+
s.innerHTML = "";
|
|
948
|
+
const i = this.getImageUrl(t.icon);
|
|
949
|
+
i && s.appendChild(i);
|
|
950
|
+
});
|
|
953
951
|
}, this.readyTips = (t) => {
|
|
954
952
|
const s = document.getElementById(t);
|
|
955
|
-
s && new
|
|
953
|
+
s && new Re(s, {
|
|
956
954
|
content: "复制",
|
|
957
955
|
placement: "top",
|
|
958
956
|
trigger: "hover"
|
|
@@ -961,9 +959,10 @@ class $e {
|
|
|
961
959
|
throw new Error("sessionId is required");
|
|
962
960
|
this.options = {
|
|
963
961
|
...e,
|
|
964
|
-
qrCodeUrl: e.qrCodeUrl ||
|
|
965
|
-
remoteUrl: e.remoteUrl ||
|
|
966
|
-
|
|
962
|
+
qrCodeUrl: e.qrCodeUrl || Oe,
|
|
963
|
+
remoteUrl: e.remoteUrl || Ae,
|
|
964
|
+
logoUrl: e.logoUrl || $e
|
|
965
|
+
}, e.menuItems && e.menuItems.length === 0 ? this.menuItems = [] : this.menuItems = this.mergeMenuItems(e.menuItems), this.init();
|
|
967
966
|
}
|
|
968
967
|
// 计算 sessionPrefix 属性
|
|
969
968
|
get sessionPrefix() {
|
|
@@ -975,7 +974,7 @@ class $e {
|
|
|
975
974
|
* @returns 合并后的菜单项配置
|
|
976
975
|
*/
|
|
977
976
|
mergeMenuItems(e) {
|
|
978
|
-
return e ?
|
|
977
|
+
return e ? y2(this.options).map((t) => {
|
|
979
978
|
const s = e.find((i) => i.action === t.action);
|
|
980
979
|
return s ? {
|
|
981
980
|
...t,
|
|
@@ -983,7 +982,7 @@ class $e {
|
|
|
983
982
|
// 确保show属性存在,默认为true
|
|
984
983
|
show: s.show !== void 0 ? s.show : t.show
|
|
985
984
|
} : t;
|
|
986
|
-
}) :
|
|
985
|
+
}) : y2(this.options);
|
|
987
986
|
}
|
|
988
987
|
init() {
|
|
989
988
|
this.createFloatingBlock(), this.createDropdownMenu(), this.bindEvents(), this.addStyles();
|
|
@@ -992,7 +991,7 @@ class $e {
|
|
|
992
991
|
createFloatingBlock() {
|
|
993
992
|
this.floatingBlock = document.createElement("div"), this.floatingBlock.className = "tiny-remoter-floating-block", this.floatingBlock.innerHTML = `
|
|
994
993
|
<div class="tiny-remoter-floating-block__icon">
|
|
995
|
-
<img style="display: block; width: 56px;" src="${
|
|
994
|
+
<img style="display: block; width: 56px;" src="${this.options.logoUrl}" alt="icon" />
|
|
996
995
|
</div>
|
|
997
996
|
`, document.body.appendChild(this.floatingBlock);
|
|
998
997
|
}
|
|
@@ -1011,7 +1010,7 @@ class $e {
|
|
|
1011
1010
|
<div>
|
|
1012
1011
|
${t.showCopyIcon ? `
|
|
1013
1012
|
<div class="tiny-remoter-copy-icon" id="${t.action}" data-action="${t.action}">
|
|
1014
|
-
<img src="${
|
|
1013
|
+
<img src="${Ue}"/>
|
|
1015
1014
|
</div>
|
|
1016
1015
|
` : ""}
|
|
1017
1016
|
</div>
|
|
@@ -1024,7 +1023,15 @@ class $e {
|
|
|
1024
1023
|
}
|
|
1025
1024
|
bindEvents() {
|
|
1026
1025
|
this.floatingBlock.addEventListener("click", () => {
|
|
1027
|
-
this.
|
|
1026
|
+
this.showAIChat();
|
|
1027
|
+
}), this.floatingBlock.addEventListener("mouseenter", () => {
|
|
1028
|
+
this.openDropdown(), this.closingTimer && (window.clearTimeout(this.closingTimer), this.closingTimer = 0);
|
|
1029
|
+
}), this.floatingBlock.addEventListener("mouseleave", () => {
|
|
1030
|
+
this.shouldCloseDropdown();
|
|
1031
|
+
}), this.dropdownMenu.addEventListener("mouseenter", (e) => {
|
|
1032
|
+
this.closingTimer && (window.clearTimeout(this.closingTimer), this.closingTimer = 0);
|
|
1033
|
+
}), this.dropdownMenu.addEventListener("mouseleave", (e) => {
|
|
1034
|
+
this.shouldCloseDropdown();
|
|
1028
1035
|
}), this.dropdownMenu.addEventListener("click", (e) => {
|
|
1029
1036
|
const t = e.target, s = t.closest(".tiny-remoter-copy-icon");
|
|
1030
1037
|
if (s) {
|
|
@@ -1042,12 +1049,15 @@ class $e {
|
|
|
1042
1049
|
e.key === "Escape" && this.closeDropdown();
|
|
1043
1050
|
});
|
|
1044
1051
|
}
|
|
1045
|
-
toggleDropdown() {
|
|
1046
|
-
this.isExpanded ? this.closeDropdown() : this.openDropdown();
|
|
1047
|
-
}
|
|
1048
1052
|
openDropdown() {
|
|
1049
|
-
this.isExpanded = !0, this.floatingBlock.classList.add("expanded"), this.dropdownMenu.classList.add("show");
|
|
1053
|
+
!this.menuItems || this.menuItems && this.menuItems.length === 0 || (this.isExpanded = !0, this.floatingBlock.classList.add("expanded"), this.dropdownMenu.classList.add("show"));
|
|
1054
|
+
}
|
|
1055
|
+
shouldCloseDropdown() {
|
|
1056
|
+
this.closingTimer = window.setTimeout(() => {
|
|
1057
|
+
this.closeDropdown();
|
|
1058
|
+
}, 300);
|
|
1050
1059
|
}
|
|
1060
|
+
/** 真正的立即关闭 */
|
|
1051
1061
|
closeDropdown() {
|
|
1052
1062
|
this.isExpanded = !1, this.floatingBlock.classList.remove("expanded"), this.dropdownMenu.classList.remove("show");
|
|
1053
1063
|
}
|
|
@@ -1560,23 +1570,23 @@ class $e {
|
|
|
1560
1570
|
this.floatingBlock.parentNode && this.floatingBlock.parentNode.removeChild(this.floatingBlock), this.dropdownMenu.parentNode && this.dropdownMenu.parentNode.removeChild(this.dropdownMenu);
|
|
1561
1571
|
}
|
|
1562
1572
|
}
|
|
1563
|
-
const
|
|
1564
|
-
class
|
|
1573
|
+
const I0 = (r = {}) => new qe(r);
|
|
1574
|
+
class v2 extends Error {
|
|
1565
1575
|
constructor(e, t) {
|
|
1566
1576
|
super(e), this.name = "ParseError", this.type = t.type, this.field = t.field, this.value = t.value, this.line = t.line;
|
|
1567
1577
|
}
|
|
1568
1578
|
}
|
|
1569
1579
|
function e2(r) {
|
|
1570
1580
|
}
|
|
1571
|
-
function
|
|
1581
|
+
function je(r) {
|
|
1572
1582
|
if (typeof r == "function")
|
|
1573
1583
|
throw new TypeError(
|
|
1574
1584
|
"`callbacks` must be an object, got a function instead. Did you mean `{onEvent: fn}`?"
|
|
1575
1585
|
);
|
|
1576
1586
|
const { onEvent: e = e2, onError: t = e2, onRetry: s = e2, onComment: i } = r;
|
|
1577
|
-
let n = "", a = !0,
|
|
1587
|
+
let n = "", a = !0, h, c = "", l = "";
|
|
1578
1588
|
function d(u) {
|
|
1579
|
-
const m = a ? u.replace(/^\xEF\xBB\xBF/, "") : u, [w, v] =
|
|
1589
|
+
const m = a ? u.replace(/^\xEF\xBB\xBF/, "") : u, [w, v] = He(`${n}${m}`);
|
|
1580
1590
|
for (const _ of w)
|
|
1581
1591
|
g(_);
|
|
1582
1592
|
n = v, a = !1;
|
|
@@ -1601,18 +1611,18 @@ function qe(r) {
|
|
|
1601
1611
|
function p(u, m, w) {
|
|
1602
1612
|
switch (u) {
|
|
1603
1613
|
case "event":
|
|
1604
|
-
|
|
1614
|
+
l = m;
|
|
1605
1615
|
break;
|
|
1606
1616
|
case "data":
|
|
1607
|
-
|
|
1617
|
+
c = `${c}${m}
|
|
1608
1618
|
`;
|
|
1609
1619
|
break;
|
|
1610
1620
|
case "id":
|
|
1611
|
-
|
|
1621
|
+
h = m.includes("\0") ? void 0 : m;
|
|
1612
1622
|
break;
|
|
1613
1623
|
case "retry":
|
|
1614
1624
|
/^\d+$/.test(m) ? s(parseInt(m, 10)) : t(
|
|
1615
|
-
new
|
|
1625
|
+
new v2(`Invalid \`retry\` value: "${m}"`, {
|
|
1616
1626
|
type: "invalid-retry",
|
|
1617
1627
|
value: m,
|
|
1618
1628
|
line: w
|
|
@@ -1621,7 +1631,7 @@ function qe(r) {
|
|
|
1621
1631
|
break;
|
|
1622
1632
|
default:
|
|
1623
1633
|
t(
|
|
1624
|
-
new
|
|
1634
|
+
new v2(
|
|
1625
1635
|
`Unknown field "${u.length > 20 ? `${u.slice(0, 20)}…` : u}"`,
|
|
1626
1636
|
{ type: "unknown-field", field: u, value: m, line: w }
|
|
1627
1637
|
)
|
|
@@ -1630,21 +1640,21 @@ function qe(r) {
|
|
|
1630
1640
|
}
|
|
1631
1641
|
}
|
|
1632
1642
|
function C() {
|
|
1633
|
-
|
|
1634
|
-
id:
|
|
1635
|
-
event:
|
|
1643
|
+
c.length > 0 && e({
|
|
1644
|
+
id: h,
|
|
1645
|
+
event: l || void 0,
|
|
1636
1646
|
// If the data buffer's last character is a U+000A LINE FEED (LF) character,
|
|
1637
1647
|
// then remove the last character from the data buffer.
|
|
1638
|
-
data:
|
|
1639
|
-
`) ?
|
|
1640
|
-
}),
|
|
1648
|
+
data: c.endsWith(`
|
|
1649
|
+
`) ? c.slice(0, -1) : c
|
|
1650
|
+
}), h = void 0, c = "", l = "";
|
|
1641
1651
|
}
|
|
1642
1652
|
function f(u = {}) {
|
|
1643
|
-
n && u.consume && g(n), a = !0,
|
|
1653
|
+
n && u.consume && g(n), a = !0, h = void 0, c = "", l = "", n = "";
|
|
1644
1654
|
}
|
|
1645
1655
|
return { feed: d, reset: f };
|
|
1646
1656
|
}
|
|
1647
|
-
function
|
|
1657
|
+
function He(r) {
|
|
1648
1658
|
const e = [];
|
|
1649
1659
|
let t = "", s = 0;
|
|
1650
1660
|
for (; s < r.length; ) {
|
|
@@ -1655,8 +1665,8 @@ function je(r) {
|
|
|
1655
1665
|
t = r.slice(s);
|
|
1656
1666
|
break;
|
|
1657
1667
|
} else {
|
|
1658
|
-
const
|
|
1659
|
-
e.push(
|
|
1668
|
+
const h = r.slice(s, a);
|
|
1669
|
+
e.push(h), s = a + 1, r[s - 1] === "\r" && r[s] === `
|
|
1660
1670
|
` && s++;
|
|
1661
1671
|
}
|
|
1662
1672
|
}
|
|
@@ -1667,7 +1677,7 @@ class o2 extends TransformStream {
|
|
|
1667
1677
|
let i;
|
|
1668
1678
|
super({
|
|
1669
1679
|
start(n) {
|
|
1670
|
-
i =
|
|
1680
|
+
i = je({
|
|
1671
1681
|
onEvent: (a) => {
|
|
1672
1682
|
n.enqueue(a);
|
|
1673
1683
|
},
|
|
@@ -1684,7 +1694,7 @@ class o2 extends TransformStream {
|
|
|
1684
1694
|
});
|
|
1685
1695
|
}
|
|
1686
1696
|
}
|
|
1687
|
-
var
|
|
1697
|
+
var Ne = ({
|
|
1688
1698
|
prefix: r,
|
|
1689
1699
|
size: e = 16,
|
|
1690
1700
|
alphabet: t = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",
|
|
@@ -1692,25 +1702,25 @@ var He = ({
|
|
|
1692
1702
|
} = {}) => {
|
|
1693
1703
|
const i = () => {
|
|
1694
1704
|
const n = t.length, a = new Array(e);
|
|
1695
|
-
for (let
|
|
1696
|
-
a[
|
|
1705
|
+
for (let h = 0; h < e; h++)
|
|
1706
|
+
a[h] = t[Math.random() * n | 0];
|
|
1697
1707
|
return a.join("");
|
|
1698
1708
|
};
|
|
1699
1709
|
if (r == null)
|
|
1700
1710
|
return i;
|
|
1701
1711
|
if (t.includes(s))
|
|
1702
|
-
throw new
|
|
1712
|
+
throw new ve({
|
|
1703
1713
|
argument: "separator",
|
|
1704
1714
|
message: `The separator "${s}" must not be part of the alphabet "${t}".`
|
|
1705
1715
|
});
|
|
1706
1716
|
return () => `${r}${s}${i()}`;
|
|
1707
1717
|
};
|
|
1708
|
-
|
|
1709
|
-
function
|
|
1718
|
+
Ne();
|
|
1719
|
+
function k2(r = globalThis) {
|
|
1710
1720
|
var e, t, s;
|
|
1711
1721
|
return r.window ? "runtime/browser" : (e = r.navigator) != null && e.userAgent ? `runtime/${r.navigator.userAgent.toLowerCase()}` : (s = (t = r.process) == null ? void 0 : t.versions) != null && s.node ? `runtime/node.js/${r.process.version.substring(0)}` : r.EdgeRuntime ? "runtime/vercel-edge" : "runtime/unknown";
|
|
1712
1722
|
}
|
|
1713
|
-
function
|
|
1723
|
+
function ze(r) {
|
|
1714
1724
|
if (r == null)
|
|
1715
1725
|
return {};
|
|
1716
1726
|
const e = {};
|
|
@@ -1725,29 +1735,29 @@ function Ne(r) {
|
|
|
1725
1735
|
}
|
|
1726
1736
|
return e;
|
|
1727
1737
|
}
|
|
1728
|
-
function
|
|
1729
|
-
const t = new Headers(
|
|
1738
|
+
function I2(r, ...e) {
|
|
1739
|
+
const t = new Headers(ze(r)), s = t.get("user-agent") || "";
|
|
1730
1740
|
return t.set(
|
|
1731
1741
|
"user-agent",
|
|
1732
1742
|
[s, ...e].filter(Boolean).join(" ")
|
|
1733
1743
|
), Object.fromEntries(t.entries());
|
|
1734
1744
|
}
|
|
1735
|
-
var
|
|
1736
|
-
function
|
|
1745
|
+
var Ze = Symbol.for("vercel.ai.validator");
|
|
1746
|
+
function De(r) {
|
|
1737
1747
|
return { ...r, type: "dynamic" };
|
|
1738
1748
|
}
|
|
1739
1749
|
new Set(
|
|
1740
1750
|
"ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789"
|
|
1741
1751
|
);
|
|
1742
|
-
var
|
|
1743
|
-
function
|
|
1752
|
+
var Fe = Symbol.for("vercel.ai.schema");
|
|
1753
|
+
function Be(r, {
|
|
1744
1754
|
validate: e
|
|
1745
1755
|
} = {}) {
|
|
1746
1756
|
return {
|
|
1747
|
-
[
|
|
1757
|
+
[Fe]: !0,
|
|
1748
1758
|
_type: void 0,
|
|
1749
1759
|
// should never be used directly
|
|
1750
|
-
[
|
|
1760
|
+
[Ze]: !0,
|
|
1751
1761
|
get jsonSchema() {
|
|
1752
1762
|
return typeof r == "function" && (r = r()), r;
|
|
1753
1763
|
},
|
|
@@ -1756,36 +1766,36 @@ function Fe(r, {
|
|
|
1756
1766
|
}
|
|
1757
1767
|
let l2;
|
|
1758
1768
|
l2 = globalThis.crypto;
|
|
1759
|
-
async function
|
|
1769
|
+
async function Ve(r) {
|
|
1760
1770
|
return (await l2).getRandomValues(new Uint8Array(r));
|
|
1761
1771
|
}
|
|
1762
|
-
async function
|
|
1772
|
+
async function Je(r) {
|
|
1763
1773
|
const e = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._~", t = Math.pow(2, 8) - Math.pow(2, 8) % e.length;
|
|
1764
1774
|
let s = "";
|
|
1765
1775
|
for (; s.length < r; ) {
|
|
1766
|
-
const i = await
|
|
1776
|
+
const i = await Ve(r - s.length);
|
|
1767
1777
|
for (const n of i)
|
|
1768
1778
|
n < t && (s += e[n % e.length]);
|
|
1769
1779
|
}
|
|
1770
1780
|
return s;
|
|
1771
1781
|
}
|
|
1772
|
-
async function Je(r) {
|
|
1773
|
-
return await Ve(r);
|
|
1774
|
-
}
|
|
1775
1782
|
async function We(r) {
|
|
1783
|
+
return await Je(r);
|
|
1784
|
+
}
|
|
1785
|
+
async function Ge(r) {
|
|
1776
1786
|
const e = await (await l2).subtle.digest("SHA-256", new TextEncoder().encode(r));
|
|
1777
1787
|
return btoa(String.fromCharCode(...new Uint8Array(e))).replace(/\//g, "_").replace(/\+/g, "-").replace(/=/g, "");
|
|
1778
1788
|
}
|
|
1779
|
-
async function
|
|
1789
|
+
async function Ye(r) {
|
|
1780
1790
|
if (r || (r = 43), r < 43 || r > 128)
|
|
1781
1791
|
throw `Expected a length between 43 and 128. Received ${r}.`;
|
|
1782
|
-
const e = await
|
|
1792
|
+
const e = await We(r), t = await Ge(e);
|
|
1783
1793
|
return {
|
|
1784
1794
|
code_verifier: e,
|
|
1785
1795
|
code_challenge: t
|
|
1786
1796
|
};
|
|
1787
1797
|
}
|
|
1788
|
-
var
|
|
1798
|
+
var Ke = "AI_MCPClientError", U2 = `vercel.ai.error.${Ke}`, Qe = Symbol.for(U2), _2, b2, y = class extends (b2 = Z, _2 = Qe, b2) {
|
|
1789
1799
|
constructor({
|
|
1790
1800
|
name: r = "MCPClientError",
|
|
1791
1801
|
message: e,
|
|
@@ -1793,26 +1803,26 @@ var Ye = "AI_MCPClientError", A2 = `vercel.ai.error.${Ye}`, Ke = Symbol.for(A2),
|
|
|
1793
1803
|
data: s,
|
|
1794
1804
|
code: i
|
|
1795
1805
|
}) {
|
|
1796
|
-
super({ name: r, message: e, cause: t }), this[
|
|
1806
|
+
super({ name: r, message: e, cause: t }), this[_2] = !0, this.data = s, this.code = i;
|
|
1797
1807
|
}
|
|
1798
1808
|
static isInstance(r) {
|
|
1799
|
-
return Z.hasMarker(r,
|
|
1809
|
+
return Z.hasMarker(r, U2);
|
|
1800
1810
|
}
|
|
1801
|
-
}, $ = "2025-06-18",
|
|
1811
|
+
}, $ = "2025-06-18", Xe = [
|
|
1802
1812
|
$,
|
|
1803
1813
|
"2025-03-26",
|
|
1804
1814
|
"2024-11-05"
|
|
1805
|
-
],
|
|
1815
|
+
], et = o.looseObject({
|
|
1806
1816
|
name: o.string(),
|
|
1807
1817
|
version: o.string()
|
|
1808
1818
|
}), Y = o.looseObject({
|
|
1809
1819
|
_meta: o.optional(o.object({}).loose())
|
|
1810
|
-
}),
|
|
1820
|
+
}), R = Y, A2 = o.object({
|
|
1811
1821
|
method: o.string(),
|
|
1812
1822
|
params: o.optional(Y)
|
|
1813
|
-
}),
|
|
1823
|
+
}), O2 = o.object({
|
|
1814
1824
|
applyDefaults: o.optional(o.boolean())
|
|
1815
|
-
}).loose(),
|
|
1825
|
+
}).loose(), tt = o.looseObject({
|
|
1816
1826
|
experimental: o.optional(o.object({}).loose()),
|
|
1817
1827
|
logging: o.optional(o.object({}).loose()),
|
|
1818
1828
|
prompts: o.optional(
|
|
@@ -1831,44 +1841,44 @@ var Ye = "AI_MCPClientError", A2 = `vercel.ai.error.${Ye}`, Ke = Symbol.for(A2),
|
|
|
1831
1841
|
listChanged: o.optional(o.boolean())
|
|
1832
1842
|
})
|
|
1833
1843
|
),
|
|
1834
|
-
elicitation: o.optional(
|
|
1844
|
+
elicitation: o.optional(O2)
|
|
1835
1845
|
});
|
|
1836
1846
|
o.object({
|
|
1837
|
-
elicitation: o.optional(
|
|
1847
|
+
elicitation: o.optional(O2)
|
|
1838
1848
|
}).loose();
|
|
1839
|
-
var
|
|
1849
|
+
var rt = R.extend({
|
|
1840
1850
|
protocolVersion: o.string(),
|
|
1841
|
-
capabilities:
|
|
1842
|
-
serverInfo:
|
|
1851
|
+
capabilities: tt,
|
|
1852
|
+
serverInfo: et,
|
|
1843
1853
|
instructions: o.optional(o.string())
|
|
1844
|
-
}), h2 =
|
|
1854
|
+
}), h2 = R.extend({
|
|
1845
1855
|
nextCursor: o.optional(o.string())
|
|
1846
|
-
}),
|
|
1856
|
+
}), st = o.object({
|
|
1847
1857
|
name: o.string(),
|
|
1848
1858
|
description: o.optional(o.string()),
|
|
1849
1859
|
inputSchema: o.object({
|
|
1850
1860
|
type: o.literal("object"),
|
|
1851
1861
|
properties: o.optional(o.object({}).loose())
|
|
1852
1862
|
}).loose()
|
|
1853
|
-
}).loose(),
|
|
1854
|
-
tools: o.array(
|
|
1855
|
-
}),
|
|
1863
|
+
}).loose(), ot = h2.extend({
|
|
1864
|
+
tools: o.array(st)
|
|
1865
|
+
}), $2 = o.object({
|
|
1856
1866
|
type: o.literal("text"),
|
|
1857
1867
|
text: o.string()
|
|
1858
|
-
}).loose(),
|
|
1868
|
+
}).loose(), q2 = o.object({
|
|
1859
1869
|
type: o.literal("image"),
|
|
1860
1870
|
data: o.base64(),
|
|
1861
1871
|
mimeType: o.string()
|
|
1862
|
-
}).loose(),
|
|
1872
|
+
}).loose(), it = o.object({
|
|
1863
1873
|
uri: o.string(),
|
|
1864
1874
|
name: o.string(),
|
|
1865
1875
|
title: o.optional(o.string()),
|
|
1866
1876
|
description: o.optional(o.string()),
|
|
1867
1877
|
mimeType: o.optional(o.string()),
|
|
1868
1878
|
size: o.optional(o.number())
|
|
1869
|
-
}).loose(),
|
|
1870
|
-
resources: o.array(
|
|
1871
|
-
}),
|
|
1879
|
+
}).loose(), nt = h2.extend({
|
|
1880
|
+
resources: o.array(it)
|
|
1881
|
+
}), j2 = o.object({
|
|
1872
1882
|
/**
|
|
1873
1883
|
* The URI of this resource.
|
|
1874
1884
|
*/
|
|
@@ -1885,76 +1895,76 @@ var tt = M.extend({
|
|
|
1885
1895
|
* The MIME type of this resource, if known.
|
|
1886
1896
|
*/
|
|
1887
1897
|
mimeType: o.optional(o.string())
|
|
1888
|
-
}).loose(),
|
|
1898
|
+
}).loose(), H2 = j2.extend({
|
|
1889
1899
|
text: o.string()
|
|
1890
|
-
}),
|
|
1900
|
+
}), N2 = j2.extend({
|
|
1891
1901
|
blob: o.base64()
|
|
1892
|
-
}),
|
|
1902
|
+
}), z2 = o.object({
|
|
1893
1903
|
type: o.literal("resource"),
|
|
1894
|
-
resource: o.union([
|
|
1895
|
-
}).loose(),
|
|
1904
|
+
resource: o.union([H2, N2])
|
|
1905
|
+
}).loose(), at = R.extend({
|
|
1896
1906
|
content: o.array(
|
|
1897
|
-
o.union([
|
|
1907
|
+
o.union([$2, q2, z2])
|
|
1898
1908
|
),
|
|
1899
1909
|
isError: o.boolean().default(!1).optional()
|
|
1900
1910
|
}).or(
|
|
1901
|
-
|
|
1911
|
+
R.extend({
|
|
1902
1912
|
toolResult: o.unknown()
|
|
1903
1913
|
})
|
|
1904
|
-
),
|
|
1914
|
+
), ct = o.object({
|
|
1905
1915
|
uriTemplate: o.string(),
|
|
1906
1916
|
name: o.string(),
|
|
1907
1917
|
title: o.optional(o.string()),
|
|
1908
1918
|
description: o.optional(o.string()),
|
|
1909
1919
|
mimeType: o.optional(o.string())
|
|
1910
|
-
}).loose(),
|
|
1911
|
-
resourceTemplates: o.array(
|
|
1912
|
-
}),
|
|
1920
|
+
}).loose(), lt = R.extend({
|
|
1921
|
+
resourceTemplates: o.array(ct)
|
|
1922
|
+
}), ht = R.extend({
|
|
1913
1923
|
contents: o.array(
|
|
1914
|
-
o.union([
|
|
1924
|
+
o.union([H2, N2])
|
|
1915
1925
|
)
|
|
1916
|
-
}),
|
|
1926
|
+
}), dt = o.object({
|
|
1917
1927
|
name: o.string(),
|
|
1918
1928
|
description: o.optional(o.string()),
|
|
1919
1929
|
required: o.optional(o.boolean())
|
|
1920
|
-
}).loose(),
|
|
1930
|
+
}).loose(), pt = o.object({
|
|
1921
1931
|
name: o.string(),
|
|
1922
1932
|
title: o.optional(o.string()),
|
|
1923
1933
|
description: o.optional(o.string()),
|
|
1924
|
-
arguments: o.optional(o.array(
|
|
1925
|
-
}).loose(),
|
|
1926
|
-
prompts: o.array(
|
|
1927
|
-
}),
|
|
1934
|
+
arguments: o.optional(o.array(dt))
|
|
1935
|
+
}).loose(), ut = h2.extend({
|
|
1936
|
+
prompts: o.array(pt)
|
|
1937
|
+
}), mt = o.object({
|
|
1928
1938
|
role: o.union([o.literal("user"), o.literal("assistant")]),
|
|
1929
1939
|
content: o.union([
|
|
1940
|
+
$2,
|
|
1930
1941
|
q2,
|
|
1931
|
-
|
|
1932
|
-
Z2
|
|
1942
|
+
z2
|
|
1933
1943
|
])
|
|
1934
|
-
}).loose(),
|
|
1944
|
+
}).loose(), gt = R.extend({
|
|
1935
1945
|
description: o.optional(o.string()),
|
|
1936
|
-
messages: o.array(
|
|
1937
|
-
}),
|
|
1946
|
+
messages: o.array(mt)
|
|
1947
|
+
}), ft = Y.extend({
|
|
1938
1948
|
message: o.string(),
|
|
1939
1949
|
requestedSchema: o.unknown()
|
|
1940
|
-
}),
|
|
1950
|
+
}), x2 = A2.extend({
|
|
1941
1951
|
method: o.literal("elicitation/create"),
|
|
1942
|
-
params:
|
|
1943
|
-
}),
|
|
1952
|
+
params: ft
|
|
1953
|
+
}), Ct = R.extend({
|
|
1944
1954
|
action: o.union([
|
|
1945
1955
|
o.literal("accept"),
|
|
1946
1956
|
o.literal("decline"),
|
|
1947
1957
|
o.literal("cancel")
|
|
1948
1958
|
]),
|
|
1949
1959
|
content: o.optional(o.record(o.string(), o.unknown()))
|
|
1950
|
-
}), K = "2.0",
|
|
1960
|
+
}), K = "2.0", wt = o.object({
|
|
1951
1961
|
jsonrpc: o.literal(K),
|
|
1952
1962
|
id: o.union([o.string(), o.number().int()])
|
|
1953
|
-
}).merge(
|
|
1963
|
+
}).merge(A2).strict(), yt = o.object({
|
|
1954
1964
|
jsonrpc: o.literal(K),
|
|
1955
1965
|
id: o.union([o.string(), o.number().int()]),
|
|
1956
|
-
result:
|
|
1957
|
-
}).strict(),
|
|
1966
|
+
result: R
|
|
1967
|
+
}).strict(), vt = o.object({
|
|
1958
1968
|
jsonrpc: o.literal(K),
|
|
1959
1969
|
id: o.union([o.string(), o.number().int()]),
|
|
1960
1970
|
error: o.object({
|
|
@@ -1962,7 +1972,7 @@ var tt = M.extend({
|
|
|
1962
1972
|
message: o.string(),
|
|
1963
1973
|
data: o.optional(o.unknown())
|
|
1964
1974
|
})
|
|
1965
|
-
}).strict(),
|
|
1975
|
+
}).strict(), _t = o.object({
|
|
1966
1976
|
jsonrpc: o.literal(K)
|
|
1967
1977
|
}).merge(
|
|
1968
1978
|
o.object({
|
|
@@ -1970,11 +1980,11 @@ var tt = M.extend({
|
|
|
1970
1980
|
params: o.optional(Y)
|
|
1971
1981
|
})
|
|
1972
1982
|
).strict(), q = o.union([
|
|
1973
|
-
Ct,
|
|
1974
|
-
vt,
|
|
1975
1983
|
wt,
|
|
1976
|
-
|
|
1977
|
-
|
|
1984
|
+
_t,
|
|
1985
|
+
yt,
|
|
1986
|
+
vt
|
|
1987
|
+
]), Z2 = typeof __PACKAGE_VERSION__ < "u" ? __PACKAGE_VERSION__ : "0.0.0-test", D2 = o.object({
|
|
1978
1988
|
access_token: o.string(),
|
|
1979
1989
|
id_token: o.string().optional(),
|
|
1980
1990
|
// Optional for OAuth 2.1, but necessary in OpenID Connect
|
|
@@ -1995,7 +2005,7 @@ var tt = M.extend({
|
|
|
1995
2005
|
return e.protocol !== "javascript:" && e.protocol !== "data:" && e.protocol !== "vbscript:";
|
|
1996
2006
|
},
|
|
1997
2007
|
{ message: "URL cannot use javascript:, data:, or vbscript: scheme" }
|
|
1998
|
-
),
|
|
2008
|
+
), bt = o.object({
|
|
1999
2009
|
resource: o.string().url(),
|
|
2000
2010
|
authorization_servers: o.array(x).optional(),
|
|
2001
2011
|
jwks_uri: o.string().url().optional(),
|
|
@@ -2010,7 +2020,7 @@ var tt = M.extend({
|
|
|
2010
2020
|
authorization_details_types_supported: o.array(o.string()).optional(),
|
|
2011
2021
|
dpop_signing_alg_values_supported: o.array(o.string()).optional(),
|
|
2012
2022
|
dpop_bound_access_tokens_required: o.boolean().optional()
|
|
2013
|
-
}).passthrough(),
|
|
2023
|
+
}).passthrough(), F2 = o.object({
|
|
2014
2024
|
issuer: o.string(),
|
|
2015
2025
|
authorization_endpoint: x,
|
|
2016
2026
|
token_endpoint: x,
|
|
@@ -2021,7 +2031,7 @@ var tt = M.extend({
|
|
|
2021
2031
|
code_challenge_methods_supported: o.array(o.string()),
|
|
2022
2032
|
token_endpoint_auth_methods_supported: o.array(o.string()).optional(),
|
|
2023
2033
|
token_endpoint_auth_signing_alg_values_supported: o.array(o.string()).optional()
|
|
2024
|
-
}).passthrough(),
|
|
2034
|
+
}).passthrough(), xt = o.object({
|
|
2025
2035
|
issuer: o.string(),
|
|
2026
2036
|
authorization_endpoint: x,
|
|
2027
2037
|
token_endpoint: x,
|
|
@@ -2035,16 +2045,16 @@ var tt = M.extend({
|
|
|
2035
2045
|
id_token_signing_alg_values_supported: o.array(o.string()),
|
|
2036
2046
|
claims_supported: o.array(o.string()).optional(),
|
|
2037
2047
|
token_endpoint_auth_methods_supported: o.array(o.string()).optional()
|
|
2038
|
-
}).passthrough(),
|
|
2039
|
-
|
|
2048
|
+
}).passthrough(), Lt = xt.merge(
|
|
2049
|
+
F2.pick({
|
|
2040
2050
|
code_challenge_methods_supported: !0
|
|
2041
2051
|
})
|
|
2042
|
-
),
|
|
2052
|
+
), St = o.object({
|
|
2043
2053
|
client_id: o.string(),
|
|
2044
2054
|
client_secret: o.string().optional(),
|
|
2045
2055
|
client_id_issued_at: o.number().optional(),
|
|
2046
2056
|
client_secret_expires_at: o.number().optional()
|
|
2047
|
-
}).strip(),
|
|
2057
|
+
}).strip(), Tt = o.object({
|
|
2048
2058
|
redirect_uris: o.array(x),
|
|
2049
2059
|
token_endpoint_auth_method: o.string().optional(),
|
|
2050
2060
|
grant_types: o.array(o.string()).optional(),
|
|
@@ -2061,22 +2071,22 @@ var tt = M.extend({
|
|
|
2061
2071
|
software_id: o.string().optional(),
|
|
2062
2072
|
software_version: o.string().optional(),
|
|
2063
2073
|
software_statement: o.string().optional()
|
|
2064
|
-
}).strip(),
|
|
2074
|
+
}).strip(), Mt = o.object({
|
|
2065
2075
|
error: o.string(),
|
|
2066
2076
|
error_description: o.string().optional(),
|
|
2067
2077
|
error_uri: o.string().optional()
|
|
2068
|
-
}),
|
|
2069
|
-
|
|
2070
|
-
),
|
|
2078
|
+
}), Rt = Tt.merge(
|
|
2079
|
+
St
|
|
2080
|
+
), Et = "AI_MCPClientOAuthError", B2 = `vercel.ai.error.${Et}`, Pt = Symbol.for(B2), L2, S2, j = class extends (S2 = Z, L2 = Pt, S2) {
|
|
2071
2081
|
constructor({
|
|
2072
2082
|
name: r = "MCPClientOAuthError",
|
|
2073
2083
|
message: e,
|
|
2074
2084
|
cause: t
|
|
2075
2085
|
}) {
|
|
2076
|
-
super({ name: r, message: e, cause: t }), this[
|
|
2086
|
+
super({ name: r, message: e, cause: t }), this[L2] = !0;
|
|
2077
2087
|
}
|
|
2078
2088
|
static isInstance(r) {
|
|
2079
|
-
return Z.hasMarker(r,
|
|
2089
|
+
return Z.hasMarker(r, B2);
|
|
2080
2090
|
}
|
|
2081
2091
|
}, O = class extends j {
|
|
2082
2092
|
};
|
|
@@ -2090,17 +2100,17 @@ F.errorCode = "invalid_grant";
|
|
|
2090
2100
|
var B = class extends j {
|
|
2091
2101
|
};
|
|
2092
2102
|
B.errorCode = "unauthorized_client";
|
|
2093
|
-
var
|
|
2103
|
+
var kt = {
|
|
2094
2104
|
[O.errorCode]: O,
|
|
2095
2105
|
[D.errorCode]: D,
|
|
2096
2106
|
[F.errorCode]: F,
|
|
2097
2107
|
[B.errorCode]: B
|
|
2098
2108
|
};
|
|
2099
|
-
function
|
|
2109
|
+
function It(r) {
|
|
2100
2110
|
const e = typeof r == "string" ? new URL(r) : new URL(r.href);
|
|
2101
2111
|
return e.hash = "", e;
|
|
2102
2112
|
}
|
|
2103
|
-
function
|
|
2113
|
+
function Ut({
|
|
2104
2114
|
requestedResource: r,
|
|
2105
2115
|
configuredResource: e
|
|
2106
2116
|
}) {
|
|
@@ -2131,7 +2141,7 @@ function J(r) {
|
|
|
2131
2141
|
return;
|
|
2132
2142
|
}
|
|
2133
2143
|
}
|
|
2134
|
-
function
|
|
2144
|
+
function At(r, e = "", t = {}) {
|
|
2135
2145
|
return e.endsWith("/") && (e = e.slice(0, -1)), t.prependPathname ? `${e}/.well-known/${r}` : `/.well-known/${r}${e}`;
|
|
2136
2146
|
}
|
|
2137
2147
|
async function d2(r, e, t = fetch) {
|
|
@@ -2148,28 +2158,28 @@ async function T2(r, e, t = fetch) {
|
|
|
2148
2158
|
"MCP-Protocol-Version": e
|
|
2149
2159
|
}, t);
|
|
2150
2160
|
}
|
|
2151
|
-
function
|
|
2161
|
+
function Ot(r, e) {
|
|
2152
2162
|
return !r || r.status >= 400 && r.status < 500 && e !== "/";
|
|
2153
2163
|
}
|
|
2154
|
-
async function
|
|
2164
|
+
async function $t(r, e, t, s) {
|
|
2155
2165
|
var i, n;
|
|
2156
|
-
const a = new URL(r),
|
|
2157
|
-
let
|
|
2166
|
+
const a = new URL(r), h = (i = s?.protocolVersion) != null ? i : $;
|
|
2167
|
+
let c;
|
|
2158
2168
|
if (s?.metadataUrl)
|
|
2159
|
-
|
|
2169
|
+
c = new URL(s.metadataUrl);
|
|
2160
2170
|
else {
|
|
2161
|
-
const d =
|
|
2162
|
-
|
|
2171
|
+
const d = At(e, a.pathname);
|
|
2172
|
+
c = new URL(d, (n = s?.metadataServerUrl) != null ? n : a), c.search = a.search;
|
|
2163
2173
|
}
|
|
2164
|
-
let
|
|
2165
|
-
if (!s?.metadataUrl &&
|
|
2174
|
+
let l = await T2(c, h, t);
|
|
2175
|
+
if (!s?.metadataUrl && Ot(l, a.pathname)) {
|
|
2166
2176
|
const d = new URL(`/.well-known/${e}`, a);
|
|
2167
|
-
|
|
2177
|
+
l = await T2(d, h, t);
|
|
2168
2178
|
}
|
|
2169
|
-
return
|
|
2179
|
+
return l;
|
|
2170
2180
|
}
|
|
2171
|
-
async function
|
|
2172
|
-
const s = await
|
|
2181
|
+
async function qt(r, e, t = fetch) {
|
|
2182
|
+
const s = await $t(
|
|
2173
2183
|
r,
|
|
2174
2184
|
"oauth-protected-resource",
|
|
2175
2185
|
t,
|
|
@@ -2186,9 +2196,9 @@ async function $t(r, e, t = fetch) {
|
|
|
2186
2196
|
throw new Error(
|
|
2187
2197
|
`HTTP ${s.status} trying to load well-known OAuth protected resource metadata.`
|
|
2188
2198
|
);
|
|
2189
|
-
return
|
|
2199
|
+
return bt.parse(await s.json());
|
|
2190
2200
|
}
|
|
2191
|
-
function
|
|
2201
|
+
function jt(r) {
|
|
2192
2202
|
const e = typeof r == "string" ? new URL(r) : r, t = e.pathname !== "/", s = [];
|
|
2193
2203
|
if (!t)
|
|
2194
2204
|
return s.push({
|
|
@@ -2216,38 +2226,38 @@ function qt(r) {
|
|
|
2216
2226
|
type: "oidc"
|
|
2217
2227
|
}), s;
|
|
2218
2228
|
}
|
|
2219
|
-
async function
|
|
2229
|
+
async function Ht(r, {
|
|
2220
2230
|
fetchFn: e = fetch,
|
|
2221
2231
|
protocolVersion: t = $
|
|
2222
2232
|
} = {}) {
|
|
2223
2233
|
var s;
|
|
2224
|
-
const i = { "MCP-Protocol-Version": t }, n =
|
|
2225
|
-
for (const { url: a, type:
|
|
2226
|
-
const
|
|
2227
|
-
if (
|
|
2228
|
-
if (!
|
|
2229
|
-
if (
|
|
2234
|
+
const i = { "MCP-Protocol-Version": t }, n = jt(r);
|
|
2235
|
+
for (const { url: a, type: h } of n) {
|
|
2236
|
+
const c = await d2(a, i, e);
|
|
2237
|
+
if (c) {
|
|
2238
|
+
if (!c.ok) {
|
|
2239
|
+
if (c.status >= 400 && c.status < 500)
|
|
2230
2240
|
continue;
|
|
2231
2241
|
throw new Error(
|
|
2232
|
-
`HTTP ${
|
|
2242
|
+
`HTTP ${c.status} trying to load ${h === "oauth" ? "OAuth" : "OpenID provider"} metadata from ${a}`
|
|
2233
2243
|
);
|
|
2234
2244
|
}
|
|
2235
|
-
if (
|
|
2236
|
-
return
|
|
2245
|
+
if (h === "oauth")
|
|
2246
|
+
return F2.parse(await c.json());
|
|
2237
2247
|
{
|
|
2238
|
-
const
|
|
2239
|
-
await
|
|
2248
|
+
const l = Lt.parse(
|
|
2249
|
+
await c.json()
|
|
2240
2250
|
);
|
|
2241
|
-
if (!((s =
|
|
2251
|
+
if (!((s = l.code_challenge_methods_supported) != null && s.includes("S256")))
|
|
2242
2252
|
throw new Error(
|
|
2243
2253
|
`Incompatible OIDC provider at ${a}: does not support S256 code challenge method required by MCP specification`
|
|
2244
2254
|
);
|
|
2245
|
-
return
|
|
2255
|
+
return l;
|
|
2246
2256
|
}
|
|
2247
2257
|
}
|
|
2248
2258
|
}
|
|
2249
2259
|
}
|
|
2250
|
-
async function
|
|
2260
|
+
async function Nt(r, {
|
|
2251
2261
|
metadata: e,
|
|
2252
2262
|
clientInformation: t,
|
|
2253
2263
|
redirectUrl: s,
|
|
@@ -2255,46 +2265,46 @@ async function Ht(r, {
|
|
|
2255
2265
|
state: n,
|
|
2256
2266
|
resource: a
|
|
2257
2267
|
}) {
|
|
2258
|
-
const
|
|
2259
|
-
let
|
|
2268
|
+
const h = "code", c = "S256";
|
|
2269
|
+
let l;
|
|
2260
2270
|
if (e) {
|
|
2261
|
-
if (
|
|
2271
|
+
if (l = new URL(e.authorization_endpoint), !e.response_types_supported.includes(h))
|
|
2262
2272
|
throw new Error(
|
|
2263
|
-
`Incompatible auth server: does not support response type ${
|
|
2273
|
+
`Incompatible auth server: does not support response type ${h}`
|
|
2264
2274
|
);
|
|
2265
|
-
if (!e.code_challenge_methods_supported || !e.code_challenge_methods_supported.includes(
|
|
2275
|
+
if (!e.code_challenge_methods_supported || !e.code_challenge_methods_supported.includes(c))
|
|
2266
2276
|
throw new Error(
|
|
2267
|
-
`Incompatible auth server: does not support code challenge method ${
|
|
2277
|
+
`Incompatible auth server: does not support code challenge method ${c}`
|
|
2268
2278
|
);
|
|
2269
2279
|
} else
|
|
2270
|
-
|
|
2271
|
-
const d = await
|
|
2272
|
-
return
|
|
2280
|
+
l = new URL("/authorize", r);
|
|
2281
|
+
const d = await Ye(), g = d.code_verifier, p = d.code_challenge;
|
|
2282
|
+
return l.searchParams.set("response_type", h), l.searchParams.set("client_id", t.client_id), l.searchParams.set("code_challenge", p), l.searchParams.set(
|
|
2273
2283
|
"code_challenge_method",
|
|
2274
|
-
|
|
2275
|
-
),
|
|
2284
|
+
c
|
|
2285
|
+
), l.searchParams.set("redirect_uri", String(s)), n && l.searchParams.set("state", n), i && l.searchParams.set("scope", i), i?.includes("offline_access") && l.searchParams.append("prompt", "consent"), a && l.searchParams.set("resource", a.href), { authorizationUrl: l, codeVerifier: g };
|
|
2276
2286
|
}
|
|
2277
|
-
function
|
|
2287
|
+
function V2(r, e) {
|
|
2278
2288
|
const t = r.client_secret !== void 0;
|
|
2279
2289
|
return e.length === 0 ? t ? "client_secret_post" : "none" : t && e.includes("client_secret_basic") ? "client_secret_basic" : t && e.includes("client_secret_post") ? "client_secret_post" : e.includes("none") ? "none" : t ? "client_secret_post" : "none";
|
|
2280
2290
|
}
|
|
2281
|
-
function
|
|
2291
|
+
function J2(r, e, t, s) {
|
|
2282
2292
|
const { client_id: i, client_secret: n } = e;
|
|
2283
2293
|
switch (r) {
|
|
2284
2294
|
case "client_secret_basic":
|
|
2285
|
-
|
|
2295
|
+
zt(i, n, t);
|
|
2286
2296
|
return;
|
|
2287
2297
|
case "client_secret_post":
|
|
2288
|
-
|
|
2298
|
+
Zt(i, n, s);
|
|
2289
2299
|
return;
|
|
2290
2300
|
case "none":
|
|
2291
|
-
|
|
2301
|
+
Dt(i, s);
|
|
2292
2302
|
return;
|
|
2293
2303
|
default:
|
|
2294
2304
|
throw new Error(`Unsupported client authentication method: ${r}`);
|
|
2295
2305
|
}
|
|
2296
2306
|
}
|
|
2297
|
-
function
|
|
2307
|
+
function zt(r, e, t) {
|
|
2298
2308
|
if (!e)
|
|
2299
2309
|
throw new Error(
|
|
2300
2310
|
"client_secret_basic authentication requires a client_secret"
|
|
@@ -2302,17 +2312,17 @@ function Nt(r, e, t) {
|
|
|
2302
2312
|
const s = btoa(`${r}:${e}`);
|
|
2303
2313
|
t.set("Authorization", `Basic ${s}`);
|
|
2304
2314
|
}
|
|
2305
|
-
function
|
|
2315
|
+
function Zt(r, e, t) {
|
|
2306
2316
|
t.set("client_id", r), e && t.set("client_secret", e);
|
|
2307
2317
|
}
|
|
2308
|
-
function
|
|
2318
|
+
function Dt(r, e) {
|
|
2309
2319
|
e.set("client_id", r);
|
|
2310
2320
|
}
|
|
2311
2321
|
async function p2(r) {
|
|
2312
2322
|
const e = r instanceof Response ? r.status : void 0, t = r instanceof Response ? await r.text() : r;
|
|
2313
2323
|
try {
|
|
2314
|
-
const s =
|
|
2315
|
-
return new
|
|
2324
|
+
const s = Mt.parse(JSON.parse(t)), { error: i, error_description: n, error_uri: a } = s, h = kt[i] || O;
|
|
2325
|
+
return new h({
|
|
2316
2326
|
message: n || "",
|
|
2317
2327
|
cause: a
|
|
2318
2328
|
});
|
|
@@ -2321,17 +2331,17 @@ async function p2(r) {
|
|
|
2321
2331
|
return new O({ message: i });
|
|
2322
2332
|
}
|
|
2323
2333
|
}
|
|
2324
|
-
async function
|
|
2334
|
+
async function Ft(r, {
|
|
2325
2335
|
metadata: e,
|
|
2326
2336
|
clientInformation: t,
|
|
2327
2337
|
authorizationCode: s,
|
|
2328
2338
|
codeVerifier: i,
|
|
2329
2339
|
redirectUri: n,
|
|
2330
2340
|
resource: a,
|
|
2331
|
-
addClientAuthentication:
|
|
2332
|
-
fetchFn:
|
|
2341
|
+
addClientAuthentication: h,
|
|
2342
|
+
fetchFn: c
|
|
2333
2343
|
}) {
|
|
2334
|
-
var
|
|
2344
|
+
var l;
|
|
2335
2345
|
const d = "authorization_code", g = e?.token_endpoint ? new URL(e.token_endpoint) : new URL("/token", r);
|
|
2336
2346
|
if (e?.grant_types_supported && !e.grant_types_supported.includes(d))
|
|
2337
2347
|
throw new Error(
|
|
@@ -2346,26 +2356,26 @@ async function Dt(r, {
|
|
|
2346
2356
|
code_verifier: i,
|
|
2347
2357
|
redirect_uri: String(n)
|
|
2348
2358
|
});
|
|
2349
|
-
if (
|
|
2350
|
-
|
|
2359
|
+
if (h)
|
|
2360
|
+
h(p, C, r, e);
|
|
2351
2361
|
else {
|
|
2352
|
-
const u = (
|
|
2362
|
+
const u = (l = e?.token_endpoint_auth_methods_supported) != null ? l : [], m = V2(
|
|
2353
2363
|
t,
|
|
2354
2364
|
u
|
|
2355
2365
|
);
|
|
2356
|
-
|
|
2366
|
+
J2(m, t, p, C);
|
|
2357
2367
|
}
|
|
2358
2368
|
a && C.set("resource", a.href);
|
|
2359
|
-
const f = await (
|
|
2369
|
+
const f = await (c ?? fetch)(g, {
|
|
2360
2370
|
method: "POST",
|
|
2361
2371
|
headers: p,
|
|
2362
2372
|
body: C
|
|
2363
2373
|
});
|
|
2364
2374
|
if (!f.ok)
|
|
2365
2375
|
throw await p2(f);
|
|
2366
|
-
return
|
|
2376
|
+
return D2.parse(await f.json());
|
|
2367
2377
|
}
|
|
2368
|
-
async function
|
|
2378
|
+
async function Bt(r, {
|
|
2369
2379
|
metadata: e,
|
|
2370
2380
|
clientInformation: t,
|
|
2371
2381
|
refreshToken: s,
|
|
@@ -2373,45 +2383,45 @@ async function Ft(r, {
|
|
|
2373
2383
|
addClientAuthentication: n,
|
|
2374
2384
|
fetchFn: a
|
|
2375
2385
|
}) {
|
|
2376
|
-
var
|
|
2377
|
-
const
|
|
2378
|
-
let
|
|
2386
|
+
var h;
|
|
2387
|
+
const c = "refresh_token";
|
|
2388
|
+
let l;
|
|
2379
2389
|
if (e) {
|
|
2380
|
-
if (
|
|
2390
|
+
if (l = new URL(e.token_endpoint), e.grant_types_supported && !e.grant_types_supported.includes(c))
|
|
2381
2391
|
throw new Error(
|
|
2382
|
-
`Incompatible auth server: does not support grant type ${
|
|
2392
|
+
`Incompatible auth server: does not support grant type ${c}`
|
|
2383
2393
|
);
|
|
2384
2394
|
} else
|
|
2385
|
-
|
|
2395
|
+
l = new URL("/token", r);
|
|
2386
2396
|
const d = new Headers({
|
|
2387
2397
|
"Content-Type": "application/x-www-form-urlencoded"
|
|
2388
2398
|
}), g = new URLSearchParams({
|
|
2389
|
-
grant_type:
|
|
2399
|
+
grant_type: c,
|
|
2390
2400
|
refresh_token: s
|
|
2391
2401
|
});
|
|
2392
2402
|
if (n)
|
|
2393
2403
|
n(d, g, r, e);
|
|
2394
2404
|
else {
|
|
2395
|
-
const C = (
|
|
2405
|
+
const C = (h = e?.token_endpoint_auth_methods_supported) != null ? h : [], f = V2(
|
|
2396
2406
|
t,
|
|
2397
2407
|
C
|
|
2398
2408
|
);
|
|
2399
|
-
|
|
2409
|
+
J2(f, t, d, g);
|
|
2400
2410
|
}
|
|
2401
2411
|
i && g.set("resource", i.href);
|
|
2402
|
-
const p = await (a ?? fetch)(
|
|
2412
|
+
const p = await (a ?? fetch)(l, {
|
|
2403
2413
|
method: "POST",
|
|
2404
2414
|
headers: d,
|
|
2405
2415
|
body: g
|
|
2406
2416
|
});
|
|
2407
2417
|
if (!p.ok)
|
|
2408
2418
|
throw await p2(p);
|
|
2409
|
-
return
|
|
2419
|
+
return D2.parse({
|
|
2410
2420
|
refresh_token: s,
|
|
2411
2421
|
...await p.json()
|
|
2412
2422
|
});
|
|
2413
2423
|
}
|
|
2414
|
-
async function
|
|
2424
|
+
async function Vt(r, {
|
|
2415
2425
|
metadata: e,
|
|
2416
2426
|
clientMetadata: t,
|
|
2417
2427
|
fetchFn: s
|
|
@@ -2434,7 +2444,7 @@ async function Bt(r, {
|
|
|
2434
2444
|
});
|
|
2435
2445
|
if (!n.ok)
|
|
2436
2446
|
throw await p2(n);
|
|
2437
|
-
return
|
|
2447
|
+
return Rt.parse(await n.json());
|
|
2438
2448
|
}
|
|
2439
2449
|
async function W(r, e) {
|
|
2440
2450
|
var t, s;
|
|
@@ -2448,15 +2458,15 @@ async function W(r, e) {
|
|
|
2448
2458
|
throw i;
|
|
2449
2459
|
}
|
|
2450
2460
|
}
|
|
2451
|
-
async function
|
|
2452
|
-
const s =
|
|
2461
|
+
async function Jt(r, e, t) {
|
|
2462
|
+
const s = It(r);
|
|
2453
2463
|
if (e.validateResourceURL)
|
|
2454
2464
|
return await e.validateResourceURL(
|
|
2455
2465
|
s,
|
|
2456
2466
|
t?.resource
|
|
2457
2467
|
);
|
|
2458
2468
|
if (t) {
|
|
2459
|
-
if (!
|
|
2469
|
+
if (!Ut({
|
|
2460
2470
|
requestedResource: s,
|
|
2461
2471
|
configuredResource: t.resource
|
|
2462
2472
|
}))
|
|
@@ -2473,22 +2483,22 @@ async function t2(r, {
|
|
|
2473
2483
|
resourceMetadataUrl: i,
|
|
2474
2484
|
fetchFn: n
|
|
2475
2485
|
}) {
|
|
2476
|
-
let a,
|
|
2486
|
+
let a, h;
|
|
2477
2487
|
try {
|
|
2478
|
-
a = await
|
|
2488
|
+
a = await qt(
|
|
2479
2489
|
e,
|
|
2480
2490
|
{ resourceMetadataUrl: i },
|
|
2481
2491
|
n
|
|
2482
|
-
), a.authorization_servers && a.authorization_servers.length > 0 && (
|
|
2492
|
+
), a.authorization_servers && a.authorization_servers.length > 0 && (h = a.authorization_servers[0]);
|
|
2483
2493
|
} catch {
|
|
2484
2494
|
}
|
|
2485
|
-
|
|
2486
|
-
const
|
|
2495
|
+
h || (h = e);
|
|
2496
|
+
const c = await Jt(
|
|
2487
2497
|
e,
|
|
2488
2498
|
r,
|
|
2489
2499
|
a
|
|
2490
|
-
),
|
|
2491
|
-
|
|
2500
|
+
), l = await Ht(
|
|
2501
|
+
h,
|
|
2492
2502
|
{
|
|
2493
2503
|
fetchFn: n
|
|
2494
2504
|
}
|
|
@@ -2503,21 +2513,21 @@ async function t2(r, {
|
|
|
2503
2513
|
throw new Error(
|
|
2504
2514
|
"OAuth client information must be saveable for dynamic registration"
|
|
2505
2515
|
);
|
|
2506
|
-
const u = await
|
|
2507
|
-
metadata:
|
|
2516
|
+
const u = await Vt(h, {
|
|
2517
|
+
metadata: l,
|
|
2508
2518
|
clientMetadata: r.clientMetadata,
|
|
2509
2519
|
fetchFn: n
|
|
2510
2520
|
});
|
|
2511
2521
|
await r.saveClientInformation(u), d = u;
|
|
2512
2522
|
}
|
|
2513
2523
|
if (t !== void 0) {
|
|
2514
|
-
const u = await r.codeVerifier(), m = await
|
|
2515
|
-
metadata:
|
|
2524
|
+
const u = await r.codeVerifier(), m = await Ft(h, {
|
|
2525
|
+
metadata: l,
|
|
2516
2526
|
clientInformation: d,
|
|
2517
2527
|
authorizationCode: t,
|
|
2518
2528
|
codeVerifier: u,
|
|
2519
2529
|
redirectUri: r.redirectUrl,
|
|
2520
|
-
resource:
|
|
2530
|
+
resource: c,
|
|
2521
2531
|
addClientAuthentication: r.addClientAuthentication,
|
|
2522
2532
|
fetchFn: n
|
|
2523
2533
|
});
|
|
@@ -2526,11 +2536,11 @@ async function t2(r, {
|
|
|
2526
2536
|
const g = await r.tokens();
|
|
2527
2537
|
if (g?.refresh_token)
|
|
2528
2538
|
try {
|
|
2529
|
-
const u = await
|
|
2530
|
-
metadata:
|
|
2539
|
+
const u = await Bt(h, {
|
|
2540
|
+
metadata: l,
|
|
2531
2541
|
clientInformation: d,
|
|
2532
2542
|
refreshToken: g.refresh_token,
|
|
2533
|
-
resource:
|
|
2543
|
+
resource: c,
|
|
2534
2544
|
addClientAuthentication: r.addClientAuthentication,
|
|
2535
2545
|
fetchFn: n
|
|
2536
2546
|
});
|
|
@@ -2541,20 +2551,20 @@ async function t2(r, {
|
|
|
2541
2551
|
!(!(u instanceof j) || u instanceof O)
|
|
2542
2552
|
) throw u;
|
|
2543
2553
|
}
|
|
2544
|
-
const p = r.state ? await r.state() : void 0, { authorizationUrl: C, codeVerifier: f } = await
|
|
2545
|
-
|
|
2554
|
+
const p = r.state ? await r.state() : void 0, { authorizationUrl: C, codeVerifier: f } = await Nt(
|
|
2555
|
+
h,
|
|
2546
2556
|
{
|
|
2547
|
-
metadata:
|
|
2557
|
+
metadata: l,
|
|
2548
2558
|
clientInformation: d,
|
|
2549
2559
|
state: p,
|
|
2550
2560
|
redirectUrl: r.redirectUrl,
|
|
2551
2561
|
scope: s || r.clientMetadata.scope,
|
|
2552
|
-
resource:
|
|
2562
|
+
resource: c
|
|
2553
2563
|
}
|
|
2554
2564
|
);
|
|
2555
2565
|
return await r.saveCodeVerifier(f), await r.redirectToAuthorization(C), "REDIRECT";
|
|
2556
2566
|
}
|
|
2557
|
-
var
|
|
2567
|
+
var Wt = class {
|
|
2558
2568
|
constructor({
|
|
2559
2569
|
url: r,
|
|
2560
2570
|
headers: e,
|
|
@@ -2572,10 +2582,10 @@ var Jt = class {
|
|
|
2572
2582
|
const t = await this.authProvider.tokens();
|
|
2573
2583
|
t?.access_token && (e.Authorization = `Bearer ${t.access_token}`);
|
|
2574
2584
|
}
|
|
2575
|
-
return
|
|
2585
|
+
return I2(
|
|
2576
2586
|
e,
|
|
2577
|
-
`ai-sdk/${
|
|
2578
|
-
|
|
2587
|
+
`ai-sdk/${Z2}`,
|
|
2588
|
+
k2()
|
|
2579
2589
|
);
|
|
2580
2590
|
}
|
|
2581
2591
|
async start() {
|
|
@@ -2584,12 +2594,12 @@ var Jt = class {
|
|
|
2584
2594
|
return r();
|
|
2585
2595
|
this.abortController = new AbortController();
|
|
2586
2596
|
const t = async (s = !1) => {
|
|
2587
|
-
var i, n, a,
|
|
2597
|
+
var i, n, a, h, c;
|
|
2588
2598
|
try {
|
|
2589
|
-
const
|
|
2599
|
+
const l = await this.commonHeaders({
|
|
2590
2600
|
Accept: "text/event-stream"
|
|
2591
2601
|
}), d = await fetch(this.url.href, {
|
|
2592
|
-
headers:
|
|
2602
|
+
headers: l,
|
|
2593
2603
|
signal: (i = this.abortController) == null ? void 0 : i.signal
|
|
2594
2604
|
});
|
|
2595
2605
|
if (d.status === 401 && this.authProvider && !s) {
|
|
@@ -2613,7 +2623,7 @@ var Jt = class {
|
|
|
2613
2623
|
const u = new y({
|
|
2614
2624
|
message: f
|
|
2615
2625
|
});
|
|
2616
|
-
return (
|
|
2626
|
+
return (h = this.onerror) == null || h.call(this, u), e(u);
|
|
2617
2627
|
}
|
|
2618
2628
|
const p = d.body.pipeThrough(new TextDecoderStream()).pipeThrough(new o2()).getReader(), C = async () => {
|
|
2619
2629
|
var f, u, m;
|
|
@@ -2657,10 +2667,10 @@ var Jt = class {
|
|
|
2657
2667
|
this.sseConnection = {
|
|
2658
2668
|
close: () => p.cancel()
|
|
2659
2669
|
}, C();
|
|
2660
|
-
} catch (
|
|
2661
|
-
if (
|
|
2670
|
+
} catch (l) {
|
|
2671
|
+
if (l instanceof Error && l.name === "AbortError")
|
|
2662
2672
|
return;
|
|
2663
|
-
(
|
|
2673
|
+
(c = this.onerror) == null || c.call(this, l), e(l);
|
|
2664
2674
|
}
|
|
2665
2675
|
};
|
|
2666
2676
|
t();
|
|
@@ -2676,7 +2686,7 @@ var Jt = class {
|
|
|
2676
2686
|
message: "MCP SSE Transport Error: Not connected"
|
|
2677
2687
|
});
|
|
2678
2688
|
const e = this.endpoint, t = async (s = !1) => {
|
|
2679
|
-
var i, n, a,
|
|
2689
|
+
var i, n, a, h, c;
|
|
2680
2690
|
try {
|
|
2681
2691
|
const d = {
|
|
2682
2692
|
method: "POST",
|
|
@@ -2707,17 +2717,17 @@ var Jt = class {
|
|
|
2707
2717
|
const p = await g.text().catch(() => null), C = new y({
|
|
2708
2718
|
message: `MCP SSE Transport Error: POSTing to endpoint (HTTP ${g.status}): ${p}`
|
|
2709
2719
|
});
|
|
2710
|
-
(
|
|
2720
|
+
(h = this.onerror) == null || h.call(this, C);
|
|
2711
2721
|
return;
|
|
2712
2722
|
}
|
|
2713
|
-
} catch (
|
|
2714
|
-
(
|
|
2723
|
+
} catch (l) {
|
|
2724
|
+
(c = this.onerror) == null || c.call(this, l);
|
|
2715
2725
|
return;
|
|
2716
2726
|
}
|
|
2717
2727
|
};
|
|
2718
2728
|
await t();
|
|
2719
2729
|
}
|
|
2720
|
-
},
|
|
2730
|
+
}, Gt = class {
|
|
2721
2731
|
constructor({
|
|
2722
2732
|
url: r,
|
|
2723
2733
|
headers: e,
|
|
@@ -2740,10 +2750,10 @@ var Jt = class {
|
|
|
2740
2750
|
const t = await this.authProvider.tokens();
|
|
2741
2751
|
t?.access_token && (e.Authorization = `Bearer ${t.access_token}`);
|
|
2742
2752
|
}
|
|
2743
|
-
return
|
|
2753
|
+
return I2(
|
|
2744
2754
|
e,
|
|
2745
|
-
`ai-sdk/${
|
|
2746
|
-
|
|
2755
|
+
`ai-sdk/${Z2}`,
|
|
2756
|
+
k2()
|
|
2747
2757
|
);
|
|
2748
2758
|
}
|
|
2749
2759
|
async start() {
|
|
@@ -2772,7 +2782,7 @@ var Jt = class {
|
|
|
2772
2782
|
}
|
|
2773
2783
|
async send(r) {
|
|
2774
2784
|
const e = async (t = !1) => {
|
|
2775
|
-
var s, i, n, a,
|
|
2785
|
+
var s, i, n, a, h, c, l;
|
|
2776
2786
|
try {
|
|
2777
2787
|
const g = {
|
|
2778
2788
|
method: "POST",
|
|
@@ -2820,7 +2830,7 @@ var Jt = class {
|
|
|
2820
2830
|
const _ = new y({
|
|
2821
2831
|
message: "MCP HTTP Transport Error: text/event-stream response without body"
|
|
2822
2832
|
});
|
|
2823
|
-
throw (
|
|
2833
|
+
throw (h = this.onerror) == null || h.call(this, _), _;
|
|
2824
2834
|
}
|
|
2825
2835
|
const w = p.body.pipeThrough(new TextDecoderStream()).pipeThrough(new o2()).getReader();
|
|
2826
2836
|
(async () => {
|
|
@@ -2829,10 +2839,10 @@ var Jt = class {
|
|
|
2829
2839
|
for (; ; ) {
|
|
2830
2840
|
const { done: b, value: E } = await w.read();
|
|
2831
2841
|
if (b) return;
|
|
2832
|
-
const { event: U, data:
|
|
2842
|
+
const { event: U, data: T } = E;
|
|
2833
2843
|
if (U === "message")
|
|
2834
2844
|
try {
|
|
2835
|
-
const P = q.parse(JSON.parse(
|
|
2845
|
+
const P = q.parse(JSON.parse(T));
|
|
2836
2846
|
(_ = this.onmessage) == null || _.call(this, P);
|
|
2837
2847
|
} catch (P) {
|
|
2838
2848
|
const Q = new y({
|
|
@@ -2853,9 +2863,9 @@ var Jt = class {
|
|
|
2853
2863
|
const u = new y({
|
|
2854
2864
|
message: `MCP HTTP Transport Error: Unexpected content type: ${f}`
|
|
2855
2865
|
});
|
|
2856
|
-
throw (
|
|
2866
|
+
throw (c = this.onerror) == null || c.call(this, u), u;
|
|
2857
2867
|
} catch (d) {
|
|
2858
|
-
throw (
|
|
2868
|
+
throw (l = this.onerror) == null || l.call(this, d), d;
|
|
2859
2869
|
}
|
|
2860
2870
|
};
|
|
2861
2871
|
await e();
|
|
@@ -2891,19 +2901,19 @@ var Jt = class {
|
|
|
2891
2901
|
}
|
|
2892
2902
|
// Open optional inbound SSE stream; best-effort and resumable
|
|
2893
2903
|
async openInboundSse(r = !1, e) {
|
|
2894
|
-
var t, s, i, n, a,
|
|
2904
|
+
var t, s, i, n, a, h;
|
|
2895
2905
|
try {
|
|
2896
|
-
const
|
|
2906
|
+
const c = await this.commonHeaders({
|
|
2897
2907
|
Accept: "text/event-stream"
|
|
2898
2908
|
});
|
|
2899
|
-
e && (
|
|
2900
|
-
const
|
|
2909
|
+
e && (c["last-event-id"] = e);
|
|
2910
|
+
const l = await fetch(this.url.href, {
|
|
2901
2911
|
method: "GET",
|
|
2902
|
-
headers:
|
|
2912
|
+
headers: c,
|
|
2903
2913
|
signal: (t = this.abortController) == null ? void 0 : t.signal
|
|
2904
|
-
}), d =
|
|
2905
|
-
if (d && (this.sessionId = d),
|
|
2906
|
-
this.resourceMetadataUrl = J(
|
|
2914
|
+
}), d = l.headers.get("mcp-session-id");
|
|
2915
|
+
if (d && (this.sessionId = d), l.status === 401 && this.authProvider && !r) {
|
|
2916
|
+
this.resourceMetadataUrl = J(l);
|
|
2907
2917
|
try {
|
|
2908
2918
|
if (await W(this.authProvider, {
|
|
2909
2919
|
serverUrl: this.url,
|
|
@@ -2919,16 +2929,16 @@ var Jt = class {
|
|
|
2919
2929
|
}
|
|
2920
2930
|
return this.openInboundSse(!0, e);
|
|
2921
2931
|
}
|
|
2922
|
-
if (
|
|
2932
|
+
if (l.status === 405)
|
|
2923
2933
|
return;
|
|
2924
|
-
if (!
|
|
2934
|
+
if (!l.ok || !l.body) {
|
|
2925
2935
|
const f = new y({
|
|
2926
|
-
message: `MCP HTTP Transport Error: GET SSE failed: ${
|
|
2936
|
+
message: `MCP HTTP Transport Error: GET SSE failed: ${l.status} ${l.statusText}`
|
|
2927
2937
|
});
|
|
2928
2938
|
(n = this.onerror) == null || n.call(this, f);
|
|
2929
2939
|
return;
|
|
2930
2940
|
}
|
|
2931
|
-
const p =
|
|
2941
|
+
const p = l.body.pipeThrough(new TextDecoderStream()).pipeThrough(new o2()).getReader(), C = async () => {
|
|
2932
2942
|
var f, u, m, w;
|
|
2933
2943
|
try {
|
|
2934
2944
|
for (; ; ) {
|
|
@@ -2956,42 +2966,42 @@ var Jt = class {
|
|
|
2956
2966
|
this.inboundSseConnection = {
|
|
2957
2967
|
close: () => p.cancel()
|
|
2958
2968
|
}, this.inboundReconnectAttempts = 0, C();
|
|
2959
|
-
} catch (
|
|
2960
|
-
if (
|
|
2969
|
+
} catch (c) {
|
|
2970
|
+
if (c instanceof Error && c.name === "AbortError")
|
|
2961
2971
|
return;
|
|
2962
|
-
(a = this.onerror) == null || a.call(this,
|
|
2972
|
+
(a = this.onerror) == null || a.call(this, c), (h = this.abortController) != null && h.signal.aborted || this.scheduleInboundSseReconnection();
|
|
2963
2973
|
}
|
|
2964
2974
|
}
|
|
2965
2975
|
};
|
|
2966
|
-
function
|
|
2976
|
+
function Yt(r) {
|
|
2967
2977
|
switch (r.type) {
|
|
2968
2978
|
case "sse":
|
|
2969
|
-
return new Jt(r);
|
|
2970
|
-
case "http":
|
|
2971
2979
|
return new Wt(r);
|
|
2980
|
+
case "http":
|
|
2981
|
+
return new Gt(r);
|
|
2972
2982
|
default:
|
|
2973
2983
|
throw new y({
|
|
2974
2984
|
message: "Unsupported or invalid transport configuration. If you are using a custom transport, make sure it implements the MCPTransport interface."
|
|
2975
2985
|
});
|
|
2976
2986
|
}
|
|
2977
2987
|
}
|
|
2978
|
-
function
|
|
2988
|
+
function Kt(r) {
|
|
2979
2989
|
return "start" in r && typeof r.start == "function" && "send" in r && typeof r.send == "function" && "close" in r && typeof r.close == "function";
|
|
2980
2990
|
}
|
|
2981
|
-
var
|
|
2982
|
-
async function
|
|
2983
|
-
const e = new
|
|
2991
|
+
var Qt = "1.0.0";
|
|
2992
|
+
async function Xt(r) {
|
|
2993
|
+
const e = new e0(r);
|
|
2984
2994
|
return await e.init(), e;
|
|
2985
2995
|
}
|
|
2986
|
-
var
|
|
2996
|
+
var e0 = class {
|
|
2987
2997
|
constructor({
|
|
2988
2998
|
transport: r,
|
|
2989
2999
|
name: e = "ai-sdk-mcp-client",
|
|
2990
|
-
version: t =
|
|
3000
|
+
version: t = Qt,
|
|
2991
3001
|
onUncaughtError: s,
|
|
2992
3002
|
capabilities: i
|
|
2993
3003
|
}) {
|
|
2994
|
-
this.requestMessageId = 0, this.responseHandlers = /* @__PURE__ */ new Map(), this.serverCapabilities = {}, this.isClosed = !0, this.onUncaughtError = s, this.clientCapabilities = i ?? {},
|
|
3004
|
+
this.requestMessageId = 0, this.responseHandlers = /* @__PURE__ */ new Map(), this.serverCapabilities = {}, this.isClosed = !0, this.onUncaughtError = s, this.clientCapabilities = i ?? {}, Kt(r) ? this.transport = r : this.transport = Yt(r), this.transport.onclose = () => this.onClose(), this.transport.onerror = (n) => this.onError(n), this.transport.onmessage = (n) => {
|
|
2995
3005
|
if ("method" in n) {
|
|
2996
3006
|
"id" in n ? this.onRequestMessage(n) : this.onError(
|
|
2997
3007
|
new y({
|
|
@@ -3018,13 +3028,13 @@ var Xt = class {
|
|
|
3018
3028
|
clientInfo: this.clientInfo
|
|
3019
3029
|
}
|
|
3020
3030
|
},
|
|
3021
|
-
resultSchema:
|
|
3031
|
+
resultSchema: rt
|
|
3022
3032
|
});
|
|
3023
3033
|
if (r === void 0)
|
|
3024
3034
|
throw new y({
|
|
3025
3035
|
message: "Server sent invalid initialize result"
|
|
3026
3036
|
});
|
|
3027
|
-
if (!
|
|
3037
|
+
if (!Xe.includes(r.protocolVersion))
|
|
3028
3038
|
throw new y({
|
|
3029
3039
|
message: `Server's protocol version is not supported: ${r.protocolVersion}`
|
|
3030
3040
|
});
|
|
@@ -3086,14 +3096,14 @@ var Xt = class {
|
|
|
3086
3096
|
this.assertCapability(r.method);
|
|
3087
3097
|
const n = t?.signal;
|
|
3088
3098
|
n?.throwIfAborted();
|
|
3089
|
-
const a = this.requestMessageId++,
|
|
3099
|
+
const a = this.requestMessageId++, h = {
|
|
3090
3100
|
...r,
|
|
3091
3101
|
jsonrpc: "2.0",
|
|
3092
3102
|
id: a
|
|
3093
|
-
},
|
|
3103
|
+
}, c = () => {
|
|
3094
3104
|
this.responseHandlers.delete(a);
|
|
3095
3105
|
};
|
|
3096
|
-
this.responseHandlers.set(a, (
|
|
3106
|
+
this.responseHandlers.set(a, (l) => {
|
|
3097
3107
|
if (n?.aborted)
|
|
3098
3108
|
return i(
|
|
3099
3109
|
new y({
|
|
@@ -3101,10 +3111,10 @@ var Xt = class {
|
|
|
3101
3111
|
cause: n.reason
|
|
3102
3112
|
})
|
|
3103
3113
|
);
|
|
3104
|
-
if (
|
|
3105
|
-
return i(
|
|
3114
|
+
if (l instanceof Error)
|
|
3115
|
+
return i(l);
|
|
3106
3116
|
try {
|
|
3107
|
-
const d = e.parse(
|
|
3117
|
+
const d = e.parse(l.result);
|
|
3108
3118
|
s(d);
|
|
3109
3119
|
} catch (d) {
|
|
3110
3120
|
const g = new y({
|
|
@@ -3113,8 +3123,8 @@ var Xt = class {
|
|
|
3113
3123
|
});
|
|
3114
3124
|
i(g);
|
|
3115
3125
|
}
|
|
3116
|
-
}), this.transport.send(
|
|
3117
|
-
|
|
3126
|
+
}), this.transport.send(h).catch((l) => {
|
|
3127
|
+
c(), i(l);
|
|
3118
3128
|
});
|
|
3119
3129
|
});
|
|
3120
3130
|
}
|
|
@@ -3125,7 +3135,7 @@ var Xt = class {
|
|
|
3125
3135
|
try {
|
|
3126
3136
|
return this.request({
|
|
3127
3137
|
request: { method: "tools/list", params: r },
|
|
3128
|
-
resultSchema:
|
|
3138
|
+
resultSchema: ot,
|
|
3129
3139
|
options: e
|
|
3130
3140
|
});
|
|
3131
3141
|
} catch (t) {
|
|
@@ -3140,7 +3150,7 @@ var Xt = class {
|
|
|
3140
3150
|
try {
|
|
3141
3151
|
return this.request({
|
|
3142
3152
|
request: { method: "tools/call", params: { name: r, arguments: e } },
|
|
3143
|
-
resultSchema:
|
|
3153
|
+
resultSchema: at,
|
|
3144
3154
|
options: {
|
|
3145
3155
|
signal: t?.abortSignal
|
|
3146
3156
|
}
|
|
@@ -3156,7 +3166,7 @@ var Xt = class {
|
|
|
3156
3166
|
try {
|
|
3157
3167
|
return this.request({
|
|
3158
3168
|
request: { method: "resources/list", params: r },
|
|
3159
|
-
resultSchema:
|
|
3169
|
+
resultSchema: nt,
|
|
3160
3170
|
options: e
|
|
3161
3171
|
});
|
|
3162
3172
|
} catch (t) {
|
|
@@ -3170,7 +3180,7 @@ var Xt = class {
|
|
|
3170
3180
|
try {
|
|
3171
3181
|
return this.request({
|
|
3172
3182
|
request: { method: "resources/read", params: { uri: r } },
|
|
3173
|
-
resultSchema:
|
|
3183
|
+
resultSchema: ht,
|
|
3174
3184
|
options: e
|
|
3175
3185
|
});
|
|
3176
3186
|
} catch (t) {
|
|
@@ -3183,7 +3193,7 @@ var Xt = class {
|
|
|
3183
3193
|
try {
|
|
3184
3194
|
return this.request({
|
|
3185
3195
|
request: { method: "resources/templates/list" },
|
|
3186
|
-
resultSchema:
|
|
3196
|
+
resultSchema: lt,
|
|
3187
3197
|
options: r
|
|
3188
3198
|
});
|
|
3189
3199
|
} catch (e) {
|
|
@@ -3197,7 +3207,7 @@ var Xt = class {
|
|
|
3197
3207
|
try {
|
|
3198
3208
|
return this.request({
|
|
3199
3209
|
request: { method: "prompts/list", params: r },
|
|
3200
|
-
resultSchema:
|
|
3210
|
+
resultSchema: ut,
|
|
3201
3211
|
options: e
|
|
3202
3212
|
});
|
|
3203
3213
|
} catch (t) {
|
|
@@ -3212,7 +3222,7 @@ var Xt = class {
|
|
|
3212
3222
|
try {
|
|
3213
3223
|
return this.request({
|
|
3214
3224
|
request: { method: "prompts/get", params: { name: r, arguments: e } },
|
|
3215
|
-
resultSchema:
|
|
3225
|
+
resultSchema: gt,
|
|
3216
3226
|
options: t
|
|
3217
3227
|
});
|
|
3218
3228
|
} catch (s) {
|
|
@@ -3240,23 +3250,23 @@ var Xt = class {
|
|
|
3240
3250
|
for (const { name: i, description: n, inputSchema: a } of s.tools) {
|
|
3241
3251
|
if (r !== "automatic" && !(i in r))
|
|
3242
3252
|
continue;
|
|
3243
|
-
const
|
|
3253
|
+
const h = this, c = async (d, g) => {
|
|
3244
3254
|
var p;
|
|
3245
|
-
return (p = g?.abortSignal) == null || p.throwIfAborted(),
|
|
3246
|
-
},
|
|
3255
|
+
return (p = g?.abortSignal) == null || p.throwIfAborted(), h.callTool({ name: i, args: d, options: g });
|
|
3256
|
+
}, l = r === "automatic" ? De({
|
|
3247
3257
|
description: n,
|
|
3248
|
-
inputSchema:
|
|
3258
|
+
inputSchema: Be({
|
|
3249
3259
|
...a,
|
|
3250
3260
|
properties: (e = a.properties) != null ? e : {},
|
|
3251
3261
|
additionalProperties: !1
|
|
3252
3262
|
}),
|
|
3253
|
-
execute:
|
|
3263
|
+
execute: c
|
|
3254
3264
|
}) : {
|
|
3255
3265
|
description: n,
|
|
3256
3266
|
inputSchema: r[i].inputSchema,
|
|
3257
|
-
execute:
|
|
3267
|
+
execute: c
|
|
3258
3268
|
};
|
|
3259
|
-
t[i] =
|
|
3269
|
+
t[i] = l;
|
|
3260
3270
|
}
|
|
3261
3271
|
return t;
|
|
3262
3272
|
} catch (s) {
|
|
@@ -3294,7 +3304,7 @@ var Xt = class {
|
|
|
3294
3304
|
return this.getPromptInternal({ name: r, args: e, options: t });
|
|
3295
3305
|
}
|
|
3296
3306
|
onElicitationRequest(r, e) {
|
|
3297
|
-
if (r !==
|
|
3307
|
+
if (r !== x2)
|
|
3298
3308
|
throw new y({
|
|
3299
3309
|
message: "Unsupported request schema. Only ElicitationRequestSchema is supported."
|
|
3300
3310
|
});
|
|
@@ -3324,7 +3334,7 @@ var Xt = class {
|
|
|
3324
3334
|
});
|
|
3325
3335
|
return;
|
|
3326
3336
|
}
|
|
3327
|
-
const e =
|
|
3337
|
+
const e = x2.safeParse({
|
|
3328
3338
|
method: r.method,
|
|
3329
3339
|
params: r.params
|
|
3330
3340
|
});
|
|
@@ -3341,7 +3351,7 @@ var Xt = class {
|
|
|
3341
3351
|
return;
|
|
3342
3352
|
}
|
|
3343
3353
|
try {
|
|
3344
|
-
const t = await this.elicitationRequestHandler(e.data), s =
|
|
3354
|
+
const t = await this.elicitationRequestHandler(e.data), s = Ct.parse(t);
|
|
3345
3355
|
await this.transport.send({
|
|
3346
3356
|
jsonrpc: "2.0",
|
|
3347
3357
|
id: r.id,
|
|
@@ -3392,15 +3402,15 @@ var Xt = class {
|
|
|
3392
3402
|
);
|
|
3393
3403
|
}
|
|
3394
3404
|
};
|
|
3395
|
-
const
|
|
3405
|
+
const t0 = async (r) => {
|
|
3396
3406
|
const e = {};
|
|
3397
3407
|
try {
|
|
3398
3408
|
const t = await r.listTools();
|
|
3399
3409
|
for (const { name: s, description: i, inputSchema: n } of t.tools) {
|
|
3400
|
-
const a = async (
|
|
3401
|
-
e[s] =
|
|
3410
|
+
const a = async (h, c) => r.callTool({ name: s, arguments: h }, { signal: c?.abortSignal });
|
|
3411
|
+
e[s] = Ce({
|
|
3402
3412
|
description: i,
|
|
3403
|
-
inputSchema:
|
|
3413
|
+
inputSchema: we({
|
|
3404
3414
|
...n,
|
|
3405
3415
|
properties: n.properties ?? {},
|
|
3406
3416
|
additionalProperties: !1
|
|
@@ -3413,7 +3423,7 @@ const e0 = async (r) => {
|
|
|
3413
3423
|
throw t;
|
|
3414
3424
|
}
|
|
3415
3425
|
};
|
|
3416
|
-
function
|
|
3426
|
+
function r0(r) {
|
|
3417
3427
|
const e = Object.entries(r);
|
|
3418
3428
|
if (e.length === 0)
|
|
3419
3429
|
return "";
|
|
@@ -3426,11 +3436,11 @@ function t0(r) {
|
|
|
3426
3436
|
|
|
3427
3437
|
`, t += `<tools>
|
|
3428
3438
|
`, e.forEach(([s, i]) => {
|
|
3429
|
-
const n = i, a = n.description || "无描述",
|
|
3439
|
+
const n = i, a = n.description || "无描述", h = n.parameters || n.inputSchema || {};
|
|
3430
3440
|
t += `${JSON.stringify({
|
|
3431
3441
|
name: s,
|
|
3432
3442
|
description: a,
|
|
3433
|
-
parameters:
|
|
3443
|
+
parameters: h
|
|
3434
3444
|
}, null, 2)}
|
|
3435
3445
|
`;
|
|
3436
3446
|
}), t += `</tools>
|
|
@@ -3474,20 +3484,20 @@ function M2(r, e) {
|
|
|
3474
3484
|
}
|
|
3475
3485
|
return null;
|
|
3476
3486
|
}
|
|
3477
|
-
const
|
|
3478
|
-
openai:
|
|
3479
|
-
deepseek:
|
|
3487
|
+
const s0 = {
|
|
3488
|
+
openai: _e,
|
|
3489
|
+
deepseek: be
|
|
3480
3490
|
};
|
|
3481
|
-
class
|
|
3491
|
+
class U0 {
|
|
3482
3492
|
constructor({ llmConfig: e, mcpServers: t }) {
|
|
3483
|
-
if (this.mcpServers = {}, this.mcpClients = {}, this.mcpTools = {}, this.ignoreToolnames = [], this.
|
|
3493
|
+
if (this.mcpServers = {}, this.mcpClients = {}, this.mcpTools = {}, this.ignoreToolnames = [], this.responseMessages = [], this.useReActMode = !1, !e)
|
|
3484
3494
|
throw new Error("llmConfig is required to initialize AgentModelProvider");
|
|
3485
3495
|
if (this.mcpServers = t || {}, this.mcpClients = {}, this.mcpTools = {}, e.llm)
|
|
3486
3496
|
this.llm = e.llm;
|
|
3487
3497
|
else if (e.providerType) {
|
|
3488
3498
|
const s = e.providerType;
|
|
3489
3499
|
let i;
|
|
3490
|
-
typeof s == "string" ? i =
|
|
3500
|
+
typeof s == "string" ? i = s0[s] : i = s, this.llm = i({
|
|
3491
3501
|
apiKey: e.apiKey,
|
|
3492
3502
|
baseURL: e.baseURL
|
|
3493
3503
|
});
|
|
@@ -3499,11 +3509,11 @@ class I0 {
|
|
|
3499
3509
|
async _createOneClient(e) {
|
|
3500
3510
|
try {
|
|
3501
3511
|
let t;
|
|
3502
|
-
if ("type" in e && e.type.toLocaleLowerCase() === "streamablehttp" ? t = new G(new URL(e.url)) : "type" in e && e.type === "extension" ? t = new
|
|
3503
|
-
const i = await
|
|
3512
|
+
if ("type" in e && e.type.toLocaleLowerCase() === "streamablehttp" ? t = new G(new URL(e.url)) : "type" in e && e.type === "extension" ? t = new Se(e.sessionId) : "transport" in e ? t = e.transport : t = e, e.useAISdkClient ?? !1) {
|
|
3513
|
+
const i = await Xt({ transport: t });
|
|
3504
3514
|
return i.__transport__ = t, i;
|
|
3505
3515
|
} else {
|
|
3506
|
-
const i = new
|
|
3516
|
+
const i = new xe(
|
|
3507
3517
|
{ name: "mcp-web-client", version: "1.0.0" },
|
|
3508
3518
|
{ capabilities: { roots: { listChanged: !0 }, sampling: {}, elicitation: {} } }
|
|
3509
3519
|
);
|
|
@@ -3517,7 +3527,7 @@ class I0 {
|
|
|
3517
3527
|
async _closeOneClient(e) {
|
|
3518
3528
|
try {
|
|
3519
3529
|
const t = e.__transport__;
|
|
3520
|
-
if (t && t instanceof
|
|
3530
|
+
if (t && t instanceof re || t && t instanceof te)
|
|
3521
3531
|
return;
|
|
3522
3532
|
await t?.terminateSession?.(), await t?.close?.(), await e?.close?.();
|
|
3523
3533
|
} catch {
|
|
@@ -3540,7 +3550,7 @@ class I0 {
|
|
|
3540
3550
|
if (!e)
|
|
3541
3551
|
return null;
|
|
3542
3552
|
try {
|
|
3543
|
-
return typeof e.tools == "function" ? await e.tools() : await
|
|
3553
|
+
return typeof e.tools == "function" ? await e.tools() : await t0(e);
|
|
3544
3554
|
} catch (s) {
|
|
3545
3555
|
return this.onError && this.onError(s?.message || `Failed to query tools for ${t}`, s), console.error(`Failed to query tools for ${t}`, s), null;
|
|
3546
3556
|
}
|
|
@@ -3614,7 +3624,7 @@ class I0 {
|
|
|
3614
3624
|
}
|
|
3615
3625
|
/** 生成 ReAct 模式的系统提示词(包含工具描述) */
|
|
3616
3626
|
_generateReActSystemPrompt(e, t, s) {
|
|
3617
|
-
const i =
|
|
3627
|
+
const i = r0(e);
|
|
3618
3628
|
return s ? `${s}${i}` : `你是一个智能助手,可以通过调用工具来完成任务。
|
|
3619
3629
|
${i}`;
|
|
3620
3630
|
}
|
|
@@ -3638,10 +3648,10 @@ ${i}`;
|
|
|
3638
3648
|
const n = this._tempMergeTools(i.tools);
|
|
3639
3649
|
if (Object.keys(n).length === 0)
|
|
3640
3650
|
return this._chat(e, { model: t, maxSteps: s, ...i });
|
|
3641
|
-
let
|
|
3642
|
-
i.message && !i.messages ?
|
|
3643
|
-
const
|
|
3644
|
-
return e === X ? this._chatReActStream(g, n,
|
|
3651
|
+
let h = [];
|
|
3652
|
+
i.message && !i.messages ? h.push({ role: "user", content: i.message }) : i.messages ? h = [...i.messages] : h = [...this.responseMessages];
|
|
3653
|
+
const c = typeof t == "string" ? t : t?.modelId || "default-model", d = { role: "system", content: this._generateReActSystemPrompt(n, c, i.system) }, g = h[0]?.role === "system" ? h : [d, ...h];
|
|
3654
|
+
return e === X ? this._chatReActStream(g, n, c, s, i) : this._chatReActNonStream(g, n, c, s, i);
|
|
3645
3655
|
}
|
|
3646
3656
|
/**
|
|
3647
3657
|
* 检查消息内容是否包含图片
|
|
@@ -3668,7 +3678,7 @@ ${i}`;
|
|
|
3668
3678
|
};
|
|
3669
3679
|
}
|
|
3670
3680
|
/**
|
|
3671
|
-
*
|
|
3681
|
+
* 构建用于模型调用的消息列表
|
|
3672
3682
|
* 策略:保留所有文本消息,仅限制图片数量(类似 magentic-ui 的 maybe_remove_old_screenshots)
|
|
3673
3683
|
*
|
|
3674
3684
|
* @param systemMessage 系统提示词
|
|
@@ -3681,38 +3691,38 @@ ${i}`;
|
|
|
3681
3691
|
e && i.push(e);
|
|
3682
3692
|
let n = 0;
|
|
3683
3693
|
const a = [];
|
|
3684
|
-
for (let
|
|
3685
|
-
const
|
|
3686
|
-
if (this._messageHasImage(
|
|
3694
|
+
for (let h = t.length - 1; h >= 0; h--) {
|
|
3695
|
+
const c = t[h];
|
|
3696
|
+
if (this._messageHasImage(c.content))
|
|
3687
3697
|
if (n < s)
|
|
3688
|
-
a.unshift(
|
|
3698
|
+
a.unshift(c), n++;
|
|
3689
3699
|
else {
|
|
3690
|
-
const d = this._removeImageFromMessage(
|
|
3700
|
+
const d = this._removeImageFromMessage(c);
|
|
3691
3701
|
d && a.unshift(d);
|
|
3692
3702
|
}
|
|
3693
3703
|
else
|
|
3694
|
-
a.unshift(
|
|
3704
|
+
a.unshift(c);
|
|
3695
3705
|
}
|
|
3696
3706
|
return i.push(...a), i;
|
|
3697
3707
|
}
|
|
3698
3708
|
/** ReAct 模式非流式对话 */
|
|
3699
3709
|
async _chatReActNonStream(e, t, s, i, n) {
|
|
3700
3710
|
let a = [...e];
|
|
3701
|
-
const
|
|
3702
|
-
let
|
|
3711
|
+
const h = e[0]?.role === "system" ? e[0] : null, c = h ? e.slice(1) : e;
|
|
3712
|
+
let l = 0;
|
|
3703
3713
|
const d = n.maxImages ?? 3;
|
|
3704
|
-
for (;
|
|
3705
|
-
|
|
3706
|
-
const p = this._buildMessagesForModel(
|
|
3714
|
+
for (; l < i; ) {
|
|
3715
|
+
l++;
|
|
3716
|
+
const p = this._buildMessagesForModel(h, c, d), { tools: C, ...f } = n, m = (await f2({
|
|
3707
3717
|
// @ts-ignore ProviderV2 是所有llm的父类,在每一个具体的llm类都有一个选择model的函数用法
|
|
3708
3718
|
model: this.llm(s),
|
|
3709
3719
|
messages: p,
|
|
3710
3720
|
...f
|
|
3711
3721
|
})).text, w = { role: "assistant", content: m };
|
|
3712
|
-
|
|
3722
|
+
c.push(w), a.push(w);
|
|
3713
3723
|
const v = M2(m, t);
|
|
3714
3724
|
if (!v)
|
|
3715
|
-
return this.
|
|
3725
|
+
return this.responseMessages = a, {
|
|
3716
3726
|
text: m,
|
|
3717
3727
|
response: { messages: a }
|
|
3718
3728
|
};
|
|
@@ -3722,19 +3732,19 @@ ${i}`;
|
|
|
3722
3732
|
${_.success ? JSON.stringify(_.result) : `工具执行失败 - ${_.error}`}
|
|
3723
3733
|
</tool_response>`
|
|
3724
3734
|
};
|
|
3725
|
-
|
|
3735
|
+
c.push(b), a.push(b);
|
|
3726
3736
|
}
|
|
3727
|
-
return this.
|
|
3737
|
+
return this.responseMessages = a, {
|
|
3728
3738
|
text: a[a.length - 2]?.content || "",
|
|
3729
3739
|
response: { messages: a }
|
|
3730
3740
|
};
|
|
3731
3741
|
}
|
|
3732
3742
|
/** ReAct 模式流式对话 */
|
|
3733
3743
|
_chatReActStream(e, t, s, i, n) {
|
|
3734
|
-
const a = this,
|
|
3735
|
-
let
|
|
3744
|
+
const a = this, h = this.llm(s);
|
|
3745
|
+
let c, l;
|
|
3736
3746
|
const d = new Promise((p, C) => {
|
|
3737
|
-
|
|
3747
|
+
c = p, l = C;
|
|
3738
3748
|
});
|
|
3739
3749
|
return {
|
|
3740
3750
|
fullStream: new ReadableStream({
|
|
@@ -3750,7 +3760,7 @@ ${_.success ? JSON.stringify(_.result) : `工具执行失败 - ${_.error}`}
|
|
|
3750
3760
|
delete L.system, delete L.onFinish;
|
|
3751
3761
|
const b = await X({
|
|
3752
3762
|
...L,
|
|
3753
|
-
model:
|
|
3763
|
+
model: h,
|
|
3754
3764
|
messages: _
|
|
3755
3765
|
});
|
|
3756
3766
|
let E = "";
|
|
@@ -3762,36 +3772,36 @@ ${_.success ? JSON.stringify(_.result) : `工具执行失败 - ${_.error}`}
|
|
|
3762
3772
|
w += E;
|
|
3763
3773
|
const U = { role: "assistant", content: w };
|
|
3764
3774
|
u.push(U), C.push(U);
|
|
3765
|
-
const
|
|
3766
|
-
if (!
|
|
3767
|
-
p.enqueue({ type: "text-end" }), p.close(), a.
|
|
3775
|
+
const T = M2(w, t);
|
|
3776
|
+
if (!T) {
|
|
3777
|
+
p.enqueue({ type: "text-end" }), p.close(), a.responseMessages = C, c({ messages: C });
|
|
3768
3778
|
return;
|
|
3769
3779
|
}
|
|
3770
|
-
if (
|
|
3771
|
-
p.enqueue({ type: "text-end" }), p.close(), a.
|
|
3780
|
+
if (T.toolName === "computer" && T.arguments?.action === "terminate") {
|
|
3781
|
+
p.enqueue({ type: "text-end" }), p.close(), a.responseMessages = C, c({ messages: C });
|
|
3772
3782
|
return;
|
|
3773
3783
|
}
|
|
3774
3784
|
const P = `react-${Date.now()}`;
|
|
3775
3785
|
p.enqueue({
|
|
3776
3786
|
type: "tool-input-start",
|
|
3777
3787
|
id: P,
|
|
3778
|
-
toolName:
|
|
3788
|
+
toolName: T.toolName
|
|
3779
3789
|
});
|
|
3780
|
-
const Q = JSON.stringify(
|
|
3790
|
+
const Q = JSON.stringify(T.arguments, null, 2);
|
|
3781
3791
|
p.enqueue({
|
|
3782
3792
|
type: "tool-input-delta",
|
|
3783
3793
|
id: P,
|
|
3784
3794
|
delta: Q
|
|
3785
3795
|
});
|
|
3786
|
-
const
|
|
3787
|
-
let H, k =
|
|
3788
|
-
if (
|
|
3789
|
-
H =
|
|
3790
|
-
const { screenshot: I, ...
|
|
3791
|
-
k =
|
|
3796
|
+
const M = await a._executeReActToolCall(T.toolName, T.arguments, t);
|
|
3797
|
+
let H, k = M.result;
|
|
3798
|
+
if (M.success && M.result && typeof M.result == "object" && M.result.screenshot) {
|
|
3799
|
+
H = M.result.screenshot;
|
|
3800
|
+
const { screenshot: I, ...W2 } = M.result;
|
|
3801
|
+
k = W2;
|
|
3792
3802
|
}
|
|
3793
3803
|
let N = "";
|
|
3794
|
-
|
|
3804
|
+
M.success ? k && Array.isArray(k.content) && k.content.length > 0 && k.content[0].text ? N = k.content[0].text : N = JSON.stringify(k) : N = `工具执行失败 - ${M.error}`;
|
|
3795
3805
|
let z = `<tool_response>
|
|
3796
3806
|
${N}
|
|
3797
3807
|
</tool_response>`;
|
|
@@ -3813,9 +3823,9 @@ ${N}
|
|
|
3813
3823
|
};
|
|
3814
3824
|
u.push(u2), C.push(u2), w = "";
|
|
3815
3825
|
}
|
|
3816
|
-
p.enqueue({ type: "text-end" }), p.close(), a.
|
|
3826
|
+
p.enqueue({ type: "text-end" }), p.close(), a.responseMessages = C, c({ messages: C });
|
|
3817
3827
|
} catch (_) {
|
|
3818
|
-
p.error(_),
|
|
3828
|
+
p.error(_), l(_);
|
|
3819
3829
|
}
|
|
3820
3830
|
}
|
|
3821
3831
|
}),
|
|
@@ -3831,15 +3841,24 @@ ${N}
|
|
|
3831
3841
|
const n = {
|
|
3832
3842
|
// @ts-ignore ProviderV2 是所有llm的父类, 在每一个具体的llm 类都有一个选择model的函数用法
|
|
3833
3843
|
model: this.llm(t),
|
|
3834
|
-
stopWhen:
|
|
3844
|
+
stopWhen: ye(s),
|
|
3835
3845
|
...i,
|
|
3836
3846
|
tools: this._tempMergeTools(i.tools)
|
|
3837
3847
|
};
|
|
3838
|
-
|
|
3839
|
-
|
|
3840
|
-
|
|
3841
|
-
|
|
3842
|
-
|
|
3848
|
+
let a = null;
|
|
3849
|
+
if (i.message && !i.messages)
|
|
3850
|
+
a = { role: "user", content: i.message }, this.responseMessages.push(a), n.messages = [...this.responseMessages];
|
|
3851
|
+
else if (i.messages && i.messages.length > 0) {
|
|
3852
|
+
const c = i.messages[i.messages.length - 1];
|
|
3853
|
+
c.role === "user" && (a = c);
|
|
3854
|
+
}
|
|
3855
|
+
const h = e(n);
|
|
3856
|
+
return h?.response?.then((c) => {
|
|
3857
|
+
const l = c.messages?.[0];
|
|
3858
|
+
a && l?.role !== "user" && this.responseMessages.push(a), this.responseMessages.push(...c.messages);
|
|
3859
|
+
}), h?.usage?.then((c) => {
|
|
3860
|
+
this.onUsage?.(c);
|
|
3861
|
+
}), h;
|
|
3843
3862
|
}
|
|
3844
3863
|
async chat(e) {
|
|
3845
3864
|
return this._chat(f2, e);
|
|
@@ -3849,32 +3868,32 @@ ${N}
|
|
|
3849
3868
|
}
|
|
3850
3869
|
}
|
|
3851
3870
|
export {
|
|
3852
|
-
|
|
3853
|
-
|
|
3854
|
-
|
|
3855
|
-
|
|
3856
|
-
|
|
3857
|
-
|
|
3858
|
-
|
|
3871
|
+
U0 as AgentModelProvider,
|
|
3872
|
+
$0 as Ajv,
|
|
3873
|
+
N0 as AuthClientProvider,
|
|
3874
|
+
k0 as ContentScriptServerTransport,
|
|
3875
|
+
Se as ExtensionClientTransport,
|
|
3876
|
+
P0 as ExtensionPageServerTransport,
|
|
3877
|
+
Y0 as InMemoryTransport,
|
|
3859
3878
|
Te as QrCode,
|
|
3860
|
-
|
|
3861
|
-
|
|
3862
|
-
|
|
3863
|
-
|
|
3864
|
-
|
|
3865
|
-
|
|
3866
|
-
|
|
3867
|
-
|
|
3868
|
-
|
|
3869
|
-
|
|
3870
|
-
|
|
3871
|
-
|
|
3872
|
-
|
|
3873
|
-
|
|
3874
|
-
|
|
3875
|
-
|
|
3876
|
-
|
|
3877
|
-
|
|
3878
|
-
|
|
3879
|
-
|
|
3879
|
+
Z0 as ResourceTemplate,
|
|
3880
|
+
F0 as UriTemplate,
|
|
3881
|
+
xe as WebMcpClient,
|
|
3882
|
+
y0 as WebMcpServer,
|
|
3883
|
+
V0 as completable,
|
|
3884
|
+
T0 as createMessageChannelClientTransport,
|
|
3885
|
+
_0 as createMessageChannelPairTransport,
|
|
3886
|
+
v0 as createMessageChannelServerTransport,
|
|
3887
|
+
I0 as createRemoter,
|
|
3888
|
+
L0 as createSSEClientTransport,
|
|
3889
|
+
S0 as createStreamableHTTPClientTransport,
|
|
3890
|
+
t0 as getAISDKTools,
|
|
3891
|
+
W0 as getDisplayName,
|
|
3892
|
+
E0 as isMcpClient,
|
|
3893
|
+
x0 as isMcpServer,
|
|
3894
|
+
R0 as isMessageChannelClientTransport,
|
|
3895
|
+
b0 as isMessageChannelServerTransport,
|
|
3896
|
+
M0 as isSSEClientTransport,
|
|
3897
|
+
Le as isStreamableHTTPClientTransport,
|
|
3898
|
+
j0 as z
|
|
3880
3899
|
};
|