@tyvm/knowhow 0.0.48 → 0.0.49

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 (30) hide show
  1. package/package.json +1 -1
  2. package/src/agents/base/base.ts +9 -1
  3. package/src/chat/modules/AgentModule.ts +22 -3
  4. package/src/embeddings.ts +2 -4
  5. package/src/processors/CustomVariables.ts +48 -70
  6. package/src/processors/TokenCompressor.ts +5 -4
  7. package/src/processors/ToolResponseCache.ts +6 -9
  8. package/tests/processors/CustomVariables.test.ts +110 -55
  9. package/tests/processors/TokenCompressor.test.ts +48 -49
  10. package/tests/processors/ToolResponseCache.test.ts +309 -261
  11. package/ts_build/package.json +1 -1
  12. package/ts_build/src/agents/base/base.d.ts +5 -0
  13. package/ts_build/src/agents/base/base.js +3 -1
  14. package/ts_build/src/agents/base/base.js.map +1 -1
  15. package/ts_build/src/chat/modules/AgentModule.js +9 -1
  16. package/ts_build/src/chat/modules/AgentModule.js.map +1 -1
  17. package/ts_build/src/embeddings.js +2 -4
  18. package/ts_build/src/embeddings.js.map +1 -1
  19. package/ts_build/src/processors/CustomVariables.js +36 -47
  20. package/ts_build/src/processors/CustomVariables.js.map +1 -1
  21. package/ts_build/src/processors/TokenCompressor.js +2 -2
  22. package/ts_build/src/processors/TokenCompressor.js.map +1 -1
  23. package/ts_build/src/processors/ToolResponseCache.js +6 -8
  24. package/ts_build/src/processors/ToolResponseCache.js.map +1 -1
  25. package/ts_build/tests/processors/CustomVariables.test.js +41 -38
  26. package/ts_build/tests/processors/CustomVariables.test.js.map +1 -1
  27. package/ts_build/tests/processors/TokenCompressor.test.js +4 -5
  28. package/ts_build/tests/processors/TokenCompressor.test.js.map +1 -1
  29. package/ts_build/tests/processors/ToolResponseCache.test.js +89 -78
  30. package/ts_build/tests/processors/ToolResponseCache.test.js.map +1 -1
