@anthropic-ai/claude-agent-sdk 0.1.73 → 0.1.74

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.
@@ -596,13 +596,17 @@ export interface Query extends AsyncGenerator<SDKMessage, void> {
596
596
  * This replaces the current set of dynamically-added MCP servers with the provided set.
597
597
  * Servers that are removed will be disconnected, and new servers will be connected.
598
598
  *
599
+ * Supports both process-based servers (stdio, sse, http) and SDK servers (in-process).
600
+ * SDK servers are handled locally in the SDK process, while process-based servers
601
+ * are managed by the CLI subprocess.
602
+ *
599
603
  * Note: This only affects servers added dynamically via this method or the SDK.
600
604
  * Servers configured via settings files are not affected.
601
605
  *
602
606
  * @param servers - Record of server name to configuration. Pass an empty object to remove all dynamic servers.
603
607
  * @returns Information about which servers were added, removed, and any connection errors
604
608
  */
605
- setMcpServers(servers: Record<string, McpServerConfigForProcessTransport>): Promise<McpSetServersResult>;
609
+ setMcpServers(servers: Record<string, McpServerConfig>): Promise<McpSetServersResult>;
606
610
  /**
607
611
  * Stream input messages to the query.
608
612
  * Used internally for multi-turn conversations.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anthropic-ai/claude-agent-sdk",
3
- "version": "0.1.73",
3
+ "version": "0.1.74",
4
4
  "main": "sdk.mjs",
5
5
  "types": "sdk.d.ts",
6
6
  "engines": {
package/sdk-tools.d.ts CHANGED
@@ -102,14 +102,6 @@ export interface TaskOutputInput {
102
102
  timeout?: number;
103
103
  }
104
104
  export interface ExitPlanModeInput {
105
- /**
106
- * Whether to launch a swarm to implement the plan
107
- */
108
- launchSwarm?: boolean;
109
- /**
110
- * Number of teammates to spawn in the swarm
111
- */
112
- teammateCount?: number;
113
105
  [k: string]: unknown;
114
106
  }
115
107
  export interface FileEditInput {
package/sdk.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  // (c) Anthropic PBC. All rights reserved. Use is subject to the Legal Agreements outlined here: https://code.claude.com/docs/en/legal-and-compliance.
3
3
 
4
- // Version: 0.1.73
4
+ // Version: 0.1.74
5
5
 
6
6
  // Want to see the unminified source? We're hiring!
7
7
  // https://job-boards.greenhouse.io/anthropic/jobs/4816199008
@@ -12599,6 +12599,7 @@ function getInitialState() {
12599
12599
  needsPlanModeExitAttachment: false,
12600
12600
  hasExitedDelegateMode: false,
12601
12601
  needsDelegateModeExitAttachment: false,
12602
+ lspRecommendationShownThisSession: false,
12602
12603
  initJsonSchema: null,
12603
12604
  registeredHooks: null,
12604
12605
  planSlugCache: new Map,
@@ -13513,6 +13514,7 @@ class Query {
13513
13514
  hookCallbacks = new Map;
13514
13515
  nextCallbackId = 0;
13515
13516
  sdkMcpTransports = new Map;
13517
+ sdkMcpServerInstances = new Map;
13516
13518
  pendingMcpResponses = new Map;
13517
13519
  firstResultReceivedResolve;
13518
13520
  firstResultReceived = false;
@@ -13528,9 +13530,7 @@ class Query {
13528
13530
  this.jsonSchema = jsonSchema;
13529
13531
  this.initConfig = initConfig;
13530
13532
  for (const [name, server] of sdkMcpServers) {
13531
- const sdkTransport = new SdkControlServerTransport((message) => this.sendMcpServerMessageToCli(name, message));
13532
- this.sdkMcpTransports.set(name, sdkTransport);
13533
- server.connect(sdkTransport);
13533
+ this.connectSdkMcpServer(name, server);
13534
13534
  }
13535
13535
  this.sdkMessages = this.readSdkMessages();
13536
13536
  this.readMessages();
@@ -13808,9 +13808,34 @@ class Query {
13808
13808
  return mcpStatusResponse.mcpServers;
13809
13809
  }
13810
13810
  async setMcpServers(servers) {
13811
+ const sdkServers = {};
13812
+ const processServers = {};
13813
+ for (const [name, config] of Object.entries(servers)) {
13814
+ if (config.type === "sdk" && "instance" in config) {
13815
+ sdkServers[name] = config.instance;
13816
+ } else {
13817
+ processServers[name] = config;
13818
+ }
13819
+ }
13820
+ const currentSdkNames = new Set(this.sdkMcpServerInstances.keys());
13821
+ const newSdkNames = new Set(Object.keys(sdkServers));
13822
+ for (const name of currentSdkNames) {
13823
+ if (!newSdkNames.has(name)) {
13824
+ await this.disconnectSdkMcpServer(name);
13825
+ }
13826
+ }
13827
+ for (const [name, server] of Object.entries(sdkServers)) {
13828
+ if (!currentSdkNames.has(name)) {
13829
+ this.connectSdkMcpServer(name, server);
13830
+ }
13831
+ }
13832
+ const sdkServerConfigs = {};
13833
+ for (const name of Object.keys(sdkServers)) {
13834
+ sdkServerConfigs[name] = { type: "sdk", name };
13835
+ }
13811
13836
  const response = await this.request({
13812
13837
  subtype: "mcp_set_servers",
13813
- servers
13838
+ servers: { ...processServers, ...sdkServerConfigs }
13814
13839
  });
13815
13840
  return response.response;
13816
13841
  }
@@ -13867,6 +13892,20 @@ class Query {
13867
13892
  signal: abortSignal
13868
13893
  });
13869
13894
  }
13895
+ connectSdkMcpServer(name, server) {
13896
+ const sdkTransport = new SdkControlServerTransport((message) => this.sendMcpServerMessageToCli(name, message));
13897
+ this.sdkMcpTransports.set(name, sdkTransport);
13898
+ this.sdkMcpServerInstances.set(name, server);
13899
+ server.connect(sdkTransport);
13900
+ }
13901
+ async disconnectSdkMcpServer(name) {
13902
+ const transport = this.sdkMcpTransports.get(name);
13903
+ if (transport) {
13904
+ await transport.close();
13905
+ this.sdkMcpTransports.delete(name);
13906
+ }
13907
+ this.sdkMcpServerInstances.delete(name);
13908
+ }
13870
13909
  sendMcpServerMessageToCli(serverName, message) {
13871
13910
  if ("id" in message && message.id !== null && message.id !== undefined) {
13872
13911
  const key = `${serverName}:${message.id}`;
@@ -26686,7 +26725,7 @@ function query({
26686
26725
  const dirname2 = join5(filename, "..");
26687
26726
  pathToClaudeCodeExecutable = join5(dirname2, "cli.js");
26688
26727
  }
26689
- process.env.CLAUDE_AGENT_SDK_VERSION = "0.1.73";
26728
+ process.env.CLAUDE_AGENT_SDK_VERSION = "0.1.74";
26690
26729
  const {
26691
26730
  abortController = createAbortController(),
26692
26731
  additionalDirectories = [],