@intella/sdk 0.0.2 → 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.js +2 -2
- package/dist/agent-manager.js.map +1 -1
- package/dist/agents/base-agent.d.ts.map +1 -1
- package/dist/agents/base-agent.js +12 -3
- package/dist/agents/base-agent.js.map +1 -1
- package/dist/agents/claude-agent.js +1 -1
- package/dist/agents/claude-agent.js.map +1 -1
- package/dist/agents/codex-agent.js +1 -1
- package/dist/agents/codex-agent.js.map +1 -1
- package/dist/agents/intella-lite-agent.js +1 -1
- package/dist/agents/intella-lite-agent.js.map +1 -1
- package/dist/agents/opencode-agent.d.ts.map +1 -1
- package/dist/agents/opencode-agent.js +2 -2
- package/dist/agents/opencode-agent.js.map +1 -1
- package/dist/filesystem/base-provider.js +3 -2
- package/dist/filesystem/base-provider.js.map +1 -1
- package/dist/filesystem/index.d.ts +0 -1
- package/dist/filesystem/index.d.ts.map +1 -1
- package/dist/filesystem/index.js +0 -1
- package/dist/filesystem/index.js.map +1 -1
- package/dist/filesystem/memory-provider.js +3 -3
- package/dist/filesystem/memory-provider.js.map +1 -1
- package/dist/filesystem-manager.d.ts.map +1 -1
- package/dist/filesystem-manager.js +3 -5
- package/dist/filesystem-manager.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/orchestrator.js +1 -0
- package/dist/orchestrator.js.map +1 -1
- package/dist/sandbox/base-provider.js +5 -4
- package/dist/sandbox/base-provider.js.map +1 -1
- package/dist/sandbox/daytona-provider.js +2 -2
- package/dist/sandbox/daytona-provider.js.map +1 -1
- package/dist/sandbox/e2b-provider.d.ts.map +1 -1
- package/dist/sandbox/e2b-provider.js +24 -3
- package/dist/sandbox/e2b-provider.js.map +1 -1
- package/dist/sandbox/modal-provider.js +18 -18
- package/dist/sandbox/modal-provider.js.map +1 -1
- package/dist/sandbox-manager.js +3 -3
- package/dist/sandbox-manager.js.map +1 -1
- package/dist/sdk.js +4 -0
- package/dist/sdk.js.map +1 -1
- package/dist/types.d.ts +5 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +20 -13
- package/dist/filesystem/agentfs-provider.d.ts +0 -42
- package/dist/filesystem/agentfs-provider.d.ts.map +0 -1
- package/dist/filesystem/agentfs-provider.js +0 -308
- package/dist/filesystem/agentfs-provider.js.map +0 -1
|
@@ -1,308 +0,0 @@
|
|
|
1
|
-
// Note: agentfs-sdk needs to be installed separately
|
|
2
|
-
// npm install agentfs-sdk
|
|
3
|
-
import { AgentFS } from 'agentfs-sdk';
|
|
4
|
-
import { BaseFilesystemProvider } from './base-provider.js';
|
|
5
|
-
/**
|
|
6
|
-
* AgentFS filesystem provider
|
|
7
|
-
* Uses Turso's AgentFS SDK for SQLite-based agent filesystem
|
|
8
|
-
*/
|
|
9
|
-
export class AgentFSProvider extends BaseFilesystemProvider {
|
|
10
|
-
constructor() {
|
|
11
|
-
super('agentfs');
|
|
12
|
-
this.agentFS = null; // AgentFS instance (typed as any due to SDK)
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Initialize AgentFS filesystem
|
|
16
|
-
*/
|
|
17
|
-
async initialize(config) {
|
|
18
|
-
this.config = { ...this.config, ...config };
|
|
19
|
-
try {
|
|
20
|
-
// Initialize AgentFS based on configuration
|
|
21
|
-
if (this.config.dbPath) {
|
|
22
|
-
// Use explicit database path
|
|
23
|
-
this.agentFS = await AgentFS.open({ path: this.config.dbPath });
|
|
24
|
-
}
|
|
25
|
-
else if (this.config.agentId) {
|
|
26
|
-
// Use agent ID (creates .agentfs/{agentId}.db)
|
|
27
|
-
this.agentFS = await AgentFS.open({ id: this.config.agentId });
|
|
28
|
-
}
|
|
29
|
-
else {
|
|
30
|
-
throw new Error('No agent ID or database path provided');
|
|
31
|
-
}
|
|
32
|
-
this.initialized = true;
|
|
33
|
-
}
|
|
34
|
-
catch (error) {
|
|
35
|
-
throw new Error(`Failed to initialize AgentFS: ${error instanceof Error ? error.message : String(error)}`);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Close AgentFS filesystem
|
|
40
|
-
*/
|
|
41
|
-
async close() {
|
|
42
|
-
if (this.agentFS) {
|
|
43
|
-
// AgentFS doesn't expose a close method in the SDK,
|
|
44
|
-
// but we can clear the reference
|
|
45
|
-
this.agentFS = null;
|
|
46
|
-
this.initialized = false;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
// Filesystem operations
|
|
50
|
-
async readFile(path) {
|
|
51
|
-
this.ensureInitialized();
|
|
52
|
-
const normalizedPath = this.normalizePath(path);
|
|
53
|
-
try {
|
|
54
|
-
const content = await this.agentFS.fs.readFile(normalizedPath);
|
|
55
|
-
// AgentFS may return string or Buffer, return as-is
|
|
56
|
-
return content;
|
|
57
|
-
}
|
|
58
|
-
catch (error) {
|
|
59
|
-
throw new Error(`Failed to read file ${path}: ${error instanceof Error ? error.message : String(error)}`);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
async writeFile(path, data) {
|
|
63
|
-
this.ensureInitialized();
|
|
64
|
-
const normalizedPath = this.normalizePath(path);
|
|
65
|
-
try {
|
|
66
|
-
await this.agentFS.fs.writeFile(normalizedPath, data);
|
|
67
|
-
}
|
|
68
|
-
catch (error) {
|
|
69
|
-
throw new Error(`Failed to write file ${path}: ${error instanceof Error ? error.message : String(error)}`);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
async appendFile(path, data) {
|
|
73
|
-
this.ensureInitialized();
|
|
74
|
-
const normalizedPath = this.normalizePath(path);
|
|
75
|
-
try {
|
|
76
|
-
// Read existing content
|
|
77
|
-
let existingContent = '';
|
|
78
|
-
try {
|
|
79
|
-
const existing = await this.agentFS.fs.readFile(normalizedPath);
|
|
80
|
-
existingContent = existing instanceof Buffer ? existing.toString() : existing;
|
|
81
|
-
}
|
|
82
|
-
catch {
|
|
83
|
-
// File doesn't exist, start with empty string
|
|
84
|
-
}
|
|
85
|
-
// Write combined content
|
|
86
|
-
const newContent = existingContent + (data instanceof Buffer ? data.toString() : data);
|
|
87
|
-
await this.agentFS.fs.writeFile(normalizedPath, newContent);
|
|
88
|
-
}
|
|
89
|
-
catch (error) {
|
|
90
|
-
throw new Error(`Failed to append to file ${path}: ${error instanceof Error ? error.message : String(error)}`);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
async exists(path) {
|
|
94
|
-
this.ensureInitialized();
|
|
95
|
-
const normalizedPath = this.normalizePath(path);
|
|
96
|
-
try {
|
|
97
|
-
await this.agentFS.fs.stat(normalizedPath);
|
|
98
|
-
return true;
|
|
99
|
-
}
|
|
100
|
-
catch {
|
|
101
|
-
return false;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
async stat(path) {
|
|
105
|
-
this.ensureInitialized();
|
|
106
|
-
const normalizedPath = this.normalizePath(path);
|
|
107
|
-
try {
|
|
108
|
-
const stats = await this.agentFS.fs.stat(normalizedPath);
|
|
109
|
-
return {
|
|
110
|
-
size: stats.size || 0,
|
|
111
|
-
isDirectory: stats.isDirectory || false,
|
|
112
|
-
isFile: stats.isFile || false,
|
|
113
|
-
createdAt: stats.createdAt,
|
|
114
|
-
modifiedAt: stats.modifiedAt,
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
catch (error) {
|
|
118
|
-
throw new Error(`Failed to stat ${path}: ${error instanceof Error ? error.message : String(error)}`);
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
async readdir(path) {
|
|
122
|
-
this.ensureInitialized();
|
|
123
|
-
const normalizedPath = this.normalizePath(path);
|
|
124
|
-
try {
|
|
125
|
-
const entries = await this.agentFS.fs.readdir(normalizedPath);
|
|
126
|
-
const result = [];
|
|
127
|
-
for (const entry of entries) {
|
|
128
|
-
const entryPath = normalizedPath === '' ? entry : `${normalizedPath}/${entry}`;
|
|
129
|
-
const stats = await this.stat(entryPath);
|
|
130
|
-
result.push({
|
|
131
|
-
name: entry,
|
|
132
|
-
path: entryPath,
|
|
133
|
-
stats,
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
return result;
|
|
137
|
-
}
|
|
138
|
-
catch (error) {
|
|
139
|
-
throw new Error(`Failed to read directory ${path}: ${error instanceof Error ? error.message : String(error)}`);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
async mkdir(path, recursive = false) {
|
|
143
|
-
this.ensureInitialized();
|
|
144
|
-
const normalizedPath = this.normalizePath(path);
|
|
145
|
-
try {
|
|
146
|
-
// AgentFS may support recursive mkdir through the SDK
|
|
147
|
-
// If not, we'll create parent directories manually if recursive is true
|
|
148
|
-
if (recursive) {
|
|
149
|
-
const parts = normalizedPath.split('/');
|
|
150
|
-
let currentPath = '';
|
|
151
|
-
for (const part of parts) {
|
|
152
|
-
currentPath = currentPath ? `${currentPath}/${part}` : part;
|
|
153
|
-
try {
|
|
154
|
-
await this.agentFS.fs.mkdir(currentPath);
|
|
155
|
-
}
|
|
156
|
-
catch (err) {
|
|
157
|
-
// Ignore if directory already exists
|
|
158
|
-
if (!err?.message?.includes('exists')) {
|
|
159
|
-
throw err;
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
else {
|
|
165
|
-
await this.agentFS.fs.mkdir(normalizedPath);
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
catch (error) {
|
|
169
|
-
throw new Error(`Failed to create directory ${path}: ${error instanceof Error ? error.message : String(error)}`);
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
async unlink(path, recursive = false) {
|
|
173
|
-
this.ensureInitialized();
|
|
174
|
-
const normalizedPath = this.normalizePath(path);
|
|
175
|
-
try {
|
|
176
|
-
const stats = await this.stat(normalizedPath);
|
|
177
|
-
if (stats.isDirectory) {
|
|
178
|
-
if (recursive) {
|
|
179
|
-
const entries = await this.readdir(normalizedPath);
|
|
180
|
-
for (const entry of entries) {
|
|
181
|
-
await this.unlink(entry.path, true);
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
await this.agentFS.fs.rmdir(normalizedPath);
|
|
185
|
-
}
|
|
186
|
-
else {
|
|
187
|
-
await this.agentFS.fs.unlink(normalizedPath);
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
catch (error) {
|
|
191
|
-
throw new Error(`Failed to delete ${path}: ${error instanceof Error ? error.message : String(error)}`);
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
async copy(src, dest) {
|
|
195
|
-
this.ensureInitialized();
|
|
196
|
-
const normalizedSrc = this.normalizePath(src);
|
|
197
|
-
const normalizedDest = this.normalizePath(dest);
|
|
198
|
-
try {
|
|
199
|
-
const content = await this.readFile(normalizedSrc);
|
|
200
|
-
await this.writeFile(normalizedDest, content);
|
|
201
|
-
}
|
|
202
|
-
catch (error) {
|
|
203
|
-
throw new Error(`Failed to copy ${src} to ${dest}: ${error instanceof Error ? error.message : String(error)}`);
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
async move(src, dest) {
|
|
207
|
-
this.ensureInitialized();
|
|
208
|
-
const normalizedSrc = this.normalizePath(src);
|
|
209
|
-
const normalizedDest = this.normalizePath(dest);
|
|
210
|
-
try {
|
|
211
|
-
await this.copy(normalizedSrc, normalizedDest);
|
|
212
|
-
await this.unlink(normalizedSrc);
|
|
213
|
-
}
|
|
214
|
-
catch (error) {
|
|
215
|
-
throw new Error(`Failed to move ${src} to ${dest}: ${error instanceof Error ? error.message : String(error)}`);
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
// Key-value operations
|
|
219
|
-
async get(key) {
|
|
220
|
-
this.ensureInitialized();
|
|
221
|
-
try {
|
|
222
|
-
return await this.agentFS.kv.get(key);
|
|
223
|
-
}
|
|
224
|
-
catch (error) {
|
|
225
|
-
throw new Error(`Failed to get key ${key}: ${error instanceof Error ? error.message : String(error)}`);
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
async set(key, value) {
|
|
229
|
-
this.ensureInitialized();
|
|
230
|
-
try {
|
|
231
|
-
await this.agentFS.kv.set(key, value);
|
|
232
|
-
}
|
|
233
|
-
catch (error) {
|
|
234
|
-
throw new Error(`Failed to set key ${key}: ${error instanceof Error ? error.message : String(error)}`);
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
async delete(key) {
|
|
238
|
-
this.ensureInitialized();
|
|
239
|
-
try {
|
|
240
|
-
await this.agentFS.kv.delete(key);
|
|
241
|
-
}
|
|
242
|
-
catch (error) {
|
|
243
|
-
throw new Error(`Failed to delete key ${key}: ${error instanceof Error ? error.message : String(error)}`);
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
async listKeys(prefix) {
|
|
247
|
-
this.ensureInitialized();
|
|
248
|
-
try {
|
|
249
|
-
// AgentFS may have a list method or we need to query directly
|
|
250
|
-
// For now, we'll use a method that might exist or throw a not implemented error
|
|
251
|
-
if (this.agentFS.kv.list) {
|
|
252
|
-
return await this.agentFS.kv.list(prefix);
|
|
253
|
-
}
|
|
254
|
-
// If list method doesn't exist, we'll need to implement it differently
|
|
255
|
-
// This might require direct SQLite access which isn't exposed by the SDK
|
|
256
|
-
throw new Error('listKeys is not directly supported by AgentFS SDK. Consider using SQL queries directly.');
|
|
257
|
-
}
|
|
258
|
-
catch (error) {
|
|
259
|
-
throw new Error(`Failed to list keys: ${error instanceof Error ? error.message : String(error)}`);
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
async hasKey(key) {
|
|
263
|
-
this.ensureInitialized();
|
|
264
|
-
try {
|
|
265
|
-
const value = await this.get(key);
|
|
266
|
-
return value !== null && value !== undefined;
|
|
267
|
-
}
|
|
268
|
-
catch {
|
|
269
|
-
return false;
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
// Tool call tracking
|
|
273
|
-
async recordToolCall(metadata) {
|
|
274
|
-
this.ensureInitialized();
|
|
275
|
-
try {
|
|
276
|
-
await this.agentFS.tools.record(metadata.tool, metadata.startedAt, metadata.endedAt, metadata.input || {}, metadata.output || {});
|
|
277
|
-
}
|
|
278
|
-
catch (error) {
|
|
279
|
-
throw new Error(`Failed to record tool call: ${error instanceof Error ? error.message : String(error)}`);
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
async getToolCallHistory(filter) {
|
|
283
|
-
this.ensureInitialized();
|
|
284
|
-
try {
|
|
285
|
-
// AgentFS tools API might have a query method
|
|
286
|
-
// If not, we'll need to query the SQLite database directly
|
|
287
|
-
if (this.agentFS.tools.query) {
|
|
288
|
-
const results = await this.agentFS.tools.query(filter);
|
|
289
|
-
return results.map((r) => ({
|
|
290
|
-
tool: r.tool,
|
|
291
|
-
startedAt: r.startedAt,
|
|
292
|
-
endedAt: r.endedAt,
|
|
293
|
-
input: r.input,
|
|
294
|
-
output: r.output,
|
|
295
|
-
status: r.status,
|
|
296
|
-
error: r.error,
|
|
297
|
-
}));
|
|
298
|
-
}
|
|
299
|
-
// If query method doesn't exist, return empty array for now
|
|
300
|
-
// In a real implementation, you might want to access the database directly
|
|
301
|
-
throw new Error('getToolCallHistory is not directly supported by AgentFS SDK. Consider using SQL queries directly.');
|
|
302
|
-
}
|
|
303
|
-
catch (error) {
|
|
304
|
-
throw new Error(`Failed to get tool call history: ${error instanceof Error ? error.message : String(error)}`);
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
//# sourceMappingURL=agentfs-provider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agentfs-provider.js","sourceRoot":"","sources":["../../src/filesystem/agentfs-provider.ts"],"names":[],"mappings":"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"}
|