@tyvm/knowhow 0.0.56 → 0.0.59

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 (190) hide show
  1. package/package.json +3 -3
  2. package/src/agents/base/base.ts +87 -43
  3. package/src/agents/tools/execCommand.ts +17 -14
  4. package/src/agents/tools/googleSearch.ts +1 -0
  5. package/src/agents/tools/index.ts +1 -0
  6. package/src/agents/tools/lazy/definitions.ts +63 -0
  7. package/src/agents/tools/lazy/disableTools.ts +16 -0
  8. package/src/agents/tools/lazy/enableTools.ts +16 -0
  9. package/src/agents/tools/lazy/index.ts +3 -0
  10. package/src/agents/tools/lazy/listAvailableTools.ts +14 -0
  11. package/src/agents/tools/list.ts +2 -0
  12. package/src/agents/tools/mcp/connectMcpServer.ts +40 -0
  13. package/src/agents/tools/mcp/definitions.ts +67 -0
  14. package/src/agents/tools/mcp/disconnectMcpServer.ts +40 -0
  15. package/src/agents/tools/mcp/index.ts +3 -0
  16. package/src/agents/tools/mcp/listAvailableMcpServers.ts +28 -0
  17. package/src/agents/tools/writeFile.ts +4 -1
  18. package/src/chat/CliChatService.ts +8 -3
  19. package/src/chat/modules/AgentModule.ts +74 -296
  20. package/src/cli.ts +33 -10
  21. package/src/plugins/GitPlugin.ts +30 -24
  22. package/src/plugins/language.ts +95 -18
  23. package/src/processors/ToolResponseCache.ts +98 -79
  24. package/src/processors/tools/grepToolResponse.ts +99 -0
  25. package/src/processors/tools/index.ts +21 -0
  26. package/src/processors/tools/jqToolResponse.ts +124 -0
  27. package/src/processors/tools/listStoredToolResponses.ts +83 -0
  28. package/src/processors/tools/tailToolResponse.ts +75 -0
  29. package/src/services/AgentService.ts +1 -1
  30. package/src/services/AgentSynchronization.ts +291 -0
  31. package/src/services/DockerService.ts +37 -1
  32. package/src/services/EventService.ts +8 -2
  33. package/src/services/KnowhowClient.ts +141 -1
  34. package/src/services/LazyToolsService.ts +146 -0
  35. package/src/services/Mcp.ts +171 -4
  36. package/src/services/SessionManager.ts +287 -0
  37. package/src/services/TaskRegistry.ts +108 -0
  38. package/src/services/Tools.ts +2 -0
  39. package/src/services/index.ts +7 -0
  40. package/src/services/script-execution/ScriptExecutor.ts +7 -5
  41. package/src/types.ts +1 -0
  42. package/src/utils/InputQueueManager.ts +91 -57
  43. package/src/utils/errors.ts +0 -0
  44. package/src/utils/index.ts +11 -0
  45. package/src/worker.ts +12 -0
  46. package/tests/compressor/bigstring.test.ts +100 -0
  47. package/tests/compressor/bigstring.txt +1 -0
  48. package/tests/plugins/language/languagePlugin-content-triggers.test.ts +13 -5
  49. package/tests/plugins/language/languagePlugin-integration.test.ts +22 -7
  50. package/tests/plugins/language/languagePlugin.test.ts +11 -4
  51. package/tests/processors/ToolResponseCache.test.ts +128 -0
  52. package/tests/unit/InputQueueManager.test.ts +174 -0
  53. package/ts_build/package.json +3 -3
  54. package/ts_build/src/agents/base/base.d.ts +10 -0
  55. package/ts_build/src/agents/base/base.js +66 -34
  56. package/ts_build/src/agents/base/base.js.map +1 -1
  57. package/ts_build/src/agents/tools/execCommand.js +1 -9
  58. package/ts_build/src/agents/tools/execCommand.js.map +1 -1
  59. package/ts_build/src/agents/tools/github/index.d.ts +1 -1
  60. package/ts_build/src/agents/tools/googleSearch.d.ts +1 -0
  61. package/ts_build/src/agents/tools/googleSearch.js +1 -0
  62. package/ts_build/src/agents/tools/googleSearch.js.map +1 -1
  63. package/ts_build/src/agents/tools/index.d.ts +1 -0
  64. package/ts_build/src/agents/tools/index.js +1 -0
  65. package/ts_build/src/agents/tools/index.js.map +1 -1
  66. package/ts_build/src/agents/tools/lazy/definitions.d.ts +5 -0
  67. package/ts_build/src/agents/tools/lazy/definitions.js +58 -0
  68. package/ts_build/src/agents/tools/lazy/definitions.js.map +1 -0
  69. package/ts_build/src/agents/tools/lazy/disableTools.d.ts +9 -0
  70. package/ts_build/src/agents/tools/lazy/disableTools.js +15 -0
  71. package/ts_build/src/agents/tools/lazy/disableTools.js.map +1 -0
  72. package/ts_build/src/agents/tools/lazy/enableTools.d.ts +9 -0
  73. package/ts_build/src/agents/tools/lazy/enableTools.js +15 -0
  74. package/ts_build/src/agents/tools/lazy/enableTools.js.map +1 -0
  75. package/ts_build/src/agents/tools/lazy/index.d.ts +3 -0
  76. package/ts_build/src/agents/tools/lazy/index.js +20 -0
  77. package/ts_build/src/agents/tools/lazy/index.js.map +1 -0
  78. package/ts_build/src/agents/tools/lazy/listAvailableTools.d.ts +11 -0
  79. package/ts_build/src/agents/tools/lazy/listAvailableTools.js +15 -0
  80. package/ts_build/src/agents/tools/lazy/listAvailableTools.js.map +1 -0
  81. package/ts_build/src/agents/tools/list.js +2 -0
  82. package/ts_build/src/agents/tools/list.js.map +1 -1
  83. package/ts_build/src/agents/tools/mcp/connectMcpServer.d.ts +5 -0
  84. package/ts_build/src/agents/tools/mcp/connectMcpServer.js +31 -0
  85. package/ts_build/src/agents/tools/mcp/connectMcpServer.js.map +1 -0
  86. package/ts_build/src/agents/tools/mcp/definitions.d.ts +2 -0
  87. package/ts_build/src/agents/tools/mcp/definitions.js +62 -0
  88. package/ts_build/src/agents/tools/mcp/definitions.js.map +1 -0
  89. package/ts_build/src/agents/tools/mcp/disconnectMcpServer.d.ts +5 -0
  90. package/ts_build/src/agents/tools/mcp/disconnectMcpServer.js +31 -0
  91. package/ts_build/src/agents/tools/mcp/disconnectMcpServer.js.map +1 -0
  92. package/ts_build/src/agents/tools/mcp/index.d.ts +3 -0
  93. package/ts_build/src/agents/tools/mcp/index.js +10 -0
  94. package/ts_build/src/agents/tools/mcp/index.js.map +1 -0
  95. package/ts_build/src/agents/tools/mcp/listAvailableMcpServers.d.ts +14 -0
  96. package/ts_build/src/agents/tools/mcp/listAvailableMcpServers.js +23 -0
  97. package/ts_build/src/agents/tools/mcp/listAvailableMcpServers.js.map +1 -0
  98. package/ts_build/src/agents/tools/writeFile.js +4 -1
  99. package/ts_build/src/agents/tools/writeFile.js.map +1 -1
  100. package/ts_build/src/chat/CliChatService.js +3 -1
  101. package/ts_build/src/chat/CliChatService.js.map +1 -1
  102. package/ts_build/src/chat/modules/AgentModule.d.ts +4 -3
  103. package/ts_build/src/chat/modules/AgentModule.js +71 -265
  104. package/ts_build/src/chat/modules/AgentModule.js.map +1 -1
  105. package/ts_build/src/cli.d.ts +1 -1
  106. package/ts_build/src/cli.js +17 -4
  107. package/ts_build/src/cli.js.map +1 -1
  108. package/ts_build/src/plugins/GitPlugin.d.ts +1 -0
  109. package/ts_build/src/plugins/GitPlugin.js +26 -19
  110. package/ts_build/src/plugins/GitPlugin.js.map +1 -1
  111. package/ts_build/src/plugins/language.d.ts +3 -0
  112. package/ts_build/src/plugins/language.js +55 -13
  113. package/ts_build/src/plugins/language.js.map +1 -1
  114. package/ts_build/src/processors/ToolResponseCache.d.ts +7 -4
  115. package/ts_build/src/processors/ToolResponseCache.js +47 -88
  116. package/ts_build/src/processors/ToolResponseCache.js.map +1 -1
  117. package/ts_build/src/processors/tools/grepToolResponse.d.ts +10 -0
  118. package/ts_build/src/processors/tools/grepToolResponse.js +71 -0
  119. package/ts_build/src/processors/tools/grepToolResponse.js.map +1 -0
  120. package/ts_build/src/processors/tools/index.d.ts +4 -0
  121. package/ts_build/src/processors/tools/index.js +16 -0
  122. package/ts_build/src/processors/tools/index.js.map +1 -0
  123. package/ts_build/src/processors/tools/jqToolResponse.d.ts +3 -0
  124. package/ts_build/src/processors/tools/jqToolResponse.js +115 -0
  125. package/ts_build/src/processors/tools/jqToolResponse.js.map +1 -0
  126. package/ts_build/src/processors/tools/listStoredToolResponses.d.ts +21 -0
  127. package/ts_build/src/processors/tools/listStoredToolResponses.js +51 -0
  128. package/ts_build/src/processors/tools/listStoredToolResponses.js.map +1 -0
  129. package/ts_build/src/processors/tools/tailToolResponse.d.ts +6 -0
  130. package/ts_build/src/processors/tools/tailToolResponse.js +55 -0
  131. package/ts_build/src/processors/tools/tailToolResponse.js.map +1 -0
  132. package/ts_build/src/services/AgentService.d.ts +1 -1
  133. package/ts_build/src/services/AgentSynchronization.d.ts +27 -0
  134. package/ts_build/src/services/AgentSynchronization.js +168 -0
  135. package/ts_build/src/services/AgentSynchronization.js.map +1 -0
  136. package/ts_build/src/services/DockerService.d.ts +2 -0
  137. package/ts_build/src/services/DockerService.js +21 -1
  138. package/ts_build/src/services/DockerService.js.map +1 -1
  139. package/ts_build/src/services/EventService.d.ts +5 -0
  140. package/ts_build/src/services/EventService.js +7 -2
  141. package/ts_build/src/services/EventService.js.map +1 -1
  142. package/ts_build/src/services/KnowhowClient.d.ts +41 -1
  143. package/ts_build/src/services/KnowhowClient.js +42 -0
  144. package/ts_build/src/services/KnowhowClient.js.map +1 -1
  145. package/ts_build/src/services/LazyToolsService.d.ts +29 -0
  146. package/ts_build/src/services/LazyToolsService.js +96 -0
  147. package/ts_build/src/services/LazyToolsService.js.map +1 -0
  148. package/ts_build/src/services/Mcp.d.ts +18 -1
  149. package/ts_build/src/services/Mcp.js +119 -4
  150. package/ts_build/src/services/Mcp.js.map +1 -1
  151. package/ts_build/src/services/SessionManager.d.ts +15 -0
  152. package/ts_build/src/services/SessionManager.js +220 -0
  153. package/ts_build/src/services/SessionManager.js.map +1 -0
  154. package/ts_build/src/services/TaskRegistry.d.ts +15 -0
  155. package/ts_build/src/services/TaskRegistry.js +58 -0
  156. package/ts_build/src/services/TaskRegistry.js.map +1 -0
  157. package/ts_build/src/services/Tools.d.ts +2 -0
  158. package/ts_build/src/services/Tools.js.map +1 -1
  159. package/ts_build/src/services/index.d.ts +4 -0
  160. package/ts_build/src/services/index.js +4 -0
  161. package/ts_build/src/services/index.js.map +1 -1
  162. package/ts_build/src/services/script-execution/ScriptExecutor.js +7 -5
  163. package/ts_build/src/services/script-execution/ScriptExecutor.js.map +1 -1
  164. package/ts_build/src/types.d.ts +1 -0
  165. package/ts_build/src/types.js.map +1 -1
  166. package/ts_build/src/utils/InputQueueManager.d.ts +9 -2
  167. package/ts_build/src/utils/InputQueueManager.js +54 -40
  168. package/ts_build/src/utils/InputQueueManager.js.map +1 -1
  169. package/ts_build/src/utils/errors.d.ts +0 -0
  170. package/ts_build/src/utils/errors.js +1 -0
  171. package/ts_build/src/utils/errors.js.map +1 -0
  172. package/ts_build/src/utils/index.d.ts +1 -0
  173. package/ts_build/src/utils/index.js +5 -1
  174. package/ts_build/src/utils/index.js.map +1 -1
  175. package/ts_build/src/worker.js +8 -0
  176. package/ts_build/src/worker.js.map +1 -1
  177. package/ts_build/tests/compressor/bigstring.test.d.ts +1 -0
  178. package/ts_build/tests/compressor/bigstring.test.js +66 -0
  179. package/ts_build/tests/compressor/bigstring.test.js.map +1 -0
  180. package/ts_build/tests/plugins/language/languagePlugin-content-triggers.test.js +6 -5
  181. package/ts_build/tests/plugins/language/languagePlugin-content-triggers.test.js.map +1 -1
  182. package/ts_build/tests/plugins/language/languagePlugin-integration.test.js +9 -7
  183. package/ts_build/tests/plugins/language/languagePlugin-integration.test.js.map +1 -1
  184. package/ts_build/tests/plugins/language/languagePlugin.test.js +7 -4
  185. package/ts_build/tests/plugins/language/languagePlugin.test.js.map +1 -1
  186. package/ts_build/tests/processors/ToolResponseCache.test.js +107 -0
  187. package/ts_build/tests/processors/ToolResponseCache.test.js.map +1 -1
  188. package/ts_build/tests/unit/InputQueueManager.test.d.ts +1 -0
  189. package/ts_build/tests/unit/InputQueueManager.test.js +104 -0
  190. package/ts_build/tests/unit/InputQueueManager.test.js.map +1 -0
