@tyvm/knowhow 0.0.21 → 0.0.23

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 (172) hide show
  1. package/package.json +3 -1
  2. package/src/agents/base/base.ts +16 -7
  3. package/src/agents/configurable/ConfigAgent.ts +5 -3
  4. package/src/agents/developer/developer.ts +3 -4
  5. package/src/agents/index.ts +26 -2
  6. package/src/agents/patcher/patcher.ts +3 -5
  7. package/src/agents/researcher/researcher.ts +3 -4
  8. package/src/agents/tools/agentCall.ts +5 -2
  9. package/src/agents/tools/executeScript/README.md +78 -0
  10. package/src/agents/tools/executeScript/definition.ts +73 -0
  11. package/src/agents/tools/executeScript/examples/dependency-injection-validation.ts +272 -0
  12. package/src/agents/tools/executeScript/examples/quick-test.ts +74 -0
  13. package/src/agents/tools/executeScript/examples/serialization-test.ts +321 -0
  14. package/src/agents/tools/executeScript/examples/test-runner.ts +197 -0
  15. package/src/agents/tools/executeScript/index.ts +93 -0
  16. package/src/agents/tools/index.ts +1 -0
  17. package/src/agents/tools/list.ts +2 -1
  18. package/src/agents/vim/vim.ts +3 -4
  19. package/src/ai.ts +2 -1
  20. package/src/chat.ts +4 -2
  21. package/src/cli.ts +7 -15
  22. package/src/clients/index.ts +23 -9
  23. package/src/dataset/diffs/test.ts +2 -1
  24. package/src/index.ts +3 -3
  25. package/src/services/AgentService.ts +9 -10
  26. package/src/services/EventService.ts +0 -2
  27. package/src/services/GitHub.ts +0 -1
  28. package/src/services/KnowhowClient.ts +0 -3
  29. package/src/services/Mcp.ts +0 -2
  30. package/src/services/S3.ts +0 -1
  31. package/src/services/Tools.ts +63 -8
  32. package/src/services/flags.ts +0 -1
  33. package/src/services/index.ts +56 -0
  34. package/src/services/modules/index.ts +53 -0
  35. package/src/{modules → services/modules}/types.ts +16 -5
  36. package/src/services/script-execution/SandboxContext.ts +278 -0
  37. package/src/services/script-execution/ScriptExecutor.ts +339 -0
  38. package/src/services/script-execution/ScriptPolicy.ts +236 -0
  39. package/src/services/script-execution/ScriptTracer.ts +249 -0
  40. package/src/services/script-execution/types.ts +134 -0
  41. package/src/worker.ts +3 -3
  42. package/tests/integration/fileblocks/readwrite.test.ts +2 -1
  43. package/tests/integration/patching.test.ts +5 -5
  44. package/ts_build/src/agents/base/base.d.ts +9 -4
  45. package/ts_build/src/agents/base/base.js +7 -10
  46. package/ts_build/src/agents/base/base.js.map +1 -1
  47. package/ts_build/src/agents/configurable/ConfigAgent.d.ts +2 -2
  48. package/ts_build/src/agents/configurable/ConfigAgent.js +2 -2
  49. package/ts_build/src/agents/configurable/ConfigAgent.js.map +1 -1
  50. package/ts_build/src/agents/developer/developer.d.ts +2 -3
  51. package/ts_build/src/agents/developer/developer.js +3 -4
  52. package/ts_build/src/agents/developer/developer.js.map +1 -1
  53. package/ts_build/src/agents/index.d.ts +11 -2
  54. package/ts_build/src/agents/index.js +19 -3
  55. package/ts_build/src/agents/index.js.map +1 -1
  56. package/ts_build/src/agents/patcher/patcher.d.ts +2 -3
  57. package/ts_build/src/agents/patcher/patcher.js +3 -4
  58. package/ts_build/src/agents/patcher/patcher.js.map +1 -1
  59. package/ts_build/src/agents/researcher/researcher.d.ts +2 -3
  60. package/ts_build/src/agents/researcher/researcher.js +3 -4
  61. package/ts_build/src/agents/researcher/researcher.js.map +1 -1
  62. package/ts_build/src/agents/tools/agentCall.js +4 -4
  63. package/ts_build/src/agents/tools/agentCall.js.map +1 -1
  64. package/ts_build/src/agents/tools/executeScript/definition.d.ts +2 -0
  65. package/ts_build/src/agents/tools/executeScript/definition.js +70 -0
  66. package/ts_build/src/agents/tools/executeScript/definition.js.map +1 -0
  67. package/ts_build/src/agents/tools/executeScript/examples/dependency-injection-validation.d.ts +18 -0
  68. package/ts_build/src/agents/tools/executeScript/examples/dependency-injection-validation.js +192 -0
  69. package/ts_build/src/agents/tools/executeScript/examples/dependency-injection-validation.js.map +1 -0
  70. package/ts_build/src/agents/tools/executeScript/examples/quick-test.d.ts +3 -0
  71. package/ts_build/src/agents/tools/executeScript/examples/quick-test.js +65 -0
  72. package/ts_build/src/agents/tools/executeScript/examples/quick-test.js.map +1 -0
  73. package/ts_build/src/agents/tools/executeScript/examples/serialization-test.d.ts +15 -0
  74. package/ts_build/src/agents/tools/executeScript/examples/serialization-test.js +266 -0
  75. package/ts_build/src/agents/tools/executeScript/examples/serialization-test.js.map +1 -0
  76. package/ts_build/src/agents/tools/executeScript/examples/simple-example.d.ts +20 -0
  77. package/ts_build/src/agents/tools/executeScript/examples/simple-example.js +35 -0
  78. package/ts_build/src/agents/tools/executeScript/examples/simple-example.js.map +1 -0
  79. package/ts_build/src/agents/tools/executeScript/examples/test-runner.d.ts +4 -0
  80. package/ts_build/src/agents/tools/executeScript/examples/test-runner.js +198 -0
  81. package/ts_build/src/agents/tools/executeScript/examples/test-runner.js.map +1 -0
  82. package/ts_build/src/agents/tools/executeScript/handler.d.ts +27 -0
  83. package/ts_build/src/agents/tools/executeScript/handler.js +64 -0
  84. package/ts_build/src/agents/tools/executeScript/handler.js.map +1 -0
  85. package/ts_build/src/agents/tools/executeScript/index.d.ts +27 -0
  86. package/ts_build/src/agents/tools/executeScript/index.js +70 -0
  87. package/ts_build/src/agents/tools/executeScript/index.js.map +1 -0
  88. package/ts_build/src/agents/tools/executeScript.d.ts +29 -0
  89. package/ts_build/src/agents/tools/executeScript.js +124 -0
  90. package/ts_build/src/agents/tools/executeScript.js.map +1 -0
  91. package/ts_build/src/agents/tools/index.d.ts +1 -0
  92. package/ts_build/src/agents/tools/index.js +1 -0
  93. package/ts_build/src/agents/tools/index.js.map +1 -1
  94. package/ts_build/src/agents/tools/list.js +2 -0
  95. package/ts_build/src/agents/tools/list.js.map +1 -1
  96. package/ts_build/src/agents/vim/vim.d.ts +2 -3
  97. package/ts_build/src/agents/vim/vim.js +3 -4
  98. package/ts_build/src/agents/vim/vim.js.map +1 -1
  99. package/ts_build/src/ai.js +2 -1
  100. package/ts_build/src/ai.js.map +1 -1
  101. package/ts_build/src/chat.js +10 -9
  102. package/ts_build/src/chat.js.map +1 -1
  103. package/ts_build/src/cli.js +12 -19
  104. package/ts_build/src/cli.js.map +1 -1
  105. package/ts_build/src/clients/index.d.ts +9 -2
  106. package/ts_build/src/clients/index.js +17 -4
  107. package/ts_build/src/clients/index.js.map +1 -1
  108. package/ts_build/src/dataset/diffs/test.js +2 -1
  109. package/ts_build/src/dataset/diffs/test.js.map +1 -1
  110. package/ts_build/src/index.js +10 -10
  111. package/ts_build/src/index.js.map +1 -1
  112. package/ts_build/src/services/AgentService.d.ts +7 -3
  113. package/ts_build/src/services/AgentService.js +11 -10
  114. package/ts_build/src/services/AgentService.js.map +1 -1
  115. package/ts_build/src/services/EventService.d.ts +0 -1
  116. package/ts_build/src/services/EventService.js +1 -2
  117. package/ts_build/src/services/EventService.js.map +1 -1
  118. package/ts_build/src/services/GitHub.d.ts +0 -1
  119. package/ts_build/src/services/GitHub.js +1 -2
  120. package/ts_build/src/services/GitHub.js.map +1 -1
  121. package/ts_build/src/services/KnowhowClient.d.ts +0 -1
  122. package/ts_build/src/services/KnowhowClient.js +1 -2
  123. package/ts_build/src/services/KnowhowClient.js.map +1 -1
  124. package/ts_build/src/services/Mcp.d.ts +0 -1
  125. package/ts_build/src/services/Mcp.js +1 -2
  126. package/ts_build/src/services/Mcp.js.map +1 -1
  127. package/ts_build/src/services/S3.d.ts +0 -1
  128. package/ts_build/src/services/S3.js +1 -2
  129. package/ts_build/src/services/S3.js.map +1 -1
  130. package/ts_build/src/services/Tools.d.ts +22 -1
  131. package/ts_build/src/services/Tools.js +32 -6
  132. package/ts_build/src/services/Tools.js.map +1 -1
  133. package/ts_build/src/services/flags.d.ts +0 -1
  134. package/ts_build/src/services/flags.js +1 -2
  135. package/ts_build/src/services/flags.js.map +1 -1
  136. package/ts_build/src/services/index.d.ts +25 -0
  137. package/ts_build/src/services/index.js +42 -1
  138. package/ts_build/src/services/index.js.map +1 -1
  139. package/ts_build/src/services/modules/example-usage.d.ts +11 -0
  140. package/ts_build/src/services/modules/example-usage.js +43 -0
  141. package/ts_build/src/services/modules/example-usage.js.map +1 -0
  142. package/ts_build/src/services/modules/index.d.ts +4 -0
  143. package/ts_build/src/services/modules/index.js +44 -0
  144. package/ts_build/src/services/modules/index.js.map +1 -0
  145. package/ts_build/src/services/modules/types.d.ts +47 -0
  146. package/ts_build/src/services/modules/types.js +3 -0
  147. package/ts_build/src/services/modules/types.js.map +1 -0
  148. package/ts_build/src/services/script-execution/SandboxContext.d.ts +34 -0
  149. package/ts_build/src/services/script-execution/SandboxContext.js +186 -0
  150. package/ts_build/src/services/script-execution/SandboxContext.js.map +1 -0
  151. package/ts_build/src/services/script-execution/ScriptExecutor.d.ts +17 -0
  152. package/ts_build/src/services/script-execution/ScriptExecutor.js +211 -0
  153. package/ts_build/src/services/script-execution/ScriptExecutor.js.map +1 -0
  154. package/ts_build/src/services/script-execution/ScriptPolicy.d.ts +27 -0
  155. package/ts_build/src/services/script-execution/ScriptPolicy.js +150 -0
  156. package/ts_build/src/services/script-execution/ScriptPolicy.js.map +1 -0
  157. package/ts_build/src/services/script-execution/ScriptTracer.d.ts +19 -0
  158. package/ts_build/src/services/script-execution/ScriptTracer.js +186 -0
  159. package/ts_build/src/services/script-execution/ScriptTracer.js.map +1 -0
  160. package/ts_build/src/services/script-execution/types.d.ts +108 -0
  161. package/ts_build/src/services/script-execution/types.js +3 -0
  162. package/ts_build/src/services/script-execution/types.js.map +1 -0
  163. package/ts_build/src/services/singletons.d.ts +17 -0
  164. package/ts_build/src/services/singletons.js +28 -0
  165. package/ts_build/src/services/singletons.js.map +1 -0
  166. package/ts_build/src/worker.js +4 -3
  167. package/ts_build/src/worker.js.map +1 -1
  168. package/ts_build/tests/integration/fileblocks/readwrite.test.js +10 -9
  169. package/ts_build/tests/integration/fileblocks/readwrite.test.js.map +1 -1
  170. package/ts_build/tests/integration/patching.test.js +9 -10
  171. package/ts_build/tests/integration/patching.test.js.map +1 -1
  172. package/src/modules/index.ts +0 -37