@@ -2,7 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const ToolResponseCache_1 = require("../../src/processors/ToolResponseCache");
4
4
  jest.mock("node-jq", () => ({
5
- run: jest.fn().mockImplementation(async (query, data, options) => {
5
+ run: jest
6
+ .fn()
7
+ .mockImplementation(async (query, data, options) => {
6
8
  if (query === ".test") {
7
9
  if (data && data.test !== undefined) {
8
10
  return JSON.stringify(data.test);
@@ -49,15 +51,15 @@ jest.mock("node-jq", () => ({
49
51
  }
50
52
  if (query === "map(.value)") {
51
53
  if (Array.isArray(data)) {
52
- const values = data.map(item => item.value);
54
+ const values = data.map((item) => item.value);
53
55
  return JSON.stringify(values);
54
56
  }
55
57
  }
56
58
  if (query === "map({identifier: .id, content: .value})") {
57
59
  if (Array.isArray(data)) {
58
- const transformed = data.map(item => ({
60
+ const transformed = data.map((item) => ({
59
61
  identifier: item.id,
60
- content: item.value
62
+ content: item.value,
61
63
  }));
62
64
  return JSON.stringify(transformed);
63
65
  }
@@ -77,8 +79,12 @@ jest.mock("node-jq", () => ({
77
79
  throw new Error("Invalid JQ query syntax");
78
80
  }
79
81
  if (query === ".level1.level2.level3.level4.level5.deepValue") {
80
- if (data && data.level1 && data.level1.level2 && data.level1.level2.level3 &&
81
- data.level1.level2.level3.level4 && data.level1.level2.level3.level4.level5) {
82
+ if (data &&
83
+ data.level1 &&
84
+ data.level1.level2 &&
85
+ data.level1.level2.level3 &&
86
+ data.level1.level2.level3.level4 &&
87
+ data.level1.level2.level3.level4.level5) {
82
88
  return JSON.stringify(data.level1.level2.level3.level4.level5.deepValue);
83
89
  }
84
90
  }
@@ -91,7 +97,7 @@ jest.mock("node-jq", () => ({
91
97
  catch (error) {
92
98
  throw new Error(`JQ query failed: ${error}`);
93
99
  }
94
- })
100
+ }),
95
101
  }));
96
102
  const mockJq = require("node-jq");
97
103
  describe("ToolResponseCache", () => {
@@ -100,7 +106,7 @@ describe("ToolResponseCache", () => {
100
106
  beforeEach(() => {
101
107
  jest.clearAllMocks();
102
108
  mockToolsService = {
103
- addTool: jest.fn(),
109
+ addTools: jest.fn(),
104
110
  addFunctions: jest.fn(),
105
111
  getTool: jest.fn().mockReturnValue(undefined),
106
112
  callTool: jest.fn(),
@@ -111,15 +117,17 @@ describe("ToolResponseCache", () => {
111
117
  it("should create an instance and register tool with ToolsService", () => {
112
118
  expect(cache).toBeDefined();
113
119
  expect(cache).toBeInstanceOf(ToolResponseCache_1.ToolResponseCache);
114
- expect(mockToolsService.addTool).toHaveBeenCalledWith(ToolResponseCache_1.jqToolResponseDefinition);
120
+ expect(mockToolsService.addTools).toHaveBeenCalledWith([
121
+ ToolResponseCache_1.jqToolResponseDefinition,
122
+ ]);
115
123
  expect(mockToolsService.addFunctions).toHaveBeenCalledWith({
116
124
  jqToolResponse: expect.any(Function),
117
125
  });
118
126
  });
119
- it("should not register tool if it already exists", () => {
127
+ it("should overwrite tool if it already exists", () => {
120
128
  mockToolsService.getTool.mockReturnValue(ToolResponseCache_1.jqToolResponseDefinition);
121
129
  const newCache = new ToolResponseCache_1.ToolResponseCache(mockToolsService);
122
- expect(mockToolsService.addTool).toHaveBeenCalledTimes(1);
130
+ expect(mockToolsService.addTools).toHaveBeenCalledTimes(2);
123
131
  });
124
132
  });
125
133
  describe("createProcessor", () => {
@@ -133,8 +141,8 @@ describe("ToolResponseCache", () => {
133
141
  {
134
142
  role: "tool",
135
143
  tool_call_id: "call_123",
136
- content: '{"data": [{"name": "test", "value": 42}]}'
137
- }
144
+ content: '{"data": [{"name": "test", "value": 42}]}',
145
+ },
138
146
  ];
139
147
  await processor(messages, messages);
140
148
  expect(cache.getStorageKeys()).toContain("call_123");
@@ -145,12 +153,12 @@ describe("ToolResponseCache", () => {
145
153
  const messages = [
146
154
  {
147
155
  role: "user",
148
- content: "This is a user message"
156
+ content: "This is a user message",
149
157
  },
150
158
  {
151
159
  role: "assistant",
152
- content: "This is an assistant message"
153
- }
160
+ content: "This is an assistant message",
161
+ },
154
162
  ];
155
163
  await processor(messages, messages);
156
164
  expect(cache.getStorageSize()).toBe(0);
@@ -160,8 +168,8 @@ describe("ToolResponseCache", () => {
160
168
  const messages = [
161
169
  {
162
170
  role: "tool",
163
- content: "Tool response without call ID"
164
- }
171
+ content: "Tool response without call ID",
172
+ },
165
173
  ];
166
174
  await processor(messages, messages);
167
175
  expect(cache.getStorageSize()).toBe(0);
@@ -172,18 +180,18 @@ describe("ToolResponseCache", () => {
172
180
  {
173
181
  role: "tool",
174
182
  tool_call_id: "call_123",
175
- content: null
183
+ content: null,
176
184
  },
177
185
  {
178
186
  role: "tool",
179
187
  tool_call_id: "call_456",
180
- content: undefined
188
+ content: undefined,
181
189
  },
182
190
  {
183
191
  role: "tool",
184
192
  tool_call_id: "call_789",
185
- content: 42
186
- }
193
+ content: 42,
194
+ },
187
195
  ];
188
196
  await processor(messages, messages);
189
197
  expect(cache.getStorageSize()).toBe(0);
@@ -195,13 +203,13 @@ describe("ToolResponseCache", () => {
195
203
  {
196
204
  role: "tool",
197
205
  tool_call_id: "call_allowed",
198
- content: "Allowed content"
206
+ content: "Allowed content",
199
207
  },
200
208
  {
201
209
  role: "tool",
202
210
  tool_call_id: "call_blocked",
203
- content: "Blocked content"
204
- }
211
+ content: "Blocked content",
212
+ },
205
213
  ];
206
214
  await processor(messages, messages);
207
215
  expect(cache.getStorageKeys()).toContain("call_allowed");
@@ -227,7 +235,7 @@ describe("ToolResponseCache", () => {
227
235
  cache.storeToolResponse('{"name": "test", "data": [1, 2, 3]}', "call_123");
228
236
  cache.storeToolResponse('[{"id": 1, "value": "a"}, {"id": 2, "value": "b"}]', "call_456");
229
237
  cache.storeToolResponse('{"nested": "{\\"inner\\": \\"value\\"}"}', "call_789");
230
- cache.storeToolResponse('invalid json string', "call_invalid");
238
+ cache.storeToolResponse("invalid json string", "call_invalid");
231
239
  });
232
240
  it("should execute simple JQ queries successfully", async () => {
233
241
  const result = await cache.queryToolResponse("call_123", ".name");
@@ -238,15 +246,15 @@ describe("ToolResponseCache", () => {
238
246
  expect(result).toBe("1\n2\n3");
239
247
  });
240
248
  it("should execute complex JQ queries", async () => {
241
- const result = await cache.queryToolResponse("call_456", 'map(.value)');
249
+ const result = await cache.queryToolResponse("call_456", "map(.value)");
242
250
  expect(result).toBe('["a","b"]');
243
251
  });
244
252
  it("should handle object transformation queries", async () => {
245
- const result = await cache.queryToolResponse("call_456", 'map({identifier: .id, content: .value})');
253
+ const result = await cache.queryToolResponse("call_456", "map({identifier: .id, content: .value})");
246
254
  const parsed = JSON.parse(result);
247
255
  expect(parsed).toEqual([
248
256
  { identifier: 1, content: "a" },
249
- { identifier: 2, content: "b" }
257
+ { identifier: 2, content: "b" },
250
258
  ]);
251
259
  });
252
260
  it("should return error for missing tool call ID", async () => {
@@ -262,20 +270,20 @@ describe("ToolResponseCache", () => {
262
270
  it("should handle non-JSON data with helpful error", async () => {
263
271
  const result = await cache.queryToolResponse("call_invalid", ".test");
264
272
  expect(result).toContain("Error: Tool response data is not valid JSON");
265
- expect(result).toContain("toolCallId \"call_invalid\"");
273
+ expect(result).toContain('toolCallId "call_invalid"');
266
274
  });
267
275
  it("should return formatted JSON for complex results", async () => {
268
276
  const result = await cache.queryToolResponse("call_456", ".");
269
277
  expect(result).toContain("[\n");
270
278
  expect(result).toContain(" {");
271
- expect(result).toContain(" \"id\":");
279
+ expect(result).toContain(' "id":');
272
280
  });
273
281
  it("should handle nested JSON strings parsing", async () => {
274
282
  const result = await cache.queryToolResponse("call_789", ".nested.inner");
275
283
  expect(result).toBe('"value"');
276
284
  });
277
285
  it("should handle empty query results", async () => {
278
- const result = await cache.queryToolResponse("call_456", 'map(select(.id > 10))');
286
+ const result = await cache.queryToolResponse("call_456", "map(select(.id > 10))");
279
287
  expect(result).toBe("[]");
280
288
  });
281
289
  });
@@ -289,32 +297,29 @@ describe("ToolResponseCache", () => {
289
297
  const input = '{"outer": "{\\"inner\\": \\"value\\"}"}';
290
298
  const result = cache.parseNestedJsonStrings(input);
291
299
  expect(result).toEqual({
292
- outer: { inner: "value" }
300
+ outer: { inner: "value" },
293
301
  });
294
302
  });
295
303
  it("should handle arrays with JSON strings", () => {
296
304
  const input = ['{"test": "value1"}', '{"test": "value2"}'];
297
305
  const result = cache.parseNestedJsonStrings(input);
298
- expect(result).toEqual([
299
- { test: "value1" },
300
- { test: "value2" }
301
- ]);
306
+ expect(result).toEqual([{ test: "value1" }, { test: "value2" }]);
302
307
  });
303
308
  it("should handle mixed nested structures", () => {
304
309
  const input = {
305
310
  stringField: '{"nested": "value"}',
306
311
  arrayField: ['{"item": 1}', '{"item": 2}'],
307
312
  objectField: {
308
- deepString: '{"deep": "nested"}'
309
- }
313
+ deepString: '{"deep": "nested"}',
314
+ },
310
315
  };
311
316
  const result = cache.parseNestedJsonStrings(input);
312
317
  expect(result).toEqual({
313
318
  stringField: { nested: "value" },
314
319
  arrayField: [{ item: 1 }, { item: 2 }],
315
320
  objectField: {
316
- deepString: { deep: "nested" }
317
- }
321
+ deepString: { deep: "nested" },
322
+ },
318
323
  });
319
324
  });
320
325
  it("should leave non-JSON strings unchanged", () => {
@@ -322,14 +327,14 @@ describe("ToolResponseCache", () => {
322
327
  jsonString: '{"test": "value"}',
323
328
  regularString: "just a string",
324
329
  number: 42,
325
- boolean: true
330
+ boolean: true,
326
331
  };
327
332
  const result = cache.parseNestedJsonStrings(input);
328
333
  expect(result).toEqual({
329
334
  jsonString: { test: "value" },
330
335
  regularString: "just a string",
331
336
  number: 42,
332
- boolean: true
337
+ boolean: true,
333
338
  });
334
339
  });
335
340
  it("should handle malformed JSON strings gracefully", () => {
@@ -396,30 +401,30 @@ describe("ToolResponseCache", () => {
396
401
  beforeEach(() => {
397
402
  mockToolsService = {
398
403
  getTool: jest.fn(),
399
- addTool: jest.fn(),
400
- addFunctions: jest.fn()
404
+ addTools: jest.fn(),
405
+ addFunctions: jest.fn(),
401
406
  };
402
407
  });
403
408
  it("should register tool when not already present", () => {
404
409
  mockToolsService.getTool.mockReturnValue(null);
405
410
  cache.registerTool(mockToolsService);
406
- expect(mockToolsService.getTool).toHaveBeenCalledWith("jqToolResponse");
407
- expect(mockToolsService.addTool).toHaveBeenCalledWith(expect.objectContaining({
408
- type: "function",
409
- function: expect.objectContaining({
410
- name: "jqToolResponse"
411
- })
412
- }));
411
+ expect(mockToolsService.addTools).toHaveBeenCalledWith([
412
+ {
413
+ type: "function",
414
+ function: expect.objectContaining({
415
+ name: "jqToolResponse",
416
+ }),
417
+ },
418
+ ]);
413
419
  expect(mockToolsService.addFunctions).toHaveBeenCalledWith({
414
- jqToolResponse: expect.any(Function)
420
+ jqToolResponse: expect.any(Function),
415
421
  });
416
422
  });
417
- it("should not register tool when already present", () => {
423
+ it("should overwrite tool when already present", () => {
418
424
  mockToolsService.getTool.mockReturnValue({});
419
425
  cache.registerTool(mockToolsService);
420
- expect(mockToolsService.getTool).toHaveBeenCalledWith("jqToolResponse");
421
- expect(mockToolsService.addTool).not.toHaveBeenCalled();
422
- expect(mockToolsService.addFunctions).not.toHaveBeenCalled();
426
+ expect(mockToolsService.addTools).toHaveBeenCalled();
427
+ expect(mockToolsService.addFunctions).toHaveBeenCalled();
423
428
  });
424
429
  it("should register function that calls queryToolResponse", async () => {
425
430
  mockToolsService.getTool.mockReturnValue(null);
@@ -434,11 +439,13 @@ describe("ToolResponseCache", () => {
434
439
  describe("Edge Cases and Error Handling", () => {
435
440
  it("should handle very large JSON objects", async () => {
436
441
  const largeObject = {
437
- data: Array(1000).fill(0).map((_, i) => ({
442
+ data: Array(1000)
443
+ .fill(0)
444
+ .map((_, i) => ({
438
445
  id: i,
439
446
  name: `item_${i}`,
440
- description: `This is item number ${i} with some additional text to make it larger`
441
- }))
447
+ description: `This is item number ${i} with some additional text to make it larger`,
448
+ })),
442
449
  };
443
450
  const largeContent = JSON.stringify(largeObject);
444
451
  cache.storeToolResponse(largeContent, "call_large");
@@ -449,7 +456,7 @@ describe("ToolResponseCache", () => {
449
456
  const specialContent = JSON.stringify({
450
457
  unicode: "Hello 世界 🌍",
451
458
  escaped: "Line 1\nLine 2\tTabbed",
452
- quotes: 'He said "Hello" to me'
459
+ quotes: 'He said "Hello" to me',
453
460
  });
454
461
  cache.storeToolResponse(specialContent, "call_special");
455
462
  const result = await cache.queryToolResponse("call_special", ".unicode");
@@ -460,7 +467,7 @@ describe("ToolResponseCache", () => {
460
467
  empty: "",
461
468
  nullValue: null,
462
469
  zero: 0,
463
- false: false
470
+ false: false,
464
471
  });
465
472
  cache.storeToolResponse(content, "call_empty");
466
473
  const emptyResult = await cache.queryToolResponse("call_empty", ".empty");
@@ -469,10 +476,14 @@ describe("ToolResponseCache", () => {
469
476
  expect(nullResult).toBe("null");
470
477
  });
471
478
  it("should handle concurrent storage operations", async () => {
472
- const promises = Array(10).fill(0).map((_, i) => Promise.resolve(cache.storeToolResponse(`{"id": ${i}}`, `call_${i}`)));
479
+ const promises = Array(10)
480
+ .fill(0)
481
+ .map((_, i) => Promise.resolve(cache.storeToolResponse(`{"id": ${i}}`, `call_${i}`)));
473
482
  await Promise.all(promises);
474
483
  expect(cache.getStorageSize()).toBe(10);
475
- const results = await Promise.all(Array(10).fill(0).map((_, i) => cache.queryToolResponse(`call_${i}`, ".id")));
484
+ const results = await Promise.all(Array(10)
485
+ .fill(0)
486
+ .map((_, i) => cache.queryToolResponse(`call_${i}`, ".id")));
476
487
  results.forEach((result, i) => {
477
488
  expect(result).toBe(i.toString());
478
489
  });
@@ -484,12 +495,12 @@ describe("ToolResponseCache", () => {
484
495
  level3: {
485
496
  level4: {
486
497
  level5: {
487
- deepValue: "found it!"
488
- }
489
- }
490
- }
491
- }
492
- }
498
+ deepValue: "found it!",
499
+ },
500
+ },
501
+ },
502
+ },
503
+ },
493
504
  };
494
505
  cache.storeToolResponse(JSON.stringify(deepObject), "call_deep");
495
506
  const result = await cache.queryToolResponse("call_deep", ".level1.level2.level3.level4.level5.deepValue");
@@ -502,7 +513,7 @@ describe("ToolResponseCache", () => {
502
513
  const messages = [
503
514
  {
504
515
  role: "user",
505
- content: "Test request"
516
+ content: "Test request",
506
517
  },
507
518
  {
508
519
  role: "assistant",
@@ -513,19 +524,19 @@ describe("ToolResponseCache", () => {
513
524
  type: "function",
514
525
  function: {
515
526
  name: "testTool",
516
- arguments: "{}"
517
- }
518
- }
519
- ]
527
+ arguments: "{}",
528
+ },
529
+ },
530
+ ],
520
531
  },
521
532
  {
522
533
  role: "tool",
523
534
  tool_call_id: "call_123",
524
535
  content: JSON.stringify({
525
536
  result: "success",
526
- data: [1, 2, 3, 4, 5]
527
- })
528
- }
537
+ data: [1, 2, 3, 4, 5],
538
+ }),
539
+ },
529
540
  ];
530
541
  await processor(messages, messages);
531
542
  expect(cache.getStorageSize()).toBe(1);
@@ -1 +1 @@
1
- {"version":3,"file":"ToolResponseCache.test.js","sourceRoot":"","sources":["../../../tests/processors/ToolResponseCache.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ToolResponseCache.test.js","sourceRoot":"","sources":["../../../tests/processors/ToolResponseCache.test.ts"],"names":[],"mappings":"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"}