@finityno/claude-code-acp 0.13.5 → 0.13.6
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/acp-agent.d.ts +3 -1
- package/dist/acp-agent.d.ts.map +1 -1
- package/dist/acp-agent.js +24 -15
- package/package.json +1 -1
package/dist/acp-agent.d.ts
CHANGED
|
@@ -99,7 +99,9 @@ export declare function promptToClaude(prompt: PromptRequest): SDKUserMessage;
|
|
|
99
99
|
* Convert an SDKAssistantMessage (Claude) to a SessionNotification (ACP).
|
|
100
100
|
* Only handles text, image, and thinking chunks for now.
|
|
101
101
|
*/
|
|
102
|
-
export declare function toAcpNotifications(content: string | ContentBlockParam[] | BetaContentBlock[] | BetaRawContentBlockDelta[], role: "assistant" | "user", sessionId: string, toolUseCache: ToolUseCache, client: AgentSideConnection, logger: Logger, subagentTracker?: SubagentTracker
|
|
102
|
+
export declare function toAcpNotifications(content: string | ContentBlockParam[] | BetaContentBlock[] | BetaRawContentBlockDelta[], role: "assistant" | "user", sessionId: string, toolUseCache: ToolUseCache, client: AgentSideConnection, logger: Logger, subagentTracker?: SubagentTracker,
|
|
103
|
+
/** The parent tool use ID from the SDK message - indicates which subagent context this is from */
|
|
104
|
+
sdkParentToolUseId?: string | null): SessionNotification[];
|
|
103
105
|
export declare function streamEventToAcpNotifications(message: SDKPartialAssistantMessage, sessionId: string, toolUseCache: ToolUseCache, client: AgentSideConnection, logger: Logger, subagentTracker?: SubagentTracker): SessionNotification[];
|
|
104
106
|
export declare function runAcp(): void;
|
|
105
107
|
export {};
|
package/dist/acp-agent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acp-agent.d.ts","sourceRoot":"","sources":["../src/acp-agent.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"acp-agent.d.ts","sourceRoot":"","sources":["../src/acp-agent.ts"],"names":[],"mappings":"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"}
|
package/dist/acp-agent.js
CHANGED
|
@@ -205,7 +205,9 @@ export class ClaudeAcpAgent {
|
|
|
205
205
|
? // Handled by stream events above
|
|
206
206
|
message.message.content.filter((item) => !["text", "thinking"].includes(item.type))
|
|
207
207
|
: message.message.content;
|
|
208
|
-
|
|
208
|
+
// Pass through the SDK-provided parent_tool_use_id which identifies the subagent context
|
|
209
|
+
const sdkParentToolUseId = message.parent_tool_use_id;
|
|
210
|
+
for (const notification of toAcpNotifications(content, message.message.role, params.sessionId, this.toolUseCache, this.client, this.logger, this.subagentTracker, sdkParentToolUseId)) {
|
|
209
211
|
await this.client.sessionUpdate(notification);
|
|
210
212
|
}
|
|
211
213
|
break;
|
|
@@ -746,7 +748,9 @@ export function promptToClaude(prompt) {
|
|
|
746
748
|
* Convert an SDKAssistantMessage (Claude) to a SessionNotification (ACP).
|
|
747
749
|
* Only handles text, image, and thinking chunks for now.
|
|
748
750
|
*/
|
|
749
|
-
export function toAcpNotifications(content, role, sessionId, toolUseCache, client, logger, subagentTracker
|
|
751
|
+
export function toAcpNotifications(content, role, sessionId, toolUseCache, client, logger, subagentTracker,
|
|
752
|
+
/** The parent tool use ID from the SDK message - indicates which subagent context this is from */
|
|
753
|
+
sdkParentToolUseId) {
|
|
750
754
|
if (typeof content === "string") {
|
|
751
755
|
return [
|
|
752
756
|
{
|
|
@@ -812,8 +816,10 @@ export function toAcpNotifications(content, role, sessionId, toolUseCache, clien
|
|
|
812
816
|
}
|
|
813
817
|
else if (chunk.name === "Task" && subagentTracker && isTaskToolInput(chunk.input)) {
|
|
814
818
|
// Track Task tool as subagent
|
|
819
|
+
// Pass the SDK-provided parent_tool_use_id for proper nesting of subagents
|
|
815
820
|
const input = chunk.input;
|
|
816
|
-
|
|
821
|
+
const parentSubagentId = sdkParentToolUseId ?? undefined;
|
|
822
|
+
subagentTracker.trackSubagent(chunk.id, sessionId, input, parentSubagentId);
|
|
817
823
|
// Register hook callback for subagent completion
|
|
818
824
|
registerHookCallback(chunk.id, {
|
|
819
825
|
onPostToolUseHook: async (toolUseId, toolInput, toolResponse) => {
|
|
@@ -890,9 +896,11 @@ export function toAcpNotifications(content, role, sessionId, toolUseCache, clien
|
|
|
890
896
|
};
|
|
891
897
|
}
|
|
892
898
|
else {
|
|
893
|
-
//
|
|
894
|
-
|
|
895
|
-
|
|
899
|
+
// Use the SDK-provided parent tool use ID which correctly identifies
|
|
900
|
+
// which subagent context this tool call is from.
|
|
901
|
+
// Task tools are subagents themselves, not children of other subagents.
|
|
902
|
+
const isTaskTool = chunk.name === "Task";
|
|
903
|
+
const parentToolUseId = isTaskTool ? undefined : (sdkParentToolUseId ?? undefined);
|
|
896
904
|
// Register hook callback to receive the structured output from the hook
|
|
897
905
|
registerHookCallback(chunk.id, {
|
|
898
906
|
onPostToolUseHook: async (toolUseId, toolInput, toolResponse) => {
|
|
@@ -903,7 +911,7 @@ export function toAcpNotifications(content, role, sessionId, toolUseCache, clien
|
|
|
903
911
|
claudeCode: {
|
|
904
912
|
toolResponse,
|
|
905
913
|
toolName: toolUse.name,
|
|
906
|
-
...(
|
|
914
|
+
...(parentToolUseId && { parentToolUseId }),
|
|
907
915
|
},
|
|
908
916
|
},
|
|
909
917
|
toolCallId: toolUseId,
|
|
@@ -926,9 +934,6 @@ export function toAcpNotifications(content, role, sessionId, toolUseCache, clien
|
|
|
926
934
|
catch {
|
|
927
935
|
// ignore if we can't turn it to JSON
|
|
928
936
|
}
|
|
929
|
-
// Check if there's an active subagent that owns this tool call
|
|
930
|
-
const activeSubagent = subagentTracker?.getActiveSubagent(sessionId);
|
|
931
|
-
const parentToolUseId = activeSubagent?.id;
|
|
932
937
|
update = {
|
|
933
938
|
_meta: {
|
|
934
939
|
claudeCode: {
|
|
@@ -959,9 +964,11 @@ export function toAcpNotifications(content, role, sessionId, toolUseCache, clien
|
|
|
959
964
|
break;
|
|
960
965
|
}
|
|
961
966
|
if (toolUse.name !== "TodoWrite") {
|
|
962
|
-
//
|
|
963
|
-
|
|
964
|
-
|
|
967
|
+
// Use the SDK-provided parent tool use ID which correctly identifies
|
|
968
|
+
// which subagent context this tool result is from.
|
|
969
|
+
// Task tools are subagents themselves, not children of other subagents.
|
|
970
|
+
const isTaskTool = toolUse.name === "Task";
|
|
971
|
+
const parentToolUseId = isTaskTool ? undefined : (sdkParentToolUseId ?? undefined);
|
|
965
972
|
update = {
|
|
966
973
|
_meta: {
|
|
967
974
|
claudeCode: {
|
|
@@ -997,11 +1004,13 @@ export function toAcpNotifications(content, role, sessionId, toolUseCache, clien
|
|
|
997
1004
|
}
|
|
998
1005
|
export function streamEventToAcpNotifications(message, sessionId, toolUseCache, client, logger, subagentTracker) {
|
|
999
1006
|
const event = message.event;
|
|
1007
|
+
// Pass through the SDK-provided parent_tool_use_id which identifies the subagent context
|
|
1008
|
+
const sdkParentToolUseId = message.parent_tool_use_id;
|
|
1000
1009
|
switch (event.type) {
|
|
1001
1010
|
case "content_block_start":
|
|
1002
|
-
return toAcpNotifications([event.content_block], "assistant", sessionId, toolUseCache, client, logger, subagentTracker);
|
|
1011
|
+
return toAcpNotifications([event.content_block], "assistant", sessionId, toolUseCache, client, logger, subagentTracker, sdkParentToolUseId);
|
|
1003
1012
|
case "content_block_delta":
|
|
1004
|
-
return toAcpNotifications([event.delta], "assistant", sessionId, toolUseCache, client, logger, subagentTracker);
|
|
1013
|
+
return toAcpNotifications([event.delta], "assistant", sessionId, toolUseCache, client, logger, subagentTracker, sdkParentToolUseId);
|
|
1005
1014
|
// No content
|
|
1006
1015
|
case "message_start":
|
|
1007
1016
|
case "message_delta":
|
package/package.json
CHANGED