@@ -1,34 +1,15 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.jqToolResponseDefinition = exports.ToolResponseCache = void 0;
27
- const jq = __importStar(require("node-jq"));
3
+ exports.listStoredToolResponsesDefinition = exports.tailToolResponseDefinition = exports.grepToolResponseDefinition = exports.jqToolResponseDefinition = exports.ToolResponseCache = void 0;
4
+ const tools_1 = require("./tools");
5
+ Object.defineProperty(exports, "jqToolResponseDefinition", { enumerable: true, get: function () { return tools_1.jqToolResponseDefinition; } });
6
+ Object.defineProperty(exports, "grepToolResponseDefinition", { enumerable: true, get: function () { return tools_1.grepToolResponseDefinition; } });
7
+ Object.defineProperty(exports, "tailToolResponseDefinition", { enumerable: true, get: function () { return tools_1.tailToolResponseDefinition; } });
8
+ Object.defineProperty(exports, "listStoredToolResponsesDefinition", { enumerable: true, get: function () { return tools_1.listStoredToolResponsesDefinition; } });
28
9
  class ToolResponseCache {
29
10
  storage = {};
30
11
  metadataStorage = {};
31
- toolName = exports.jqToolResponseDefinition.function.name;
12
+ toolNameMap = {};
32
13
  constructor(toolsService) {
33
14
  this.registerTool(toolsService);
34
15
  }
@@ -60,13 +41,19 @@ class ToolResponseCache {
60
41
  }
61
42
  return obj;
62
43
  }
