@opentiny/next-sdk 0.2.8 → 0.2.10
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/agent/AgentModelProvider.ts +10 -3
- package/agent/type.ts +3 -3
- package/dist/agent/type.d.ts +3 -0
- package/dist/index.es.dev.js +123 -25
- package/dist/index.es.js +10161 -10085
- package/dist/index.js +897 -821
- package/dist/index.umd.dev.js +123 -25
- package/dist/index.umd.js +41 -41
- package/dist/page-tools/bridge.d.ts +23 -0
- package/dist/remoter/createRemoter.d.ts +3 -2
- package/dist/webagent.dev.js +15891 -15877
- package/dist/webagent.es.dev.js +15891 -15877
- package/dist/webagent.es.js +3154 -3142
- package/dist/webagent.js +35 -35
- package/package.json +1 -1
- package/page-tools/bridge.ts +134 -0
- package/remoter/createRemoter.ts +44 -23
package/dist/index.js
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
import { default as
|
|
2
|
-
import { z as
|
|
3
|
-
import { z as
|
|
4
|
-
import { MessageChannelServerTransport as
|
|
5
|
-
import { AuthClientProvider as
|
|
6
|
-
import { McpServer as
|
|
7
|
-
import { ResourceTemplate as
|
|
8
|
-
import { UriTemplate as
|
|
9
|
-
import { completable as
|
|
10
|
-
import { getDisplayName as
|
|
11
|
-
import { InMemoryTransport as
|
|
12
|
-
import { InMemoryTransport as
|
|
13
|
-
import { SetLevelRequestSchema as
|
|
14
|
-
import { Client as
|
|
15
|
-
import { SSEClientTransport as
|
|
16
|
-
import { StreamableHTTPClientTransport as
|
|
17
|
-
import { WebSocketClientTransport as
|
|
18
|
-
import
|
|
19
|
-
import { dynamicTool as
|
|
20
|
-
import { TypeValidationError as
|
|
21
|
-
import * as
|
|
1
|
+
import { default as Qn } from "ajv";
|
|
2
|
+
import { z as G } from "zod";
|
|
3
|
+
import { z as eo } from "zod";
|
|
4
|
+
import { MessageChannelServerTransport as Ee, createTransportPair as zt, MessageChannelClientTransport as Re, sseOptions as Dt, streamOptions as Ht, createSseProxy as Ft, createSocketProxy as Bt, createStreamProxy as Vt, MessageChannelTransport as Wt } from "@opentiny/next";
|
|
5
|
+
import { AuthClientProvider as ro } from "@opentiny/next";
|
|
6
|
+
import { McpServer as lt } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
7
|
+
import { ResourceTemplate as oo } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
8
|
+
import { UriTemplate as io } from "@modelcontextprotocol/sdk/shared/uriTemplate.js";
|
|
9
|
+
import { completable as co } from "@modelcontextprotocol/sdk/server/completable.js";
|
|
10
|
+
import { getDisplayName as uo } from "@modelcontextprotocol/sdk/shared/metadataUtils.js";
|
|
11
|
+
import { InMemoryTransport as Jt } from "@modelcontextprotocol/sdk/inMemory.js";
|
|
12
|
+
import { InMemoryTransport as ho } from "@modelcontextprotocol/sdk/inMemory.js";
|
|
13
|
+
import { SetLevelRequestSchema as De, SubscribeRequestSchema as Gt, UnsubscribeRequestSchema as Kt, ListResourcesRequestSchema as Yt, RootsListChangedNotificationSchema as Qt, CallToolResultSchema as Xt, ElicitRequestSchema as e2, CreateMessageRequestSchema as t2, ListRootsRequestSchema as r2, ToolListChangedNotificationSchema as n2, PromptListChangedNotificationSchema as o2, ResourceListChangedNotificationSchema as s2, ResourceUpdatedNotificationSchema as i2, LoggingMessageNotificationSchema as a2, JSONRPCMessageSchema as Ie } from "@modelcontextprotocol/sdk/types.js";
|
|
14
|
+
import { Client as dt } from "@modelcontextprotocol/sdk/client/index.js";
|
|
15
|
+
import { SSEClientTransport as he } from "@modelcontextprotocol/sdk/client/sse.js";
|
|
16
|
+
import { StreamableHTTPClientTransport as me } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
|
|
17
|
+
import { WebSocketClientTransport as c2 } from "@modelcontextprotocol/sdk/client/websocket.js";
|
|
18
|
+
import He from "qrcode";
|
|
19
|
+
import { dynamicTool as l2, jsonSchema as d2, generateText as Fe, streamText as ye, stepCountIs as u2, tool as p2 } from "ai";
|
|
20
|
+
import { TypeValidationError as xe, JSONParseError as Be, InvalidArgumentError as h2, AISDKError as oe } from "@ai-sdk/provider";
|
|
21
|
+
import * as Ve from "zod/v4";
|
|
22
22
|
import { z as i } from "zod/v4";
|
|
23
23
|
import { ZodFirstPartyTypeKind as w } from "zod/v3";
|
|
24
|
-
import { createOpenAI as
|
|
25
|
-
import { createDeepSeek as
|
|
26
|
-
class
|
|
24
|
+
import { createOpenAI as m2 } from "@ai-sdk/openai";
|
|
25
|
+
import { createDeepSeek as f2 } from "@ai-sdk/deepseek";
|
|
26
|
+
class kn {
|
|
27
27
|
constructor(e, r) {
|
|
28
28
|
const n = {
|
|
29
29
|
name: "web-mcp-server",
|
|
@@ -35,19 +35,19 @@ class xn {
|
|
|
35
35
|
completions: {},
|
|
36
36
|
logging: {}
|
|
37
37
|
};
|
|
38
|
-
this.server = new
|
|
38
|
+
this.server = new lt(e || n, r || { capabilities: o }), this.server.server.oninitialized = () => {
|
|
39
39
|
this.oninitialized?.();
|
|
40
40
|
}, this.server.server.onclose = () => {
|
|
41
41
|
this.onclose?.();
|
|
42
42
|
}, this.server.server.onerror = (s) => {
|
|
43
43
|
this.onerror?.(s);
|
|
44
|
-
}, this.server.server.setRequestHandler(
|
|
44
|
+
}, this.server.server.setRequestHandler(De, async () => ({}));
|
|
45
45
|
}
|
|
46
46
|
/**
|
|
47
47
|
* Connects the server to a transport via the specified option.
|
|
48
48
|
*/
|
|
49
49
|
async connect(e) {
|
|
50
|
-
return typeof e.start == "function" ? (this.transport = e, this.transport.onclose = void 0, this.transport.onerror = void 0, this.transport.onmessage = void 0) : (this.transport = new
|
|
50
|
+
return typeof e.start == "function" ? (this.transport = e, this.transport.onclose = void 0, this.transport.onerror = void 0, this.transport.onmessage = void 0) : (this.transport = new Ee(e), await this.transport.listen()), await this.server.connect(this.transport), this.transport;
|
|
51
51
|
}
|
|
52
52
|
/**
|
|
53
53
|
* Closes the connection.
|
|
@@ -189,31 +189,31 @@ class xn {
|
|
|
189
189
|
* Registers a handler for the subscribe request.
|
|
190
190
|
*/
|
|
191
191
|
onSubscribe(e) {
|
|
192
|
-
this.server.server.setRequestHandler(
|
|
192
|
+
this.server.server.setRequestHandler(Gt, e);
|
|
193
193
|
}
|
|
194
194
|
/**
|
|
195
195
|
* Registers a handler for the unsubscribe request.
|
|
196
196
|
*/
|
|
197
197
|
onUnsubscribe(e) {
|
|
198
|
-
this.server.server.setRequestHandler(
|
|
198
|
+
this.server.server.setRequestHandler(Kt, e);
|
|
199
199
|
}
|
|
200
200
|
/**
|
|
201
201
|
* Registers a handler for the set log level request.
|
|
202
202
|
*/
|
|
203
203
|
onSetLogLevel(e) {
|
|
204
|
-
this.server.server.setRequestHandler(
|
|
204
|
+
this.server.server.setRequestHandler(De, e);
|
|
205
205
|
}
|
|
206
206
|
/**
|
|
207
207
|
* Registers a handler for the list tools request.
|
|
208
208
|
*/
|
|
209
209
|
onListResources(e) {
|
|
210
|
-
this.server.server.setRequestHandler(
|
|
210
|
+
this.server.server.setRequestHandler(Yt, e);
|
|
211
211
|
}
|
|
212
212
|
/**
|
|
213
213
|
* Registers a handler for the roots list changed notification.
|
|
214
214
|
*/
|
|
215
215
|
onRootsListChanged(e) {
|
|
216
|
-
this.server.server.setNotificationHandler(
|
|
216
|
+
this.server.server.setNotificationHandler(Qt, e);
|
|
217
217
|
}
|
|
218
218
|
/**
|
|
219
219
|
* Close the transport for window.addEventListener('pagehide')
|
|
@@ -222,8 +222,8 @@ class xn {
|
|
|
222
222
|
e.persisted || this.transport && typeof this.transport.close == "function" && await this.transport.close();
|
|
223
223
|
}
|
|
224
224
|
}
|
|
225
|
-
const
|
|
226
|
-
class
|
|
225
|
+
const Sn = (t, e) => new Ee(t, e), Pn = () => zt(), Tn = (t) => t instanceof Ee, Mn = (t) => t instanceof lt;
|
|
226
|
+
class g2 {
|
|
227
227
|
constructor(e, r) {
|
|
228
228
|
const n = {
|
|
229
229
|
name: "web-mcp-client",
|
|
@@ -233,7 +233,7 @@ class p2 {
|
|
|
233
233
|
sampling: {},
|
|
234
234
|
elicitation: {}
|
|
235
235
|
};
|
|
236
|
-
this.client = new
|
|
236
|
+
this.client = new dt(e || n, r || { capabilities: o }), this.client.onclose = () => {
|
|
237
237
|
this.onclose?.();
|
|
238
238
|
}, this.client.onerror = (s) => {
|
|
239
239
|
this.onerror?.(s);
|
|
@@ -245,28 +245,28 @@ class p2 {
|
|
|
245
245
|
async connect(e) {
|
|
246
246
|
if (typeof e.start == "function")
|
|
247
247
|
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 };
|
|
248
|
-
const { url: r, token: n, sessionId: o, type: s, agent: a, onError:
|
|
248
|
+
const { url: r, token: n, sessionId: o, type: s, agent: a, onError: c } = e;
|
|
249
249
|
if (a === !0) {
|
|
250
250
|
const u = { client: this.client, url: r, token: n, sessionId: o };
|
|
251
251
|
let g;
|
|
252
252
|
return await (async () => {
|
|
253
|
-
const { transport: f, sessionId: y } = s === "sse" ? await
|
|
253
|
+
const { transport: f, sessionId: y } = s === "sse" ? await Ft(u) : s === "socket" ? await Bt(u) : await Vt(u);
|
|
254
254
|
f.onerror = async (h) => {
|
|
255
|
-
|
|
255
|
+
c?.(h);
|
|
256
256
|
}, g = { transport: f, sessionId: y };
|
|
257
257
|
})(), g;
|
|
258
258
|
}
|
|
259
259
|
const d = new URL(r);
|
|
260
|
-
let
|
|
261
|
-
if (s === "channel" && (
|
|
262
|
-
const u =
|
|
263
|
-
|
|
260
|
+
let l;
|
|
261
|
+
if (s === "channel" && (l = new Re(r), await this.client.connect(l)), s === "sse") {
|
|
262
|
+
const u = Dt(n, o);
|
|
263
|
+
l = new he(d, u), await this.client.connect(l);
|
|
264
264
|
}
|
|
265
|
-
if (s === "socket" && (
|
|
266
|
-
const u =
|
|
267
|
-
|
|
265
|
+
if (s === "socket" && (l = new c2(new URL(`${r}?sessionId=${o}&token=${n}`)), l.sessionId = o, await this.client.connect(l)), typeof l > "u") {
|
|
266
|
+
const u = Ht(n, o);
|
|
267
|
+
l = new me(d, u), await this.client.connect(l);
|
|
268
268
|
}
|
|
269
|
-
return this.transport =
|
|
269
|
+
return this.transport = l, { transport: this.transport, sessionId: this.transport.sessionId };
|
|
270
270
|
}
|
|
271
271
|
/**
|
|
272
272
|
* Closes the connection.
|
|
@@ -356,7 +356,7 @@ class p2 {
|
|
|
356
356
|
* Calls a tool on the server with the given parameters.
|
|
357
357
|
*/
|
|
358
358
|
async callTool(e, r) {
|
|
359
|
-
return await this.client.callTool(e,
|
|
359
|
+
return await this.client.callTool(e, Xt, r);
|
|
360
360
|
}
|
|
361
361
|
/**
|
|
362
362
|
* Lists all tools available on the server.
|
|
@@ -416,65 +416,65 @@ class p2 {
|
|
|
416
416
|
* Registers a handler for the elicitation request.
|
|
417
417
|
*/
|
|
418
418
|
onElicit(e) {
|
|
419
|
-
this.client.setRequestHandler(
|
|
419
|
+
this.client.setRequestHandler(e2, e);
|
|
420
420
|
}
|
|
421
421
|
/**
|
|
422
422
|
* Registers a handler for the create LLM message request.
|
|
423
423
|
*/
|
|
424
424
|
onCreateMessage(e) {
|
|
425
|
-
this.client.setRequestHandler(
|
|
425
|
+
this.client.setRequestHandler(t2, e);
|
|
426
426
|
}
|
|
427
427
|
/**
|
|
428
428
|
* Registers a handler for the list roots request.
|
|
429
429
|
*/
|
|
430
430
|
onListRoots(e) {
|
|
431
|
-
this.client.setRequestHandler(
|
|
431
|
+
this.client.setRequestHandler(r2, e);
|
|
432
432
|
}
|
|
433
433
|
/**
|
|
434
434
|
* Registers a handler for the tool list changed notification.
|
|
435
435
|
*/
|
|
436
436
|
onToolListChanged(e) {
|
|
437
|
-
this.client.setNotificationHandler(
|
|
437
|
+
this.client.setNotificationHandler(n2, e);
|
|
438
438
|
}
|
|
439
439
|
/**
|
|
440
440
|
* Registers a handler for the prompt list changed notification.
|
|
441
441
|
*/
|
|
442
442
|
onPromptListChanged(e) {
|
|
443
|
-
this.client.setNotificationHandler(
|
|
443
|
+
this.client.setNotificationHandler(o2, e);
|
|
444
444
|
}
|
|
445
445
|
/**
|
|
446
446
|
* Registers a handler for the resource list changed notification.
|
|
447
447
|
*/
|
|
448
448
|
onResourceListChanged(e) {
|
|
449
|
-
this.client.setNotificationHandler(
|
|
449
|
+
this.client.setNotificationHandler(s2, e);
|
|
450
450
|
}
|
|
451
451
|
/**
|
|
452
452
|
* Registers a handler for the resource updated notification.
|
|
453
453
|
*/
|
|
454
454
|
onResourceUpdated(e) {
|
|
455
|
-
this.client.setNotificationHandler(
|
|
455
|
+
this.client.setNotificationHandler(i2, e);
|
|
456
456
|
}
|
|
457
457
|
/**
|
|
458
458
|
* Registers a handler for the logging message notification.
|
|
459
459
|
*/
|
|
460
460
|
onLoggingMessage(e) {
|
|
461
|
-
this.client.setNotificationHandler(
|
|
461
|
+
this.client.setNotificationHandler(a2, e);
|
|
462
462
|
}
|
|
463
463
|
/**
|
|
464
464
|
* Close the transport for window.addEventListener('pagehide')
|
|
465
465
|
*/
|
|
466
466
|
async onPagehide(e) {
|
|
467
|
-
e.persisted || (
|
|
467
|
+
e.persisted || (y2(this.transport) ? await this.transport.terminateSession() : this.transport && typeof this.transport.close == "function" && await this.transport.close());
|
|
468
468
|
}
|
|
469
469
|
}
|
|
470
|
-
const
|
|
470
|
+
const En = (t, e) => new he(t, e), Rn = (t, e) => new me(t, e), In = (t, e) => new Re(t, e), An = (t) => t instanceof he, y2 = (t) => t instanceof me, On = (t) => t instanceof Re, $n = (t) => t instanceof dt, D = (t, e, r) => {
|
|
471
471
|
window.postMessage({ type: t, direction: r, data: e }, "*");
|
|
472
|
-
},
|
|
472
|
+
}, We = (t, e, r) => {
|
|
473
473
|
const n = async function(o) {
|
|
474
474
|
o.source === window && o.data.type === t && o.data.direction === r && await e(o.data.data);
|
|
475
475
|
};
|
|
476
476
|
return window.addEventListener("message", n), () => window.removeEventListener("message", n);
|
|
477
|
-
},
|
|
477
|
+
}, Le = (t, e, r) => {
|
|
478
478
|
if (r.endsWith("content"))
|
|
479
479
|
chrome.tabs.query({}, (n) => {
|
|
480
480
|
n.forEach((o) => {
|
|
@@ -483,23 +483,23 @@ const Tn = (t, e) => new Re(t, e), Mn = (t, e) => new ue(t, e), En = (t, e) => n
|
|
|
483
483
|
});
|
|
484
484
|
else
|
|
485
485
|
return chrome.runtime.sendMessage({ direction: r, type: t, data: e });
|
|
486
|
-
},
|
|
487
|
-
const o = (s, a,
|
|
486
|
+
}, ke = (t, e, r, n) => {
|
|
487
|
+
const o = (s, a, c) => {
|
|
488
488
|
if (s.type === t && s.direction === r && (!n || n && s.tabId === n)) {
|
|
489
489
|
const { data: d } = s;
|
|
490
|
-
e(d, a,
|
|
490
|
+
e(d, a, c), c(a);
|
|
491
491
|
}
|
|
492
492
|
};
|
|
493
493
|
return chrome.runtime.onMessage.addListener(o), () => chrome.runtime.onMessage.removeListener(o);
|
|
494
494
|
};
|
|
495
|
-
class
|
|
495
|
+
class w2 {
|
|
496
496
|
constructor(e) {
|
|
497
|
-
this._isStarted = !1, this._isClosed = !1, this.targetSessionId = e, this._messageListener =
|
|
497
|
+
this._isStarted = !1, this._isClosed = !1, this.targetSessionId = e, this._messageListener = ke(
|
|
498
498
|
"mcp-server-to-client",
|
|
499
499
|
(r) => {
|
|
500
500
|
try {
|
|
501
501
|
if (r.sessionId !== this.targetSessionId) return;
|
|
502
|
-
const n =
|
|
502
|
+
const n = Ie.parse(r.mcpMessage);
|
|
503
503
|
this.onmessage?.(n);
|
|
504
504
|
} catch (n) {
|
|
505
505
|
console.log("【Client Transport】处理server消息错误:", n);
|
|
@@ -525,7 +525,7 @@ class m2 {
|
|
|
525
525
|
const n = chrome.sessionRegistry.get(this.targetSessionId);
|
|
526
526
|
this._throwError(() => !n, `【Client Transport】sessionRegistry中未找到${this.targetSessionId}`);
|
|
527
527
|
const o = n.tabIds[n.tabIds.length - 1];
|
|
528
|
-
|
|
528
|
+
Le(
|
|
529
529
|
"mcp-client-to-server",
|
|
530
530
|
{ sessionId: this.targetSessionId, tabId: o, mcpMessage: e },
|
|
531
531
|
"side->content"
|
|
@@ -541,13 +541,13 @@ class m2 {
|
|
|
541
541
|
}
|
|
542
542
|
}
|
|
543
543
|
}
|
|
544
|
-
const
|
|
544
|
+
const Ae = () => typeof crypto < "u" && crypto.randomUUID ? crypto.randomUUID() : "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (t) => {
|
|
545
545
|
const e = Math.random() * 16 | 0;
|
|
546
546
|
return (t === "x" ? e : e & 3 | 8).toString(16);
|
|
547
547
|
});
|
|
548
|
-
class
|
|
548
|
+
class Un {
|
|
549
549
|
constructor(e = null) {
|
|
550
|
-
this._isStarted = !1, this._isClosed = !1, this._lastRegistration = null, this.sessionId = e ||
|
|
550
|
+
this._isStarted = !1, this._isClosed = !1, this._lastRegistration = null, this.sessionId = e || Ae(), this._messageListener1 = We(
|
|
551
551
|
"sidepanel-ready-to-page",
|
|
552
552
|
() => {
|
|
553
553
|
this._lastRegistration && this._isStarted && this.notifyRegistration(this._lastRegistration).catch((r) => {
|
|
@@ -555,12 +555,12 @@ class On {
|
|
|
555
555
|
});
|
|
556
556
|
},
|
|
557
557
|
"content->page"
|
|
558
|
-
), this._messageListener2 =
|
|
558
|
+
), this._messageListener2 = We(
|
|
559
559
|
"mcp-client-to-server-to-page",
|
|
560
560
|
(r) => {
|
|
561
561
|
if (r.sessionId !== this.sessionId) return;
|
|
562
562
|
console.log("【Page Svr Transport】 即将处理 mcpMessage", r.mcpMessage);
|
|
563
|
-
const n =
|
|
563
|
+
const n = Ie.parse(r.mcpMessage);
|
|
564
564
|
this.onmessage?.(n), r.mcpMessage.params?.name && D(
|
|
565
565
|
"update-page-app-message",
|
|
566
566
|
{ status: "run", message: r.mcpMessage.params?.name },
|
|
@@ -630,9 +630,9 @@ class On {
|
|
|
630
630
|
}
|
|
631
631
|
}
|
|
632
632
|
}
|
|
633
|
-
class
|
|
633
|
+
class Nn {
|
|
634
634
|
constructor(e = null, r) {
|
|
635
|
-
this._isStarted = !1, this._isClosed = !1, this._lastRegistration = null, this.sessionId = e ||
|
|
635
|
+
this._isStarted = !1, this._isClosed = !1, this._lastRegistration = null, this.sessionId = e || Ae(), this.tabId = r, ke(
|
|
636
636
|
"sidepanel-ready",
|
|
637
637
|
() => {
|
|
638
638
|
this._lastRegistration && this._isStarted && this.notifyRegistration(this._lastRegistration).catch((n) => {
|
|
@@ -654,13 +654,13 @@ class $n {
|
|
|
654
654
|
async start() {
|
|
655
655
|
if (console.log("【Content Svr Transport】 启动 start", this.sessionId), !this._isStarted) {
|
|
656
656
|
if (this._isClosed) throw new Error("【Content Svr Transport】 已关闭,无法重新启动");
|
|
657
|
-
|
|
657
|
+
ke(
|
|
658
658
|
"mcp-client-to-server",
|
|
659
659
|
(e) => {
|
|
660
660
|
if (!(e.sessionId !== this.sessionId || e.tabId !== this.tabId))
|
|
661
661
|
try {
|
|
662
662
|
console.log("【Content Svr Transport】 即将处理 mcpMessage", e.mcpMessage);
|
|
663
|
-
const r =
|
|
663
|
+
const r = Ie.parse(e.mcpMessage);
|
|
664
664
|
this.onmessage?.(r), e.mcpMessage.params?.name && D(
|
|
665
665
|
"update-page-app-message",
|
|
666
666
|
{ status: "run", message: e.mcpMessage.params?.name },
|
|
@@ -680,7 +680,7 @@ class $n {
|
|
|
680
680
|
async send(e, r) {
|
|
681
681
|
this._throwError(() => !this._isStarted, "【Content Svr Transport】 未启动,无法发送消息"), this._throwError(() => this._isClosed, "【Content Svr Transport】 已关闭,无法发送消息");
|
|
682
682
|
try {
|
|
683
|
-
console.log("【Content Svr Transport】 发送消息到 MCP Client", e),
|
|
683
|
+
console.log("【Content Svr Transport】 发送消息到 MCP Client", e), Le(
|
|
684
684
|
"mcp-server-to-client",
|
|
685
685
|
{
|
|
686
686
|
sessionId: this.sessionId,
|
|
@@ -699,7 +699,7 @@ class $n {
|
|
|
699
699
|
}
|
|
700
700
|
/** 通知 Sidepanel 此 Server 已启动并准备接受连接 */
|
|
701
701
|
async notifyRegistration(e) {
|
|
702
|
-
this._isStarted && (this._lastRegistration = e,
|
|
702
|
+
this._isStarted && (this._lastRegistration = e, Le(
|
|
703
703
|
"mcp-server-register",
|
|
704
704
|
{
|
|
705
705
|
sessionId: this.sessionId,
|
|
@@ -721,7 +721,7 @@ class $n {
|
|
|
721
721
|
}
|
|
722
722
|
}
|
|
723
723
|
}
|
|
724
|
-
class
|
|
724
|
+
class v2 {
|
|
725
725
|
constructor(e, { size: r = 200, margin: n = 4, color: o = "#000", bgColor: s = "#fff" }) {
|
|
726
726
|
this.value = e, this.size = r, this.margin = n, this.color = o, this.bgColor = s;
|
|
727
727
|
}
|
|
@@ -739,18 +739,18 @@ class f2 {
|
|
|
739
739
|
}
|
|
740
740
|
/** 生成二维码的 Data URL(base64 图片) */
|
|
741
741
|
async toDataURL() {
|
|
742
|
-
return
|
|
742
|
+
return He.toDataURL(this.value, this.qrCodeOption);
|
|
743
743
|
}
|
|
744
744
|
/** 渲染二维码到指定的 canvas 元素 */
|
|
745
745
|
async toCanvas(e) {
|
|
746
|
-
return
|
|
746
|
+
return He.toCanvas(e, this.value, this.qrCodeOption);
|
|
747
747
|
}
|
|
748
748
|
/** 渲染二维码到指定的 img 元素 */
|
|
749
749
|
async toImage(e) {
|
|
750
750
|
e.src = await this.toDataURL();
|
|
751
751
|
}
|
|
752
752
|
}
|
|
753
|
-
const
|
|
753
|
+
const C2 = {
|
|
754
754
|
content: "",
|
|
755
755
|
placement: "top",
|
|
756
756
|
trigger: "hover",
|
|
@@ -759,10 +759,10 @@ const g2 = {
|
|
|
759
759
|
container: document.body,
|
|
760
760
|
className: "tiny-remoter-native-tooltip"
|
|
761
761
|
};
|
|
762
|
-
class
|
|
762
|
+
class _2 {
|
|
763
763
|
constructor(e, r = {}) {
|
|
764
764
|
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");
|
|
765
|
-
this.opts = { ...
|
|
765
|
+
this.opts = { ...C2, ...r }, this.bindEvents();
|
|
766
766
|
}
|
|
767
767
|
/* 公开 API */
|
|
768
768
|
open() {
|
|
@@ -808,9 +808,9 @@ class y2 {
|
|
|
808
808
|
this.applyStyle(this.calcStyle("top"));
|
|
809
809
|
}
|
|
810
810
|
calcStyle(e) {
|
|
811
|
-
const r = this.el.getBoundingClientRect(), n = this.tip.getBoundingClientRect(), o = window.pageYOffset || document.documentElement.scrollTop, s = window.pageXOffset || document.documentElement.scrollLeft, a = 6, [
|
|
812
|
-
let
|
|
813
|
-
return
|
|
811
|
+
const r = this.el.getBoundingClientRect(), n = this.tip.getBoundingClientRect(), o = window.pageYOffset || document.documentElement.scrollTop, s = window.pageXOffset || document.documentElement.scrollLeft, a = 6, [c, d = "center"] = e.split("-");
|
|
812
|
+
let l = 0, u = 0;
|
|
813
|
+
return c === "top" ? l = r.top + o - n.height - a : c === "bottom" ? l = r.bottom + o + a : c === "left" ? u = r.left + s - n.width - a : c === "right" && (u = r.right + s + a), (c === "top" || c === "bottom") && (d === "start" ? u = r.left + s : d === "end" ? u = r.right + s - n.width : u = (r.left + r.right) / 2 + s - n.width / 2), (c === "left" || c === "right") && (d === "start" ? l = r.top + o : d === "end" ? l = r.bottom + o - n.height : l = (r.top + r.bottom) / 2 + o - n.height / 2), { top: Math.round(l), left: Math.round(u) };
|
|
814
814
|
}
|
|
815
815
|
applyStyle({ top: e, left: r }) {
|
|
816
816
|
Object.assign(this.tip.style, {
|
|
@@ -848,11 +848,11 @@ class y2 {
|
|
|
848
848
|
return !!this.tip?.parentNode;
|
|
849
849
|
}
|
|
850
850
|
}
|
|
851
|
-
const
|
|
851
|
+
const Je = "tiny-remoter-native-tooltip-style";
|
|
852
852
|
(() => {
|
|
853
|
-
if (document.getElementById(
|
|
853
|
+
if (document.getElementById(Je)) return;
|
|
854
854
|
const t = document.createElement("style");
|
|
855
|
-
t.id =
|
|
855
|
+
t.id = Je, t.textContent = `
|
|
856
856
|
.tiny-remoter-native-tooltip {
|
|
857
857
|
position: absolute;
|
|
858
858
|
z-index: 9999;
|
|
@@ -901,7 +901,7 @@ const Ve = "tiny-remoter-native-tooltip-style";
|
|
|
901
901
|
}
|
|
902
902
|
`, document.head.appendChild(t);
|
|
903
903
|
})();
|
|
904
|
-
const w2 = "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", v2 = "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", C2 = "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", _2 = "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", b2 = "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", x2 = "https://chat.opentiny.design", L2 = "https://ai.opentiny.design/next-remoter", k2 = "https://ai.opentiny.design/next-remoter/svgs/logo-next-no-bg-left.svg", Je = (t) => {
|
|
904
|
+
const ut = "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", pt = "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", ht = "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", mt = "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", b2 = "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", x2 = "https://chat.opentiny.design", L2 = "https://ai.opentiny.design/next-remoter", k2 = "https://ai.opentiny.design/next-remoter/svgs/logo-next-no-bg-left.svg", S2 = (t) => {
|
|
905
905
|
const e = !!t.sessionId;
|
|
906
906
|
return [
|
|
907
907
|
{
|
|
@@ -909,14 +909,14 @@ const w2 = "data:image/svg+xml,%3csvg%20viewBox='0%200%2040%2039.9692'%20xmlns='
|
|
|
909
909
|
show: e,
|
|
910
910
|
text: "扫码登录",
|
|
911
911
|
desc: "使用手机遥控页面",
|
|
912
|
-
icon:
|
|
912
|
+
icon: mt
|
|
913
913
|
},
|
|
914
914
|
{
|
|
915
915
|
action: "ai-chat",
|
|
916
916
|
show: !0,
|
|
917
917
|
text: "打开对话框",
|
|
918
918
|
desc: "支持在网页端操作AI",
|
|
919
|
-
icon:
|
|
919
|
+
icon: ut
|
|
920
920
|
},
|
|
921
921
|
{
|
|
922
922
|
action: "remote-url",
|
|
@@ -926,7 +926,7 @@ const w2 = "data:image/svg+xml,%3csvg%20viewBox='0%200%2040%2039.9692'%20xmlns='
|
|
|
926
926
|
active: !0,
|
|
927
927
|
tip: t.remoteUrl,
|
|
928
928
|
showCopyIcon: !0,
|
|
929
|
-
icon:
|
|
929
|
+
icon: ht
|
|
930
930
|
},
|
|
931
931
|
{
|
|
932
932
|
action: "remote-control",
|
|
@@ -935,11 +935,11 @@ const w2 = "data:image/svg+xml,%3csvg%20viewBox='0%200%2040%2039.9692'%20xmlns='
|
|
|
935
935
|
desc: e ? `${t.sessionId.slice(-6)}` : "",
|
|
936
936
|
know: !0,
|
|
937
937
|
showCopyIcon: !0,
|
|
938
|
-
icon:
|
|
938
|
+
icon: pt
|
|
939
939
|
}
|
|
940
940
|
];
|
|
941
941
|
};
|
|
942
|
-
class
|
|
942
|
+
class P2 {
|
|
943
943
|
constructor(e) {
|
|
944
944
|
this.isExpanded = !1, this.closingTimer = 0, this.getImageUrl = (r) => {
|
|
945
945
|
if (!r) return;
|
|
@@ -955,7 +955,7 @@ class S2 {
|
|
|
955
955
|
});
|
|
956
956
|
}, this.readyTips = (r) => {
|
|
957
957
|
const n = document.getElementById(r);
|
|
958
|
-
n && new
|
|
958
|
+
n && new _2(n, {
|
|
959
959
|
content: "复制",
|
|
960
960
|
placement: "top",
|
|
961
961
|
trigger: "hover"
|
|
@@ -973,18 +973,21 @@ class S2 {
|
|
|
973
973
|
}
|
|
974
974
|
/**
|
|
975
975
|
* 合并菜单项配置。
|
|
976
|
-
* -
|
|
977
|
-
* -
|
|
976
|
+
* - 用户明确传入 menuItems:直接使用用户配置,不受 sessionId 限制;未传 icon 时自动补充默认图标
|
|
977
|
+
* - 有 sessionId 且未传 menuItems:使用默认菜单
|
|
978
|
+
* - 无 sessionId 且未传 menuItems:不渲染任何下拉菜单,仅保留点击浮标打开对话框的能力
|
|
978
979
|
*/
|
|
979
980
|
mergeMenuItems(e) {
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
981
|
+
const r = {
|
|
982
|
+
"qr-code": mt,
|
|
983
|
+
"ai-chat": ut,
|
|
984
|
+
"remote-url": ht,
|
|
985
|
+
"remote-control": pt
|
|
986
|
+
};
|
|
987
|
+
return e ? e.map((n) => ({
|
|
988
|
+
...n,
|
|
989
|
+
icon: n.icon ?? r[n.action]
|
|
990
|
+
})) : this.options.sessionId ? S2(this.options) : [];
|
|
988
991
|
}
|
|
989
992
|
init() {
|
|
990
993
|
this.createFloatingBlock(), this.createDropdownMenu(), this.bindEvents(), this.addStyles();
|
|
@@ -1008,7 +1011,7 @@ class S2 {
|
|
|
1008
1011
|
<div class="tiny-remoter-dropdown-item__content">
|
|
1009
1012
|
<div title="${r.tip}">${r.text}</div>
|
|
1010
1013
|
<div class="tiny-remoter-dropdown-item__desc-wrapper">
|
|
1011
|
-
<div class="tiny-remoter-dropdown-item__desc ${r.active ? "tiny-remoter-dropdown-item__desc--active" : ""} ${r.know ? "tiny-remoter-dropdown-item__desc--know" : ""}">${r.desc}</div>
|
|
1014
|
+
<div class="tiny-remoter-dropdown-item__desc ${r.active ? "tiny-remoter-dropdown-item__desc--active" : ""} ${r.know ? "tiny-remoter-dropdown-item__desc--know" : ""}">${r.desc ?? ""}</div>
|
|
1012
1015
|
<div>
|
|
1013
1016
|
${r.showCopyIcon ? `
|
|
1014
1017
|
<div class="tiny-remoter-copy-icon" id="${r.action}" data-action="${r.action}">
|
|
@@ -1081,10 +1084,12 @@ class S2 {
|
|
|
1081
1084
|
this.closeDropdown();
|
|
1082
1085
|
}
|
|
1083
1086
|
copyRemoteControl() {
|
|
1084
|
-
this.
|
|
1087
|
+
const e = this.menuItems.find((n) => n.action === "remote-control"), r = e?.desc || e?.text || (this.options.sessionId ? this.options.sessionId.slice(-6) : "");
|
|
1088
|
+
r && this.copyToClipboard(r);
|
|
1085
1089
|
}
|
|
1086
1090
|
copyRemoteURL() {
|
|
1087
|
-
this.options.sessionId
|
|
1091
|
+
const e = this.menuItems.find((s) => s.action === "remote-url"), r = this.options.sessionId ? this.options.remoteUrl + this.sessionPrefix + this.options.sessionId : "", o = (e?.desc && e.desc !== this.options.remoteUrl ? e.desc : void 0) || r || e?.text || "";
|
|
1092
|
+
o && this.copyToClipboard(o);
|
|
1088
1093
|
}
|
|
1089
1094
|
// 实现复制到剪贴板功能
|
|
1090
1095
|
async copyToClipboard(e) {
|
|
@@ -1113,7 +1118,7 @@ class S2 {
|
|
|
1113
1118
|
// 创建二维码弹窗(无 sessionId 时不展示)
|
|
1114
1119
|
async showQRCode() {
|
|
1115
1120
|
if (!this.options.sessionId) return;
|
|
1116
|
-
const r = await new
|
|
1121
|
+
const r = await new v2((this.options.qrCodeUrl || "") + this.sessionPrefix + this.options.sessionId, {}).toDataURL(), n = this.createModal(
|
|
1117
1122
|
"扫码前往智能遥控器",
|
|
1118
1123
|
`
|
|
1119
1124
|
<div style="text-align: center; padding: 32px;">
|
|
@@ -1581,23 +1586,23 @@ class S2 {
|
|
|
1581
1586
|
this.floatingBlock && (this.floatingBlock.style.display = "flex");
|
|
1582
1587
|
}
|
|
1583
1588
|
}
|
|
1584
|
-
const
|
|
1585
|
-
class
|
|
1589
|
+
const jn = (t = {}) => new P2(t);
|
|
1590
|
+
class Ge extends Error {
|
|
1586
1591
|
constructor(e, r) {
|
|
1587
1592
|
super(e), this.name = "ParseError", this.type = r.type, this.field = r.field, this.value = r.value, this.line = r.line;
|
|
1588
1593
|
}
|
|
1589
1594
|
}
|
|
1590
|
-
function
|
|
1595
|
+
function we(t) {
|
|
1591
1596
|
}
|
|
1592
|
-
function
|
|
1597
|
+
function T2(t) {
|
|
1593
1598
|
if (typeof t == "function")
|
|
1594
1599
|
throw new TypeError(
|
|
1595
1600
|
"`callbacks` must be an object, got a function instead. Did you mean `{onEvent: fn}`?"
|
|
1596
1601
|
);
|
|
1597
|
-
const { onEvent: e =
|
|
1598
|
-
let s = "", a = !0,
|
|
1602
|
+
const { onEvent: e = we, onError: r = we, onRetry: n = we, onComment: o } = t;
|
|
1603
|
+
let s = "", a = !0, c, d = "", l = "";
|
|
1599
1604
|
function u(h) {
|
|
1600
|
-
const m = a ? h.replace(/^\xEF\xBB\xBF/, "") : h, [v, b] =
|
|
1605
|
+
const m = a ? h.replace(/^\xEF\xBB\xBF/, "") : h, [v, b] = M2(`${s}${m}`);
|
|
1601
1606
|
for (const x of v)
|
|
1602
1607
|
g(x);
|
|
1603
1608
|
s = b, a = !1;
|
|
@@ -1622,18 +1627,18 @@ function P2(t) {
|
|
|
1622
1627
|
function p(h, m, v) {
|
|
1623
1628
|
switch (h) {
|
|
1624
1629
|
case "event":
|
|
1625
|
-
|
|
1630
|
+
l = m;
|
|
1626
1631
|
break;
|
|
1627
1632
|
case "data":
|
|
1628
1633
|
d = `${d}${m}
|
|
1629
1634
|
`;
|
|
1630
1635
|
break;
|
|
1631
1636
|
case "id":
|
|
1632
|
-
|
|
1637
|
+
c = m.includes("\0") ? void 0 : m;
|
|
1633
1638
|
break;
|
|
1634
1639
|
case "retry":
|
|
1635
1640
|
/^\d+$/.test(m) ? n(parseInt(m, 10)) : r(
|
|
1636
|
-
new
|
|
1641
|
+
new Ge(`Invalid \`retry\` value: "${m}"`, {
|
|
1637
1642
|
type: "invalid-retry",
|
|
1638
1643
|
value: m,
|
|
1639
1644
|
line: v
|
|
@@ -1642,7 +1647,7 @@ function P2(t) {
|
|
|
1642
1647
|
break;
|
|
1643
1648
|
default:
|
|
1644
1649
|
r(
|
|
1645
|
-
new
|
|
1650
|
+
new Ge(
|
|
1646
1651
|
`Unknown field "${h.length > 20 ? `${h.slice(0, 20)}…` : h}"`,
|
|
1647
1652
|
{ type: "unknown-field", field: h, value: m, line: v }
|
|
1648
1653
|
)
|
|
@@ -1652,20 +1657,20 @@ function P2(t) {
|
|
|
1652
1657
|
}
|
|
1653
1658
|
function f() {
|
|
1654
1659
|
d.length > 0 && e({
|
|
1655
|
-
id:
|
|
1656
|
-
event:
|
|
1660
|
+
id: c,
|
|
1661
|
+
event: l || void 0,
|
|
1657
1662
|
// If the data buffer's last character is a U+000A LINE FEED (LF) character,
|
|
1658
1663
|
// then remove the last character from the data buffer.
|
|
1659
1664
|
data: d.endsWith(`
|
|
1660
1665
|
`) ? d.slice(0, -1) : d
|
|
1661
|
-
}),
|
|
1666
|
+
}), c = void 0, d = "", l = "";
|
|
1662
1667
|
}
|
|
1663
1668
|
function y(h = {}) {
|
|
1664
|
-
s && h.consume && g(s), a = !0,
|
|
1669
|
+
s && h.consume && g(s), a = !0, c = void 0, d = "", l = "", s = "";
|
|
1665
1670
|
}
|
|
1666
1671
|
return { feed: u, reset: y };
|
|
1667
1672
|
}
|
|
1668
|
-
function
|
|
1673
|
+
function M2(t) {
|
|
1669
1674
|
const e = [];
|
|
1670
1675
|
let r = "", n = 0;
|
|
1671
1676
|
for (; n < t.length; ) {
|
|
@@ -1676,19 +1681,19 @@ function T2(t) {
|
|
|
1676
1681
|
r = t.slice(n);
|
|
1677
1682
|
break;
|
|
1678
1683
|
} else {
|
|
1679
|
-
const
|
|
1680
|
-
e.push(
|
|
1684
|
+
const c = t.slice(n, a);
|
|
1685
|
+
e.push(c), n = a + 1, t[n - 1] === "\r" && t[n] === `
|
|
1681
1686
|
` && n++;
|
|
1682
1687
|
}
|
|
1683
1688
|
}
|
|
1684
1689
|
return [e, r];
|
|
1685
1690
|
}
|
|
1686
|
-
class
|
|
1691
|
+
class Se extends TransformStream {
|
|
1687
1692
|
constructor({ onError: e, onRetry: r, onComment: n } = {}) {
|
|
1688
1693
|
let o;
|
|
1689
1694
|
super({
|
|
1690
1695
|
start(s) {
|
|
1691
|
-
o =
|
|
1696
|
+
o = T2({
|
|
1692
1697
|
onEvent: (a) => {
|
|
1693
1698
|
s.enqueue(a);
|
|
1694
1699
|
},
|
|
@@ -1705,7 +1710,7 @@ class xe extends TransformStream {
|
|
|
1705
1710
|
});
|
|
1706
1711
|
}
|
|
1707
1712
|
}
|
|
1708
|
-
var
|
|
1713
|
+
var E2 = ({
|
|
1709
1714
|
prefix: t,
|
|
1710
1715
|
size: e = 16,
|
|
1711
1716
|
alphabet: r = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",
|
|
@@ -1713,25 +1718,25 @@ var M2 = ({
|
|
|
1713
1718
|
} = {}) => {
|
|
1714
1719
|
const o = () => {
|
|
1715
1720
|
const s = r.length, a = new Array(e);
|
|
1716
|
-
for (let
|
|
1717
|
-
a[
|
|
1721
|
+
for (let c = 0; c < e; c++)
|
|
1722
|
+
a[c] = r[Math.random() * s | 0];
|
|
1718
1723
|
return a.join("");
|
|
1719
1724
|
};
|
|
1720
1725
|
if (t == null)
|
|
1721
1726
|
return o;
|
|
1722
1727
|
if (r.includes(n))
|
|
1723
|
-
throw new
|
|
1728
|
+
throw new h2({
|
|
1724
1729
|
argument: "separator",
|
|
1725
1730
|
message: `The separator "${n}" must not be part of the alphabet "${r}".`
|
|
1726
1731
|
});
|
|
1727
1732
|
return () => `${t}${n}${o()}`;
|
|
1728
1733
|
};
|
|
1729
|
-
|
|
1730
|
-
function
|
|
1734
|
+
E2();
|
|
1735
|
+
function ft(t = globalThis) {
|
|
1731
1736
|
var e, r, n;
|
|
1732
1737
|
return t.window ? "runtime/browser" : (e = t.navigator) != null && e.userAgent ? `runtime/${t.navigator.userAgent.toLowerCase()}` : (n = (r = t.process) == null ? void 0 : r.versions) != null && n.node ? `runtime/node.js/${t.process.version.substring(0)}` : t.EdgeRuntime ? "runtime/vercel-edge" : "runtime/unknown";
|
|
1733
1738
|
}
|
|
1734
|
-
function
|
|
1739
|
+
function R2(t) {
|
|
1735
1740
|
if (t == null)
|
|
1736
1741
|
return {};
|
|
1737
1742
|
const e = {};
|
|
@@ -1746,19 +1751,19 @@ function E2(t) {
|
|
|
1746
1751
|
}
|
|
1747
1752
|
return e;
|
|
1748
1753
|
}
|
|
1749
|
-
function
|
|
1750
|
-
const r = new Headers(
|
|
1754
|
+
function gt(t, ...e) {
|
|
1755
|
+
const r = new Headers(R2(t)), n = r.get("user-agent") || "";
|
|
1751
1756
|
return r.set(
|
|
1752
1757
|
"user-agent",
|
|
1753
1758
|
[n, ...e].filter(Boolean).join(" ")
|
|
1754
1759
|
), Object.fromEntries(r.entries());
|
|
1755
1760
|
}
|
|
1756
|
-
var
|
|
1757
|
-
function
|
|
1761
|
+
var I2 = /"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*:/, A2 = /"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/;
|
|
1762
|
+
function Ke(t) {
|
|
1758
1763
|
const e = JSON.parse(t);
|
|
1759
|
-
return e === null || typeof e != "object" ||
|
|
1764
|
+
return e === null || typeof e != "object" || I2.test(t) === !1 && A2.test(t) === !1 ? e : O2(e);
|
|
1760
1765
|
}
|
|
1761
|
-
function
|
|
1766
|
+
function O2(t) {
|
|
1762
1767
|
let e = [t];
|
|
1763
1768
|
for (; e.length; ) {
|
|
1764
1769
|
const r = e;
|
|
@@ -1776,20 +1781,20 @@ function A2(t) {
|
|
|
1776
1781
|
}
|
|
1777
1782
|
return t;
|
|
1778
1783
|
}
|
|
1779
|
-
function
|
|
1784
|
+
function $2(t) {
|
|
1780
1785
|
const { stackTraceLimit: e } = Error;
|
|
1781
1786
|
try {
|
|
1782
1787
|
Error.stackTraceLimit = 0;
|
|
1783
1788
|
} catch {
|
|
1784
|
-
return
|
|
1789
|
+
return Ke(t);
|
|
1785
1790
|
}
|
|
1786
1791
|
try {
|
|
1787
|
-
return
|
|
1792
|
+
return Ke(t);
|
|
1788
1793
|
} finally {
|
|
1789
1794
|
Error.stackTraceLimit = e;
|
|
1790
1795
|
}
|
|
1791
1796
|
}
|
|
1792
|
-
function
|
|
1797
|
+
function Oe(t) {
|
|
1793
1798
|
if (t.type === "object" || Array.isArray(t.type) && t.type.includes("object")) {
|
|
1794
1799
|
t.additionalProperties = !1;
|
|
1795
1800
|
const { properties: r } = t;
|
|
@@ -1805,11 +1810,11 @@ function Ae(t) {
|
|
|
1805
1810
|
return t;
|
|
1806
1811
|
}
|
|
1807
1812
|
function q(t) {
|
|
1808
|
-
return typeof t == "boolean" ? t :
|
|
1813
|
+
return typeof t == "boolean" ? t : Oe(t);
|
|
1809
1814
|
}
|
|
1810
|
-
var
|
|
1815
|
+
var U2 = Symbol(
|
|
1811
1816
|
"Let zodToJsonSchema decide on which parser to use"
|
|
1812
|
-
),
|
|
1817
|
+
), Ye = {
|
|
1813
1818
|
name: void 0,
|
|
1814
1819
|
$refStrategy: "root",
|
|
1815
1820
|
basePath: ["#"],
|
|
@@ -1829,17 +1834,17 @@ var $2 = Symbol(
|
|
|
1829
1834
|
emailStrategy: "format:email",
|
|
1830
1835
|
base64Strategy: "contentEncoding:base64",
|
|
1831
1836
|
nameStrategy: "ref"
|
|
1832
|
-
},
|
|
1833
|
-
...
|
|
1837
|
+
}, N2 = (t) => typeof t == "string" ? {
|
|
1838
|
+
...Ye,
|
|
1834
1839
|
name: t
|
|
1835
1840
|
} : {
|
|
1836
|
-
...
|
|
1841
|
+
...Ye,
|
|
1837
1842
|
...t
|
|
1838
1843
|
};
|
|
1839
1844
|
function T() {
|
|
1840
1845
|
return {};
|
|
1841
1846
|
}
|
|
1842
|
-
function
|
|
1847
|
+
function j2(t, e) {
|
|
1843
1848
|
var r, n, o;
|
|
1844
1849
|
const s = {
|
|
1845
1850
|
type: "array"
|
|
@@ -1849,7 +1854,7 @@ function N2(t, e) {
|
|
|
1849
1854
|
currentPath: [...e.currentPath, "items"]
|
|
1850
1855
|
})), t.minLength && (s.minItems = t.minLength.value), t.maxLength && (s.maxItems = t.maxLength.value), t.exactLength && (s.minItems = t.exactLength.value, s.maxItems = t.exactLength.value), s;
|
|
1851
1856
|
}
|
|
1852
|
-
function
|
|
1857
|
+
function Z2(t) {
|
|
1853
1858
|
const e = {
|
|
1854
1859
|
type: "integer",
|
|
1855
1860
|
format: "int64"
|
|
@@ -1869,18 +1874,18 @@ function j2(t) {
|
|
|
1869
1874
|
}
|
|
1870
1875
|
return e;
|
|
1871
1876
|
}
|
|
1872
|
-
function
|
|
1877
|
+
function q2() {
|
|
1873
1878
|
return { type: "boolean" };
|
|
1874
1879
|
}
|
|
1875
|
-
function
|
|
1880
|
+
function yt(t, e) {
|
|
1876
1881
|
return _(t.type._def, e);
|
|
1877
1882
|
}
|
|
1878
|
-
var
|
|
1879
|
-
function
|
|
1883
|
+
var z2 = (t, e) => _(t.innerType._def, e);
|
|
1884
|
+
function wt(t, e, r) {
|
|
1880
1885
|
const n = r ?? e.dateStrategy;
|
|
1881
1886
|
if (Array.isArray(n))
|
|
1882
1887
|
return {
|
|
1883
|
-
anyOf: n.map((o, s) =>
|
|
1888
|
+
anyOf: n.map((o, s) => wt(t, e, o))
|
|
1884
1889
|
};
|
|
1885
1890
|
switch (n) {
|
|
1886
1891
|
case "string":
|
|
@@ -1895,10 +1900,10 @@ function ht(t, e, r) {
|
|
|
1895
1900
|
format: "date"
|
|
1896
1901
|
};
|
|
1897
1902
|
case "integer":
|
|
1898
|
-
return
|
|
1903
|
+
return D2(t);
|
|
1899
1904
|
}
|
|
1900
1905
|
}
|
|
1901
|
-
var
|
|
1906
|
+
var D2 = (t) => {
|
|
1902
1907
|
const e = {
|
|
1903
1908
|
type: "integer",
|
|
1904
1909
|
format: "unix-time"
|
|
@@ -1914,23 +1919,23 @@ var z2 = (t) => {
|
|
|
1914
1919
|
}
|
|
1915
1920
|
return e;
|
|
1916
1921
|
};
|
|
1917
|
-
function
|
|
1922
|
+
function H2(t, e) {
|
|
1918
1923
|
return {
|
|
1919
1924
|
..._(t.innerType._def, e),
|
|
1920
1925
|
default: t.defaultValue()
|
|
1921
1926
|
};
|
|
1922
1927
|
}
|
|
1923
|
-
function
|
|
1928
|
+
function F2(t, e) {
|
|
1924
1929
|
return e.effectStrategy === "input" ? _(t.schema._def, e) : T();
|
|
1925
1930
|
}
|
|
1926
|
-
function
|
|
1931
|
+
function B2(t) {
|
|
1927
1932
|
return {
|
|
1928
1933
|
type: "string",
|
|
1929
1934
|
enum: Array.from(t.values)
|
|
1930
1935
|
};
|
|
1931
1936
|
}
|
|
1932
|
-
var
|
|
1933
|
-
function
|
|
1937
|
+
var V2 = (t) => "type" in t && t.type === "string" ? !1 : "allOf" in t;
|
|
1938
|
+
function W2(t, e) {
|
|
1934
1939
|
const r = [
|
|
1935
1940
|
_(t.left._def, {
|
|
1936
1941
|
...e,
|
|
@@ -1942,13 +1947,13 @@ function V2(t, e) {
|
|
|
1942
1947
|
})
|
|
1943
1948
|
].filter((o) => !!o), n = [];
|
|
1944
1949
|
return r.forEach((o) => {
|
|
1945
|
-
if (
|
|
1950
|
+
if (V2(o))
|
|
1946
1951
|
n.push(...o.allOf);
|
|
1947
1952
|
else {
|
|
1948
1953
|
let s = o;
|
|
1949
1954
|
if ("additionalProperties" in o && o.additionalProperties === !1) {
|
|
1950
|
-
const { additionalProperties: a, ...
|
|
1951
|
-
s =
|
|
1955
|
+
const { additionalProperties: a, ...c } = o;
|
|
1956
|
+
s = c;
|
|
1952
1957
|
}
|
|
1953
1958
|
n.push(s);
|
|
1954
1959
|
}
|
|
@@ -1963,7 +1968,7 @@ function J2(t) {
|
|
|
1963
1968
|
const: t.value
|
|
1964
1969
|
};
|
|
1965
1970
|
}
|
|
1966
|
-
var
|
|
1971
|
+
var ve = void 0, O = {
|
|
1967
1972
|
/**
|
|
1968
1973
|
* `c` was changed to `[cC]` to replicate /i flag
|
|
1969
1974
|
*/
|
|
@@ -1985,10 +1990,10 @@ var ge = void 0, O = {
|
|
|
1985
1990
|
* Fix in Zod:
|
|
1986
1991
|
* https://github.com/colinhacks/zod/commit/9340fd51e48576a75adc919bff65dbc4a5d4c99b
|
|
1987
1992
|
*/
|
|
1988
|
-
emoji: () => (
|
|
1993
|
+
emoji: () => (ve === void 0 && (ve = RegExp(
|
|
1989
1994
|
"^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",
|
|
1990
1995
|
"u"
|
|
1991
|
-
)),
|
|
1996
|
+
)), ve),
|
|
1992
1997
|
/**
|
|
1993
1998
|
* Unused
|
|
1994
1999
|
*/
|
|
@@ -2008,7 +2013,7 @@ var ge = void 0, O = {
|
|
|
2008
2013
|
nanoid: /^[a-zA-Z0-9_-]{21}$/,
|
|
2009
2014
|
jwt: /^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/
|
|
2010
2015
|
};
|
|
2011
|
-
function
|
|
2016
|
+
function vt(t, e) {
|
|
2012
2017
|
const r = {
|
|
2013
2018
|
type: "string"
|
|
2014
2019
|
};
|
|
@@ -2052,7 +2057,7 @@ function mt(t, e) {
|
|
|
2052
2057
|
case "startsWith":
|
|
2053
2058
|
k(
|
|
2054
2059
|
r,
|
|
2055
|
-
RegExp(`^${
|
|
2060
|
+
RegExp(`^${Ce(n.value, e)}`),
|
|
2056
2061
|
n.message,
|
|
2057
2062
|
e
|
|
2058
2063
|
);
|
|
@@ -2060,7 +2065,7 @@ function mt(t, e) {
|
|
|
2060
2065
|
case "endsWith":
|
|
2061
2066
|
k(
|
|
2062
2067
|
r,
|
|
2063
|
-
RegExp(`${
|
|
2068
|
+
RegExp(`${Ce(n.value, e)}$`),
|
|
2064
2069
|
n.message,
|
|
2065
2070
|
e
|
|
2066
2071
|
);
|
|
@@ -2083,7 +2088,7 @@ function mt(t, e) {
|
|
|
2083
2088
|
case "includes": {
|
|
2084
2089
|
k(
|
|
2085
2090
|
r,
|
|
2086
|
-
RegExp(
|
|
2091
|
+
RegExp(Ce(n.value, e)),
|
|
2087
2092
|
n.message,
|
|
2088
2093
|
e
|
|
2089
2094
|
);
|
|
@@ -2132,16 +2137,16 @@ function mt(t, e) {
|
|
|
2132
2137
|
}
|
|
2133
2138
|
return r;
|
|
2134
2139
|
}
|
|
2135
|
-
function
|
|
2136
|
-
return e.patternStrategy === "escape" ?
|
|
2140
|
+
function Ce(t, e) {
|
|
2141
|
+
return e.patternStrategy === "escape" ? K2(t) : t;
|
|
2137
2142
|
}
|
|
2138
|
-
var
|
|
2143
|
+
var G2 = new Set(
|
|
2139
2144
|
"ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789"
|
|
2140
2145
|
);
|
|
2141
|
-
function
|
|
2146
|
+
function K2(t) {
|
|
2142
2147
|
let e = "";
|
|
2143
2148
|
for (let r = 0; r < t.length; r++)
|
|
2144
|
-
|
|
2149
|
+
G2.has(t[r]) || (e += "\\"), e += t[r];
|
|
2145
2150
|
return e;
|
|
2146
2151
|
}
|
|
2147
2152
|
function $(t, e, r, n) {
|
|
@@ -2158,11 +2163,11 @@ function k(t, e, r, n) {
|
|
|
2158
2163
|
t.pattern || (o = t.allOf) != null && o.some((s) => s.pattern) ? (t.allOf || (t.allOf = []), t.pattern && (t.allOf.push({
|
|
2159
2164
|
pattern: t.pattern
|
|
2160
2165
|
}), delete t.pattern), t.allOf.push({
|
|
2161
|
-
pattern:
|
|
2166
|
+
pattern: Qe(e, n),
|
|
2162
2167
|
...r && n.errorMessages && { errorMessage: { pattern: r } }
|
|
2163
|
-
})) : t.pattern =
|
|
2168
|
+
})) : t.pattern = Qe(e, n);
|
|
2164
2169
|
}
|
|
2165
|
-
function
|
|
2170
|
+
function Qe(t, e) {
|
|
2166
2171
|
var r;
|
|
2167
2172
|
if (!e.applyRegexFlags || !t.flags)
|
|
2168
2173
|
return t.source;
|
|
@@ -2174,41 +2179,41 @@ function Ye(t, e) {
|
|
|
2174
2179
|
s: t.flags.includes("s")
|
|
2175
2180
|
// `.` matches newlines
|
|
2176
2181
|
}, o = n.i ? t.source.toLowerCase() : t.source;
|
|
2177
|
-
let s = "", a = !1,
|
|
2178
|
-
for (let
|
|
2182
|
+
let s = "", a = !1, c = !1, d = !1;
|
|
2183
|
+
for (let l = 0; l < o.length; l++) {
|
|
2179
2184
|
if (a) {
|
|
2180
|
-
s += o[
|
|
2185
|
+
s += o[l], a = !1;
|
|
2181
2186
|
continue;
|
|
2182
2187
|
}
|
|
2183
2188
|
if (n.i) {
|
|
2184
|
-
if (
|
|
2185
|
-
if (o[
|
|
2186
|
-
d ? (s += o[
|
|
2189
|
+
if (c) {
|
|
2190
|
+
if (o[l].match(/[a-z]/)) {
|
|
2191
|
+
d ? (s += o[l], s += `${o[l - 2]}-${o[l]}`.toUpperCase(), d = !1) : o[l + 1] === "-" && ((r = o[l + 2]) != null && r.match(/[a-z]/)) ? (s += o[l], d = !0) : s += `${o[l]}${o[l].toUpperCase()}`;
|
|
2187
2192
|
continue;
|
|
2188
2193
|
}
|
|
2189
|
-
} else if (o[
|
|
2190
|
-
s += `[${o[
|
|
2194
|
+
} else if (o[l].match(/[a-z]/)) {
|
|
2195
|
+
s += `[${o[l]}${o[l].toUpperCase()}]`;
|
|
2191
2196
|
continue;
|
|
2192
2197
|
}
|
|
2193
2198
|
}
|
|
2194
2199
|
if (n.m) {
|
|
2195
|
-
if (o[
|
|
2200
|
+
if (o[l] === "^") {
|
|
2196
2201
|
s += `(^|(?<=[\r
|
|
2197
2202
|
]))`;
|
|
2198
2203
|
continue;
|
|
2199
|
-
} else if (o[
|
|
2204
|
+
} else if (o[l] === "$") {
|
|
2200
2205
|
s += `($|(?=[\r
|
|
2201
2206
|
]))`;
|
|
2202
2207
|
continue;
|
|
2203
2208
|
}
|
|
2204
2209
|
}
|
|
2205
|
-
if (n.s && o[
|
|
2206
|
-
s +=
|
|
2207
|
-
` : `[${o[
|
|
2210
|
+
if (n.s && o[l] === ".") {
|
|
2211
|
+
s += c ? `${o[l]}\r
|
|
2212
|
+
` : `[${o[l]}\r
|
|
2208
2213
|
]`;
|
|
2209
2214
|
continue;
|
|
2210
2215
|
}
|
|
2211
|
-
s += o[
|
|
2216
|
+
s += o[l], o[l] === "\\" ? a = !0 : c && o[l] === "]" ? c = !1 : !c && o[l] === "[" && (c = !0);
|
|
2212
2217
|
}
|
|
2213
2218
|
try {
|
|
2214
2219
|
new RegExp(s);
|
|
@@ -2221,8 +2226,8 @@ function Ye(t, e) {
|
|
|
2221
2226
|
}
|
|
2222
2227
|
return s;
|
|
2223
2228
|
}
|
|
2224
|
-
function
|
|
2225
|
-
var r, n, o, s, a,
|
|
2229
|
+
function Ct(t, e) {
|
|
2230
|
+
var r, n, o, s, a, c;
|
|
2226
2231
|
const d = {
|
|
2227
2232
|
type: "object",
|
|
2228
2233
|
additionalProperties: (r = _(t.valueType._def, {
|
|
@@ -2231,7 +2236,7 @@ function ft(t, e) {
|
|
|
2231
2236
|
})) != null ? r : e.allowedAdditionalProperties
|
|
2232
2237
|
};
|
|
2233
2238
|
if (((n = t.keyType) == null ? void 0 : n._def.typeName) === w.ZodString && ((o = t.keyType._def.checks) != null && o.length)) {
|
|
2234
|
-
const { type:
|
|
2239
|
+
const { type: l, ...u } = vt(t.keyType._def, e);
|
|
2235
2240
|
return {
|
|
2236
2241
|
...d,
|
|
2237
2242
|
propertyNames: u
|
|
@@ -2244,8 +2249,8 @@ function ft(t, e) {
|
|
|
2244
2249
|
enum: t.keyType._def.values
|
|
2245
2250
|
}
|
|
2246
2251
|
};
|
|
2247
|
-
if (((a = t.keyType) == null ? void 0 : a._def.typeName) === w.ZodBranded && t.keyType._def.type._def.typeName === w.ZodString && ((
|
|
2248
|
-
const { type:
|
|
2252
|
+
if (((a = t.keyType) == null ? void 0 : a._def.typeName) === w.ZodBranded && t.keyType._def.type._def.typeName === w.ZodString && ((c = t.keyType._def.type._def.checks) != null && c.length)) {
|
|
2253
|
+
const { type: l, ...u } = yt(
|
|
2249
2254
|
t.keyType._def,
|
|
2250
2255
|
e
|
|
2251
2256
|
);
|
|
@@ -2257,9 +2262,9 @@ function ft(t, e) {
|
|
|
2257
2262
|
}
|
|
2258
2263
|
return d;
|
|
2259
2264
|
}
|
|
2260
|
-
function
|
|
2265
|
+
function Y2(t, e) {
|
|
2261
2266
|
if (e.mapStrategy === "record")
|
|
2262
|
-
return
|
|
2267
|
+
return Ct(t, e);
|
|
2263
2268
|
const r = _(t.keyType._def, {
|
|
2264
2269
|
...e,
|
|
2265
2270
|
currentPath: [...e.currentPath, "items", "items", "0"]
|
|
@@ -2278,7 +2283,7 @@ function K2(t, e) {
|
|
|
2278
2283
|
}
|
|
2279
2284
|
};
|
|
2280
2285
|
}
|
|
2281
|
-
function
|
|
2286
|
+
function Q2(t) {
|
|
2282
2287
|
const e = t.values, n = Object.keys(t.values).filter((s) => typeof e[e[s]] != "number").map((s) => e[s]), o = Array.from(
|
|
2283
2288
|
new Set(n.map((s) => typeof s))
|
|
2284
2289
|
);
|
|
@@ -2287,28 +2292,28 @@ function Y2(t) {
|
|
|
2287
2292
|
enum: n
|
|
2288
2293
|
};
|
|
2289
2294
|
}
|
|
2290
|
-
function
|
|
2295
|
+
function X2() {
|
|
2291
2296
|
return { not: T() };
|
|
2292
2297
|
}
|
|
2293
|
-
function
|
|
2298
|
+
function er() {
|
|
2294
2299
|
return {
|
|
2295
2300
|
type: "null"
|
|
2296
2301
|
};
|
|
2297
2302
|
}
|
|
2298
|
-
var
|
|
2303
|
+
var Pe = {
|
|
2299
2304
|
ZodString: "string",
|
|
2300
2305
|
ZodNumber: "number",
|
|
2301
2306
|
ZodBigInt: "integer",
|
|
2302
2307
|
ZodBoolean: "boolean",
|
|
2303
2308
|
ZodNull: "null"
|
|
2304
2309
|
};
|
|
2305
|
-
function
|
|
2310
|
+
function tr(t, e) {
|
|
2306
2311
|
const r = t.options instanceof Map ? Array.from(t.options.values()) : t.options;
|
|
2307
2312
|
if (r.every(
|
|
2308
|
-
(n) => n._def.typeName in
|
|
2313
|
+
(n) => n._def.typeName in Pe && (!n._def.checks || !n._def.checks.length)
|
|
2309
2314
|
)) {
|
|
2310
2315
|
const n = r.reduce((o, s) => {
|
|
2311
|
-
const a =
|
|
2316
|
+
const a = Pe[s._def.typeName];
|
|
2312
2317
|
return a && !o.includes(a) ? [...o, a] : o;
|
|
2313
2318
|
}, []);
|
|
2314
2319
|
return {
|
|
@@ -2337,7 +2342,7 @@ function e0(t, e) {
|
|
|
2337
2342
|
[]
|
|
2338
2343
|
);
|
|
2339
2344
|
if (n.length === r.length) {
|
|
2340
|
-
const o = n.filter((s, a,
|
|
2345
|
+
const o = n.filter((s, a, c) => c.indexOf(s) === a);
|
|
2341
2346
|
return {
|
|
2342
2347
|
type: o.length > 1 ? o : o[0],
|
|
2343
2348
|
enum: r.reduce(
|
|
@@ -2357,9 +2362,9 @@ function e0(t, e) {
|
|
|
2357
2362
|
[]
|
|
2358
2363
|
)
|
|
2359
2364
|
};
|
|
2360
|
-
return
|
|
2365
|
+
return rr(t, e);
|
|
2361
2366
|
}
|
|
2362
|
-
var
|
|
2367
|
+
var rr = (t, e) => {
|
|
2363
2368
|
const r = (t.options instanceof Map ? Array.from(t.options.values()) : t.options).map(
|
|
2364
2369
|
(n, o) => _(n._def, {
|
|
2365
2370
|
...e,
|
|
@@ -2370,13 +2375,13 @@ var t0 = (t, e) => {
|
|
|
2370
2375
|
);
|
|
2371
2376
|
return r.length ? { anyOf: r } : void 0;
|
|
2372
2377
|
};
|
|
2373
|
-
function
|
|
2378
|
+
function nr(t, e) {
|
|
2374
2379
|
if (["ZodString", "ZodNumber", "ZodBigInt", "ZodBoolean", "ZodNull"].includes(
|
|
2375
2380
|
t.innerType._def.typeName
|
|
2376
2381
|
) && (!t.innerType._def.checks || !t.innerType._def.checks.length))
|
|
2377
2382
|
return {
|
|
2378
2383
|
type: [
|
|
2379
|
-
|
|
2384
|
+
Pe[t.innerType._def.typeName],
|
|
2380
2385
|
"null"
|
|
2381
2386
|
]
|
|
2382
2387
|
};
|
|
@@ -2386,7 +2391,7 @@ function r0(t, e) {
|
|
|
2386
2391
|
});
|
|
2387
2392
|
return r && { anyOf: [r, { type: "null" }] };
|
|
2388
2393
|
}
|
|
2389
|
-
function
|
|
2394
|
+
function or(t) {
|
|
2390
2395
|
const e = {
|
|
2391
2396
|
type: "number"
|
|
2392
2397
|
};
|
|
@@ -2408,27 +2413,27 @@ function n0(t) {
|
|
|
2408
2413
|
}
|
|
2409
2414
|
return e;
|
|
2410
2415
|
}
|
|
2411
|
-
function
|
|
2416
|
+
function sr(t, e) {
|
|
2412
2417
|
const r = {
|
|
2413
2418
|
type: "object",
|
|
2414
2419
|
properties: {}
|
|
2415
2420
|
}, n = [], o = t.shape();
|
|
2416
2421
|
for (const a in o) {
|
|
2417
|
-
let
|
|
2418
|
-
if (
|
|
2422
|
+
let c = o[a];
|
|
2423
|
+
if (c === void 0 || c._def === void 0)
|
|
2419
2424
|
continue;
|
|
2420
|
-
const d =
|
|
2425
|
+
const d = ar(c), l = _(c._def, {
|
|
2421
2426
|
...e,
|
|
2422
2427
|
currentPath: [...e.currentPath, "properties", a],
|
|
2423
2428
|
propertyPath: [...e.currentPath, "properties", a]
|
|
2424
2429
|
});
|
|
2425
|
-
|
|
2430
|
+
l !== void 0 && (r.properties[a] = l, d || n.push(a));
|
|
2426
2431
|
}
|
|
2427
2432
|
n.length && (r.required = n);
|
|
2428
|
-
const s =
|
|
2433
|
+
const s = ir(t, e);
|
|
2429
2434
|
return s !== void 0 && (r.additionalProperties = s), r;
|
|
2430
2435
|
}
|
|
2431
|
-
function
|
|
2436
|
+
function ir(t, e) {
|
|
2432
2437
|
if (t.catchall._def.typeName !== "ZodNever")
|
|
2433
2438
|
return _(t.catchall._def, {
|
|
2434
2439
|
...e,
|
|
@@ -2443,14 +2448,14 @@ function s0(t, e) {
|
|
|
2443
2448
|
return e.removeAdditionalStrategy === "strict" ? e.allowedAdditionalProperties : e.rejectedAdditionalProperties;
|
|
2444
2449
|
}
|
|
2445
2450
|
}
|
|
2446
|
-
function
|
|
2451
|
+
function ar(t) {
|
|
2447
2452
|
try {
|
|
2448
2453
|
return t.isOptional();
|
|
2449
2454
|
} catch {
|
|
2450
2455
|
return !0;
|
|
2451
2456
|
}
|
|
2452
2457
|
}
|
|
2453
|
-
var
|
|
2458
|
+
var cr = (t, e) => {
|
|
2454
2459
|
var r;
|
|
2455
2460
|
if (e.currentPath.toString() === ((r = e.propertyPath) == null ? void 0 : r.toString()))
|
|
2456
2461
|
return _(t.innerType._def, e);
|
|
@@ -2459,7 +2464,7 @@ var a0 = (t, e) => {
|
|
|
2459
2464
|
currentPath: [...e.currentPath, "anyOf", "1"]
|
|
2460
2465
|
});
|
|
2461
2466
|
return n ? { anyOf: [{ not: T() }, n] } : T();
|
|
2462
|
-
},
|
|
2467
|
+
}, lr = (t, e) => {
|
|
2463
2468
|
if (e.pipeStrategy === "input")
|
|
2464
2469
|
return _(t.in._def, e);
|
|
2465
2470
|
if (e.pipeStrategy === "output")
|
|
@@ -2475,10 +2480,10 @@ var a0 = (t, e) => {
|
|
|
2475
2480
|
allOf: [r, n].filter((o) => o !== void 0)
|
|
2476
2481
|
};
|
|
2477
2482
|
};
|
|
2478
|
-
function
|
|
2483
|
+
function dr(t, e) {
|
|
2479
2484
|
return _(t.type._def, e);
|
|
2480
2485
|
}
|
|
2481
|
-
function
|
|
2486
|
+
function ur(t, e) {
|
|
2482
2487
|
const n = {
|
|
2483
2488
|
type: "array",
|
|
2484
2489
|
uniqueItems: !0,
|
|
@@ -2489,7 +2494,7 @@ function d0(t, e) {
|
|
|
2489
2494
|
};
|
|
2490
2495
|
return t.minSize && (n.minItems = t.minSize.value), t.maxSize && (n.maxItems = t.maxSize.value), n;
|
|
2491
2496
|
}
|
|
2492
|
-
function
|
|
2497
|
+
function pr(t, e) {
|
|
2493
2498
|
return t.rest ? {
|
|
2494
2499
|
type: "array",
|
|
2495
2500
|
minItems: t.items.length,
|
|
@@ -2521,80 +2526,80 @@ function u0(t, e) {
|
|
|
2521
2526
|
)
|
|
2522
2527
|
};
|
|
2523
2528
|
}
|
|
2524
|
-
function
|
|
2529
|
+
function hr() {
|
|
2525
2530
|
return {
|
|
2526
2531
|
not: T()
|
|
2527
2532
|
};
|
|
2528
2533
|
}
|
|
2529
|
-
function
|
|
2534
|
+
function mr() {
|
|
2530
2535
|
return T();
|
|
2531
2536
|
}
|
|
2532
|
-
var
|
|
2537
|
+
var fr = (t, e) => _(t.innerType._def, e), gr = (t, e, r) => {
|
|
2533
2538
|
switch (e) {
|
|
2534
2539
|
case w.ZodString:
|
|
2535
|
-
return
|
|
2540
|
+
return vt(t, r);
|
|
2536
2541
|
case w.ZodNumber:
|
|
2537
|
-
return
|
|
2542
|
+
return or(t);
|
|
2538
2543
|
case w.ZodObject:
|
|
2539
|
-
return
|
|
2544
|
+
return sr(t, r);
|
|
2540
2545
|
case w.ZodBigInt:
|
|
2541
|
-
return
|
|
2546
|
+
return Z2(t);
|
|
2542
2547
|
case w.ZodBoolean:
|
|
2543
|
-
return
|
|
2548
|
+
return q2();
|
|
2544
2549
|
case w.ZodDate:
|
|
2545
|
-
return
|
|
2550
|
+
return wt(t, r);
|
|
2546
2551
|
case w.ZodUndefined:
|
|
2547
|
-
return
|
|
2552
|
+
return hr();
|
|
2548
2553
|
case w.ZodNull:
|
|
2549
|
-
return
|
|
2554
|
+
return er();
|
|
2550
2555
|
case w.ZodArray:
|
|
2551
|
-
return
|
|
2556
|
+
return j2(t, r);
|
|
2552
2557
|
case w.ZodUnion:
|
|
2553
2558
|
case w.ZodDiscriminatedUnion:
|
|
2554
|
-
return
|
|
2559
|
+
return tr(t, r);
|
|
2555
2560
|
case w.ZodIntersection:
|
|
2556
|
-
return
|
|
2561
|
+
return W2(t, r);
|
|
2557
2562
|
case w.ZodTuple:
|
|
2558
|
-
return
|
|
2563
|
+
return pr(t, r);
|
|
2559
2564
|
case w.ZodRecord:
|
|
2560
|
-
return
|
|
2565
|
+
return Ct(t, r);
|
|
2561
2566
|
case w.ZodLiteral:
|
|
2562
2567
|
return J2(t);
|
|
2563
2568
|
case w.ZodEnum:
|
|
2564
|
-
return
|
|
2569
|
+
return B2(t);
|
|
2565
2570
|
case w.ZodNativeEnum:
|
|
2566
|
-
return
|
|
2571
|
+
return Q2(t);
|
|
2567
2572
|
case w.ZodNullable:
|
|
2568
|
-
return
|
|
2573
|
+
return nr(t, r);
|
|
2569
2574
|
case w.ZodOptional:
|
|
2570
|
-
return
|
|
2575
|
+
return cr(t, r);
|
|
2571
2576
|
case w.ZodMap:
|
|
2572
|
-
return
|
|
2577
|
+
return Y2(t, r);
|
|
2573
2578
|
case w.ZodSet:
|
|
2574
|
-
return
|
|
2579
|
+
return ur(t, r);
|
|
2575
2580
|
case w.ZodLazy:
|
|
2576
2581
|
return () => t.getter()._def;
|
|
2577
2582
|
case w.ZodPromise:
|
|
2578
|
-
return
|
|
2583
|
+
return dr(t, r);
|
|
2579
2584
|
case w.ZodNaN:
|
|
2580
2585
|
case w.ZodNever:
|
|
2581
|
-
return
|
|
2586
|
+
return X2();
|
|
2582
2587
|
case w.ZodEffects:
|
|
2583
|
-
return
|
|
2588
|
+
return F2(t, r);
|
|
2584
2589
|
case w.ZodAny:
|
|
2585
2590
|
return T();
|
|
2586
2591
|
case w.ZodUnknown:
|
|
2587
|
-
return
|
|
2592
|
+
return mr();
|
|
2588
2593
|
case w.ZodDefault:
|
|
2589
|
-
return
|
|
2594
|
+
return H2(t, r);
|
|
2590
2595
|
case w.ZodBranded:
|
|
2591
|
-
return
|
|
2596
|
+
return yt(t, r);
|
|
2592
2597
|
case w.ZodReadonly:
|
|
2593
|
-
return
|
|
2598
|
+
return fr(t, r);
|
|
2594
2599
|
case w.ZodCatch:
|
|
2595
|
-
return
|
|
2600
|
+
return z2(t, r);
|
|
2596
2601
|
case w.ZodPipeline:
|
|
2597
|
-
return
|
|
2602
|
+
return lr(t, r);
|
|
2598
2603
|
case w.ZodFunction:
|
|
2599
2604
|
case w.ZodVoid:
|
|
2600
2605
|
case w.ZodSymbol:
|
|
@@ -2603,7 +2608,7 @@ var m0 = (t, e) => _(t.innerType._def, e), f0 = (t, e, r) => {
|
|
|
2603
2608
|
return /* @__PURE__ */ ((n) => {
|
|
2604
2609
|
})();
|
|
2605
2610
|
}
|
|
2606
|
-
},
|
|
2611
|
+
}, yr = (t, e) => {
|
|
2607
2612
|
let r = 0;
|
|
2608
2613
|
for (; r < t.length && r < e.length && t[r] === e[r]; r++)
|
|
2609
2614
|
;
|
|
@@ -2620,29 +2625,29 @@ function _(t, e, r = !1) {
|
|
|
2620
2625
|
o,
|
|
2621
2626
|
r
|
|
2622
2627
|
);
|
|
2623
|
-
if (d !==
|
|
2628
|
+
if (d !== U2)
|
|
2624
2629
|
return d;
|
|
2625
2630
|
}
|
|
2626
2631
|
if (o && !r) {
|
|
2627
|
-
const d =
|
|
2632
|
+
const d = wr(o, e);
|
|
2628
2633
|
if (d !== void 0)
|
|
2629
2634
|
return d;
|
|
2630
2635
|
}
|
|
2631
2636
|
const s = { def: t, path: e.currentPath, jsonSchema: void 0 };
|
|
2632
2637
|
e.seen.set(t, s);
|
|
2633
|
-
const a =
|
|
2634
|
-
if (
|
|
2635
|
-
const d = e.postProcess(
|
|
2636
|
-
return s.jsonSchema =
|
|
2638
|
+
const a = gr(t, t.typeName, e), c = typeof a == "function" ? _(a(), e) : a;
|
|
2639
|
+
if (c && vr(t, e, c), e.postProcess) {
|
|
2640
|
+
const d = e.postProcess(c, t, e);
|
|
2641
|
+
return s.jsonSchema = c, d;
|
|
2637
2642
|
}
|
|
2638
|
-
return s.jsonSchema =
|
|
2643
|
+
return s.jsonSchema = c, c;
|
|
2639
2644
|
}
|
|
2640
|
-
var
|
|
2645
|
+
var wr = (t, e) => {
|
|
2641
2646
|
switch (e.$refStrategy) {
|
|
2642
2647
|
case "root":
|
|
2643
2648
|
return { $ref: t.path.join("/") };
|
|
2644
2649
|
case "relative":
|
|
2645
|
-
return { $ref:
|
|
2650
|
+
return { $ref: yr(e.currentPath, t.path) };
|
|
2646
2651
|
case "none":
|
|
2647
2652
|
case "seen":
|
|
2648
2653
|
return t.path.length < e.currentPath.length && t.path.every((r, n) => e.currentPath[n] === r) ? (console.warn(
|
|
@@ -2651,8 +2656,8 @@ var y0 = (t, e) => {
|
|
|
2651
2656
|
)}! Defaulting to any`
|
|
2652
2657
|
), T()) : e.$refStrategy === "seen" ? T() : void 0;
|
|
2653
2658
|
}
|
|
2654
|
-
},
|
|
2655
|
-
const e =
|
|
2659
|
+
}, vr = (t, e, r) => (t.description && (r.description = t.description), r), Cr = (t) => {
|
|
2660
|
+
const e = N2(t), r = e.name !== void 0 ? [...e.basePath, e.definitionPath, e.name] : e.basePath;
|
|
2656
2661
|
return {
|
|
2657
2662
|
...e,
|
|
2658
2663
|
currentPath: r,
|
|
@@ -2669,14 +2674,14 @@ var y0 = (t, e) => {
|
|
|
2669
2674
|
])
|
|
2670
2675
|
)
|
|
2671
2676
|
};
|
|
2672
|
-
},
|
|
2677
|
+
}, _r = (t, e) => {
|
|
2673
2678
|
var r;
|
|
2674
|
-
const n =
|
|
2679
|
+
const n = Cr(e);
|
|
2675
2680
|
let o = typeof e == "object" && e.definitions ? Object.entries(e.definitions).reduce(
|
|
2676
|
-
(
|
|
2681
|
+
(l, [u, g]) => {
|
|
2677
2682
|
var p;
|
|
2678
2683
|
return {
|
|
2679
|
-
...
|
|
2684
|
+
...l,
|
|
2680
2685
|
[u]: (p = _(
|
|
2681
2686
|
g._def,
|
|
2682
2687
|
{
|
|
@@ -2696,8 +2701,8 @@ var y0 = (t, e) => {
|
|
|
2696
2701
|
currentPath: [...n.basePath, n.definitionPath, s]
|
|
2697
2702
|
},
|
|
2698
2703
|
!1
|
|
2699
|
-
)) != null ? r : T(),
|
|
2700
|
-
|
|
2704
|
+
)) != null ? r : T(), c = typeof e == "object" && e.name !== void 0 && e.nameStrategy === "title" ? e.name : void 0;
|
|
2705
|
+
c !== void 0 && (a.title = c);
|
|
2701
2706
|
const d = s === void 0 ? o ? {
|
|
2702
2707
|
...a,
|
|
2703
2708
|
[n.definitionPath]: o
|
|
@@ -2713,12 +2718,12 @@ var y0 = (t, e) => {
|
|
|
2713
2718
|
}
|
|
2714
2719
|
};
|
|
2715
2720
|
return d.$schema = "http://json-schema.org/draft-07/schema#", d;
|
|
2716
|
-
},
|
|
2717
|
-
function
|
|
2721
|
+
}, Te = Symbol.for("vercel.ai.schema");
|
|
2722
|
+
function Q(t, {
|
|
2718
2723
|
validate: e
|
|
2719
2724
|
} = {}) {
|
|
2720
2725
|
return {
|
|
2721
|
-
[
|
|
2726
|
+
[Te]: !0,
|
|
2722
2727
|
_type: void 0,
|
|
2723
2728
|
// should never be used directly
|
|
2724
2729
|
get jsonSchema() {
|
|
@@ -2727,15 +2732,15 @@ function K(t, {
|
|
|
2727
2732
|
validate: e
|
|
2728
2733
|
};
|
|
2729
2734
|
}
|
|
2730
|
-
function
|
|
2731
|
-
return typeof t == "object" && t !== null &&
|
|
2735
|
+
function br(t) {
|
|
2736
|
+
return typeof t == "object" && t !== null && Te in t && t[Te] === !0 && "jsonSchema" in t && "validate" in t;
|
|
2732
2737
|
}
|
|
2733
|
-
function
|
|
2734
|
-
return t == null ?
|
|
2738
|
+
function _t(t) {
|
|
2739
|
+
return t == null ? Q({ properties: {}, additionalProperties: !1 }) : br(t) ? t : "~standard" in t ? t["~standard"].vendor === "zod" ? Pr(t) : xr(t) : t();
|
|
2735
2740
|
}
|
|
2736
|
-
function
|
|
2737
|
-
return
|
|
2738
|
-
() =>
|
|
2741
|
+
function xr(t) {
|
|
2742
|
+
return Q(
|
|
2743
|
+
() => Oe(
|
|
2739
2744
|
t["~standard"].jsonSchema.input({
|
|
2740
2745
|
target: "draft-07"
|
|
2741
2746
|
})
|
|
@@ -2745,7 +2750,7 @@ function b0(t) {
|
|
|
2745
2750
|
const r = await t["~standard"].validate(e);
|
|
2746
2751
|
return "value" in r ? { success: !0, value: r.value } : {
|
|
2747
2752
|
success: !1,
|
|
2748
|
-
error: new
|
|
2753
|
+
error: new xe({
|
|
2749
2754
|
value: e,
|
|
2750
2755
|
cause: r.issues
|
|
2751
2756
|
})
|
|
@@ -2754,12 +2759,12 @@ function b0(t) {
|
|
|
2754
2759
|
}
|
|
2755
2760
|
);
|
|
2756
2761
|
}
|
|
2757
|
-
function
|
|
2762
|
+
function Lr(t, e) {
|
|
2758
2763
|
var r;
|
|
2759
2764
|
const n = (r = void 0) != null ? r : !1;
|
|
2760
|
-
return
|
|
2765
|
+
return Q(
|
|
2761
2766
|
// defer json schema creation to avoid unnecessary computation when only validation is needed
|
|
2762
|
-
() =>
|
|
2767
|
+
() => _r(t, {
|
|
2763
2768
|
$refStrategy: n ? "root" : "none"
|
|
2764
2769
|
}),
|
|
2765
2770
|
{
|
|
@@ -2770,13 +2775,13 @@ function x0(t, e) {
|
|
|
2770
2775
|
}
|
|
2771
2776
|
);
|
|
2772
2777
|
}
|
|
2773
|
-
function
|
|
2778
|
+
function kr(t, e) {
|
|
2774
2779
|
var r;
|
|
2775
2780
|
const n = (r = void 0) != null ? r : !1;
|
|
2776
|
-
return
|
|
2781
|
+
return Q(
|
|
2777
2782
|
// defer json schema creation to avoid unnecessary computation when only validation is needed
|
|
2778
|
-
() =>
|
|
2779
|
-
|
|
2783
|
+
() => Oe(
|
|
2784
|
+
Ve.toJSONSchema(t, {
|
|
2780
2785
|
target: "draft-7",
|
|
2781
2786
|
io: "input",
|
|
2782
2787
|
reused: n ? "ref" : "inline"
|
|
@@ -2784,91 +2789,91 @@ function L0(t, e) {
|
|
|
2784
2789
|
),
|
|
2785
2790
|
{
|
|
2786
2791
|
validate: async (o) => {
|
|
2787
|
-
const s = await
|
|
2792
|
+
const s = await Ve.safeParseAsync(t, o);
|
|
2788
2793
|
return s.success ? { success: !0, value: s.data } : { success: !1, error: s.error };
|
|
2789
2794
|
}
|
|
2790
2795
|
}
|
|
2791
2796
|
);
|
|
2792
2797
|
}
|
|
2793
|
-
function
|
|
2798
|
+
function Sr(t) {
|
|
2794
2799
|
return "_zod" in t;
|
|
2795
2800
|
}
|
|
2796
|
-
function
|
|
2797
|
-
return
|
|
2801
|
+
function Pr(t, e) {
|
|
2802
|
+
return Sr(t) ? kr(t) : Lr(t);
|
|
2798
2803
|
}
|
|
2799
|
-
async function
|
|
2804
|
+
async function bt({
|
|
2800
2805
|
value: t,
|
|
2801
2806
|
schema: e,
|
|
2802
2807
|
context: r
|
|
2803
2808
|
}) {
|
|
2804
|
-
const n =
|
|
2809
|
+
const n = _t(e);
|
|
2805
2810
|
try {
|
|
2806
2811
|
if (n.validate == null)
|
|
2807
2812
|
return { success: !0, value: t, rawValue: t };
|
|
2808
2813
|
const o = await n.validate(t);
|
|
2809
2814
|
return o.success ? { success: !0, value: o.value, rawValue: t } : {
|
|
2810
2815
|
success: !1,
|
|
2811
|
-
error:
|
|
2816
|
+
error: xe.wrap({ value: t, cause: o.error, context: r }),
|
|
2812
2817
|
rawValue: t
|
|
2813
2818
|
};
|
|
2814
2819
|
} catch (o) {
|
|
2815
2820
|
return {
|
|
2816
2821
|
success: !1,
|
|
2817
|
-
error:
|
|
2822
|
+
error: xe.wrap({ value: t, cause: o, context: r }),
|
|
2818
2823
|
rawValue: t
|
|
2819
2824
|
};
|
|
2820
2825
|
}
|
|
2821
2826
|
}
|
|
2822
|
-
async function
|
|
2827
|
+
async function Tr({
|
|
2823
2828
|
text: t,
|
|
2824
2829
|
schema: e
|
|
2825
2830
|
}) {
|
|
2826
2831
|
try {
|
|
2827
|
-
const r =
|
|
2828
|
-
return e == null ? { success: !0, value: r, rawValue: r } : await
|
|
2832
|
+
const r = $2(t);
|
|
2833
|
+
return e == null ? { success: !0, value: r, rawValue: r } : await bt({ value: r, schema: e });
|
|
2829
2834
|
} catch (r) {
|
|
2830
2835
|
return {
|
|
2831
2836
|
success: !1,
|
|
2832
|
-
error:
|
|
2837
|
+
error: Be.isInstance(r) ? r : new Be({ text: t, cause: r }),
|
|
2833
2838
|
rawValue: void 0
|
|
2834
2839
|
};
|
|
2835
2840
|
}
|
|
2836
2841
|
}
|
|
2837
|
-
function
|
|
2842
|
+
function Mr(t) {
|
|
2838
2843
|
return { ...t, type: "dynamic" };
|
|
2839
2844
|
}
|
|
2840
|
-
let
|
|
2841
|
-
|
|
2842
|
-
async function
|
|
2843
|
-
return (await
|
|
2845
|
+
let $e;
|
|
2846
|
+
$e = globalThis.crypto;
|
|
2847
|
+
async function Er(t) {
|
|
2848
|
+
return (await $e).getRandomValues(new Uint8Array(t));
|
|
2844
2849
|
}
|
|
2845
|
-
async function
|
|
2850
|
+
async function Rr(t) {
|
|
2846
2851
|
const e = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._~", r = Math.pow(2, 8) - Math.pow(2, 8) % e.length;
|
|
2847
2852
|
let n = "";
|
|
2848
2853
|
for (; n.length < t; ) {
|
|
2849
|
-
const o = await
|
|
2854
|
+
const o = await Er(t - n.length);
|
|
2850
2855
|
for (const s of o)
|
|
2851
2856
|
s < r && (n += e[s % e.length]);
|
|
2852
2857
|
}
|
|
2853
2858
|
return n;
|
|
2854
2859
|
}
|
|
2855
|
-
async function
|
|
2856
|
-
return await
|
|
2860
|
+
async function Ir(t) {
|
|
2861
|
+
return await Rr(t);
|
|
2857
2862
|
}
|
|
2858
|
-
async function
|
|
2859
|
-
const e = await (await
|
|
2863
|
+
async function Ar(t) {
|
|
2864
|
+
const e = await (await $e).subtle.digest("SHA-256", new TextEncoder().encode(t));
|
|
2860
2865
|
return btoa(String.fromCharCode(...new Uint8Array(e))).replace(/\//g, "_").replace(/\+/g, "-").replace(/=/g, "");
|
|
2861
2866
|
}
|
|
2862
|
-
async function
|
|
2867
|
+
async function Or(t) {
|
|
2863
2868
|
if (t || (t = 43), t < 43 || t > 128)
|
|
2864
2869
|
throw `Expected a length between 43 and 128. Received ${t}.`;
|
|
2865
|
-
const e = await
|
|
2870
|
+
const e = await Ir(t), r = await Ar(e);
|
|
2866
2871
|
return {
|
|
2867
2872
|
code_verifier: e,
|
|
2868
2873
|
code_challenge: r
|
|
2869
2874
|
};
|
|
2870
2875
|
}
|
|
2871
|
-
var
|
|
2876
|
+
var $r = "AI_MCPClientError", xt = `vercel.ai.error.${$r}`, Ur = Symbol.for(xt), Xe, et, C = class extends (et = oe, Xe = Ur, et) {
|
|
2872
2877
|
constructor({
|
|
2873
2878
|
name: t = "MCPClientError",
|
|
2874
2879
|
message: e,
|
|
@@ -2876,26 +2881,26 @@ var O0 = "AI_MCPClientError", wt = `vercel.ai.error.${O0}`, $0 = Symbol.for(wt),
|
|
|
2876
2881
|
data: n,
|
|
2877
2882
|
code: o
|
|
2878
2883
|
}) {
|
|
2879
|
-
super({ name: t, message: e, cause: r }), this[
|
|
2884
|
+
super({ name: t, message: e, cause: r }), this[Xe] = !0, this.data = n, this.code = o;
|
|
2880
2885
|
}
|
|
2881
2886
|
static isInstance(t) {
|
|
2882
|
-
return
|
|
2887
|
+
return oe.hasMarker(t, xt);
|
|
2883
2888
|
}
|
|
2884
|
-
}, B = "2025-06-18",
|
|
2889
|
+
}, B = "2025-06-18", Nr = [
|
|
2885
2890
|
B,
|
|
2886
2891
|
"2025-03-26",
|
|
2887
2892
|
"2024-11-05"
|
|
2888
|
-
],
|
|
2893
|
+
], jr = i.optional(i.record(i.string(), i.unknown())), Zr = i.looseObject({
|
|
2889
2894
|
name: i.string(),
|
|
2890
2895
|
version: i.string()
|
|
2891
|
-
}),
|
|
2896
|
+
}), fe = i.looseObject({
|
|
2892
2897
|
_meta: i.optional(i.object({}).loose())
|
|
2893
|
-
}), N =
|
|
2898
|
+
}), N = fe, Lt = i.object({
|
|
2894
2899
|
method: i.string(),
|
|
2895
|
-
params: i.optional(
|
|
2896
|
-
}),
|
|
2900
|
+
params: i.optional(fe)
|
|
2901
|
+
}), kt = i.object({
|
|
2897
2902
|
applyDefaults: i.optional(i.boolean())
|
|
2898
|
-
}).loose(),
|
|
2903
|
+
}).loose(), qr = i.looseObject({
|
|
2899
2904
|
experimental: i.optional(i.object({}).loose()),
|
|
2900
2905
|
logging: i.optional(i.object({}).loose()),
|
|
2901
2906
|
prompts: i.optional(
|
|
@@ -2914,19 +2919,19 @@ var O0 = "AI_MCPClientError", wt = `vercel.ai.error.${O0}`, $0 = Symbol.for(wt),
|
|
|
2914
2919
|
listChanged: i.optional(i.boolean())
|
|
2915
2920
|
})
|
|
2916
2921
|
),
|
|
2917
|
-
elicitation: i.optional(
|
|
2922
|
+
elicitation: i.optional(kt)
|
|
2918
2923
|
});
|
|
2919
2924
|
i.object({
|
|
2920
|
-
elicitation: i.optional(
|
|
2925
|
+
elicitation: i.optional(kt)
|
|
2921
2926
|
}).loose();
|
|
2922
|
-
var
|
|
2927
|
+
var zr = N.extend({
|
|
2923
2928
|
protocolVersion: i.string(),
|
|
2924
|
-
capabilities:
|
|
2925
|
-
serverInfo:
|
|
2929
|
+
capabilities: qr,
|
|
2930
|
+
serverInfo: Zr,
|
|
2926
2931
|
instructions: i.optional(i.string())
|
|
2927
|
-
}),
|
|
2932
|
+
}), Ue = N.extend({
|
|
2928
2933
|
nextCursor: i.optional(i.string())
|
|
2929
|
-
}),
|
|
2934
|
+
}), Dr = i.object({
|
|
2930
2935
|
name: i.string(),
|
|
2931
2936
|
/**
|
|
2932
2937
|
* @see https://modelcontextprotocol.io/specification/2025-11-25/server/tools#tool
|
|
@@ -2946,26 +2951,26 @@ var q0 = N.extend({
|
|
|
2946
2951
|
title: i.optional(i.string())
|
|
2947
2952
|
}).loose()
|
|
2948
2953
|
),
|
|
2949
|
-
_meta:
|
|
2950
|
-
}).loose(),
|
|
2951
|
-
tools: i.array(
|
|
2952
|
-
}),
|
|
2954
|
+
_meta: jr
|
|
2955
|
+
}).loose(), Hr = Ue.extend({
|
|
2956
|
+
tools: i.array(Dr)
|
|
2957
|
+
}), St = i.object({
|
|
2953
2958
|
type: i.literal("text"),
|
|
2954
2959
|
text: i.string()
|
|
2955
|
-
}).loose(),
|
|
2960
|
+
}).loose(), Pt = i.object({
|
|
2956
2961
|
type: i.literal("image"),
|
|
2957
2962
|
data: i.base64(),
|
|
2958
2963
|
mimeType: i.string()
|
|
2959
|
-
}).loose(),
|
|
2964
|
+
}).loose(), Fr = i.object({
|
|
2960
2965
|
uri: i.string(),
|
|
2961
2966
|
name: i.string(),
|
|
2962
2967
|
title: i.optional(i.string()),
|
|
2963
2968
|
description: i.optional(i.string()),
|
|
2964
2969
|
mimeType: i.optional(i.string()),
|
|
2965
2970
|
size: i.optional(i.number())
|
|
2966
|
-
}).loose(),
|
|
2967
|
-
resources: i.array(
|
|
2968
|
-
}),
|
|
2971
|
+
}).loose(), Br = Ue.extend({
|
|
2972
|
+
resources: i.array(Fr)
|
|
2973
|
+
}), Tt = i.object({
|
|
2969
2974
|
/**
|
|
2970
2975
|
* The URI of this resource.
|
|
2971
2976
|
*/
|
|
@@ -2982,16 +2987,16 @@ var q0 = N.extend({
|
|
|
2982
2987
|
* The MIME type of this resource, if known.
|
|
2983
2988
|
*/
|
|
2984
2989
|
mimeType: i.optional(i.string())
|
|
2985
|
-
}).loose(),
|
|
2990
|
+
}).loose(), Mt = Tt.extend({
|
|
2986
2991
|
text: i.string()
|
|
2987
|
-
}),
|
|
2992
|
+
}), Et = Tt.extend({
|
|
2988
2993
|
blob: i.base64()
|
|
2989
|
-
}),
|
|
2994
|
+
}), Rt = i.object({
|
|
2990
2995
|
type: i.literal("resource"),
|
|
2991
|
-
resource: i.union([
|
|
2992
|
-
}).loose(),
|
|
2996
|
+
resource: i.union([Mt, Et])
|
|
2997
|
+
}).loose(), Vr = N.extend({
|
|
2993
2998
|
content: i.array(
|
|
2994
|
-
i.union([
|
|
2999
|
+
i.union([St, Pt, Rt])
|
|
2995
3000
|
),
|
|
2996
3001
|
/**
|
|
2997
3002
|
* @see https://modelcontextprotocol.io/specification/2025-06-18/server/tools#structured-content
|
|
@@ -3002,80 +3007,80 @@ var q0 = N.extend({
|
|
|
3002
3007
|
N.extend({
|
|
3003
3008
|
toolResult: i.unknown()
|
|
3004
3009
|
})
|
|
3005
|
-
),
|
|
3010
|
+
), Wr = i.object({
|
|
3006
3011
|
uriTemplate: i.string(),
|
|
3007
3012
|
name: i.string(),
|
|
3008
3013
|
title: i.optional(i.string()),
|
|
3009
3014
|
description: i.optional(i.string()),
|
|
3010
3015
|
mimeType: i.optional(i.string())
|
|
3011
|
-
}).loose(),
|
|
3012
|
-
resourceTemplates: i.array(
|
|
3013
|
-
}),
|
|
3016
|
+
}).loose(), Jr = N.extend({
|
|
3017
|
+
resourceTemplates: i.array(Wr)
|
|
3018
|
+
}), Gr = N.extend({
|
|
3014
3019
|
contents: i.array(
|
|
3015
|
-
i.union([
|
|
3020
|
+
i.union([Mt, Et])
|
|
3016
3021
|
)
|
|
3017
|
-
}),
|
|
3022
|
+
}), Kr = i.object({
|
|
3018
3023
|
name: i.string(),
|
|
3019
3024
|
description: i.optional(i.string()),
|
|
3020
3025
|
required: i.optional(i.boolean())
|
|
3021
|
-
}).loose(),
|
|
3026
|
+
}).loose(), Yr = i.object({
|
|
3022
3027
|
name: i.string(),
|
|
3023
3028
|
title: i.optional(i.string()),
|
|
3024
3029
|
description: i.optional(i.string()),
|
|
3025
|
-
arguments: i.optional(i.array(
|
|
3026
|
-
}).loose(),
|
|
3027
|
-
prompts: i.array(
|
|
3028
|
-
}),
|
|
3030
|
+
arguments: i.optional(i.array(Kr))
|
|
3031
|
+
}).loose(), Qr = Ue.extend({
|
|
3032
|
+
prompts: i.array(Yr)
|
|
3033
|
+
}), Xr = i.object({
|
|
3029
3034
|
role: i.union([i.literal("user"), i.literal("assistant")]),
|
|
3030
3035
|
content: i.union([
|
|
3031
|
-
|
|
3032
|
-
|
|
3033
|
-
|
|
3036
|
+
St,
|
|
3037
|
+
Pt,
|
|
3038
|
+
Rt
|
|
3034
3039
|
])
|
|
3035
|
-
}).loose(),
|
|
3040
|
+
}).loose(), e0 = N.extend({
|
|
3036
3041
|
description: i.optional(i.string()),
|
|
3037
|
-
messages: i.array(
|
|
3038
|
-
}),
|
|
3042
|
+
messages: i.array(Xr)
|
|
3043
|
+
}), t0 = fe.extend({
|
|
3039
3044
|
message: i.string(),
|
|
3040
3045
|
requestedSchema: i.unknown()
|
|
3041
|
-
}),
|
|
3046
|
+
}), tt = Lt.extend({
|
|
3042
3047
|
method: i.literal("elicitation/create"),
|
|
3043
|
-
params:
|
|
3044
|
-
}),
|
|
3048
|
+
params: t0
|
|
3049
|
+
}), r0 = N.extend({
|
|
3045
3050
|
action: i.union([
|
|
3046
3051
|
i.literal("accept"),
|
|
3047
3052
|
i.literal("decline"),
|
|
3048
3053
|
i.literal("cancel")
|
|
3049
3054
|
]),
|
|
3050
3055
|
content: i.optional(i.record(i.string(), i.unknown()))
|
|
3051
|
-
}),
|
|
3052
|
-
jsonrpc: i.literal(
|
|
3056
|
+
}), ge = "2.0", n0 = i.object({
|
|
3057
|
+
jsonrpc: i.literal(ge),
|
|
3053
3058
|
id: i.union([i.string(), i.number().int()])
|
|
3054
|
-
}).merge(
|
|
3055
|
-
jsonrpc: i.literal(
|
|
3059
|
+
}).merge(Lt).strict(), o0 = i.object({
|
|
3060
|
+
jsonrpc: i.literal(ge),
|
|
3056
3061
|
id: i.union([i.string(), i.number().int()]),
|
|
3057
3062
|
result: N
|
|
3058
|
-
}).strict(),
|
|
3059
|
-
jsonrpc: i.literal(
|
|
3063
|
+
}).strict(), s0 = i.object({
|
|
3064
|
+
jsonrpc: i.literal(ge),
|
|
3060
3065
|
id: i.union([i.string(), i.number().int()]),
|
|
3061
3066
|
error: i.object({
|
|
3062
3067
|
code: i.number().int(),
|
|
3063
3068
|
message: i.string(),
|
|
3064
3069
|
data: i.optional(i.unknown())
|
|
3065
3070
|
})
|
|
3066
|
-
}).strict(),
|
|
3067
|
-
jsonrpc: i.literal(
|
|
3071
|
+
}).strict(), i0 = i.object({
|
|
3072
|
+
jsonrpc: i.literal(ge)
|
|
3068
3073
|
}).merge(
|
|
3069
3074
|
i.object({
|
|
3070
3075
|
method: i.string(),
|
|
3071
|
-
params: i.optional(
|
|
3076
|
+
params: i.optional(fe)
|
|
3072
3077
|
})
|
|
3073
|
-
).strict(),
|
|
3074
|
-
|
|
3075
|
-
|
|
3076
|
-
|
|
3077
|
-
|
|
3078
|
-
]),
|
|
3078
|
+
).strict(), K = i.union([
|
|
3079
|
+
n0,
|
|
3080
|
+
i0,
|
|
3081
|
+
o0,
|
|
3082
|
+
s0
|
|
3083
|
+
]), It = typeof __PACKAGE_VERSION__ < "u" ? __PACKAGE_VERSION__ : "0.0.0-test", At = i.object({
|
|
3079
3084
|
access_token: i.string(),
|
|
3080
3085
|
id_token: i.string().optional(),
|
|
3081
3086
|
// Optional for OAuth 2.1, but necessary in OpenID Connect
|
|
@@ -3096,7 +3101,7 @@ var q0 = N.extend({
|
|
|
3096
3101
|
return e.protocol !== "javascript:" && e.protocol !== "data:" && e.protocol !== "vbscript:";
|
|
3097
3102
|
},
|
|
3098
3103
|
{ message: "URL cannot use javascript:, data:, or vbscript: scheme" }
|
|
3099
|
-
),
|
|
3104
|
+
), a0 = i.object({
|
|
3100
3105
|
resource: i.string().url(),
|
|
3101
3106
|
authorization_servers: i.array(S).optional(),
|
|
3102
3107
|
jwks_uri: i.string().url().optional(),
|
|
@@ -3111,7 +3116,7 @@ var q0 = N.extend({
|
|
|
3111
3116
|
authorization_details_types_supported: i.array(i.string()).optional(),
|
|
3112
3117
|
dpop_signing_alg_values_supported: i.array(i.string()).optional(),
|
|
3113
3118
|
dpop_bound_access_tokens_required: i.boolean().optional()
|
|
3114
|
-
}).passthrough(),
|
|
3119
|
+
}).passthrough(), Ot = i.object({
|
|
3115
3120
|
issuer: i.string(),
|
|
3116
3121
|
authorization_endpoint: S,
|
|
3117
3122
|
token_endpoint: S,
|
|
@@ -3122,7 +3127,7 @@ var q0 = N.extend({
|
|
|
3122
3127
|
code_challenge_methods_supported: i.array(i.string()),
|
|
3123
3128
|
token_endpoint_auth_methods_supported: i.array(i.string()).optional(),
|
|
3124
3129
|
token_endpoint_auth_signing_alg_values_supported: i.array(i.string()).optional()
|
|
3125
|
-
}).passthrough(),
|
|
3130
|
+
}).passthrough(), c0 = i.object({
|
|
3126
3131
|
issuer: i.string(),
|
|
3127
3132
|
authorization_endpoint: S,
|
|
3128
3133
|
token_endpoint: S,
|
|
@@ -3136,16 +3141,16 @@ var q0 = N.extend({
|
|
|
3136
3141
|
id_token_signing_alg_values_supported: i.array(i.string()),
|
|
3137
3142
|
claims_supported: i.array(i.string()).optional(),
|
|
3138
3143
|
token_endpoint_auth_methods_supported: i.array(i.string()).optional()
|
|
3139
|
-
}).passthrough(),
|
|
3140
|
-
|
|
3144
|
+
}).passthrough(), l0 = c0.merge(
|
|
3145
|
+
Ot.pick({
|
|
3141
3146
|
code_challenge_methods_supported: !0
|
|
3142
3147
|
})
|
|
3143
|
-
),
|
|
3148
|
+
), d0 = i.object({
|
|
3144
3149
|
client_id: i.string(),
|
|
3145
3150
|
client_secret: i.string().optional(),
|
|
3146
3151
|
client_id_issued_at: i.number().optional(),
|
|
3147
3152
|
client_secret_expires_at: i.number().optional()
|
|
3148
|
-
}).strip(),
|
|
3153
|
+
}).strip(), u0 = i.object({
|
|
3149
3154
|
redirect_uris: i.array(S),
|
|
3150
3155
|
token_endpoint_auth_method: i.string().optional(),
|
|
3151
3156
|
grant_types: i.array(i.string()).optional(),
|
|
@@ -3162,46 +3167,46 @@ var q0 = N.extend({
|
|
|
3162
3167
|
software_id: i.string().optional(),
|
|
3163
3168
|
software_version: i.string().optional(),
|
|
3164
3169
|
software_statement: i.string().optional()
|
|
3165
|
-
}).strip(),
|
|
3170
|
+
}).strip(), p0 = i.object({
|
|
3166
3171
|
error: i.string(),
|
|
3167
3172
|
error_description: i.string().optional(),
|
|
3168
3173
|
error_uri: i.string().optional()
|
|
3169
|
-
}),
|
|
3170
|
-
|
|
3171
|
-
),
|
|
3174
|
+
}), h0 = u0.merge(
|
|
3175
|
+
d0
|
|
3176
|
+
), m0 = "AI_MCPClientOAuthError", $t = `vercel.ai.error.${m0}`, f0 = Symbol.for($t), rt, nt, X = class extends (nt = oe, rt = f0, nt) {
|
|
3172
3177
|
constructor({
|
|
3173
3178
|
name: t = "MCPClientOAuthError",
|
|
3174
3179
|
message: e,
|
|
3175
3180
|
cause: r
|
|
3176
3181
|
}) {
|
|
3177
|
-
super({ name: t, message: e, cause: r }), this[
|
|
3182
|
+
super({ name: t, message: e, cause: r }), this[rt] = !0;
|
|
3178
3183
|
}
|
|
3179
3184
|
static isInstance(t) {
|
|
3180
|
-
return
|
|
3185
|
+
return oe.hasMarker(t, $t);
|
|
3181
3186
|
}
|
|
3182
|
-
}, H = class extends
|
|
3187
|
+
}, H = class extends X {
|
|
3183
3188
|
};
|
|
3184
3189
|
H.errorCode = "server_error";
|
|
3185
|
-
var
|
|
3190
|
+
var se = class extends X {
|
|
3186
3191
|
};
|
|
3187
|
-
|
|
3188
|
-
var
|
|
3192
|
+
se.errorCode = "invalid_client";
|
|
3193
|
+
var ie = class extends X {
|
|
3189
3194
|
};
|
|
3190
|
-
|
|
3191
|
-
var
|
|
3195
|
+
ie.errorCode = "invalid_grant";
|
|
3196
|
+
var ae = class extends X {
|
|
3192
3197
|
};
|
|
3193
|
-
|
|
3194
|
-
var
|
|
3198
|
+
ae.errorCode = "unauthorized_client";
|
|
3199
|
+
var g0 = {
|
|
3195
3200
|
[H.errorCode]: H,
|
|
3196
|
-
[oe.errorCode]: oe,
|
|
3197
3201
|
[se.errorCode]: se,
|
|
3198
|
-
[ie.errorCode]: ie
|
|
3202
|
+
[ie.errorCode]: ie,
|
|
3203
|
+
[ae.errorCode]: ae
|
|
3199
3204
|
};
|
|
3200
|
-
function
|
|
3205
|
+
function y0(t) {
|
|
3201
3206
|
const e = typeof t == "string" ? new URL(t) : new URL(t.href);
|
|
3202
3207
|
return e.hash = "", e;
|
|
3203
3208
|
}
|
|
3204
|
-
function
|
|
3209
|
+
function w0({
|
|
3205
3210
|
requestedResource: t,
|
|
3206
3211
|
configuredResource: e
|
|
3207
3212
|
}) {
|
|
@@ -3211,12 +3216,12 @@ function yr({
|
|
|
3211
3216
|
const o = r.pathname.endsWith("/") ? r.pathname : r.pathname + "/", s = n.pathname.endsWith("/") ? n.pathname : n.pathname + "/";
|
|
3212
3217
|
return o.startsWith(s);
|
|
3213
3218
|
}
|
|
3214
|
-
var
|
|
3219
|
+
var ce = class extends Error {
|
|
3215
3220
|
constructor(t = "Unauthorized") {
|
|
3216
3221
|
super(t), this.name = "UnauthorizedError";
|
|
3217
3222
|
}
|
|
3218
3223
|
};
|
|
3219
|
-
function
|
|
3224
|
+
function le(t) {
|
|
3220
3225
|
var e;
|
|
3221
3226
|
const r = (e = t.headers.get("www-authenticate")) != null ? e : t.headers.get("WWW-Authenticate");
|
|
3222
3227
|
if (!r)
|
|
@@ -3232,45 +3237,45 @@ function ce(t) {
|
|
|
3232
3237
|
return;
|
|
3233
3238
|
}
|
|
3234
3239
|
}
|
|
3235
|
-
function
|
|
3240
|
+
function v0(t, e = "", r = {}) {
|
|
3236
3241
|
return e.endsWith("/") && (e = e.slice(0, -1)), r.prependPathname ? `${e}/.well-known/${t}` : `/.well-known/${t}${e}`;
|
|
3237
3242
|
}
|
|
3238
|
-
async function
|
|
3243
|
+
async function Ne(t, e, r = fetch) {
|
|
3239
3244
|
try {
|
|
3240
3245
|
return await r(t, { headers: e });
|
|
3241
3246
|
} catch (n) {
|
|
3242
3247
|
if (n instanceof TypeError)
|
|
3243
|
-
return e ?
|
|
3248
|
+
return e ? Ne(t, void 0, r) : void 0;
|
|
3244
3249
|
throw n;
|
|
3245
3250
|
}
|
|
3246
3251
|
}
|
|
3247
|
-
async function
|
|
3248
|
-
return await
|
|
3252
|
+
async function ot(t, e, r = fetch) {
|
|
3253
|
+
return await Ne(t, {
|
|
3249
3254
|
"MCP-Protocol-Version": e
|
|
3250
3255
|
}, r);
|
|
3251
3256
|
}
|
|
3252
|
-
function
|
|
3257
|
+
function C0(t, e) {
|
|
3253
3258
|
return !t || t.status >= 400 && t.status < 500 && e !== "/";
|
|
3254
3259
|
}
|
|
3255
|
-
async function
|
|
3260
|
+
async function _0(t, e, r, n) {
|
|
3256
3261
|
var o, s;
|
|
3257
|
-
const a = new URL(t),
|
|
3262
|
+
const a = new URL(t), c = (o = n?.protocolVersion) != null ? o : B;
|
|
3258
3263
|
let d;
|
|
3259
3264
|
if (n?.metadataUrl)
|
|
3260
3265
|
d = new URL(n.metadataUrl);
|
|
3261
3266
|
else {
|
|
3262
|
-
const u =
|
|
3267
|
+
const u = v0(e, a.pathname);
|
|
3263
3268
|
d = new URL(u, (s = n?.metadataServerUrl) != null ? s : a), d.search = a.search;
|
|
3264
3269
|
}
|
|
3265
|
-
let
|
|
3266
|
-
if (!n?.metadataUrl &&
|
|
3270
|
+
let l = await ot(d, c, r);
|
|
3271
|
+
if (!n?.metadataUrl && C0(l, a.pathname)) {
|
|
3267
3272
|
const u = new URL(`/.well-known/${e}`, a);
|
|
3268
|
-
|
|
3273
|
+
l = await ot(u, c, r);
|
|
3269
3274
|
}
|
|
3270
|
-
return
|
|
3275
|
+
return l;
|
|
3271
3276
|
}
|
|
3272
|
-
async function
|
|
3273
|
-
const n = await
|
|
3277
|
+
async function b0(t, e, r = fetch) {
|
|
3278
|
+
const n = await _0(
|
|
3274
3279
|
t,
|
|
3275
3280
|
"oauth-protected-resource",
|
|
3276
3281
|
r,
|
|
@@ -3287,9 +3292,9 @@ async function _r(t, e, r = fetch) {
|
|
|
3287
3292
|
throw new Error(
|
|
3288
3293
|
`HTTP ${n.status} trying to load well-known OAuth protected resource metadata.`
|
|
3289
3294
|
);
|
|
3290
|
-
return
|
|
3295
|
+
return a0.parse(await n.json());
|
|
3291
3296
|
}
|
|
3292
|
-
function
|
|
3297
|
+
function x0(t) {
|
|
3293
3298
|
const e = typeof t == "string" ? new URL(t) : t, r = e.pathname !== "/", n = [];
|
|
3294
3299
|
if (!r)
|
|
3295
3300
|
return n.push({
|
|
@@ -3317,38 +3322,38 @@ function br(t) {
|
|
|
3317
3322
|
type: "oidc"
|
|
3318
3323
|
}), n;
|
|
3319
3324
|
}
|
|
3320
|
-
async function
|
|
3325
|
+
async function L0(t, {
|
|
3321
3326
|
fetchFn: e = fetch,
|
|
3322
3327
|
protocolVersion: r = B
|
|
3323
3328
|
} = {}) {
|
|
3324
3329
|
var n;
|
|
3325
|
-
const o = { "MCP-Protocol-Version": r }, s =
|
|
3326
|
-
for (const { url: a, type:
|
|
3327
|
-
const d = await
|
|
3330
|
+
const o = { "MCP-Protocol-Version": r }, s = x0(t);
|
|
3331
|
+
for (const { url: a, type: c } of s) {
|
|
3332
|
+
const d = await Ne(a, o, e);
|
|
3328
3333
|
if (d) {
|
|
3329
3334
|
if (!d.ok) {
|
|
3330
3335
|
if (d.status >= 400 && d.status < 500)
|
|
3331
3336
|
continue;
|
|
3332
3337
|
throw new Error(
|
|
3333
|
-
`HTTP ${d.status} trying to load ${
|
|
3338
|
+
`HTTP ${d.status} trying to load ${c === "oauth" ? "OAuth" : "OpenID provider"} metadata from ${a}`
|
|
3334
3339
|
);
|
|
3335
3340
|
}
|
|
3336
|
-
if (
|
|
3337
|
-
return
|
|
3341
|
+
if (c === "oauth")
|
|
3342
|
+
return Ot.parse(await d.json());
|
|
3338
3343
|
{
|
|
3339
|
-
const
|
|
3344
|
+
const l = l0.parse(
|
|
3340
3345
|
await d.json()
|
|
3341
3346
|
);
|
|
3342
|
-
if (!((n =
|
|
3347
|
+
if (!((n = l.code_challenge_methods_supported) != null && n.includes("S256")))
|
|
3343
3348
|
throw new Error(
|
|
3344
3349
|
`Incompatible OIDC provider at ${a}: does not support S256 code challenge method required by MCP specification`
|
|
3345
3350
|
);
|
|
3346
|
-
return
|
|
3351
|
+
return l;
|
|
3347
3352
|
}
|
|
3348
3353
|
}
|
|
3349
3354
|
}
|
|
3350
3355
|
}
|
|
3351
|
-
async function
|
|
3356
|
+
async function k0(t, {
|
|
3352
3357
|
metadata: e,
|
|
3353
3358
|
clientInformation: r,
|
|
3354
3359
|
redirectUrl: n,
|
|
@@ -3356,46 +3361,46 @@ async function Lr(t, {
|
|
|
3356
3361
|
state: s,
|
|
3357
3362
|
resource: a
|
|
3358
3363
|
}) {
|
|
3359
|
-
const
|
|
3360
|
-
let
|
|
3364
|
+
const c = "code", d = "S256";
|
|
3365
|
+
let l;
|
|
3361
3366
|
if (e) {
|
|
3362
|
-
if (
|
|
3367
|
+
if (l = new URL(e.authorization_endpoint), !e.response_types_supported.includes(c))
|
|
3363
3368
|
throw new Error(
|
|
3364
|
-
`Incompatible auth server: does not support response type ${
|
|
3369
|
+
`Incompatible auth server: does not support response type ${c}`
|
|
3365
3370
|
);
|
|
3366
3371
|
if (!e.code_challenge_methods_supported || !e.code_challenge_methods_supported.includes(d))
|
|
3367
3372
|
throw new Error(
|
|
3368
3373
|
`Incompatible auth server: does not support code challenge method ${d}`
|
|
3369
3374
|
);
|
|
3370
3375
|
} else
|
|
3371
|
-
|
|
3372
|
-
const u = await
|
|
3373
|
-
return
|
|
3376
|
+
l = new URL("/authorize", t);
|
|
3377
|
+
const u = await Or(), g = u.code_verifier, p = u.code_challenge;
|
|
3378
|
+
return l.searchParams.set("response_type", c), l.searchParams.set("client_id", r.client_id), l.searchParams.set("code_challenge", p), l.searchParams.set(
|
|
3374
3379
|
"code_challenge_method",
|
|
3375
3380
|
d
|
|
3376
|
-
),
|
|
3381
|
+
), l.searchParams.set("redirect_uri", String(n)), s && l.searchParams.set("state", s), o && l.searchParams.set("scope", o), o?.includes("offline_access") && l.searchParams.append("prompt", "consent"), a && l.searchParams.set("resource", a.href), { authorizationUrl: l, codeVerifier: g };
|
|
3377
3382
|
}
|
|
3378
|
-
function
|
|
3383
|
+
function Ut(t, e) {
|
|
3379
3384
|
const r = t.client_secret !== void 0;
|
|
3380
3385
|
return e.length === 0 ? r ? "client_secret_post" : "none" : r && e.includes("client_secret_basic") ? "client_secret_basic" : r && e.includes("client_secret_post") ? "client_secret_post" : e.includes("none") ? "none" : r ? "client_secret_post" : "none";
|
|
3381
3386
|
}
|
|
3382
|
-
function
|
|
3387
|
+
function Nt(t, e, r, n) {
|
|
3383
3388
|
const { client_id: o, client_secret: s } = e;
|
|
3384
3389
|
switch (t) {
|
|
3385
3390
|
case "client_secret_basic":
|
|
3386
|
-
|
|
3391
|
+
S0(o, s, r);
|
|
3387
3392
|
return;
|
|
3388
3393
|
case "client_secret_post":
|
|
3389
|
-
|
|
3394
|
+
P0(o, s, n);
|
|
3390
3395
|
return;
|
|
3391
3396
|
case "none":
|
|
3392
|
-
|
|
3397
|
+
T0(o, n);
|
|
3393
3398
|
return;
|
|
3394
3399
|
default:
|
|
3395
3400
|
throw new Error(`Unsupported client authentication method: ${t}`);
|
|
3396
3401
|
}
|
|
3397
3402
|
}
|
|
3398
|
-
function
|
|
3403
|
+
function S0(t, e, r) {
|
|
3399
3404
|
if (!e)
|
|
3400
3405
|
throw new Error(
|
|
3401
3406
|
"client_secret_basic authentication requires a client_secret"
|
|
@@ -3403,17 +3408,17 @@ function kr(t, e, r) {
|
|
|
3403
3408
|
const n = btoa(`${t}:${e}`);
|
|
3404
3409
|
r.set("Authorization", `Basic ${n}`);
|
|
3405
3410
|
}
|
|
3406
|
-
function
|
|
3411
|
+
function P0(t, e, r) {
|
|
3407
3412
|
r.set("client_id", t), e && r.set("client_secret", e);
|
|
3408
3413
|
}
|
|
3409
|
-
function
|
|
3414
|
+
function T0(t, e) {
|
|
3410
3415
|
e.set("client_id", t);
|
|
3411
3416
|
}
|
|
3412
|
-
async function
|
|
3417
|
+
async function je(t) {
|
|
3413
3418
|
const e = t instanceof Response ? t.status : void 0, r = t instanceof Response ? await t.text() : t;
|
|
3414
3419
|
try {
|
|
3415
|
-
const n =
|
|
3416
|
-
return new
|
|
3420
|
+
const n = p0.parse(JSON.parse(r)), { error: o, error_description: s, error_uri: a } = n, c = g0[o] || H;
|
|
3421
|
+
return new c({
|
|
3417
3422
|
message: s || "",
|
|
3418
3423
|
cause: a
|
|
3419
3424
|
});
|
|
@@ -3422,17 +3427,17 @@ async function Ne(t) {
|
|
|
3422
3427
|
return new H({ message: o });
|
|
3423
3428
|
}
|
|
3424
3429
|
}
|
|
3425
|
-
async function
|
|
3430
|
+
async function M0(t, {
|
|
3426
3431
|
metadata: e,
|
|
3427
3432
|
clientInformation: r,
|
|
3428
3433
|
authorizationCode: n,
|
|
3429
3434
|
codeVerifier: o,
|
|
3430
3435
|
redirectUri: s,
|
|
3431
3436
|
resource: a,
|
|
3432
|
-
addClientAuthentication:
|
|
3437
|
+
addClientAuthentication: c,
|
|
3433
3438
|
fetchFn: d
|
|
3434
3439
|
}) {
|
|
3435
|
-
var
|
|
3440
|
+
var l;
|
|
3436
3441
|
const u = "authorization_code", g = e?.token_endpoint ? new URL(e.token_endpoint) : new URL("/token", t);
|
|
3437
3442
|
if (e?.grant_types_supported && !e.grant_types_supported.includes(u))
|
|
3438
3443
|
throw new Error(
|
|
@@ -3447,14 +3452,14 @@ async function Tr(t, {
|
|
|
3447
3452
|
code_verifier: o,
|
|
3448
3453
|
redirect_uri: String(s)
|
|
3449
3454
|
});
|
|
3450
|
-
if (
|
|
3451
|
-
|
|
3455
|
+
if (c)
|
|
3456
|
+
c(p, f, t, e);
|
|
3452
3457
|
else {
|
|
3453
|
-
const h = (
|
|
3458
|
+
const h = (l = e?.token_endpoint_auth_methods_supported) != null ? l : [], m = Ut(
|
|
3454
3459
|
r,
|
|
3455
3460
|
h
|
|
3456
3461
|
);
|
|
3457
|
-
|
|
3462
|
+
Nt(m, r, p, f);
|
|
3458
3463
|
}
|
|
3459
3464
|
a && f.set("resource", a.href);
|
|
3460
3465
|
const y = await (d ?? fetch)(g, {
|
|
@@ -3463,10 +3468,10 @@ async function Tr(t, {
|
|
|
3463
3468
|
body: f
|
|
3464
3469
|
});
|
|
3465
3470
|
if (!y.ok)
|
|
3466
|
-
throw await
|
|
3467
|
-
return
|
|
3471
|
+
throw await je(y);
|
|
3472
|
+
return At.parse(await y.json());
|
|
3468
3473
|
}
|
|
3469
|
-
async function
|
|
3474
|
+
async function E0(t, {
|
|
3470
3475
|
metadata: e,
|
|
3471
3476
|
clientInformation: r,
|
|
3472
3477
|
refreshToken: n,
|
|
@@ -3474,16 +3479,16 @@ async function Mr(t, {
|
|
|
3474
3479
|
addClientAuthentication: s,
|
|
3475
3480
|
fetchFn: a
|
|
3476
3481
|
}) {
|
|
3477
|
-
var
|
|
3482
|
+
var c;
|
|
3478
3483
|
const d = "refresh_token";
|
|
3479
|
-
let
|
|
3484
|
+
let l;
|
|
3480
3485
|
if (e) {
|
|
3481
|
-
if (
|
|
3486
|
+
if (l = new URL(e.token_endpoint), e.grant_types_supported && !e.grant_types_supported.includes(d))
|
|
3482
3487
|
throw new Error(
|
|
3483
3488
|
`Incompatible auth server: does not support grant type ${d}`
|
|
3484
3489
|
);
|
|
3485
3490
|
} else
|
|
3486
|
-
|
|
3491
|
+
l = new URL("/token", t);
|
|
3487
3492
|
const u = new Headers({
|
|
3488
3493
|
"Content-Type": "application/x-www-form-urlencoded",
|
|
3489
3494
|
Accept: "application/json"
|
|
@@ -3494,26 +3499,26 @@ async function Mr(t, {
|
|
|
3494
3499
|
if (s)
|
|
3495
3500
|
s(u, g, t, e);
|
|
3496
3501
|
else {
|
|
3497
|
-
const f = (
|
|
3502
|
+
const f = (c = e?.token_endpoint_auth_methods_supported) != null ? c : [], y = Ut(
|
|
3498
3503
|
r,
|
|
3499
3504
|
f
|
|
3500
3505
|
);
|
|
3501
|
-
|
|
3506
|
+
Nt(y, r, u, g);
|
|
3502
3507
|
}
|
|
3503
3508
|
o && g.set("resource", o.href);
|
|
3504
|
-
const p = await (a ?? fetch)(
|
|
3509
|
+
const p = await (a ?? fetch)(l, {
|
|
3505
3510
|
method: "POST",
|
|
3506
3511
|
headers: u,
|
|
3507
3512
|
body: g
|
|
3508
3513
|
});
|
|
3509
3514
|
if (!p.ok)
|
|
3510
|
-
throw await
|
|
3511
|
-
return
|
|
3515
|
+
throw await je(p);
|
|
3516
|
+
return At.parse({
|
|
3512
3517
|
refresh_token: n,
|
|
3513
3518
|
...await p.json()
|
|
3514
3519
|
});
|
|
3515
3520
|
}
|
|
3516
|
-
async function
|
|
3521
|
+
async function R0(t, {
|
|
3517
3522
|
metadata: e,
|
|
3518
3523
|
clientMetadata: r,
|
|
3519
3524
|
fetchFn: n
|
|
@@ -3535,30 +3540,30 @@ async function Er(t, {
|
|
|
3535
3540
|
body: JSON.stringify(r)
|
|
3536
3541
|
});
|
|
3537
3542
|
if (!s.ok)
|
|
3538
|
-
throw await
|
|
3539
|
-
return
|
|
3543
|
+
throw await je(s);
|
|
3544
|
+
return h0.parse(await s.json());
|
|
3540
3545
|
}
|
|
3541
|
-
async function
|
|
3546
|
+
async function de(t, e) {
|
|
3542
3547
|
var r, n;
|
|
3543
3548
|
try {
|
|
3544
|
-
return await
|
|
3549
|
+
return await _e(t, e);
|
|
3545
3550
|
} catch (o) {
|
|
3546
|
-
if (o instanceof
|
|
3547
|
-
return await ((r = t.invalidateCredentials) == null ? void 0 : r.call(t, "all")), await
|
|
3548
|
-
if (o instanceof
|
|
3549
|
-
return await ((n = t.invalidateCredentials) == null ? void 0 : n.call(t, "tokens")), await
|
|
3551
|
+
if (o instanceof se || o instanceof ae)
|
|
3552
|
+
return await ((r = t.invalidateCredentials) == null ? void 0 : r.call(t, "all")), await _e(t, e);
|
|
3553
|
+
if (o instanceof ie)
|
|
3554
|
+
return await ((n = t.invalidateCredentials) == null ? void 0 : n.call(t, "tokens")), await _e(t, e);
|
|
3550
3555
|
throw o;
|
|
3551
3556
|
}
|
|
3552
3557
|
}
|
|
3553
|
-
async function
|
|
3554
|
-
const n =
|
|
3558
|
+
async function I0(t, e, r) {
|
|
3559
|
+
const n = y0(t);
|
|
3555
3560
|
if (e.validateResourceURL)
|
|
3556
3561
|
return await e.validateResourceURL(
|
|
3557
3562
|
n,
|
|
3558
3563
|
r?.resource
|
|
3559
3564
|
);
|
|
3560
3565
|
if (r) {
|
|
3561
|
-
if (!
|
|
3566
|
+
if (!w0({
|
|
3562
3567
|
requestedResource: n,
|
|
3563
3568
|
configuredResource: r.resource
|
|
3564
3569
|
}))
|
|
@@ -3568,29 +3573,29 @@ async function Rr(t, e, r) {
|
|
|
3568
3573
|
return new URL(r.resource);
|
|
3569
3574
|
}
|
|
3570
3575
|
}
|
|
3571
|
-
async function
|
|
3576
|
+
async function _e(t, {
|
|
3572
3577
|
serverUrl: e,
|
|
3573
3578
|
authorizationCode: r,
|
|
3574
3579
|
scope: n,
|
|
3575
3580
|
resourceMetadataUrl: o,
|
|
3576
3581
|
fetchFn: s
|
|
3577
3582
|
}) {
|
|
3578
|
-
let a,
|
|
3583
|
+
let a, c;
|
|
3579
3584
|
try {
|
|
3580
|
-
a = await
|
|
3585
|
+
a = await b0(
|
|
3581
3586
|
e,
|
|
3582
3587
|
{ resourceMetadataUrl: o },
|
|
3583
3588
|
s
|
|
3584
|
-
), a.authorization_servers && a.authorization_servers.length > 0 && (
|
|
3589
|
+
), a.authorization_servers && a.authorization_servers.length > 0 && (c = a.authorization_servers[0]);
|
|
3585
3590
|
} catch {
|
|
3586
3591
|
}
|
|
3587
|
-
|
|
3588
|
-
const d = await
|
|
3592
|
+
c || (c = e);
|
|
3593
|
+
const d = await I0(
|
|
3589
3594
|
e,
|
|
3590
3595
|
t,
|
|
3591
3596
|
a
|
|
3592
|
-
),
|
|
3593
|
-
|
|
3597
|
+
), l = await L0(
|
|
3598
|
+
c,
|
|
3594
3599
|
{
|
|
3595
3600
|
fetchFn: s
|
|
3596
3601
|
}
|
|
@@ -3605,16 +3610,16 @@ async function we(t, {
|
|
|
3605
3610
|
throw new Error(
|
|
3606
3611
|
"OAuth client information must be saveable for dynamic registration"
|
|
3607
3612
|
);
|
|
3608
|
-
const h = await
|
|
3609
|
-
metadata:
|
|
3613
|
+
const h = await R0(c, {
|
|
3614
|
+
metadata: l,
|
|
3610
3615
|
clientMetadata: t.clientMetadata,
|
|
3611
3616
|
fetchFn: s
|
|
3612
3617
|
});
|
|
3613
3618
|
await t.saveClientInformation(h), u = h;
|
|
3614
3619
|
}
|
|
3615
3620
|
if (r !== void 0) {
|
|
3616
|
-
const h = await t.codeVerifier(), m = await
|
|
3617
|
-
metadata:
|
|
3621
|
+
const h = await t.codeVerifier(), m = await M0(c, {
|
|
3622
|
+
metadata: l,
|
|
3618
3623
|
clientInformation: u,
|
|
3619
3624
|
authorizationCode: r,
|
|
3620
3625
|
codeVerifier: h,
|
|
@@ -3628,8 +3633,8 @@ async function we(t, {
|
|
|
3628
3633
|
const g = await t.tokens();
|
|
3629
3634
|
if (g?.refresh_token)
|
|
3630
3635
|
try {
|
|
3631
|
-
const h = await
|
|
3632
|
-
metadata:
|
|
3636
|
+
const h = await E0(c, {
|
|
3637
|
+
metadata: l,
|
|
3633
3638
|
clientInformation: u,
|
|
3634
3639
|
refreshToken: g.refresh_token,
|
|
3635
3640
|
resource: d,
|
|
@@ -3640,13 +3645,13 @@ async function we(t, {
|
|
|
3640
3645
|
} catch (h) {
|
|
3641
3646
|
if (
|
|
3642
3647
|
// If this is a ServerError, or an unknown type, log it out and try to continue. Otherwise, escalate so we can fix things and retry.
|
|
3643
|
-
!(!(h instanceof
|
|
3648
|
+
!(!(h instanceof X) || h instanceof H)
|
|
3644
3649
|
) throw h;
|
|
3645
3650
|
}
|
|
3646
|
-
const p = t.state ? await t.state() : void 0, { authorizationUrl: f, codeVerifier: y } = await
|
|
3647
|
-
|
|
3651
|
+
const p = t.state ? await t.state() : void 0, { authorizationUrl: f, codeVerifier: y } = await k0(
|
|
3652
|
+
c,
|
|
3648
3653
|
{
|
|
3649
|
-
metadata:
|
|
3654
|
+
metadata: l,
|
|
3650
3655
|
clientInformation: u,
|
|
3651
3656
|
state: p,
|
|
3652
3657
|
redirectUrl: t.redirectUrl,
|
|
@@ -3656,7 +3661,7 @@ async function we(t, {
|
|
|
3656
3661
|
);
|
|
3657
3662
|
return await t.saveCodeVerifier(y), await t.redirectToAuthorization(f), "REDIRECT";
|
|
3658
3663
|
}
|
|
3659
|
-
var
|
|
3664
|
+
var A0 = class {
|
|
3660
3665
|
constructor({
|
|
3661
3666
|
url: t,
|
|
3662
3667
|
headers: e,
|
|
@@ -3674,10 +3679,10 @@ var Ir = class {
|
|
|
3674
3679
|
const r = await this.authProvider.tokens();
|
|
3675
3680
|
r?.access_token && (e.Authorization = `Bearer ${r.access_token}`);
|
|
3676
3681
|
}
|
|
3677
|
-
return
|
|
3682
|
+
return gt(
|
|
3678
3683
|
e,
|
|
3679
|
-
`ai-sdk/${
|
|
3680
|
-
|
|
3684
|
+
`ai-sdk/${It}`,
|
|
3685
|
+
ft()
|
|
3681
3686
|
);
|
|
3682
3687
|
}
|
|
3683
3688
|
async start() {
|
|
@@ -3686,22 +3691,22 @@ var Ir = class {
|
|
|
3686
3691
|
return t();
|
|
3687
3692
|
this.abortController = new AbortController();
|
|
3688
3693
|
const r = async (n = !1) => {
|
|
3689
|
-
var o, s, a,
|
|
3694
|
+
var o, s, a, c, d;
|
|
3690
3695
|
try {
|
|
3691
|
-
const
|
|
3696
|
+
const l = await this.commonHeaders({
|
|
3692
3697
|
Accept: "text/event-stream"
|
|
3693
3698
|
}), u = await fetch(this.url.href, {
|
|
3694
|
-
headers:
|
|
3699
|
+
headers: l,
|
|
3695
3700
|
signal: (o = this.abortController) == null ? void 0 : o.signal
|
|
3696
3701
|
});
|
|
3697
3702
|
if (u.status === 401 && this.authProvider && !n) {
|
|
3698
|
-
this.resourceMetadataUrl =
|
|
3703
|
+
this.resourceMetadataUrl = le(u);
|
|
3699
3704
|
try {
|
|
3700
|
-
if (await
|
|
3705
|
+
if (await de(this.authProvider, {
|
|
3701
3706
|
serverUrl: this.url,
|
|
3702
3707
|
resourceMetadataUrl: this.resourceMetadataUrl
|
|
3703
3708
|
}) !== "AUTHORIZED") {
|
|
3704
|
-
const h = new
|
|
3709
|
+
const h = new ce();
|
|
3705
3710
|
return (s = this.onerror) == null || s.call(this, h), e(h);
|
|
3706
3711
|
}
|
|
3707
3712
|
} catch (y) {
|
|
@@ -3715,9 +3720,9 @@ var Ir = class {
|
|
|
3715
3720
|
const h = new C({
|
|
3716
3721
|
message: y
|
|
3717
3722
|
});
|
|
3718
|
-
return (
|
|
3723
|
+
return (c = this.onerror) == null || c.call(this, h), e(h);
|
|
3719
3724
|
}
|
|
3720
|
-
const p = u.body.pipeThrough(new TextDecoderStream()).pipeThrough(new
|
|
3725
|
+
const p = u.body.pipeThrough(new TextDecoderStream()).pipeThrough(new Se()).getReader(), f = async () => {
|
|
3721
3726
|
var y, h, m;
|
|
3722
3727
|
try {
|
|
3723
3728
|
for (; ; ) {
|
|
@@ -3738,7 +3743,7 @@ var Ir = class {
|
|
|
3738
3743
|
this.connected = !0, t();
|
|
3739
3744
|
} else if (x === "message")
|
|
3740
3745
|
try {
|
|
3741
|
-
const P =
|
|
3746
|
+
const P = K.parse(
|
|
3742
3747
|
JSON.parse(M)
|
|
3743
3748
|
);
|
|
3744
3749
|
(y = this.onmessage) == null || y.call(this, P);
|
|
@@ -3759,10 +3764,10 @@ var Ir = class {
|
|
|
3759
3764
|
this.sseConnection = {
|
|
3760
3765
|
close: () => p.cancel()
|
|
3761
3766
|
}, f();
|
|
3762
|
-
} catch (
|
|
3763
|
-
if (
|
|
3767
|
+
} catch (l) {
|
|
3768
|
+
if (l instanceof Error && l.name === "AbortError")
|
|
3764
3769
|
return;
|
|
3765
|
-
(d = this.onerror) == null || d.call(this,
|
|
3770
|
+
(d = this.onerror) == null || d.call(this, l), e(l);
|
|
3766
3771
|
}
|
|
3767
3772
|
};
|
|
3768
3773
|
r();
|
|
@@ -3778,7 +3783,7 @@ var Ir = class {
|
|
|
3778
3783
|
message: "MCP SSE Transport Error: Not connected"
|
|
3779
3784
|
});
|
|
3780
3785
|
const e = this.endpoint, r = async (n = !1) => {
|
|
3781
|
-
var o, s, a,
|
|
3786
|
+
var o, s, a, c, d;
|
|
3782
3787
|
try {
|
|
3783
3788
|
const u = {
|
|
3784
3789
|
method: "POST",
|
|
@@ -3789,13 +3794,13 @@ var Ir = class {
|
|
|
3789
3794
|
signal: (o = this.abortController) == null ? void 0 : o.signal
|
|
3790
3795
|
}, g = await fetch(e, u);
|
|
3791
3796
|
if (g.status === 401 && this.authProvider && !n) {
|
|
3792
|
-
this.resourceMetadataUrl =
|
|
3797
|
+
this.resourceMetadataUrl = le(g);
|
|
3793
3798
|
try {
|
|
3794
|
-
if (await
|
|
3799
|
+
if (await de(this.authProvider, {
|
|
3795
3800
|
serverUrl: this.url,
|
|
3796
3801
|
resourceMetadataUrl: this.resourceMetadataUrl
|
|
3797
3802
|
}) !== "AUTHORIZED") {
|
|
3798
|
-
const f = new
|
|
3803
|
+
const f = new ce();
|
|
3799
3804
|
(s = this.onerror) == null || s.call(this, f);
|
|
3800
3805
|
return;
|
|
3801
3806
|
}
|
|
@@ -3809,17 +3814,17 @@ var Ir = class {
|
|
|
3809
3814
|
const p = await g.text().catch(() => null), f = new C({
|
|
3810
3815
|
message: `MCP SSE Transport Error: POSTing to endpoint (HTTP ${g.status}): ${p}`
|
|
3811
3816
|
});
|
|
3812
|
-
(
|
|
3817
|
+
(c = this.onerror) == null || c.call(this, f);
|
|
3813
3818
|
return;
|
|
3814
3819
|
}
|
|
3815
|
-
} catch (
|
|
3816
|
-
(d = this.onerror) == null || d.call(this,
|
|
3820
|
+
} catch (l) {
|
|
3821
|
+
(d = this.onerror) == null || d.call(this, l);
|
|
3817
3822
|
return;
|
|
3818
3823
|
}
|
|
3819
3824
|
};
|
|
3820
3825
|
await r();
|
|
3821
3826
|
}
|
|
3822
|
-
},
|
|
3827
|
+
}, O0 = class {
|
|
3823
3828
|
constructor({
|
|
3824
3829
|
url: t,
|
|
3825
3830
|
headers: e,
|
|
@@ -3842,10 +3847,10 @@ var Ir = class {
|
|
|
3842
3847
|
const r = await this.authProvider.tokens();
|
|
3843
3848
|
r?.access_token && (e.Authorization = `Bearer ${r.access_token}`);
|
|
3844
3849
|
}
|
|
3845
|
-
return
|
|
3850
|
+
return gt(
|
|
3846
3851
|
e,
|
|
3847
|
-
`ai-sdk/${
|
|
3848
|
-
|
|
3852
|
+
`ai-sdk/${It}`,
|
|
3853
|
+
ft()
|
|
3849
3854
|
);
|
|
3850
3855
|
}
|
|
3851
3856
|
async start() {
|
|
@@ -3874,7 +3879,7 @@ var Ir = class {
|
|
|
3874
3879
|
}
|
|
3875
3880
|
async send(t) {
|
|
3876
3881
|
const e = async (r = !1) => {
|
|
3877
|
-
var n, o, s, a,
|
|
3882
|
+
var n, o, s, a, c, d, l;
|
|
3878
3883
|
try {
|
|
3879
3884
|
const g = {
|
|
3880
3885
|
method: "POST",
|
|
@@ -3886,13 +3891,13 @@ var Ir = class {
|
|
|
3886
3891
|
signal: (n = this.abortController) == null ? void 0 : n.signal
|
|
3887
3892
|
}, p = await fetch(this.url, g), f = p.headers.get("mcp-session-id");
|
|
3888
3893
|
if (f && (this.sessionId = f), p.status === 401 && this.authProvider && !r) {
|
|
3889
|
-
this.resourceMetadataUrl =
|
|
3894
|
+
this.resourceMetadataUrl = le(p);
|
|
3890
3895
|
try {
|
|
3891
|
-
if (await
|
|
3896
|
+
if (await de(this.authProvider, {
|
|
3892
3897
|
serverUrl: this.url,
|
|
3893
3898
|
resourceMetadataUrl: this.resourceMetadataUrl
|
|
3894
3899
|
}) !== "AUTHORIZED")
|
|
3895
|
-
throw new
|
|
3900
|
+
throw new ce();
|
|
3896
3901
|
} catch (v) {
|
|
3897
3902
|
throw (o = this.onerror) == null || o.call(this, v), v;
|
|
3898
3903
|
}
|
|
@@ -3915,7 +3920,7 @@ var Ir = class {
|
|
|
3915
3920
|
return;
|
|
3916
3921
|
const h = p.headers.get("content-type") || "";
|
|
3917
3922
|
if (h.includes("application/json")) {
|
|
3918
|
-
const v = await p.json(), b = Array.isArray(v) ? v.map((x) =>
|
|
3923
|
+
const v = await p.json(), b = Array.isArray(v) ? v.map((x) => K.parse(x)) : [K.parse(v)];
|
|
3919
3924
|
for (const x of b) (a = this.onmessage) == null || a.call(this, x);
|
|
3920
3925
|
return;
|
|
3921
3926
|
}
|
|
@@ -3924,9 +3929,9 @@ var Ir = class {
|
|
|
3924
3929
|
const M = new C({
|
|
3925
3930
|
message: "MCP HTTP Transport Error: text/event-stream response without body"
|
|
3926
3931
|
});
|
|
3927
|
-
throw (
|
|
3932
|
+
throw (c = this.onerror) == null || c.call(this, M), M;
|
|
3928
3933
|
}
|
|
3929
|
-
const b = p.body.pipeThrough(new TextDecoderStream()).pipeThrough(new
|
|
3934
|
+
const b = p.body.pipeThrough(new TextDecoderStream()).pipeThrough(new Se()).getReader();
|
|
3930
3935
|
(async () => {
|
|
3931
3936
|
var M, P, E;
|
|
3932
3937
|
try {
|
|
@@ -3936,12 +3941,12 @@ var Ir = class {
|
|
|
3936
3941
|
const { event: I, data: j } = z;
|
|
3937
3942
|
if (I === "message")
|
|
3938
3943
|
try {
|
|
3939
|
-
const
|
|
3940
|
-
(M = this.onmessage) == null || M.call(this,
|
|
3941
|
-
} catch (
|
|
3944
|
+
const W = K.parse(JSON.parse(j));
|
|
3945
|
+
(M = this.onmessage) == null || M.call(this, W);
|
|
3946
|
+
} catch (W) {
|
|
3942
3947
|
const A = new C({
|
|
3943
3948
|
message: "MCP HTTP Transport Error: Failed to parse message",
|
|
3944
|
-
cause:
|
|
3949
|
+
cause: W
|
|
3945
3950
|
});
|
|
3946
3951
|
(P = this.onerror) == null || P.call(this, A);
|
|
3947
3952
|
}
|
|
@@ -3959,7 +3964,7 @@ var Ir = class {
|
|
|
3959
3964
|
});
|
|
3960
3965
|
throw (d = this.onerror) == null || d.call(this, m), m;
|
|
3961
3966
|
} catch (u) {
|
|
3962
|
-
throw (
|
|
3967
|
+
throw (l = this.onerror) == null || l.call(this, u), u;
|
|
3963
3968
|
}
|
|
3964
3969
|
};
|
|
3965
3970
|
await e();
|
|
@@ -3995,25 +4000,25 @@ var Ir = class {
|
|
|
3995
4000
|
}
|
|
3996
4001
|
// Open optional inbound SSE stream; best-effort and resumable
|
|
3997
4002
|
async openInboundSse(t = !1, e) {
|
|
3998
|
-
var r, n, o, s, a,
|
|
4003
|
+
var r, n, o, s, a, c;
|
|
3999
4004
|
try {
|
|
4000
4005
|
const d = await this.commonHeaders({
|
|
4001
4006
|
Accept: "text/event-stream"
|
|
4002
4007
|
});
|
|
4003
4008
|
e && (d["last-event-id"] = e);
|
|
4004
|
-
const
|
|
4009
|
+
const l = await fetch(this.url.href, {
|
|
4005
4010
|
method: "GET",
|
|
4006
4011
|
headers: d,
|
|
4007
4012
|
signal: (r = this.abortController) == null ? void 0 : r.signal
|
|
4008
|
-
}), u =
|
|
4009
|
-
if (u && (this.sessionId = u),
|
|
4010
|
-
this.resourceMetadataUrl =
|
|
4013
|
+
}), u = l.headers.get("mcp-session-id");
|
|
4014
|
+
if (u && (this.sessionId = u), l.status === 401 && this.authProvider && !t) {
|
|
4015
|
+
this.resourceMetadataUrl = le(l);
|
|
4011
4016
|
try {
|
|
4012
|
-
if (await
|
|
4017
|
+
if (await de(this.authProvider, {
|
|
4013
4018
|
serverUrl: this.url,
|
|
4014
4019
|
resourceMetadataUrl: this.resourceMetadataUrl
|
|
4015
4020
|
}) !== "AUTHORIZED") {
|
|
4016
|
-
const h = new
|
|
4021
|
+
const h = new ce();
|
|
4017
4022
|
(n = this.onerror) == null || n.call(this, h);
|
|
4018
4023
|
return;
|
|
4019
4024
|
}
|
|
@@ -4023,16 +4028,16 @@ var Ir = class {
|
|
|
4023
4028
|
}
|
|
4024
4029
|
return this.openInboundSse(!0, e);
|
|
4025
4030
|
}
|
|
4026
|
-
if (
|
|
4031
|
+
if (l.status === 405)
|
|
4027
4032
|
return;
|
|
4028
|
-
if (!
|
|
4033
|
+
if (!l.ok || !l.body) {
|
|
4029
4034
|
const y = new C({
|
|
4030
|
-
message: `MCP HTTP Transport Error: GET SSE failed: ${
|
|
4035
|
+
message: `MCP HTTP Transport Error: GET SSE failed: ${l.status} ${l.statusText}`
|
|
4031
4036
|
});
|
|
4032
4037
|
(s = this.onerror) == null || s.call(this, y);
|
|
4033
4038
|
return;
|
|
4034
4039
|
}
|
|
4035
|
-
const p =
|
|
4040
|
+
const p = l.body.pipeThrough(new TextDecoderStream()).pipeThrough(new Se()).getReader(), f = async () => {
|
|
4036
4041
|
var y, h, m, v;
|
|
4037
4042
|
try {
|
|
4038
4043
|
for (; ; ) {
|
|
@@ -4041,7 +4046,7 @@ var Ir = class {
|
|
|
4041
4046
|
const { event: M, data: P, id: E } = x;
|
|
4042
4047
|
if (E && (this.lastInboundEventId = E), M === "message")
|
|
4043
4048
|
try {
|
|
4044
|
-
const R =
|
|
4049
|
+
const R = K.parse(JSON.parse(P));
|
|
4045
4050
|
(y = this.onmessage) == null || y.call(this, R);
|
|
4046
4051
|
} catch (R) {
|
|
4047
4052
|
const z = new C({
|
|
@@ -4063,27 +4068,27 @@ var Ir = class {
|
|
|
4063
4068
|
} catch (d) {
|
|
4064
4069
|
if (d instanceof Error && d.name === "AbortError")
|
|
4065
4070
|
return;
|
|
4066
|
-
(a = this.onerror) == null || a.call(this, d), (
|
|
4071
|
+
(a = this.onerror) == null || a.call(this, d), (c = this.abortController) != null && c.signal.aborted || this.scheduleInboundSseReconnection();
|
|
4067
4072
|
}
|
|
4068
4073
|
}
|
|
4069
4074
|
};
|
|
4070
|
-
function
|
|
4075
|
+
function $0(t) {
|
|
4071
4076
|
switch (t.type) {
|
|
4072
4077
|
case "sse":
|
|
4073
|
-
return new
|
|
4078
|
+
return new A0(t);
|
|
4074
4079
|
case "http":
|
|
4075
|
-
return new
|
|
4080
|
+
return new O0(t);
|
|
4076
4081
|
default:
|
|
4077
4082
|
throw new C({
|
|
4078
4083
|
message: "Unsupported or invalid transport configuration. If you are using a custom transport, make sure it implements the MCPTransport interface."
|
|
4079
4084
|
});
|
|
4080
4085
|
}
|
|
4081
4086
|
}
|
|
4082
|
-
function
|
|
4087
|
+
function U0(t) {
|
|
4083
4088
|
return "start" in t && typeof t.start == "function" && "send" in t && typeof t.send == "function" && "close" in t && typeof t.close == "function";
|
|
4084
4089
|
}
|
|
4085
|
-
var
|
|
4086
|
-
function
|
|
4090
|
+
var N0 = "1.0.0";
|
|
4091
|
+
function st({
|
|
4087
4092
|
output: t
|
|
4088
4093
|
}) {
|
|
4089
4094
|
const e = t;
|
|
@@ -4095,19 +4100,19 @@ function ot({
|
|
|
4095
4100
|
} : { type: "text", text: JSON.stringify(n) }
|
|
4096
4101
|
) };
|
|
4097
4102
|
}
|
|
4098
|
-
async function
|
|
4099
|
-
const e = new
|
|
4103
|
+
async function j0(t) {
|
|
4104
|
+
const e = new Z0(t);
|
|
4100
4105
|
return await e.init(), e;
|
|
4101
4106
|
}
|
|
4102
|
-
var
|
|
4107
|
+
var Z0 = class {
|
|
4103
4108
|
constructor({
|
|
4104
4109
|
transport: t,
|
|
4105
4110
|
name: e = "ai-sdk-mcp-client",
|
|
4106
|
-
version: r =
|
|
4111
|
+
version: r = N0,
|
|
4107
4112
|
onUncaughtError: n,
|
|
4108
4113
|
capabilities: o
|
|
4109
4114
|
}) {
|
|
4110
|
-
this.requestMessageId = 0, this.responseHandlers = /* @__PURE__ */ new Map(), this.serverCapabilities = {}, this.isClosed = !0, this.onUncaughtError = n, this.clientCapabilities = o ?? {},
|
|
4115
|
+
this.requestMessageId = 0, this.responseHandlers = /* @__PURE__ */ new Map(), this.serverCapabilities = {}, this.isClosed = !0, this.onUncaughtError = n, this.clientCapabilities = o ?? {}, U0(t) ? this.transport = t : this.transport = $0(t), this.transport.onclose = () => this.onClose(), this.transport.onerror = (s) => this.onError(s), this.transport.onmessage = (s) => {
|
|
4111
4116
|
if ("method" in s) {
|
|
4112
4117
|
"id" in s ? this.onRequestMessage(s) : this.onError(
|
|
4113
4118
|
new C({
|
|
@@ -4134,13 +4139,13 @@ var jr = class {
|
|
|
4134
4139
|
clientInfo: this.clientInfo
|
|
4135
4140
|
}
|
|
4136
4141
|
},
|
|
4137
|
-
resultSchema:
|
|
4142
|
+
resultSchema: zr
|
|
4138
4143
|
});
|
|
4139
4144
|
if (t === void 0)
|
|
4140
4145
|
throw new C({
|
|
4141
4146
|
message: "Server sent invalid initialize result"
|
|
4142
4147
|
});
|
|
4143
|
-
if (!
|
|
4148
|
+
if (!Nr.includes(t.protocolVersion))
|
|
4144
4149
|
throw new C({
|
|
4145
4150
|
message: `Server's protocol version is not supported: ${t.protocolVersion}`
|
|
4146
4151
|
});
|
|
@@ -4202,14 +4207,14 @@ var jr = class {
|
|
|
4202
4207
|
this.assertCapability(t.method);
|
|
4203
4208
|
const s = r?.signal;
|
|
4204
4209
|
s?.throwIfAborted();
|
|
4205
|
-
const a = this.requestMessageId++,
|
|
4210
|
+
const a = this.requestMessageId++, c = {
|
|
4206
4211
|
...t,
|
|
4207
4212
|
jsonrpc: "2.0",
|
|
4208
4213
|
id: a
|
|
4209
4214
|
}, d = () => {
|
|
4210
4215
|
this.responseHandlers.delete(a);
|
|
4211
4216
|
};
|
|
4212
|
-
this.responseHandlers.set(a, (
|
|
4217
|
+
this.responseHandlers.set(a, (l) => {
|
|
4213
4218
|
if (s?.aborted)
|
|
4214
4219
|
return o(
|
|
4215
4220
|
new C({
|
|
@@ -4217,10 +4222,10 @@ var jr = class {
|
|
|
4217
4222
|
cause: s.reason
|
|
4218
4223
|
})
|
|
4219
4224
|
);
|
|
4220
|
-
if (
|
|
4221
|
-
return o(
|
|
4225
|
+
if (l instanceof Error)
|
|
4226
|
+
return o(l);
|
|
4222
4227
|
try {
|
|
4223
|
-
const u = e.parse(
|
|
4228
|
+
const u = e.parse(l.result);
|
|
4224
4229
|
n(u);
|
|
4225
4230
|
} catch (u) {
|
|
4226
4231
|
const g = new C({
|
|
@@ -4229,8 +4234,8 @@ var jr = class {
|
|
|
4229
4234
|
});
|
|
4230
4235
|
o(g);
|
|
4231
4236
|
}
|
|
4232
|
-
}), this.transport.send(
|
|
4233
|
-
d(), o(
|
|
4237
|
+
}), this.transport.send(c).catch((l) => {
|
|
4238
|
+
d(), o(l);
|
|
4234
4239
|
});
|
|
4235
4240
|
});
|
|
4236
4241
|
}
|
|
@@ -4240,7 +4245,7 @@ var jr = class {
|
|
|
4240
4245
|
} = {}) {
|
|
4241
4246
|
return this.request({
|
|
4242
4247
|
request: { method: "tools/list", params: t },
|
|
4243
|
-
resultSchema:
|
|
4248
|
+
resultSchema: Hr,
|
|
4244
4249
|
options: e
|
|
4245
4250
|
});
|
|
4246
4251
|
}
|
|
@@ -4252,7 +4257,7 @@ var jr = class {
|
|
|
4252
4257
|
try {
|
|
4253
4258
|
return this.request({
|
|
4254
4259
|
request: { method: "tools/call", params: { name: t, arguments: e } },
|
|
4255
|
-
resultSchema:
|
|
4260
|
+
resultSchema: Vr,
|
|
4256
4261
|
options: {
|
|
4257
4262
|
signal: r?.abortSignal
|
|
4258
4263
|
}
|
|
@@ -4268,7 +4273,7 @@ var jr = class {
|
|
|
4268
4273
|
try {
|
|
4269
4274
|
return this.request({
|
|
4270
4275
|
request: { method: "resources/list", params: t },
|
|
4271
|
-
resultSchema:
|
|
4276
|
+
resultSchema: Br,
|
|
4272
4277
|
options: e
|
|
4273
4278
|
});
|
|
4274
4279
|
} catch (r) {
|
|
@@ -4282,7 +4287,7 @@ var jr = class {
|
|
|
4282
4287
|
try {
|
|
4283
4288
|
return this.request({
|
|
4284
4289
|
request: { method: "resources/read", params: { uri: t } },
|
|
4285
|
-
resultSchema:
|
|
4290
|
+
resultSchema: Gr,
|
|
4286
4291
|
options: e
|
|
4287
4292
|
});
|
|
4288
4293
|
} catch (r) {
|
|
@@ -4295,7 +4300,7 @@ var jr = class {
|
|
|
4295
4300
|
try {
|
|
4296
4301
|
return this.request({
|
|
4297
4302
|
request: { method: "resources/templates/list" },
|
|
4298
|
-
resultSchema:
|
|
4303
|
+
resultSchema: Jr,
|
|
4299
4304
|
options: t
|
|
4300
4305
|
});
|
|
4301
4306
|
} catch (e) {
|
|
@@ -4309,7 +4314,7 @@ var jr = class {
|
|
|
4309
4314
|
try {
|
|
4310
4315
|
return this.request({
|
|
4311
4316
|
request: { method: "prompts/list", params: t },
|
|
4312
|
-
resultSchema:
|
|
4317
|
+
resultSchema: Qr,
|
|
4313
4318
|
options: e
|
|
4314
4319
|
});
|
|
4315
4320
|
} catch (r) {
|
|
@@ -4324,7 +4329,7 @@ var jr = class {
|
|
|
4324
4329
|
try {
|
|
4325
4330
|
return this.request({
|
|
4326
4331
|
request: { method: "prompts/get", params: { name: t, arguments: e } },
|
|
4327
|
-
resultSchema:
|
|
4332
|
+
resultSchema: e0,
|
|
4328
4333
|
options: r
|
|
4329
4334
|
});
|
|
4330
4335
|
} catch (n) {
|
|
@@ -4360,12 +4365,12 @@ var jr = class {
|
|
|
4360
4365
|
for (const {
|
|
4361
4366
|
name: s,
|
|
4362
4367
|
title: a,
|
|
4363
|
-
description:
|
|
4368
|
+
description: c,
|
|
4364
4369
|
inputSchema: d,
|
|
4365
|
-
annotations:
|
|
4370
|
+
annotations: l,
|
|
4366
4371
|
_meta: u
|
|
4367
4372
|
} of t.tools) {
|
|
4368
|
-
const g = a ??
|
|
4373
|
+
const g = a ?? l?.title;
|
|
4369
4374
|
if (e !== "automatic" && !(s in e))
|
|
4370
4375
|
continue;
|
|
4371
4376
|
const p = this, f = e !== "automatic" ? (r = e[s]) == null ? void 0 : r.outputSchema : void 0, y = async (m, v) => {
|
|
@@ -4373,23 +4378,23 @@ var jr = class {
|
|
|
4373
4378
|
(b = v?.abortSignal) == null || b.throwIfAborted();
|
|
4374
4379
|
const x = await p.callTool({ name: s, args: m, options: v });
|
|
4375
4380
|
return f != null ? p.extractStructuredContent(x, f, s) : x;
|
|
4376
|
-
}, h = e === "automatic" ?
|
|
4377
|
-
description:
|
|
4381
|
+
}, h = e === "automatic" ? Mr({
|
|
4382
|
+
description: c,
|
|
4378
4383
|
title: g,
|
|
4379
|
-
inputSchema:
|
|
4384
|
+
inputSchema: Q({
|
|
4380
4385
|
...d,
|
|
4381
4386
|
properties: (n = d.properties) != null ? n : {},
|
|
4382
4387
|
additionalProperties: !1
|
|
4383
4388
|
}),
|
|
4384
4389
|
execute: y,
|
|
4385
|
-
toModelOutput:
|
|
4390
|
+
toModelOutput: st
|
|
4386
4391
|
}) : {
|
|
4387
|
-
description:
|
|
4392
|
+
description: c,
|
|
4388
4393
|
title: g,
|
|
4389
4394
|
inputSchema: e[s].inputSchema,
|
|
4390
4395
|
...f != null ? { outputSchema: f } : {},
|
|
4391
4396
|
execute: y,
|
|
4392
|
-
toModelOutput:
|
|
4397
|
+
toModelOutput: st
|
|
4393
4398
|
};
|
|
4394
4399
|
o[s] = { ...h, _meta: u };
|
|
4395
4400
|
}
|
|
@@ -4400,9 +4405,9 @@ var jr = class {
|
|
|
4400
4405
|
*/
|
|
4401
4406
|
async extractStructuredContent(t, e, r) {
|
|
4402
4407
|
if ("structuredContent" in t && t.structuredContent != null) {
|
|
4403
|
-
const n = await
|
|
4408
|
+
const n = await bt({
|
|
4404
4409
|
value: t.structuredContent,
|
|
4405
|
-
schema:
|
|
4410
|
+
schema: _t(e)
|
|
4406
4411
|
});
|
|
4407
4412
|
if (!n.success)
|
|
4408
4413
|
throw new C({
|
|
@@ -4414,7 +4419,7 @@ var jr = class {
|
|
|
4414
4419
|
if ("content" in t && Array.isArray(t.content)) {
|
|
4415
4420
|
const n = t.content.find((o) => o.type === "text");
|
|
4416
4421
|
if (n && "text" in n) {
|
|
4417
|
-
const o = await
|
|
4422
|
+
const o = await Tr({
|
|
4418
4423
|
text: n.text,
|
|
4419
4424
|
schema: e
|
|
4420
4425
|
});
|
|
@@ -4461,7 +4466,7 @@ var jr = class {
|
|
|
4461
4466
|
return this.getPromptInternal({ name: t, args: e, options: r });
|
|
4462
4467
|
}
|
|
4463
4468
|
onElicitationRequest(t, e) {
|
|
4464
|
-
if (t !==
|
|
4469
|
+
if (t !== tt)
|
|
4465
4470
|
throw new C({
|
|
4466
4471
|
message: "Unsupported request schema. Only ElicitationRequestSchema is supported."
|
|
4467
4472
|
});
|
|
@@ -4491,7 +4496,7 @@ var jr = class {
|
|
|
4491
4496
|
});
|
|
4492
4497
|
return;
|
|
4493
4498
|
}
|
|
4494
|
-
const e =
|
|
4499
|
+
const e = tt.safeParse({
|
|
4495
4500
|
method: t.method,
|
|
4496
4501
|
params: t.params
|
|
4497
4502
|
});
|
|
@@ -4508,7 +4513,7 @@ var jr = class {
|
|
|
4508
4513
|
return;
|
|
4509
4514
|
}
|
|
4510
4515
|
try {
|
|
4511
|
-
const r = await this.elicitationRequestHandler(e.data), n =
|
|
4516
|
+
const r = await this.elicitationRequestHandler(e.data), n = r0.parse(r);
|
|
4512
4517
|
await this.transport.send({
|
|
4513
4518
|
jsonrpc: "2.0",
|
|
4514
4519
|
id: t.id,
|
|
@@ -4559,15 +4564,15 @@ var jr = class {
|
|
|
4559
4564
|
);
|
|
4560
4565
|
}
|
|
4561
4566
|
};
|
|
4562
|
-
const
|
|
4567
|
+
const q0 = async (t) => {
|
|
4563
4568
|
const e = {};
|
|
4564
4569
|
try {
|
|
4565
4570
|
const r = await t.listTools();
|
|
4566
4571
|
for (const { name: n, description: o, inputSchema: s } of r.tools) {
|
|
4567
|
-
const a = async (
|
|
4568
|
-
e[n] =
|
|
4572
|
+
const a = async (c, d) => t.callTool({ name: n, arguments: c }, { signal: d?.abortSignal });
|
|
4573
|
+
e[n] = l2({
|
|
4569
4574
|
description: o,
|
|
4570
|
-
inputSchema:
|
|
4575
|
+
inputSchema: d2({
|
|
4571
4576
|
...s,
|
|
4572
4577
|
properties: s.properties ?? {},
|
|
4573
4578
|
additionalProperties: !1
|
|
@@ -4580,7 +4585,7 @@ const Zr = async (t) => {
|
|
|
4580
4585
|
throw r;
|
|
4581
4586
|
}
|
|
4582
4587
|
};
|
|
4583
|
-
function
|
|
4588
|
+
function z0(t) {
|
|
4584
4589
|
const e = Object.entries(t);
|
|
4585
4590
|
if (e.length === 0)
|
|
4586
4591
|
return "";
|
|
@@ -4592,11 +4597,11 @@ function qr(t) {
|
|
|
4592
4597
|
<tools>
|
|
4593
4598
|
`;
|
|
4594
4599
|
return e.forEach(([n, o]) => {
|
|
4595
|
-
const s = o, a = s.description || "无描述",
|
|
4600
|
+
const s = o, a = s.description || "无描述", c = s.parameters || s.inputSchema || {};
|
|
4596
4601
|
r += `${JSON.stringify({
|
|
4597
4602
|
name: n,
|
|
4598
4603
|
description: a,
|
|
4599
|
-
parameters:
|
|
4604
|
+
parameters: c
|
|
4600
4605
|
}, null, 2)}
|
|
4601
4606
|
`;
|
|
4602
4607
|
}), r += `
|
|
@@ -4630,7 +4635,7 @@ Thought: 用户想要获取今天的日期,我需要调用日期相关的工
|
|
|
4630
4635
|
- 如果不需要调用工具,直接给出最终答案即可
|
|
4631
4636
|
`, r;
|
|
4632
4637
|
}
|
|
4633
|
-
function
|
|
4638
|
+
function it(t, e) {
|
|
4634
4639
|
if (!t || typeof t != "string")
|
|
4635
4640
|
return null;
|
|
4636
4641
|
const r = t.match(/<tool_call>([\s\S]*?)<\/tool_call>/i);
|
|
@@ -4643,11 +4648,11 @@ function st(t, e) {
|
|
|
4643
4648
|
}
|
|
4644
4649
|
return null;
|
|
4645
4650
|
}
|
|
4646
|
-
const
|
|
4647
|
-
openai:
|
|
4648
|
-
deepseek:
|
|
4651
|
+
const D0 = {
|
|
4652
|
+
openai: m2,
|
|
4653
|
+
deepseek: f2
|
|
4649
4654
|
};
|
|
4650
|
-
class
|
|
4655
|
+
class Zn {
|
|
4651
4656
|
constructor({ llmConfig: e, mcpServers: r }) {
|
|
4652
4657
|
if (this.mcpServers = {}, this.mcpClients = {}, this.mcpTools = {}, this.ignoreToolnames = [], this.responseMessages = [], this.useReActMode = !1, !e)
|
|
4653
4658
|
throw new Error("llmConfig is required to initialize AgentModelProvider");
|
|
@@ -4656,7 +4661,7 @@ class Nn {
|
|
|
4656
4661
|
else if (e.providerType) {
|
|
4657
4662
|
const n = e.providerType;
|
|
4658
4663
|
let o;
|
|
4659
|
-
typeof n == "string" ? o =
|
|
4664
|
+
typeof n == "string" ? o = D0[n] : o = n, this.llm = o({
|
|
4660
4665
|
apiKey: e.apiKey,
|
|
4661
4666
|
baseURL: e.baseURL
|
|
4662
4667
|
});
|
|
@@ -4668,11 +4673,18 @@ class Nn {
|
|
|
4668
4673
|
async _createOneClient(e) {
|
|
4669
4674
|
try {
|
|
4670
4675
|
let r;
|
|
4671
|
-
if ("type" in e && e.type.toLocaleLowerCase() === "streamablehttp"
|
|
4672
|
-
const o =
|
|
4676
|
+
if ("type" in e && e.type.toLocaleLowerCase() === "streamablehttp") {
|
|
4677
|
+
const o = e, s = o.headers ? { headers: o.headers } : void 0;
|
|
4678
|
+
r = new me(new URL(o.url), { requestInit: s });
|
|
4679
|
+
} else if ("type" in e && e.type === "sse") {
|
|
4680
|
+
const o = e, s = o.headers ? { headers: o.headers } : void 0;
|
|
4681
|
+
r = new he(new URL(o.url), { requestInit: s });
|
|
4682
|
+
} else "type" in e && e.type === "extension" ? r = new w2(e.sessionId) : "transport" in e ? r = e.transport : r = e;
|
|
4683
|
+
if (e.useAISdkClient ?? !1) {
|
|
4684
|
+
const o = await j0({ transport: r });
|
|
4673
4685
|
return o.__transport__ = r, o;
|
|
4674
4686
|
} else {
|
|
4675
|
-
const o = new
|
|
4687
|
+
const o = new g2(
|
|
4676
4688
|
{ name: "mcp-web-client", version: "1.0.0" },
|
|
4677
4689
|
{ capabilities: { roots: { listChanged: !0 }, sampling: {}, elicitation: {} } }
|
|
4678
4690
|
);
|
|
@@ -4686,7 +4698,7 @@ class Nn {
|
|
|
4686
4698
|
async _closeOneClient(e) {
|
|
4687
4699
|
try {
|
|
4688
4700
|
const r = e.__transport__;
|
|
4689
|
-
if (r && r instanceof
|
|
4701
|
+
if (r && r instanceof Jt || r && r instanceof Wt)
|
|
4690
4702
|
return;
|
|
4691
4703
|
await r?.terminateSession?.(), await r?.close?.(), await e?.close?.();
|
|
4692
4704
|
} catch {
|
|
@@ -4709,7 +4721,7 @@ class Nn {
|
|
|
4709
4721
|
if (!e)
|
|
4710
4722
|
return null;
|
|
4711
4723
|
try {
|
|
4712
|
-
return typeof e.tools == "function" ? await e.tools() : await
|
|
4724
|
+
return typeof e.tools == "function" ? await e.tools() : await q0(e);
|
|
4713
4725
|
} catch (n) {
|
|
4714
4726
|
return this.onError && this.onError(n?.message || `Failed to query tools for ${r}`, n), console.error(`Failed to query tools for ${r}`, n), null;
|
|
4715
4727
|
}
|
|
@@ -4790,7 +4802,7 @@ class Nn {
|
|
|
4790
4802
|
}
|
|
4791
4803
|
/** 生成 ReAct 模式的系统提示词(包含工具描述) */
|
|
4792
4804
|
_generateReActSystemPrompt(e, r, n) {
|
|
4793
|
-
const o =
|
|
4805
|
+
const o = z0(e);
|
|
4794
4806
|
return n ? `${n}${o}` : `你是一个智能助手,可以通过调用工具来完成任务。
|
|
4795
4807
|
${o}`;
|
|
4796
4808
|
}
|
|
@@ -4814,10 +4826,10 @@ ${o}`;
|
|
|
4814
4826
|
const s = this._tempMergeTools(o.tools);
|
|
4815
4827
|
if (Object.keys(s).length === 0)
|
|
4816
4828
|
return this._chat(e, { model: r, maxSteps: n, ...o });
|
|
4817
|
-
let
|
|
4818
|
-
o.message && !o.messages ?
|
|
4819
|
-
const d = typeof r == "string" ? r : r?.modelId || "default-model", u = { role: "system", content: this._generateReActSystemPrompt(s, d, o.system) }, g =
|
|
4820
|
-
return e ===
|
|
4829
|
+
let c = [];
|
|
4830
|
+
o.message && !o.messages ? c.push({ role: "user", content: o.message }) : o.messages ? c = [...o.messages] : c = [...this.responseMessages];
|
|
4831
|
+
const d = typeof r == "string" ? r : r?.modelId || "default-model", u = { role: "system", content: this._generateReActSystemPrompt(s, d, o.system) }, g = c[0]?.role === "system" ? c : [u, ...c];
|
|
4832
|
+
return e === ye ? this._chatReActStream(g, s, d, n, o) : this._chatReActNonStream(g, s, d, n, o);
|
|
4821
4833
|
}
|
|
4822
4834
|
/**
|
|
4823
4835
|
* 检查消息内容是否包含图片
|
|
@@ -4857,8 +4869,8 @@ ${o}`;
|
|
|
4857
4869
|
e && o.push(e);
|
|
4858
4870
|
let s = 0;
|
|
4859
4871
|
const a = [];
|
|
4860
|
-
for (let
|
|
4861
|
-
const d = r[
|
|
4872
|
+
for (let c = r.length - 1; c >= 0; c--) {
|
|
4873
|
+
const d = r[c];
|
|
4862
4874
|
if (this._messageHasImage(d.content))
|
|
4863
4875
|
if (s < n)
|
|
4864
4876
|
a.unshift(d), s++;
|
|
@@ -4874,19 +4886,19 @@ ${o}`;
|
|
|
4874
4886
|
/** ReAct 模式非流式对话 */
|
|
4875
4887
|
async _chatReActNonStream(e, r, n, o, s) {
|
|
4876
4888
|
let a = [...e];
|
|
4877
|
-
const
|
|
4878
|
-
let
|
|
4889
|
+
const c = e[0]?.role === "system" ? e[0] : null, d = c ? e.slice(1) : e;
|
|
4890
|
+
let l = 0;
|
|
4879
4891
|
const u = s.maxImages ?? 3;
|
|
4880
|
-
for (;
|
|
4881
|
-
|
|
4882
|
-
const p = this._buildMessagesForModel(
|
|
4892
|
+
for (; l < o; ) {
|
|
4893
|
+
l++;
|
|
4894
|
+
const p = this._buildMessagesForModel(c, d, u), { tools: f, ...y } = s, m = (await Fe({
|
|
4883
4895
|
// @ts-ignore ProviderV2 是所有llm的父类,在每一个具体的llm类都有一个选择model的函数用法
|
|
4884
4896
|
model: this.llm(n),
|
|
4885
4897
|
messages: p,
|
|
4886
4898
|
...y
|
|
4887
4899
|
})).text, v = { role: "assistant", content: m };
|
|
4888
4900
|
d.push(v), a.push(v);
|
|
4889
|
-
const b =
|
|
4901
|
+
const b = it(m, r);
|
|
4890
4902
|
if (!b)
|
|
4891
4903
|
return this.responseMessages = a, {
|
|
4892
4904
|
text: m,
|
|
@@ -4907,10 +4919,10 @@ ${x.success ? JSON.stringify(x.result) : `工具执行失败 - ${x.error}`}
|
|
|
4907
4919
|
}
|
|
4908
4920
|
/** ReAct 模式流式对话 */
|
|
4909
4921
|
_chatReActStream(e, r, n, o, s) {
|
|
4910
|
-
const a = this,
|
|
4911
|
-
let d,
|
|
4922
|
+
const a = this, c = this.llm(n);
|
|
4923
|
+
let d, l;
|
|
4912
4924
|
const u = new Promise((p, f) => {
|
|
4913
|
-
d = p,
|
|
4925
|
+
d = p, l = f;
|
|
4914
4926
|
});
|
|
4915
4927
|
return {
|
|
4916
4928
|
fullStream: new ReadableStream({
|
|
@@ -4925,9 +4937,9 @@ ${x.success ? JSON.stringify(x.result) : `工具执行失败 - ${x.error}`}
|
|
|
4925
4937
|
m++;
|
|
4926
4938
|
const x = a._buildMessagesForModel(y, h, b), { tools: M, ...P } = s;
|
|
4927
4939
|
delete P.system, delete P.onFinish;
|
|
4928
|
-
const E = await
|
|
4940
|
+
const E = await ye({
|
|
4929
4941
|
...P,
|
|
4930
|
-
model:
|
|
4942
|
+
model: c,
|
|
4931
4943
|
messages: x
|
|
4932
4944
|
});
|
|
4933
4945
|
let R = "";
|
|
@@ -4939,7 +4951,7 @@ ${x.success ? JSON.stringify(x.result) : `工具执行失败 - ${x.error}`}
|
|
|
4939
4951
|
v += R;
|
|
4940
4952
|
const z = { role: "assistant", content: v };
|
|
4941
4953
|
h.push(z), f.push(z);
|
|
4942
|
-
const I =
|
|
4954
|
+
const I = it(v, r);
|
|
4943
4955
|
if (!I) {
|
|
4944
4956
|
p.enqueue({ type: "text-end" }), p.enqueue({ type: "finish-step" }), p.enqueue({ type: "finish" }), p.close(), a.responseMessages = f, d({ messages: f });
|
|
4945
4957
|
return;
|
|
@@ -4954,11 +4966,11 @@ ${x.success ? JSON.stringify(x.result) : `工具执行失败 - ${x.error}`}
|
|
|
4954
4966
|
id: j,
|
|
4955
4967
|
toolName: I.toolName
|
|
4956
4968
|
});
|
|
4957
|
-
const
|
|
4969
|
+
const W = JSON.stringify(I.arguments, null, 2);
|
|
4958
4970
|
p.enqueue({
|
|
4959
4971
|
type: "tool-input-delta",
|
|
4960
4972
|
id: j,
|
|
4961
|
-
delta:
|
|
4973
|
+
delta: W
|
|
4962
4974
|
}), p.enqueue({
|
|
4963
4975
|
type: "tool-input-end",
|
|
4964
4976
|
id: j
|
|
@@ -4969,46 +4981,46 @@ ${x.success ? JSON.stringify(x.result) : `工具执行失败 - ${x.error}`}
|
|
|
4969
4981
|
input: I.arguments
|
|
4970
4982
|
});
|
|
4971
4983
|
const A = await a._executeReActToolCall(I.toolName, I.arguments, r);
|
|
4972
|
-
let
|
|
4984
|
+
let te, Z = A.result;
|
|
4973
4985
|
if (A.success && A.result && typeof A.result == "object" && A.result.screenshot) {
|
|
4974
|
-
|
|
4975
|
-
const { screenshot: L, ...
|
|
4976
|
-
Z =
|
|
4986
|
+
te = A.result.screenshot;
|
|
4987
|
+
const { screenshot: L, ...re } = A.result;
|
|
4988
|
+
Z = re;
|
|
4977
4989
|
}
|
|
4978
|
-
let
|
|
4990
|
+
let J = "";
|
|
4979
4991
|
if (A.success) {
|
|
4980
|
-
Z && Array.isArray(Z.content) && Z.content.length > 0 && Z.content[0].text ?
|
|
4992
|
+
Z && Array.isArray(Z.content) && Z.content.length > 0 && Z.content[0].text ? J = Z.content[0].text : J = JSON.stringify(Z);
|
|
4981
4993
|
let L = `<tool_response>
|
|
4982
|
-
${
|
|
4994
|
+
${J}
|
|
4983
4995
|
</tool_response>`;
|
|
4984
|
-
|
|
4996
|
+
te && (L += `
|
|
4985
4997
|
请检查截图以确认操作是否成功。如果成功,请继续下一步;如果失败,请重试。`), p.enqueue({
|
|
4986
4998
|
type: "tool-result",
|
|
4987
4999
|
toolCallId: j,
|
|
4988
5000
|
result: L
|
|
4989
5001
|
});
|
|
4990
|
-
const
|
|
5002
|
+
const re = te ? {
|
|
4991
5003
|
role: "user",
|
|
4992
5004
|
content: [
|
|
4993
5005
|
{ type: "text", text: L },
|
|
4994
|
-
{ type: "image", image:
|
|
5006
|
+
{ type: "image", image: te }
|
|
4995
5007
|
]
|
|
4996
5008
|
} : {
|
|
4997
5009
|
role: "user",
|
|
4998
5010
|
content: L
|
|
4999
5011
|
};
|
|
5000
|
-
h.push(
|
|
5012
|
+
h.push(re), f.push(re), v = "";
|
|
5001
5013
|
} else
|
|
5002
|
-
|
|
5014
|
+
J = `工具执行失败 - ${A.error}`, p.enqueue({
|
|
5003
5015
|
type: "tool-error",
|
|
5004
5016
|
toolCallId: j,
|
|
5005
5017
|
input: I.arguments,
|
|
5006
|
-
error: { message:
|
|
5018
|
+
error: { message: J }
|
|
5007
5019
|
});
|
|
5008
5020
|
}
|
|
5009
5021
|
p.enqueue({ type: "text-end" }), p.enqueue({ type: "finish-step" }), p.enqueue({ type: "finish" }), p.close(), a.responseMessages = f, d({ messages: f });
|
|
5010
5022
|
} catch (x) {
|
|
5011
|
-
p.error(x),
|
|
5023
|
+
p.error(x), l(x);
|
|
5012
5024
|
}
|
|
5013
5025
|
}
|
|
5014
5026
|
}),
|
|
@@ -5024,41 +5036,41 @@ ${W}
|
|
|
5024
5036
|
const s = this._tempMergeTools(o.tools, !1), a = {
|
|
5025
5037
|
// @ts-ignore ProviderV2 是所有llm的父类, 在每一个具体的llm 类都有一个选择model的函数用法
|
|
5026
5038
|
model: this.llm(r),
|
|
5027
|
-
stopWhen:
|
|
5039
|
+
stopWhen: u2(n),
|
|
5028
5040
|
...o,
|
|
5029
5041
|
tools: s,
|
|
5030
5042
|
activeTools: this._getActiveToolNames(s)
|
|
5031
5043
|
};
|
|
5032
|
-
let
|
|
5044
|
+
let c = null;
|
|
5033
5045
|
if (o.message && !o.messages)
|
|
5034
|
-
|
|
5046
|
+
c = { role: "user", content: o.message }, this.responseMessages.push(c), a.messages = [...this.responseMessages];
|
|
5035
5047
|
else if (o.messages && o.messages.length > 0) {
|
|
5036
|
-
const
|
|
5037
|
-
|
|
5048
|
+
const l = o.messages[o.messages.length - 1];
|
|
5049
|
+
l.role === "user" && (c = l);
|
|
5038
5050
|
}
|
|
5039
5051
|
const d = e(a);
|
|
5040
|
-
return d?.response?.then((
|
|
5041
|
-
const u =
|
|
5042
|
-
|
|
5052
|
+
return d?.response?.then((l) => {
|
|
5053
|
+
const u = l.messages?.[0];
|
|
5054
|
+
c && u?.role !== "user" && this.responseMessages.push(c), this.responseMessages.push(...l.messages);
|
|
5043
5055
|
}), d;
|
|
5044
5056
|
}
|
|
5045
5057
|
async chat(e) {
|
|
5046
|
-
return this._chat(
|
|
5058
|
+
return this._chat(Fe, e);
|
|
5047
5059
|
}
|
|
5048
5060
|
async chatStream(e) {
|
|
5049
|
-
return this._chat(
|
|
5061
|
+
return this._chat(ye, e);
|
|
5050
5062
|
}
|
|
5051
5063
|
}
|
|
5052
|
-
let U = null,
|
|
5053
|
-
const
|
|
5054
|
-
function
|
|
5064
|
+
let U = null, ue = null, at = null, ne = 0;
|
|
5065
|
+
const H0 = "next-sdk-tool-body-glow";
|
|
5066
|
+
function ee() {
|
|
5055
5067
|
return typeof window < "u" && typeof document < "u";
|
|
5056
5068
|
}
|
|
5057
|
-
function
|
|
5058
|
-
if (!
|
|
5069
|
+
function F0() {
|
|
5070
|
+
if (!ee() || at) return;
|
|
5059
5071
|
const t = document.createElement("style");
|
|
5060
5072
|
t.textContent = `
|
|
5061
|
-
.${
|
|
5073
|
+
.${H0} {
|
|
5062
5074
|
position: relative;
|
|
5063
5075
|
}
|
|
5064
5076
|
|
|
@@ -5225,11 +5237,11 @@ function Hr() {
|
|
|
5225
5237
|
transform: scale(1) translateY(0);
|
|
5226
5238
|
}
|
|
5227
5239
|
}
|
|
5228
|
-
`, document.head.appendChild(t),
|
|
5240
|
+
`, document.head.appendChild(t), at = t;
|
|
5229
5241
|
}
|
|
5230
|
-
function
|
|
5231
|
-
if (!
|
|
5232
|
-
|
|
5242
|
+
function B0() {
|
|
5243
|
+
if (!ee() || U) return;
|
|
5244
|
+
F0();
|
|
5233
5245
|
const t = document.createElement("div");
|
|
5234
5246
|
t.className = "next-sdk-tool-overlay";
|
|
5235
5247
|
const e = document.createElement("div");
|
|
@@ -5244,61 +5256,61 @@ function Fr() {
|
|
|
5244
5256
|
s.className = "next-sdk-tool-overlay__indicator-core";
|
|
5245
5257
|
const a = document.createElement("div");
|
|
5246
5258
|
a.className = "next-sdk-tool-overlay__content";
|
|
5247
|
-
const
|
|
5248
|
-
|
|
5259
|
+
const c = document.createElement("div");
|
|
5260
|
+
c.className = "next-sdk-tool-overlay__title", c.textContent = "AI 正在调用页面工具";
|
|
5249
5261
|
const d = document.createElement("span");
|
|
5250
5262
|
d.className = "next-sdk-tool-overlay__title-dot";
|
|
5251
|
-
const
|
|
5252
|
-
|
|
5263
|
+
const l = document.createElement("div");
|
|
5264
|
+
l.className = "next-sdk-tool-overlay__label", c.prepend(d), a.appendChild(c), a.appendChild(l), n.appendChild(o), n.appendChild(s), r.appendChild(n), r.appendChild(a), t.appendChild(e), t.appendChild(r), document.body.appendChild(t), U = t, ue = l;
|
|
5253
5265
|
}
|
|
5254
|
-
function
|
|
5255
|
-
|
|
5266
|
+
function V0(t) {
|
|
5267
|
+
ee() && (B0(), !(!U || !ue) && (U.classList.remove("next-sdk-tool-overlay--exit"), ue.textContent = t.label));
|
|
5256
5268
|
}
|
|
5257
|
-
function
|
|
5269
|
+
function W0() {
|
|
5258
5270
|
if (!U) return;
|
|
5259
5271
|
U.classList.add("next-sdk-tool-overlay--exit");
|
|
5260
5272
|
const t = U;
|
|
5261
5273
|
let e = !1, r;
|
|
5262
5274
|
const n = () => {
|
|
5263
|
-
e || (e = !0, r !== void 0 && (clearTimeout(r), r = void 0), t.parentNode && t.parentNode.removeChild(t), U === t && (U = null,
|
|
5275
|
+
e || (e = !0, r !== void 0 && (clearTimeout(r), r = void 0), t.parentNode && t.parentNode.removeChild(t), U === t && (U = null, ue = null), t.removeEventListener("animationend", n));
|
|
5264
5276
|
};
|
|
5265
5277
|
t.addEventListener("animationend", n), r = setTimeout(n, 500);
|
|
5266
5278
|
}
|
|
5267
|
-
function
|
|
5268
|
-
|
|
5279
|
+
function J0(t) {
|
|
5280
|
+
ee() && (ne += 1, V0(t));
|
|
5269
5281
|
}
|
|
5270
|
-
function
|
|
5271
|
-
!
|
|
5282
|
+
function G0() {
|
|
5283
|
+
!ee() || ne <= 0 || (ne -= 1, ne === 0 && W0());
|
|
5272
5284
|
}
|
|
5273
|
-
function
|
|
5285
|
+
function K0(t, e, r) {
|
|
5274
5286
|
if (!r) return;
|
|
5275
5287
|
const n = e || t;
|
|
5276
5288
|
return typeof r == "boolean" ? r ? { label: n } : void 0 : {
|
|
5277
5289
|
label: r.label || n
|
|
5278
5290
|
};
|
|
5279
5291
|
}
|
|
5280
|
-
const
|
|
5281
|
-
function
|
|
5282
|
-
typeof window < "u" &&
|
|
5292
|
+
const jt = "next-sdk:tool-call", Me = "next-sdk:tool-response", Ze = "next-sdk:page-ready", Y0 = "next-sdk:page-leave", Q0 = "next-sdk:remoter-ready", X0 = "next-sdk:route-state-initial", F = /* @__PURE__ */ new Map(), pe = (t) => t.replace(/\/+$/, "") || "/", qe = /* @__PURE__ */ new Set();
|
|
5293
|
+
function en() {
|
|
5294
|
+
typeof window < "u" && qe.add({ win: window, origin: window.location.origin || "*" });
|
|
5283
5295
|
}
|
|
5284
|
-
|
|
5285
|
-
function
|
|
5296
|
+
en();
|
|
5297
|
+
function ct(t, e) {
|
|
5286
5298
|
const r = { type: t, route: e };
|
|
5287
|
-
|
|
5299
|
+
qe.forEach(({ win: n, origin: o }) => {
|
|
5288
5300
|
try {
|
|
5289
5301
|
n.postMessage(r, o);
|
|
5290
5302
|
} catch {
|
|
5291
5303
|
}
|
|
5292
5304
|
});
|
|
5293
5305
|
}
|
|
5294
|
-
function
|
|
5306
|
+
function tn() {
|
|
5295
5307
|
typeof window > "u" || window.addEventListener("message", (t) => {
|
|
5296
|
-
if (t.data?.type !==
|
|
5308
|
+
if (t.data?.type !== Q0 || !t.source || t.origin !== window.location.origin) return;
|
|
5297
5309
|
const e = t.source;
|
|
5298
|
-
|
|
5310
|
+
qe.add({ win: e, origin: t.origin || "*" });
|
|
5299
5311
|
const r = {
|
|
5300
|
-
type:
|
|
5301
|
-
toolRouteMap: Array.from(
|
|
5312
|
+
type: X0,
|
|
5313
|
+
toolRouteMap: Array.from(ze.entries()),
|
|
5302
5314
|
activeRoutes: Array.from(F.keys())
|
|
5303
5315
|
};
|
|
5304
5316
|
try {
|
|
@@ -5307,35 +5319,98 @@ function en() {
|
|
|
5307
5319
|
}
|
|
5308
5320
|
});
|
|
5309
5321
|
}
|
|
5310
|
-
|
|
5311
|
-
const
|
|
5312
|
-
function
|
|
5313
|
-
return new Map(
|
|
5322
|
+
tn();
|
|
5323
|
+
const ze = /* @__PURE__ */ new Map();
|
|
5324
|
+
function qn() {
|
|
5325
|
+
return new Map(ze);
|
|
5314
5326
|
}
|
|
5315
|
-
function
|
|
5327
|
+
function zn() {
|
|
5316
5328
|
return new Set(F.keys());
|
|
5317
5329
|
}
|
|
5318
|
-
let
|
|
5319
|
-
function
|
|
5320
|
-
|
|
5330
|
+
let Y = null;
|
|
5331
|
+
function Dn(t) {
|
|
5332
|
+
Y = t;
|
|
5333
|
+
}
|
|
5334
|
+
function rn(t, e = 1500) {
|
|
5335
|
+
if (typeof window > "u")
|
|
5336
|
+
return Promise.resolve();
|
|
5337
|
+
const r = pe(t);
|
|
5338
|
+
return new Promise((n) => {
|
|
5339
|
+
let o = !1;
|
|
5340
|
+
const s = () => {
|
|
5341
|
+
o || (o = !0, window.removeEventListener("message", a), n());
|
|
5342
|
+
}, a = (c) => {
|
|
5343
|
+
if (c.source !== window || c.data?.type !== Ze) return;
|
|
5344
|
+
pe(String(c.data.route ?? "")) === r && s();
|
|
5345
|
+
};
|
|
5346
|
+
window.addEventListener("message", a), setTimeout(s, e);
|
|
5347
|
+
});
|
|
5348
|
+
}
|
|
5349
|
+
function Hn(t, e) {
|
|
5350
|
+
const r = e?.name ?? "navigate_to_page", n = e?.title ?? "页面跳转", o = e?.description ?? '当需要的工具在当前页面不可用时,使用此工具跳转到特定页面。例如:要查询订单时跳转到 "/orders",要创建价保时跳转到 "/price-protection"。', s = e?.timeoutMs ?? 1500;
|
|
5351
|
+
return t.registerTool(
|
|
5352
|
+
r,
|
|
5353
|
+
{
|
|
5354
|
+
title: n,
|
|
5355
|
+
description: o,
|
|
5356
|
+
inputSchema: {
|
|
5357
|
+
path: G.string().describe('目标页面的路由地址,例如 "/orders"、"/inventory"、"/price-protection" 等。')
|
|
5358
|
+
}
|
|
5359
|
+
},
|
|
5360
|
+
async ({ path: a }) => {
|
|
5361
|
+
if (typeof window > "u")
|
|
5362
|
+
return {
|
|
5363
|
+
content: [{ type: "text", text: "当前环境不支持页面跳转(window 不存在)。" }]
|
|
5364
|
+
};
|
|
5365
|
+
if (!Y)
|
|
5366
|
+
return {
|
|
5367
|
+
content: [
|
|
5368
|
+
{
|
|
5369
|
+
type: "text",
|
|
5370
|
+
text: "页面跳转失败:尚未在应用入口调用 setNavigator 注册导航函数,无法执行路由跳转。"
|
|
5371
|
+
}
|
|
5372
|
+
]
|
|
5373
|
+
};
|
|
5374
|
+
try {
|
|
5375
|
+
const c = pe(a), d = pe(window.location.pathname);
|
|
5376
|
+
if (d === c || d.endsWith(c) && (d.length === c.length || d[d.lastIndexOf(c) - 1] === "/"))
|
|
5377
|
+
return {
|
|
5378
|
+
content: [{ type: "text", text: `当前已在页面:${a}。请继续你的下一步操作。` }]
|
|
5379
|
+
};
|
|
5380
|
+
const u = rn(a, s);
|
|
5381
|
+
return await Y(a), await u, {
|
|
5382
|
+
content: [{ type: "text", text: `已成功跳转至页面:${a}。请继续你的下一步操作。` }]
|
|
5383
|
+
};
|
|
5384
|
+
} catch (c) {
|
|
5385
|
+
return {
|
|
5386
|
+
content: [
|
|
5387
|
+
{
|
|
5388
|
+
type: "text",
|
|
5389
|
+
text: `页面跳转失败:${c instanceof Error ? c.message : String(c)}。`
|
|
5390
|
+
}
|
|
5391
|
+
]
|
|
5392
|
+
};
|
|
5393
|
+
}
|
|
5394
|
+
}
|
|
5395
|
+
);
|
|
5321
5396
|
}
|
|
5322
|
-
function
|
|
5397
|
+
function nn(t, e, r = 3e4, n) {
|
|
5323
5398
|
return (o) => {
|
|
5324
|
-
const s =
|
|
5325
|
-
return new Promise((a,
|
|
5326
|
-
let d,
|
|
5399
|
+
const s = Ae();
|
|
5400
|
+
return new Promise((a, c) => {
|
|
5401
|
+
let d, l;
|
|
5327
5402
|
const u = () => {
|
|
5328
|
-
clearTimeout(d), window.removeEventListener("message", g),
|
|
5403
|
+
clearTimeout(d), window.removeEventListener("message", g), l && window.removeEventListener("message", l), n && G0();
|
|
5329
5404
|
};
|
|
5330
5405
|
d = setTimeout(() => {
|
|
5331
|
-
u(),
|
|
5406
|
+
u(), c(new Error(`工具 [${t}] 调用超时 (${r}ms),请检查目标页面是否正确调用了 registerPageTool`));
|
|
5332
5407
|
}, r);
|
|
5333
5408
|
const g = (m) => {
|
|
5334
|
-
m.source === window && m.data?.type ===
|
|
5409
|
+
m.source === window && m.data?.type === Me && m.data.callId === s && (u(), m.data.error ? c(new Error(m.data.error)) : a(m.data.result));
|
|
5335
5410
|
};
|
|
5336
5411
|
window.addEventListener("message", g);
|
|
5337
5412
|
const p = () => {
|
|
5338
|
-
window.postMessage({ type:
|
|
5413
|
+
window.postMessage({ type: jt, callId: s, toolName: t, route: e, input: o }, window.location.origin || "*");
|
|
5339
5414
|
};
|
|
5340
5415
|
let f = !1;
|
|
5341
5416
|
const y = () => {
|
|
@@ -5343,61 +5418,61 @@ function tn(t, e, r = 3e4, n) {
|
|
|
5343
5418
|
};
|
|
5344
5419
|
(async () => {
|
|
5345
5420
|
try {
|
|
5346
|
-
if (n &&
|
|
5421
|
+
if (n && J0(n), F.get(e)) {
|
|
5347
5422
|
y();
|
|
5348
5423
|
return;
|
|
5349
5424
|
}
|
|
5350
|
-
|
|
5351
|
-
m.source === window && m.data?.type ===
|
|
5352
|
-
}, window.addEventListener("message",
|
|
5425
|
+
l = (m) => {
|
|
5426
|
+
m.source === window && m.data?.type === Ze && m.data.route === e && (window.removeEventListener("message", l), y());
|
|
5427
|
+
}, window.addEventListener("message", l), Y && await Y(e), F.get(e) && (window.removeEventListener("message", l), y());
|
|
5353
5428
|
} catch (m) {
|
|
5354
|
-
u(),
|
|
5429
|
+
u(), c(m instanceof Error ? m : new Error(String(m)));
|
|
5355
5430
|
}
|
|
5356
5431
|
})();
|
|
5357
5432
|
});
|
|
5358
5433
|
};
|
|
5359
5434
|
}
|
|
5360
|
-
function
|
|
5435
|
+
function Fn(t) {
|
|
5361
5436
|
return new Proxy(t, {
|
|
5362
5437
|
get(e, r, n) {
|
|
5363
5438
|
return r === "registerTool" ? (o, s, a) => {
|
|
5364
|
-
const
|
|
5439
|
+
const c = e.registerTool.bind(e);
|
|
5365
5440
|
if (typeof a == "function")
|
|
5366
|
-
return
|
|
5367
|
-
const { route: d, timeout:
|
|
5368
|
-
|
|
5369
|
-
const g =
|
|
5370
|
-
return
|
|
5441
|
+
return c(o, s, a);
|
|
5442
|
+
const { route: d, timeout: l, invokeEffect: u } = a;
|
|
5443
|
+
ze.set(o, d);
|
|
5444
|
+
const g = K0(o, s?.title, u);
|
|
5445
|
+
return c(o, s, nn(o, d, l, g));
|
|
5371
5446
|
} : Reflect.get(e, r, n);
|
|
5372
5447
|
}
|
|
5373
5448
|
});
|
|
5374
5449
|
}
|
|
5375
|
-
function
|
|
5450
|
+
function Bn(t) {
|
|
5376
5451
|
const { route: e, handlers: r } = t, n = (a) => a.replace(/\/+$/, "") || "/", o = n(e ?? window.location.pathname), s = async (a) => {
|
|
5377
|
-
if (a.source !== window || a.data?.type !==
|
|
5452
|
+
if (a.source !== window || a.data?.type !== jt || n(String(a.data?.route ?? "")) !== o || !(a.data.toolName in r))
|
|
5378
5453
|
return;
|
|
5379
|
-
const { callId:
|
|
5454
|
+
const { callId: c, toolName: d, input: l } = a.data;
|
|
5380
5455
|
try {
|
|
5381
|
-
const u = await r[d](
|
|
5382
|
-
window.postMessage({ type:
|
|
5456
|
+
const u = await r[d](l);
|
|
5457
|
+
window.postMessage({ type: Me, callId: c, result: u }, window.location.origin || "*");
|
|
5383
5458
|
} catch (u) {
|
|
5384
5459
|
window.postMessage(
|
|
5385
5460
|
{
|
|
5386
|
-
type:
|
|
5387
|
-
callId:
|
|
5461
|
+
type: Me,
|
|
5462
|
+
callId: c,
|
|
5388
5463
|
error: u instanceof Error ? u.message : String(u)
|
|
5389
5464
|
},
|
|
5390
5465
|
window.location.origin || "*"
|
|
5391
5466
|
);
|
|
5392
5467
|
}
|
|
5393
5468
|
};
|
|
5394
|
-
return F.set(o, !0), window.addEventListener("message", s),
|
|
5395
|
-
F.delete(o), window.removeEventListener("message", s),
|
|
5469
|
+
return F.set(o, !0), window.addEventListener("message", s), ct(Ze, o), () => {
|
|
5470
|
+
F.delete(o), window.removeEventListener("message", s), ct(Y0, o);
|
|
5396
5471
|
};
|
|
5397
5472
|
}
|
|
5398
|
-
const
|
|
5399
|
-
function
|
|
5400
|
-
const e = t.match(
|
|
5473
|
+
const Zt = /^\.\/[^/]+\/SKILL\.md$/, on = /^---\s*\n([\s\S]+?)\s*\n---/;
|
|
5474
|
+
function qt(t) {
|
|
5475
|
+
const e = t.match(on);
|
|
5401
5476
|
if (!e?.[1]) return null;
|
|
5402
5477
|
const r = e[1], n = r.match(/^name:\s*(.+)$/m), o = r.match(/^description:\s*(.+)$/m), s = n?.[1]?.trim(), a = o?.[1]?.trim();
|
|
5403
5478
|
return s && a ? { name: s, description: a } : null;
|
|
@@ -5405,21 +5480,21 @@ function Ut(t) {
|
|
|
5405
5480
|
function V(t) {
|
|
5406
5481
|
const e = {};
|
|
5407
5482
|
for (const [r, n] of Object.entries(t)) {
|
|
5408
|
-
const o = r.replace(/\\/g, "/"), s = o.lastIndexOf("skills/"), a = s >= 0 ? o.slice(s + 7) : o,
|
|
5409
|
-
e[
|
|
5483
|
+
const o = r.replace(/\\/g, "/"), s = o.lastIndexOf("skills/"), a = s >= 0 ? o.slice(s + 7) : o, c = a.startsWith("./") ? a : `./${a}`;
|
|
5484
|
+
e[c] = n;
|
|
5410
5485
|
}
|
|
5411
5486
|
return e;
|
|
5412
5487
|
}
|
|
5413
|
-
function
|
|
5488
|
+
function sn(t) {
|
|
5414
5489
|
const e = V(t);
|
|
5415
|
-
return Object.keys(e).filter((r) =>
|
|
5490
|
+
return Object.keys(e).filter((r) => Zt.test(r));
|
|
5416
5491
|
}
|
|
5417
|
-
function
|
|
5418
|
-
const e = V(t), r = Object.keys(e).filter((o) =>
|
|
5492
|
+
function Vn(t) {
|
|
5493
|
+
const e = V(t), r = Object.keys(e).filter((o) => Zt.test(o)), n = [];
|
|
5419
5494
|
for (const o of r) {
|
|
5420
5495
|
const s = e[o];
|
|
5421
5496
|
if (!s) continue;
|
|
5422
|
-
const a =
|
|
5497
|
+
const a = qt(s);
|
|
5423
5498
|
a && n.push({
|
|
5424
5499
|
name: a.name,
|
|
5425
5500
|
description: a.description,
|
|
@@ -5428,7 +5503,7 @@ function Hn(t) {
|
|
|
5428
5503
|
}
|
|
5429
5504
|
return n;
|
|
5430
5505
|
}
|
|
5431
|
-
function
|
|
5506
|
+
function Wn(t) {
|
|
5432
5507
|
return t.length === 0 ? "" : `## 可用技能
|
|
5433
5508
|
|
|
5434
5509
|
${t.map((r) => `- **${r.name}**: ${r.description}`).join(`
|
|
@@ -5436,122 +5511,123 @@ ${t.map((r) => `- **${r.name}**: ${r.description}`).join(`
|
|
|
5436
5511
|
|
|
5437
5512
|
当需要用到某技能时,请使用 get_skill_content 工具获取该技能的完整文档内容。`;
|
|
5438
5513
|
}
|
|
5439
|
-
function
|
|
5514
|
+
function Jn(t) {
|
|
5440
5515
|
const e = V(t);
|
|
5441
5516
|
return Object.keys(e);
|
|
5442
5517
|
}
|
|
5443
|
-
function
|
|
5518
|
+
function be(t, e) {
|
|
5444
5519
|
const r = V(t), n = r[e];
|
|
5445
5520
|
if (n) return n;
|
|
5446
5521
|
const o = e.replace(/^\.?\//, "/"), s = Object.keys(r).find((a) => a.endsWith(o));
|
|
5447
5522
|
return s ? r[s] : void 0;
|
|
5448
5523
|
}
|
|
5449
|
-
function
|
|
5450
|
-
const r = V(t), n =
|
|
5524
|
+
function an(t, e) {
|
|
5525
|
+
const r = V(t), n = sn(r), o = n.find((s) => s.startsWith(`./${e}/SKILL.md`));
|
|
5451
5526
|
if (o) return o;
|
|
5452
5527
|
for (const s of n) {
|
|
5453
5528
|
const a = r[s];
|
|
5454
5529
|
if (a) {
|
|
5455
|
-
const
|
|
5456
|
-
if (
|
|
5530
|
+
const c = qt(a);
|
|
5531
|
+
if (c && c.name === e)
|
|
5457
5532
|
return s;
|
|
5458
5533
|
}
|
|
5459
5534
|
}
|
|
5460
5535
|
}
|
|
5461
|
-
const
|
|
5462
|
-
skillName:
|
|
5536
|
+
const cn = G.object({
|
|
5537
|
+
skillName: G.string().optional().describe(
|
|
5463
5538
|
'进入某个技能的主入口名称。优先匹配技能的目录名(如 ecommerce),或者技能的中文名称(如"客户价保单创建及审核")。'
|
|
5464
5539
|
),
|
|
5465
|
-
path:
|
|
5466
|
-
currentPath:
|
|
5540
|
+
path: G.string().optional().describe("你想查阅的文档的路径。如 ./calculator/SKILL.md 或从其他文档里看到的相对路径 ./reference/inventory.md。"),
|
|
5541
|
+
currentPath: G.string().optional().describe(
|
|
5467
5542
|
"你当前正在阅读的文档路径(如果有)。比如你刚刚读取了 ./ecommerce/SKILL.md,请把这个路径原样传回来,这样系统才能根据你的相对路径准确找到下一份文件。"
|
|
5468
5543
|
)
|
|
5469
5544
|
});
|
|
5470
|
-
function
|
|
5545
|
+
function Gn(t) {
|
|
5471
5546
|
const e = V(t);
|
|
5472
5547
|
return {
|
|
5473
|
-
get_skill_content:
|
|
5548
|
+
get_skill_content: p2({
|
|
5474
5549
|
description: "根据技能名称或文档路径获取该技能的完整文档内容。如果你想根据相对路径查阅文件,请务必同时提供你当前所在的文件路径 currentPath。",
|
|
5475
|
-
inputSchema:
|
|
5550
|
+
inputSchema: cn,
|
|
5476
5551
|
execute: (n) => {
|
|
5477
5552
|
const { skillName: o, path: s, currentPath: a } = n;
|
|
5478
|
-
let
|
|
5553
|
+
let c, d = "";
|
|
5479
5554
|
if (s) {
|
|
5480
|
-
let
|
|
5555
|
+
let l = ".";
|
|
5481
5556
|
if (a) {
|
|
5482
5557
|
const p = a.lastIndexOf("/");
|
|
5483
|
-
p >= 0 && (
|
|
5558
|
+
p >= 0 && (l = a.slice(0, p));
|
|
5484
5559
|
}
|
|
5485
|
-
const u = `http://localhost/${
|
|
5486
|
-
if (d = "." + new URL(s, u).pathname,
|
|
5560
|
+
const u = `http://localhost/${l}/`;
|
|
5561
|
+
if (d = "." + new URL(s, u).pathname, c = be(e, d), c === void 0 && (s.startsWith("./") || s.startsWith("../")) && a) {
|
|
5487
5562
|
const p = a.split("/");
|
|
5488
5563
|
if (p.length >= 2) {
|
|
5489
5564
|
const y = `http://localhost/${p[1]}/`, m = "." + new URL(s, y).pathname;
|
|
5490
|
-
|
|
5565
|
+
c = be(e, m), c && (d = m);
|
|
5491
5566
|
}
|
|
5492
5567
|
}
|
|
5493
|
-
if (
|
|
5568
|
+
if (c && !e[d]) {
|
|
5494
5569
|
const p = d.replace(/^\.?\//, "/"), f = Object.keys(e).find((y) => y.endsWith(p));
|
|
5495
5570
|
f && (d = f);
|
|
5496
5571
|
}
|
|
5497
5572
|
} else if (o) {
|
|
5498
|
-
const
|
|
5499
|
-
|
|
5573
|
+
const l = an(e, o);
|
|
5574
|
+
l && (d = l, c = be(e, l));
|
|
5500
5575
|
}
|
|
5501
|
-
return
|
|
5576
|
+
return c === void 0 ? {
|
|
5502
5577
|
error: "未找到对应技能文档",
|
|
5503
5578
|
skillName: o,
|
|
5504
5579
|
path: s,
|
|
5505
5580
|
providedCurrentPath: a,
|
|
5506
5581
|
attemptedPath: d
|
|
5507
|
-
} : { content:
|
|
5582
|
+
} : { content: c, path: d };
|
|
5508
5583
|
}
|
|
5509
5584
|
})
|
|
5510
5585
|
};
|
|
5511
5586
|
}
|
|
5512
5587
|
export {
|
|
5513
|
-
|
|
5514
|
-
|
|
5515
|
-
|
|
5516
|
-
|
|
5517
|
-
|
|
5518
|
-
|
|
5519
|
-
|
|
5520
|
-
|
|
5521
|
-
|
|
5522
|
-
|
|
5523
|
-
|
|
5524
|
-
|
|
5525
|
-
|
|
5526
|
-
|
|
5527
|
-
|
|
5528
|
-
|
|
5529
|
-
|
|
5530
|
-
|
|
5531
|
-
|
|
5532
|
-
|
|
5533
|
-
|
|
5534
|
-
|
|
5535
|
-
|
|
5536
|
-
|
|
5537
|
-
|
|
5538
|
-
|
|
5539
|
-
|
|
5540
|
-
|
|
5541
|
-
|
|
5542
|
-
|
|
5543
|
-
|
|
5544
|
-
|
|
5545
|
-
|
|
5546
|
-
|
|
5547
|
-
|
|
5548
|
-
|
|
5549
|
-
|
|
5550
|
-
|
|
5551
|
-
|
|
5552
|
-
|
|
5553
|
-
|
|
5554
|
-
|
|
5555
|
-
|
|
5556
|
-
|
|
5588
|
+
Zn as AgentModelProvider,
|
|
5589
|
+
Qn as Ajv,
|
|
5590
|
+
ro as AuthClientProvider,
|
|
5591
|
+
Nn as ContentScriptServerTransport,
|
|
5592
|
+
w2 as ExtensionClientTransport,
|
|
5593
|
+
Un as ExtensionPageServerTransport,
|
|
5594
|
+
ho as InMemoryTransport,
|
|
5595
|
+
Y0 as MSG_PAGE_LEAVE,
|
|
5596
|
+
Q0 as MSG_REMOTER_READY,
|
|
5597
|
+
X0 as MSG_ROUTE_STATE_INITIAL,
|
|
5598
|
+
v2 as QrCode,
|
|
5599
|
+
oo as ResourceTemplate,
|
|
5600
|
+
io as UriTemplate,
|
|
5601
|
+
g2 as WebMcpClient,
|
|
5602
|
+
kn as WebMcpServer,
|
|
5603
|
+
co as completable,
|
|
5604
|
+
In as createMessageChannelClientTransport,
|
|
5605
|
+
Pn as createMessageChannelPairTransport,
|
|
5606
|
+
Sn as createMessageChannelServerTransport,
|
|
5607
|
+
jn as createRemoter,
|
|
5608
|
+
En as createSSEClientTransport,
|
|
5609
|
+
Gn as createSkillTools,
|
|
5610
|
+
Rn as createStreamableHTTPClientTransport,
|
|
5611
|
+
Wn as formatSkillsForSystemPrompt,
|
|
5612
|
+
q0 as getAISDKTools,
|
|
5613
|
+
zn as getActiveRoutes,
|
|
5614
|
+
uo as getDisplayName,
|
|
5615
|
+
an as getMainSkillPathByName,
|
|
5616
|
+
sn as getMainSkillPaths,
|
|
5617
|
+
be as getSkillMdContent,
|
|
5618
|
+
Jn as getSkillMdPaths,
|
|
5619
|
+
Vn as getSkillOverviews,
|
|
5620
|
+
qn as getToolRouteMap,
|
|
5621
|
+
$n as isMcpClient,
|
|
5622
|
+
Mn as isMcpServer,
|
|
5623
|
+
On as isMessageChannelClientTransport,
|
|
5624
|
+
Tn as isMessageChannelServerTransport,
|
|
5625
|
+
An as isSSEClientTransport,
|
|
5626
|
+
y2 as isStreamableHTTPClientTransport,
|
|
5627
|
+
qt as parseSkillFrontMatter,
|
|
5628
|
+
Hn as registerNavigateTool,
|
|
5629
|
+
Bn as registerPageTool,
|
|
5630
|
+
Dn as setNavigator,
|
|
5631
|
+
Fn as withPageTools,
|
|
5632
|
+
eo as z
|
|
5557
5633
|
};
|