ai 4.1.60 → 4.1.62

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
@@ -1399,6 +1399,7 @@ function convertPartToLanguageModelPart(part, downloadedAssets) {
1399
1399
  return {
1400
1400
  type: "file",
1401
1401
  data: normalizedData instanceof Uint8Array ? convertDataContentToBase64String(normalizedData) : normalizedData,
1402
+ filename: part.filename,
1402
1403
  mimeType,
1403
1404
  providerMetadata: (_d = part.providerOptions) != null ? _d : part.experimental_providerMetadata
1404
1405
  };
@@ -1917,6 +1918,7 @@ var imagePartSchema = import_zod5.z.object({
1917
1918
  var filePartSchema = import_zod5.z.object({
1918
1919
  type: import_zod5.z.literal("file"),
1919
1920
  data: import_zod5.z.union([dataContentSchema, import_zod5.z.instanceof(URL)]),
1921
+ filename: import_zod5.z.string().optional(),
1920
1922
  mimeType: import_zod5.z.string(),
1921
1923
  providerOptions: providerMetadataSchema.optional(),
1922
1924
  experimental_providerMetadata: providerMetadataSchema.optional()
@@ -6671,79 +6673,11 @@ function tool(tool2) {
6671
6673
  return tool2;
6672
6674
  }
6673
6675
 
6674
- // core/tool/mcp/create-child-process.ts
6675
- async function createChildProcess(config, signal) {
6676
- var _a17, _b, _c;
6677
- const runtime = detectRuntime();
6678
- if (runtime !== "node") {
6679
- throw new MCPClientError({
6680
- message: "Attempted to use child_process module outside of Node.js environment"
6681
- });
6682
- }
6683
- let childProcess;
6684
- const nodePrefix = "node:";
6685
- try {
6686
- childProcess = await import(`${nodePrefix}child_process`);
6687
- } catch (error) {
6688
- try {
6689
- childProcess = require(`${nodePrefix}child_process`);
6690
- } catch (innerError) {
6691
- throw new MCPClientError({
6692
- message: "Failed to load child_process module dynamically",
6693
- cause: innerError
6694
- });
6695
- }
6696
- }
6697
- const { spawn } = childProcess;
6698
- return spawn(config.command, (_a17 = config.args) != null ? _a17 : [], {
6699
- env: (_b = config.env) != null ? _b : getDefaultEnvironment(),
6700
- stdio: ["pipe", "pipe", (_c = config.stderr) != null ? _c : "inherit"],
6701
- shell: false,
6702
- signal,
6703
- windowsHide: globalThis.process.platform === "win32" && isElectron(),
6704
- cwd: config.cwd
6705
- });
6706
- }
6707
- function detectRuntime() {
6708
- var _a17, _b;
6709
- if (typeof window !== "undefined") {
6710
- return "browser";
6711
- }
6712
- if (((_b = (_a17 = globalThis.process) == null ? void 0 : _a17.release) == null ? void 0 : _b.name) === "node") {
6713
- return "node";
6714
- }
6715
- return null;
6716
- }
6717
- function getDefaultEnvironment() {
6718
- const DEFAULT_INHERITED_ENV_VARS = globalThis.process.platform === "win32" ? [
6719
- "APPDATA",
6720
- "HOMEDRIVE",
6721
- "HOMEPATH",
6722
- "LOCALAPPDATA",
6723
- "PATH",
6724
- "PROCESSOR_ARCHITECTURE",
6725
- "SYSTEMDRIVE",
6726
- "SYSTEMROOT",
6727
- "TEMP",
6728
- "USERNAME",
6729
- "USERPROFILE"
6730
- ] : ["HOME", "LOGNAME", "PATH", "SHELL", "TERM", "USER"];
6731
- const env = {};
6732
- for (const key of DEFAULT_INHERITED_ENV_VARS) {
6733
- const value = globalThis.process.env[key];
6734
- if (value === void 0) {
6735
- continue;
6736
- }
6737
- if (value.startsWith("()")) {
6738
- continue;
6739
- }
6740
- env[key] = value;
6741
- }
6742
- return env;
6743
- }
6744
- function isElectron() {
6745
- return "type" in globalThis.process;
6746
- }
6676
+ // core/tool/mcp/mcp-sse-transport.ts
6677
+ var import_stream = require("eventsource-parser/stream");
6678
+
6679
+ // core/tool/mcp/json-rpc-message.ts
6680
+ var import_zod9 = require("zod");
6747
6681
 
6748
6682
  // core/tool/mcp/types.ts
6749
6683
  var import_zod8 = require("zod");
@@ -6752,7 +6686,6 @@ var SUPPORTED_PROTOCOL_VERSIONS = [
6752
6686
  LATEST_PROTOCOL_VERSION,
6753
6687
  "2024-10-07"
6754
6688
  ];
6755
- var JSONRPC_VERSION = "2.0";
6756
6689
  var ClientOrServerImplementationSchema = import_zod8.z.object({
6757
6690
  name: import_zod8.z.string(),
6758
6691
  version: import_zod8.z.string()
@@ -6760,43 +6693,11 @@ var ClientOrServerImplementationSchema = import_zod8.z.object({
6760
6693
  var BaseParamsSchema = import_zod8.z.object({
6761
6694
  _meta: import_zod8.z.optional(import_zod8.z.object({}).passthrough())
6762
6695
  }).passthrough();
6763
- var RequestSchema = import_zod8.z.object({
6764
- method: import_zod8.z.string(),
6765
- params: import_zod8.z.optional(BaseParamsSchema)
6766
- });
6767
6696
  var ResultSchema = BaseParamsSchema;
6768
- var NotificationSchema = import_zod8.z.object({
6697
+ var RequestSchema = import_zod8.z.object({
6769
6698
  method: import_zod8.z.string(),
6770
6699
  params: import_zod8.z.optional(BaseParamsSchema)
6771
6700
  });
6772
- var RequestIdSchema = import_zod8.z.union([import_zod8.z.string(), import_zod8.z.number().int()]);
6773
- var JSONRPCRequestSchema = import_zod8.z.object({
6774
- jsonrpc: import_zod8.z.literal(JSONRPC_VERSION),
6775
- id: RequestIdSchema
6776
- }).merge(RequestSchema).strict();
6777
- var JSONRPCResponseSchema = import_zod8.z.object({
6778
- jsonrpc: import_zod8.z.literal(JSONRPC_VERSION),
6779
- id: RequestIdSchema,
6780
- result: ResultSchema
6781
- }).strict();
6782
- var JSONRPCErrorSchema = import_zod8.z.object({
6783
- jsonrpc: import_zod8.z.literal(JSONRPC_VERSION),
6784
- id: RequestIdSchema,
6785
- error: import_zod8.z.object({
6786
- code: import_zod8.z.number().int(),
6787
- message: import_zod8.z.string(),
6788
- data: import_zod8.z.optional(import_zod8.z.unknown())
6789
- })
6790
- }).strict();
6791
- var JSONRPCNotificationSchema = import_zod8.z.object({
6792
- jsonrpc: import_zod8.z.literal(JSONRPC_VERSION)
6793
- }).merge(NotificationSchema).strict();
6794
- var JSONRPCMessageSchema = import_zod8.z.union([
6795
- JSONRPCRequestSchema,
6796
- JSONRPCNotificationSchema,
6797
- JSONRPCResponseSchema,
6798
- JSONRPCErrorSchema
6799
- ]);
6800
6701
  var ServerCapabilitiesSchema = import_zod8.z.object({
6801
6702
  experimental: import_zod8.z.optional(import_zod8.z.object({}).passthrough()),
6802
6703
  logging: import_zod8.z.optional(import_zod8.z.object({}).passthrough()),
@@ -6877,127 +6778,43 @@ var CallToolResultSchema = ResultSchema.extend({
6877
6778
  })
6878
6779
  );
6879
6780
 
6880
- // core/tool/mcp/mcp-stdio-transport.ts
6881
- var StdioClientTransport = class {
6882
- constructor(server) {
6883
- this.abortController = new AbortController();
6884
- this.readBuffer = new ReadBuffer();
6885
- this.serverParams = server;
6886
- }
6887
- async start() {
6888
- if (this.process) {
6889
- throw new MCPClientError({
6890
- message: "StdioClientTransport already started."
6891
- });
6892
- }
6893
- return new Promise(async (resolve, reject) => {
6894
- var _a17, _b, _c, _d;
6895
- try {
6896
- const process2 = await createChildProcess(
6897
- this.serverParams,
6898
- this.abortController.signal
6899
- );
6900
- this.process = process2;
6901
- this.process.on("error", (error) => {
6902
- var _a18, _b2;
6903
- if (error.name === "AbortError") {
6904
- (_a18 = this.onClose) == null ? void 0 : _a18.call(this);
6905
- return;
6906
- }
6907
- reject(error);
6908
- (_b2 = this.onError) == null ? void 0 : _b2.call(this, error);
6909
- });
6910
- this.process.on("spawn", () => {
6911
- resolve();
6912
- });
6913
- this.process.on("close", (_code) => {
6914
- var _a18;
6915
- this.process = void 0;
6916
- (_a18 = this.onClose) == null ? void 0 : _a18.call(this);
6917
- });
6918
- (_a17 = this.process.stdin) == null ? void 0 : _a17.on("error", (error) => {
6919
- var _a18;
6920
- (_a18 = this.onError) == null ? void 0 : _a18.call(this, error);
6921
- });
6922
- (_b = this.process.stdout) == null ? void 0 : _b.on("data", (chunk) => {
6923
- this.readBuffer.append(chunk);
6924
- this.processReadBuffer();
6925
- });
6926
- (_c = this.process.stdout) == null ? void 0 : _c.on("error", (error) => {
6927
- var _a18;
6928
- (_a18 = this.onError) == null ? void 0 : _a18.call(this, error);
6929
- });
6930
- } catch (error) {
6931
- reject(error);
6932
- (_d = this.onError) == null ? void 0 : _d.call(this, error);
6933
- }
6934
- });
6935
- }
6936
- processReadBuffer() {
6937
- var _a17, _b;
6938
- while (true) {
6939
- try {
6940
- const message = this.readBuffer.readMessage();
6941
- if (message === null) {
6942
- break;
6943
- }
6944
- (_a17 = this.onMessage) == null ? void 0 : _a17.call(this, message);
6945
- } catch (error) {
6946
- (_b = this.onError) == null ? void 0 : _b.call(this, error);
6947
- }
6948
- }
6949
- }
6950
- async close() {
6951
- this.abortController.abort();
6952
- this.process = void 0;
6953
- this.readBuffer.clear();
6954
- }
6955
- send(message) {
6956
- return new Promise((resolve) => {
6957
- var _a17;
6958
- if (!((_a17 = this.process) == null ? void 0 : _a17.stdin)) {
6959
- throw new MCPClientError({
6960
- message: "StdioClientTransport not connected"
6961
- });
6962
- }
6963
- const json = serializeMessage(message);
6964
- if (this.process.stdin.write(json)) {
6965
- resolve();
6966
- } else {
6967
- this.process.stdin.once("drain", resolve);
6968
- }
6969
- });
6970
- }
6971
- };
6972
- var ReadBuffer = class {
6973
- append(chunk) {
6974
- this.buffer = this.buffer ? Buffer.concat([this.buffer, chunk]) : chunk;
6975
- }
6976
- readMessage() {
6977
- if (!this.buffer)
6978
- return null;
6979
- const index = this.buffer.indexOf("\n");
6980
- if (index === -1) {
6981
- return null;
6982
- }
6983
- const line = this.buffer.toString("utf8", 0, index);
6984
- this.buffer = this.buffer.subarray(index + 1);
6985
- return deserializeMessage(line);
6986
- }
6987
- clear() {
6988
- this.buffer = void 0;
6989
- }
6990
- };
6991
- function serializeMessage(message) {
6992
- return JSON.stringify(message) + "\n";
6993
- }
6994
- function deserializeMessage(line) {
6995
- return JSONRPCMessageSchema.parse(JSON.parse(line));
6996
- }
6781
+ // core/tool/mcp/json-rpc-message.ts
6782
+ var JSONRPC_VERSION = "2.0";
6783
+ var JSONRPCRequestSchema = import_zod9.z.object({
6784
+ jsonrpc: import_zod9.z.literal(JSONRPC_VERSION),
6785
+ id: import_zod9.z.union([import_zod9.z.string(), import_zod9.z.number().int()])
6786
+ }).merge(RequestSchema).strict();
6787
+ var JSONRPCResponseSchema = import_zod9.z.object({
6788
+ jsonrpc: import_zod9.z.literal(JSONRPC_VERSION),
6789
+ id: import_zod9.z.union([import_zod9.z.string(), import_zod9.z.number().int()]),
6790
+ result: ResultSchema
6791
+ }).strict();
6792
+ var JSONRPCErrorSchema = import_zod9.z.object({
6793
+ jsonrpc: import_zod9.z.literal(JSONRPC_VERSION),
6794
+ id: import_zod9.z.union([import_zod9.z.string(), import_zod9.z.number().int()]),
6795
+ error: import_zod9.z.object({
6796
+ code: import_zod9.z.number().int(),
6797
+ message: import_zod9.z.string(),
6798
+ data: import_zod9.z.optional(import_zod9.z.unknown())
6799
+ })
6800
+ }).strict();
6801
+ var JSONRPCNotificationSchema = import_zod9.z.object({
6802
+ jsonrpc: import_zod9.z.literal(JSONRPC_VERSION)
6803
+ }).merge(
6804
+ import_zod9.z.object({
6805
+ method: import_zod9.z.string(),
6806
+ params: import_zod9.z.optional(BaseParamsSchema)
6807
+ })
6808
+ ).strict();
6809
+ var JSONRPCMessageSchema = import_zod9.z.union([
6810
+ JSONRPCRequestSchema,
6811
+ JSONRPCNotificationSchema,
6812
+ JSONRPCResponseSchema,
6813
+ JSONRPCErrorSchema
6814
+ ]);
6997
6815
 
6998
6816
  // core/tool/mcp/mcp-sse-transport.ts
6999
- var import_stream = require("eventsource-parser/stream");
7000
- var SSEClientTransport = class {
6817
+ var SseMCPTransport = class {
7001
6818
  constructor({ url }) {
7002
6819
  this.connected = false;
7003
6820
  this.url = new URL(url);
@@ -7021,7 +6838,7 @@ var SSEClientTransport = class {
7021
6838
  const error = new MCPClientError({
7022
6839
  message: `MCP SSE Transport Error: ${response.status} ${response.statusText}`
7023
6840
  });
7024
- (_b = this.onError) == null ? void 0 : _b.call(this, error);
6841
+ (_b = this.onerror) == null ? void 0 : _b.call(this, error);
7025
6842
  return reject(error);
7026
6843
  }
7027
6844
  const stream = response.body.pipeThrough(new TextDecoderStream()).pipeThrough(new import_stream.EventSourceParserStream());
@@ -7055,13 +6872,13 @@ var SSEClientTransport = class {
7055
6872
  const message = JSONRPCMessageSchema.parse(
7056
6873
  JSON.parse(data)
7057
6874
  );
7058
- (_a18 = this.onMessage) == null ? void 0 : _a18.call(this, message);
6875
+ (_a18 = this.onmessage) == null ? void 0 : _a18.call(this, message);
7059
6876
  } catch (error) {
7060
6877
  const e = new MCPClientError({
7061
6878
  message: "MCP SSE Transport Error: Failed to parse message",
7062
6879
  cause: error
7063
6880
  });
7064
- (_b2 = this.onError) == null ? void 0 : _b2.call(this, e);
6881
+ (_b2 = this.onerror) == null ? void 0 : _b2.call(this, e);
7065
6882
  }
7066
6883
  }
7067
6884
  }
@@ -7069,7 +6886,7 @@ var SSEClientTransport = class {
7069
6886
  if (error instanceof Error && error.name === "AbortError") {
7070
6887
  return;
7071
6888
  }
7072
- (_c2 = this.onError) == null ? void 0 : _c2.call(this, error);
6889
+ (_c2 = this.onerror) == null ? void 0 : _c2.call(this, error);
7073
6890
  reject(error);
7074
6891
  }
7075
6892
  };
@@ -7081,7 +6898,7 @@ var SSEClientTransport = class {
7081
6898
  if (error instanceof Error && error.name === "AbortError") {
7082
6899
  return;
7083
6900
  }
7084
- (_c = this.onError) == null ? void 0 : _c.call(this, error);
6901
+ (_c = this.onerror) == null ? void 0 : _c.call(this, error);
7085
6902
  reject(error);
7086
6903
  }
7087
6904
  };
@@ -7093,7 +6910,7 @@ var SSEClientTransport = class {
7093
6910
  this.connected = false;
7094
6911
  (_a17 = this.sseConnection) == null ? void 0 : _a17.close();
7095
6912
  (_b = this.abortController) == null ? void 0 : _b.abort();
7096
- (_c = this.onClose) == null ? void 0 : _c.call(this);
6913
+ (_c = this.onclose) == null ? void 0 : _c.call(this);
7097
6914
  }
7098
6915
  async send(message) {
7099
6916
  var _a17, _b, _c;
@@ -7117,11 +6934,11 @@ var SSEClientTransport = class {
7117
6934
  const error = new MCPClientError({
7118
6935
  message: `MCP SSE Transport Error: POSTing to endpoint (HTTP ${response.status}): ${text2}`
7119
6936
  });
7120
- (_b = this.onError) == null ? void 0 : _b.call(this, error);
6937
+ (_b = this.onerror) == null ? void 0 : _b.call(this, error);
7121
6938
  return;
7122
6939
  }
7123
6940
  } catch (error) {
7124
- (_c = this.onError) == null ? void 0 : _c.call(this, error);
6941
+ (_c = this.onerror) == null ? void 0 : _c.call(this, error);
7125
6942
  return;
7126
6943
  }
7127
6944
  }
@@ -7129,7 +6946,15 @@ var SSEClientTransport = class {
7129
6946
 
7130
6947
  // core/tool/mcp/mcp-transport.ts
7131
6948
  function createMcpTransport(config) {
7132
- return config.type === "stdio" ? new StdioClientTransport(config) : new SSEClientTransport(config);
6949
+ if (config.type !== "sse") {
6950
+ throw new MCPClientError({
6951
+ message: "Unsupported or invalid transport configuration. If you are using a custom transport, make sure it implements the MCPTransport interface."
6952
+ });
6953
+ }
6954
+ return new SseMCPTransport(config);
6955
+ }
6956
+ function isCustomMcpTransport(transport) {
6957
+ return "start" in transport && typeof transport.start === "function" && "send" in transport && typeof transport.send === "function" && "close" in transport && typeof transport.close === "function";
7133
6958
  }
7134
6959
 
7135
6960
  // core/tool/mcp/mcp-client.ts
@@ -7150,10 +6975,14 @@ var MCPClient = class {
7150
6975
  this.serverCapabilities = {};
7151
6976
  this.isClosed = true;
7152
6977
  this.onUncaughtError = onUncaughtError;
7153
- this.transport = createMcpTransport(transportConfig);
7154
- this.transport.onClose = () => this.onClose();
7155
- this.transport.onError = (error) => this.onError(error);
7156
- this.transport.onMessage = (message) => {
6978
+ if (isCustomMcpTransport(transportConfig)) {
6979
+ this.transport = transportConfig;
6980
+ } else {
6981
+ this.transport = createMcpTransport(transportConfig);
6982
+ }
6983
+ this.transport.onclose = () => this.onClose();
6984
+ this.transport.onerror = (error) => this.onError(error);
6985
+ this.transport.onmessage = (message) => {
7157
6986
  if ("method" in message) {
7158
6987
  this.onError(
7159
6988
  new MCPClientError({