@tyvm/knowhow 0.0.19 → 0.0.21

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tyvm/knowhow",
3
- "version": "0.0.19",
3
+ "version": "0.0.21",
4
4
  "description": "ai cli with plugins and agents",
5
5
  "main": "ts_build/src/index.js",
6
6
  "bin": {
@@ -186,86 +186,16 @@ export abstract class BaseAgent implements IAgent {
186
186
  abstract getInitialMessages(userInput: string): Promise<Message[]>;
187
187
 
188
188
  async processToolMessages(toolCall: ToolCall) {
189
- const functionName = toolCall.function.name;
190
- const functionToCall = this.tools.getFunction(functionName);
191
-
192
- console.log(toolCall);
193
- const functionArgs = JSON.parse(
194
- this.formatAiResponse(toolCall.function.arguments)
195
- );
196
-
197
- const toJsonIfObject = (arg: any) => {
198
- if (typeof arg === "object") {
199
- return JSON.stringify(arg, null, 2);
200
- }
201
- return arg;
202
- };
203
-
204
- const toolDefinition = this.tools.getTool(functionName);
205
- const properties = toolDefinition?.function?.parameters?.properties || {};
206
- const isPositional =
207
- toolDefinition?.function?.parameters?.positional || false;
208
- const fnArgs = isPositional
209
- ? Object.keys(properties).map((p) => functionArgs[p])
210
- : functionArgs;
211
-
212
- console.log(
213
- `Calling function ${functionName} with args:`,
214
- JSON.stringify(fnArgs, null, 2)
189
+ const { functionResp, toolMessages } = await this.tools.callTool(
190
+ toolCall,
191
+ this.getEnabledToolNames()
215
192
  );
216
193
 
217
- if (!functionToCall) {
218
- const options = this.getEnabledToolNames().join(", ");
219
- const error = `Function ${functionName} not found, options are ${options}`;
220
- console.log(error);
221
- return [
222
- {
223
- tool_call_id: toolCall.id,
224
- role: "tool",
225
- name: "error",
226
- content: error,
227
- },
228
- ];
229
- }
230
-
231
- const functionResponse = await Promise.resolve(
232
- isPositional ? functionToCall(...fnArgs) : functionToCall(fnArgs)
233
- ).catch((e) => "ERROR: " + e.message);
234
-
235
194
  this.agentEvents.emit(this.eventTypes.toolUsed, {
236
195
  toolCall,
237
- functionResponse,
196
+ functionResp,
238
197
  });
239
198
 
240
- let toolMessages = [];
241
-
242
- if (functionName === "multi_tool_use.parallel") {
243
- const args = fnArgs[0] as {
244
- recipient_name: string;
245
- parameters: any;
246
- }[];
247
-
248
- toolMessages = args.map((call, index) => {
249
- return {
250
- tool_call_id: toolCall.id + "_" + index,
251
- role: "tool",
252
- name: call.recipient_name.split(".").pop(),
253
- content: toJsonIfObject(functionResponse[index]) || "Done",
254
- };
255
- });
256
- }
257
-
258
- toolMessages = [
259
- {
260
- tool_call_id: toolCall.id,
261
- role: "tool",
262
- name: functionName,
263
- content: toJsonIfObject(functionResponse) || "Done",
264
- },
265
- ];
266
-
267
- console.log(toolMessages);
268
-
269
199
  return toolMessages;
270
200
  }
271
201
 
@@ -421,7 +351,10 @@ export abstract class BaseAgent implements IAgent {
421
351
 
422
352
  // Process initial messages if this is the first call
423
353
  if (!_messages) {
424
- messages = await this.messageProcessor.processMessages(messages, "initial_call");
354
+ messages = await this.messageProcessor.processMessages(
355
+ messages,
356
+ "initial_call"
357
+ );
425
358
  }
426
359
 
427
360
  if (this.pendingUserMessages.length) {
@@ -437,7 +370,10 @@ export abstract class BaseAgent implements IAgent {
437
370
  const endIndex = messages.length;
438
371
 
439
372
  // Process messages before each AI call
440
- messages = await this.messageProcessor.processMessages(messages, "per_call");
373
+ messages = await this.messageProcessor.processMessages(
374
+ messages,
375
+ "per_call"
376
+ );
441
377
  const compressThreshold = 10000;
442
378
 
443
379
  const response = await this.getClient().createChatCompletion({
@@ -490,7 +426,10 @@ export abstract class BaseAgent implements IAgent {
490
426
 
491
427
  // Process messages after tool execution
492
428
  if (newToolCalls && newToolCalls.length > 0) {
493
- messages = await this.messageProcessor.processMessages(messages, "post_call");
429
+ messages = await this.messageProcessor.processMessages(
430
+ messages,
431
+ "post_call"
432
+ );
494
433
  }
495
434
 
496
435
  // Early exit: not required to call tool
@@ -8,12 +8,15 @@ interface TokenCompressorStorage {
8
8
 
9
9
  export class TokenCompressor {
10
10
  private storage: TokenCompressorStorage = {};
11
- private maxTokens: number = 4000;
12
- private compressionRatio: number = 0.1;
13
11
  private keyPrefix: string = "compressed_";
14
12
  private toolName: string = expandTokensDefinition.function.name;
15
- private characterLimit: number = this.maxTokens * 4;
16
- private jsonPropertyThreshold: number = this.maxTokens;
13
+
14
+ // Threshold for compression - if content exceeds this size, we compress it
15
+ private compressionThreshold: number = 4000;
16
+ private characterLimit: number = this.compressionThreshold * 4;
17
+
18
+ // Largest size retrievable without re-compressing
19
+ private maxTokens: number = this.compressionThreshold * 2;
17
20
 
18
21
  constructor(toolsService?: ToolsService) {
19
22
  this.registerTool(toolsService);
@@ -24,10 +27,16 @@ export class TokenCompressor {
24
27
  return Math.ceil(text.length / 4);
25
28
  }
26
29
 
27
- public setMaxTokens(maxTokens: number): void {
28
- this.maxTokens = maxTokens;
29
- this.characterLimit = maxTokens * 4;
30
- this.jsonPropertyThreshold = maxTokens;
30
+ public setCompressionThreshold(threshold: number): void {
31
+ this.compressionThreshold = threshold;
32
+ this.characterLimit = threshold * 4; // Update character limit based on new threshold
33
+ }
34
+
35
+ // Internally adjust to ensure we can always retrieve data
36
+ private setMaxTokens(maxTokens: number): void {
37
+ if (maxTokens > this.maxTokens) {
38
+ this.maxTokens = maxTokens;
39
+ }
31
40
  }
32
41
 
33
42
  /**
@@ -45,6 +54,10 @@ export class TokenCompressor {
45
54
  * Compresses a string into chunks from the end, creating a chain of references
46
55
  */
47
56
  public compressStringInChunks(content: string, path: string = ""): string {
57
+ if (path === "" && this.estimateTokens(content) <= this.maxTokens) {
58
+ return content;
59
+ }
60
+
48
61
  if (content.length <= this.characterLimit) {
49
62
  return content;
50
63
  }
@@ -79,7 +92,7 @@ export class TokenCompressor {
79
92
  chunkContent += `\n\n[NEXT_CHUNK_KEY: ${nextKey}]`;
80
93
  }
81
94
 
82
- this.storage[key] = chunkContent;
95
+ this.storeString(key, chunkContent);
83
96
  }
84
97
 
85
98
  // Return reference to the first chunk
@@ -101,7 +114,11 @@ export class TokenCompressor {
101
114
  public compressContent(content: string, path: string = ""): string {
102
115
  const tokens = this.estimateTokens(content);
103
116
 
104
- if (tokens <= this.maxTokens) {
117
+ if (path === "" && tokens <= this.maxTokens) {
118
+ return content;
119
+ }
120
+
121
+ if (tokens <= this.compressionThreshold) {
105
122
  return content;
106
123
  }
107
124
 
@@ -128,6 +145,13 @@ export class TokenCompressor {
128
145
  * Implements an efficient backward-iterating chunking strategy for large arrays.
129
146
  */
130
147
  public compressJsonProperties(obj: any, path: string = ""): any {
148
+ if (
149
+ path === "" &&
150
+ this.estimateTokens(JSON.stringify(obj)) <= this.maxTokens
151
+ ) {
152
+ return obj;
153
+ }
154
+
131
155
  if (Array.isArray(obj)) {
132
156
  // Step 1: Recursively compress all items first (depth-first).
133
157
  const processedItems = obj.map((item, index) =>
@@ -135,11 +159,7 @@ export class TokenCompressor {
135
159
  );
136
160
 
137
161
  // Step 2: Early exit if the whole array is already small enough.
138
- // Leeway of 30% over, to avoid re-compression of retrievals
139
- const initialTokens = this.estimateTokens(JSON.stringify(processedItems));
140
- if (initialTokens <= this.jsonPropertyThreshold * 1.3) {
141
- return processedItems;
142
- }
162
+ // maxTokens allows us to fetch objects from the store without recompressing
143
163
 
144
164
  // Step 3: Iterate backwards, building chunks from the end.
145
165
  const finalArray: any[] = [];
@@ -152,9 +172,9 @@ export class TokenCompressor {
152
172
  const chunkString = JSON.stringify(currentChunk);
153
173
  const chunkTokens = this.estimateTokens(chunkString);
154
174
 
155
- if (chunkTokens > this.jsonPropertyThreshold) {
175
+ if (chunkTokens > this.compressionThreshold) {
156
176
  const key = this.generateKey();
157
- this.storage[key] = chunkString;
177
+ this.storeString(key, chunkString);
158
178
 
159
179
  const stub = `[COMPRESSED_JSON_ARRAY_CHUNK - ${chunkTokens} tokens, ${
160
180
  currentChunk.length
@@ -188,9 +208,9 @@ export class TokenCompressor {
188
208
  // After processing children, check if the entire object should be compressed
189
209
  const objectAsString = JSON.stringify(result);
190
210
  const tokens = this.estimateTokens(objectAsString);
191
- if (tokens > this.jsonPropertyThreshold) {
211
+ if (tokens > this.compressionThreshold) {
192
212
  const key = this.generateKey();
193
- this.storage[key] = objectAsString;
213
+ this.storeString(key, objectAsString);
194
214
 
195
215
  return `[COMPRESSED_JSON_OBJECT - ${tokens} tokens]\nKey: ${key}\nPath: ${path}\nKeys: ${Object.keys(
196
216
  result
@@ -221,7 +241,7 @@ export class TokenCompressor {
221
241
  const tokens = this.estimateTokens(obj);
222
242
  if (tokens > this.characterLimit * 4) {
223
243
  const key = this.generateKey();
224
- this.storage[key] = obj;
244
+ this.storeString(key, obj);
225
245
 
226
246
  return `[COMPRESSED_JSON_PROPERTY - ${tokens} tokens]\nKey: ${key}\nPath: ${path}\nPreview: ${obj.substring(
227
247
  0,
@@ -242,36 +262,7 @@ export class TokenCompressor {
242
262
  .substr(2, 9)}`;
243
263
  }
244
264
 
245
- public compressToolCall(message: Message): void {
246
- if (message.tool_calls) {
247
- for (const toolCall of message.tool_calls) {
248
- if (toolCall.function.arguments) {
249
- const args = toolCall.function.arguments;
250
- const tokens = this.estimateTokens(args);
251
-
252
- if (tokens > this.maxTokens) {
253
- const key = this.generateKey();
254
- this.storage[key] = args;
255
-
256
- const compressed = `[COMPRESSED TOOL ARGS - ${tokens} tokens]\nKey: ${key}\nPreview: ${args.substring(
257
- 0,
258
- 200
259
- )}...\n[Use ${
260
- this.toolName
261
- } tool with key "${key}" to retrieve full arguments]`;
262
-
263
- toolCall.function.arguments = compressed;
264
- }
265
- }
266
- }
267
- }
268
- }
269
-
270
265
  public async compressMessage(message: Message) {
271
- // The previous check for 'isDecompressionToolResponse' is no longer necessary.
272
- // The new chunking strategy returns manageable chunks that won't meet the
273
- // compression threshold, naturally preventing cycles.
274
-
275
266
  // Compress content if it's a string
276
267
  if (typeof message.content === "string") {
277
268
  message.content = this.compressContent(message.content);
@@ -284,9 +275,6 @@ export class TokenCompressor {
284
275
  }
285
276
  }
286
277
  }
287
-
288
- // Compress tool calls
289
- this.compressToolCall(message);
290
278
  }
291
279
 
292
280
  createProcessor(
@@ -311,6 +299,14 @@ export class TokenCompressor {
311
299
  return this.storage[key] || null;
312
300
  }
313
301
 
302
+ storeString(key: string, value: string): void {
303
+ if (this.estimateTokens(value) > this.maxTokens) {
304
+ // adjust max tokens so we can always retrieve this without re-compressing
305
+ this.setMaxTokens(this.estimateTokens(value) + 1);
306
+ }
307
+ this.storage[key] = value;
308
+ }
309
+
314
310
  clearStorage(): void {
315
311
  this.storage = {};
316
312
  }
@@ -1,7 +1,14 @@
1
1
  import { ChatCompletionTool } from "openai/resources/chat";
2
+ import { replaceEscapedNewLines, restoreEscapedNewLines } from "../utils";
2
3
  import { includedTools } from "../agents/tools/list";
3
- import { Tool } from "../clients/types";
4
- import { ToolOverrideRegistration, ToolWrapperRegistration, ToolOverrideFunction, ToolWrapper, createPatternMatcher } from "./types";
4
+ import { Tool, ToolCall } from "../clients/types";
5
+ import {
6
+ ToolOverrideRegistration,
7
+ ToolWrapperRegistration,
8
+ ToolOverrideFunction,
9
+ ToolWrapper,
10
+ createPatternMatcher,
11
+ } from "./types";
5
12
 
6
13
  export class ToolsService {
7
14
  tools = [] as Tool[];
@@ -61,7 +68,7 @@ export class ToolsService {
61
68
  const wrappers = this.findMatchingWrappers(name);
62
69
  if (wrappers.length > 0) {
63
70
  let wrappedFunction = func;
64
-
71
+
65
72
  // Apply wrappers in priority order
66
73
  for (const wrapperReg of wrappers) {
67
74
  const currentFunction = wrappedFunction;
@@ -70,7 +77,7 @@ export class ToolsService {
70
77
  return await wrapperReg.wrapper(currentFunction, args, tool);
71
78
  };
72
79
  }
73
-
80
+
74
81
  this.functions[name] = wrappedFunction;
75
82
  return;
76
83
  }
@@ -99,6 +106,122 @@ export class ToolsService {
99
106
  }
100
107
  }
101
108
 
109
+ async callTool(toolCall: ToolCall, enabledTools = this.getToolNames()) {
110
+ const functionName = toolCall.function.name;
111
+ const functionArgs = JSON.parse(
112
+ restoreEscapedNewLines(toolCall.function.arguments)
113
+ );
114
+
115
+ console.log(toolCall);
116
+
117
+ try {
118
+ // Check if tool is enabled
119
+ if (!enabledTools.includes(functionName)) {
120
+ const options = enabledTools.join(", ");
121
+ throw new Error(
122
+ `Function ${functionName} not enabled, options are ${options}`
123
+ );
124
+ }
125
+
126
+ // Check if tool definition exists
127
+ const toolDefinition = this.getTool(functionName);
128
+ if (!toolDefinition) {
129
+ throw new Error(`Tool ${functionName} not found`);
130
+ }
131
+
132
+ // Check if function implementation exists
133
+ const functionToCall = this.getFunction(functionName);
134
+ if (!functionToCall) {
135
+ const options = enabledTools.join(", ");
136
+ throw new Error(
137
+ `Function ${functionName} not found, options are ${options}`
138
+ );
139
+ }
140
+
141
+ // Prepare function arguments
142
+ const properties = toolDefinition?.function?.parameters?.properties || {};
143
+ const isPositional =
144
+ toolDefinition?.function?.parameters?.positional || false;
145
+ const fnArgs = isPositional
146
+ ? Object.keys(properties).map((p) => functionArgs[p])
147
+ : functionArgs;
148
+
149
+ console.log(
150
+ `Calling function ${functionName} with args:`,
151
+ JSON.stringify(fnArgs, null, 2)
152
+ );
153
+
154
+ // Execute the function
155
+ const functionResponse = await Promise.resolve(
156
+ isPositional ? functionToCall(...fnArgs) : functionToCall(fnArgs)
157
+ ).catch((e) => {
158
+ throw new Error("ERROR: " + e.message);
159
+ });
160
+
161
+ // Helper function to convert objects to JSON
162
+ const toJsonIfObject = (arg: any) => {
163
+ if (typeof arg === "object") {
164
+ return JSON.stringify(arg, null, 2);
165
+ }
166
+ return arg;
167
+ };
168
+
169
+ let toolMessages = [];
170
+
171
+ // Handle special case for parallel tool use
172
+ if (functionName === "multi_tool_use.parallel") {
173
+ const args = fnArgs[0] as {
174
+ recipient_name: string;
175
+ parameters: any;
176
+ }[];
177
+
178
+ toolMessages = args.map((call, index) => {
179
+ return {
180
+ tool_call_id: toolCall.id + "_" + index,
181
+ role: "tool",
182
+ name: call.recipient_name.split(".").pop(),
183
+ content: toJsonIfObject(functionResponse[index]) || "Done",
184
+ };
185
+ });
186
+ } else {
187
+ toolMessages = [
188
+ {
189
+ tool_call_id: toolCall.id,
190
+ role: "tool",
191
+ name: functionName,
192
+ content: toJsonIfObject(functionResponse) || "Done",
193
+ },
194
+ ];
195
+ }
196
+
197
+ return {
198
+ toolMessages,
199
+ toolCallId: toolCall.id,
200
+ functionName,
201
+ functionArgs,
202
+ functionResp: functionResponse,
203
+ };
204
+ } catch (error) {
205
+ console.log(error.message);
206
+ const toolMessages = [
207
+ {
208
+ tool_call_id: toolCall.id,
209
+ role: "tool",
210
+ name: "error",
211
+ content: error.message,
212
+ },
213
+ ];
214
+
215
+ return {
216
+ toolMessages,
217
+ toolCallId: toolCall.id,
218
+ functionName,
219
+ functionArgs,
220
+ functionResp: undefined,
221
+ };
222
+ }
223
+ }
224
+
102
225
  // Tool Override Methods
103
226
  registerOverride(
104
227
  pattern: string | RegExp,
@@ -119,14 +242,16 @@ export class ToolsService {
119
242
  }
120
243
 
121
244
  removeOverride(pattern: string | RegExp): void {
122
- this.overrides = this.overrides.filter(reg => reg.pattern !== pattern);
245
+ this.overrides = this.overrides.filter((reg) => reg.pattern !== pattern);
123
246
  }
124
247
 
125
248
  removeWrapper(pattern: string | RegExp): void {
126
- this.wrappers = this.wrappers.filter(reg => reg.pattern !== pattern);
249
+ this.wrappers = this.wrappers.filter((reg) => reg.pattern !== pattern);
127
250
  }
128
251
 
129
- private findMatchingOverride(toolName: string): ToolOverrideRegistration | null {
252
+ private findMatchingOverride(
253
+ toolName: string
254
+ ): ToolOverrideRegistration | null {
130
255
  for (const registration of this.overrides) {
131
256
  const matcher = createPatternMatcher(registration.pattern);
132
257
  if (matcher.matches(toolName)) {
@@ -161,4 +286,4 @@ export class ToolsService {
161
286
  }
162
287
  }
163
288
 
164
- export const Tools = new ToolsService();
289
+ export const Tools = new ToolsService();
@@ -141,62 +141,11 @@ class BaseAgent {
141
141
  return this.summaries;
142
142
  }
143
143
  async processToolMessages(toolCall) {
144
- const functionName = toolCall.function.name;
145
- const functionToCall = this.tools.getFunction(functionName);
146
- console.log(toolCall);
147
- const functionArgs = JSON.parse(this.formatAiResponse(toolCall.function.arguments));
148
- const toJsonIfObject = (arg) => {
149
- if (typeof arg === "object") {
150
- return JSON.stringify(arg, null, 2);
151
- }
152
- return arg;
153
- };
154
- const toolDefinition = this.tools.getTool(functionName);
155
- const properties = toolDefinition?.function?.parameters?.properties || {};
156
- const isPositional = toolDefinition?.function?.parameters?.positional || false;
157
- const fnArgs = isPositional
158
- ? Object.keys(properties).map((p) => functionArgs[p])
159
- : functionArgs;
160
- console.log(`Calling function ${functionName} with args:`, JSON.stringify(fnArgs, null, 2));
161
- if (!functionToCall) {
162
- const options = this.getEnabledToolNames().join(", ");
163
- const error = `Function ${functionName} not found, options are ${options}`;
164
- console.log(error);
165
- return [
166
- {
167
- tool_call_id: toolCall.id,
168
- role: "tool",
169
- name: "error",
170
- content: error,
171
- },
172
- ];
173
- }
174
- const functionResponse = await Promise.resolve(isPositional ? functionToCall(...fnArgs) : functionToCall(fnArgs)).catch((e) => "ERROR: " + e.message);
144
+ const { functionResp, toolMessages } = await this.tools.callTool(toolCall, this.getEnabledToolNames());
175
145
  this.agentEvents.emit(this.eventTypes.toolUsed, {
176
146
  toolCall,
177
- functionResponse,
147
+ functionResp,
178
148
  });
179
- let toolMessages = [];
180
- if (functionName === "multi_tool_use.parallel") {
181
- const args = fnArgs[0];
182
- toolMessages = args.map((call, index) => {
183
- return {
184
- tool_call_id: toolCall.id + "_" + index,
185
- role: "tool",
186
- name: call.recipient_name.split(".").pop(),
187
- content: toJsonIfObject(functionResponse[index]) || "Done",
188
- };
189
- });
190
- }
191
- toolMessages = [
192
- {
193
- tool_call_id: toolCall.id,
194
- role: "tool",
195
- name: functionName,
196
- content: toJsonIfObject(functionResponse) || "Done",
197
- },
198
- ];
199
- console.log(toolMessages);
200
149
  return toolMessages;
201
150
  }
202
151
  logMessages(messages) {
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/agents/base/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/agents/base/base.ts"],"names":[],"mappings":"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"}
@@ -3,24 +3,24 @@ import { MessageProcessorFunction } from "../services/MessageProcessor";
3
3
  import { ToolsService } from "../services";
4
4
  export declare class TokenCompressor {
5
5
  private storage;
6
- private maxTokens;
7
- private compressionRatio;
8
6
  private keyPrefix;
9
7
  private toolName;
8
+ private compressionThreshold;
10
9
  private characterLimit;
11
- private jsonPropertyThreshold;
10
+ private maxTokens;
12
11
  constructor(toolsService?: ToolsService);
13
12
  private estimateTokens;
14
- setMaxTokens(maxTokens: number): void;
13
+ setCompressionThreshold(threshold: number): void;
14
+ private setMaxTokens;
15
15
  private tryParseJson;
16
16
  compressStringInChunks(content: string, path?: string): string;
17
17
  compressContent(content: string, path?: string): string;
18
18
  compressJsonProperties(obj: any, path?: string): any;
19
19
  private generateKey;
20
- compressToolCall(message: Message): void;
21
20
  compressMessage(message: Message): Promise<void>;
22
21
  createProcessor(filterFn?: (msg: Message) => boolean): MessageProcessorFunction;
23
22
  retrieveString(key: string): string | null;
23
+ storeString(key: string, value: string): void;
24
24
  clearStorage(): void;
25
25
  getStorageKeys(): string[];
26
26
  getStorageSize(): number;
@@ -3,22 +3,25 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.expandTokensDefinition = exports.TokenCompressor = void 0;
4
4
  class TokenCompressor {
5
5
  storage = {};
6
- maxTokens = 4000;
7
- compressionRatio = 0.1;
8
6
  keyPrefix = "compressed_";
9
7
  toolName = exports.expandTokensDefinition.function.name;
10
- characterLimit = this.maxTokens * 4;
11
- jsonPropertyThreshold = this.maxTokens;
8
+ compressionThreshold = 4000;
9
+ characterLimit = this.compressionThreshold * 4;
10
+ maxTokens = this.compressionThreshold * 2;
12
11
  constructor(toolsService) {
13
12
  this.registerTool(toolsService);
14
13
  }
15
14
  estimateTokens(text) {
16
15
  return Math.ceil(text.length / 4);
17
16
  }
17
+ setCompressionThreshold(threshold) {
18
+ this.compressionThreshold = threshold;
19
+ this.characterLimit = threshold * 4;
20
+ }
18
21
  setMaxTokens(maxTokens) {
19
- this.maxTokens = maxTokens;
20
- this.characterLimit = maxTokens * 4;
21
- this.jsonPropertyThreshold = maxTokens;
22
+ if (maxTokens > this.maxTokens) {
23
+ this.maxTokens = maxTokens;
24
+ }
22
25
  }
23
26
  tryParseJson(content) {
24
27
  try {
@@ -29,6 +32,9 @@ class TokenCompressor {
29
32
  }
30
33
  }
31
34
  compressStringInChunks(content, path = "") {
35
+ if (path === "" && this.estimateTokens(content) <= this.maxTokens) {
36
+ return content;
37
+ }
32
38
  if (content.length <= this.characterLimit) {
33
39
  return content;
34
40
  }
@@ -52,7 +58,7 @@ class TokenCompressor {
52
58
  const nextKey = chunkKeys[i + 1];
53
59
  chunkContent += `\n\n[NEXT_CHUNK_KEY: ${nextKey}]`;
54
60
  }
55
- this.storage[key] = chunkContent;
61
+ this.storeString(key, chunkContent);
56
62
  }
57
63
  const firstKey = chunkKeys[0];
58
64
  const totalTokens = this.estimateTokens(content);
@@ -61,7 +67,10 @@ class TokenCompressor {
61
67
  }
62
68
  compressContent(content, path = "") {
63
69
  const tokens = this.estimateTokens(content);
64
- if (tokens <= this.maxTokens) {
70
+ if (path === "" && tokens <= this.maxTokens) {
71
+ return content;
72
+ }
73
+ if (tokens <= this.compressionThreshold) {
65
74
  return content;
66
75
  }
67
76
  const jsonObj = this.tryParseJson(content);
@@ -76,12 +85,12 @@ class TokenCompressor {
76
85
  return this.compressStringInChunks(content, path);
77
86
  }
78
87
  compressJsonProperties(obj, path = "") {
88
+ if (path === "" &&
89
+ this.estimateTokens(JSON.stringify(obj)) <= this.maxTokens) {
90
+ return obj;
91
+ }
79
92
  if (Array.isArray(obj)) {
80
93
  const processedItems = obj.map((item, index) => this.compressJsonProperties(item, `${path}[${index}]`));
81
- const initialTokens = this.estimateTokens(JSON.stringify(processedItems));
82
- if (initialTokens <= this.jsonPropertyThreshold * 1.3) {
83
- return processedItems;
84
- }
85
94
  const finalArray = [];
86
95
  let currentChunk = [];
87
96
  for (let i = processedItems.length - 1; i >= 0; i--) {
@@ -89,9 +98,9 @@ class TokenCompressor {
89
98
  currentChunk.unshift(item);
90
99
  const chunkString = JSON.stringify(currentChunk);
91
100
  const chunkTokens = this.estimateTokens(chunkString);
92
- if (chunkTokens > this.jsonPropertyThreshold) {
101
+ if (chunkTokens > this.compressionThreshold) {
93
102
  const key = this.generateKey();
94
- this.storage[key] = chunkString;
103
+ this.storeString(key, chunkString);
95
104
  const stub = `[COMPRESSED_JSON_ARRAY_CHUNK - ${chunkTokens} tokens, ${currentChunk.length} items]\nKey: ${key}\nPath: ${path}[${i}...${i + currentChunk.length - 1}]\nPreview: ${chunkString.substring(0, 100)}...\n[Use ${this.toolName} tool with key "${key}" to retrieve this chunk]`;
96
105
  finalArray.unshift(stub);
97
106
  currentChunk = [];
@@ -110,9 +119,9 @@ class TokenCompressor {
110
119
  }
111
120
  const objectAsString = JSON.stringify(result);
112
121
  const tokens = this.estimateTokens(objectAsString);
113
- if (tokens > this.jsonPropertyThreshold) {
122
+ if (tokens > this.compressionThreshold) {
114
123
  const key = this.generateKey();
115
- this.storage[key] = objectAsString;
124
+ this.storeString(key, objectAsString);
116
125
  return `[COMPRESSED_JSON_OBJECT - ${tokens} tokens]\nKey: ${key}\nPath: ${path}\nKeys: ${Object.keys(result).join(", ")}\nPreview: ${objectAsString.substring(0, 200)}...\n[Use ${this.toolName} tool with key "${key}" to retrieve full content]`;
117
126
  }
118
127
  return result;
@@ -131,7 +140,7 @@ class TokenCompressor {
131
140
  const tokens = this.estimateTokens(obj);
132
141
  if (tokens > this.characterLimit * 4) {
133
142
  const key = this.generateKey();
134
- this.storage[key] = obj;
143
+ this.storeString(key, obj);
135
144
  return `[COMPRESSED_JSON_PROPERTY - ${tokens} tokens]\nKey: ${key}\nPath: ${path}\nPreview: ${obj.substring(0, 200)}...\n[Use ${this.toolName} tool with key "${key}" to retrieve full content]`;
136
145
  }
137
146
  return obj;
@@ -143,22 +152,6 @@ class TokenCompressor {
143
152
  .toString(36)
144
153
  .substr(2, 9)}`;
145
154
  }
146
- compressToolCall(message) {
147
- if (message.tool_calls) {
148
- for (const toolCall of message.tool_calls) {
149
- if (toolCall.function.arguments) {
150
- const args = toolCall.function.arguments;
151
- const tokens = this.estimateTokens(args);
152
- if (tokens > this.maxTokens) {
153
- const key = this.generateKey();
154
- this.storage[key] = args;
155
- const compressed = `[COMPRESSED TOOL ARGS - ${tokens} tokens]\nKey: ${key}\nPreview: ${args.substring(0, 200)}...\n[Use ${this.toolName} tool with key "${key}" to retrieve full arguments]`;
156
- toolCall.function.arguments = compressed;
157
- }
158
- }
159
- }
160
- }
161
- }
162
155
  async compressMessage(message) {
163
156
  if (typeof message.content === "string") {
164
157
  message.content = this.compressContent(message.content);
@@ -170,7 +163,6 @@ class TokenCompressor {
170
163
  }
171
164
  }
172
165
  }
173
- this.compressToolCall(message);
174
166
  }
175
167
  createProcessor(filterFn) {
176
168
  return async (originalMessages, modifiedMessages) => {
@@ -185,6 +177,12 @@ class TokenCompressor {
185
177
  retrieveString(key) {
186
178
  return this.storage[key] || null;
187
179
  }
180
+ storeString(key, value) {
181
+ if (this.estimateTokens(value) > this.maxTokens) {
182
+ this.setMaxTokens(this.estimateTokens(value) + 1);
183
+ }
184
+ this.storage[key] = value;
185
+ }
188
186
  clearStorage() {
189
187
  this.storage = {};
190
188
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TokenCompressor.js","sourceRoot":"","sources":["../../../src/processors/TokenCompressor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TokenCompressor.js","sourceRoot":"","sources":["../../../src/processors/TokenCompressor.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Tool } from "../clients/types";
1
+ import { Tool, ToolCall } from "../clients/types";
2
2
  import { ToolOverrideFunction, ToolWrapper } from "./types";
3
3
  export declare class ToolsService {
4
4
  tools: Tool[];
@@ -19,6 +19,13 @@ export declare class ToolsService {
19
19
  addFunctions(fns: {
20
20
  [fnName: string]: (...args: any) => any;
21
21
  }): void;
22
+ callTool(toolCall: ToolCall, enabledTools?: string[]): Promise<{
23
+ toolMessages: any[];
24
+ toolCallId: string;
25
+ functionName: string;
26
+ functionArgs: any;
27
+ functionResp: any;
28
+ }>;
22
29
  registerOverride(pattern: string | RegExp, override: ToolOverrideFunction, priority?: number): void;
23
30
  registerWrapper(pattern: string | RegExp, wrapper: ToolWrapper, priority?: number): void;
24
31
  removeOverride(pattern: string | RegExp): void;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Tools = exports.ToolsService = void 0;
4
+ const utils_1 = require("../utils");
4
5
  const types_1 = require("./types");
5
6
  class ToolsService {
6
7
  tools = [];
@@ -73,6 +74,88 @@ class ToolsService {
73
74
  this.setFunction(fnName, fns[fnName]);
74
75
  }
75
76
  }
77
+ async callTool(toolCall, enabledTools = this.getToolNames()) {
78
+ const functionName = toolCall.function.name;
79
+ const functionArgs = JSON.parse((0, utils_1.restoreEscapedNewLines)(toolCall.function.arguments));
80
+ console.log(toolCall);
81
+ try {
82
+ if (!enabledTools.includes(functionName)) {
83
+ const options = enabledTools.join(", ");
84
+ throw new Error(`Function ${functionName} not enabled, options are ${options}`);
85
+ }
86
+ const toolDefinition = this.getTool(functionName);
87
+ if (!toolDefinition) {
88
+ throw new Error(`Tool ${functionName} not found`);
89
+ }
90
+ const functionToCall = this.getFunction(functionName);
91
+ if (!functionToCall) {
92
+ const options = enabledTools.join(", ");
93
+ throw new Error(`Function ${functionName} not found, options are ${options}`);
94
+ }
95
+ const properties = toolDefinition?.function?.parameters?.properties || {};
96
+ const isPositional = toolDefinition?.function?.parameters?.positional || false;
97
+ const fnArgs = isPositional
98
+ ? Object.keys(properties).map((p) => functionArgs[p])
99
+ : functionArgs;
100
+ console.log(`Calling function ${functionName} with args:`, JSON.stringify(fnArgs, null, 2));
101
+ const functionResponse = await Promise.resolve(isPositional ? functionToCall(...fnArgs) : functionToCall(fnArgs)).catch((e) => {
102
+ throw new Error("ERROR: " + e.message);
103
+ });
104
+ const toJsonIfObject = (arg) => {
105
+ if (typeof arg === "object") {
106
+ return JSON.stringify(arg, null, 2);
107
+ }
108
+ return arg;
109
+ };
110
+ let toolMessages = [];
111
+ if (functionName === "multi_tool_use.parallel") {
112
+ const args = fnArgs[0];
113
+ toolMessages = args.map((call, index) => {
114
+ return {
115
+ tool_call_id: toolCall.id + "_" + index,
116
+ role: "tool",
117
+ name: call.recipient_name.split(".").pop(),
118
+ content: toJsonIfObject(functionResponse[index]) || "Done",
119
+ };
120
+ });
121
+ }
122
+ else {
123
+ toolMessages = [
124
+ {
125
+ tool_call_id: toolCall.id,
126
+ role: "tool",
127
+ name: functionName,
128
+ content: toJsonIfObject(functionResponse) || "Done",
129
+ },
130
+ ];
131
+ }
132
+ return {
133
+ toolMessages,
134
+ toolCallId: toolCall.id,
135
+ functionName,
136
+ functionArgs,
137
+ functionResp: functionResponse,
138
+ };
139
+ }
140
+ catch (error) {
141
+ console.log(error.message);
142
+ const toolMessages = [
143
+ {
144
+ tool_call_id: toolCall.id,
145
+ role: "tool",
146
+ name: "error",
147
+ content: error.message,
148
+ },
149
+ ];
150
+ return {
151
+ toolMessages,
152
+ toolCallId: toolCall.id,
153
+ functionName,
154
+ functionArgs,
155
+ functionResp: undefined,
156
+ };
157
+ }
158
+ }
76
159
  registerOverride(pattern, override, priority = 0) {
77
160
  this.overrides.push({ pattern, override, priority });
78
161
  this.overrides.sort((a, b) => b.priority - a.priority);
@@ -82,10 +165,10 @@ class ToolsService {
82
165
  this.wrappers.sort((a, b) => b.priority - a.priority);
83
166
  }
84
167
  removeOverride(pattern) {
85
- this.overrides = this.overrides.filter(reg => reg.pattern !== pattern);
168
+ this.overrides = this.overrides.filter((reg) => reg.pattern !== pattern);
86
169
  }
87
170
  removeWrapper(pattern) {
88
- this.wrappers = this.wrappers.filter(reg => reg.pattern !== pattern);
171
+ this.wrappers = this.wrappers.filter((reg) => reg.pattern !== pattern);
89
172
  }
90
173
  findMatchingOverride(toolName) {
91
174
  for (const registration of this.overrides) {
@@ -1 +1 @@
1
- {"version":3,"file":"Tools.js","sourceRoot":"","sources":["../../../src/services/Tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Tools.js","sourceRoot":"","sources":["../../../src/services/Tools.ts"],"names":[],"mappings":"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"}