@tyvm/knowhow 0.0.108-dev.126b29e → 0.0.108-dev.501f36f

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 (177) hide show
  1. package/package.json +2 -3
  2. package/src/agents/base/base.ts +9 -0
  3. package/src/agents/tools/index.ts +0 -1
  4. package/src/agents/tools/list.ts +0 -2
  5. package/src/chat/CliChatService.ts +10 -1
  6. package/src/chat/renderer/CompactRenderer.ts +20 -0
  7. package/src/chat/renderer/ConsoleRenderer.ts +19 -0
  8. package/src/chat/renderer/FancyRenderer.ts +19 -0
  9. package/src/chat/renderer/types.ts +11 -0
  10. package/src/cli.ts +91 -664
  11. package/src/clients/index.ts +6 -5
  12. package/src/clients/types.ts +12 -4
  13. package/src/cloudWorker.ts +110 -122
  14. package/src/commands/agent.ts +246 -0
  15. package/src/commands/misc.ts +174 -0
  16. package/src/commands/modules.ts +182 -0
  17. package/src/commands/services.ts +77 -0
  18. package/src/commands/workers.ts +168 -0
  19. package/src/config.ts +37 -0
  20. package/src/fileSync.ts +50 -17
  21. package/src/index.ts +1 -0
  22. package/src/logger.ts +197 -0
  23. package/src/plugins/plugins.ts +0 -21
  24. package/src/processors/JsonCompressor.ts +6 -6
  25. package/src/services/EventService.ts +61 -1
  26. package/src/services/KnowhowClient.ts +12 -2
  27. package/src/services/S3.ts +0 -10
  28. package/src/services/modules/index.ts +70 -50
  29. package/src/services/modules/types.ts +4 -0
  30. package/src/tunnel.ts +216 -0
  31. package/src/types.ts +0 -1
  32. package/src/worker.ts +65 -336
  33. package/src/workers/auth/WsMiddleware.ts +99 -0
  34. package/src/workers/auth/authMiddleware.ts +104 -0
  35. package/src/workers/auth/types.ts +14 -2
  36. package/tests/unit/commands/github-credentials.test.ts +211 -0
  37. package/tests/unit/modules/moduleLoading.test.ts +39 -37
  38. package/tests/unit/plugins/pluginLoading.test.ts +0 -85
  39. package/ts_build/package.json +2 -3
  40. package/ts_build/src/agents/base/base.js +10 -0
  41. package/ts_build/src/agents/base/base.js.map +1 -1
  42. package/ts_build/src/agents/tools/index.d.ts +0 -1
  43. package/ts_build/src/agents/tools/index.js +0 -1
  44. package/ts_build/src/agents/tools/index.js.map +1 -1
  45. package/ts_build/src/agents/tools/list.js +0 -2
  46. package/ts_build/src/agents/tools/list.js.map +1 -1
  47. package/ts_build/src/chat/CliChatService.js +13 -1
  48. package/ts_build/src/chat/CliChatService.js.map +1 -1
  49. package/ts_build/src/chat/renderer/CompactRenderer.d.ts +4 -0
  50. package/ts_build/src/chat/renderer/CompactRenderer.js +16 -0
  51. package/ts_build/src/chat/renderer/CompactRenderer.js.map +1 -1
  52. package/ts_build/src/chat/renderer/ConsoleRenderer.d.ts +4 -0
  53. package/ts_build/src/chat/renderer/ConsoleRenderer.js +16 -0
  54. package/ts_build/src/chat/renderer/ConsoleRenderer.js.map +1 -1
  55. package/ts_build/src/chat/renderer/FancyRenderer.d.ts +4 -0
  56. package/ts_build/src/chat/renderer/FancyRenderer.js +16 -0
  57. package/ts_build/src/chat/renderer/FancyRenderer.js.map +1 -1
  58. package/ts_build/src/chat/renderer/types.d.ts +2 -0
  59. package/ts_build/src/cli.js +47 -525
  60. package/ts_build/src/cli.js.map +1 -1
  61. package/ts_build/src/clients/index.js +2 -4
  62. package/ts_build/src/clients/index.js.map +1 -1
  63. package/ts_build/src/clients/types.d.ts +2 -2
  64. package/ts_build/src/cloudWorker.d.ts +5 -0
  65. package/ts_build/src/cloudWorker.js +69 -66
  66. package/ts_build/src/cloudWorker.js.map +1 -1
  67. package/ts_build/src/commands/agent.d.ts +6 -0
  68. package/ts_build/src/commands/agent.js +229 -0
  69. package/ts_build/src/commands/agent.js.map +1 -0
  70. package/ts_build/src/commands/misc.d.ts +10 -0
  71. package/ts_build/src/commands/misc.js +197 -0
  72. package/ts_build/src/commands/misc.js.map +1 -0
  73. package/ts_build/src/commands/modules.d.ts +3 -0
  74. package/ts_build/src/commands/modules.js +160 -0
  75. package/ts_build/src/commands/modules.js.map +1 -0
  76. package/ts_build/src/commands/services.d.ts +5 -0
  77. package/ts_build/src/commands/services.js +87 -0
  78. package/ts_build/src/commands/services.js.map +1 -0
  79. package/ts_build/src/commands/workers.d.ts +6 -0
  80. package/ts_build/src/commands/workers.js +168 -0
  81. package/ts_build/src/commands/workers.js.map +1 -0
  82. package/ts_build/src/config.d.ts +1 -0
  83. package/ts_build/src/config.js +32 -0
  84. package/ts_build/src/config.js.map +1 -1
  85. package/ts_build/src/fileSync.d.ts +6 -0
  86. package/ts_build/src/fileSync.js +37 -12
  87. package/ts_build/src/fileSync.js.map +1 -1
  88. package/ts_build/src/index.d.ts +1 -0
  89. package/ts_build/src/index.js +3 -1
  90. package/ts_build/src/index.js.map +1 -1
  91. package/ts_build/src/logger.d.ts +21 -0
  92. package/ts_build/src/logger.js +106 -0
  93. package/ts_build/src/logger.js.map +1 -0
  94. package/ts_build/src/plugins/plugins.d.ts +0 -2
  95. package/ts_build/src/plugins/plugins.js +0 -11
  96. package/ts_build/src/plugins/plugins.js.map +1 -1
  97. package/ts_build/src/processors/JsonCompressor.js +4 -4
  98. package/ts_build/src/processors/JsonCompressor.js.map +1 -1
  99. package/ts_build/src/services/EventService.d.ts +6 -1
  100. package/ts_build/src/services/EventService.js +29 -0
  101. package/ts_build/src/services/EventService.js.map +1 -1
  102. package/ts_build/src/services/KnowhowClient.d.ts +1 -1
  103. package/ts_build/src/services/KnowhowClient.js +8 -2
  104. package/ts_build/src/services/KnowhowClient.js.map +1 -1
  105. package/ts_build/src/services/S3.js +0 -7
  106. package/ts_build/src/services/S3.js.map +1 -1
  107. package/ts_build/src/services/modules/index.d.ts +33 -0
  108. package/ts_build/src/services/modules/index.js +46 -45
  109. package/ts_build/src/services/modules/index.js.map +1 -1
  110. package/ts_build/src/services/modules/types.d.ts +4 -0
  111. package/ts_build/src/tunnel.d.ts +27 -0
  112. package/ts_build/src/tunnel.js +112 -0
  113. package/ts_build/src/tunnel.js.map +1 -0
  114. package/ts_build/src/types.d.ts +0 -1
  115. package/ts_build/src/types.js.map +1 -1
  116. package/ts_build/src/worker.d.ts +1 -4
  117. package/ts_build/src/worker.js +38 -244
  118. package/ts_build/src/worker.js.map +1 -1
  119. package/ts_build/src/workers/auth/WsMiddleware.d.ts +8 -0
  120. package/ts_build/src/workers/auth/WsMiddleware.js +65 -0
  121. package/ts_build/src/workers/auth/WsMiddleware.js.map +1 -0
  122. package/ts_build/src/workers/auth/authMiddleware.d.ts +3 -0
  123. package/ts_build/src/workers/auth/authMiddleware.js +60 -0
  124. package/ts_build/src/workers/auth/authMiddleware.js.map +1 -0
  125. package/ts_build/src/workers/auth/types.d.ts +8 -1
  126. package/ts_build/tests/unit/commands/github-credentials.test.d.ts +1 -0
  127. package/ts_build/tests/unit/commands/github-credentials.test.js +146 -0
  128. package/ts_build/tests/unit/commands/github-credentials.test.js.map +1 -0
  129. package/ts_build/tests/unit/modules/moduleLoading.test.js +20 -26
  130. package/ts_build/tests/unit/modules/moduleLoading.test.js.map +1 -1
  131. package/ts_build/tests/unit/plugins/pluginLoading.test.js +0 -65
  132. package/ts_build/tests/unit/plugins/pluginLoading.test.js.map +1 -1
  133. package/src/agents/tools/executeScript/README.md +0 -94
  134. package/src/agents/tools/executeScript/definition.ts +0 -79
  135. package/src/agents/tools/executeScript/examples/dependency-injection-validation.ts +0 -272
  136. package/src/agents/tools/executeScript/examples/quick-test.ts +0 -74
  137. package/src/agents/tools/executeScript/examples/serialization-test.ts +0 -321
  138. package/src/agents/tools/executeScript/examples/test-runner.ts +0 -197
  139. package/src/agents/tools/executeScript/index.ts +0 -98
  140. package/src/services/script-execution/SandboxContext.ts +0 -282
  141. package/src/services/script-execution/ScriptExecutor.ts +0 -441
  142. package/src/services/script-execution/ScriptPolicy.ts +0 -194
  143. package/src/services/script-execution/ScriptTracer.ts +0 -249
  144. package/src/services/script-execution/types.ts +0 -134
  145. package/ts_build/src/agents/tools/executeScript/definition.d.ts +0 -2
  146. package/ts_build/src/agents/tools/executeScript/definition.js +0 -76
  147. package/ts_build/src/agents/tools/executeScript/definition.js.map +0 -1
  148. package/ts_build/src/agents/tools/executeScript/examples/dependency-injection-validation.d.ts +0 -18
  149. package/ts_build/src/agents/tools/executeScript/examples/dependency-injection-validation.js +0 -192
  150. package/ts_build/src/agents/tools/executeScript/examples/dependency-injection-validation.js.map +0 -1
  151. package/ts_build/src/agents/tools/executeScript/examples/quick-test.d.ts +0 -3
  152. package/ts_build/src/agents/tools/executeScript/examples/quick-test.js +0 -64
  153. package/ts_build/src/agents/tools/executeScript/examples/quick-test.js.map +0 -1
  154. package/ts_build/src/agents/tools/executeScript/examples/serialization-test.d.ts +0 -15
  155. package/ts_build/src/agents/tools/executeScript/examples/serialization-test.js +0 -266
  156. package/ts_build/src/agents/tools/executeScript/examples/serialization-test.js.map +0 -1
  157. package/ts_build/src/agents/tools/executeScript/examples/test-runner.d.ts +0 -4
  158. package/ts_build/src/agents/tools/executeScript/examples/test-runner.js +0 -208
  159. package/ts_build/src/agents/tools/executeScript/examples/test-runner.js.map +0 -1
  160. package/ts_build/src/agents/tools/executeScript/index.d.ts +0 -28
  161. package/ts_build/src/agents/tools/executeScript/index.js +0 -72
  162. package/ts_build/src/agents/tools/executeScript/index.js.map +0 -1
  163. package/ts_build/src/services/script-execution/SandboxContext.d.ts +0 -34
  164. package/ts_build/src/services/script-execution/SandboxContext.js +0 -189
  165. package/ts_build/src/services/script-execution/SandboxContext.js.map +0 -1
  166. package/ts_build/src/services/script-execution/ScriptExecutor.d.ts +0 -19
  167. package/ts_build/src/services/script-execution/ScriptExecutor.js +0 -269
  168. package/ts_build/src/services/script-execution/ScriptExecutor.js.map +0 -1
  169. package/ts_build/src/services/script-execution/ScriptPolicy.d.ts +0 -28
  170. package/ts_build/src/services/script-execution/ScriptPolicy.js +0 -115
  171. package/ts_build/src/services/script-execution/ScriptPolicy.js.map +0 -1
  172. package/ts_build/src/services/script-execution/ScriptTracer.d.ts +0 -19
  173. package/ts_build/src/services/script-execution/ScriptTracer.js +0 -186
  174. package/ts_build/src/services/script-execution/ScriptTracer.js.map +0 -1
  175. package/ts_build/src/services/script-execution/types.d.ts +0 -108
  176. package/ts_build/src/services/script-execution/types.js +0 -3
  177. package/ts_build/src/services/script-execution/types.js.map +0 -1
