@intella/sdk 0.0.1 → 0.0.3
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.
- package/README.md +6 -483
- package/dist/agent-manager.d.ts +47 -0
- package/dist/agent-manager.d.ts.map +1 -0
- package/dist/agent-manager.js +90 -0
- package/dist/agent-manager.js.map +1 -0
- package/dist/agents/base-agent.d.ts +41 -0
- package/dist/agents/base-agent.d.ts.map +1 -0
- package/dist/agents/base-agent.js +148 -0
- package/dist/agents/base-agent.js.map +1 -0
- package/dist/agents/claude-agent.d.ts +24 -0
- package/dist/agents/claude-agent.d.ts.map +1 -0
- package/dist/agents/claude-agent.js +65 -0
- package/dist/agents/claude-agent.js.map +1 -0
- package/dist/agents/codex-agent.d.ts +25 -0
- package/dist/agents/codex-agent.d.ts.map +1 -0
- package/dist/agents/codex-agent.js +62 -0
- package/dist/agents/codex-agent.js.map +1 -0
- package/dist/agents/intella-lite-agent.d.ts +21 -0
- package/dist/agents/intella-lite-agent.d.ts.map +1 -0
- package/dist/agents/intella-lite-agent.js +43 -0
- package/dist/agents/intella-lite-agent.js.map +1 -0
- package/dist/agents/opencode-agent.d.ts +20 -0
- package/dist/agents/opencode-agent.d.ts.map +1 -0
- package/dist/agents/opencode-agent.js +36 -0
- package/dist/agents/opencode-agent.js.map +1 -0
- package/dist/filesystem/base-provider.d.ts +55 -0
- package/dist/filesystem/base-provider.d.ts.map +1 -0
- package/dist/filesystem/base-provider.js +45 -0
- package/dist/filesystem/base-provider.js.map +1 -0
- package/dist/filesystem/index.d.ts +3 -0
- package/dist/filesystem/index.d.ts.map +1 -0
- package/{src/filesystem/index.ts → dist/filesystem/index.js} +1 -2
- package/dist/filesystem/index.js.map +1 -0
- package/dist/filesystem/memory-provider.d.ts +44 -0
- package/dist/filesystem/memory-provider.d.ts.map +1 -0
- package/dist/filesystem/memory-provider.js +227 -0
- package/dist/filesystem/memory-provider.js.map +1 -0
- package/dist/filesystem-manager.d.ts +75 -0
- package/dist/filesystem-manager.d.ts.map +1 -0
- package/dist/filesystem-manager.js +162 -0
- package/dist/filesystem-manager.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/{src/index.ts → dist/index.js} +4 -47
- package/dist/index.js.map +1 -0
- package/dist/orchestrator.d.ts +32 -0
- package/dist/orchestrator.d.ts.map +1 -0
- package/dist/orchestrator.js +137 -0
- package/dist/orchestrator.js.map +1 -0
- package/dist/sandbox/base-provider.d.ts +106 -0
- package/dist/sandbox/base-provider.d.ts.map +1 -0
- package/dist/sandbox/base-provider.js +74 -0
- package/dist/sandbox/base-provider.js.map +1 -0
- package/dist/sandbox/daytona-provider.d.ts +93 -0
- package/dist/sandbox/daytona-provider.d.ts.map +1 -0
- package/dist/sandbox/daytona-provider.js +378 -0
- package/dist/sandbox/daytona-provider.js.map +1 -0
- package/dist/sandbox/e2b-provider.d.ts +85 -0
- package/dist/sandbox/e2b-provider.d.ts.map +1 -0
- package/dist/sandbox/e2b-provider.js +363 -0
- package/dist/sandbox/e2b-provider.js.map +1 -0
- package/dist/sandbox/modal-provider.d.ts +92 -0
- package/dist/sandbox/modal-provider.d.ts.map +1 -0
- package/dist/sandbox/modal-provider.js +516 -0
- package/dist/sandbox/modal-provider.js.map +1 -0
- package/dist/sandbox-manager.d.ts +59 -0
- package/dist/sandbox-manager.d.ts.map +1 -0
- package/dist/sandbox-manager.js +141 -0
- package/dist/sandbox-manager.js.map +1 -0
- package/dist/sdk.d.ts +173 -0
- package/dist/sdk.d.ts.map +1 -0
- package/dist/sdk.js +277 -0
- package/dist/sdk.js.map +1 -0
- package/dist/types.d.ts +423 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/code-extractor.d.ts +103 -0
- package/dist/utils/code-extractor.d.ts.map +1 -0
- package/dist/utils/code-extractor.js +133 -0
- package/dist/utils/code-extractor.js.map +1 -0
- package/package.json +23 -11
- package/examples/claude-code/README.md +0 -178
- package/examples/claude-code/advanced-config.ts +0 -55
- package/examples/claude-code/basic-usage.ts +0 -56
- package/examples/claude-code/model-comparison.ts +0 -50
- package/examples/claude-code/orchestration.ts +0 -70
- package/examples/claude-code/streaming.ts +0 -69
- package/examples/claude-code/tsconfig.json +0 -19
- package/examples/code-extractor/README.md +0 -77
- package/examples/code-extractor/example.ts +0 -145
- package/examples/filesystem/basic-usage.ts +0 -84
- package/examples/integrated-task/README.md +0 -68
- package/examples/integrated-task/integrated-usage.ts +0 -193
- package/examples/integrated-task/simple-example.ts +0 -51
- package/examples/integrated-task/tsconfig.json +0 -19
- package/examples/sandbox/basic-usage.ts +0 -173
- package/src/agent-manager.ts +0 -104
- package/src/agents/base-agent.ts +0 -166
- package/src/agents/claude-agent.ts +0 -77
- package/src/agents/codex-agent.ts +0 -72
- package/src/agents/intella-lite-agent.ts +0 -55
- package/src/agents/opencode-agent.ts +0 -45
- package/src/filesystem/agentfs-provider.ts +0 -328
- package/src/filesystem/base-provider.ts +0 -98
- package/src/filesystem/memory-provider.ts +0 -267
- package/src/filesystem-manager.ts +0 -213
- package/src/orchestrator.ts +0 -177
- package/src/sandbox/base-provider.ts +0 -184
- package/src/sandbox/daytona-provider.ts +0 -462
- package/src/sandbox/e2b-provider.ts +0 -419
- package/src/sandbox/modal-provider.ts +0 -597
- package/src/sandbox-manager.ts +0 -175
- package/src/sdk.ts +0 -401
- package/src/types.ts +0 -451
- package/src/utils/code-extractor.ts +0 -194
- package/tsconfig.json +0 -25
package/src/sandbox-manager.ts
DELETED
|
@@ -1,175 +0,0 @@
|
|
|
1
|
-
import type { SandboxProviderType, SandboxConfig, ISandboxProvider } from './types.js';
|
|
2
|
-
import { E2BSandboxProvider } from './sandbox/e2b-provider.js';
|
|
3
|
-
import { DaytonaSandboxProvider } from './sandbox/daytona-provider.js';
|
|
4
|
-
import { ModalSandboxProvider } from './sandbox/modal-provider.js';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Sandbox Manager
|
|
8
|
-
* Manages sandbox provider instances and configurations
|
|
9
|
-
*/
|
|
10
|
-
export class SandboxManager {
|
|
11
|
-
private sandboxes: Map<SandboxProviderType, ISandboxProvider> = new Map();
|
|
12
|
-
private defaultProviderType: SandboxProviderType | null = null;
|
|
13
|
-
private activeSandbox: ISandboxProvider | null = null;
|
|
14
|
-
|
|
15
|
-
constructor(config?: {
|
|
16
|
-
provider?: SandboxProviderType;
|
|
17
|
-
config?: SandboxConfig;
|
|
18
|
-
}) {
|
|
19
|
-
// Initialize providers (but don't create sandboxes yet)
|
|
20
|
-
if(config?.provider) {
|
|
21
|
-
this.defaultProviderType = config.provider;
|
|
22
|
-
}
|
|
23
|
-
this.registerProvider('e2b', new E2BSandboxProvider(config?.config));
|
|
24
|
-
this.registerProvider('daytona', new DaytonaSandboxProvider(config?.config));
|
|
25
|
-
this.registerProvider('modal', new ModalSandboxProvider(config?.config));
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Register or update a sandbox provider instance
|
|
30
|
-
*/
|
|
31
|
-
registerProvider(type: SandboxProviderType, provider: ISandboxProvider): void {
|
|
32
|
-
if (provider.type !== type) {
|
|
33
|
-
throw new Error(
|
|
34
|
-
`Sandbox provider type mismatch: expected ${type}, got ${provider.type}`
|
|
35
|
-
);
|
|
36
|
-
}
|
|
37
|
-
this.sandboxes.set(type, provider);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Get a sandbox provider instance
|
|
42
|
-
*/
|
|
43
|
-
getProvider(type?: SandboxProviderType): ISandboxProvider {
|
|
44
|
-
const providerType = type || this.defaultProviderType;
|
|
45
|
-
|
|
46
|
-
if (!providerType) {
|
|
47
|
-
throw new Error(
|
|
48
|
-
'No sandbox provider selected. Call selectProvider() or initializeSandbox() first.'
|
|
49
|
-
);
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
const provider = this.sandboxes.get(providerType);
|
|
53
|
-
|
|
54
|
-
if (!provider) {
|
|
55
|
-
throw new Error(`Sandbox provider ${providerType} is not registered`);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
return provider;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* List all available sandbox providers
|
|
63
|
-
*/
|
|
64
|
-
listProviders(): SandboxProviderType[] {
|
|
65
|
-
return Array.from(this.sandboxes.keys());
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Check if a provider is registered
|
|
70
|
-
*/
|
|
71
|
-
hasProvider(type: SandboxProviderType): boolean {
|
|
72
|
-
return this.sandboxes.has(type);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* Initialize/create a sandbox with the specified provider
|
|
77
|
-
*/
|
|
78
|
-
async initializeSandbox(
|
|
79
|
-
type: SandboxProviderType,
|
|
80
|
-
config?: SandboxConfig
|
|
81
|
-
): Promise<ISandboxProvider> {
|
|
82
|
-
const provider = this.getProvider(type);
|
|
83
|
-
|
|
84
|
-
// Close existing active sandbox if different
|
|
85
|
-
if (this.activeSandbox && this.activeSandbox !== provider) {
|
|
86
|
-
try {
|
|
87
|
-
await this.activeSandbox.close();
|
|
88
|
-
} catch (error) {
|
|
89
|
-
console.warn('Error closing previous sandbox:', error);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
await provider.initialize(config);
|
|
94
|
-
this.activeSandbox = provider;
|
|
95
|
-
this.defaultProviderType = type;
|
|
96
|
-
|
|
97
|
-
return provider;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
/**
|
|
101
|
-
* Get the active sandbox provider
|
|
102
|
-
*/
|
|
103
|
-
getActiveSandbox(): ISandboxProvider | null {
|
|
104
|
-
return this.activeSandbox;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
/**
|
|
108
|
-
* Set the default provider type (does not initialize)
|
|
109
|
-
*/
|
|
110
|
-
setDefaultProvider(type: SandboxProviderType): void {
|
|
111
|
-
if (!this.sandboxes.has(type)) {
|
|
112
|
-
throw new Error(`Sandbox provider ${type} is not registered`);
|
|
113
|
-
}
|
|
114
|
-
this.defaultProviderType = type;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
/**
|
|
118
|
-
* Get the default provider type
|
|
119
|
-
*/
|
|
120
|
-
getDefaultProviderType(): SandboxProviderType | null {
|
|
121
|
-
return this.defaultProviderType;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
/**
|
|
125
|
-
* Close the active sandbox
|
|
126
|
-
*/
|
|
127
|
-
async closeActiveSandbox(): Promise<void> {
|
|
128
|
-
if (this.activeSandbox) {
|
|
129
|
-
try {
|
|
130
|
-
await this.activeSandbox.close();
|
|
131
|
-
} catch (error) {
|
|
132
|
-
console.warn('Error closing active sandbox:', error);
|
|
133
|
-
}
|
|
134
|
-
this.activeSandbox = null;
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
/**
|
|
139
|
-
* Close all sandboxes
|
|
140
|
-
*/
|
|
141
|
-
async closeAll(): Promise<void> {
|
|
142
|
-
const closePromises = Array.from(this.sandboxes.values()).map(
|
|
143
|
-
async (provider) => {
|
|
144
|
-
if (provider.isInitialized()) {
|
|
145
|
-
try {
|
|
146
|
-
await provider.close();
|
|
147
|
-
} catch (error) {
|
|
148
|
-
console.warn(`Error closing sandbox ${provider.type}:`, error);
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
);
|
|
153
|
-
|
|
154
|
-
await Promise.all(closePromises);
|
|
155
|
-
this.activeSandbox = null;
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
/**
|
|
159
|
-
* Remove a provider (cannot remove if it's the active sandbox)
|
|
160
|
-
*/
|
|
161
|
-
removeProvider(type: SandboxProviderType): void {
|
|
162
|
-
const provider = this.sandboxes.get(type);
|
|
163
|
-
|
|
164
|
-
if (provider && provider === this.activeSandbox) {
|
|
165
|
-
throw new Error('Cannot remove the active sandbox provider. Close it first.');
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
this.sandboxes.delete(type);
|
|
169
|
-
|
|
170
|
-
if (this.defaultProviderType === type) {
|
|
171
|
-
this.defaultProviderType = null;
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
|
package/src/sdk.ts
DELETED
|
@@ -1,401 +0,0 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
AgentType,
|
|
3
|
-
AgentConfig,
|
|
4
|
-
TaskRequest,
|
|
5
|
-
TaskResponse,
|
|
6
|
-
OrchestrationRequest,
|
|
7
|
-
OrchestrationResponse,
|
|
8
|
-
FilesystemProviderType,
|
|
9
|
-
FilesystemConfig,
|
|
10
|
-
FileStats,
|
|
11
|
-
DirectoryEntry,
|
|
12
|
-
ToolCallMetadata,
|
|
13
|
-
IFilesystemProvider,
|
|
14
|
-
SandboxProviderType,
|
|
15
|
-
SandboxConfig,
|
|
16
|
-
SandboxExecutionResult,
|
|
17
|
-
ISandboxProvider,
|
|
18
|
-
} from './types.js';
|
|
19
|
-
import { AgentManager } from './agent-manager.js';
|
|
20
|
-
import { Orchestrator } from './orchestrator.js';
|
|
21
|
-
import { FilesystemManager } from './filesystem-manager.js';
|
|
22
|
-
import { SandboxManager } from './sandbox-manager.js';
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Intella SDK
|
|
26
|
-
* Main class for orchestrating and managing tasks across multiple AI agents
|
|
27
|
-
*/
|
|
28
|
-
export class IntellaSDK {
|
|
29
|
-
private agentManager: AgentManager;
|
|
30
|
-
private orchestrator: Orchestrator;
|
|
31
|
-
private filesystemManager: FilesystemManager;
|
|
32
|
-
private sandboxManager: SandboxManager;
|
|
33
|
-
|
|
34
|
-
constructor(
|
|
35
|
-
config?: {
|
|
36
|
-
sandbox?: {
|
|
37
|
-
provider?: SandboxProviderType;
|
|
38
|
-
config?: SandboxConfig;
|
|
39
|
-
}
|
|
40
|
-
}) {
|
|
41
|
-
this.agentManager = new AgentManager();
|
|
42
|
-
this.orchestrator = new Orchestrator(this.agentManager);
|
|
43
|
-
this.filesystemManager = new FilesystemManager();
|
|
44
|
-
this.sandboxManager = new SandboxManager(config?.sandbox);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Select and configure an agent
|
|
49
|
-
*/
|
|
50
|
-
selectAgent(agentType: AgentType, config?: AgentConfig): void {
|
|
51
|
-
this.agentManager.updateConfig(agentType, config || {});
|
|
52
|
-
this.agentManager.setDefaultAgent(agentType);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Configure an agent without selecting it as default
|
|
57
|
-
*/
|
|
58
|
-
configureAgent(agentType: AgentType, config: AgentConfig): void {
|
|
59
|
-
this.agentManager.updateConfig(agentType, config);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* Execute a task with a selected agent (or default)
|
|
64
|
-
*/
|
|
65
|
-
async executeTask(
|
|
66
|
-
task: string | TaskRequest,
|
|
67
|
-
agentType?: AgentType
|
|
68
|
-
): Promise<TaskResponse> {
|
|
69
|
-
const request: TaskRequest =
|
|
70
|
-
typeof task === 'string' ? { prompt: task } : task;
|
|
71
|
-
const agent = this.agentManager.getAgent(agentType);
|
|
72
|
-
return agent.execute(request);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* Stream a task execution
|
|
77
|
-
*/
|
|
78
|
-
async *streamTask(
|
|
79
|
-
task: string | TaskRequest,
|
|
80
|
-
agentType?: AgentType
|
|
81
|
-
): AsyncIterable<{ text: string; agentType: AgentType; isDone: boolean }> {
|
|
82
|
-
const request: TaskRequest =
|
|
83
|
-
typeof task === 'string' ? { prompt: task } : task;
|
|
84
|
-
const agent = this.agentManager.getAgent(agentType);
|
|
85
|
-
yield* agent.stream(request);
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Orchestrate a task across multiple agents
|
|
90
|
-
*/
|
|
91
|
-
async orchestrateTask(
|
|
92
|
-
task: string | TaskRequest,
|
|
93
|
-
agents: AgentType[],
|
|
94
|
-
strategy: OrchestrationRequest['strategy'] = 'sequential',
|
|
95
|
-
options?: OrchestrationRequest['options']
|
|
96
|
-
): Promise<OrchestrationResponse> {
|
|
97
|
-
const request: TaskRequest =
|
|
98
|
-
typeof task === 'string' ? { prompt: task } : task;
|
|
99
|
-
|
|
100
|
-
return this.orchestrator.orchestrate({
|
|
101
|
-
task: request,
|
|
102
|
-
agents,
|
|
103
|
-
strategy,
|
|
104
|
-
options,
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* Get the agent manager (for advanced usage)
|
|
110
|
-
*/
|
|
111
|
-
getAgentManager(): AgentManager {
|
|
112
|
-
return this.agentManager;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
/**
|
|
116
|
-
* Get the orchestrator (for advanced usage)
|
|
117
|
-
*/
|
|
118
|
-
getOrchestrator(): Orchestrator {
|
|
119
|
-
return this.orchestrator;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
/**
|
|
123
|
-
* List available agents
|
|
124
|
-
*/
|
|
125
|
-
listAgents(): AgentType[] {
|
|
126
|
-
return this.agentManager.listAgents();
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
/**
|
|
130
|
-
* Get agent configuration
|
|
131
|
-
*/
|
|
132
|
-
getAgentConfig(agentType: AgentType): AgentConfig {
|
|
133
|
-
return this.agentManager.getConfig(agentType);
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
/**
|
|
137
|
-
* Set default agent
|
|
138
|
-
*/
|
|
139
|
-
setDefaultAgent(agentType: AgentType): void {
|
|
140
|
-
this.agentManager.setDefaultAgent(agentType);
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
/**
|
|
144
|
-
* Get default agent type
|
|
145
|
-
*/
|
|
146
|
-
getDefaultAgentType(): AgentType {
|
|
147
|
-
return this.agentManager.getDefaultAgentType();
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
// ============================================================================
|
|
151
|
-
// Sandbox Methods
|
|
152
|
-
// ============================================================================
|
|
153
|
-
|
|
154
|
-
/**
|
|
155
|
-
* Initialize a sandbox with the specified provider
|
|
156
|
-
*/
|
|
157
|
-
async initializeSandbox(
|
|
158
|
-
providerType: SandboxProviderType,
|
|
159
|
-
config?: SandboxConfig
|
|
160
|
-
): Promise<ISandboxProvider> {
|
|
161
|
-
return this.sandboxManager.initializeSandbox(providerType, config);
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
/**
|
|
165
|
-
* Execute a command in the active sandbox
|
|
166
|
-
*/
|
|
167
|
-
async executeInSandbox(
|
|
168
|
-
command: string,
|
|
169
|
-
options?: {
|
|
170
|
-
cwd?: string;
|
|
171
|
-
env?: Record<string, string>;
|
|
172
|
-
timeout?: number;
|
|
173
|
-
}
|
|
174
|
-
): Promise<SandboxExecutionResult> {
|
|
175
|
-
const sandbox = this.sandboxManager.getActiveSandbox();
|
|
176
|
-
if (!sandbox) {
|
|
177
|
-
throw new Error(
|
|
178
|
-
'No active sandbox. Call initializeSandbox() first.'
|
|
179
|
-
);
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
const result = await sandbox.executeCommand(command, options);
|
|
183
|
-
return {
|
|
184
|
-
result,
|
|
185
|
-
sandboxId: sandbox.getSandboxId() || 'unknown',
|
|
186
|
-
provider: sandbox.type,
|
|
187
|
-
};
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
/**
|
|
191
|
-
* Get the active sandbox provider
|
|
192
|
-
*/
|
|
193
|
-
getActiveSandbox(): ISandboxProvider | null {
|
|
194
|
-
return this.sandboxManager.getActiveSandbox();
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
/**
|
|
198
|
-
* Close the active sandbox
|
|
199
|
-
*/
|
|
200
|
-
async closeSandbox(): Promise<void> {
|
|
201
|
-
await this.sandboxManager.closeActiveSandbox();
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
/**
|
|
205
|
-
* List available sandbox providers
|
|
206
|
-
*/
|
|
207
|
-
listSandboxProviders(): SandboxProviderType[] {
|
|
208
|
-
return this.sandboxManager.listProviders();
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
/**
|
|
212
|
-
* Set default sandbox provider (does not initialize)
|
|
213
|
-
*/
|
|
214
|
-
setDefaultSandboxProvider(type: SandboxProviderType): void {
|
|
215
|
-
this.sandboxManager.setDefaultProvider(type);
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
/**
|
|
219
|
-
* Get default sandbox provider type
|
|
220
|
-
*/
|
|
221
|
-
getDefaultSandboxProviderType(): SandboxProviderType | null {
|
|
222
|
-
return this.sandboxManager.getDefaultProviderType();
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
/**
|
|
226
|
-
* Get the sandbox manager (for advanced usage)
|
|
227
|
-
*/
|
|
228
|
-
getSandboxManager(): SandboxManager {
|
|
229
|
-
return this.sandboxManager;
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
/**
|
|
233
|
-
* Execute a task in a sandbox environment
|
|
234
|
-
* This combines agent execution with sandbox command execution
|
|
235
|
-
*/
|
|
236
|
-
async executeTaskInSandbox(
|
|
237
|
-
task: string | TaskRequest,
|
|
238
|
-
command: string,
|
|
239
|
-
agentType?: AgentType,
|
|
240
|
-
sandboxOptions?: {
|
|
241
|
-
cwd?: string;
|
|
242
|
-
env?: Record<string, string>;
|
|
243
|
-
timeout?: number;
|
|
244
|
-
}
|
|
245
|
-
): Promise<{
|
|
246
|
-
agentResponse: TaskResponse;
|
|
247
|
-
sandboxResult: SandboxExecutionResult;
|
|
248
|
-
}> {
|
|
249
|
-
// Execute the task with the agent
|
|
250
|
-
const agentResponse = await this.executeTask(task, agentType);
|
|
251
|
-
|
|
252
|
-
// Execute the command in the sandbox
|
|
253
|
-
const sandboxResult = await this.executeInSandbox(command, sandboxOptions);
|
|
254
|
-
|
|
255
|
-
return {
|
|
256
|
-
agentResponse,
|
|
257
|
-
sandboxResult,
|
|
258
|
-
};
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
// ============================================================================
|
|
262
|
-
// Filesystem Methods
|
|
263
|
-
// ============================================================================
|
|
264
|
-
|
|
265
|
-
/**
|
|
266
|
-
* Initialize filesystem with a provider
|
|
267
|
-
*/
|
|
268
|
-
async initializeFilesystem(
|
|
269
|
-
provider: FilesystemProviderType = 'memory',
|
|
270
|
-
config?: FilesystemConfig
|
|
271
|
-
): Promise<void> {
|
|
272
|
-
await this.filesystemManager.initializeFilesystem(provider, config);
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
/**
|
|
276
|
-
* Get filesystem manager (for advanced usage)
|
|
277
|
-
*/
|
|
278
|
-
getFilesystemManager(): FilesystemManager {
|
|
279
|
-
return this.filesystemManager;
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
/**
|
|
283
|
-
* Get current filesystem provider
|
|
284
|
-
*/
|
|
285
|
-
getFilesystem(): IFilesystemProvider {
|
|
286
|
-
return this.filesystemManager.getProvider();
|
|
287
|
-
}
|
|
288
|
-
|
|
289
|
-
/**
|
|
290
|
-
* Check if filesystem is initialized
|
|
291
|
-
*/
|
|
292
|
-
isFilesystemInitialized(): boolean {
|
|
293
|
-
return this.filesystemManager.isInitialized();
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
/**
|
|
297
|
-
* Close filesystem
|
|
298
|
-
*/
|
|
299
|
-
async closeFilesystem(): Promise<void> {
|
|
300
|
-
await this.filesystemManager.closeFilesystem();
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
/**
|
|
304
|
-
* List available filesystem providers
|
|
305
|
-
*/
|
|
306
|
-
listFilesystemProviders(): FilesystemProviderType[] {
|
|
307
|
-
return this.filesystemManager.listProviders();
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
/**
|
|
311
|
-
* Set default filesystem provider
|
|
312
|
-
*/
|
|
313
|
-
setDefaultFilesystemProvider(provider: FilesystemProviderType): void {
|
|
314
|
-
this.filesystemManager.setDefaultProvider(provider);
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
/**
|
|
318
|
-
* Get default filesystem provider type
|
|
319
|
-
*/
|
|
320
|
-
getDefaultFilesystemProviderType(): FilesystemProviderType | null {
|
|
321
|
-
return this.filesystemManager.getDefaultProviderType();
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
// Convenience methods for filesystem operations
|
|
325
|
-
async readFile(path: string): Promise<Buffer | string> {
|
|
326
|
-
return this.filesystemManager.readFile(path);
|
|
327
|
-
}
|
|
328
|
-
|
|
329
|
-
async writeFile(path: string, data: Buffer | string): Promise<void> {
|
|
330
|
-
return this.filesystemManager.writeFile(path, data);
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
async appendFile(path: string, data: Buffer | string): Promise<void> {
|
|
334
|
-
return this.filesystemManager.appendFile(path, data);
|
|
335
|
-
}
|
|
336
|
-
|
|
337
|
-
async fileExists(path: string): Promise<boolean> {
|
|
338
|
-
return this.filesystemManager.exists(path);
|
|
339
|
-
}
|
|
340
|
-
|
|
341
|
-
async fileStat(path: string): Promise<FileStats> {
|
|
342
|
-
return this.filesystemManager.stat(path);
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
async readDirectory(path: string): Promise<DirectoryEntry[]> {
|
|
346
|
-
return this.filesystemManager.readdir(path);
|
|
347
|
-
}
|
|
348
|
-
|
|
349
|
-
async createDirectory(path: string, recursive = false): Promise<void> {
|
|
350
|
-
return this.filesystemManager.mkdir(path, recursive);
|
|
351
|
-
}
|
|
352
|
-
|
|
353
|
-
async deleteFile(path: string, recursive = false): Promise<void> {
|
|
354
|
-
return this.filesystemManager.unlink(path, recursive);
|
|
355
|
-
}
|
|
356
|
-
|
|
357
|
-
async copyFile(src: string, dest: string): Promise<void> {
|
|
358
|
-
return this.filesystemManager.copy(src, dest);
|
|
359
|
-
}
|
|
360
|
-
|
|
361
|
-
async moveFile(src: string, dest: string): Promise<void> {
|
|
362
|
-
return this.filesystemManager.move(src, dest);
|
|
363
|
-
}
|
|
364
|
-
|
|
365
|
-
// Key-value operations
|
|
366
|
-
async getValue(key: string): Promise<unknown> {
|
|
367
|
-
return this.filesystemManager.get(key);
|
|
368
|
-
}
|
|
369
|
-
|
|
370
|
-
async setValue(key: string, value: unknown): Promise<void> {
|
|
371
|
-
return this.filesystemManager.set(key, value);
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
async deleteValue(key: string): Promise<void> {
|
|
375
|
-
return this.filesystemManager.delete(key);
|
|
376
|
-
}
|
|
377
|
-
|
|
378
|
-
async listValues(prefix?: string): Promise<string[]> {
|
|
379
|
-
return this.filesystemManager.listKeys(prefix);
|
|
380
|
-
}
|
|
381
|
-
|
|
382
|
-
async hasValue(key: string): Promise<boolean> {
|
|
383
|
-
return this.filesystemManager.hasKey(key);
|
|
384
|
-
}
|
|
385
|
-
|
|
386
|
-
// Tool call tracking
|
|
387
|
-
async recordToolCall(metadata: ToolCallMetadata): Promise<void> {
|
|
388
|
-
return this.filesystemManager.recordToolCall(metadata);
|
|
389
|
-
}
|
|
390
|
-
|
|
391
|
-
async getToolCallHistory(filter?: {
|
|
392
|
-
tool?: string;
|
|
393
|
-
status?: ToolCallMetadata['status'];
|
|
394
|
-
since?: number;
|
|
395
|
-
until?: number;
|
|
396
|
-
limit?: number;
|
|
397
|
-
}): Promise<ToolCallMetadata[]> {
|
|
398
|
-
return this.filesystemManager.getToolCallHistory(filter);
|
|
399
|
-
}
|
|
400
|
-
}
|
|
401
|
-
|