@tyvm/knowhow 0.0.108 → 0.0.109-dev.05fe5a0

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 (210) hide show
  1. package/README.md +45 -0
  2. package/package.json +9 -4
  3. package/scripts/build-for-node.sh +10 -24
  4. package/scripts/publish.sh +86 -0
  5. package/src/agents/base/base.ts +10 -0
  6. package/src/agents/tools/execCommand.ts +49 -6
  7. package/src/agents/tools/index.ts +0 -1
  8. package/src/agents/tools/list.ts +0 -2
  9. package/src/chat/CliChatService.ts +10 -1
  10. package/src/chat/modules/AgentModule.ts +61 -31
  11. package/src/chat/modules/SessionsModule.ts +47 -3
  12. package/src/chat/renderer/CompactRenderer.ts +20 -0
  13. package/src/chat/renderer/ConsoleRenderer.ts +19 -0
  14. package/src/chat/renderer/FancyRenderer.ts +19 -0
  15. package/src/chat/renderer/types.ts +11 -0
  16. package/src/cli.ts +91 -659
  17. package/src/clients/anthropic.ts +17 -16
  18. package/src/clients/index.ts +6 -5
  19. package/src/clients/types.ts +19 -4
  20. package/src/cloudWorker.ts +175 -113
  21. package/src/commands/agent.ts +246 -0
  22. package/src/commands/misc.ts +174 -0
  23. package/src/commands/modules.ts +217 -0
  24. package/src/commands/services.ts +77 -0
  25. package/src/commands/workers.ts +168 -0
  26. package/src/config.ts +37 -0
  27. package/src/fileSync.ts +50 -17
  28. package/src/index.ts +18 -0
  29. package/src/logger.ts +197 -0
  30. package/src/plugins/embedding.ts +11 -6
  31. package/src/plugins/plugins.ts +0 -21
  32. package/src/plugins/vim.ts +5 -16
  33. package/src/processors/JsonCompressor.ts +6 -6
  34. package/src/services/EventService.ts +61 -1
  35. package/src/services/KnowhowClient.ts +34 -4
  36. package/src/services/modules/index.ts +95 -51
  37. package/src/services/modules/types.ts +6 -0
  38. package/src/tunnel.ts +216 -0
  39. package/src/types.ts +0 -1
  40. package/src/worker.ts +105 -312
  41. package/src/workers/auth/WsMiddleware.ts +99 -0
  42. package/src/workers/auth/authMiddleware.ts +104 -0
  43. package/src/workers/auth/types.ts +14 -2
  44. package/src/workers/tools/index.ts +2 -0
  45. package/src/workers/tools/reloadConfig.ts +84 -0
  46. package/tests/services/WorkerReloadConfig.test.ts +141 -0
  47. package/tests/unit/commands/github-credentials.test.ts +211 -0
  48. package/tests/unit/modules/moduleLoading.test.ts +39 -37
  49. package/tests/unit/plugins/pluginLoading.test.ts +0 -85
  50. package/ts_build/package.json +9 -4
  51. package/ts_build/src/agents/base/base.js +11 -0
  52. package/ts_build/src/agents/base/base.js.map +1 -1
  53. package/ts_build/src/agents/tools/execCommand.d.ts +1 -1
  54. package/ts_build/src/agents/tools/execCommand.js +39 -5
  55. package/ts_build/src/agents/tools/execCommand.js.map +1 -1
  56. package/ts_build/src/agents/tools/index.d.ts +0 -1
  57. package/ts_build/src/agents/tools/index.js +0 -1
  58. package/ts_build/src/agents/tools/index.js.map +1 -1
  59. package/ts_build/src/agents/tools/list.js +0 -2
  60. package/ts_build/src/agents/tools/list.js.map +1 -1
  61. package/ts_build/src/chat/CliChatService.js +13 -1
  62. package/ts_build/src/chat/CliChatService.js.map +1 -1
  63. package/ts_build/src/chat/modules/AgentModule.d.ts +1 -1
  64. package/ts_build/src/chat/modules/AgentModule.js +43 -20
  65. package/ts_build/src/chat/modules/AgentModule.js.map +1 -1
  66. package/ts_build/src/chat/modules/SessionsModule.js +37 -3
  67. package/ts_build/src/chat/modules/SessionsModule.js.map +1 -1
  68. package/ts_build/src/chat/renderer/CompactRenderer.d.ts +4 -0
  69. package/ts_build/src/chat/renderer/CompactRenderer.js +16 -0
  70. package/ts_build/src/chat/renderer/CompactRenderer.js.map +1 -1
  71. package/ts_build/src/chat/renderer/ConsoleRenderer.d.ts +4 -0
  72. package/ts_build/src/chat/renderer/ConsoleRenderer.js +16 -0
  73. package/ts_build/src/chat/renderer/ConsoleRenderer.js.map +1 -1
  74. package/ts_build/src/chat/renderer/FancyRenderer.d.ts +4 -0
  75. package/ts_build/src/chat/renderer/FancyRenderer.js +16 -0
  76. package/ts_build/src/chat/renderer/FancyRenderer.js.map +1 -1
  77. package/ts_build/src/chat/renderer/types.d.ts +2 -0
  78. package/ts_build/src/cli.js +47 -519
  79. package/ts_build/src/cli.js.map +1 -1
  80. package/ts_build/src/clients/anthropic.d.ts +5 -5
  81. package/ts_build/src/clients/anthropic.js +17 -16
  82. package/ts_build/src/clients/anthropic.js.map +1 -1
  83. package/ts_build/src/clients/index.js +2 -4
  84. package/ts_build/src/clients/index.js.map +1 -1
  85. package/ts_build/src/clients/types.d.ts +3 -2
  86. package/ts_build/src/cloudWorker.d.ts +14 -0
  87. package/ts_build/src/cloudWorker.js +105 -66
  88. package/ts_build/src/cloudWorker.js.map +1 -1
  89. package/ts_build/src/commands/agent.d.ts +6 -0
  90. package/ts_build/src/commands/agent.js +229 -0
  91. package/ts_build/src/commands/agent.js.map +1 -0
  92. package/ts_build/src/commands/misc.d.ts +10 -0
  93. package/ts_build/src/commands/misc.js +197 -0
  94. package/ts_build/src/commands/misc.js.map +1 -0
  95. package/ts_build/src/commands/modules.d.ts +3 -0
  96. package/ts_build/src/commands/modules.js +207 -0
  97. package/ts_build/src/commands/modules.js.map +1 -0
  98. package/ts_build/src/commands/services.d.ts +5 -0
  99. package/ts_build/src/commands/services.js +87 -0
  100. package/ts_build/src/commands/services.js.map +1 -0
  101. package/ts_build/src/commands/workers.d.ts +6 -0
  102. package/ts_build/src/commands/workers.js +168 -0
  103. package/ts_build/src/commands/workers.js.map +1 -0
  104. package/ts_build/src/config.d.ts +1 -0
  105. package/ts_build/src/config.js +32 -0
  106. package/ts_build/src/config.js.map +1 -1
  107. package/ts_build/src/fileSync.d.ts +6 -0
  108. package/ts_build/src/fileSync.js +37 -12
  109. package/ts_build/src/fileSync.js.map +1 -1
  110. package/ts_build/src/index.d.ts +1 -0
  111. package/ts_build/src/index.js +17 -1
  112. package/ts_build/src/index.js.map +1 -1
  113. package/ts_build/src/logger.d.ts +21 -0
  114. package/ts_build/src/logger.js +106 -0
  115. package/ts_build/src/logger.js.map +1 -0
  116. package/ts_build/src/plugins/embedding.js +4 -3
  117. package/ts_build/src/plugins/embedding.js.map +1 -1
  118. package/ts_build/src/plugins/plugins.d.ts +0 -2
  119. package/ts_build/src/plugins/plugins.js +0 -11
  120. package/ts_build/src/plugins/plugins.js.map +1 -1
  121. package/ts_build/src/plugins/vim.js +3 -9
  122. package/ts_build/src/plugins/vim.js.map +1 -1
  123. package/ts_build/src/processors/JsonCompressor.js +4 -4
  124. package/ts_build/src/processors/JsonCompressor.js.map +1 -1
  125. package/ts_build/src/services/EventService.d.ts +6 -1
  126. package/ts_build/src/services/EventService.js +29 -0
  127. package/ts_build/src/services/EventService.js.map +1 -1
  128. package/ts_build/src/services/KnowhowClient.d.ts +13 -1
  129. package/ts_build/src/services/KnowhowClient.js +19 -2
  130. package/ts_build/src/services/KnowhowClient.js.map +1 -1
  131. package/ts_build/src/services/modules/index.d.ts +33 -0
  132. package/ts_build/src/services/modules/index.js +67 -47
  133. package/ts_build/src/services/modules/index.js.map +1 -1
  134. package/ts_build/src/services/modules/types.d.ts +6 -0
  135. package/ts_build/src/tunnel.d.ts +27 -0
  136. package/ts_build/src/tunnel.js +112 -0
  137. package/ts_build/src/tunnel.js.map +1 -0
  138. package/ts_build/src/types.d.ts +0 -1
  139. package/ts_build/src/types.js.map +1 -1
  140. package/ts_build/src/worker.d.ts +1 -4
  141. package/ts_build/src/worker.js +59 -227
  142. package/ts_build/src/worker.js.map +1 -1
  143. package/ts_build/src/workers/auth/WsMiddleware.d.ts +8 -0
  144. package/ts_build/src/workers/auth/WsMiddleware.js +65 -0
  145. package/ts_build/src/workers/auth/WsMiddleware.js.map +1 -0
  146. package/ts_build/src/workers/auth/authMiddleware.d.ts +3 -0
  147. package/ts_build/src/workers/auth/authMiddleware.js +60 -0
  148. package/ts_build/src/workers/auth/authMiddleware.js.map +1 -0
  149. package/ts_build/src/workers/auth/types.d.ts +8 -1
  150. package/ts_build/src/workers/tools/index.d.ts +2 -0
  151. package/ts_build/src/workers/tools/index.js +4 -1
  152. package/ts_build/src/workers/tools/index.js.map +1 -1
  153. package/ts_build/src/workers/tools/reloadConfig.d.ts +14 -0
  154. package/ts_build/src/workers/tools/reloadConfig.js +48 -0
  155. package/ts_build/src/workers/tools/reloadConfig.js.map +1 -0
  156. package/ts_build/tests/services/WorkerReloadConfig.test.d.ts +1 -0
  157. package/ts_build/tests/services/WorkerReloadConfig.test.js +86 -0
  158. package/ts_build/tests/services/WorkerReloadConfig.test.js.map +1 -0
  159. package/ts_build/tests/unit/commands/github-credentials.test.d.ts +1 -0
  160. package/ts_build/tests/unit/commands/github-credentials.test.js +146 -0
  161. package/ts_build/tests/unit/commands/github-credentials.test.js.map +1 -0
  162. package/ts_build/tests/unit/modules/moduleLoading.test.js +20 -26
  163. package/ts_build/tests/unit/modules/moduleLoading.test.js.map +1 -1
  164. package/ts_build/tests/unit/plugins/pluginLoading.test.js +0 -65
  165. package/ts_build/tests/unit/plugins/pluginLoading.test.js.map +1 -1
  166. package/src/agents/tools/executeScript/README.md +0 -94
  167. package/src/agents/tools/executeScript/definition.ts +0 -79
  168. package/src/agents/tools/executeScript/examples/dependency-injection-validation.ts +0 -272
  169. package/src/agents/tools/executeScript/examples/quick-test.ts +0 -74
  170. package/src/agents/tools/executeScript/examples/serialization-test.ts +0 -321
  171. package/src/agents/tools/executeScript/examples/test-runner.ts +0 -197
  172. package/src/agents/tools/executeScript/index.ts +0 -98
  173. package/src/services/script-execution/SandboxContext.ts +0 -282
  174. package/src/services/script-execution/ScriptExecutor.ts +0 -441
  175. package/src/services/script-execution/ScriptPolicy.ts +0 -194
  176. package/src/services/script-execution/ScriptTracer.ts +0 -249
  177. package/src/services/script-execution/types.ts +0 -134
  178. package/ts_build/src/agents/tools/executeScript/definition.d.ts +0 -2
  179. package/ts_build/src/agents/tools/executeScript/definition.js +0 -76
  180. package/ts_build/src/agents/tools/executeScript/definition.js.map +0 -1
  181. package/ts_build/src/agents/tools/executeScript/examples/dependency-injection-validation.d.ts +0 -18
  182. package/ts_build/src/agents/tools/executeScript/examples/dependency-injection-validation.js +0 -192
  183. package/ts_build/src/agents/tools/executeScript/examples/dependency-injection-validation.js.map +0 -1
  184. package/ts_build/src/agents/tools/executeScript/examples/quick-test.d.ts +0 -3
  185. package/ts_build/src/agents/tools/executeScript/examples/quick-test.js +0 -64
  186. package/ts_build/src/agents/tools/executeScript/examples/quick-test.js.map +0 -1
  187. package/ts_build/src/agents/tools/executeScript/examples/serialization-test.d.ts +0 -15
  188. package/ts_build/src/agents/tools/executeScript/examples/serialization-test.js +0 -266
  189. package/ts_build/src/agents/tools/executeScript/examples/serialization-test.js.map +0 -1
  190. package/ts_build/src/agents/tools/executeScript/examples/test-runner.d.ts +0 -4
  191. package/ts_build/src/agents/tools/executeScript/examples/test-runner.js +0 -208
  192. package/ts_build/src/agents/tools/executeScript/examples/test-runner.js.map +0 -1
  193. package/ts_build/src/agents/tools/executeScript/index.d.ts +0 -28
  194. package/ts_build/src/agents/tools/executeScript/index.js +0 -72
  195. package/ts_build/src/agents/tools/executeScript/index.js.map +0 -1
  196. package/ts_build/src/services/script-execution/SandboxContext.d.ts +0 -34
  197. package/ts_build/src/services/script-execution/SandboxContext.js +0 -189
  198. package/ts_build/src/services/script-execution/SandboxContext.js.map +0 -1
  199. package/ts_build/src/services/script-execution/ScriptExecutor.d.ts +0 -19
  200. package/ts_build/src/services/script-execution/ScriptExecutor.js +0 -269
  201. package/ts_build/src/services/script-execution/ScriptExecutor.js.map +0 -1
  202. package/ts_build/src/services/script-execution/ScriptPolicy.d.ts +0 -28
  203. package/ts_build/src/services/script-execution/ScriptPolicy.js +0 -115
  204. package/ts_build/src/services/script-execution/ScriptPolicy.js.map +0 -1
  205. package/ts_build/src/services/script-execution/ScriptTracer.d.ts +0 -19
  206. package/ts_build/src/services/script-execution/ScriptTracer.js +0 -186
  207. package/ts_build/src/services/script-execution/ScriptTracer.js.map +0 -1
  208. package/ts_build/src/services/script-execution/types.d.ts +0 -108
  209. package/ts_build/src/services/script-execution/types.js +0 -3
  210. package/ts_build/src/services/script-execution/types.js.map +0 -1