@@ -1,115 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ScriptPolicyEnforcer = void 0;
4
- class ScriptPolicyEnforcer {
5
- quotas;
6
- policy;
7
- usage;
8
- violations = [];
9
- complexityLimit = 150;
10
- constructor(quotas, policy) {
11
- this.quotas = quotas;
12
- this.policy = policy;
13
- this.usage = {
14
- toolCalls: 0,
15
- tokens: 0,
16
- executionTimeMs: 0,
17
- costUsd: 0
18
- };
19
- }
20
- checkToolCall(toolName) {
21
- if (this.policy.denylistedTools && this.policy.denylistedTools.includes(toolName)) {
22
- this.recordViolation('tool_denied', `Tool '${toolName}' is in denylist`);
23
- return false;
24
- }
25
- if (this.policy.allowlistedTools && this.policy.allowlistedTools.length > 0 &&
26
- !this.policy.allowlistedTools.includes(toolName)) {
27
- this.recordViolation('tool_not_allowed', `Tool '${toolName}' is not in allowlist`);
28
- return false;
29
- }
30
- if (this.usage.toolCalls >= this.quotas.maxToolCalls) {
31
- this.recordViolation('quota_exceeded', 'Maximum tool calls exceeded');
32
- return false;
33
- }
34
- return true;
35
- }
36
- recordToolCall() {
37
- this.usage.toolCalls++;
38
- }
39
- checkTokenUsage(tokens) {
40
- if (this.usage.tokens + tokens > this.quotas.maxTokens) {
41
- this.recordViolation('quota_exceeded', 'Maximum tokens would be exceeded');
42
- return false;
43
- }
44
- return true;
45
- }
46
- recordTokenUsage(tokens) {
47
- this.usage.tokens += tokens;
48
- }
49
- checkExecutionTime(currentTimeMs) {
50
- if (currentTimeMs > this.quotas.maxExecutionTimeMs) {
51
- this.recordViolation('quota_exceeded', 'Maximum execution time exceeded');
52
- return false;
53
- }
54
- this.usage.executionTimeMs = currentTimeMs;
55
- return true;
56
- }
57
- checkCost(additionalCost) {
58
- if (this.usage.costUsd + additionalCost > this.quotas.maxCostUsd) {
59
- this.recordViolation('quota_exceeded', 'Maximum cost would be exceeded');
60
- return false;
61
- }
62
- return true;
63
- }
64
- recordCost(cost) {
65
- this.usage.costUsd += cost;
66
- }
67
- getUsage() {
68
- return { ...this.usage };
69
- }
70
- getQuotas() {
71
- return { ...this.quotas };
72
- }
73
- getViolations() {
74
- return [...this.violations];
75
- }
76
- hasViolations() {
77
- return this.violations.length > 0;
78
- }
79
- getLastViolation() {
80
- return this.violations[this.violations.length - 1];
81
- }
82
- resetUsage() {
83
- this.usage = {
84
- toolCalls: 0,
85
- tokens: 0,
86
- executionTimeMs: 0,
87
- costUsd: 0
88
- };
89
- }
90
- resetViolations() {
91
- this.violations = [];
92
- }
93
- validateScript(scriptContent, allowNetworkAccess) {
94
- const issues = [];
95
- if (scriptContent.length > this.policy.maxScriptLength) {
96
- issues.push(`Script too long: ${scriptContent.length} > ${this.policy.maxScriptLength}`);
97
- }
98
- return {
99
- valid: issues.length === 0,
100
- issues
101
- };
102
- }
103
- recordViolation(type, message) {
104
- const violation = {
105
- id: `violation-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`,
106
- type,
107
- message,
108
- timestamp: Date.now(),
109
- usage: { ...this.usage }
110
- };
111
- this.violations.push(violation);
112
- }
113
- }
114
- exports.ScriptPolicyEnforcer = ScriptPolicyEnforcer;
115
- //# sourceMappingURL=ScriptPolicy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ScriptPolicy.js","sourceRoot":"","sources":["../../../../src/services/script-execution/ScriptPolicy.ts"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- import { TraceEvent, TraceMetrics, ExecutionTrace, QuotaUsage } from "./types";
2
- export declare class ScriptTracer {
3
- private events;
4
- private metrics;
5
- private startTime;
6
- constructor();
7
- emitEvent(type: string, data: any): void;
8
- recordCost(costUsd: number): void;
9
- getCurrentQuota(): QuotaUsage;
10
- getEvents(): TraceEvent[];
11
- getMetrics(): TraceMetrics;
12
- getTrace(): ExecutionTrace;
13
- reset(): void;
14
- private updateMetrics;
15
- private getLastError;
16
- private sanitizeEventData;
17
- private isSensitiveKey;
18
- private sanitizeParameters;
19
- }
@@ -1,186 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ScriptTracer = void 0;
4
- class ScriptTracer {
5
- events = [];
6
- metrics;
7
- startTime;
8
- constructor() {
9
- this.startTime = Date.now();
10
- this.metrics = {
11
- executionTimeMs: 0,
12
- toolCallCount: 0,
13
- llmCallCount: 0,
14
- tokenUsage: {
15
- prompt: 0,
16
- completion: 0,
17
- total: 0,
18
- },
19
- memoryUsage: {
20
- heapUsed: 0,
21
- heapTotal: 0,
22
- },
23
- costUsd: 0,
24
- };
25
- }
26
- emitEvent(type, data) {
27
- const event = {
28
- id: `evt-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`,
29
- type,
30
- timestamp: Date.now(),
31
- data: this.sanitizeEventData(data),
32
- };
33
- this.events.push(event);
34
- this.updateMetrics(event);
35
- }
36
- recordCost(costUsd) {
37
- this.metrics.costUsd += costUsd;
38
- this.emitEvent("cost_recorded", {
39
- costUsd,
40
- totalCost: this.metrics.costUsd,
41
- });
42
- }
43
- getCurrentQuota() {
44
- return {
45
- toolCalls: this.metrics.toolCallCount,
46
- tokens: this.metrics.tokenUsage.total,
47
- executionTimeMs: Date.now() - this.startTime,
48
- costUsd: this.metrics.costUsd,
49
- };
50
- }
51
- getEvents() {
52
- return [...this.events];
53
- }
54
- getMetrics() {
55
- return {
56
- ...this.metrics,
57
- executionTimeMs: Date.now() - this.startTime,
58
- };
59
- }
60
- getTrace() {
61
- return {
62
- id: `trace-${Date.now()}`,
63
- startTime: this.startTime,
64
- endTime: Date.now(),
65
- events: this.getEvents(),
66
- metrics: this.getMetrics(),
67
- success: !this.events.some((e) => e.type.includes("error")),
68
- error: this.getLastError(),
69
- };
70
- }
71
- reset() {
72
- this.events = [];
73
- this.startTime = Date.now();
74
- this.metrics = {
75
- executionTimeMs: 0,
76
- toolCallCount: 0,
77
- llmCallCount: 0,
78
- tokenUsage: {
79
- prompt: 0,
80
- completion: 0,
81
- total: 0,
82
- },
83
- memoryUsage: {
84
- heapUsed: 0,
85
- heapTotal: 0,
86
- },
87
- costUsd: 0,
88
- };
89
- }
90
- updateMetrics(event) {
91
- switch (event.type) {
92
- case "tool_call_start":
93
- this.metrics.toolCallCount++;
94
- break;
95
- case "llm_call_start":
96
- this.metrics.llmCallCount++;
97
- break;
98
- case "llm_call_success":
99
- if (event.data && event.data.usage) {
100
- const usage = event.data.usage;
101
- this.metrics.tokenUsage.prompt += usage.prompt_tokens || 0;
102
- this.metrics.tokenUsage.completion += usage.completion_tokens || 0;
103
- this.metrics.tokenUsage.total += usage.total_tokens || 0;
104
- }
105
- break;
106
- }
107
- if (typeof process !== "undefined" && process.memoryUsage) {
108
- const memUsage = process.memoryUsage();
109
- this.metrics.memoryUsage.heapUsed = memUsage.heapUsed;
110
- this.metrics.memoryUsage.heapTotal = memUsage.heapTotal;
111
- }
112
- }
113
- getLastError() {
114
- const errorEvents = this.events
115
- .filter((e) => e.type.includes("error"))
116
- .reverse();
117
- if (errorEvents.length > 0) {
118
- const lastError = errorEvents[0];
119
- return (lastError.data?.error || lastError.data?.message || "Unknown error");
120
- }
121
- return undefined;
122
- }
123
- sanitizeEventData(data) {
124
- if (data === null || data === undefined) {
125
- return data;
126
- }
127
- if (typeof data === "string") {
128
- return data.length > 1000
129
- ? data.substring(0, 1000) + "...[TRUNCATED]"
130
- : data;
131
- }
132
- if (Array.isArray(data)) {
133
- return data.map((item) => this.sanitizeEventData(item));
134
- }
135
- if (typeof data === "object") {
136
- const sanitized = {};
137
- for (const [key, value] of Object.entries(data)) {
138
- if (this.isSensitiveKey(key)) {
139
- sanitized[key] = "[REDACTED]";
140
- }
141
- else if (key === "parameters" && typeof value === "object") {
142
- sanitized[key] = this.sanitizeParameters(value);
143
- }
144
- else {
145
- sanitized[key] = this.sanitizeEventData(value);
146
- }
147
- }
148
- return sanitized;
149
- }
150
- return data;
151
- }
152
- isSensitiveKey(key) {
153
- const lowerKey = key.toLowerCase();
154
- const sensitivePatterns = [
155
- "password",
156
- "secret",
157
- "token",
158
- "key",
159
- "auth",
160
- "credential",
161
- "private",
162
- "confidential",
163
- ];
164
- return sensitivePatterns.some((pattern) => lowerKey.includes(pattern));
165
- }
166
- sanitizeParameters(params) {
167
- if (!params || typeof params !== "object") {
168
- return params;
169
- }
170
- const sanitized = {};
171
- for (const [key, value] of Object.entries(params)) {
172
- if (this.isSensitiveKey(key)) {
173
- sanitized[key] = "[REDACTED]";
174
- }
175
- else if (typeof value === "string" && value.length > 500) {
176
- sanitized[key] = value.substring(0, 500) + "...[TRUNCATED]";
177
- }
178
- else {
179
- sanitized[key] = this.sanitizeEventData(value);
180
- }
181
- }
182
- return sanitized;
183
- }
184
- }
185
- exports.ScriptTracer = ScriptTracer;
186
- //# sourceMappingURL=ScriptTracer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ScriptTracer.js","sourceRoot":"","sources":["../../../../src/services/script-execution/ScriptTracer.ts"],"names":[],"mappings":"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"}
@@ -1,108 +0,0 @@
1
- import { Message } from '../../clients/types';
2
- export interface TraceEvent {
3
- id: string;
4
- type: string;
5
- timestamp: number;
6
- data: any;
7
- }
8
- export interface TraceMetrics {
9
- executionTimeMs: number;
10
- toolCallCount: number;
11
- llmCallCount: number;
12
- tokenUsage: {
13
- prompt: number;
14
- completion: number;
15
- total: number;
16
- };
17
- memoryUsage: {
18
- heapUsed: number;
19
- heapTotal: number;
20
- };
21
- costUsd: number;
22
- }
23
- export interface ExecutionTrace {
24
- id: string;
25
- startTime: number;
26
- endTime: number;
27
- events: TraceEvent[];
28
- metrics: TraceMetrics;
29
- success: boolean;
30
- error?: string;
31
- }
32
- export interface ResourceQuotas {
33
- maxToolCalls: number;
34
- maxTokens: number;
35
- maxExecutionTimeMs: number;
36
- maxCostUsd: number;
37
- maxMemoryMb: number;
38
- }
39
- export interface SecurityPolicy {
40
- allowlistedTools: string[];
41
- denylistedTools: string[];
42
- maxScriptLength: number;
43
- allowNetworkAccess: boolean;
44
- allowFileSystemAccess: boolean;
45
- }
46
- export interface QuotaUsage {
47
- toolCalls: number;
48
- tokens: number;
49
- executionTimeMs: number;
50
- costUsd: number;
51
- }
52
- export interface PolicyViolation {
53
- id: string;
54
- type: 'quota_exceeded' | 'tool_denied' | 'tool_not_allowed' | 'script_validation';
55
- message: string;
56
- timestamp: number;
57
- usage: QuotaUsage;
58
- }
59
- export interface ExecutionRequest {
60
- script: string;
61
- context?: Record<string, any>;
62
- quotas?: Partial<ResourceQuotas>;
63
- policy?: Partial<SecurityPolicy>;
64
- }
65
- export interface ExecutionResult {
66
- success: boolean;
67
- error: string | null;
68
- result: any;
69
- trace: ExecutionTrace;
70
- artifacts: Artifact[];
71
- consoleOutput: string[];
72
- }
73
- export interface Artifact {
74
- id: string;
75
- name: string;
76
- type: 'text' | 'json' | 'csv' | 'html' | 'markdown';
77
- content: string;
78
- createdAt: string;
79
- }
80
- export interface ToolResult {
81
- success: boolean;
82
- result?: any;
83
- error?: string;
84
- }
85
- export interface ToolCall {
86
- id: string;
87
- name: string;
88
- args: Record<string, any>;
89
- result?: any;
90
- error?: string;
91
- timestamp: number;
92
- duration?: number;
93
- }
94
- export interface LLMCall {
95
- id: string;
96
- model: string;
97
- messages: Message[];
98
- response?: any;
99
- error?: string;
100
- timestamp: number;
101
- duration?: number;
102
- tokenUsage?: {
103
- prompt: number;
104
- completion: number;
105
- total: number;
106
- };
107
- cost?: number;
108
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/services/script-execution/types.ts"],"names":[],"mappings":""}