@@ -0,0 +1,192 @@
1
+ #!/usr/bin/env ts-node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.TestAgent2 = exports.TestAgent1 = exports.runValidationTests = void 0;
5
+ const Tools_1 = require("../../../../services/Tools");
6
+ const clients_1 = require("../../../../clients");
7
+ const services_1 = require("../../../../services/");
8
+ const base_1 = require("../../../base/base");
9
+ const __1 = require("../");
10
+ const definition_1 = require("../definition");
11
+ class TestAgent1 extends base_1.BaseAgent {
12
+ name = "TestAgent1";
13
+ description = "Test agent for dependency injection validation";
14
+ async getInitialMessages(userInput) {
15
+ return [
16
+ { role: "system", content: this.description },
17
+ { role: "user", content: userInput },
18
+ ];
19
+ }
20
+ getToolsServiceForTest() {
21
+ return this.tools;
22
+ }
23
+ }
24
+ exports.TestAgent1 = TestAgent1;
25
+ class TestAgent2 extends base_1.BaseAgent {
26
+ name = "TestAgent2";
27
+ description = "Another test agent for dependency injection validation";
28
+ async getInitialMessages(userInput) {
29
+ return [
30
+ { role: "system", content: this.description },
31
+ { role: "user", content: userInput },
32
+ ];
33
+ }
34
+ getToolsServiceForTest() {
35
+ return this.tools;
36
+ }
37
+ }
38
+ exports.TestAgent2 = TestAgent2;
39
+ function testToolWithContext(params) {
40
+ const context = this.getContext();
41
+ console.log("āœ… Tool called with context:");
42
+ console.log("- AgentService available:", !!context.Agents);
43
+ console.log("- EventService available:", !!context.Events);
44
+ console.log("- Clients available:", !!context.Clients);
45
+ console.log("- ToolsService self-reference available:", !!context.Tools);
46
+ console.log("- Test message:", params.message);
47
+ return {
48
+ success: true,
49
+ contextValidated: true,
50
+ hasAgentService: !!context.Agents,
51
+ hasEventService: !!context.Events,
52
+ hasClients: !!context.Clients,
53
+ hasToolsService: !!context.Tools,
54
+ testMessage: params.message,
55
+ };
56
+ }
57
+ async function runValidationTests() {
58
+ console.log("🧪 Starting Tools Dependency Injection Validation Tests\n");
59
+ console.log("šŸ“ Test 1: Agent Isolation");
60
+ const agent1 = new TestAgent1({
61
+ Events: new services_1.EventService(),
62
+ Tools: new Tools_1.ToolsService({ Clients: clients_1.Clients }),
63
+ });
64
+ const agent2 = new TestAgent2({
65
+ Events: new services_1.EventService(),
66
+ Tools: new Tools_1.ToolsService(),
67
+ });
68
+ const toolsService1 = agent1.getToolsServiceForTest();
69
+ const toolsService2 = agent2.getToolsServiceForTest();
70
+ console.log("āœ… Agent1 and Agent2 have different ToolsService instances:", toolsService1 !== toolsService2);
71
+ console.log("\nšŸ“ Test 2: Context Injection Validation");
72
+ const context1 = toolsService1.getContext();
73
+ const context2 = toolsService2.getContext();
74
+ console.log("āœ… Agent1 context has required services:", {
75
+ agentService: !!context1.Agents,
76
+ eventService: !!context1.Events,
77
+ clients: !!context1.Clients,
78
+ toolsService: !!context1.Tools,
79
+ });
80
+ console.log("āœ… Agent2 context has required services:", {
81
+ agentService: !!context2.Agents,
82
+ eventService: !!context2.Events,
83
+ clients: !!context2.Clients,
84
+ toolsService: !!context2.Tools,
85
+ });
86
+ console.log("\nšŸ“ Test 3: Tool Context Access");
87
+ toolsService1.addTool({
88
+ type: "function",
89
+ function: {
90
+ name: "testToolWithContext",
91
+ description: "Test tool for context validation",
92
+ parameters: {
93
+ type: "object",
94
+ properties: {
95
+ message: { type: "string", description: "Test message" },
96
+ },
97
+ required: ["message"],
98
+ },
99
+ },
100
+ });
101
+ toolsService1.setFunction("testToolWithContext", testToolWithContext);
102
+ try {
103
+ const result = await toolsService1.callTool({
104
+ id: "test-call",
105
+ type: "function",
106
+ function: {
107
+ name: "testToolWithContext",
108
+ arguments: JSON.stringify({ message: "Hello from Agent1!" }),
109
+ },
110
+ });
111
+ console.log("āœ… Tool executed successfully with context access:", result.functionResp?.success);
112
+ }
113
+ catch (error) {
114
+ console.error("āŒ Tool execution failed:", error);
115
+ }
116
+ console.log("\nšŸ“ Test 4: Tool Isolation Between Agents");
117
+ const agent1Tools = toolsService1.getTools().map((t) => t.function.name);
118
+ const agent2Tools = toolsService2.getTools().map((t) => t.function.name);
119
+ console.log("Agent1 tools:", agent1Tools.length);
120
+ console.log("Agent2 tools:", agent2Tools.length);
121
+ console.log("āœ… Agent2 does not have agent1's custom tool:", !agent2Tools.includes("testToolWithContext"));
122
+ function agent2SpecificTool(params) {
123
+ const context = this.getContext();
124
+ return {
125
+ agent: "Agent2",
126
+ data: params.data,
127
+ contextAvailable: !!context,
128
+ };
129
+ }
130
+ toolsService2.addTool({
131
+ type: "function",
132
+ function: {
133
+ name: "agent2SpecificTool",
134
+ description: "Tool specific to Agent2",
135
+ parameters: {
136
+ type: "object",
137
+ properties: {
138
+ data: { type: "string", description: "Test data" },
139
+ },
140
+ required: ["data"],
141
+ },
142
+ },
143
+ });
144
+ toolsService2.setFunction("agent2SpecificTool", agent2SpecificTool);
145
+ const agent1ToolsAfter = toolsService1.getTools().map((t) => t.function.name);
146
+ const agent2ToolsAfter = toolsService2.getTools().map((t) => t.function.name);
147
+ console.log("āœ… Agent1 does not have agent2's tool:", !agent1ToolsAfter.includes("agent2SpecificTool"));
148
+ console.log("āœ… Agent2 has its specific tool:", agent2ToolsAfter.includes("agent2SpecificTool"));
149
+ console.log("\nšŸ“ Test 6: executeScript Context Integration");
150
+ const executeScriptTest = `
151
+ async function main() {
152
+ return callTool("testToolWithContext", {message: "Hello from executeScript!"});
153
+ }
154
+ return main()
155
+ `;
156
+ toolsService1.defineTools([definition_1.executeScriptDefinition], { executeScript: __1.executeScript });
157
+ try {
158
+ const executeResult = await toolsService1.callTool({
159
+ id: "execute-test",
160
+ type: "function",
161
+ function: {
162
+ name: "executeScript",
163
+ arguments: JSON.stringify({ script: executeScriptTest }),
164
+ },
165
+ });
166
+ console.log("āœ… executeScript using dependency injection:", executeResult.functionResp);
167
+ }
168
+ catch (error) {
169
+ console.error("āŒ executeScript test failed:", error);
170
+ }
171
+ console.log("\nšŸŽ‰ All Tests Completed!");
172
+ console.log("\nšŸ“Š Test Summary:");
173
+ console.log("āœ… Agent isolation working - each agent has independent ToolsService");
174
+ console.log("āœ… Context injection working - tools can access all required services");
175
+ console.log("āœ… No singleton usage - tools use bound context instead");
176
+ console.log("āœ… Backward compatibility maintained - existing patterns still work");
177
+ console.log("āœ… executeScript migrated successfully to dependency injection");
178
+ return true;
179
+ }
180
+ exports.runValidationTests = runValidationTests;
181
+ if (require.main === module) {
182
+ runValidationTests()
183
+ .then(() => {
184
+ console.log("\nšŸ† Dependency Injection Implementation Complete!");
185
+ process.exit(0);
186
+ })
187
+ .catch((error) => {
188
+ console.error("\nāŒ Validation tests failed:", error);
189
+ process.exit(1);
190
+ });
191
+ }
192
+ //# sourceMappingURL=dependency-injection-validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependency-injection-validation.js","sourceRoot":"","sources":["../../../../../../src/agents/tools/executeScript/examples/dependency-injection-validation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ts-node
2
+ declare function quickTest(): Promise<void>;
3
+ export { quickTest };
@@ -0,0 +1,65 @@
1
+ #!/usr/bin/env ts-node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.quickTest = void 0;
5
+ const executeScript_1 = require("../../executeScript");
6
+ const services_1 = require("../../../../services");
7
+ const simpleScript = `
8
+ console.log("Hello from executeScript!");
9
+
10
+ async function main() {
11
+ // Test basic functionality
12
+ console.log("Running simple test...");
13
+
14
+ // Try a simple tool call
15
+ const files = await callTool("fileSearch", { searchTerm: "*.ts" });
16
+ console.log("Found", files?.length || 0, "TypeScript files");
17
+
18
+ return {
19
+ message: "Simple test completed!",
20
+ filesFound: files?.length || 0,
21
+ timestamp: new Date().toISOString()
22
+ };
23
+ }
24
+
25
+ await main().then(result => {
26
+ console.log("Result:", result);
27
+ }).catch(error => {
28
+ console.error("Error:", error);
29
+ });
30
+ `;
31
+ async function quickTest() {
32
+ console.log("🧪 Quick executeScript test\n");
33
+ try {
34
+ const { Tools, Clients } = (0, services_1.services)();
35
+ const result = await (0, executeScript_1.executeScript)({
36
+ script: simpleScript,
37
+ maxToolCalls: 5,
38
+ maxTokens: 100,
39
+ maxExecutionTimeMs: 10000,
40
+ maxCostUsd: 0.1,
41
+ });
42
+ console.log("\nšŸ“Š QUICK TEST RESULT:");
43
+ console.log("Success:", result.success);
44
+ console.log("Result:", result.result);
45
+ console.log("Tool calls:", result.quotaUsage.toolCalls);
46
+ console.log("Cost: $" + result.quotaUsage.costUsd.toFixed(4));
47
+ if (result.consoleOutput.length > 0) {
48
+ console.log("\nšŸ“ Console Output:");
49
+ result.consoleOutput.forEach((entry) => {
50
+ console.log(` ${entry}`);
51
+ });
52
+ }
53
+ if (!result.success) {
54
+ console.log("āŒ Error:", result.error);
55
+ }
56
+ }
57
+ catch (error) {
58
+ console.error("šŸ’„ Test failed:", error);
59
+ }
60
+ }
61
+ exports.quickTest = quickTest;
62
+ if (require.main === module) {
63
+ quickTest();
64
+ }
65
+ //# sourceMappingURL=quick-test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quick-test.js","sourceRoot":"","sources":["../../../../../../src/agents/tools/executeScript/examples/quick-test.ts"],"names":[],"mappings":";;;;AAMA,uDAAoD;AACpD,mDAAgD;AAGhD,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;CAuBpB,CAAC;AAEF,KAAK,UAAU,SAAS;IACtB,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAE7C,IAAI;QACF,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAA,mBAAQ,GAAE,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,IAAA,6BAAa,EAAC;YACjC,MAAM,EAAE,YAAY;YACpB,YAAY,EAAE,CAAC;YACf,SAAS,EAAE,GAAG;YACd,kBAAkB,EAAE,KAAK;YACzB,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAE9D,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YACnC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;YACpC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBACrC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;SACJ;QAED,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YACnB,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;SACvC;KACF;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;KACzC;AACH,CAAC;AAMQ,8BAAS;AAJlB,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE;IAC3B,SAAS,EAAE,CAAC;CACb"}
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env ts-node
2
+ interface TestCase {
3
+ name: string;
4
+ script: string;
5
+ expectedToWork: boolean;
6
+ description: string;
7
+ }
8
+ declare const testCases: TestCase[];
9
+ declare function runSerializationTests(): Promise<{
10
+ passed: number;
11
+ failed: number;
12
+ unexpected: number;
13
+ details: any[];
14
+ }>;
15
+ export { runSerializationTests, testCases };
@@ -0,0 +1,266 @@
1
+ #!/usr/bin/env ts-node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.testCases = exports.runSerializationTests = void 0;
5
+ const executeScript_1 = require("../../executeScript");
6
+ const testCases = [
7
+ {
8
+ name: "primitive-string",
9
+ expectedToWork: true,
10
+ description: "Simple string return - should work",
11
+ script: `
12
+ console.log("Testing primitive string return");
13
+ return "Hello World";
14
+ `,
15
+ },
16
+ {
17
+ name: "primitive-number",
18
+ expectedToWork: true,
19
+ description: "Simple number return - should work",
20
+ script: `
21
+ console.log("Testing primitive number return");
22
+ return 42;
23
+ `,
24
+ },
25
+ {
26
+ name: "primitive-boolean",
27
+ expectedToWork: true,
28
+ description: "Simple boolean return - should work",
29
+ script: `
30
+ console.log("Testing primitive boolean return");
31
+ return true;
32
+ `,
33
+ },
34
+ {
35
+ name: "simple-array",
36
+ expectedToWork: true,
37
+ description: "Simple array return - you said this works",
38
+ script: `
39
+ console.log("Testing simple array return");
40
+ return [1, 2, 3, "hello"];
41
+ `,
42
+ },
43
+ {
44
+ name: "simple-object",
45
+ expectedToWork: false,
46
+ description: "Simple object return - expected to fail with transferable error",
47
+ script: `
48
+ console.log("Testing simple object return");
49
+ return {
50
+ message: "Hello",
51
+ count: 42,
52
+ success: true
53
+ };
54
+ `,
55
+ },
56
+ {
57
+ name: "nested-object",
58
+ expectedToWork: false,
59
+ description: "Nested object return - expected to fail",
60
+ script: `
61
+ console.log("Testing nested object return");
62
+ return {
63
+ data: {
64
+ items: [1, 2, 3],
65
+ metadata: { timestamp: new Date().toISOString() }
66
+ },
67
+ status: "success"
68
+ };
69
+ `,
70
+ },
71
+ {
72
+ name: "object-with-functions",
73
+ expectedToWork: false,
74
+ description: "Object with functions - definitely should fail",
75
+ script: `
76
+ console.log("Testing object with functions");
77
+ return {
78
+ data: [1, 2, 3],
79
+ transform: function(x) { return x * 2; },
80
+ helper: () => "test"
81
+ };
82
+ `,
83
+ },
84
+ {
85
+ name: "array-of-objects",
86
+ expectedToWork: false,
87
+ description: "Array containing objects - expected to fail",
88
+ script: `
89
+ console.log("Testing array of objects");
90
+ return [
91
+ { id: 1, name: "Alice" },
92
+ { id: 2, name: "Bob" },
93
+ { id: 3, name: "Charlie" }
94
+ ];
95
+ `,
96
+ },
97
+ {
98
+ name: "json-stringify-workaround",
99
+ expectedToWork: true,
100
+ description: "Using JSON.stringify as workaround - should work",
101
+ script: `
102
+ console.log("Testing JSON.stringify workaround");
103
+ const data = {
104
+ message: "Hello",
105
+ items: [1, 2, 3],
106
+ nested: { key: "value" }
107
+ };
108
+ return JSON.stringify(data);
109
+ `,
110
+ },
111
+ {
112
+ name: "tool-call-result",
113
+ expectedToWork: false,
114
+ description: "Tool call result object - expected to fail",
115
+ script: `
116
+ console.log("Testing tool call result return");
117
+
118
+ try {
119
+ const searchResult = await callTool("fileSearch", { searchTerm: "package.json" });
120
+
121
+ // Try to return a structured response with the tool result
122
+ return {
123
+ success: true,
124
+ toolResult: searchResult,
125
+ timestamp: new Date().toISOString()
126
+ };
127
+ } catch (error) {
128
+ return {
129
+ success: false,
130
+ error: error.message
131
+ };
132
+ }
133
+ `,
134
+ },
135
+ {
136
+ name: "date-object",
137
+ expectedToWork: false,
138
+ description: "Date object return - expected to fail",
139
+ script: `
140
+ console.log("Testing Date object return");
141
+ return new Date();
142
+ `,
143
+ },
144
+ {
145
+ name: "map-object",
146
+ expectedToWork: false,
147
+ description: "Map object return - expected to fail",
148
+ script: `
149
+ console.log("Testing Map object return");
150
+ const map = new Map();
151
+ map.set("key1", "value1");
152
+ map.set("key2", "value2");
153
+ return map;
154
+ `,
155
+ },
156
+ ];
157
+ exports.testCases = testCases;
158
+ async function runSerializationTests() {
159
+ console.log("🧪 Running executeScript Serialization Tests\\n");
160
+ console.log("=".repeat(80));
161
+ const results = {
162
+ passed: 0,
163
+ failed: 0,
164
+ unexpected: 0,
165
+ details: [],
166
+ };
167
+ for (const testCase of testCases) {
168
+ console.log(`\\nšŸ“‹ Testing: ${testCase.name}`);
169
+ console.log(`šŸ“ Description: ${testCase.description}`);
170
+ console.log(`šŸŽÆ Expected to work: ${testCase.expectedToWork}`);
171
+ try {
172
+ const result = await (0, executeScript_1.executeScript)({
173
+ script: testCase.script,
174
+ maxToolCalls: 5,
175
+ maxTokens: 500,
176
+ maxExecutionTimeMs: 10000,
177
+ maxCostUsd: 0.1,
178
+ });
179
+ const actualWorked = result.success;
180
+ const matchesExpectation = actualWorked === testCase.expectedToWork;
181
+ if (matchesExpectation) {
182
+ results.passed++;
183
+ console.log(`āœ… PASS - Behaved as expected`);
184
+ }
185
+ else {
186
+ results.unexpected++;
187
+ console.log(`āš ļø UNEXPECTED - Expected ${testCase.expectedToWork ? "success" : "failure"}, got ${actualWorked ? "success" : "failure"}`);
188
+ }
189
+ results.details.push({
190
+ name: testCase.name,
191
+ expected: testCase.expectedToWork,
192
+ actual: actualWorked,
193
+ matches: matchesExpectation,
194
+ result: actualWorked ? result.result : null,
195
+ error: actualWorked ? null : result.error,
196
+ consoleOutput: result.consoleOutput,
197
+ });
198
+ if (actualWorked) {
199
+ console.log(`šŸ“Š Result type: ${typeof result.result}`);
200
+ console.log(`šŸ“Š Result: ${JSON.stringify(result.result).substring(0, 200)}${JSON.stringify(result.result).length > 200 ? "..." : ""}`);
201
+ }
202
+ else {
203
+ console.log(`āŒ Error: ${result.error}`);
204
+ }
205
+ if (result.consoleOutput.length > 0) {
206
+ console.log(`šŸ“ Console: ${result.consoleOutput.join(", ")}`);
207
+ }
208
+ }
209
+ catch (error) {
210
+ results.failed++;
211
+ console.log(`šŸ’„ TEST FRAMEWORK ERROR: ${error.message}`);
212
+ results.details.push({
213
+ name: testCase.name,
214
+ expected: testCase.expectedToWork,
215
+ actual: false,
216
+ matches: !testCase.expectedToWork,
217
+ result: null,
218
+ error: error.message,
219
+ consoleOutput: [],
220
+ });
221
+ }
222
+ }
223
+ console.log("\\n" + "=".repeat(80));
224
+ console.log("šŸ“Š SERIALIZATION TEST SUMMARY");
225
+ console.log("=".repeat(80));
226
+ console.log(`āœ… Tests matching expectations: ${results.passed}`);
227
+ console.log(`āš ļø Unexpected behaviors: ${results.unexpected}`);
228
+ console.log(`šŸ’„ Framework failures: ${results.failed}`);
229
+ console.log(`šŸ“‹ Total tests: ${testCases.length}`);
230
+ if (results.unexpected > 0) {
231
+ console.log("\\nšŸ” UNEXPECTED RESULTS:");
232
+ results.details
233
+ .filter((d) => !d.matches)
234
+ .forEach((detail) => {
235
+ console.log(` - ${detail.name}: Expected ${detail.expected ? "success" : "failure"}, got ${detail.actual ? "success" : "failure"}`);
236
+ if (detail.error) {
237
+ console.log(` Error: ${detail.error}`);
238
+ }
239
+ });
240
+ }
241
+ console.log("\\nšŸ”¬ ANALYSIS:");
242
+ const workingTypes = results.details
243
+ .filter((d) => d.actual)
244
+ .map((d) => d.name);
245
+ const failingTypes = results.details
246
+ .filter((d) => !d.actual)
247
+ .map((d) => d.name);
248
+ console.log("\\nāœ… Types that work:");
249
+ workingTypes.forEach((name) => console.log(` - ${name}`));
250
+ console.log("\\nāŒ Types that fail:");
251
+ failingTypes.forEach((name) => console.log(` - ${name}`));
252
+ console.log("\\nšŸ’” RECOMMENDATIONS:");
253
+ console.log(" 1. Use JSON.stringify() for complex objects");
254
+ console.log(" 2. Return primitive values when possible");
255
+ console.log(" 3. Consider createArtifact() for structured data");
256
+ console.log(" 4. Test your return types with this suite");
257
+ return results;
258
+ }
259
+ exports.runSerializationTests = runSerializationTests;
260
+ if (require.main === module) {
261
+ runSerializationTests().catch((error) => {
262
+ console.error("Test suite failed:", error);
263
+ process.exit(1);
264
+ });
265
+ }
266
+ //# sourceMappingURL=serialization-test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialization-test.js","sourceRoot":"","sources":["../../../../../../src/agents/tools/executeScript/examples/serialization-test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ declare function callTool(name: string, args: any): Promise<any>;
2
+ declare function llm(messages: {
3
+ role: string;
4
+ content: string;
5
+ }[], options?: {
6
+ model?: string;
7
+ max_tokens?: number;
8
+ }): Promise<{
9
+ choices: {
10
+ message: {
11
+ content: string;
12
+ };
13
+ }[];
14
+ }>;
15
+ declare function main(): Promise<{
16
+ success: boolean;
17
+ filesFound: any;
18
+ aiAnalysis: string;
19
+ timestamp: string;
20
+ }>;
@@ -0,0 +1,35 @@
1
+ async function main() {
2
+ console.log("Starting example script execution...");
3
+ const fileSearchResult = await callTool("fileSearch", {
4
+ searchTerm: "package.json",
5
+ });
6
+ console.log("Found files:", fileSearchResult);
7
+ const analysis = await llm([
8
+ {
9
+ role: "system",
10
+ content: "You are a helpful assistant that analyzes file search results.",
11
+ },
12
+ {
13
+ role: "user",
14
+ content: `Please analyze these file search results and provide a brief summary: ${JSON.stringify(fileSearchResult)}`,
15
+ },
16
+ ], {
17
+ model: "gpt-4o-mini",
18
+ max_tokens: 200,
19
+ });
20
+ console.log("AI Analysis:", analysis.choices[0].message.content);
21
+ return {
22
+ success: true,
23
+ filesFound: fileSearchResult,
24
+ aiAnalysis: analysis.choices[0].message.content,
25
+ timestamp: new Date().toISOString(),
26
+ };
27
+ }
28
+ main()
29
+ .then((result) => {
30
+ console.log("Script completed successfully:", result);
31
+ })
32
+ .catch((error) => {
33
+ console.error("Script failed:", error);
34
+ });
35
+ //# sourceMappingURL=simple-example.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simple-example.js","sourceRoot":"","sources":["../../../../../../src/agents/tools/executeScript/examples/simple-example.ts"],"names":[],"mappings":"AAkBA,KAAK,UAAU,IAAI;IACjB,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;IAGpD,MAAM,gBAAgB,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE;QACpD,UAAU,EAAE,cAAc;KAC3B,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;IAG9C,MAAM,QAAQ,GAAG,MAAM,GAAG,CACxB;QACE;YACE,IAAI,EAAE,QAAQ;YACd,OAAO,EACL,gEAAgE;SACnE;QACD;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,yEAAyE,IAAI,CAAC,SAAS,CAC9F,gBAAgB,CACjB,EAAE;SACJ;KACF,EACD;QACE,KAAK,EAAE,aAAa;QACpB,UAAU,EAAE,GAAG;KAChB,CACF,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAGjE,OAAO;QACL,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,gBAAgB;QAC5B,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO;QAC/C,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;AACJ,CAAC;AAGD,IAAI,EAAE;KACH,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;IACf,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,MAAM,CAAC,CAAC;AACxD,CAAC,CAAC;KACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACf,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ts-node
2
+ declare const testScript = "\n// Test script that demonstrates various executeScript capabilities\nconsole.log(\"Starting test script execution...\");\n\nasync function main() {\n // Test 1: Simple console output\n console.log(\"Test 1: Basic logging works\");\n\n // Test 2: Call a tool (file search)\n try {\n console.log(\"Test 2: Calling fileSearch tool...\");\n const searchResult = await callTool(\"fileSearch\", {\n searchTerm: \"package.json\"\n });\n console.log(\"File search result:\", searchResult);\n } catch (error) {\n console.error(\"Tool call failed:\", error.message);\n }\n\n // Test 3: Call another tool (text search)\n try {\n console.log(\"Test 3: Calling textSearch tool...\");\n const textResult = await callTool(\"textSearch\", {\n searchTerm: \"executeScript\"\n });\n console.log(\"Text search found\", textResult?.length || 0, \"matches\");\n } catch (error) {\n console.error(\"Text search failed:\", error.message);\n }\n\n // Test 4: Make an LLM call\n try {\n console.log(\"Test 4: Making LLM call...\");\n const llmResponse = await llm([\n {\n role: \"system\",\n content: \"You are a helpful assistant. Respond with exactly one sentence.\"\n },\n {\n role: \"user\",\n content: \"What is 2+2? Just give the answer briefly.\"\n }\n ], {\n model: \"gpt-4o-mini\",\n max_tokens: 50\n });\n\n console.log(\"LLM Response:\", llmResponse.choices[0].message.content);\n } catch (error) {\n console.error(\"LLM call failed:\", error.message);\n }\n\n // Test 5: Create an artifact\n try {\n console.log(\"Test 5: Creating artifact...\");\n createArtifact(\"test-results.md\", `# Test Results\n\nScript executed successfully at: ${new Date().toISOString()}\n\nThis is a test artifact created by the executeScript tool.\n\n## Test Summary\n- Console logging: \u2713\n- Tool calls: \u2713\n- LLM calls: \u2713\n- Artifact creation: \u2713\n`, \"markdown\");\n console.log(\"Artifact created successfully\");\n } catch (error) {\n console.error(\"Artifact creation failed:\", error.message);\n }\n\n // Return final result\n return {\n success: true,\n message: \"All tests completed successfully\",\n timestamp: new Date().toISOString(),\n testsRun: 5\n };\n}\n\n// Execute the main function\nawait main().then(result => {\n console.log(\"=== SCRIPT COMPLETED ===\");\n console.log(\"Final result:\", JSON.stringify(result, null, 2));\n}).catch(error => {\n console.error(\"=== SCRIPT FAILED ===\");\n console.error(\"Error:\", error);\n throw error;\n});\n";
3
+ declare function runTest(): Promise<void>;
4
+ export { runTest, testScript };