@opentiny/next-sdk 0.2.1 → 0.2.3

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