@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.
- package/cli.js +1336 -1417
- package/entrypoints/agentSdkTypes.d.ts +5 -1
- package/package.json +1 -1
- package/sdk-tools.d.ts +0 -8
- package/sdk.mjs +45 -6
|
@@ -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,
|
|
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
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.
|
|
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
|
-
|
|
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.
|
|
26728
|
+
process.env.CLAUDE_AGENT_SDK_VERSION = "0.1.74";
|
|
26690
26729
|
const {
|
|
26691
26730
|
abortController = createAbortController(),
|
|
26692
26731
|
additionalDirectories = [],
|