@push.rocks/smartagent 1.2.1 → 1.2.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/dist_ts/index.d.ts +1 -1
- package/dist_ts/index.js +1 -1
- package/dist_ts/plugins.d.ts +2 -0
- package/dist_ts/plugins.js +4 -1
- package/dist_ts/smartagent.classes.dualagent.d.ts +5 -0
- package/dist_ts/smartagent.classes.dualagent.js +9 -1
- package/dist_ts/smartagent.tools.filesystem.d.ts +15 -0
- package/dist_ts/smartagent.tools.filesystem.js +50 -17
- package/package.json +1 -1
- package/ts/index.ts +1 -1
- package/ts/plugins.ts +5 -0
- package/ts/smartagent.classes.dualagent.ts +9 -0
- package/ts/smartagent.tools.filesystem.ts +60 -16
package/dist_ts/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ export { DualAgentOrchestrator } from './smartagent.classes.dualagent.js';
|
|
|
2
2
|
export { DriverAgent } from './smartagent.classes.driveragent.js';
|
|
3
3
|
export { GuardianAgent } from './smartagent.classes.guardianagent.js';
|
|
4
4
|
export { BaseToolWrapper } from './smartagent.tools.base.js';
|
|
5
|
-
export { FilesystemTool } from './smartagent.tools.filesystem.js';
|
|
5
|
+
export { FilesystemTool, type IFilesystemToolOptions } from './smartagent.tools.filesystem.js';
|
|
6
6
|
export { HttpTool } from './smartagent.tools.http.js';
|
|
7
7
|
export { ShellTool } from './smartagent.tools.shell.js';
|
|
8
8
|
export { BrowserTool } from './smartagent.tools.browser.js';
|
package/dist_ts/index.js
CHANGED
|
@@ -16,4 +16,4 @@ export { DenoTool } from './smartagent.tools.deno.js';
|
|
|
16
16
|
export * from './smartagent.interfaces.js';
|
|
17
17
|
// Re-export useful types from smartai
|
|
18
18
|
export {} from '@push.rocks/smartai';
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUV4Qyx3REFBd0Q7QUFDeEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFMUUsMkJBQTJCO0FBQzNCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFdEUsa0RBQWtEO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUU3RCx3QkFBd0I7QUFDeEIsT0FBTyxFQUFFLGNBQWMsRUFBK0IsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsUUFBUSxFQUF3QixNQUFNLDRCQUE0QixDQUFDO0FBRTVFLHdCQUF3QjtBQUN4QixjQUFjLDRCQUE0QixDQUFDO0FBRTNDLHNDQUFzQztBQUN0QyxPQUFPLEVBTU4sTUFBTSxxQkFBcUIsQ0FBQyJ9
|
package/dist_ts/plugins.d.ts
CHANGED
package/dist_ts/plugins.js
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
// node native
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
export { path };
|
|
1
4
|
// @push.rocks scope
|
|
2
5
|
import * as smartai from '@push.rocks/smartai';
|
|
3
6
|
import * as smartdeno from '@push.rocks/smartdeno';
|
|
@@ -6,4 +9,4 @@ import * as smartrequest from '@push.rocks/smartrequest';
|
|
|
6
9
|
import * as smartbrowser from '@push.rocks/smartbrowser';
|
|
7
10
|
import * as smartshell from '@push.rocks/smartshell';
|
|
8
11
|
export { smartai, smartdeno, smartfs, smartrequest, smartbrowser, smartshell, };
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3BsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYztBQUNkLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBRTdCLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUVoQixvQkFBb0I7QUFDcEIsT0FBTyxLQUFLLE9BQU8sTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEtBQUssU0FBUyxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sS0FBSyxPQUFPLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxLQUFLLFlBQVksTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEtBQUssWUFBWSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxVQUFVLE1BQU0sd0JBQXdCLENBQUM7QUFFckQsT0FBTyxFQUNMLE9BQU8sRUFDUCxTQUFTLEVBQ1QsT0FBTyxFQUNQLFlBQVksRUFDWixZQUFZLEVBQ1osVUFBVSxHQUNYLENBQUMifQ==
|
|
@@ -28,6 +28,11 @@ export declare class DualAgentOrchestrator {
|
|
|
28
28
|
* Register all standard tools
|
|
29
29
|
*/
|
|
30
30
|
registerStandardTools(): void;
|
|
31
|
+
/**
|
|
32
|
+
* Register a scoped filesystem tool that can only access files within the specified directory
|
|
33
|
+
* @param basePath The directory to scope filesystem operations to
|
|
34
|
+
*/
|
|
35
|
+
registerScopedFilesystemTool(basePath: string): void;
|
|
31
36
|
/**
|
|
32
37
|
* Initialize all tools (eager loading)
|
|
33
38
|
*/
|
|
@@ -92,6 +92,14 @@ export class DualAgentOrchestrator {
|
|
|
92
92
|
this.registerTool(tool);
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* Register a scoped filesystem tool that can only access files within the specified directory
|
|
97
|
+
* @param basePath The directory to scope filesystem operations to
|
|
98
|
+
*/
|
|
99
|
+
registerScopedFilesystemTool(basePath) {
|
|
100
|
+
const scopedTool = new FilesystemTool({ basePath });
|
|
101
|
+
this.registerTool(scopedTool);
|
|
102
|
+
}
|
|
95
103
|
/**
|
|
96
104
|
* Initialize all tools (eager loading)
|
|
97
105
|
*/
|
|
@@ -323,4 +331,4 @@ export class DualAgentOrchestrator {
|
|
|
323
331
|
return Array.from(this.tools.keys());
|
|
324
332
|
}
|
|
325
333
|
}
|
|
326
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhZ2VudC5jbGFzc2VzLmR1YWxhZ2VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0YWdlbnQuY2xhc3Nlcy5kdWFsYWdlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxLQUFLLFVBQVUsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXREOzs7R0FHRztBQUNILE1BQU0sT0FBTyxxQkFBcUI7SUFDeEIsT0FBTyxDQUErQjtJQUN0QyxPQUFPLENBQTBCO0lBQ2pDLGNBQWMsQ0FBa0M7SUFDaEQsZ0JBQWdCLENBQWtDO0lBQ2xELE1BQU0sQ0FBYztJQUNwQixRQUFRLENBQWdCO0lBQ3hCLEtBQUssR0FBaUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNoRCxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ2xCLG1CQUFtQixHQUErQixFQUFFLENBQUM7SUFDckQsV0FBVyxHQUFHLElBQUksQ0FBQyxDQUFDLG9FQUFvRTtJQUVoRyxZQUFZLE9BQXFDO1FBQy9DLElBQUksQ0FBQyxPQUFPLEdBQUc7WUFDYixhQUFhLEVBQUUsRUFBRTtZQUNqQix3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
|
|
334
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhZ2VudC5jbGFzc2VzLmR1YWxhZ2VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0YWdlbnQuY2xhc3Nlcy5kdWFsYWdlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxLQUFLLFVBQVUsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXREOzs7R0FHRztBQUNILE1BQU0sT0FBTyxxQkFBcUI7SUFDeEIsT0FBTyxDQUErQjtJQUN0QyxPQUFPLENBQTBCO0lBQ2pDLGNBQWMsQ0FBa0M7SUFDaEQsZ0JBQWdCLENBQWtDO0lBQ2xELE1BQU0sQ0FBYztJQUNwQixRQUFRLENBQWdCO0lBQ3hCLEtBQUssR0FBaUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNoRCxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ2xCLG1CQUFtQixHQUErQixFQUFFLENBQUM7SUFDckQsV0FBVyxHQUFHLElBQUksQ0FBQyxDQUFDLG9FQUFvRTtJQUVoRyxZQUFZLE9BQXFDO1FBQy9DLElBQUksQ0FBQyxPQUFPLEdBQUc7WUFDYixhQUFhLEVBQUUsRUFBRTtZQUNqQix3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
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import * as interfaces from './smartagent.interfaces.js';
|
|
2
2
|
import { BaseToolWrapper } from './smartagent.tools.base.js';
|
|
3
|
+
/**
|
|
4
|
+
* Options for FilesystemTool
|
|
5
|
+
*/
|
|
6
|
+
export interface IFilesystemToolOptions {
|
|
7
|
+
/** Base path to scope all operations to. If set, all paths must be within this directory. */
|
|
8
|
+
basePath?: string;
|
|
9
|
+
}
|
|
3
10
|
/**
|
|
4
11
|
* Filesystem tool for file and directory operations
|
|
5
12
|
* Wraps @push.rocks/smartfs
|
|
@@ -7,6 +14,14 @@ import { BaseToolWrapper } from './smartagent.tools.base.js';
|
|
|
7
14
|
export declare class FilesystemTool extends BaseToolWrapper {
|
|
8
15
|
name: string;
|
|
9
16
|
description: string;
|
|
17
|
+
/** Base path to scope all operations to */
|
|
18
|
+
private basePath?;
|
|
19
|
+
constructor(options?: IFilesystemToolOptions);
|
|
20
|
+
/**
|
|
21
|
+
* Validate that a path is within the allowed base path
|
|
22
|
+
* @throws Error if path is outside allowed directory
|
|
23
|
+
*/
|
|
24
|
+
private validatePath;
|
|
10
25
|
actions: interfaces.IToolAction[];
|
|
11
26
|
private smartfs;
|
|
12
27
|
initialize(): Promise<void>;
|
|
@@ -8,6 +8,28 @@ import { BaseToolWrapper } from './smartagent.tools.base.js';
|
|
|
8
8
|
export class FilesystemTool extends BaseToolWrapper {
|
|
9
9
|
name = 'filesystem';
|
|
10
10
|
description = 'Read, write, list, and delete files and directories';
|
|
11
|
+
/** Base path to scope all operations to */
|
|
12
|
+
basePath;
|
|
13
|
+
constructor(options) {
|
|
14
|
+
super();
|
|
15
|
+
if (options?.basePath) {
|
|
16
|
+
this.basePath = plugins.path.resolve(options.basePath);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Validate that a path is within the allowed base path
|
|
21
|
+
* @throws Error if path is outside allowed directory
|
|
22
|
+
*/
|
|
23
|
+
validatePath(pathArg) {
|
|
24
|
+
const resolved = plugins.path.resolve(pathArg);
|
|
25
|
+
if (this.basePath) {
|
|
26
|
+
// Ensure the resolved path starts with the base path
|
|
27
|
+
if (!resolved.startsWith(this.basePath + plugins.path.sep) && resolved !== this.basePath) {
|
|
28
|
+
throw new Error(`Access denied: path "${pathArg}" is outside allowed directory "${this.basePath}"`);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return resolved;
|
|
32
|
+
}
|
|
11
33
|
actions = [
|
|
12
34
|
{
|
|
13
35
|
name: 'read',
|
|
@@ -162,9 +184,10 @@ export class FilesystemTool extends BaseToolWrapper {
|
|
|
162
184
|
try {
|
|
163
185
|
switch (action) {
|
|
164
186
|
case 'read': {
|
|
187
|
+
const validatedPath = this.validatePath(params.path);
|
|
165
188
|
const encoding = params.encoding || 'utf8';
|
|
166
189
|
const content = await this.smartfs
|
|
167
|
-
.file(
|
|
190
|
+
.file(validatedPath)
|
|
168
191
|
.encoding(encoding)
|
|
169
192
|
.read();
|
|
170
193
|
return {
|
|
@@ -177,9 +200,10 @@ export class FilesystemTool extends BaseToolWrapper {
|
|
|
177
200
|
};
|
|
178
201
|
}
|
|
179
202
|
case 'write': {
|
|
203
|
+
const validatedPath = this.validatePath(params.path);
|
|
180
204
|
const encoding = params.encoding || 'utf8';
|
|
181
205
|
await this.smartfs
|
|
182
|
-
.file(
|
|
206
|
+
.file(validatedPath)
|
|
183
207
|
.encoding(encoding)
|
|
184
208
|
.write(params.content);
|
|
185
209
|
return {
|
|
@@ -192,7 +216,8 @@ export class FilesystemTool extends BaseToolWrapper {
|
|
|
192
216
|
};
|
|
193
217
|
}
|
|
194
218
|
case 'append': {
|
|
195
|
-
|
|
219
|
+
const validatedPath = this.validatePath(params.path);
|
|
220
|
+
await this.smartfs.file(validatedPath).append(params.content);
|
|
196
221
|
return {
|
|
197
222
|
success: true,
|
|
198
223
|
result: {
|
|
@@ -202,7 +227,8 @@ export class FilesystemTool extends BaseToolWrapper {
|
|
|
202
227
|
};
|
|
203
228
|
}
|
|
204
229
|
case 'list': {
|
|
205
|
-
|
|
230
|
+
const validatedPath = this.validatePath(params.path);
|
|
231
|
+
let dir = this.smartfs.directory(validatedPath);
|
|
206
232
|
if (params.recursive) {
|
|
207
233
|
dir = dir.recursive();
|
|
208
234
|
}
|
|
@@ -220,34 +246,35 @@ export class FilesystemTool extends BaseToolWrapper {
|
|
|
220
246
|
};
|
|
221
247
|
}
|
|
222
248
|
case 'delete': {
|
|
223
|
-
const
|
|
249
|
+
const validatedPath = this.validatePath(params.path);
|
|
224
250
|
// Check if it's a directory or file
|
|
225
|
-
const exists = await this.smartfs.file(
|
|
251
|
+
const exists = await this.smartfs.file(validatedPath).exists();
|
|
226
252
|
if (exists) {
|
|
227
253
|
// Try to get stats to check if it's a directory
|
|
228
254
|
try {
|
|
229
|
-
const stats = await this.smartfs.file(
|
|
255
|
+
const stats = await this.smartfs.file(validatedPath).stat();
|
|
230
256
|
if (stats.isDirectory && params.recursive) {
|
|
231
|
-
await this.smartfs.directory(
|
|
257
|
+
await this.smartfs.directory(validatedPath).recursive().delete();
|
|
232
258
|
}
|
|
233
259
|
else {
|
|
234
|
-
await this.smartfs.file(
|
|
260
|
+
await this.smartfs.file(validatedPath).delete();
|
|
235
261
|
}
|
|
236
262
|
}
|
|
237
263
|
catch {
|
|
238
|
-
await this.smartfs.file(
|
|
264
|
+
await this.smartfs.file(validatedPath).delete();
|
|
239
265
|
}
|
|
240
266
|
}
|
|
241
267
|
return {
|
|
242
268
|
success: true,
|
|
243
269
|
result: {
|
|
244
|
-
path,
|
|
270
|
+
path: params.path,
|
|
245
271
|
deleted: true,
|
|
246
272
|
},
|
|
247
273
|
};
|
|
248
274
|
}
|
|
249
275
|
case 'exists': {
|
|
250
|
-
const
|
|
276
|
+
const validatedPath = this.validatePath(params.path);
|
|
277
|
+
const exists = await this.smartfs.file(validatedPath).exists();
|
|
251
278
|
return {
|
|
252
279
|
success: true,
|
|
253
280
|
result: {
|
|
@@ -257,7 +284,8 @@ export class FilesystemTool extends BaseToolWrapper {
|
|
|
257
284
|
};
|
|
258
285
|
}
|
|
259
286
|
case 'stat': {
|
|
260
|
-
const
|
|
287
|
+
const validatedPath = this.validatePath(params.path);
|
|
288
|
+
const stats = await this.smartfs.file(validatedPath).stat();
|
|
261
289
|
return {
|
|
262
290
|
success: true,
|
|
263
291
|
result: {
|
|
@@ -267,7 +295,9 @@ export class FilesystemTool extends BaseToolWrapper {
|
|
|
267
295
|
};
|
|
268
296
|
}
|
|
269
297
|
case 'copy': {
|
|
270
|
-
|
|
298
|
+
const validatedSource = this.validatePath(params.source);
|
|
299
|
+
const validatedDest = this.validatePath(params.destination);
|
|
300
|
+
await this.smartfs.file(validatedSource).copy(validatedDest);
|
|
271
301
|
return {
|
|
272
302
|
success: true,
|
|
273
303
|
result: {
|
|
@@ -278,7 +308,9 @@ export class FilesystemTool extends BaseToolWrapper {
|
|
|
278
308
|
};
|
|
279
309
|
}
|
|
280
310
|
case 'move': {
|
|
281
|
-
|
|
311
|
+
const validatedSource = this.validatePath(params.source);
|
|
312
|
+
const validatedDest = this.validatePath(params.destination);
|
|
313
|
+
await this.smartfs.file(validatedSource).move(validatedDest);
|
|
282
314
|
return {
|
|
283
315
|
success: true,
|
|
284
316
|
result: {
|
|
@@ -289,7 +321,8 @@ export class FilesystemTool extends BaseToolWrapper {
|
|
|
289
321
|
};
|
|
290
322
|
}
|
|
291
323
|
case 'mkdir': {
|
|
292
|
-
|
|
324
|
+
const validatedPath = this.validatePath(params.path);
|
|
325
|
+
let dir = this.smartfs.directory(validatedPath);
|
|
293
326
|
if (params.recursive !== false) {
|
|
294
327
|
dir = dir.recursive();
|
|
295
328
|
}
|
|
@@ -349,4 +382,4 @@ export class FilesystemTool extends BaseToolWrapper {
|
|
|
349
382
|
}
|
|
350
383
|
}
|
|
351
384
|
}
|
|
352
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhZ2VudC50b29scy5maWxlc3lzdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRhZ2VudC50b29scy5maWxlc3lzdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxVQUFVLE1BQU0sNEJBQTRCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTdEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxjQUFlLFNBQVEsZUFBZTtJQUMxQyxJQUFJLEdBQUcsWUFBWSxDQUFDO0lBQ3BCLFdBQVcsR0FBRyxxREFBcUQsQ0FBQztJQUVwRSxPQUFPLEdBQTZCO1FBQ3pDO1lBQ0UsSUFBSSxFQUFFLE1BQU07WUFDWixXQUFXLEVBQUUsNkJBQTZCO1lBQzFDLFVBQVUsRUFBRTtnQkFDVixJQUFJLEVBQUUsUUFBUTtnQkFDZCxVQUFVLEVBQUU7b0JBQ1YsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsMkJBQTJCLEVBQUU7b0JBQ2xFLFFBQVEsRUFBRTt3QkFDUixJQUFJLEVBQUUsUUFBUTt3QkFDZCxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQzt3QkFDbEMsT0FBTyxFQUFFLE1BQU07d0JBQ2YsV0FBVyxFQUFFLGVBQWU7cUJBQzdCO2lCQUNGO2dCQUNELFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQzthQUNuQjtTQUNGO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsT0FBTztZQUNiLFdBQVcsRUFBRSxpREFBaUQ7WUFDOUQsVUFBVSxFQUFFO2dCQUNWLElBQUksRUFBRSxRQUFRO2dCQUNkLFVBQVUsRUFBRTtvQkFDVixJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSwyQkFBMkIsRUFBRTtvQkFDbEUsT0FBTyxF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
|
|
385
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhZ2VudC50b29scy5maWxlc3lzdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRhZ2VudC50b29scy5maWxlc3lzdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxVQUFVLE1BQU0sNEJBQTRCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBVTdEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxjQUFlLFNBQVEsZUFBZTtJQUMxQyxJQUFJLEdBQUcsWUFBWSxDQUFDO0lBQ3BCLFdBQVcsR0FBRyxxREFBcUQsQ0FBQztJQUUzRSwyQ0FBMkM7SUFDbkMsUUFBUSxDQUFVO0lBRTFCLFlBQVksT0FBZ0M7UUFDMUMsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6RCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNLLFlBQVksQ0FBQyxPQUFlO1FBQ2xDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9DLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLHFEQUFxRDtZQUNyRCxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksUUFBUSxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDekYsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsT0FBTyxtQ0FBbUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxD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
|
package/package.json
CHANGED
package/ts/index.ts
CHANGED
|
@@ -11,7 +11,7 @@ export { GuardianAgent } from './smartagent.classes.guardianagent.js';
|
|
|
11
11
|
export { BaseToolWrapper } from './smartagent.tools.base.js';
|
|
12
12
|
|
|
13
13
|
// Export standard tools
|
|
14
|
-
export { FilesystemTool } from './smartagent.tools.filesystem.js';
|
|
14
|
+
export { FilesystemTool, type IFilesystemToolOptions } from './smartagent.tools.filesystem.js';
|
|
15
15
|
export { HttpTool } from './smartagent.tools.http.js';
|
|
16
16
|
export { ShellTool } from './smartagent.tools.shell.js';
|
|
17
17
|
export { BrowserTool } from './smartagent.tools.browser.js';
|
package/ts/plugins.ts
CHANGED
|
@@ -99,6 +99,15 @@ export class DualAgentOrchestrator {
|
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
101
|
|
|
102
|
+
/**
|
|
103
|
+
* Register a scoped filesystem tool that can only access files within the specified directory
|
|
104
|
+
* @param basePath The directory to scope filesystem operations to
|
|
105
|
+
*/
|
|
106
|
+
public registerScopedFilesystemTool(basePath: string): void {
|
|
107
|
+
const scopedTool = new FilesystemTool({ basePath });
|
|
108
|
+
this.registerTool(scopedTool);
|
|
109
|
+
}
|
|
110
|
+
|
|
102
111
|
/**
|
|
103
112
|
* Initialize all tools (eager loading)
|
|
104
113
|
*/
|
|
@@ -2,6 +2,14 @@ import * as plugins from './plugins.js';
|
|
|
2
2
|
import * as interfaces from './smartagent.interfaces.js';
|
|
3
3
|
import { BaseToolWrapper } from './smartagent.tools.base.js';
|
|
4
4
|
|
|
5
|
+
/**
|
|
6
|
+
* Options for FilesystemTool
|
|
7
|
+
*/
|
|
8
|
+
export interface IFilesystemToolOptions {
|
|
9
|
+
/** Base path to scope all operations to. If set, all paths must be within this directory. */
|
|
10
|
+
basePath?: string;
|
|
11
|
+
}
|
|
12
|
+
|
|
5
13
|
/**
|
|
6
14
|
* Filesystem tool for file and directory operations
|
|
7
15
|
* Wraps @push.rocks/smartfs
|
|
@@ -10,6 +18,31 @@ export class FilesystemTool extends BaseToolWrapper {
|
|
|
10
18
|
public name = 'filesystem';
|
|
11
19
|
public description = 'Read, write, list, and delete files and directories';
|
|
12
20
|
|
|
21
|
+
/** Base path to scope all operations to */
|
|
22
|
+
private basePath?: string;
|
|
23
|
+
|
|
24
|
+
constructor(options?: IFilesystemToolOptions) {
|
|
25
|
+
super();
|
|
26
|
+
if (options?.basePath) {
|
|
27
|
+
this.basePath = plugins.path.resolve(options.basePath);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Validate that a path is within the allowed base path
|
|
33
|
+
* @throws Error if path is outside allowed directory
|
|
34
|
+
*/
|
|
35
|
+
private validatePath(pathArg: string): string {
|
|
36
|
+
const resolved = plugins.path.resolve(pathArg);
|
|
37
|
+
if (this.basePath) {
|
|
38
|
+
// Ensure the resolved path starts with the base path
|
|
39
|
+
if (!resolved.startsWith(this.basePath + plugins.path.sep) && resolved !== this.basePath) {
|
|
40
|
+
throw new Error(`Access denied: path "${pathArg}" is outside allowed directory "${this.basePath}"`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return resolved;
|
|
44
|
+
}
|
|
45
|
+
|
|
13
46
|
public actions: interfaces.IToolAction[] = [
|
|
14
47
|
{
|
|
15
48
|
name: 'read',
|
|
@@ -172,9 +205,10 @@ export class FilesystemTool extends BaseToolWrapper {
|
|
|
172
205
|
try {
|
|
173
206
|
switch (action) {
|
|
174
207
|
case 'read': {
|
|
208
|
+
const validatedPath = this.validatePath(params.path as string);
|
|
175
209
|
const encoding = (params.encoding as string) || 'utf8';
|
|
176
210
|
const content = await this.smartfs
|
|
177
|
-
.file(
|
|
211
|
+
.file(validatedPath)
|
|
178
212
|
.encoding(encoding as 'utf8' | 'binary' | 'base64')
|
|
179
213
|
.read();
|
|
180
214
|
return {
|
|
@@ -188,9 +222,10 @@ export class FilesystemTool extends BaseToolWrapper {
|
|
|
188
222
|
}
|
|
189
223
|
|
|
190
224
|
case 'write': {
|
|
225
|
+
const validatedPath = this.validatePath(params.path as string);
|
|
191
226
|
const encoding = (params.encoding as string) || 'utf8';
|
|
192
227
|
await this.smartfs
|
|
193
|
-
.file(
|
|
228
|
+
.file(validatedPath)
|
|
194
229
|
.encoding(encoding as 'utf8' | 'binary' | 'base64')
|
|
195
230
|
.write(params.content as string);
|
|
196
231
|
return {
|
|
@@ -204,7 +239,8 @@ export class FilesystemTool extends BaseToolWrapper {
|
|
|
204
239
|
}
|
|
205
240
|
|
|
206
241
|
case 'append': {
|
|
207
|
-
|
|
242
|
+
const validatedPath = this.validatePath(params.path as string);
|
|
243
|
+
await this.smartfs.file(validatedPath).append(params.content as string);
|
|
208
244
|
return {
|
|
209
245
|
success: true,
|
|
210
246
|
result: {
|
|
@@ -215,7 +251,8 @@ export class FilesystemTool extends BaseToolWrapper {
|
|
|
215
251
|
}
|
|
216
252
|
|
|
217
253
|
case 'list': {
|
|
218
|
-
|
|
254
|
+
const validatedPath = this.validatePath(params.path as string);
|
|
255
|
+
let dir = this.smartfs.directory(validatedPath);
|
|
219
256
|
if (params.recursive) {
|
|
220
257
|
dir = dir.recursive();
|
|
221
258
|
}
|
|
@@ -234,33 +271,34 @@ export class FilesystemTool extends BaseToolWrapper {
|
|
|
234
271
|
}
|
|
235
272
|
|
|
236
273
|
case 'delete': {
|
|
237
|
-
const
|
|
274
|
+
const validatedPath = this.validatePath(params.path as string);
|
|
238
275
|
// Check if it's a directory or file
|
|
239
|
-
const exists = await this.smartfs.file(
|
|
276
|
+
const exists = await this.smartfs.file(validatedPath).exists();
|
|
240
277
|
if (exists) {
|
|
241
278
|
// Try to get stats to check if it's a directory
|
|
242
279
|
try {
|
|
243
|
-
const stats = await this.smartfs.file(
|
|
280
|
+
const stats = await this.smartfs.file(validatedPath).stat();
|
|
244
281
|
if (stats.isDirectory && params.recursive) {
|
|
245
|
-
await this.smartfs.directory(
|
|
282
|
+
await this.smartfs.directory(validatedPath).recursive().delete();
|
|
246
283
|
} else {
|
|
247
|
-
await this.smartfs.file(
|
|
284
|
+
await this.smartfs.file(validatedPath).delete();
|
|
248
285
|
}
|
|
249
286
|
} catch {
|
|
250
|
-
await this.smartfs.file(
|
|
287
|
+
await this.smartfs.file(validatedPath).delete();
|
|
251
288
|
}
|
|
252
289
|
}
|
|
253
290
|
return {
|
|
254
291
|
success: true,
|
|
255
292
|
result: {
|
|
256
|
-
path,
|
|
293
|
+
path: params.path,
|
|
257
294
|
deleted: true,
|
|
258
295
|
},
|
|
259
296
|
};
|
|
260
297
|
}
|
|
261
298
|
|
|
262
299
|
case 'exists': {
|
|
263
|
-
const
|
|
300
|
+
const validatedPath = this.validatePath(params.path as string);
|
|
301
|
+
const exists = await this.smartfs.file(validatedPath).exists();
|
|
264
302
|
return {
|
|
265
303
|
success: true,
|
|
266
304
|
result: {
|
|
@@ -271,7 +309,8 @@ export class FilesystemTool extends BaseToolWrapper {
|
|
|
271
309
|
}
|
|
272
310
|
|
|
273
311
|
case 'stat': {
|
|
274
|
-
const
|
|
312
|
+
const validatedPath = this.validatePath(params.path as string);
|
|
313
|
+
const stats = await this.smartfs.file(validatedPath).stat();
|
|
275
314
|
return {
|
|
276
315
|
success: true,
|
|
277
316
|
result: {
|
|
@@ -282,7 +321,9 @@ export class FilesystemTool extends BaseToolWrapper {
|
|
|
282
321
|
}
|
|
283
322
|
|
|
284
323
|
case 'copy': {
|
|
285
|
-
|
|
324
|
+
const validatedSource = this.validatePath(params.source as string);
|
|
325
|
+
const validatedDest = this.validatePath(params.destination as string);
|
|
326
|
+
await this.smartfs.file(validatedSource).copy(validatedDest);
|
|
286
327
|
return {
|
|
287
328
|
success: true,
|
|
288
329
|
result: {
|
|
@@ -294,7 +335,9 @@ export class FilesystemTool extends BaseToolWrapper {
|
|
|
294
335
|
}
|
|
295
336
|
|
|
296
337
|
case 'move': {
|
|
297
|
-
|
|
338
|
+
const validatedSource = this.validatePath(params.source as string);
|
|
339
|
+
const validatedDest = this.validatePath(params.destination as string);
|
|
340
|
+
await this.smartfs.file(validatedSource).move(validatedDest);
|
|
298
341
|
return {
|
|
299
342
|
success: true,
|
|
300
343
|
result: {
|
|
@@ -306,7 +349,8 @@ export class FilesystemTool extends BaseToolWrapper {
|
|
|
306
349
|
}
|
|
307
350
|
|
|
308
351
|
case 'mkdir': {
|
|
309
|
-
|
|
352
|
+
const validatedPath = this.validatePath(params.path as string);
|
|
353
|
+
let dir = this.smartfs.directory(validatedPath);
|
|
310
354
|
if (params.recursive !== false) {
|
|
311
355
|
dir = dir.recursive();
|
|
312
356
|
}
|