@herdctl/chat 0.2.5 → 0.3.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.
@@ -1,5 +1,5 @@
1
1
  import { describe, it, expect } from "vitest";
2
- import { ChatSessionManager, ChatSessionStateSchema, ChannelSessionSchema, SessionErrorCode, SessionManagerError, SessionStateReadError, SessionStateWriteError, SessionDirectoryCreateError, isSessionManagerError, createInitialSessionState, createChannelSession, } from "../index.js";
2
+ import { ChatSessionManager, ChatSessionStateSchema, ChannelSessionSchema, SessionErrorCode, SessionManagerError, SessionStateReadError, SessionStateWriteError, SessionDirectoryCreateError, isSessionManagerError, createInitialSessionState, createChannelSession, extractToolUseBlocks, extractToolResults, extractToolResultContent, getToolInputSummary, TOOL_EMOJIS, } from "../index.js";
3
3
  describe("@herdctl/chat", () => {
4
4
  it("exports ChatSessionManager class", () => {
5
5
  expect(ChatSessionManager).toBeDefined();
@@ -21,5 +21,12 @@ describe("@herdctl/chat", () => {
21
21
  expect(createInitialSessionState).toBeDefined();
22
22
  expect(createChannelSession).toBeDefined();
23
23
  });
24
+ it("exports tool parsing utilities", () => {
25
+ expect(extractToolUseBlocks).toBeDefined();
26
+ expect(extractToolResults).toBeDefined();
27
+ expect(extractToolResultContent).toBeDefined();
28
+ expect(getToolInputSummary).toBeDefined();
29
+ expect(TOOL_EMOJIS).toBeDefined();
30
+ });
24
31
  });
25
32
  //# sourceMappingURL=index.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/__tests__/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,2BAA2B,EAC3B,qBAAqB,EACrB,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AAErB,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,CAAC,kBAAkB,CAAC,CAAC,WAAW,EAAE,CAAC;QACzC,MAAM,CAAC,OAAO,kBAAkB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,CAAC,sBAAsB,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,CAAC,oBAAoB,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,CAAC,mBAAmB,CAAC,CAAC,WAAW,EAAE,CAAC;QAC1C,MAAM,CAAC,qBAAqB,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5C,MAAM,CAAC,sBAAsB,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,CAAC,2BAA2B,CAAC,CAAC,WAAW,EAAE,CAAC;QAClD,MAAM,CAAC,qBAAqB,CAAC,CAAC,WAAW,EAAE,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,CAAC,yBAAyB,CAAC,CAAC,WAAW,EAAE,CAAC;QAChD,MAAM,CAAC,oBAAoB,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/__tests__/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,2BAA2B,EAC3B,qBAAqB,EACrB,yBAAyB,EACzB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,wBAAwB,EACxB,mBAAmB,EACnB,WAAW,GACZ,MAAM,aAAa,CAAC;AAErB,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,CAAC,kBAAkB,CAAC,CAAC,WAAW,EAAE,CAAC;QACzC,MAAM,CAAC,OAAO,kBAAkB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,CAAC,sBAAsB,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,CAAC,oBAAoB,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,CAAC,gBAAgB,CAAC,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,CAAC,mBAAmB,CAAC,CAAC,WAAW,EAAE,CAAC;QAC1C,MAAM,CAAC,qBAAqB,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5C,MAAM,CAAC,sBAAsB,CAAC,CAAC,WAAW,EAAE,CAAC;QAC7C,MAAM,CAAC,2BAA2B,CAAC,CAAC,WAAW,EAAE,CAAC;QAClD,MAAM,CAAC,qBAAqB,CAAC,CAAC,WAAW,EAAE,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,CAAC,yBAAyB,CAAC,CAAC,WAAW,EAAE,CAAC;QAChD,MAAM,CAAC,oBAAoB,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,CAAC,oBAAoB,CAAC,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,CAAC,kBAAkB,CAAC,CAAC,WAAW,EAAE,CAAC;QACzC,MAAM,CAAC,wBAAwB,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/C,MAAM,CAAC,mBAAmB,CAAC,CAAC,WAAW,EAAE,CAAC;QAC1C,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Tests for tool parsing utilities
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=tool-parsing.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-parsing.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/tool-parsing.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,319 @@
1
+ /**
2
+ * Tests for tool parsing utilities
3
+ */
4
+ import { describe, it, expect } from "vitest";
5
+ import { extractToolUseBlocks, extractToolResults, extractToolResultContent, getToolInputSummary, TOOL_EMOJIS, } from "../tool-parsing.js";
6
+ describe("tool-parsing", () => {
7
+ // ===========================================================================
8
+ // extractToolUseBlocks
9
+ // ===========================================================================
10
+ describe("extractToolUseBlocks", () => {
11
+ it("returns empty array for non-array content", () => {
12
+ expect(extractToolUseBlocks({ type: "assistant" })).toEqual([]);
13
+ expect(extractToolUseBlocks({
14
+ type: "assistant",
15
+ message: { content: "just text" },
16
+ })).toEqual([]);
17
+ });
18
+ it("extracts tool_use blocks from content array", () => {
19
+ const message = {
20
+ type: "assistant",
21
+ message: {
22
+ content: [
23
+ { type: "text", text: "Let me read that file." },
24
+ {
25
+ type: "tool_use",
26
+ id: "toolu_123",
27
+ name: "Read",
28
+ input: { file_path: "/foo/bar.ts" },
29
+ },
30
+ ],
31
+ },
32
+ };
33
+ const blocks = extractToolUseBlocks(message);
34
+ expect(blocks).toHaveLength(1);
35
+ expect(blocks[0]).toEqual({
36
+ id: "toolu_123",
37
+ name: "Read",
38
+ input: { file_path: "/foo/bar.ts" },
39
+ });
40
+ });
41
+ it("extracts multiple tool_use blocks", () => {
42
+ const message = {
43
+ type: "assistant",
44
+ message: {
45
+ content: [
46
+ {
47
+ type: "tool_use",
48
+ id: "toolu_1",
49
+ name: "Bash",
50
+ input: { command: "ls" },
51
+ },
52
+ { type: "text", text: "Some text" },
53
+ {
54
+ type: "tool_use",
55
+ id: "toolu_2",
56
+ name: "Read",
57
+ input: { file_path: "/a.ts" },
58
+ },
59
+ ],
60
+ },
61
+ };
62
+ const blocks = extractToolUseBlocks(message);
63
+ expect(blocks).toHaveLength(2);
64
+ expect(blocks[0].name).toBe("Bash");
65
+ expect(blocks[1].name).toBe("Read");
66
+ });
67
+ it("handles blocks without id", () => {
68
+ const message = {
69
+ type: "assistant",
70
+ message: {
71
+ content: [
72
+ { type: "tool_use", name: "Bash", input: { command: "ls" } },
73
+ ],
74
+ },
75
+ };
76
+ const blocks = extractToolUseBlocks(message);
77
+ expect(blocks).toHaveLength(1);
78
+ expect(blocks[0].id).toBeUndefined();
79
+ });
80
+ it("skips non-tool_use blocks", () => {
81
+ const message = {
82
+ type: "assistant",
83
+ message: {
84
+ content: [
85
+ { type: "text", text: "Hello" },
86
+ { type: "image", source: {} },
87
+ { type: "tool_use", id: "toolu_1", name: "Bash" },
88
+ ],
89
+ },
90
+ };
91
+ const blocks = extractToolUseBlocks(message);
92
+ expect(blocks).toHaveLength(1);
93
+ });
94
+ });
95
+ // ===========================================================================
96
+ // getToolInputSummary
97
+ // ===========================================================================
98
+ describe("getToolInputSummary", () => {
99
+ it("returns command for Bash", () => {
100
+ expect(getToolInputSummary("Bash", { command: "ls -la" })).toBe("ls -la");
101
+ });
102
+ it("truncates long Bash commands", () => {
103
+ const longCommand = "a".repeat(250);
104
+ const result = getToolInputSummary("Bash", { command: longCommand });
105
+ expect(result).toBe("a".repeat(200) + "...");
106
+ });
107
+ it("returns file_path for Read", () => {
108
+ expect(getToolInputSummary("Read", { file_path: "/foo/bar.ts" })).toBe("/foo/bar.ts");
109
+ });
110
+ it("returns file_path for Write", () => {
111
+ expect(getToolInputSummary("Write", { file_path: "/foo/bar.ts" })).toBe("/foo/bar.ts");
112
+ });
113
+ it("returns file_path for Edit", () => {
114
+ expect(getToolInputSummary("Edit", { file_path: "/foo/bar.ts" })).toBe("/foo/bar.ts");
115
+ });
116
+ it("returns pattern for Glob", () => {
117
+ expect(getToolInputSummary("Glob", { pattern: "**/*.ts" })).toBe("**/*.ts");
118
+ });
119
+ it("returns pattern for Grep", () => {
120
+ expect(getToolInputSummary("Grep", { pattern: "function foo" })).toBe("function foo");
121
+ });
122
+ it("returns url for WebFetch", () => {
123
+ expect(getToolInputSummary("WebFetch", { url: "https://example.com" })).toBe("https://example.com");
124
+ });
125
+ it("returns query for WebSearch", () => {
126
+ expect(getToolInputSummary("WebSearch", { query: "how to test" })).toBe("how to test");
127
+ });
128
+ it("returns undefined for unknown tools", () => {
129
+ expect(getToolInputSummary("UnknownTool", { data: "test" })).toBeUndefined();
130
+ });
131
+ it("returns undefined when input is undefined", () => {
132
+ expect(getToolInputSummary("Bash")).toBeUndefined();
133
+ });
134
+ it("handles bash (lowercase)", () => {
135
+ expect(getToolInputSummary("bash", { command: "ls" })).toBe("ls");
136
+ });
137
+ });
138
+ // ===========================================================================
139
+ // extractToolResults
140
+ // ===========================================================================
141
+ describe("extractToolResults", () => {
142
+ it("returns empty array for non-user messages", () => {
143
+ expect(extractToolResults({ type: "assistant" })).toEqual([]);
144
+ });
145
+ it("extracts from top-level tool_use_result string", () => {
146
+ const message = {
147
+ type: "user",
148
+ tool_use_result: "command output here",
149
+ };
150
+ const results = extractToolResults(message);
151
+ expect(results).toHaveLength(1);
152
+ expect(results[0]).toEqual({
153
+ output: "command output here",
154
+ isError: false,
155
+ });
156
+ });
157
+ it("extracts from content blocks with tool_result type", () => {
158
+ const message = {
159
+ type: "user",
160
+ message: {
161
+ content: [
162
+ {
163
+ type: "tool_result",
164
+ tool_use_id: "toolu_123",
165
+ content: "file contents here",
166
+ is_error: false,
167
+ },
168
+ ],
169
+ },
170
+ };
171
+ const results = extractToolResults(message);
172
+ expect(results).toHaveLength(1);
173
+ expect(results[0]).toEqual({
174
+ output: "file contents here",
175
+ isError: false,
176
+ toolUseId: "toolu_123",
177
+ });
178
+ });
179
+ it("extracts error tool results", () => {
180
+ const message = {
181
+ type: "user",
182
+ message: {
183
+ content: [
184
+ {
185
+ type: "tool_result",
186
+ tool_use_id: "toolu_456",
187
+ content: "command failed: exit code 1",
188
+ is_error: true,
189
+ },
190
+ ],
191
+ },
192
+ };
193
+ const results = extractToolResults(message);
194
+ expect(results).toHaveLength(1);
195
+ expect(results[0].isError).toBe(true);
196
+ expect(results[0].toolUseId).toBe("toolu_456");
197
+ });
198
+ it("extracts from content blocks array inside tool_result", () => {
199
+ const message = {
200
+ type: "user",
201
+ message: {
202
+ content: [
203
+ {
204
+ type: "tool_result",
205
+ tool_use_id: "toolu_789",
206
+ content: [
207
+ { type: "text", text: "line 1\n" },
208
+ { type: "text", text: "line 2" },
209
+ ],
210
+ },
211
+ ],
212
+ },
213
+ };
214
+ const results = extractToolResults(message);
215
+ expect(results).toHaveLength(1);
216
+ expect(results[0].output).toBe("line 1\n\nline 2");
217
+ });
218
+ it("extracts multiple tool results", () => {
219
+ const message = {
220
+ type: "user",
221
+ message: {
222
+ content: [
223
+ {
224
+ type: "tool_result",
225
+ tool_use_id: "toolu_1",
226
+ content: "result 1",
227
+ },
228
+ {
229
+ type: "tool_result",
230
+ tool_use_id: "toolu_2",
231
+ content: "result 2",
232
+ is_error: true,
233
+ },
234
+ ],
235
+ },
236
+ };
237
+ const results = extractToolResults(message);
238
+ expect(results).toHaveLength(2);
239
+ expect(results[0].output).toBe("result 1");
240
+ expect(results[1].output).toBe("result 2");
241
+ expect(results[1].isError).toBe(true);
242
+ });
243
+ it("skips empty content", () => {
244
+ const message = {
245
+ type: "user",
246
+ message: {
247
+ content: [
248
+ { type: "tool_result", content: "" },
249
+ ],
250
+ },
251
+ };
252
+ expect(extractToolResults(message)).toEqual([]);
253
+ });
254
+ });
255
+ // ===========================================================================
256
+ // extractToolResultContent
257
+ // ===========================================================================
258
+ describe("extractToolResultContent", () => {
259
+ it("extracts from plain string", () => {
260
+ const result = extractToolResultContent("hello world");
261
+ expect(result).toEqual({ output: "hello world", isError: false });
262
+ });
263
+ it("returns undefined for empty string", () => {
264
+ expect(extractToolResultContent("")).toBeUndefined();
265
+ });
266
+ it("extracts from object with content string", () => {
267
+ const result = extractToolResultContent({
268
+ content: "file data",
269
+ is_error: false,
270
+ tool_use_id: "toolu_abc",
271
+ });
272
+ expect(result).toEqual({
273
+ output: "file data",
274
+ isError: false,
275
+ toolUseId: "toolu_abc",
276
+ });
277
+ });
278
+ it("extracts from object with error flag", () => {
279
+ const result = extractToolResultContent({
280
+ content: "error occurred",
281
+ is_error: true,
282
+ });
283
+ expect(result?.isError).toBe(true);
284
+ });
285
+ it("extracts from object with content blocks array", () => {
286
+ const result = extractToolResultContent({
287
+ content: [
288
+ { type: "text", text: "part 1" },
289
+ { type: "text", text: "part 2" },
290
+ ],
291
+ });
292
+ expect(result?.output).toBe("part 1\npart 2");
293
+ });
294
+ it("returns undefined for null", () => {
295
+ expect(extractToolResultContent(null)).toBeUndefined();
296
+ });
297
+ it("returns undefined for number", () => {
298
+ expect(extractToolResultContent(42)).toBeUndefined();
299
+ });
300
+ });
301
+ // ===========================================================================
302
+ // TOOL_EMOJIS
303
+ // ===========================================================================
304
+ describe("TOOL_EMOJIS", () => {
305
+ it("has emoji for common tools", () => {
306
+ expect(TOOL_EMOJIS["Bash"]).toBeDefined();
307
+ expect(TOOL_EMOJIS["Read"]).toBeDefined();
308
+ expect(TOOL_EMOJIS["Write"]).toBeDefined();
309
+ expect(TOOL_EMOJIS["Glob"]).toBeDefined();
310
+ expect(TOOL_EMOJIS["Grep"]).toBeDefined();
311
+ expect(TOOL_EMOJIS["WebFetch"]).toBeDefined();
312
+ expect(TOOL_EMOJIS["WebSearch"]).toBeDefined();
313
+ });
314
+ it("has lowercase bash variant", () => {
315
+ expect(TOOL_EMOJIS["bash"]).toBe(TOOL_EMOJIS["Bash"]);
316
+ });
317
+ });
318
+ });
319
+ //# sourceMappingURL=tool-parsing.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-parsing.test.js","sourceRoot":"","sources":["../../src/__tests__/tool-parsing.test.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -15,6 +15,7 @@ export { type ChatConnectionStatus, type ChatConnectorState, type IChatConnector
15
15
  export { findSplitPoint, splitMessage, needsSplit, truncateMessage, formatCodeBlock, type MessageSplitOptions, type SplitResult, DEFAULT_MESSAGE_DELAY_MS, MIN_CHUNK_SIZE, DEFAULT_SPLIT_POINTS, } from "./message-splitting.js";
16
16
  export { StreamingResponder, type StreamingResponderOptions, } from "./streaming-responder.js";
17
17
  export { extractMessageContent, isTextContentBlock, hasTextContent, type TextContentBlock, type ContentBlock, type SDKMessage, } from "./message-extraction.js";
18
+ export { extractToolUseBlocks, extractToolResults, extractToolResultContent, getToolInputSummary, type ToolUseBlock, type ToolResult, TOOL_EMOJIS, } from "./tool-parsing.js";
18
19
  export { isDMEnabled, getDMMode, checkDMUserFilter, shouldProcessInMode, type DMFilterResult, type DMConfig, } from "./dm-filter.js";
19
20
  export { ChatErrorCode, ChatConnectorError, ChatConnectionError, AlreadyConnectedError, InvalidTokenError, MissingTokenError, isChatConnectorError, isChatConnectionError, isAlreadyConnectedError, isInvalidTokenError, isMissingTokenError, } from "./errors.js";
20
21
  export { ErrorCategory, type ClassifiedError, type RetryOptions, type RetryResult, type UserErrorMessageKey, USER_ERROR_MESSAGES, withRetry, isTransientError, isRateLimitError, isAuthError, safeExecute, safeExecuteWithReply, } from "./error-handler.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,OAAO,EAEL,kBAAkB,EAElB,oBAAoB,EACpB,sBAAsB,EAEtB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,aAAa,EAClB,KAAK,mBAAmB,EAExB,yBAAyB,EACzB,oBAAoB,EAEpB,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,2BAA2B,EAC3B,qBAAqB,GACtB,MAAM,4BAA4B,CAAC;AAMpC,OAAO,EAEL,KAAK,oBAAoB,EAEzB,KAAK,kBAAkB,EAEvB,KAAK,cAAc,EACnB,KAAK,mBAAmB,IAAI,4BAA4B,EACxD,KAAK,mBAAmB,EAExB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EAErB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,GAC/B,MAAM,YAAY,CAAC;AAMpB,OAAO,EAEL,cAAc,EACd,YAAY,EACZ,UAAU,EACV,eAAe,EACf,eAAe,EAEf,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAEhB,wBAAwB,EACxB,cAAc,EACd,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAMhC,OAAO,EACL,kBAAkB,EAClB,KAAK,yBAAyB,GAC/B,MAAM,0BAA0B,CAAC;AAMlC,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,EACd,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,UAAU,GAChB,MAAM,yBAAyB,CAAC;AAMjC,OAAO,EACL,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,mBAAmB,EACnB,KAAK,cAAc,EACnB,KAAK,QAAQ,GACd,MAAM,gBAAgB,CAAC;AAMxB,OAAO,EAEL,aAAa,EAEb,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EAEjB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAMrB,OAAO,EAEL,aAAa,EAEb,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EAExB,mBAAmB,EAEnB,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAM5B,OAAO,EACL,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,eAAe,EACf,UAAU,GACX,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,OAAO,EAEL,kBAAkB,EAElB,oBAAoB,EACpB,sBAAsB,EAEtB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,aAAa,EAClB,KAAK,mBAAmB,EAExB,yBAAyB,EACzB,oBAAoB,EAEpB,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,2BAA2B,EAC3B,qBAAqB,GACtB,MAAM,4BAA4B,CAAC;AAMpC,OAAO,EAEL,KAAK,oBAAoB,EAEzB,KAAK,kBAAkB,EAEvB,KAAK,cAAc,EACnB,KAAK,mBAAmB,IAAI,4BAA4B,EACxD,KAAK,mBAAmB,EAExB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EAErB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,GAC/B,MAAM,YAAY,CAAC;AAMpB,OAAO,EAEL,cAAc,EACd,YAAY,EACZ,UAAU,EACV,eAAe,EACf,eAAe,EAEf,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAEhB,wBAAwB,EACxB,cAAc,EACd,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAMhC,OAAO,EACL,kBAAkB,EAClB,KAAK,yBAAyB,GAC/B,MAAM,0BAA0B,CAAC;AAMlC,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,EACd,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,UAAU,GAChB,MAAM,yBAAyB,CAAC;AAMjC,OAAO,EAEL,oBAAoB,EACpB,kBAAkB,EAClB,wBAAwB,EACxB,mBAAmB,EAEnB,KAAK,YAAY,EACjB,KAAK,UAAU,EAEf,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAM3B,OAAO,EACL,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,mBAAmB,EACnB,KAAK,cAAc,EACnB,KAAK,QAAQ,GACd,MAAM,gBAAgB,CAAC;AAMxB,OAAO,EAEL,aAAa,EAEb,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EAEjB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAMrB,OAAO,EAEL,aAAa,EAEb,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EAExB,mBAAmB,EAEnB,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAM5B,OAAO,EACL,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,eAAe,EACf,UAAU,GACX,MAAM,wBAAwB,CAAC"}
package/dist/index.js CHANGED
@@ -39,6 +39,14 @@ export { StreamingResponder, } from "./streaming-responder.js";
39
39
  // =============================================================================
40
40
  export { extractMessageContent, isTextContentBlock, hasTextContent, } from "./message-extraction.js";
41
41
  // =============================================================================
42
+ // Tool Parsing
43
+ // =============================================================================
44
+ export {
45
+ // Functions
46
+ extractToolUseBlocks, extractToolResults, extractToolResultContent, getToolInputSummary,
47
+ // Constants
48
+ TOOL_EMOJIS, } from "./tool-parsing.js";
49
+ // =============================================================================
42
50
  // DM Filtering
43
51
  // =============================================================================
44
52
  export { isDMEnabled, getDMMode, checkDMUserFilter, shouldProcessInMode, } from "./dm-filter.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,gFAAgF;AAChF,kBAAkB;AAClB,gFAAgF;AAEhF,OAAO;AACL,QAAQ;AACR,kBAAkB;AAClB,UAAU;AACV,oBAAoB,EACpB,sBAAsB;AAQtB,oBAAoB;AACpB,yBAAyB,EACzB,oBAAoB;AACpB,SAAS;AACT,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,2BAA2B,EAC3B,qBAAqB,GACtB,MAAM,4BAA4B,CAAC;AAyBpC,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF,OAAO;AACL,YAAY;AACZ,cAAc,EACd,YAAY,EACZ,UAAU,EACV,eAAe,EACf,eAAe;AAIf,YAAY;AACZ,wBAAwB,EACxB,cAAc,EACd,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAEhC,gFAAgF;AAChF,sBAAsB;AACtB,gFAAgF;AAEhF,OAAO,EACL,kBAAkB,GAEnB,MAAM,0BAA0B,CAAC;AAElC,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAEhF,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,GAIf,MAAM,yBAAyB,CAAC;AAEjC,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAEhF,OAAO,EACL,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,mBAAmB,GAGpB,MAAM,gBAAgB,CAAC;AAExB,gFAAgF;AAChF,SAAS;AACT,gFAAgF;AAEhF,OAAO;AACL,cAAc;AACd,aAAa;AACb,gBAAgB;AAChB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB;AACjB,cAAc;AACd,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAErB,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF,OAAO;AACL,aAAa;AACb,aAAa;AAMb,YAAY;AACZ,mBAAmB;AACnB,YAAY;AACZ,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAE5B,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF,OAAO,EACL,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,eAAe,EACf,UAAU,GACX,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,gFAAgF;AAChF,kBAAkB;AAClB,gFAAgF;AAEhF,OAAO;AACL,QAAQ;AACR,kBAAkB;AAClB,UAAU;AACV,oBAAoB,EACpB,sBAAsB;AAQtB,oBAAoB;AACpB,yBAAyB,EACzB,oBAAoB;AACpB,SAAS;AACT,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,2BAA2B,EAC3B,qBAAqB,GACtB,MAAM,4BAA4B,CAAC;AAyBpC,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF,OAAO;AACL,YAAY;AACZ,cAAc,EACd,YAAY,EACZ,UAAU,EACV,eAAe,EACf,eAAe;AAIf,YAAY;AACZ,wBAAwB,EACxB,cAAc,EACd,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAEhC,gFAAgF;AAChF,sBAAsB;AACtB,gFAAgF;AAEhF,OAAO,EACL,kBAAkB,GAEnB,MAAM,0BAA0B,CAAC;AAElC,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAEhF,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,GAIf,MAAM,yBAAyB,CAAC;AAEjC,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAEhF,OAAO;AACL,YAAY;AACZ,oBAAoB,EACpB,kBAAkB,EAClB,wBAAwB,EACxB,mBAAmB;AAInB,YAAY;AACZ,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAE3B,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAEhF,OAAO,EACL,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,mBAAmB,GAGpB,MAAM,gBAAgB,CAAC;AAExB,gFAAgF;AAChF,SAAS;AACT,gFAAgF;AAEhF,OAAO;AACL,cAAc;AACd,aAAa;AACb,gBAAgB;AAChB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB;AACjB,cAAc;AACd,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAErB,gFAAgF;AAChF,gBAAgB;AAChB,gFAAgF;AAEhF,OAAO;AACL,aAAa;AACb,aAAa;AAMb,YAAY;AACZ,mBAAmB;AACnB,YAAY;AACZ,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAE5B,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF,OAAO,EACL,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,eAAe,EACf,UAAU,GACX,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Tool call/result parsing utilities
3
+ *
4
+ * Extracts tool_use and tool_result blocks from Claude SDK messages.
5
+ * These were originally private methods on the Discord manager but are
6
+ * shared across Discord, Slack, and Web connectors.
7
+ */
8
+ /**
9
+ * A parsed tool_use block from an assistant message
10
+ */
11
+ export interface ToolUseBlock {
12
+ /** Tool use ID for pairing with results */
13
+ id?: string;
14
+ /** Tool name (e.g., "Bash", "Read", "Write") */
15
+ name: string;
16
+ /** Tool input object */
17
+ input?: unknown;
18
+ }
19
+ /**
20
+ * A parsed tool_result from a user message
21
+ */
22
+ export interface ToolResult {
23
+ /** Tool output text */
24
+ output: string;
25
+ /** Whether the tool returned an error */
26
+ isError: boolean;
27
+ /** ID of the tool_use this result corresponds to */
28
+ toolUseId?: string;
29
+ }
30
+ /**
31
+ * Emoji mapping for common tool names
32
+ */
33
+ export declare const TOOL_EMOJIS: Record<string, string>;
34
+ /**
35
+ * Extract tool_use blocks from an assistant message's content blocks
36
+ *
37
+ * Returns id, name, and input for each tool_use block so callers can
38
+ * track pending calls and pair them with results.
39
+ *
40
+ * @param message - SDK message object (assistant type)
41
+ * @returns Array of parsed tool use blocks
42
+ */
43
+ export declare function extractToolUseBlocks(message: {
44
+ type: string;
45
+ message?: {
46
+ content?: unknown;
47
+ };
48
+ }): ToolUseBlock[];
49
+ /**
50
+ * Get a human-readable summary of tool input
51
+ *
52
+ * Produces a short description based on the tool name and its input,
53
+ * e.g. the command for Bash, the file path for Read/Write, etc.
54
+ *
55
+ * @param name - Tool name
56
+ * @param input - Tool input object
57
+ * @returns Human-readable summary, or undefined if no summary available
58
+ */
59
+ export declare function getToolInputSummary(name: string, input?: unknown): string | undefined;
60
+ /**
61
+ * Extract tool results from a user message
62
+ *
63
+ * Returns output, error status, and the tool_use_id for matching
64
+ * to the pending tool_use that produced this result.
65
+ *
66
+ * @param message - SDK message object (user type with tool results)
67
+ * @returns Array of parsed tool results
68
+ */
69
+ export declare function extractToolResults(message: {
70
+ type: string;
71
+ message?: {
72
+ content?: unknown;
73
+ };
74
+ tool_use_result?: unknown;
75
+ }): ToolResult[];
76
+ /**
77
+ * Extract content from a top-level tool_use_result value
78
+ *
79
+ * Handles the various formats that a tool result value can take:
80
+ * - Plain string
81
+ * - Object with `content` string
82
+ * - Object with `content` array of text blocks
83
+ *
84
+ * @param result - Raw tool_use_result value from SDK
85
+ * @returns Parsed tool result, or undefined if content could not be extracted
86
+ */
87
+ export declare function extractToolResultContent(result: unknown): ToolResult | undefined;
88
+ //# sourceMappingURL=tool-parsing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-parsing.d.ts","sourceRoot":"","sources":["../src/tool-parsing.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,2CAA2C;IAC3C,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAU9C,CAAC;AAMF;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CACjC,GAAG,YAAY,EAAE,CAwBjB;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CA4BrF;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAChC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,GAAG,UAAU,EAAE,CA0Df;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,OAAO,GACd,UAAU,GAAG,SAAS,CA2CxB"}
@@ -0,0 +1,201 @@
1
+ /**
2
+ * Tool call/result parsing utilities
3
+ *
4
+ * Extracts tool_use and tool_result blocks from Claude SDK messages.
5
+ * These were originally private methods on the Discord manager but are
6
+ * shared across Discord, Slack, and Web connectors.
7
+ */
8
+ /**
9
+ * Emoji mapping for common tool names
10
+ */
11
+ export const TOOL_EMOJIS = {
12
+ Bash: "\u{1F4BB}", // laptop
13
+ bash: "\u{1F4BB}",
14
+ Read: "\u{1F4C4}", // page
15
+ Write: "\u{270F}\u{FE0F}", // pencil
16
+ Edit: "\u{270F}\u{FE0F}",
17
+ Glob: "\u{1F50D}", // magnifying glass
18
+ Grep: "\u{1F50D}",
19
+ WebFetch: "\u{1F310}", // globe
20
+ WebSearch: "\u{1F310}",
21
+ };
22
+ // =============================================================================
23
+ // Extraction Functions
24
+ // =============================================================================
25
+ /**
26
+ * Extract tool_use blocks from an assistant message's content blocks
27
+ *
28
+ * Returns id, name, and input for each tool_use block so callers can
29
+ * track pending calls and pair them with results.
30
+ *
31
+ * @param message - SDK message object (assistant type)
32
+ * @returns Array of parsed tool use blocks
33
+ */
34
+ export function extractToolUseBlocks(message) {
35
+ const apiMessage = message.message;
36
+ const content = apiMessage?.content;
37
+ if (!Array.isArray(content))
38
+ return [];
39
+ const blocks = [];
40
+ for (const block of content) {
41
+ if (block &&
42
+ typeof block === "object" &&
43
+ "type" in block &&
44
+ block.type === "tool_use" &&
45
+ "name" in block &&
46
+ typeof block.name === "string") {
47
+ blocks.push({
48
+ id: "id" in block && typeof block.id === "string" ? block.id : undefined,
49
+ name: block.name,
50
+ input: "input" in block ? block.input : undefined,
51
+ });
52
+ }
53
+ }
54
+ return blocks;
55
+ }
56
+ /**
57
+ * Get a human-readable summary of tool input
58
+ *
59
+ * Produces a short description based on the tool name and its input,
60
+ * e.g. the command for Bash, the file path for Read/Write, etc.
61
+ *
62
+ * @param name - Tool name
63
+ * @param input - Tool input object
64
+ * @returns Human-readable summary, or undefined if no summary available
65
+ */
66
+ export function getToolInputSummary(name, input) {
67
+ const inputObj = input;
68
+ if (name === "Bash" || name === "bash") {
69
+ const command = inputObj?.command;
70
+ if (typeof command === "string" && command.length > 0) {
71
+ return command.length > 200 ? command.substring(0, 200) + "..." : command;
72
+ }
73
+ }
74
+ if (name === "Read" || name === "Write" || name === "Edit") {
75
+ const path = inputObj?.file_path ?? inputObj?.path;
76
+ if (typeof path === "string")
77
+ return path;
78
+ }
79
+ if (name === "Glob" || name === "Grep") {
80
+ const pattern = inputObj?.pattern;
81
+ if (typeof pattern === "string")
82
+ return pattern;
83
+ }
84
+ if (name === "WebFetch" || name === "WebSearch") {
85
+ const url = inputObj?.url;
86
+ const query = inputObj?.query;
87
+ if (typeof url === "string")
88
+ return url;
89
+ if (typeof query === "string")
90
+ return query;
91
+ }
92
+ return undefined;
93
+ }
94
+ /**
95
+ * Extract tool results from a user message
96
+ *
97
+ * Returns output, error status, and the tool_use_id for matching
98
+ * to the pending tool_use that produced this result.
99
+ *
100
+ * @param message - SDK message object (user type with tool results)
101
+ * @returns Array of parsed tool results
102
+ */
103
+ export function extractToolResults(message) {
104
+ const results = [];
105
+ // Check for top-level tool_use_result (direct SDK format)
106
+ if (message.tool_use_result !== undefined) {
107
+ const extracted = extractToolResultContent(message.tool_use_result);
108
+ if (extracted) {
109
+ results.push(extracted);
110
+ }
111
+ return results;
112
+ }
113
+ // Check for content blocks in nested message
114
+ const apiMessage = message.message;
115
+ const content = apiMessage?.content;
116
+ if (!Array.isArray(content))
117
+ return results;
118
+ for (const block of content) {
119
+ if (!block || typeof block !== "object" || !("type" in block))
120
+ continue;
121
+ if (block.type === "tool_result") {
122
+ const toolResultBlock = block;
123
+ const isError = toolResultBlock.is_error === true;
124
+ const toolUseId = typeof toolResultBlock.tool_use_id === "string"
125
+ ? toolResultBlock.tool_use_id
126
+ : undefined;
127
+ // Content can be a string or an array of content blocks
128
+ const blockContent = toolResultBlock.content;
129
+ if (typeof blockContent === "string" && blockContent.length > 0) {
130
+ results.push({ output: blockContent, isError, toolUseId });
131
+ }
132
+ else if (Array.isArray(blockContent)) {
133
+ const textParts = [];
134
+ for (const part of blockContent) {
135
+ if (part &&
136
+ typeof part === "object" &&
137
+ "type" in part &&
138
+ part.type === "text" &&
139
+ "text" in part &&
140
+ typeof part.text === "string") {
141
+ textParts.push(part.text);
142
+ }
143
+ }
144
+ if (textParts.length > 0) {
145
+ results.push({ output: textParts.join("\n"), isError, toolUseId });
146
+ }
147
+ }
148
+ }
149
+ }
150
+ return results;
151
+ }
152
+ /**
153
+ * Extract content from a top-level tool_use_result value
154
+ *
155
+ * Handles the various formats that a tool result value can take:
156
+ * - Plain string
157
+ * - Object with `content` string
158
+ * - Object with `content` array of text blocks
159
+ *
160
+ * @param result - Raw tool_use_result value from SDK
161
+ * @returns Parsed tool result, or undefined if content could not be extracted
162
+ */
163
+ export function extractToolResultContent(result) {
164
+ if (typeof result === "string" && result.length > 0) {
165
+ return { output: result, isError: false };
166
+ }
167
+ if (result && typeof result === "object") {
168
+ const obj = result;
169
+ // Check for content field
170
+ if (typeof obj.content === "string" && obj.content.length > 0) {
171
+ return {
172
+ output: obj.content,
173
+ isError: obj.is_error === true,
174
+ toolUseId: typeof obj.tool_use_id === "string" ? obj.tool_use_id : undefined,
175
+ };
176
+ }
177
+ // Check for content blocks array
178
+ if (Array.isArray(obj.content)) {
179
+ const textParts = [];
180
+ for (const block of obj.content) {
181
+ if (block &&
182
+ typeof block === "object" &&
183
+ "type" in block &&
184
+ block.type === "text" &&
185
+ "text" in block &&
186
+ typeof block.text === "string") {
187
+ textParts.push(block.text);
188
+ }
189
+ }
190
+ if (textParts.length > 0) {
191
+ return {
192
+ output: textParts.join("\n"),
193
+ isError: obj.is_error === true,
194
+ toolUseId: typeof obj.tool_use_id === "string" ? obj.tool_use_id : undefined,
195
+ };
196
+ }
197
+ }
198
+ }
199
+ return undefined;
200
+ }
201
+ //# sourceMappingURL=tool-parsing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-parsing.js","sourceRoot":"","sources":["../src/tool-parsing.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@herdctl/chat",
3
- "version": "0.2.5",
3
+ "version": "0.3.0",
4
4
  "description": "Shared chat infrastructure for herdctl connectors",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -12,7 +12,7 @@
12
12
  "dependencies": {
13
13
  "yaml": "^2.3.0",
14
14
  "zod": "^3.22.0",
15
- "@herdctl/core": "5.3.0"
15
+ "@herdctl/core": "5.4.0"
16
16
  },
17
17
  "devDependencies": {
18
18
  "@vitest/coverage-v8": "^4.0.17",