@push.rocks/smartagent 1.7.0 → 3.0.0
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/00_commitinfo_data.js +3 -3
- package/dist_ts/index.d.ts +9 -12
- package/dist_ts/index.js +9 -20
- package/dist_ts/plugins.d.ts +8 -9
- package/dist_ts/plugins.js +10 -12
- package/dist_ts/smartagent.classes.agent.d.ts +2 -0
- package/dist_ts/smartagent.classes.agent.js +173 -0
- package/dist_ts/smartagent.classes.toolregistry.d.ts +12 -0
- package/dist_ts/smartagent.classes.toolregistry.js +17 -0
- package/dist_ts/smartagent.interfaces.d.ts +47 -231
- package/dist_ts/smartagent.interfaces.js +6 -7
- package/dist_ts/smartagent.utils.truncation.d.ts +10 -0
- package/dist_ts/smartagent.utils.truncation.js +26 -0
- package/dist_ts_compaction/index.d.ts +1 -0
- package/dist_ts_compaction/index.js +2 -0
- package/dist_ts_compaction/plugins.d.ts +4 -0
- package/dist_ts_compaction/plugins.js +3 -0
- package/dist_ts_compaction/smartagent.compaction.d.ts +10 -0
- package/dist_ts_compaction/smartagent.compaction.js +46 -0
- package/dist_ts_tools/index.d.ts +8 -0
- package/dist_ts_tools/index.js +6 -0
- package/dist_ts_tools/plugins.d.ts +15 -0
- package/dist_ts_tools/plugins.js +19 -0
- package/dist_ts_tools/tool.filesystem.d.ts +6 -0
- package/dist_ts_tools/tool.filesystem.js +102 -0
- package/dist_ts_tools/tool.http.d.ts +2 -0
- package/dist_ts_tools/tool.http.js +65 -0
- package/dist_ts_tools/tool.json.d.ts +2 -0
- package/dist_ts_tools/tool.json.js +47 -0
- package/dist_ts_tools/tool.shell.d.ts +8 -0
- package/dist_ts_tools/tool.shell.js +40 -0
- package/npmextra.json +1 -1
- package/package.json +30 -18
- package/readme.hints.md +43 -42
- package/readme.md +257 -526
- package/ts/00_commitinfo_data.ts +2 -2
- package/ts/index.ts +11 -31
- package/ts/plugins.ts +22 -21
- package/ts/smartagent.classes.agent.ts +198 -0
- package/ts/smartagent.classes.toolregistry.ts +20 -0
- package/ts/smartagent.interfaces.ts +51 -303
- package/ts/smartagent.utils.truncation.ts +39 -0
- package/ts_compaction/index.ts +1 -0
- package/ts_compaction/plugins.ts +6 -0
- package/ts_compaction/smartagent.compaction.ts +51 -0
- package/ts_tools/index.ts +8 -0
- package/ts_tools/plugins.ts +30 -0
- package/ts_tools/tool.filesystem.ts +131 -0
- package/ts_tools/tool.http.ts +78 -0
- package/ts_tools/tool.json.ts +53 -0
- package/ts_tools/tool.shell.ts +62 -0
- package/dist_ts/smartagent.classes.driveragent.d.ts +0 -134
- package/dist_ts/smartagent.classes.driveragent.js +0 -671
- package/dist_ts/smartagent.classes.dualagent.d.ts +0 -79
- package/dist_ts/smartagent.classes.dualagent.js +0 -583
- package/dist_ts/smartagent.classes.guardianagent.d.ts +0 -46
- package/dist_ts/smartagent.classes.guardianagent.js +0 -201
- package/dist_ts/smartagent.tools.base.d.ts +0 -52
- package/dist_ts/smartagent.tools.base.js +0 -42
- package/dist_ts/smartagent.tools.browser.d.ts +0 -17
- package/dist_ts/smartagent.tools.browser.js +0 -229
- package/dist_ts/smartagent.tools.deno.d.ts +0 -21
- package/dist_ts/smartagent.tools.deno.js +0 -191
- package/dist_ts/smartagent.tools.filesystem.d.ts +0 -40
- package/dist_ts/smartagent.tools.filesystem.js +0 -801
- package/dist_ts/smartagent.tools.http.d.ts +0 -16
- package/dist_ts/smartagent.tools.http.js +0 -264
- package/dist_ts/smartagent.tools.json.d.ts +0 -24
- package/dist_ts/smartagent.tools.json.js +0 -202
- package/dist_ts/smartagent.tools.shell.d.ts +0 -17
- package/dist_ts/smartagent.tools.shell.js +0 -202
- package/ts/smartagent.classes.driveragent.ts +0 -775
- package/ts/smartagent.classes.dualagent.ts +0 -657
- package/ts/smartagent.classes.guardianagent.ts +0 -241
- package/ts/smartagent.tools.base.ts +0 -83
- package/ts/smartagent.tools.browser.ts +0 -253
- package/ts/smartagent.tools.deno.ts +0 -230
- package/ts/smartagent.tools.filesystem.ts +0 -885
- package/ts/smartagent.tools.http.ts +0 -283
- package/ts/smartagent.tools.json.ts +0 -224
- package/ts/smartagent.tools.shell.ts +0 -230
|
@@ -1,191 +0,0 @@
|
|
|
1
|
-
import * as plugins from './plugins.js';
|
|
2
|
-
import * as interfaces from './smartagent.interfaces.js';
|
|
3
|
-
import { BaseToolWrapper } from './smartagent.tools.base.js';
|
|
4
|
-
/**
|
|
5
|
-
* Deno tool for executing TypeScript/JavaScript code in a sandboxed environment
|
|
6
|
-
* Wraps @push.rocks/smartdeno
|
|
7
|
-
*/
|
|
8
|
-
export class DenoTool extends BaseToolWrapper {
|
|
9
|
-
name = 'deno';
|
|
10
|
-
description = 'Execute TypeScript/JavaScript code in a sandboxed Deno environment with fine-grained permission control';
|
|
11
|
-
actions = [
|
|
12
|
-
{
|
|
13
|
-
name: 'execute',
|
|
14
|
-
description: 'Execute TypeScript/JavaScript code and return stdout/stderr. Code runs in Deno sandbox with specified permissions.',
|
|
15
|
-
parameters: {
|
|
16
|
-
type: 'object',
|
|
17
|
-
properties: {
|
|
18
|
-
code: {
|
|
19
|
-
type: 'string',
|
|
20
|
-
description: 'TypeScript/JavaScript code to execute',
|
|
21
|
-
},
|
|
22
|
-
permissions: {
|
|
23
|
-
type: 'array',
|
|
24
|
-
items: {
|
|
25
|
-
type: 'string',
|
|
26
|
-
enum: ['all', 'env', 'ffi', 'hrtime', 'net', 'read', 'run', 'sys', 'write'],
|
|
27
|
-
},
|
|
28
|
-
description: 'Deno permissions to grant. Default: none (fully sandboxed). Options: all, env, net, read, write, run, sys, ffi, hrtime',
|
|
29
|
-
},
|
|
30
|
-
},
|
|
31
|
-
required: ['code'],
|
|
32
|
-
},
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
name: 'executeWithResult',
|
|
36
|
-
description: 'Execute code that outputs JSON on the last line of stdout. The JSON is parsed and returned as the result.',
|
|
37
|
-
parameters: {
|
|
38
|
-
type: 'object',
|
|
39
|
-
properties: {
|
|
40
|
-
code: {
|
|
41
|
-
type: 'string',
|
|
42
|
-
description: 'Code that console.logs a JSON value on the final line. This JSON will be parsed and returned.',
|
|
43
|
-
},
|
|
44
|
-
permissions: {
|
|
45
|
-
type: 'array',
|
|
46
|
-
items: {
|
|
47
|
-
type: 'string',
|
|
48
|
-
enum: ['all', 'env', 'ffi', 'hrtime', 'net', 'read', 'run', 'sys', 'write'],
|
|
49
|
-
},
|
|
50
|
-
description: 'Deno permissions to grant',
|
|
51
|
-
},
|
|
52
|
-
},
|
|
53
|
-
required: ['code'],
|
|
54
|
-
},
|
|
55
|
-
},
|
|
56
|
-
];
|
|
57
|
-
smartdeno;
|
|
58
|
-
async initialize() {
|
|
59
|
-
this.smartdeno = new plugins.smartdeno.SmartDeno();
|
|
60
|
-
await this.smartdeno.start();
|
|
61
|
-
this.isInitialized = true;
|
|
62
|
-
}
|
|
63
|
-
async cleanup() {
|
|
64
|
-
if (this.smartdeno) {
|
|
65
|
-
await this.smartdeno.stop();
|
|
66
|
-
}
|
|
67
|
-
this.isInitialized = false;
|
|
68
|
-
}
|
|
69
|
-
async execute(action, params) {
|
|
70
|
-
this.validateAction(action);
|
|
71
|
-
this.ensureInitialized();
|
|
72
|
-
try {
|
|
73
|
-
const code = params.code;
|
|
74
|
-
const permissions = params.permissions || [];
|
|
75
|
-
// Execute the script
|
|
76
|
-
const result = await this.smartdeno.executeScript(code, {
|
|
77
|
-
permissions,
|
|
78
|
-
});
|
|
79
|
-
switch (action) {
|
|
80
|
-
case 'execute': {
|
|
81
|
-
return {
|
|
82
|
-
success: result.exitCode === 0,
|
|
83
|
-
result: {
|
|
84
|
-
exitCode: result.exitCode,
|
|
85
|
-
stdout: result.stdout,
|
|
86
|
-
stderr: result.stderr,
|
|
87
|
-
permissions,
|
|
88
|
-
},
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
case 'executeWithResult': {
|
|
92
|
-
if (result.exitCode !== 0) {
|
|
93
|
-
return {
|
|
94
|
-
success: false,
|
|
95
|
-
error: `Script failed with exit code ${result.exitCode}: ${result.stderr}`,
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
// Parse the last line of stdout as JSON
|
|
99
|
-
const lines = result.stdout.trim().split('\n');
|
|
100
|
-
const lastLine = lines[lines.length - 1];
|
|
101
|
-
try {
|
|
102
|
-
const parsedResult = JSON.parse(lastLine);
|
|
103
|
-
return {
|
|
104
|
-
success: true,
|
|
105
|
-
result: {
|
|
106
|
-
parsed: parsedResult,
|
|
107
|
-
stdout: result.stdout,
|
|
108
|
-
stderr: result.stderr,
|
|
109
|
-
},
|
|
110
|
-
};
|
|
111
|
-
}
|
|
112
|
-
catch (parseError) {
|
|
113
|
-
return {
|
|
114
|
-
success: false,
|
|
115
|
-
error: `Failed to parse JSON from last line of output: ${lastLine}`,
|
|
116
|
-
};
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
default:
|
|
120
|
-
return {
|
|
121
|
-
success: false,
|
|
122
|
-
error: `Unknown action: ${action}`,
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
catch (error) {
|
|
127
|
-
return {
|
|
128
|
-
success: false,
|
|
129
|
-
error: error instanceof Error ? error.message : String(error),
|
|
130
|
-
};
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
getToolExplanation() {
|
|
134
|
-
return `## Tool: deno
|
|
135
|
-
Execute TypeScript/JavaScript code in a sandboxed Deno environment with fine-grained permission control.
|
|
136
|
-
|
|
137
|
-
### Actions:
|
|
138
|
-
|
|
139
|
-
**execute** - Execute TypeScript/JavaScript code and return stdout/stderr
|
|
140
|
-
Parameters:
|
|
141
|
-
- code (required): TypeScript/JavaScript code to execute
|
|
142
|
-
- permissions (optional): Array of Deno permissions to grant. Options: "all", "env", "net", "read", "write", "run", "sys", "ffi", "hrtime". Default: none (fully sandboxed)
|
|
143
|
-
|
|
144
|
-
Example - Simple execution:
|
|
145
|
-
<tool_call>
|
|
146
|
-
<tool>deno</tool>
|
|
147
|
-
<action>execute</action>
|
|
148
|
-
<params>{"code": "console.log('Hello from Deno!');"}</params>
|
|
149
|
-
</tool_call>
|
|
150
|
-
|
|
151
|
-
Example - With network permission:
|
|
152
|
-
<tool_call>
|
|
153
|
-
<tool>deno</tool>
|
|
154
|
-
<action>execute</action>
|
|
155
|
-
<params>{"code": "const resp = await fetch('https://api.example.com/data');\\nconsole.log(await resp.text());", "permissions": ["net"]}</params>
|
|
156
|
-
</tool_call>
|
|
157
|
-
|
|
158
|
-
**executeWithResult** - Execute code that outputs JSON on the last line of stdout
|
|
159
|
-
Parameters:
|
|
160
|
-
- code (required): Code that console.logs a JSON value on the final line
|
|
161
|
-
- permissions (optional): Array of Deno permissions to grant
|
|
162
|
-
|
|
163
|
-
Example:
|
|
164
|
-
<tool_call>
|
|
165
|
-
<tool>deno</tool>
|
|
166
|
-
<action>executeWithResult</action>
|
|
167
|
-
<params>{"code": "const result = { sum: 1 + 2, product: 2 * 3 };\\nconsole.log(JSON.stringify(result));"}</params>
|
|
168
|
-
</tool_call>
|
|
169
|
-
`;
|
|
170
|
-
}
|
|
171
|
-
getCallSummary(action, params) {
|
|
172
|
-
const code = params.code;
|
|
173
|
-
const permissions = params.permissions || [];
|
|
174
|
-
// Create a preview of the code (first 100 chars)
|
|
175
|
-
const codePreview = code.length > 100 ? code.substring(0, 100) + '...' : code;
|
|
176
|
-
// Escape newlines for single-line display
|
|
177
|
-
const cleanPreview = codePreview.replace(/\n/g, '\\n');
|
|
178
|
-
const permissionInfo = permissions.length > 0
|
|
179
|
-
? ` [permissions: ${permissions.join(', ')}]`
|
|
180
|
-
: ' [sandboxed - no permissions]';
|
|
181
|
-
switch (action) {
|
|
182
|
-
case 'execute':
|
|
183
|
-
return `Execute Deno code${permissionInfo}: "${cleanPreview}"`;
|
|
184
|
-
case 'executeWithResult':
|
|
185
|
-
return `Execute Deno code and parse JSON result${permissionInfo}: "${cleanPreview}"`;
|
|
186
|
-
default:
|
|
187
|
-
return `Unknown action: ${action}`;
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhZ2VudC50b29scy5kZW5vLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRhZ2VudC50b29scy5kZW5vLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxVQUFVLE1BQU0sNEJBQTRCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBZ0I3RDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sUUFBUyxTQUFRLGVBQWU7SUFDcEMsSUFBSSxHQUFHLE1BQU0sQ0FBQztJQUNkLFdBQVcsR0FDaEIseUdBQXlHLENBQUM7SUFFckcsT0FBTyxHQUE2QjtRQUN6QztZQUNFLElBQUksRUFBRSxTQUFTO1lBQ2YsV0FBVyxFQUNULG9IQUFvSDtZQUN0SCxVQUFVLEVBQUU7Z0JBQ1YsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsVUFBVSxFQUFFO29CQUNWLElBQUksRUFBRTt3QkFDSixJQUFJLEVBQUUsUUFBUTt3QkFDZCxXQUFXLEVBQUUsdUNBQXVDO3FCQUNyRDtvQkFDRCxXQUFXLEVBQUU7d0JBQ1gsSUFBSSxFQUFFLE9BQU87d0JBQ2IsS0FBSyxFQUFFOzRCQUNMLElBQUksRUFBRSxRQUFROzRCQUNkLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDO3lCQUM1RTt3QkFDRCxXQUFXLEVBQ1Qsd0hBQXdIO3FCQUMzSDtpQkFDRjtnQkFDRCxRQUFRLEVBQUUsQ0FBQyxNQUFNLENBQUM7YUFDbkI7U0FDRjtRQUNEO1lBQ0UsSUFBSSxFQUFFLG1CQUFtQjtZQUN6QixXQUFXLEVBQ1QsMkdBQTJHO1lBQzdHLFVBQVUsRUFBRTtnQkFDVixJQUFJLEVBQUUsUUFBUTtnQkFDZCxVQUFVLEVBQUU7b0JBQ1YsSUFBSSxFQUFFO3dCQUNKLElBQUksRUFBRSxRQUFRO3dCQUNkLFdBQVcsRUFDVCwrRkFBK0Y7cUJBQ2xHO29CQUNELFdBQVcsRUFBRTt3QkFDWCxJQUFJLEVBQUUsT0FBTzt3QkFDYixLQUFLLEVBQUU7NEJBQ0wsSUFBSSxFQUFFLFFBQVE7NEJBQ2QsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUM7eUJBQzVFO3dCQUNELFdBQVcsRUFBRSwyQkFBMkI7cUJBQ3pDO2lCQUNGO2dCQUNELFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQzthQUNuQjtTQUNGO0tBQ0YsQ0FBQztJQUVNLFNBQVMsQ0FBK0I7SUFFekMsS0FBSyxDQUFDLFVBQVU7UUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbkQsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTztRQUNsQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDOUIsQ0FBQztRQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQzdCLENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTyxDQUNsQixNQUFjLEVBQ2QsTUFBK0I7UUFFL0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUV6QixJQUFJLENBQUM7WUFDSCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBYyxDQUFDO1lBQ25DLE1BQU0sV0FBVyxHQUFJLE1BQU0sQ0FBQyxXQUFpQyxJQUFJLEVBQUUsQ0FBQztZQUVwRSxxQkFBcUI7WUFDckIsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUU7Z0JBQ3RELFdBQVc7YUFDWixDQUFDLENBQUM7WUFFSCxRQUFRLE1BQU0sRUFBRSxDQUFDO2dCQUNmLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQztvQkFDZixPQUFPO3dCQUNMLE9BQU8sRUFBRSxNQUFNLENBQUMsUUFBUSxLQUFLLENBQUM7d0JBQzlCLE1BQU0sRUFBRTs0QkFDTixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7NEJBQ3pCLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTs0QkFDckIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNOzRCQUNyQixXQUFXO3lCQUNaO3FCQUNGLENBQUM7Z0JBQ0osQ0FBQztnQkFFRCxLQUFLLG1CQUFtQixDQUFDLENBQUMsQ0FBQztvQkFDekIsSUFBSSxNQUFNLENBQUMsUUFBUSxLQUFLLENBQUMsRUFBRSxDQUFDO3dCQUMxQixPQUFPOzRCQUNMLE9BQU8sRUFBRSxLQUFLOzRCQUNkLEtBQUssRUFBRSxnQ0FBZ0MsTUFBTSxDQUFDLFFBQVEsS0FBSyxNQUFNLENBQUMsTUFBTSxFQUFFO3lCQUMzRSxDQUFDO29CQUNKLENBQUM7b0JBRUQsd0NBQXdDO29CQUN4QyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDL0MsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBRXpDLElBQUksQ0FBQzt3QkFDSCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO3dCQUMxQyxPQUFPOzRCQUNMLE9BQU8sRUFBRSxJQUFJOzRCQUNiLE1BQU0sRUFBRTtnQ0FDTixNQUFNLEVBQUUsWUFBWTtnQ0FDcEIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNO2dDQUNyQixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07NkJBQ3RCO3lCQUNGLENBQUM7b0JBQ0osQ0FBQztvQkFBQyxPQUFPLFVBQVUsRUFBRSxDQUFDO3dCQUNwQixPQUFPOzRCQUNMLE9BQU8sRUFBRSxLQUFLOzRCQUNkLEtBQUssRUFBRSxrREFBa0QsUUFBUSxFQUFFO3lCQUNwRSxDQUFDO29CQUNKLENBQUM7Z0JBQ0gsQ0FBQztnQkFFRDtvQkFDRSxPQUFPO3dCQUNMLE9BQU8sRUFBRSxLQUFLO3dCQUNkLEtBQUssRUFBRSxtQkFBbUIsTUFBTSxFQUFFO3FCQUNuQyxDQUFDO1lBQ04sQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTztnQkFDTCxPQUFPLEVBQUUsS0FBSztnQkFDZCxLQUFLLEVBQUUsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQzthQUM5RCxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFTSxrQkFBa0I7UUFDdkIsT0FBTzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FtQ1YsQ0FBQztJQUNBLENBQUM7SUFFTSxjQUFjLENBQUMsTUFBYyxFQUFFLE1BQStCO1FBQ25FLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFjLENBQUM7UUFDbkMsTUFBTSxXQUFXLEdBQUksTUFBTSxDQUFDLFdBQXdCLElBQUksRUFBRSxDQUFDO1FBRTNELGlEQUFpRDtRQUNqRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDOUUsMENBQTBDO1FBQzFDLE1BQU0sWUFBWSxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXZELE1BQU0sY0FBYyxHQUFHLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUMzQyxDQUFDLENBQUMsa0JBQWtCLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUc7WUFDN0MsQ0FBQyxDQUFDLCtCQUErQixDQUFDO1FBRXBDLFFBQVEsTUFBTSxFQUFFLENBQUM7WUFDZixLQUFLLFNBQVM7Z0JBQ1osT0FBTyxvQkFBb0IsY0FBYyxNQUFNLFlBQVksR0FBRyxDQUFDO1lBRWpFLEtBQUssbUJBQW1CO2dCQUN0QixPQUFPLDBDQUEwQyxjQUFjLE1BQU0sWUFBWSxHQUFHLENBQUM7WUFFdkY7Z0JBQ0UsT0FBTyxtQkFBbUIsTUFBTSxFQUFFLENBQUM7UUFDdkMsQ0FBQztJQUNILENBQUM7Q0FDRiJ9
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import * as interfaces from './smartagent.interfaces.js';
|
|
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
|
-
/** Glob patterns to exclude from listings (e.g., ['.nogit/**', 'node_modules/**']) */
|
|
10
|
-
excludePatterns?: string[];
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Filesystem tool for file and directory operations
|
|
14
|
-
* Wraps @push.rocks/smartfs
|
|
15
|
-
*/
|
|
16
|
-
export declare class FilesystemTool extends BaseToolWrapper {
|
|
17
|
-
name: string;
|
|
18
|
-
description: string;
|
|
19
|
-
/** Base path to scope all operations to */
|
|
20
|
-
private basePath?;
|
|
21
|
-
/** Glob patterns to exclude from listings */
|
|
22
|
-
private excludePatterns;
|
|
23
|
-
constructor(options?: IFilesystemToolOptions);
|
|
24
|
-
/**
|
|
25
|
-
* Check if a relative path should be excluded based on exclude patterns
|
|
26
|
-
*/
|
|
27
|
-
private isExcluded;
|
|
28
|
-
/**
|
|
29
|
-
* Validate that a path is within the allowed base path
|
|
30
|
-
* @throws Error if path is outside allowed directory
|
|
31
|
-
*/
|
|
32
|
-
private validatePath;
|
|
33
|
-
actions: interfaces.IToolAction[];
|
|
34
|
-
private smartfs;
|
|
35
|
-
initialize(): Promise<void>;
|
|
36
|
-
cleanup(): Promise<void>;
|
|
37
|
-
execute(action: string, params: Record<string, unknown>): Promise<interfaces.IToolExecutionResult>;
|
|
38
|
-
getToolExplanation(): string;
|
|
39
|
-
getCallSummary(action: string, params: Record<string, unknown>): string;
|
|
40
|
-
}
|