@@ -1,249 +0,0 @@
1
- import { TraceEvent, TraceMetrics, ExecutionTrace, QuotaUsage } from "./types";
2
-
3
- /**
4
- * Handles tracing and monitoring of script execution
5
- */
6
- export class ScriptTracer {
7
- private events: TraceEvent[] = [];
8
- private metrics: TraceMetrics;
9
- private startTime: number;
10
-
11
- constructor() {
12
- this.startTime = Date.now();
13
- this.metrics = {
14
- executionTimeMs: 0,
15
- toolCallCount: 0,
16
- llmCallCount: 0,
17
- tokenUsage: {
18
- prompt: 0,
19
- completion: 0,
20
- total: 0,
21
- },
22
- memoryUsage: {
23
- heapUsed: 0,
24
- heapTotal: 0,
25
- },
26
- costUsd: 0,
27
- };
28
- }
29
-
30
- /**
31
- * Emit a trace event
32
- */
33
- emitEvent(type: string, data: any): void {
34
- const event: TraceEvent = {
35
- id: `evt-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`,
36
- type,
37
- timestamp: Date.now(),
38
- data: this.sanitizeEventData(data),
39
- };
40
-
41
- this.events.push(event);
42
- this.updateMetrics(event);
43
- }
44
-
45
- /**
46
- * Record cost for tracking
47
- */
48
- recordCost(costUsd: number): void {
49
- this.metrics.costUsd += costUsd;
50
- this.emitEvent("cost_recorded", {
51
- costUsd,
52
- totalCost: this.metrics.costUsd,
53
- });
54
- }
55
-
56
- /**
57
- * Get current quota usage
58
- */
59
- getCurrentQuota(): QuotaUsage {
60
- return {
61
- toolCalls: this.metrics.toolCallCount,
62
- tokens: this.metrics.tokenUsage.total,
63
- executionTimeMs: Date.now() - this.startTime,
64
- costUsd: this.metrics.costUsd,
65
- };
66
- }
67
-
68
- /**
69
- * Get all trace events
70
- */
71
- getEvents(): TraceEvent[] {
72
- return [...this.events];
73
- }
74
-
75
- /**
76
- * Get current metrics
77
- */
78
- getMetrics(): TraceMetrics {
79
- return {
80
- ...this.metrics,
81
- executionTimeMs: Date.now() - this.startTime,
82
- };
83
- }
84
-
85
- /**
86
- * Generate execution trace
87
- */
88
- getTrace(): ExecutionTrace {
89
- return {
90
- id: `trace-${Date.now()}`,
91
- startTime: this.startTime,
92
- endTime: Date.now(),
93
- events: this.getEvents(),
94
- metrics: this.getMetrics(),
95
- success: !this.events.some((e) => e.type.includes("error")),
96
- error: this.getLastError(),
97
- };
98
- }
99
-
100
- /**
101
- * Clear all events and reset metrics
102
- */
103
- reset(): void {
104
- this.events = [];
105
- this.startTime = Date.now();
106
- this.metrics = {
107
- executionTimeMs: 0,
108
- toolCallCount: 0,
109
- llmCallCount: 0,
110
- tokenUsage: {
111
- prompt: 0,
112
- completion: 0,
113
- total: 0,
114
- },
115
- memoryUsage: {
116
- heapUsed: 0,
117
- heapTotal: 0,
118
- },
119
- costUsd: 0,
120
- };
121
- }
122
-
123
- /**
124
- * Update metrics based on events
125
- */
126
- private updateMetrics(event: TraceEvent): void {
127
- switch (event.type) {
128
- case "tool_call_start":
129
- this.metrics.toolCallCount++;
130
- break;
131
-
132
- case "llm_call_start":
133
- this.metrics.llmCallCount++;
134
- break;
135
-
136
- case "llm_call_success":
137
- if (event.data && event.data.usage) {
138
- const usage = event.data.usage;
139
- this.metrics.tokenUsage.prompt += usage.prompt_tokens || 0;
140
- this.metrics.tokenUsage.completion += usage.completion_tokens || 0;
141
- this.metrics.tokenUsage.total += usage.total_tokens || 0;
142
- }
143
- break;
144
- }
145
-
146
- // Update memory usage if available
147
- if (typeof process !== "undefined" && process.memoryUsage) {
148
- const memUsage = process.memoryUsage();
149
- this.metrics.memoryUsage.heapUsed = memUsage.heapUsed;
150
- this.metrics.memoryUsage.heapTotal = memUsage.heapTotal;
151
- }
152
- }
153
-
154
- /**
155
- * Get the last error from events
156
- */
157
- private getLastError(): string | undefined {
158
- const errorEvents = this.events
159
- .filter((e) => e.type.includes("error"))
160
- .reverse();
161
-
162
- if (errorEvents.length > 0) {
163
- const lastError = errorEvents[0];
164
- return (
165
- lastError.data?.error || lastError.data?.message || "Unknown error"
166
- );
167
- }
168
-
169
- return undefined;
170
- }
171
-
172
- /**
173
- * Sanitize event data to prevent sensitive information leaks
174
- */
175
- private sanitizeEventData(data: any): any {
176
- if (data === null || data === undefined) {
177
- return data;
178
- }
179
-
180
- if (typeof data === "string") {
181
- // Truncate very long strings
182
- return data.length > 1000
183
- ? data.substring(0, 1000) + "...[TRUNCATED]"
184
- : data;
185
- }
186
-
187
- if (Array.isArray(data)) {
188
- return data.map((item) => this.sanitizeEventData(item));
189
- }
190
-
191
- if (typeof data === "object") {
192
- const sanitized: any = {};
193
- for (const [key, value] of Object.entries(data)) {
194
- // Redact sensitive keys
195
- if (this.isSensitiveKey(key)) {
196
- sanitized[key] = "[REDACTED]";
197
- } else if (key === "parameters" && typeof value === "object") {
198
- // Special handling for tool parameters
199
- sanitized[key] = this.sanitizeParameters(value);
200
- } else {
201
- sanitized[key] = this.sanitizeEventData(value);
202
- }
203
- }
204
- return sanitized;
205
- }
206
-
207
- return data;
208
- }
209
-
210
- /**
211
- * Check if a key contains sensitive information
212
- */
213
- private isSensitiveKey(key: string): boolean {
214
- const lowerKey = key.toLowerCase();
215
- const sensitivePatterns = [
216
- "password",
217
- "secret",
218
- "token",
219
- "key",
220
- "auth",
221
- "credential",
222
- "private",
223
- "confidential",
224
- ];
225
-
226
- return sensitivePatterns.some((pattern) => lowerKey.includes(pattern));
227
- }
228
-
229
- /**
230
- * Sanitize tool parameters
231
- */
232
- private sanitizeParameters(params: any): any {
233
- if (!params || typeof params !== "object") {
234
- return params;
235
- }
236
-
237
- const sanitized: any = {};
238
- for (const [key, value] of Object.entries(params)) {
239
- if (this.isSensitiveKey(key)) {
240
- sanitized[key] = "[REDACTED]";
241
- } else if (typeof value === "string" && value.length > 500) {
242
- sanitized[key] = value.substring(0, 500) + "...[TRUNCATED]";
243
- } else {
244
- sanitized[key] = this.sanitizeEventData(value);
245
- }
246
- }
247
- return sanitized;
248
- }
249
- }
@@ -1,134 +0,0 @@
1
- import { Message } from '../../clients/types';
2
-
3
- // Basic trace event interface
4
- export interface TraceEvent {
5
- id: string;
6
- type: string;
7
- timestamp: number;
8
- data: any;
9
- }
10
-
11
- // Trace metrics for performance monitoring
12
- export interface TraceMetrics {
13
- executionTimeMs: number;
14
- toolCallCount: number;
15
- llmCallCount: number;
16
- tokenUsage: {
17
- prompt: number;
18
- completion: number;
19
- total: number;
20
- };
21
- memoryUsage: {
22
- heapUsed: number;
23
- heapTotal: number;
24
- };
25
- costUsd: number;
26
- }
27
-
28
- // Complete execution trace
29
- export interface ExecutionTrace {
30
- id: string;
31
- startTime: number;
32
- endTime: number;
33
- events: TraceEvent[];
34
- metrics: TraceMetrics;
35
- success: boolean;
36
- error?: string;
37
- }
38
-
39
- // Resource quotas for script execution
40
- export interface ResourceQuotas {
41
- maxToolCalls: number;
42
- maxTokens: number;
43
- maxExecutionTimeMs: number;
44
- maxCostUsd: number;
45
- maxMemoryMb: number;
46
- }
47
-
48
- // Security policy configuration
49
- export interface SecurityPolicy {
50
- allowlistedTools: string[];
51
- denylistedTools: string[];
52
- maxScriptLength: number;
53
- allowNetworkAccess: boolean;
54
- allowFileSystemAccess: boolean;
55
- }
56
-
57
- // Current quota usage tracking
58
- export interface QuotaUsage {
59
- toolCalls: number;
60
- tokens: number;
61
- executionTimeMs: number;
62
- costUsd: number;
63
- }
64
-
65
- // Policy violation record
66
- export interface PolicyViolation {
67
- id: string;
68
- type: 'quota_exceeded' | 'tool_denied' | 'tool_not_allowed' | 'script_validation';
69
- message: string;
70
- timestamp: number;
71
- usage: QuotaUsage;
72
- }
73
-
74
- // Script execution request
75
- export interface ExecutionRequest {
76
- script: string;
77
- context?: Record<string, any>;
78
- quotas?: Partial<ResourceQuotas>;
79
- policy?: Partial<SecurityPolicy>;
80
- }
81
-
82
- // Script execution result
83
- export interface ExecutionResult {
84
- success: boolean;
85
- error: string | null;
86
- result: any;
87
- trace: ExecutionTrace;
88
- artifacts: Artifact[];
89
- consoleOutput: string[];
90
- }
91
-
92
- // Artifact created by script
93
- export interface Artifact {
94
- id: string;
95
- name: string;
96
- type: 'text' | 'json' | 'csv' | 'html' | 'markdown';
97
- content: string;
98
- createdAt: string;
99
- }
100
-
101
- // Tool execution result
102
- export interface ToolResult {
103
- success: boolean;
104
- result?: any;
105
- error?: string;
106
- }
107
-
108
- // Tool call record
109
- export interface ToolCall {
110
- id: string;
111
- name: string;
112
- args: Record<string, any>;
113
- result?: any;
114
- error?: string;
115
- timestamp: number;
116
- duration?: number;
117
- }
118
-
119
- // LLM call record
120
- export interface LLMCall {
121
- id: string;
122
- model: string;
123
- messages: Message[];
124
- response?: any;
125
- error?: string;
126
- timestamp: number;
127
- duration?: number;
128
- tokenUsage?: {
129
- prompt: number;
130
- completion: number;
131
- total: number;
132
- };
133
- cost?: number;
134
- }
@@ -1,2 +0,0 @@
1
- import { Tool } from "../../../clients";
2
- export declare const executeScriptDefinition: Tool;
@@ -1,76 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.executeScriptDefinition = void 0;
4
- exports.executeScriptDefinition = {
5
- type: "function",
6
- function: {
7
- name: "executeScript",
8
- description: `Used to contruct a script that calls tools and analyzes data, not for general purpose scripting.
9
-
10
- This is most useful for complex workflows of tool calls that need conditional logic based off tool responses.
11
-
12
- The script has access to:
13
- - callTool(toolName, parameters): Call any available tool
14
- - llm(messages, options): Make LLM calls
15
- - createArtifact(name, content, type): Create downloadable artifacts
16
- - console: Standard console logging
17
- - getQuotaUsage(): Check resource usage
18
- - sleep(ms): Pause execution for a specified time, max 2000ms
19
-
20
- The script cannot:
21
- - import or require
22
- - make external network requests, outside of callTool and llm
23
-
24
- Example:
25
- \`\`\`typescript
26
- // Call a tool
27
- const searchResult = await callTool('textSearch', { searchTerm: 'hello world' });
28
- console.log('Search found:', searchResult);
29
-
30
- // Call LLM
31
- const response = await llm([
32
- { role: 'user', content: 'Explain quantum computing' }
33
- ], { model: 'gpt-4o-mini', maxTokens: 100 });
34
- console.log('LLM response:', response.choices[0].message.content);
35
-
36
- // Create an artifact
37
- createArtifact('summary.md', '# Summary\\nThis is a test', 'markdown');
38
-
39
- return { message: 'Script completed successfully' };
40
- \`\`\`
41
-
42
- You must return the data you want to be the functionResp
43
-
44
- Test tools yourself to know the return type when scripting. Can pass JSON.stringified data into llm call if you don't need to know the type.
45
- You cannot use isolation breaking methods like: setTimeout setInterval setImmediate clearTimeout clearInterval
46
-
47
- Security: Scripts run in isolation with quotas on tool calls, tokens, time, and cost.`,
48
- parameters: {
49
- type: "object",
50
- properties: {
51
- script: {
52
- type: "string",
53
- description: "The TypeScript code to execute. 4000 tokens or less",
54
- },
55
- maxToolCalls: {
56
- type: "number",
57
- description: "Maximum number of tool calls allowed (default: 50)",
58
- },
59
- maxTokens: {
60
- type: "number",
61
- description: "Maximum tokens for LLM calls (default: 10000)",
62
- },
63
- maxExecutionTimeMs: {
64
- type: "number",
65
- description: "Maximum execution time in milliseconds (default: 30000)",
66
- },
67
- maxCostUsd: {
68
- type: "number",
69
- description: "Maximum cost in USD (default: 1.0)",
70
- },
71
- },
72
- required: ["script"],
73
- },
74
- },
75
- };
76
- //# sourceMappingURL=definition.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../../src/agents/tools/executeScript/definition.ts"],"names":[],"mappings":";;;AAKa,QAAA,uBAAuB,GAAS;IAC3C,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wFAuCuE;QAEpF,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,qDAAqD;iBACnE;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,oDAAoD;iBAClE;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,+CAA+C;iBAC7D;gBACD,kBAAkB,EAAE;oBAClB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,yDAAyD;iBAC5D;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,oCAAoC;iBAClD;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF;CACF,CAAC"}
@@ -1,18 +0,0 @@
1
- #!/usr/bin/env ts-node
2
- import { ToolsService } from "../../../../services/Tools";
3
- import { BaseAgent } from "../../../base/base";
4
- import { Message } from "../../../../clients/types";
5
- declare class TestAgent1 extends BaseAgent {
6
- name: string;
7
- description: string;
8
- getInitialMessages(userInput: string): Promise<Message[]>;
9
- getToolsServiceForTest(): ToolsService;
10
- }
11
- declare class TestAgent2 extends BaseAgent {
12
- name: string;
13
- description: string;
14
- getInitialMessages(userInput: string): Promise<Message[]>;
15
- getToolsServiceForTest(): ToolsService;
16
- }
17
- declare function runValidationTests(): Promise<boolean>;
18
- export { runValidationTests, TestAgent1, TestAgent2 };
@@ -1,192 +0,0 @@
1
- #!/usr/bin/env ts-node
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.TestAgent2 = exports.TestAgent1 = void 0;
5
- exports.runValidationTests = runValidationTests;
6
- const Tools_1 = require("../../../../services/Tools");
7
- const clients_1 = require("../../../../clients");
8
- const services_1 = require("../../../../services/");
9
- const base_1 = require("../../../base/base");
10
- const __1 = require("../");
11
- const definition_1 = require("../definition");
12
- class TestAgent1 extends base_1.BaseAgent {
13
- name = "TestAgent1";
14
- description = "Test agent for dependency injection validation";
15
- async getInitialMessages(userInput) {
16
- return [
17
- { role: "system", content: this.description },
18
- { role: "user", content: userInput },
19
- ];
20
- }
21
- getToolsServiceForTest() {
22
- return this.tools;
23
- }
24
- }
25
- exports.TestAgent1 = TestAgent1;
26
- class TestAgent2 extends base_1.BaseAgent {
27
- name = "TestAgent2";
28
- description = "Another test agent for dependency injection validation";
29
- async getInitialMessages(userInput) {
30
- return [
31
- { role: "system", content: this.description },
32
- { role: "user", content: userInput },
33
- ];
34
- }
35
- getToolsServiceForTest() {
36
- return this.tools;
37
- }
38
- }
39
- exports.TestAgent2 = TestAgent2;
40
- function testToolWithContext(params) {
41
- const context = this.getContext();
42
- console.log("āœ… Tool called with context:");
43
- console.log("- AgentService available:", !!context.Agents);
44
- console.log("- EventService available:", !!context.Events);
45
- console.log("- Clients available:", !!context.Clients);
46
- console.log("- ToolsService self-reference available:", !!context.Tools);
47
- console.log("- Test message:", params.message);
48
- return {
49
- success: true,
50
- contextValidated: true,
51
- hasAgentService: !!context.Agents,
52
- hasEventService: !!context.Events,
53
- hasClients: !!context.Clients,
54
- hasToolsService: !!context.Tools,
55
- testMessage: params.message,
56
- };
57
- }
58
- async function runValidationTests() {
59
- console.log("🧪 Starting Tools Dependency Injection Validation Tests\n");
60
- console.log("šŸ“ Test 1: Agent Isolation");
61
- const agent1 = new TestAgent1({
62
- Events: new services_1.EventService(),
63
- Tools: new Tools_1.ToolsService({ Clients: clients_1.Clients }),
64
- });
65
- const agent2 = new TestAgent2({
66
- Events: new services_1.EventService(),
67
- Tools: new Tools_1.ToolsService(),
68
- });
69
- const toolsService1 = agent1.getToolsServiceForTest();
70
- const toolsService2 = agent2.getToolsServiceForTest();
71
- console.log("āœ… Agent1 and Agent2 have different ToolsService instances:", toolsService1 !== toolsService2);
72
- console.log("\nšŸ“ Test 2: Context Injection Validation");
73
- const context1 = toolsService1.getContext();
74
- const context2 = toolsService2.getContext();
75
- console.log("āœ… Agent1 context has required services:", {
76
- agentService: !!context1.Agents,
77
- eventService: !!context1.Events,
78
- clients: !!context1.Clients,
79
- toolsService: !!context1.Tools,
80
- });
81
- console.log("āœ… Agent2 context has required services:", {
82
- agentService: !!context2.Agents,
83
- eventService: !!context2.Events,
84
- clients: !!context2.Clients,
85
- toolsService: !!context2.Tools,
86
- });
87
- console.log("\nšŸ“ Test 3: Tool Context Access");
88
- toolsService1.addTool({
89
- type: "function",
90
- function: {
91
- name: "testToolWithContext",
92
- description: "Test tool for context validation",
93
- parameters: {
94
- type: "object",
95
- properties: {
96
- message: { type: "string", description: "Test message" },
97
- },
98
- required: ["message"],
99
- },
100
- },
101
- });
102
- toolsService1.setFunction("testToolWithContext", testToolWithContext);
103
- try {
104
- const result = await toolsService1.callTool({
105
- id: "test-call",
106
- type: "function",
107
- function: {
108
- name: "testToolWithContext",
109
- arguments: JSON.stringify({ message: "Hello from Agent1!" }),
110
- },
111
- });
112
- console.log("āœ… Tool executed successfully with context access:", result.functionResp?.success);
113
- }
114
- catch (error) {
115
- console.error("āŒ Tool execution failed:", error);
116
- }
117
- console.log("\nšŸ“ Test 4: Tool Isolation Between Agents");
118
- const agent1Tools = toolsService1.getTools().map((t) => t.function.name);
119
- const agent2Tools = toolsService2.getTools().map((t) => t.function.name);
120
- console.log("Agent1 tools:", agent1Tools.length);
121
- console.log("Agent2 tools:", agent2Tools.length);
122
- console.log("āœ… Agent2 does not have agent1's custom tool:", !agent2Tools.includes("testToolWithContext"));
123
- function agent2SpecificTool(params) {
124
- const context = this.getContext();
125
- return {
126
- agent: "Agent2",
127
- data: params.data,
128
- contextAvailable: !!context,
129
- };
130
- }
131
- toolsService2.addTool({
132
- type: "function",
133
- function: {
134
- name: "agent2SpecificTool",
135
- description: "Tool specific to Agent2",
136
- parameters: {
137
- type: "object",
138
- properties: {
139
- data: { type: "string", description: "Test data" },
140
- },
141
- required: ["data"],
142
- },
143
- },
144
- });
145
- toolsService2.setFunction("agent2SpecificTool", agent2SpecificTool);
146
- const agent1ToolsAfter = toolsService1.getTools().map((t) => t.function.name);
147
- const agent2ToolsAfter = toolsService2.getTools().map((t) => t.function.name);
148
- console.log("āœ… Agent1 does not have agent2's tool:", !agent1ToolsAfter.includes("agent2SpecificTool"));
149
- console.log("āœ… Agent2 has its specific tool:", agent2ToolsAfter.includes("agent2SpecificTool"));
150
- console.log("\nšŸ“ Test 6: executeScript Context Integration");
151
- const executeScriptTest = `
152
- async function main() {
153
- return callTool("testToolWithContext", {message: "Hello from executeScript!"});
154
- }
155
- return main()
156
- `;
157
- toolsService1.defineTools([definition_1.executeScriptDefinition], { executeScript: __1.executeScript });
158
- try {
159
- const executeResult = await toolsService1.callTool({
160
- id: "execute-test",
161
- type: "function",
162
- function: {
163
- name: "executeScript",
164
- arguments: JSON.stringify({ script: executeScriptTest }),
165
- },
166
- });
167
- console.log("āœ… executeScript using dependency injection:", executeResult.functionResp);
168
- }
169
- catch (error) {
170
- console.error("āŒ executeScript test failed:", error);
171
- }
172
- console.log("\nšŸŽ‰ All Tests Completed!");
173
- console.log("\nšŸ“Š Test Summary:");
174
- console.log("āœ… Agent isolation working - each agent has independent ToolsService");
175
- console.log("āœ… Context injection working - tools can access all required services");
176
- console.log("āœ… No singleton usage - tools use bound context instead");
177
- console.log("āœ… Backward compatibility maintained - existing patterns still work");
178
- console.log("āœ… executeScript migrated successfully to dependency injection");
179
- return true;
180
- }
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
@@ -1 +0,0 @@
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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"}
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env ts-node
2
- declare function quickTest(): Promise<void>;
3
- export { quickTest };