@agentclientprotocol/claude-agent-acp 0.99.1 → 0.99.2-preview.10

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.
Files changed (47) hide show
  1. package/README.md +8 -0
  2. package/dist/acp-agent.d.ts +50 -7
  3. package/dist/acp-agent.d.ts.map +1 -1
  4. package/dist/acp-agent.js +315 -87
  5. package/dist/clear-context-coordinator.d.ts +4 -1
  6. package/dist/clear-context-coordinator.d.ts.map +1 -1
  7. package/dist/clear-context-coordinator.js +1 -1
  8. package/dist/diff.d.ts +1 -1
  9. package/dist/diff.js +5 -5
  10. package/dist/elicitation.d.ts +1 -2
  11. package/dist/elicitation.d.ts.map +1 -1
  12. package/dist/elicitation.js +34 -16
  13. package/dist/exit-plan.d.ts.map +1 -1
  14. package/dist/exit-plan.js +7 -1
  15. package/dist/fork-session.d.ts.map +1 -1
  16. package/dist/fork-session.js +23 -0
  17. package/dist/native-subagents.d.ts +49 -3
  18. package/dist/native-subagents.d.ts.map +1 -1
  19. package/dist/native-subagents.js +118 -4
  20. package/dist/session-index/service.d.ts +3 -1
  21. package/dist/session-index/service.d.ts.map +1 -1
  22. package/dist/session-index/service.js +5 -10
  23. package/dist/startup-failure.d.ts +16 -0
  24. package/dist/startup-failure.d.ts.map +1 -0
  25. package/dist/startup-failure.js +38 -0
  26. package/dist/subagent-history.d.ts +8 -1
  27. package/dist/subagent-history.d.ts.map +1 -1
  28. package/dist/subagent-history.js +40 -1
  29. package/dist/subagent-replay.d.ts +19 -3
  30. package/dist/subagent-replay.d.ts.map +1 -1
  31. package/dist/subagent-replay.js +46 -4
  32. package/dist/tool-calls/reporters/interaction.d.ts.map +1 -1
  33. package/dist/tool-calls/reporters/interaction.js +8 -3
  34. package/dist/v2/agent.d.ts.map +1 -1
  35. package/dist/v2/agent.js +40 -15
  36. package/dist/v2/initialize.d.ts +16 -1
  37. package/dist/v2/initialize.d.ts.map +1 -1
  38. package/dist/v2/initialize.js +26 -3
  39. package/dist/v2/permission.d.ts +5 -2
  40. package/dist/v2/permission.d.ts.map +1 -1
  41. package/dist/v2/permission.js +5 -2
  42. package/dist/v2/prompt.d.ts +2 -1
  43. package/dist/v2/prompt.d.ts.map +1 -1
  44. package/dist/v2/prompt.js +5 -1
  45. package/dist/v2/session.d.ts.map +1 -1
  46. package/dist/v2/session.js +21 -9
  47. package/package.json +6 -6
@@ -9,6 +9,7 @@
9
9
  */
10
10
  import { PROTOCOL_VERSION as V1_PROTOCOL_VERSION, } from "@agentclientprotocol/sdk/unstable";
11
11
  import * as v2 from "@agentclientprotocol/sdk/experimental/v2/unstable";
12
+ import { AIR_ASYNC_TASKS_CAPABILITY, AIR_GOAL_KEY } from "../air-extension.js";
12
13
  import { SYSTEM_PROMPT_CAPABILITY } from "../client-system-prompt.js";
13
14
  /** The v1 `initialize` request that a v2 client means. */
