@thinkwell/acp 0.1.4 → 0.2.0
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/connection.d.ts +29 -4
- package/dist/connection.d.ts.map +1 -1
- package/dist/connection.js +90 -71
- package/dist/connection.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/json.d.ts +2 -10
- package/dist/json.d.ts.map +1 -1
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +9 -5
- package/dist/mcp-server.js.map +1 -1
- package/dist/types.d.ts +8 -143
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +4 -1
- package/dist/types.js.map +1 -1
- package/package.json +10 -8
package/dist/connection.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { type ChildProcess } from "node:child_process";
|
|
2
1
|
import { ClientSideConnection, type SessionNotification, type PromptResponse } from "@agentclientprotocol/sdk";
|
|
2
|
+
import { Conductor } from "@thinkwell/conductor";
|
|
3
3
|
import { McpOverAcpHandler } from "./mcp-over-acp-handler.js";
|
|
4
4
|
import type { ActiveSession } from "./session.js";
|
|
5
5
|
import type { McpServerConfig } from "./types.js";
|
|
@@ -11,19 +11,27 @@ export interface SessionOptions {
|
|
|
11
11
|
systemPrompt?: string;
|
|
12
12
|
mcpServers?: McpServerConfig[];
|
|
13
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* Cleanup function called when the connection closes
|
|
16
|
+
*/
|
|
17
|
+
type CleanupFn = () => void;
|
|
14
18
|
/**
|
|
15
19
|
* Connection to the SACP conductor via the ACP SDK.
|
|
16
20
|
*
|
|
17
21
|
* This class wraps the official @agentclientprotocol/sdk's ClientSideConnection
|
|
18
22
|
* and adds SACP-specific functionality (MCP-over-ACP handling).
|
|
23
|
+
*
|
|
24
|
+
* Supports two modes:
|
|
25
|
+
* - Subprocess mode: spawns a conductor as a child process
|
|
26
|
+
* - In-process mode: runs the conductor in the same process
|
|
19
27
|
*/
|
|
20
28
|
export declare class SacpConnection {
|
|
21
|
-
private readonly
|
|
29
|
+
private readonly _cleanup;
|
|
22
30
|
private readonly _connection;
|
|
23
31
|
private readonly _mcpHandler;
|
|
24
32
|
private readonly _sessionHandlers;
|
|
25
33
|
private _initialized;
|
|
26
|
-
constructor(
|
|
34
|
+
constructor(cleanup: CleanupFn, connection: ClientSideConnection, mcpHandler: McpOverAcpHandler);
|
|
27
35
|
/**
|
|
28
36
|
* Get the MCP handler for registering servers
|
|
29
37
|
*/
|
|
@@ -59,9 +67,26 @@ export declare class SacpConnection {
|
|
|
59
67
|
close(): void;
|
|
60
68
|
}
|
|
61
69
|
/**
|
|
62
|
-
* Connect to
|
|
70
|
+
* Connect to an agent via the TypeScript conductor.
|
|
71
|
+
*
|
|
72
|
+
* This creates an in-process conductor that spawns the specified agent command
|
|
73
|
+
* as a subprocess and routes ACP messages through it.
|
|
74
|
+
*
|
|
75
|
+
* @param command - The agent command to run (e.g., ["claude-code-agent"])
|
|
76
|
+
* @returns A SacpConnection for communicating with the agent
|
|
63
77
|
*/
|
|
64
78
|
export declare function connect(command: string[]): Promise<SacpConnection>;
|
|
79
|
+
/**
|
|
80
|
+
* Connect to an in-process conductor.
|
|
81
|
+
*
|
|
82
|
+
* This runs the conductor in the same process, avoiding subprocess overhead.
|
|
83
|
+
* The conductor will manage components (proxies and agent) according to its
|
|
84
|
+
* configured instantiator.
|
|
85
|
+
*
|
|
86
|
+
* @param conductor - The configured Conductor instance to connect to
|
|
87
|
+
* @returns A SacpConnection wrapping the in-process conductor
|
|
88
|
+
*/
|
|
89
|
+
export declare function connectToConductor(conductor: Conductor): Promise<SacpConnection>;
|
|
65
90
|
/**
|
|
66
91
|
* Create a session builder for this connection
|
|
67
92
|
*/
|
package/dist/connection.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EAGpB,KAAK,mBAAmB,EAKxB,KAAK,cAAc,EAIpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,SAAS,EAMV,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,cAAc,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,eAAe,EAAE,CAAC;CAChC;AAED;;GAEG;AACH,KAAK,SAAS,GAAG,MAAM,IAAI,CAAC;AAE5B;;;;;;;;;GASG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAY;IACrC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuB;IACnD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;IAChD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAyC;IAC1E,OAAO,CAAC,YAAY,CAAkB;gBAGpC,OAAO,EAAE,SAAS,EAClB,UAAU,EAAE,oBAAoB,EAChC,UAAU,EAAE,iBAAiB;IAO/B;;OAEG;IACH,IAAI,UAAU,IAAI,iBAAiB,CAElC;IAED;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAWjC;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAoB7D;;OAEG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAS7E;;OAEG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI;IAIlE;;OAEG;IACH,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI7C;;OAEG;IACH,mBAAmB,CAAC,YAAY,EAAE,mBAAmB,GAAG,IAAI;IAe5D,OAAO,CAAC,oBAAoB;IAmC5B;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd;AA2DD;;;;;;;;GAQG;AACH,wBAAsB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAWxE;AAED;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,cAAc,CAAC,CA6CzB;AAoCD;;GAEG;AACH,wBAAgB,OAAO,CAAC,UAAU,EAAE,cAAc,GAAG,cAAc,CAElE;AAGD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
package/dist/connection.js
CHANGED
|
@@ -1,20 +1,24 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { ClientSideConnection, } from "@agentclientprotocol/sdk";
|
|
2
|
+
import { Conductor, fromCommands, createChannelPair, } from "@thinkwell/conductor";
|
|
3
3
|
import { McpOverAcpHandler } from "./mcp-over-acp-handler.js";
|
|
4
4
|
/**
|
|
5
5
|
* Connection to the SACP conductor via the ACP SDK.
|
|
6
6
|
*
|
|
7
7
|
* This class wraps the official @agentclientprotocol/sdk's ClientSideConnection
|
|
8
8
|
* and adds SACP-specific functionality (MCP-over-ACP handling).
|
|
9
|
+
*
|
|
10
|
+
* Supports two modes:
|
|
11
|
+
* - Subprocess mode: spawns a conductor as a child process
|
|
12
|
+
* - In-process mode: runs the conductor in the same process
|
|
9
13
|
*/
|
|
10
14
|
export class SacpConnection {
|
|
11
|
-
|
|
15
|
+
_cleanup;
|
|
12
16
|
_connection;
|
|
13
17
|
_mcpHandler;
|
|
14
18
|
_sessionHandlers = new Map();
|
|
15
19
|
_initialized = false;
|
|
16
|
-
constructor(
|
|
17
|
-
this.
|
|
20
|
+
constructor(cleanup, connection, mcpHandler) {
|
|
21
|
+
this._cleanup = cleanup;
|
|
18
22
|
this._connection = connection;
|
|
19
23
|
this._mcpHandler = mcpHandler;
|
|
20
24
|
}
|
|
@@ -127,7 +131,7 @@ export class SacpConnection {
|
|
|
127
131
|
* Close the connection
|
|
128
132
|
*/
|
|
129
133
|
close() {
|
|
130
|
-
this.
|
|
134
|
+
this._cleanup();
|
|
131
135
|
}
|
|
132
136
|
}
|
|
133
137
|
/**
|
|
@@ -173,84 +177,99 @@ function createClient(connectionHolder, mcpHandler) {
|
|
|
173
177
|
};
|
|
174
178
|
}
|
|
175
179
|
/**
|
|
176
|
-
*
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
controller.enqueue(new Uint8Array(chunk));
|
|
184
|
-
});
|
|
185
|
-
stdout.on("end", () => {
|
|
186
|
-
controller.close();
|
|
187
|
-
});
|
|
188
|
-
stdout.on("error", (err) => {
|
|
189
|
-
controller.error(err);
|
|
190
|
-
});
|
|
191
|
-
},
|
|
192
|
-
cancel() {
|
|
193
|
-
stdout.destroy();
|
|
194
|
-
},
|
|
195
|
-
});
|
|
196
|
-
// Convert Node writable to Web WritableStream
|
|
197
|
-
const writable = new WritableStream({
|
|
198
|
-
write(chunk) {
|
|
199
|
-
return new Promise((resolve, reject) => {
|
|
200
|
-
stdin.write(Buffer.from(chunk), (err) => {
|
|
201
|
-
if (err)
|
|
202
|
-
reject(err);
|
|
203
|
-
else
|
|
204
|
-
resolve();
|
|
205
|
-
});
|
|
206
|
-
});
|
|
207
|
-
},
|
|
208
|
-
close() {
|
|
209
|
-
return new Promise((resolve) => {
|
|
210
|
-
stdin.end(() => resolve());
|
|
211
|
-
});
|
|
212
|
-
},
|
|
213
|
-
abort(reason) {
|
|
214
|
-
stdin.destroy(reason instanceof Error ? reason : new Error(String(reason)));
|
|
215
|
-
},
|
|
216
|
-
});
|
|
217
|
-
return { readable, writable };
|
|
218
|
-
}
|
|
219
|
-
/**
|
|
220
|
-
* Connect to a conductor process
|
|
180
|
+
* Connect to an agent via the TypeScript conductor.
|
|
181
|
+
*
|
|
182
|
+
* This creates an in-process conductor that spawns the specified agent command
|
|
183
|
+
* as a subprocess and routes ACP messages through it.
|
|
184
|
+
*
|
|
185
|
+
* @param command - The agent command to run (e.g., ["claude-code-agent"])
|
|
186
|
+
* @returns A SacpConnection for communicating with the agent
|
|
221
187
|
*/
|
|
222
188
|
export async function connect(command) {
|
|
223
189
|
if (command.length === 0) {
|
|
224
|
-
throw new Error("
|
|
190
|
+
throw new Error("Agent command cannot be empty");
|
|
225
191
|
}
|
|
226
|
-
|
|
227
|
-
const
|
|
228
|
-
|
|
192
|
+
// Create a conductor that spawns the agent as a subprocess
|
|
193
|
+
const conductor = new Conductor({
|
|
194
|
+
instantiator: fromCommands(command),
|
|
229
195
|
});
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
196
|
+
return connectToConductor(conductor);
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Connect to an in-process conductor.
|
|
200
|
+
*
|
|
201
|
+
* This runs the conductor in the same process, avoiding subprocess overhead.
|
|
202
|
+
* The conductor will manage components (proxies and agent) according to its
|
|
203
|
+
* configured instantiator.
|
|
204
|
+
*
|
|
205
|
+
* @param conductor - The configured Conductor instance to connect to
|
|
206
|
+
* @returns A SacpConnection wrapping the in-process conductor
|
|
207
|
+
*/
|
|
208
|
+
export async function connectToConductor(conductor) {
|
|
209
|
+
// Create an in-memory channel pair for client ↔ conductor communication
|
|
210
|
+
const pair = createChannelPair();
|
|
211
|
+
// Create a Stream adapter from the ComponentConnection
|
|
212
|
+
const stream = componentConnectionToStream(pair.left);
|
|
241
213
|
// Create the MCP handler
|
|
242
214
|
const mcpHandler = new McpOverAcpHandler();
|
|
243
|
-
// Use a holder object to break the circular reference
|
|
244
|
-
// The client factory is called lazily by ClientSideConnection,
|
|
245
|
-
// so we need the holder to be populated before any messages arrive.
|
|
215
|
+
// Use a holder object to break the circular reference
|
|
246
216
|
const connectionHolder = { connection: null };
|
|
247
217
|
// Create the ACP client connection
|
|
248
218
|
const clientConnection = new ClientSideConnection((_agent) => createClient(connectionHolder, mcpHandler), stream);
|
|
249
|
-
// Create
|
|
250
|
-
const
|
|
219
|
+
// Create a connector that provides the other end of the channel
|
|
220
|
+
const clientConnector = {
|
|
221
|
+
async connect() {
|
|
222
|
+
return pair.right;
|
|
223
|
+
},
|
|
224
|
+
};
|
|
225
|
+
// Start the conductor's message loop in the background
|
|
226
|
+
const conductorPromise = conductor.connect(clientConnector);
|
|
227
|
+
// Handle conductor errors/completion
|
|
228
|
+
conductorPromise.catch((error) => {
|
|
229
|
+
console.error("Conductor error:", error);
|
|
230
|
+
});
|
|
231
|
+
// Cleanup shuts down the conductor
|
|
232
|
+
const cleanup = () => {
|
|
233
|
+
conductor.shutdown().catch((error) => {
|
|
234
|
+
console.error("Conductor shutdown error:", error);
|
|
235
|
+
});
|
|
236
|
+
};
|
|
237
|
+
const sacpConnection = new SacpConnection(cleanup, clientConnection, mcpHandler);
|
|
251
238
|
connectionHolder.connection = sacpConnection;
|
|
252
239
|
return sacpConnection;
|
|
253
240
|
}
|
|
241
|
+
/**
|
|
242
|
+
* Convert a ComponentConnection to the SDK's Stream interface.
|
|
243
|
+
*
|
|
244
|
+
* The SDK expects Web Streams of AnyMessage objects, while the conductor
|
|
245
|
+
* uses a simpler send/messages interface.
|
|
246
|
+
*/
|
|
247
|
+
function componentConnectionToStream(connection) {
|
|
248
|
+
// Create a ReadableStream from the async iterable
|
|
249
|
+
const readable = new ReadableStream({
|
|
250
|
+
async start(controller) {
|
|
251
|
+
try {
|
|
252
|
+
for await (const message of connection.messages) {
|
|
253
|
+
controller.enqueue(message);
|
|
254
|
+
}
|
|
255
|
+
controller.close();
|
|
256
|
+
}
|
|
257
|
+
catch (error) {
|
|
258
|
+
controller.error(error);
|
|
259
|
+
}
|
|
260
|
+
},
|
|
261
|
+
});
|
|
262
|
+
// Create a WritableStream that sends to the connection
|
|
263
|
+
const writable = new WritableStream({
|
|
264
|
+
write(message) {
|
|
265
|
+
connection.send(message);
|
|
266
|
+
},
|
|
267
|
+
close() {
|
|
268
|
+
connection.close();
|
|
269
|
+
},
|
|
270
|
+
});
|
|
271
|
+
return { readable, writable };
|
|
272
|
+
}
|
|
254
273
|
/**
|
|
255
274
|
* Create a session builder for this connection
|
|
256
275
|
*/
|
package/dist/connection.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,6 +4,6 @@ export { McpServer, McpServerBuilder, mcpServer } from "./mcp-server.js";
|
|
|
4
4
|
export { McpOverAcpHandler } from "./mcp-over-acp-handler.js";
|
|
5
5
|
export { ActiveSession, SessionBuilder } from "./session.js";
|
|
6
6
|
export type { SessionUpdate, PromptMessage, McpReadyOptions } from "./session.js";
|
|
7
|
-
export { SacpConnection, connect } from "./connection.js";
|
|
7
|
+
export { SacpConnection, connect, connectToConductor } from "./connection.js";
|
|
8
8
|
export type { SessionOptions } from "./connection.js";
|
|
9
9
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,UAAU,EACV,cAAc,EACd,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,QAAQ,EACR,yBAAyB,EACzB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,WAAW,EACX,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAGvD,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAG9D,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC7D,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGlF,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,UAAU,EACV,cAAc,EACd,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,QAAQ,EACR,yBAAyB,EACzB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,WAAW,EACX,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAGvD,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAG9D,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC7D,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGlF,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC9E,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -5,5 +5,5 @@ export { McpOverAcpHandler } from "./mcp-over-acp-handler.js";
|
|
|
5
5
|
// Session
|
|
6
6
|
export { ActiveSession, SessionBuilder } from "./session.js";
|
|
7
7
|
// Connection
|
|
8
|
-
export { SacpConnection, connect } from "./connection.js";
|
|
8
|
+
export { SacpConnection, connect, connectToConductor } from "./connection.js";
|
|
9
9
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAyBA,aAAa;AACb,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEzE,uBAAuB;AACvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,UAAU;AACV,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG7D,aAAa;AACb,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAyBA,aAAa;AACb,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEzE,uBAAuB;AACvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,UAAU;AACV,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG7D,aAAa;AACb,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/json.d.ts
CHANGED
|
@@ -1,13 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* JSON value types
|
|
2
|
+
* JSON value types - re-exported from @thinkwell/protocol
|
|
3
3
|
*/
|
|
4
|
-
export type JsonValue
|
|
5
|
-
[key: string]: JsonValue;
|
|
6
|
-
};
|
|
7
|
-
/**
|
|
8
|
-
* JSON object type
|
|
9
|
-
*/
|
|
10
|
-
export type JsonObject = {
|
|
11
|
-
[key: string]: JsonValue;
|
|
12
|
-
};
|
|
4
|
+
export type { JsonValue, JsonObject } from "@thinkwell/protocol";
|
|
13
5
|
//# sourceMappingURL=json.d.ts.map
|
package/dist/json.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../src/json.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,
|
|
1
|
+
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../src/json.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/mcp-server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,eAAe,EACf,iBAAiB,EAIjB,cAAc,EACd,WAAW,EACZ,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,MAAM,CAA0C;gBAE5C,IAAI,EAAE,MAAM;IAIxB;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKhC;;OAEG;IACH,IAAI,CAAC,CAAC,EAAE,CAAC,EACP,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,UAAU,EACvB,YAAY,EAAE,UAAU,EACxB,OAAO,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,GACzB,IAAI;IAWP;;OAEG;IACH,KAAK,IAAI,SAAS;CAOnB;AAED;;GAEG;AACH,qBAAa,SAAS;IACpB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8B;gBAGnD,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC;IAQpC;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;OAEG;IACH,eAAe,IAAI,eAAe;IAQlC;;OAEG;IACH,kBAAkB,IAAI,iBAAiB,EAAE;IAQzC;;OAEG;IACG,YAAY,CAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,OAAO,CAAC;IAgBnB,OAAO,CAAC,gBAAgB;
|
|
1
|
+
{"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,eAAe,EACf,iBAAiB,EAIjB,cAAc,EACd,WAAW,EACZ,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,MAAM,CAA0C;gBAE5C,IAAI,EAAE,MAAM;IAIxB;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKhC;;OAEG;IACH,IAAI,CAAC,CAAC,EAAE,CAAC,EACP,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,UAAU,EACvB,YAAY,EAAE,UAAU,EACxB,OAAO,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,GACzB,IAAI;IAWP;;OAEG;IACH,KAAK,IAAI,SAAS;CAOnB;AAED;;GAEG;AACH,qBAAa,SAAS;IACpB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8B;gBAGnD,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC;IAQpC;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;OAEG;IACH,eAAe,IAAI,eAAe;IAQlC;;OAEG;IACH,kBAAkB,IAAI,iBAAiB,EAAE;IAQzC;;OAEG;IACG,YAAY,CAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,OAAO,CAAC;IAgBnB,OAAO,CAAC,gBAAgB;IA8BxB,OAAO,CAAC,eAAe;YAMT,eAAe;CA2B9B;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAExD"}
|
package/dist/mcp-server.js
CHANGED
|
@@ -86,7 +86,7 @@ export class McpServer {
|
|
|
86
86
|
case "tools/call":
|
|
87
87
|
return this.handleToolsCall(params, context);
|
|
88
88
|
case "initialize":
|
|
89
|
-
return this.handleInitialize();
|
|
89
|
+
return this.handleInitialize(params);
|
|
90
90
|
case "notifications/initialized":
|
|
91
91
|
// Client notification after initialize - no response needed
|
|
92
92
|
return undefined;
|
|
@@ -94,12 +94,15 @@ export class McpServer {
|
|
|
94
94
|
throw new Error(`Unknown MCP method: ${method}`);
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
|
-
handleInitialize() {
|
|
98
|
-
// Use protocol version 2025-03-26 to match rmcp's behavior
|
|
99
|
-
// Always include instructions to help Claude Code understand how to use tools
|
|
97
|
+
handleInitialize(params) {
|
|
100
98
|
const instructions = this._instructions ?? "You have access to tools. Call return_result when done.";
|
|
99
|
+
// Include tools directly in initialize response - some clients expect this
|
|
100
|
+
// instead of calling tools/list separately
|
|
101
|
+
const tools = this.getToolDefinitions();
|
|
102
|
+
// Echo back the client's protocol version if provided, otherwise use a known good version
|
|
103
|
+
const clientVersion = params?.protocolVersion ?? "2024-11-05";
|
|
101
104
|
return {
|
|
102
|
-
protocolVersion:
|
|
105
|
+
protocolVersion: clientVersion,
|
|
103
106
|
serverInfo: {
|
|
104
107
|
name: this.name,
|
|
105
108
|
version: "0.1.0",
|
|
@@ -108,6 +111,7 @@ export class McpServer {
|
|
|
108
111
|
tools: {},
|
|
109
112
|
},
|
|
110
113
|
instructions,
|
|
114
|
+
tools, // Include tools directly in initialize response
|
|
111
115
|
};
|
|
112
116
|
}
|
|
113
117
|
handleToolsList() {
|
package/dist/mcp-server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AAapC;;GAEG;AACH,MAAM,OAAO,gBAAgB;IACnB,KAAK,CAAS;IACd,aAAa,CAAqB;IAClC,MAAM,GAAgC,IAAI,GAAG,EAAE,CAAC;IAExD,YAAY,IAAY;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,IAAY;QACvB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,IAAI,CACF,IAAY,EACZ,WAAmB,EACnB,WAAuB,EACvB,YAAwB,EACxB,OAA0B;QAE1B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;YACpB,IAAI;YACJ,WAAW;YACX,WAAW;YACX,YAAY;YACZ,OAAO,EAAE,OAAsB;SAChC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK;QACH,OAAO,IAAI,SAAS,CAClB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,aAAa,EAClB,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CACrB,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,SAAS;IACX,EAAE,CAAS;IACX,IAAI,CAAS;IACL,aAAa,CAAqB;IAClC,MAAM,CAA8B;IAErD,YACE,IAAY,EACZ,YAAgC,EAChC,KAAkC;QAElC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACR,OAAO,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,GAAG,EAAE,IAAI,CAAC,MAAM;SACjB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACrD,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CAAC,CAAC;IACN,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAChB,MAAc,EACd,MAAe,EACf,OAAmB;QAEnB,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,YAAY;gBACf,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;YAChC,KAAK,YAAY;gBACf,OAAO,IAAI,CAAC,eAAe,CAAC,MAA4B,EAAE,OAAO,CAAC,CAAC;YACrE,KAAK,YAAY;gBACf,OAAO,IAAI,CAAC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,28 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Types for
|
|
3
|
-
*/
|
|
4
|
-
import type { JsonValue } from "./json.js";
|
|
5
|
-
/**
|
|
6
|
-
* JSON Schema type for tool input/output validation.
|
|
2
|
+
* Types for ACP protocol messages
|
|
7
3
|
*
|
|
8
|
-
* This
|
|
9
|
-
*
|
|
10
|
-
* as dependencies.
|
|
4
|
+
* This module re-exports shared types from @thinkwell/protocol and
|
|
5
|
+
* defines ACP-specific types that are not shared with other packages.
|
|
11
6
|
*/
|
|
12
|
-
export
|
|
13
|
-
type?: string;
|
|
14
|
-
properties?: Record<string, JsonSchema>;
|
|
15
|
-
required?: string[];
|
|
16
|
-
items?: JsonSchema;
|
|
17
|
-
description?: string;
|
|
18
|
-
enum?: JsonValue[];
|
|
19
|
-
oneOf?: JsonSchema[];
|
|
20
|
-
anyOf?: JsonSchema[];
|
|
21
|
-
allOf?: JsonSchema[];
|
|
22
|
-
$ref?: string;
|
|
23
|
-
additionalProperties?: boolean | JsonSchema;
|
|
24
|
-
[key: string]: unknown;
|
|
25
|
-
}
|
|
7
|
+
export type { JsonSchema, McpContext, McpServerConfig, McpConnectRequest, McpConnectResponse, McpMessageRequest, McpMessageResponse, McpContent, McpError, McpDisconnectNotification, McpToolsListResult, McpToolDefinition, McpToolsCallParams, McpToolsCallResult, } from "@thinkwell/protocol";
|
|
26
8
|
/**
|
|
27
9
|
* Interface for types that can provide a JSON Schema representation.
|
|
28
10
|
*
|
|
@@ -37,124 +19,7 @@ export interface SchemaProvider<T> {
|
|
|
37
19
|
/**
|
|
38
20
|
* Returns the JSON Schema that describes type T.
|
|
39
21
|
*/
|
|
40
|
-
toJsonSchema(): JsonSchema;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* MCP server configuration for session requests
|
|
44
|
-
*/
|
|
45
|
-
export interface McpServerConfig {
|
|
46
|
-
type: "http";
|
|
47
|
-
name: string;
|
|
48
|
-
url: string;
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Context provided to tool handlers
|
|
52
|
-
*/
|
|
53
|
-
export interface McpContext {
|
|
54
|
-
/** The connection ID for this MCP session */
|
|
55
|
-
connectionId: string;
|
|
56
|
-
/** The session ID for the ACP session */
|
|
57
|
-
sessionId: string;
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* MCP connect request from conductor
|
|
61
|
-
*/
|
|
62
|
-
export interface McpConnectRequest {
|
|
63
|
-
method: "_mcp/connect";
|
|
64
|
-
params: {
|
|
65
|
-
connectionId: string;
|
|
66
|
-
url: string;
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* MCP connect response
|
|
71
|
-
*/
|
|
72
|
-
export interface McpConnectResponse {
|
|
73
|
-
connectionId: string;
|
|
74
|
-
serverInfo: {
|
|
75
|
-
name: string;
|
|
76
|
-
version: string;
|
|
77
|
-
};
|
|
78
|
-
capabilities: {
|
|
79
|
-
tools?: Record<string, unknown>;
|
|
80
|
-
};
|
|
81
|
-
/** Optional tool definitions - the bridge may use these to pre-populate tool info */
|
|
82
|
-
tools?: McpToolDefinition[];
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* MCP message request (tool call, etc.)
|
|
86
|
-
*/
|
|
87
|
-
export interface McpMessageRequest {
|
|
88
|
-
method: "_mcp/message";
|
|
89
|
-
params: {
|
|
90
|
-
connectionId: string;
|
|
91
|
-
method: string;
|
|
92
|
-
id?: string | number;
|
|
93
|
-
params?: unknown;
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* MCP message response
|
|
98
|
-
*/
|
|
99
|
-
export interface McpMessageResponse {
|
|
100
|
-
connectionId: string;
|
|
101
|
-
content?: McpContent[];
|
|
102
|
-
result?: unknown;
|
|
103
|
-
error?: McpError;
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* MCP content block
|
|
107
|
-
*/
|
|
108
|
-
export interface McpContent {
|
|
109
|
-
type: "text" | "image" | "resource";
|
|
110
|
-
text?: string;
|
|
111
|
-
data?: string;
|
|
112
|
-
mimeType?: string;
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* MCP error
|
|
116
|
-
*/
|
|
117
|
-
export interface McpError {
|
|
118
|
-
code: number;
|
|
119
|
-
message: string;
|
|
120
|
-
data?: unknown;
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* MCP disconnect notification
|
|
124
|
-
*/
|
|
125
|
-
export interface McpDisconnectNotification {
|
|
126
|
-
method: "_mcp/disconnect";
|
|
127
|
-
params: {
|
|
128
|
-
connectionId: string;
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* MCP tools/list response
|
|
133
|
-
*/
|
|
134
|
-
export interface McpToolsListResult {
|
|
135
|
-
tools: McpToolDefinition[];
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* MCP tool definition
|
|
139
|
-
*/
|
|
140
|
-
export interface McpToolDefinition {
|
|
141
|
-
name: string;
|
|
142
|
-
description: string;
|
|
143
|
-
inputSchema: JsonSchema;
|
|
144
|
-
}
|
|
145
|
-
/**
|
|
146
|
-
* MCP tools/call request params
|
|
147
|
-
*/
|
|
148
|
-
export interface McpToolsCallParams {
|
|
149
|
-
name: string;
|
|
150
|
-
arguments: Record<string, unknown>;
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* MCP tools/call response
|
|
154
|
-
*/
|
|
155
|
-
export interface McpToolsCallResult {
|
|
156
|
-
content: McpContent[];
|
|
157
|
-
isError?: boolean;
|
|
22
|
+
toJsonSchema(): import("@thinkwell/protocol").JsonSchema;
|
|
158
23
|
}
|
|
159
24
|
/**
|
|
160
25
|
* Session message types
|
|
@@ -182,15 +47,15 @@ export type StopReason = "end_turn" | "tool_use" | "max_tokens" | "stop_sequence
|
|
|
182
47
|
/**
|
|
183
48
|
* Tool handler function type
|
|
184
49
|
*/
|
|
185
|
-
export type ToolHandler<I = unknown, O = unknown> = (input: I, context: McpContext) => Promise<O>;
|
|
50
|
+
export type ToolHandler<I = unknown, O = unknown> = (input: I, context: import("@thinkwell/protocol").McpContext) => Promise<O>;
|
|
186
51
|
/**
|
|
187
52
|
* Registered tool with metadata
|
|
188
53
|
*/
|
|
189
54
|
export interface RegisteredTool<I = unknown, O = unknown> {
|
|
190
55
|
name: string;
|
|
191
56
|
description: string;
|
|
192
|
-
inputSchema: JsonSchema;
|
|
193
|
-
outputSchema: JsonSchema;
|
|
57
|
+
inputSchema: import("@thinkwell/protocol").JsonSchema;
|
|
58
|
+
outputSchema: import("@thinkwell/protocol").JsonSchema;
|
|
194
59
|
handler: ToolHandler<I, O>;
|
|
195
60
|
}
|
|
196
61
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EACV,UAAU,EACV,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,QAAQ,EACR,yBAAyB,EACzB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAE7B;;;;;;;;;GASG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B;;OAEG;IACH,YAAY,IAAI,OAAO,qBAAqB,EAAE,UAAU,CAAC;CAC1D;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAC9D;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC7D;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC;AAEzC;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,YAAY,GAAG,eAAe,CAAC;AAElF;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO,IAAI,CAClD,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,OAAO,qBAAqB,EAAE,UAAU,KAC9C,OAAO,CAAC,CAAC,CAAC,CAAC;AAEhB;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,qBAAqB,EAAE,UAAU,CAAC;IACtD,YAAY,EAAE,OAAO,qBAAqB,EAAE,UAAU,CAAC;IACvD,OAAO,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CAC5B"}
|
package/dist/types.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Types for
|
|
2
|
+
* Types for ACP protocol messages
|
|
3
|
+
*
|
|
4
|
+
* This module re-exports shared types from @thinkwell/protocol and
|
|
5
|
+
* defines ACP-specific types that are not shared with other packages.
|
|
3
6
|
*/
|
|
4
7
|
export {};
|
|
5
8
|
//# sourceMappingURL=types.js.map
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thinkwell/acp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "TypeScript implementation of ACP (Agent Client Protocol) extensions for Thinkwell",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -14,11 +14,6 @@
|
|
|
14
14
|
"files": [
|
|
15
15
|
"dist"
|
|
16
16
|
],
|
|
17
|
-
"scripts": {
|
|
18
|
-
"build": "tsc",
|
|
19
|
-
"clean": "rm -rf dist",
|
|
20
|
-
"test": "node --test --import tsx src/**/*.test.ts"
|
|
21
|
-
},
|
|
22
17
|
"keywords": [
|
|
23
18
|
"acp",
|
|
24
19
|
"mcp",
|
|
@@ -30,12 +25,19 @@
|
|
|
30
25
|
"license": "MIT",
|
|
31
26
|
"dependencies": {
|
|
32
27
|
"@agentclientprotocol/sdk": "^0.4.0",
|
|
33
|
-
"uuid": "^11.0.3"
|
|
28
|
+
"uuid": "^11.0.3",
|
|
29
|
+
"@thinkwell/conductor": "0.2.0",
|
|
30
|
+
"@thinkwell/protocol": "0.2.0"
|
|
34
31
|
},
|
|
35
32
|
"devDependencies": {
|
|
36
33
|
"@types/node": "^24.10.4",
|
|
37
34
|
"@types/uuid": "^10.0.0",
|
|
38
35
|
"tsx": "^4.19.2",
|
|
39
36
|
"typescript": "^5.7.2"
|
|
37
|
+
},
|
|
38
|
+
"scripts": {
|
|
39
|
+
"build": "tsc",
|
|
40
|
+
"clean": "rm -rf dist",
|
|
41
|
+
"test": "node --test --import tsx src/**/*.test.ts"
|
|
40
42
|
}
|
|
41
|
-
}
|
|
43
|
+
}
|