63
- storeToolResponse(content, toolCallId) {
44
+ storeToolResponse(content, toolCallId, toolName) {
45
+ if (this.storage[toolCallId]) {
46
+ return;
47
+ }
64
48
  this.storage[toolCallId] = content;
65
49
  this.metadataStorage[toolCallId] = {
66
50
  toolCallId,
67
51
  originalLength: content.length,
68
52
  storedAt: Date.now(),
69
53
  };
54
+ if (toolName) {
55
+ this.toolNameMap[toolCallId] = toolName;
56
+ }
70
57
  }
71
58
  async processMessage(message) {
72
59
  if (message.role !== "tool" ||
@@ -74,11 +61,11 @@ class ToolResponseCache {
74
61
  typeof message.content !== "string") {
75
62
  return;
76
63
  }
77
- this.storeToolResponse(message.content, message.tool_call_id);
64
+ this.storeToolResponse(message.content, message.tool_call_id, message.name);
78
65
  }
79
66
  createProcessor(filterFn) {
80
67
  return async (originalMessages, modifiedMessages) => {
81
- for (const message of modifiedMessages) {
68
+ for (const message of originalMessages) {
82
69
  if (filterFn && !filterFn(message)) {
83
70
  continue;
84
71
  }
@@ -88,41 +75,21 @@ class ToolResponseCache {
88
75
  }
89
76
  async queryToolResponse(toolCallId, jqQuery) {
90
77
  const data = this.storage[toolCallId];
91
- if (!data) {
92
- const availableIds = Object.keys(this.storage);
93
- return `Error: No tool response found for toolCallId "${toolCallId}". Available IDs: ${availableIds.join(", ")}`;
94
- }
95
- try {
96
- const jsonData = this.tryParseJson(data);
97
- if (!jsonData) {
98
- return `Error: Tool response data is not valid JSON for toolCallId "${toolCallId}"`;
99
- }
100
- const parsedData = this.parseNestedJsonStrings(jsonData);
101
- const result = await jq.run(jqQuery, parsedData, { input: "json" });
102
- if (typeof result === "string") {
103
- return result;
104
- }
105
- else if (typeof result === "number" || typeof result === "boolean") {
106
- return String(result);
107
- }
108
- else if (result === null) {
109
- return "null";
110
- }
111
- else {
112
- return JSON.stringify(result);
113
- }
114
- }
115
- catch (error) {
116
- let errorMessage = `JQ Query Error: ${error.message}`;
117
- const jsonObj = this.tryParseJson(data);
118
- if (!jsonObj) {
119
- errorMessage += `\nNote: The tool response data is not valid JSON. Raw data preview:\n${data.substring(0, 300)}...`;
120
- }
121
- else {
122
- errorMessage += `\nData structure preview:\n${JSON.stringify(jsonObj, null, 2).substring(0, 500)}...`;
123
- }
124
- return errorMessage;
125
- }
78
+ const availableIds = Object.keys(this.storage);
79
+ return (0, tools_1.executeJqQuery)(data, toolCallId, jqQuery, availableIds);
80
+ }
81
+ async grepToolResponse(toolCallId, pattern, options) {
82
+ const data = this.storage[toolCallId];
83
+ const availableIds = Object.keys(this.storage);
84
+ return (0, tools_1.executeGrep)(data, toolCallId, pattern, availableIds, options);
85
+ }
86
+ async tailToolResponse(toolCallId, options) {
87
+ const data = this.storage[toolCallId];
88
+ const availableIds = Object.keys(this.storage);
89
+ return (0, tools_1.executeTail)(data, toolCallId, availableIds, options);
90
+ }
91
+ async listStoredToolResponses() {
92
+ return (0, tools_1.executeListStoredToolResponses)(this.storage, this.metadataStorage, this.toolNameMap);
126
93
  }
127
94
  retrieveRawResponse(toolCallId) {
128
95
  return this.storage[toolCallId] || null;
@@ -138,35 +105,27 @@ class ToolResponseCache {
138
105
  return Object.keys(this.storage).length;
139
106
  }
140
107
  registerTool(toolsService) {
141
- toolsService.addTools([exports.jqToolResponseDefinition]);
108
+ toolsService.addTools([
109
+ tools_1.jqToolResponseDefinition,
110
+ tools_1.grepToolResponseDefinition,
111
+ tools_1.tailToolResponseDefinition,
112
+ tools_1.listStoredToolResponsesDefinition,
113
+ ]);
142
114
  toolsService.addFunctions({
143
- [this.toolName]: async (toolCallId, jqQuery) => {
115
+ [tools_1.jqToolResponseDefinition.function.name]: async (toolCallId, jqQuery) => {
144
116
  return await this.queryToolResponse(toolCallId, jqQuery);
145
117
  },
118
+ [tools_1.grepToolResponseDefinition.function.name]: async (toolCallId, pattern, options) => {
119
+ return await this.grepToolResponse(toolCallId, pattern, options);
120
+ },
121
+ [tools_1.tailToolResponseDefinition.function.name]: async (toolCallId, options) => {
122
+ return await this.tailToolResponse(toolCallId, options);
123
+ },
124
+ [tools_1.listStoredToolResponsesDefinition.function.name]: async () => {
125
+ return await this.listStoredToolResponses();
126
+ },
146
127
  });
147
128
  }
148
129
  }
149
130
  exports.ToolResponseCache = ToolResponseCache;
150
- exports.jqToolResponseDefinition = {
151
- type: "function",
152
- function: {
153
- name: "jqToolResponse",
154
- description: "Execute a JQ query on a stored tool response to extract specific data. Use this when you need to extract specific information from any tool response that has been stored. Many MCP tool responses store data in nested structures like .content[0].text where the actual data array is located.",
155
- parameters: {
156
- type: "object",
157
- positional: true,
158
- properties: {
159
- toolCallId: {
160
- type: "string",
161
- description: "The toolCallId of the stored tool response",
162
- },
163
- jqQuery: {
164
- type: "string",
165
- description: "The JQ query to execute on the tool response data. Examples: '.content[0].text | map(.title)' (extract titles from MCP array), '.content[0].text | map(select(.createdAt > \"2025-01-01\"))' (filter MCP items by date) ",
166
- },
167
- },
168
- required: ["toolCallId", "jqQuery"],
169
- },
170
- },
171
- };
172
131
  //# sourceMappingURL=ToolResponseCache.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToolResponseCache.js","sourceRoot":"","sources":["../../../src/processors/ToolResponseCache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ToolResponseCache.js","sourceRoot":"","sources":["../../../src/processors/ToolResponseCache.ts"],"names":[],"mappings":";;;AAGA,mCAWiB;AAiPf,yGA3PA,gCAAwB,OA2PA;AACxB,2GA1PA,kCAA0B,OA0PA;AAC1B,2GAxPA,kCAA0B,OAwPA;AAC1B,kHAtPA,yCAAiC,OAsPA;AApOnC,MAAa,iBAAiB;IACpB,OAAO,GAAwB,EAAE,CAAC;IAClC,eAAe,GAAgC,EAAE,CAAC;IAClD,WAAW,GAAqC,EAAE,CAAC;IAE3D,YAAY,YAA0B;QACpC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IAClC,CAAC;IAKO,YAAY,CAAC,OAAe;QAClC,IAAI;YACF,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;SAC5B;QAAC,MAAM;YACN,OAAO,IAAI,CAAC;SACb;IACH,CAAC;IAKM,sBAAsB,CAAC,GAAQ;QACpC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YACtC,IAAI,MAAM,EAAE;gBACV,OAAO,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;aAC5C;YACD,OAAO,GAAG,CAAC;SACZ;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACtB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;SAC7D;QAED,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAClC,MAAM,MAAM,GAAQ,EAAE,CAAC;YACvB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBAC9C,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;aAClD;YACD,OAAO,MAAM,CAAC;SACf;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAKM,iBAAiB,CACtB,OAAe,EACf,UAAkB,EAClB,QAAiB;QAKjB,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YAC5B,OAAO;SACR;QAGD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC;QAGnC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG;YACjC,UAAU;YACV,cAAc,EAAE,OAAO,CAAC,MAAM;YAC9B,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;SACrB,CAAC;QAEF,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC;SACzC;IACH,CAAC;IAKO,KAAK,CAAC,cAAc,CAAC,OAAgB;QAE3C,IACE,OAAO,CAAC,IAAI,KAAK,MAAM;YACvB,CAAC,OAAO,CAAC,YAAY;YACrB,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EACnC;YACA,OAAO;SACR;QAGD,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9E,CAAC;IAKD,eAAe,CACb,QAAoC;QAEpC,OAAO,KAAK,EAAE,gBAA2B,EAAE,gBAA2B,EAAE,EAAE;YACxE,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE;gBACtC,IAAI,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;oBAClC,SAAS;iBACV;gBACD,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;aACpC;QACH,CAAC,CAAC;IACJ,CAAC;IAKD,KAAK,CAAC,iBAAiB,CACrB,UAAkB,EAClB,OAAe;QAEf,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACtC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,OAAO,IAAA,sBAAc,EAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IACjE,CAAC;IAKD,KAAK,CAAC,gBAAgB,CACpB,UAAkB,EAClB,OAAe,EACf,OAAqB;QAErB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACtC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,OAAO,IAAA,mBAAW,EAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;IAKD,KAAK,CAAC,gBAAgB,CACpB,UAAkB,EAClB,OAAqB;QAErB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACtC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,OAAO,IAAA,mBAAW,EAAC,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;IAKD,KAAK,CAAC,uBAAuB;QAC3B,OAAO,IAAA,sCAA8B,EACnC,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,WAAW,CACjB,CAAC;IACJ,CAAC;IAKD,mBAAmB,CAAC,UAAkB;QACpC,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC;IAC1C,CAAC;IAKD,YAAY;QACV,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;IAC5B,CAAC;IAKD,cAAc;QACZ,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAKD,cAAc;QACZ,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IAC1C,CAAC;IAKD,YAAY,CAAC,YAA0B;QACrC,YAAY,CAAC,QAAQ,CAAC;YACpB,gCAAwB;YACxB,kCAA0B;YAC1B,kCAA0B;YAC1B,yCAAiC;SAClC,CAAC,CAAC;QACH,YAAY,CAAC,YAAY,CAAC;YACxB,CAAC,gCAAwB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAC7C,UAAkB,EAClB,OAAe,EACf,EAAE;gBACF,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAC3D,CAAC;YACD,CAAC,kCAA0B,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAC/C,UAAkB,EAClB,OAAe,EACf,OAAa,EACb,EAAE;gBACF,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YACnE,CAAC;YACD,CAAC,kCAA0B,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAC/C,UAAkB,EAClB,OAAa,EACb,EAAE;gBACF,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAC1D,CAAC;YACD,CAAC,yCAAiC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,EAAE;gBAC5D,OAAO,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC9C,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF;AA9ND,8CA8NC"}
@@ -0,0 +1,10 @@
1
+ import { Tool } from "../../clients";
2
+ export interface GrepOptions {
3
+ ignoreCase?: boolean;
4
+ invertMatch?: boolean;
5
+ contextBefore?: number;
6
+ contextAfter?: number;
7
+ maxResults?: number;
8
+ }
9
+ export declare function executeGrep(data: string, toolCallId: string, pattern: string, availableIds: string[], options?: GrepOptions): Promise<string>;
10
+ export declare const grepToolResponseDefinition: Tool;
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.grepToolResponseDefinition = exports.executeGrep = void 0;
4
+ async function executeGrep(data, toolCallId, pattern, availableIds, options) {
5
+ if (!data) {
6
+ return `Error: No tool response found for toolCallId "${toolCallId}". Available IDs: ${availableIds.join(", ")}`;
7
+ }
8
+ try {
9
+ const lines = data.split("\n");
10
+ const matchedResults = [];
11
+ const ignoreCase = options?.ignoreCase || false;
12
+ const invertMatch = options?.invertMatch || false;
13
+ const contextBefore = options?.contextBefore || 0;
14
+ const contextAfter = options?.contextAfter || 0;
15
+ const maxResults = options?.maxResults || 1000;
16
+ const flags = ignoreCase ? "i" : "";
17
+ const regex = new RegExp(pattern, flags);
18
+ for (let i = 0; i < lines.length && matchedResults.length < maxResults; i++) {
19
+ const line = lines[i];
20
+ const matches = regex.test(line);
21
+ const shouldInclude = invertMatch ? !matches : matches;
22
+ if (shouldInclude) {
23
+ const startIdx = Math.max(0, i - contextBefore);
24
+ const endIdx = Math.min(lines.length - 1, i + contextAfter);
25
+ const contextLines = [];
26
+ for (let j = startIdx; j <= endIdx; j++) {
27
+ const prefix = j === i ? "> " : " ";
28
+ contextLines.push(`${prefix}${j + 1}: ${lines[j]}`);
29
+ }
30
+ matchedResults.push(contextLines.join("\n"));
31
+ i += contextAfter;
32
+ }
33
+ }
34
+ if (matchedResults.length === 0) {
35
+ return `No matches found for pattern "${pattern}" in toolCallId "${toolCallId}"`;
36
+ }
37
+ return matchedResults.join("\n---\n");
38
+ }
39
+ catch (error) {
40
+ return `Grep Error: ${error.message}`;
41
+ }
42
+ }
43
+ exports.executeGrep = executeGrep;
44
+ exports.grepToolResponseDefinition = {
45
+ type: "function",
46
+ function: {
47
+ name: "grepToolResponse",
48
+ description: "Search through a stored tool response using grep-like pattern matching. Useful when a tool response is too large and you need to find specific lines or content without re-running the tool. Returns matching lines with optional context.",
49
+ parameters: {
50
+ type: "object",
51
+ positional: true,
52
+ properties: {
53
+ toolCallId: {
54
+ type: "string",
55
+ description: "The toolCallId of the stored tool response",
56
+ },
57
+ pattern: {
58
+ type: "string",
59
+ description: "Regular expression pattern to search for in the tool response",
60
+ },
61
+ options: {
62
+ type: "object",
63
+ description: "Optional grep settings: ignoreCase (boolean), invertMatch (boolean), contextBefore (number), contextAfter (number), maxResults (number, default: 1000)",
64
+ properties: {},
65
+ },
66
+ },
67
+ required: ["toolCallId", "pattern"],
68
+ },
69
+ },
70
+ };
71
+ //# sourceMappingURL=grepToolResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grepToolResponse.js","sourceRoot":"","sources":["../../../../src/processors/tools/grepToolResponse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { jqToolResponseDefinition, executeJqQuery, } from "./jqToolResponse";
2
+ export { grepToolResponseDefinition, executeGrep, GrepOptions, } from "./grepToolResponse";
3
+ export { tailToolResponseDefinition, executeTail, TailOptions, } from "./tailToolResponse";
4
+ export { listStoredToolResponsesDefinition, executeListStoredToolResponses, } from "./listStoredToolResponses";
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.executeListStoredToolResponses = exports.listStoredToolResponsesDefinition = exports.executeTail = exports.tailToolResponseDefinition = exports.executeGrep = exports.grepToolResponseDefinition = exports.executeJqQuery = exports.jqToolResponseDefinition = void 0;
4
+ var jqToolResponse_1 = require("./jqToolResponse");
5
+ Object.defineProperty(exports, "jqToolResponseDefinition", { enumerable: true, get: function () { return jqToolResponse_1.jqToolResponseDefinition; } });
6
+ Object.defineProperty(exports, "executeJqQuery", { enumerable: true, get: function () { return jqToolResponse_1.executeJqQuery; } });
7
+ var grepToolResponse_1 = require("./grepToolResponse");
8
+ Object.defineProperty(exports, "grepToolResponseDefinition", { enumerable: true, get: function () { return grepToolResponse_1.grepToolResponseDefinition; } });
9
+ Object.defineProperty(exports, "executeGrep", { enumerable: true, get: function () { return grepToolResponse_1.executeGrep; } });
10
+ var tailToolResponse_1 = require("./tailToolResponse");
11
+ Object.defineProperty(exports, "tailToolResponseDefinition", { enumerable: true, get: function () { return tailToolResponse_1.tailToolResponseDefinition; } });
12
+ Object.defineProperty(exports, "executeTail", { enumerable: true, get: function () { return tailToolResponse_1.executeTail; } });
13
+ var listStoredToolResponses_1 = require("./listStoredToolResponses");
14
+ Object.defineProperty(exports, "listStoredToolResponsesDefinition", { enumerable: true, get: function () { return listStoredToolResponses_1.listStoredToolResponsesDefinition; } });
15
+ Object.defineProperty(exports, "executeListStoredToolResponses", { enumerable: true, get: function () { return listStoredToolResponses_1.executeListStoredToolResponses; } });
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/processors/tools/index.ts"],"names":[],"mappings":";;;AAAA,mDAG0B;AAFxB,0HAAA,wBAAwB,OAAA;AACxB,gHAAA,cAAc,OAAA;AAGhB,uDAI4B;AAH1B,8HAAA,0BAA0B,OAAA;AAC1B,+GAAA,WAAW,OAAA;AAIb,uDAI4B;AAH1B,8HAAA,0BAA0B,OAAA;AAC1B,+GAAA,WAAW,OAAA;AAIb,qEAGmC;AAFjC,4IAAA,iCAAiC,OAAA;AACjC,yIAAA,8BAA8B,OAAA"}
@@ -0,0 +1,3 @@
1
+ import { Tool } from "../../clients";
2
+ export declare function executeJqQuery(data: string, toolCallId: string, jqQuery: string, availableIds: string[]): Promise<string>;
3
+ export declare const jqToolResponseDefinition: Tool;
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.jqToolResponseDefinition = exports.executeJqQuery = void 0;
27
+ const jq = __importStar(require("node-jq"));
28
+ function tryParseJson(content) {
29
+ try {
30
+ return JSON.parse(content);
31
+ }
32
+ catch {
33
+ return null;
34
+ }
35
+ }
36
+ function parseNestedJsonStrings(obj) {
37
+ if (typeof obj === "string") {
38
+ const parsed = tryParseJson(obj);
39
+ if (parsed) {
40
+ return parseNestedJsonStrings(parsed);
41
+ }
42
+ return obj;
43
+ }
44
+ if (Array.isArray(obj)) {
45
+ return obj.map((item) => parseNestedJsonStrings(item));
46
+ }
47
+ if (obj && typeof obj === "object") {
48
+ const result = {};
49
+ for (const [key, value] of Object.entries(obj)) {
50
+ result[key] = parseNestedJsonStrings(value);
51
+ }
52
+ return result;
53
+ }
54
+ return obj;
55
+ }
56
+ async function executeJqQuery(data, toolCallId, jqQuery, availableIds) {
57
+ if (!data) {
58
+ return `Error: No tool response found for toolCallId "${toolCallId}". Available IDs: ${availableIds.join(", ")}`;
59
+ }
60
+ try {
61
+ const jsonData = tryParseJson(data);
62
+ if (!jsonData) {
63
+ return `Error: Tool response data is not valid JSON for toolCallId "${toolCallId}"`;
64
+ }
65
+ const parsedData = parseNestedJsonStrings(jsonData);
66
+ const result = await jq.run(jqQuery, parsedData, { input: "json" });
67
+ if (typeof result === "string") {
68
+ return result;
69
+ }
70
+ else if (typeof result === "number" || typeof result === "boolean") {
71
+ return String(result);
72
+ }
73
+ else if (result === null) {
74
+ return "null";
75
+ }
76
+ else {
77
+ return JSON.stringify(result);
78
+ }
79
+ }
80
+ catch (error) {
81
+ let errorMessage = `JQ Query Error: ${error.message}`;
82
+ const jsonObj = tryParseJson(data);
83
+ if (!jsonObj) {
84
+ errorMessage += `\nNote: The tool response data is not valid JSON. Raw data preview:\n${data.substring(0, 300)}...`;
85
+ }
86
+ else {
87
+ errorMessage += `\nData structure preview:\n${JSON.stringify(jsonObj, null, 2).substring(0, 500)}...`;
88
+ }
89
+ return errorMessage;
90
+ }
91
+ }
92
+ exports.executeJqQuery = executeJqQuery;
93
+ exports.jqToolResponseDefinition = {
94
+ type: "function",
95
+ function: {
96
+ name: "jqToolResponse",
97
+ description: "Execute a JQ query on a stored tool response to extract specific data. Use this when you need to extract specific information from any tool response that has been stored. Many MCP tool responses store data in nested structures like .content[0].text where the actual data array is located.",
98
+ parameters: {
99
+ type: "object",
100
+ positional: true,
101
+ properties: {
102
+ toolCallId: {
103
+ type: "string",
104
+ description: "The toolCallId of the stored tool response",
105
+ },
106
+ jqQuery: {
107
+ type: "string",
108
+ description: "The JQ query to execute on the tool response data. Examples: '.content[0].text | map(.title)' (extract titles from MCP array), '.content[0].text | map(select(.createdAt > \"2025-01-01\"))' (filter MCP items by date) ",
109
+ },
110
+ },
111
+ required: ["toolCallId", "jqQuery"],
112
+ },
113
+ },
114
+ };
115
+ //# sourceMappingURL=jqToolResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jqToolResponse.js","sourceRoot":"","sources":["../../../../src/processors/tools/jqToolResponse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { Tool } from "../../clients";
2
+ export interface ToolResponseInfo {
3
+ toolCallId: string;
4
+ toolName: string;
5
+ size: number;
6
+ storedAt: number;
7
+ preview: string;
8
+ }
9
+ export declare function executeListStoredToolResponses(storage: {
10
+ [toolCallId: string]: string;
11
+ }, metadataStorage: {
12
+ [toolCallId: string]: {
13
+ toolCallId: string;
14
+ originalLength: number;
15
+ storedAt: number;
16
+ toolName?: string;
17
+ };
18
+ }, toolNameMap: {
19
+ [toolCallId: string]: string;
20
+ }): Promise<string>;
21
+ export declare const listStoredToolResponsesDefinition: Tool;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.listStoredToolResponsesDefinition = exports.executeListStoredToolResponses = void 0;
4
+ async function executeListStoredToolResponses(storage, metadataStorage, toolNameMap) {
5
+ const toolCallIds = Object.keys(storage);
6
+ if (toolCallIds.length === 0) {
7
+ return "No tool responses have been stored yet.";
8
+ }
9
+ const responses = toolCallIds.map((toolCallId) => {
10
+ const data = storage[toolCallId];
11
+ const metadata = metadataStorage[toolCallId];
12
+ const toolName = toolNameMap[toolCallId] || "unknown";
13
+ const preview = data.length > 100 ? data.substring(0, 100) + "..." : data;
14
+ return {
15
+ toolCallId,
16
+ toolName,
17
+ size: metadata?.originalLength || data.length,
18
+ storedAt: metadata?.storedAt || 0,
19
+ preview,
20
+ };
21
+ });
22
+ responses.sort((a, b) => b.storedAt - a.storedAt);
23
+ const output = responses
24
+ .map((resp) => {
25
+ const date = new Date(resp.storedAt).toISOString();
26
+ return `
27
+ Tool Call ID: ${resp.toolCallId}
28
+ Tool Name: ${resp.toolName}
29
+ Size: ${resp.size} characters
30
+ Stored At: ${date}
31
+ Preview: ${resp.preview}
32
+ ---`;
33
+ })
34
+ .join("\n");
35
+ return `Found ${responses.length} stored tool response(s):\n${output}`;
36
+ }
37
+ exports.executeListStoredToolResponses = executeListStoredToolResponses;
38
+ exports.listStoredToolResponsesDefinition = {
39
+ type: "function",
40
+ function: {
41
+ name: "listStoredToolResponses",
42
+ description: "List all stored tool responses with metadata including tool call ID, tool name, size, timestamp, and a preview of the content. Use this to discover which tool responses are available for querying with jqToolResponse or grepToolResponse.",
43
+ parameters: {
44
+ type: "object",
45
+ positional: false,
46
+ properties: {},
47
+ required: [],
48
+ },
49
+ },
50
+ };
51
+ //# sourceMappingURL=listStoredToolResponses.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listStoredToolResponses.js","sourceRoot":"","sources":["../../../../src/processors/tools/listStoredToolResponses.ts"],"names":[],"mappings":";;;AAaO,KAAK,UAAU,8BAA8B,CAClD,OAAyC,EACzC,eAOC,EACD,WAA6C;IAE7C,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEzC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;QAC5B,OAAO,yCAAyC,CAAC;KAClD;IAED,MAAM,SAAS,GAAuB,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;QACnE,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,WAAW,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC;QAGtD,MAAM,OAAO,GACX,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAE5D,OAAO;YACL,UAAU;YACV,QAAQ;YACR,IAAI,EAAE,QAAQ,EAAE,cAAc,IAAI,IAAI,CAAC,MAAM;YAC7C,QAAQ,EAAE,QAAQ,EAAE,QAAQ,IAAI,CAAC;YACjC,OAAO;SACR,CAAC;IACJ,CAAC,CAAC,CAAC;IAGH,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;IAGlD,MAAM,MAAM,GAAG,SAAS;SACrB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;QACnD,OAAO;gBACG,IAAI,CAAC,UAAU;aAClB,IAAI,CAAC,QAAQ;QAClB,IAAI,CAAC,IAAI;aACJ,IAAI;WACN,IAAI,CAAC,OAAO;IACnB,CAAC;IACD,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO,SAAS,SAAS,CAAC,MAAM,8BAA8B,MAAM,EAAE,CAAC;AACzE,CAAC;AAtDD,wEAsDC;AAEY,QAAA,iCAAiC,GAAS;IACrD,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,yBAAyB;QAC/B,WAAW,EACT,8OAA8O;QAChP,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,KAAK;YACjB,UAAU,EAAE,EAAE;YACd,QAAQ,EAAE,EAAE;SACb;KACF;CACF,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { Tool } from "../../clients";
2
+ export interface TailOptions {
3
+ lines?: number;
4
+ }
5
+ export declare function executeTail(data: string, toolCallId: string, availableIds: string[], options?: TailOptions): Promise<string>;
6
+ export declare const tailToolResponseDefinition: Tool;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tailToolResponseDefinition = exports.executeTail = void 0;
4
+ async function executeTail(data, toolCallId, availableIds, options) {
5
+ if (data === null || data === undefined) {
6
+ return `Error: No tool response found for toolCallId "${toolCallId}". Available IDs: ${availableIds.join(", ")}`;
7
+ }
8
+ try {
9
+ const lines = data.split("\n");
10
+ const numLines = options?.lines ?? 10;
11
+ if (numLines <= 0) {
12
+ return "";
13
+ }
14
+ const startIdx = Math.max(0, lines.length - numLines);
15
+ const tailLines = lines.slice(startIdx);
16
+ const formatted = tailLines.map((line, idx) => {
17
+ const lineNum = startIdx + idx + 1;
18
+ return `${lineNum}: ${line}`;
19
+ });
20
+ return formatted.join("\n");
21
+ }
22
+ catch (error) {
23
+ return `Tail Error: ${error.message}`;
24
+ }
25
+ }
26
+ exports.executeTail = executeTail;
27
+ exports.tailToolResponseDefinition = {
28
+ type: "function",
29
+ function: {
30
+ name: "tailToolResponse",
31
+ description: "Get the last n lines from a stored tool response. Similar to the Unix 'tail' command, useful when a tool response is too large and you only need to see the end. Returns the last n lines with line numbers.",
32
+ parameters: {
33
+ type: "object",
34
+ positional: true,
35
+ properties: {
36
+ toolCallId: {
37
+ type: "string",
38
+ description: "The toolCallId of the stored tool response",
39
+ },
40
+ options: {
41
+ type: "object",
42
+ description: "Optional tail settings: lines (number, default: 10) - number of lines to return from the end",
43
+ properties: {
44
+ lines: {
45
+ type: "number",
46
+ description: "Number of lines to return from the end (default: 10)",
47
+ },
48
+ },
49
+ },
50
+ },
51
+ required: ["toolCallId"],
52
+ },
53
+ },
54
+ };
55
+ //# sourceMappingURL=tailToolResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tailToolResponse.js","sourceRoot":"","sources":["../../../../src/processors/tools/tailToolResponse.ts"],"names":[],"mappings":";;;AASO,KAAK,UAAU,WAAW,CAC/B,IAAY,EACZ,UAAkB,EAClB,YAAsB,EACtB,OAAqB;IAErB,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,EAAE;QACvC,OAAO,iDAAiD,UAAU,qBAAqB,YAAY,CAAC,IAAI,CACtG,IAAI,CACL,EAAE,CAAC;KACL;IAED,IAAI;QACF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,QAAQ,GAAG,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;QAGtC,IAAI,QAAQ,IAAI,CAAC,EAAE;YACjB,OAAO,EAAE,CAAC;SACX;QAGD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC;QACtD,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAGxC,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YAC5C,MAAM,OAAO,GAAG,QAAQ,GAAG,GAAG,GAAG,CAAC,CAAC;YACnC,OAAO,GAAG,OAAO,KAAK,IAAI,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC7B;IAAC,OAAO,KAAU,EAAE;QACnB,OAAO,eAAe,KAAK,CAAC,OAAO,EAAE,CAAC;KACvC;AACH,CAAC;AAnCD,kCAmCC;AAEY,QAAA,0BAA0B,GAAS;IAC9C,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,kBAAkB;QACxB,WAAW,EACT,8MAA8M;QAChN,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE;gBACV,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,4CAA4C;iBAC1D;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,8FAA8F;oBAC3G,UAAU,EAAE;wBACV,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,sDAAsD;yBACpE;qBACF;iBACF;aACF;YACD,QAAQ,EAAE,CAAC,YAAY,CAAC;SACzB;KACF;CACF,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { IAgent } from "../agents/interface";
2
2
  import { EventService } from "./EventService";
3
3
  import { ToolsService } from "./Tools";
4
- import { AgentContext } from "src/agents/base/base";
4
+ import { AgentContext } from "../agents/base/base";
5
5
  export declare class AgentService {
6
6
  private tools;
7
7
  private events;
@@ -0,0 +1,27 @@
1
+ import { KnowhowSimpleClient } from "./KnowhowClient";
2
+ import { BaseAgent } from "../agents/base/base";
3
+ export interface SyncOptions {
4
+ messageId?: string;
5
+ existingKnowhowTaskId?: string;
6
+ prompt: string;
7
+ }
8
+ export interface TaskSyncState {
9
+ knowhowTaskId?: string;
10
+ client: KnowhowSimpleClient;
11
+ messageId?: string;
12
+ }
13
+ export declare class AgentSynchronization {
14
+ private client;
15
+ private baseUrl;
16
+ private knowhowTaskId;
17
+ private eventHandlersSetup;
18
+ constructor(baseUrl?: string);
19
+ createChatTask(options: SyncOptions): Promise<string | undefined>;
20
+ updateChatTask(knowhowTaskId: string, agent: BaseAgent, inProgress: boolean, result?: string): Promise<void>;
21
+ checkAndProcessPendingMessages(agent: BaseAgent, knowhowTaskId: string): Promise<void>;
22
+ private waitForResume;
23
+ setupAgentSync(agent: BaseAgent, knowhowTaskId?: string): Promise<void>;
24
+ private setupEventHandlers;
25
+ reset(): void;
26
+ finalizeTask(agent: BaseAgent, knowhowTaskId: string | undefined, result: string): Promise<void>;
27
+ }