14
15
  export function v1InitializeRequest(request) {
@@ -57,14 +58,15 @@ const UNSERVED_EXTENSION_KEYS = ["steering"];
57
58
  * The v2 `initialize` response for the v1 response of the agent.
58
59
  *
59
60
  * It does not advertise what the v2 surface does not serve yet: the
60
- * extensions of {@link UNSERVED_EXTENSION_KEYS}.
61
+ * extensions of {@link UNSERVED_EXTENSION_KEYS}, and the AIR extensions of
62
+ * {@link withoutUnservedAirExtensions}.
61
63
  */
62
64
  export function v2InitializeResponse(response) {
63
65
  if (!response.agentInfo) {
64
66
  throw new Error("ACP v2 requires agentInfo, and the agent reported none");
65
67
  }
66
68
  const meta = response.agentCapabilities?._meta;
67
- const topMeta = Object.fromEntries(Object.entries(response._meta ?? {}).filter(([key]) => !UNSERVED_EXTENSION_KEYS.includes(key)));
69
+ const topMeta = withoutUnservedAirExtensions(Object.fromEntries(Object.entries(response._meta ?? {}).filter(([key]) => !UNSERVED_EXTENSION_KEYS.includes(key))));
68
70
  return {
69
71
  protocolVersion: v2.PROTOCOL_VERSION,
70
72
  info: response.agentInfo,
@@ -81,6 +83,27 @@ export function v2InitializeResponse(response) {
81
83
  ...(Object.keys(topMeta).length > 0 ? { _meta: topMeta } : {}),
82
84
  };
83
85
  }
86
+ /**
87
+ * `meta` without the AIR extensions whose methods the v2 surface does not
88
+ * register: the `asyncTasks` capability (`_session/async_task/stop`) and the
89
+ * `goal` entry (`_session/goal`) of `_meta.jetbrains.air`.
90
+ */
91
+ function withoutUnservedAirExtensions(meta) {
92
+ const jetbrains = asRecord(meta.jetbrains);
93
+ const air = asRecord(jetbrains.air);
94
+ if (Object.keys(air).length === 0)
95
+ return meta;
96
+ const served = Object.fromEntries(Object.entries(air).filter(([key]) => key !== AIR_GOAL_KEY));
97
+ if (Array.isArray(served.capabilities)) {
98
+ served.capabilities = served.capabilities.filter((capability) => capability !== AIR_ASYNC_TASKS_CAPABILITY);
99
+ }
100
+ return { ...meta, jetbrains: { ...jetbrains, air: served } };
101
+ }
102
+ function asRecord(value) {
103
+ return value && typeof value === "object" && !Array.isArray(value)
104
+ ? value
105
+ : {};
106
+ }
84
107
  /**
85
108
  * The session capabilities of the v2 surface, which serves each through a v1
86
109
  * method of the agent.
@@ -94,7 +117,7 @@ export function v2InitializeResponse(response) {
94
117
  * v1 baseline; v2 has no SSE transport.
95
118
  * - `systemPrompt`, in `append` and `override` mode.
96
119
  */
97
- const V2_SESSION_CAPABILITIES = {
120
+ export const V2_SESSION_CAPABILITIES = {
98
121
  prompt: { image: {}, embeddedContext: {} },
99
122
  mcp: { stdio: {}, http: {} },
100
123
  delete: {},
@@ -18,8 +18,11 @@ export declare function v2PermissionRequest(request: AcpPermissionRequest): v2.R
18
18
  * The v1 form of the answer to a permission request.
19
19
  *
20
20
  * v2 adds outcomes that v1 does not know, which the draft says are no
21
- * approval. They become `cancelled`, which the agent reads as an aborted tool
22
- * use, as it does a cancelled prompt.
21
+ * approval. They become `cancelled`. In v2, `cancelled` also means that the
22
+ * user dismissed the prompt or the client declined it by policy. So the agent
23
+ * reads a `cancelled` outcome on v2 as the user refusing the tool, unless a
24
+ * `session/cancel` is stopping the session's work: then the tool use is
25
+ * aborted, as on v1.
23
26
  */
24
27
  export declare function v1PermissionResponse(response: v2.RequestPermissionResponse): RequestPermissionResponse;
25
28
  //# sourceMappingURL=permission.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"permission.d.ts","sourceRoot":"","sources":["../../src/v2/permission.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AACnF,OAAO,KAAK,KAAK,EAAE,MAAM,mDAAmD,CAAC;AAC7E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAG3E;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,EAAE,CAAC,wBAAwB,CAY9F;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,EAAE,CAAC,yBAAyB,GACrC,yBAAyB,CAS3B"}
1
+ {"version":3,"file":"permission.d.ts","sourceRoot":"","sources":["../../src/v2/permission.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AACnF,OAAO,KAAK,KAAK,EAAE,MAAM,mDAAmD,CAAC;AAC7E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAG3E;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,EAAE,CAAC,wBAAwB,CAY9F;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,EAAE,CAAC,yBAAyB,GACrC,yBAAyB,CAS3B"}
@@ -24,8 +24,11 @@ export function v2PermissionRequest(request) {
24
24
  * The v1 form of the answer to a permission request.
25
25
  *
26
26
  * v2 adds outcomes that v1 does not know, which the draft says are no
27
- * approval. They become `cancelled`, which the agent reads as an aborted tool
28
- * use, as it does a cancelled prompt.
27
+ * approval. They become `cancelled`. In v2, `cancelled` also means that the
28
+ * user dismissed the prompt or the client declined it by policy. So the agent
29
+ * reads a `cancelled` outcome on v2 as the user refusing the tool, unless a
30
+ * `session/cancel` is stopping the session's work: then the tool use is
31
+ * aborted, as on v1.
29
32
  */
30
33
  export function v1PermissionResponse(response) {
31
34
  const outcome = response.outcome;
@@ -51,7 +51,8 @@ export declare function v2Foreground(send: (update: v2.SessionUpdate) => void):
51
51
  * so such a block fails the request with invalid params (-32602) rather than
52
52
  * being dropped from the prompt. The same goes for an embedded blob that
53
53
  * Claude cannot read, e.g. an `application/zip` resource: `promptToClaude`
54
- * would drop it.
54
+ * would drop it. An empty `prompt` fails the same way: v2 requires at least
55
+ * one content block.
55
56
  */
56
57
  export declare function v1PromptRequest({ prompt, ...request }: v2.PromptRequest): PromptRequest;
57
58
  export declare function v1ContentBlock(block: v2.ContentBlock): ContentBlock;
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/v2/prompt.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,aAAa,EAEnB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,mDAAmD,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,KAAK,EAAE,gBAAgB,EAAuC,MAAM,mBAAmB,CAAC;AAE/F;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CACtB,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,EAAE,CAAC,aAAa,EACxB,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,aAAa,KAAK,IAAI,GACvC,OAAO,CAAC,EAAE,CAAC,cAAc,CAAC,CAiC5B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,aAAa,KAAK,IAAI,GAAG,gBAAgB,CAoBvF;AAgCD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,EAAE,EAAE,CAAC,aAAa,GAAG,aAAa,CAkBvF;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,GAAG,YAAY,CAcnE"}
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/v2/prompt.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,aAAa,EAEnB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,mDAAmD,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,KAAK,EAAE,gBAAgB,EAAuC,MAAM,mBAAmB,CAAC;AAE/F;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CACtB,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,EAAE,CAAC,aAAa,EACxB,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,aAAa,KAAK,IAAI,GACvC,OAAO,CAAC,EAAE,CAAC,cAAc,CAAC,CAiC5B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,aAAa,KAAK,IAAI,GAAG,gBAAgB,CAoBvF;AAgCD;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,EAAE,EAAE,CAAC,aAAa,GAAG,aAAa,CAqBvF;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,GAAG,YAAY,CAcnE"}
package/dist/v2/prompt.js CHANGED
@@ -129,9 +129,13 @@ function idle({ stopReason, usage, _meta }) {
129
129
  * so such a block fails the request with invalid params (-32602) rather than
130
130
  * being dropped from the prompt. The same goes for an embedded blob that
131
131
  * Claude cannot read, e.g. an `application/zip` resource: `promptToClaude`
132
- * would drop it.
132
+ * would drop it. An empty `prompt` fails the same way: v2 requires at least
133
+ * one content block.
133
134
  */
134
135
  export function v1PromptRequest({ prompt, ...request }) {
136
+ if (prompt.length === 0) {
137
+ throw RequestError.invalidParams({ prompt }, "`prompt` must hold at least one content block");
138
+ }
135
139
  return {
136
140
  ...request,
137
141
  prompt: prompt.map((block) => {
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/v2/session.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EAEvB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EAGxB,KAAK,6BAA6B,EAEnC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,mDAAmD,CAAC;AAGxE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,EAAE,CAAC,iBAAiB,GAAG,iBAAiB,CAQnF;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,EAAE,CAAC,oBAAoB,GAE7B;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,oBAAoB,CAAA;CAAE,GACnD;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,kBAAkB,CAAA;CAAE,CAmBlD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,EAAE,CAAC,kBAAkB,GAAG,kBAAkB,CAOtF;AAaD,oGAAoG;AACpG,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,EAAE,CAAC,kBAAkB,CAExF;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,qBAAqB,GAAG,EAAE,CAAC,qBAAqB,CAKjG;AAED,uEAAuE;AACvE,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,EAAE,CAAC,6BAA6B,GACvC,6BAA6B,CAgB/B;AAED,sFAAsF;AACtF,wBAAgB,eAAe,CAAC,OAAO,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAAC,mBAAmB,EAAE,CAQxF;AAWD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAAC,gBAAgB,EAAE,CAMvF"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/v2/session.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EAEvB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EAGxB,KAAK,6BAA6B,EAEnC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,mDAAmD,CAAC;AAIxE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,EAAE,CAAC,iBAAiB,GAAG,iBAAiB,CAQnF;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,EAAE,CAAC,oBAAoB,GAE7B;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,oBAAoB,CAAA;CAAE,GACnD;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,kBAAkB,CAAA;CAAE,CAoBlD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,EAAE,CAAC,kBAAkB,GAAG,kBAAkB,CAOtF;AAaD,oGAAoG;AACpG,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,EAAE,CAAC,kBAAkB,CAExF;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,qBAAqB,GAAG,EAAE,CAAC,qBAAqB,CAKjG;AAED,uEAAuE;AACvE,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,EAAE,CAAC,6BAA6B,GACvC,6BAA6B,CAgB/B;AAED,sFAAsF;AACtF,wBAAgB,eAAe,CAAC,OAAO,EAAE,mBAAmB,EAAE,GAAG,EAAE,CAAC,mBAAmB,EAAE,CAQxF;AAWD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAAC,gBAAgB,EAAE,CAMvF"}
@@ -5,13 +5,14 @@
5
5
  */
6
6
  import { RequestError, } from "@agentclientprotocol/sdk/unstable";
7
7
  import * as v2 from "@agentclientprotocol/sdk/experimental/v2/unstable";
8
+ import { V2_SESSION_CAPABILITIES } from "./initialize.js";
8
9
  import { v1ContentBlock } from "./prompt.js";
9
10
  export function v1NewSessionRequest(params) {
10
11
  const { mcpServers, systemPrompt, ...request } = params;
11
12
  // v1 requires the list; v2 treats an omitted list as an empty one.
12
13
  return {
13
14
  ...request,
14
- mcpServers: (mcpServers ?? []).map(v1McpServer),
15
+ mcpServers: v1McpServers(mcpServers) ?? [],
15
16
  ...v1SystemPromptField(systemPrompt),
16
17
  };
17
18
  }
@@ -30,15 +31,16 @@ export function v1RestoreSessionRequest(params) {
30
31
  if (replayFrom == null) {
31
32
  return {
32
33
  method: "resume",
33
- request: { ...request, ...(mcpServers ? { mcpServers: mcpServers.map(v1McpServer) } : {}) },
34
+ request: { ...request, ...(mcpServers ? { mcpServers: v1McpServers(mcpServers) } : {}) },
34
35
  };
35
36
  }
37
+ const servers = v1McpServers(mcpServers);
36
38
  if (replayFrom.type !== "start") {
37
39
  throw RequestError.invalidParams({ replayFrom }, `Replaying from a ${replayFrom.type} cursor is not supported`);
38
40
  }
39
41
  return {
40
42
  method: "load",
41
- request: { ...request, mcpServers: (mcpServers ?? []).map(v1McpServer) },
43
+ request: { ...request, mcpServers: servers ?? [] },
42
44
  };
43
45
  }
44
46
  /**
@@ -49,7 +51,7 @@ export function v1ForkSessionRequest(params) {
49
51
  const { mcpServers, systemPrompt, ...request } = params;
50
52
  return {
51
53
  ...request,
52
- ...(mcpServers ? { mcpServers: mcpServers.map(v1McpServer) } : {}),
54
+ ...(mcpServers ? { mcpServers: v1McpServers(mcpServers) } : {}),
53
55
  ...v1SystemPromptField(systemPrompt),
54
56
  };
55
57
  }
@@ -120,13 +122,23 @@ export function v2AvailableCommands(commands) {
120
122
  function v2ConfigOptionsField(options) {
121
123
  return options != null ? { configOptions: v2ConfigOptions(options) } : {};
122
124
  }
125
+ /**
126
+ * The v1 list of the MCP servers of a v2 setup request, or undefined for no
127
+ * list. A request with two servers of the same `name`, or with a transport
128
+ * that the agent does not advertise in `session.mcp` (such as `acp` or a
129
+ * custom `_` type), fails with invalid params (-32602): the v1 session setup
130
+ * would otherwise drop the server without telling the client.
131
+ */
132
+ function v1McpServers(servers) {
133
+ if (servers == null)
134
+ return undefined;
135
+ v2.assertSupportedMcpServers(servers, V2_SESSION_CAPABILITIES.mcp);
136
+ return servers.map(v1McpServer);
137
+ }
123
138
  /**
124
139
  * v2 requires a `type` on every transport and makes the empty lists optional.
125
140
  * The agent recognizes a v1 stdio server by its missing `type`, so the v2 tag
126
- * is dropped. Any other transport, such as `acp` or a custom `_` type, fails
127
- * the request with invalid params (-32602): the agent advertises only stdio
128
- * and HTTP, and the v1 session setup would otherwise drop the server without
129
- * telling the client.
141
+ * is dropped. {@link v1McpServers} has already rejected every other transport.
130
142
  */
131
143
  function v1McpServer(server) {
132
144
  if (v2.McpServer.isStdio(server)) {
@@ -136,5 +148,5 @@ function v1McpServer(server) {
136
148
  if (v2.McpServer.isHttp(server)) {
137
149
  return { ...server, headers: server.headers ?? [] };
138
150
  }
139
- throw RequestError.invalidParams({ type: server.type }, `MCP servers of type ${server.type} are not supported`);
151
+ throw new Error(`Unreachable: MCP server of type ${server.type} passed the transport check`);
140
152
  }
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "0.99.1",
6
+ "version": "0.99.2-preview.10",
7
7
  "description": "An ACP-compatible coding agent powered by the Claude Agent SDK (TypeScript)",
8
8
  "main": "dist/lib.js",
9
9
  "types": "dist/lib.d.ts",
@@ -65,8 +65,8 @@
65
65
  "node": ">=22"
66
66
  },
67
67
  "dependencies": {
68
- "@agentclientprotocol/sdk": "2.1.0",
69
- "@anthropic-ai/claude-agent-sdk": "0.3.312",
68
+ "@agentclientprotocol/sdk": "2.2.0",
69
+ "@anthropic-ai/claude-agent-sdk": "0.3.316",
70
70
  "diff": "9.0.0",
71
71
  "zod": "4.6.7"
72
72
  },
@@ -74,14 +74,14 @@
74
74
  "@anthropic-ai/sdk": "1.3.0",
75
75
  "@eslint/js": "10.0.1",
76
76
  "@tsconfig/node22": "22.0.6",
77
- "@types/node": "26.6.5",
77
+ "@types/node": "26.6.6",
78
78
  "@typescript-eslint/eslint-plugin": "8.72.1",
79
79
  "@typescript-eslint/parser": "8.72.1",
80
80
  "ajv": "8.20.0",
81
81
  "ajv-formats": "3.0.1",
82
- "eslint": "10.13.0",
82
+ "eslint": "10.14.0",
83
83
  "eslint-config-prettier": "10.1.8",
84
- "globals": "17.13.0",
84
+ "globals": "17.14.0",
85
85
  "prettier": "3.9.10",
86
86
  "typescript": "6.0.3",
87
87
  "vitest": "5.0.5"