@push.rocks/smartagent 1.3.0 → 1.4.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 +1 -1
- package/dist_ts/smartagent.tools.base.d.ts +7 -1
- package/dist_ts/smartagent.tools.base.js +3 -6
- package/dist_ts/smartagent.tools.browser.d.ts +1 -0
- package/dist_ts/smartagent.tools.browser.js +53 -1
- package/dist_ts/smartagent.tools.deno.d.ts +1 -0
- package/dist_ts/smartagent.tools.deno.js +39 -1
- package/dist_ts/smartagent.tools.filesystem.d.ts +1 -0
- package/dist_ts/smartagent.tools.filesystem.js +164 -1
- package/dist_ts/smartagent.tools.http.d.ts +1 -0
- package/dist_ts/smartagent.tools.http.js +78 -1
- package/dist_ts/smartagent.tools.json.d.ts +1 -0
- package/dist_ts/smartagent.tools.json.js +31 -1
- package/dist_ts/smartagent.tools.shell.d.ts +1 -0
- package/dist_ts/smartagent.tools.shell.js +48 -1
- package/package.json +1 -1
- package/readme.hints.md +29 -5
- package/readme.md +145 -9
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/smartagent.tools.base.ts +9 -6
- package/ts/smartagent.tools.browser.ts +53 -0
- package/ts/smartagent.tools.deno.ts +39 -0
- package/ts/smartagent.tools.filesystem.ts +164 -0
- package/ts/smartagent.tools.http.ts +78 -0
- package/ts/smartagent.tools.json.ts +31 -0
- package/ts/smartagent.tools.shell.ts +48 -0
|
@@ -165,6 +165,83 @@ export class HttpTool extends BaseToolWrapper {
|
|
|
165
165
|
};
|
|
166
166
|
}
|
|
167
167
|
}
|
|
168
|
+
getToolExplanation() {
|
|
169
|
+
return `## Tool: http
|
|
170
|
+
Make HTTP requests to web APIs and services.
|
|
171
|
+
|
|
172
|
+
### Actions:
|
|
173
|
+
|
|
174
|
+
**get** - Make a GET request
|
|
175
|
+
Parameters:
|
|
176
|
+
- url (required): URL to request
|
|
177
|
+
- headers (optional): Request headers (key-value object)
|
|
178
|
+
- query (optional): Query parameters (key-value object)
|
|
179
|
+
- timeout (optional): Timeout in milliseconds
|
|
180
|
+
|
|
181
|
+
Example:
|
|
182
|
+
<tool_call>
|
|
183
|
+
<tool>http</tool>
|
|
184
|
+
<action>get</action>
|
|
185
|
+
<params>{"url": "https://api.example.com/data", "headers": {"Authorization": "Bearer token123"}}</params>
|
|
186
|
+
</tool_call>
|
|
187
|
+
|
|
188
|
+
**post** - Make a POST request with JSON body
|
|
189
|
+
Parameters:
|
|
190
|
+
- url (required): URL to request
|
|
191
|
+
- body (optional): JSON body to send
|
|
192
|
+
- headers (optional): Request headers (key-value object)
|
|
193
|
+
- query (optional): Query parameters (key-value object)
|
|
194
|
+
- timeout (optional): Timeout in milliseconds
|
|
195
|
+
|
|
196
|
+
Example:
|
|
197
|
+
<tool_call>
|
|
198
|
+
<tool>http</tool>
|
|
199
|
+
<action>post</action>
|
|
200
|
+
<params>{"url": "https://api.example.com/submit", "body": {"name": "test", "value": 123}}</params>
|
|
201
|
+
</tool_call>
|
|
202
|
+
|
|
203
|
+
**put** - Make a PUT request with JSON body
|
|
204
|
+
Parameters:
|
|
205
|
+
- url (required): URL to request
|
|
206
|
+
- body (required): JSON body to send
|
|
207
|
+
- headers (optional): Request headers (key-value object)
|
|
208
|
+
- timeout (optional): Timeout in milliseconds
|
|
209
|
+
|
|
210
|
+
Example:
|
|
211
|
+
<tool_call>
|
|
212
|
+
<tool>http</tool>
|
|
213
|
+
<action>put</action>
|
|
214
|
+
<params>{"url": "https://api.example.com/resource/1", "body": {"name": "updated"}}</params>
|
|
215
|
+
</tool_call>
|
|
216
|
+
|
|
217
|
+
**patch** - Make a PATCH request with JSON body
|
|
218
|
+
Parameters:
|
|
219
|
+
- url (required): URL to request
|
|
220
|
+
- body (required): JSON body to send
|
|
221
|
+
- headers (optional): Request headers (key-value object)
|
|
222
|
+
- timeout (optional): Timeout in milliseconds
|
|
223
|
+
|
|
224
|
+
Example:
|
|
225
|
+
<tool_call>
|
|
226
|
+
<tool>http</tool>
|
|
227
|
+
<action>patch</action>
|
|
228
|
+
<params>{"url": "https://api.example.com/resource/1", "body": {"status": "active"}}</params>
|
|
229
|
+
</tool_call>
|
|
230
|
+
|
|
231
|
+
**delete** - Make a DELETE request
|
|
232
|
+
Parameters:
|
|
233
|
+
- url (required): URL to request
|
|
234
|
+
- headers (optional): Request headers (key-value object)
|
|
235
|
+
- timeout (optional): Timeout in milliseconds
|
|
236
|
+
|
|
237
|
+
Example:
|
|
238
|
+
<tool_call>
|
|
239
|
+
<tool>http</tool>
|
|
240
|
+
<action>delete</action>
|
|
241
|
+
<params>{"url": "https://api.example.com/resource/1"}</params>
|
|
242
|
+
</tool_call>
|
|
243
|
+
`;
|
|
244
|
+
}
|
|
168
245
|
getCallSummary(action, params) {
|
|
169
246
|
const method = action.toUpperCase();
|
|
170
247
|
let summary = `${method} request to "${params.url}"`;
|
|
@@ -184,4 +261,4 @@ export class HttpTool extends BaseToolWrapper {
|
|
|
184
261
|
return summary;
|
|
185
262
|
}
|
|
186
263
|
}
|
|
187
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
264
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhZ2VudC50b29scy5odHRwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRhZ2VudC50b29scy5odHRwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxVQUFVLE1BQU0sNEJBQTRCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTdEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxRQUFTLFNBQVEsZUFBZTtJQUNwQyxJQUFJLEdBQUcsTUFBTSxDQUFDO0lBQ2QsV0FBVyxHQUFHLDZDQUE2QyxDQUFDO0lBRTVELE9BQU8sR0FBNkI7UUFDekM7WUFDRSxJQUFJLEVBQUUsS0FBSztZQUNYLFdBQVcsRUFBRSxvQkFBb0I7WUFDakMsVUFBVSxFQUFFO2dCQUNWLElBQUksRUFBRSxRQUFRO2dCQUNkLFVBQVUsRUFBRTtvQkFDVixHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRTtvQkFDdEQsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsbUNBQW1DLEVBQUU7b0JBQzdFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLG9DQUFvQyxFQUFFO29CQUM1RSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSx5QkFBeUIsRUFBRTtpQkFDcEU7Z0JBQ0QsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDO2FBQ2xCO1NBQ0Y7UUFDRDtZQUNFLElBQUksRUFBRSxNQUFNO1lBQ1osV0FBVyxFQUFFLG9DQUFvQztZQUNqRCxVQUFVLEVBQUU7Z0JBQ1YsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsVUFBVSxFQUFFO29CQUNWLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFR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
|
|
@@ -154,6 +154,36 @@ export class JsonValidatorTool extends BaseToolWrapper {
|
|
|
154
154
|
};
|
|
155
155
|
}
|
|
156
156
|
}
|
|
157
|
+
getToolExplanation() {
|
|
158
|
+
return `## Tool: json
|
|
159
|
+
Validate and format JSON data. Use this to verify your JSON output is valid before completing a task.
|
|
160
|
+
|
|
161
|
+
### Actions:
|
|
162
|
+
|
|
163
|
+
**validate** - Validate that a string is valid JSON and optionally check required fields
|
|
164
|
+
Parameters:
|
|
165
|
+
- jsonString (required): The JSON string to validate
|
|
166
|
+
- requiredFields (optional): Array of field names that must be present
|
|
167
|
+
|
|
168
|
+
Example:
|
|
169
|
+
<tool_call>
|
|
170
|
+
<tool>json</tool>
|
|
171
|
+
<action>validate</action>
|
|
172
|
+
<params>{"jsonString": "{\\"invoice_number\\":\\"INV-001\\",\\"total\\":99.99}", "requiredFields": ["invoice_number", "total"]}</params>
|
|
173
|
+
</tool_call>
|
|
174
|
+
|
|
175
|
+
**format** - Parse and pretty-print JSON string
|
|
176
|
+
Parameters:
|
|
177
|
+
- jsonString (required): The JSON string to format
|
|
178
|
+
|
|
179
|
+
Example:
|
|
180
|
+
<tool_call>
|
|
181
|
+
<tool>json</tool>
|
|
182
|
+
<action>format</action>
|
|
183
|
+
<params>{"jsonString": "{\\"name\\":\\"test\\",\\"value\\":123}"}</params>
|
|
184
|
+
</tool_call>
|
|
185
|
+
`;
|
|
186
|
+
}
|
|
157
187
|
getCallSummary(action, params) {
|
|
158
188
|
const jsonStr = params.jsonString || '';
|
|
159
189
|
const preview = jsonStr.length > 50 ? jsonStr.substring(0, 50) + '...' : jsonStr;
|
|
@@ -169,4 +199,4 @@ export class JsonValidatorTool extends BaseToolWrapper {
|
|
|
169
199
|
}
|
|
170
200
|
}
|
|
171
201
|
}
|
|
172
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
202
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhZ2VudC50b29scy5qc29uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRhZ2VudC50b29scy5qc29uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxVQUFVLE1BQU0sNEJBQTRCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTdEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxlQUFlO0lBQzdDLElBQUksR0FBRyxNQUFNLENBQUM7SUFDZCxXQUFXLEdBQUcsdUdBQXVHLENBQUM7SUFFdEgsT0FBTyxHQUE2QjtRQUN6QztZQUNFLElBQUksRUFBRSxVQUFVO1lBQ2hCLFdBQVcsRUFBRSwyRUFBMkU7WUFDeEYsVUFBVSxFQUFFO2dCQUNWLElBQUksRUFBRSxRQUFRO2dCQUNkLFVBQVUsRUFBRTtvQkFDVixVQUFVLEVBQUU7d0JBQ1YsSUFBSSxFQUFFLFFBQVE7d0JBQ2QsV0FBVyxFQUFFLDZCQUE2QjtxQkFDM0M7b0JBQ0QsY0FBYyxFQUFFO3dCQUNkLElBQUksRUFBRSxPQUFPO3dCQUNiLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7d0JBQ3pCLFdBQVcsRUFBRSxxRUFBcUU7cUJBQ25GO2lCQUNGO2dCQUNELFFBQVEsRUFBRSxDQUFDLFlBQVksQ0FBQzthQUN6QjtTQUNGO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsUUFBUTtZQUNkLFdBQVcsRUFBRSxvQ0FBb0M7WUFDakQsVUFBVSxFQUFFO2dCQUNWLElBQUksRUFBRSxRQUFRO2dCQUNkLFVBQVUsRUFBRTtvQkFDVixVQUFVLEVBQUU7d0JBQ1YsSUFBSSxFQUFFLFFBQVE7d0JBQ2QsV0FBVyxFQUFFLDJCQUEyQjtxQkFDekM7aUJBQ0Y7Z0JBQ0QsUUFBUSxFQUFFLENBQUMsWUFBWSxDQUFDO2FBQ3pCO1NBQ0Y7S0FDRixDQUFDO0lBRUYsS0FBSyxDQUFDLFVBQVU7UUFD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
|
|
@@ -12,5 +12,6 @@ export declare class ShellTool extends BaseToolWrapper {
|
|
|
12
12
|
initialize(): Promise<void>;
|
|
13
13
|
cleanup(): Promise<void>;
|
|
14
14
|
execute(action: string, params: Record<string, unknown>): Promise<interfaces.IToolExecutionResult>;
|
|
15
|
+
getToolExplanation(): string;
|
|
15
16
|
getCallSummary(action: string, params: Record<string, unknown>): string;
|
|
16
17
|
}
|
|
@@ -126,6 +126,53 @@ export class ShellTool extends BaseToolWrapper {
|
|
|
126
126
|
};
|
|
127
127
|
}
|
|
128
128
|
}
|
|
129
|
+
getToolExplanation() {
|
|
130
|
+
return `## Tool: shell
|
|
131
|
+
Execute shell commands securely. Uses execSpawn (shell:false) to prevent command injection.
|
|
132
|
+
|
|
133
|
+
### Actions:
|
|
134
|
+
|
|
135
|
+
**execute** - Execute a command with arguments (secure, no shell injection possible)
|
|
136
|
+
Parameters:
|
|
137
|
+
- command (required): The command to execute (e.g., "ls", "cat", "grep", "node")
|
|
138
|
+
- args (optional): Array of arguments (each argument is properly escaped)
|
|
139
|
+
- cwd (optional): Working directory for the command
|
|
140
|
+
- timeout (optional): Timeout in milliseconds
|
|
141
|
+
- env (optional): Additional environment variables (key-value object)
|
|
142
|
+
|
|
143
|
+
Example - List files:
|
|
144
|
+
<tool_call>
|
|
145
|
+
<tool>shell</tool>
|
|
146
|
+
<action>execute</action>
|
|
147
|
+
<params>{"command": "ls", "args": ["-la", "/path/to/dir"]}</params>
|
|
148
|
+
</tool_call>
|
|
149
|
+
|
|
150
|
+
Example - Run Node script:
|
|
151
|
+
<tool_call>
|
|
152
|
+
<tool>shell</tool>
|
|
153
|
+
<action>execute</action>
|
|
154
|
+
<params>{"command": "node", "args": ["script.js"], "cwd": "/path/to/project"}</params>
|
|
155
|
+
</tool_call>
|
|
156
|
+
|
|
157
|
+
Example - Search in files:
|
|
158
|
+
<tool_call>
|
|
159
|
+
<tool>shell</tool>
|
|
160
|
+
<action>execute</action>
|
|
161
|
+
<params>{"command": "grep", "args": ["-r", "pattern", "src/"]}</params>
|
|
162
|
+
</tool_call>
|
|
163
|
+
|
|
164
|
+
**which** - Check if a command exists and get its path
|
|
165
|
+
Parameters:
|
|
166
|
+
- command (required): Command name to look up (e.g., "node", "git")
|
|
167
|
+
|
|
168
|
+
Example:
|
|
169
|
+
<tool_call>
|
|
170
|
+
<tool>shell</tool>
|
|
171
|
+
<action>which</action>
|
|
172
|
+
<params>{"command": "node"}</params>
|
|
173
|
+
</tool_call>
|
|
174
|
+
`;
|
|
175
|
+
}
|
|
129
176
|
getCallSummary(action, params) {
|
|
130
177
|
switch (action) {
|
|
131
178
|
case 'execute': {
|
|
@@ -152,4 +199,4 @@ export class ShellTool extends BaseToolWrapper {
|
|
|
152
199
|
}
|
|
153
200
|
}
|
|
154
201
|
}
|
|
155
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
202
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhZ2VudC50b29scy5zaGVsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0YWdlbnQudG9vbHMuc2hlbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxLQUFLLFVBQVUsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFN0Q7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLFNBQVUsU0FBUSxlQUFlO0lBQ3JDLElBQUksR0FBRyxPQUFPLENBQUM7SUFDZixXQUFXLEdBQ2hCLDZGQUE2RixDQUFDO0lBRXpGLE9BQU8sR0FBNkI7UUFDekM7WUFDRSxJQUFJLEVBQUUsU0FBUztZQUNmLFdBQVcsRUFDVCxpSEFBaUg7WUFDbkgsVUFBVSxFQUFFO2dCQUNWLElBQUksRUFBRSxRQUFRO2dCQUNkLFVBQVUsRUFBRTtvQkFDVixPQUFPLEVBQUU7d0JBQ1AsSUFBSSxFQUFFLFFBQVE7d0JBQ2QsV0FBVyxFQUFFLDREQUE0RDtxQkFDMUU7b0JBQ0QsSUFBSSxFQUFFO3dCQUNKLElBQUksRUFBRSxPQUFPO3dCQUNiLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7d0JBQ3pCLFdBQVcsRUFBRSx3REFBd0Q7cUJBQ3RFO29CQUNELEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLG1DQUFtQyxFQUFFO29CQUN6RSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSx5QkFBeUIsRUFBRTtvQkFDbkUsR0FBRyxFQUFFO3dCQUNILElBQUksRUFBRSxRQUFRO3dCQUNkLFdBQVcsRUFBRSxvREFBb0Q7cUJBQ2xFO2lCQUNGO2dCQUNELFFBQVEsRUFBRSxDQUFDLFNBQVMsQ0FBQzthQUN0QjtTQUNGO1FBQ0Q7WUFDRSxJQUFJLEVB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
|
package/package.json
CHANGED
package/readme.hints.md
CHANGED
|
@@ -1,15 +1,39 @@
|
|
|
1
1
|
# Project Readme Hints
|
|
2
2
|
|
|
3
3
|
## Overview
|
|
4
|
-
`@push.rocks/smartagent` is
|
|
4
|
+
`@push.rocks/smartagent` is a dual-agent agentic framework built on top of `@push.rocks/smartai`. It implements a Driver/Guardian architecture where the Driver proposes tool calls and the Guardian evaluates them against security policies.
|
|
5
5
|
|
|
6
6
|
## Architecture
|
|
7
|
-
- **
|
|
8
|
-
- **
|
|
9
|
-
- **
|
|
7
|
+
- **DualAgentOrchestrator**: Main entry point, coordinates Driver and Guardian agents
|
|
8
|
+
- **DriverAgent**: Reasons about tasks, plans steps, proposes tool calls
|
|
9
|
+
- **GuardianAgent**: Evaluates tool calls against configured policies
|
|
10
|
+
- **BaseToolWrapper**: Base class for creating custom tools
|
|
11
|
+
- **plugins.ts**: Imports and re-exports smartai and other dependencies
|
|
12
|
+
|
|
13
|
+
## Standard Tools
|
|
14
|
+
1. **FilesystemTool** - File operations with scoping and exclusion patterns
|
|
15
|
+
2. **HttpTool** - HTTP requests
|
|
16
|
+
3. **ShellTool** - Secure shell commands (no injection possible)
|
|
17
|
+
4. **BrowserTool** - Web page interaction via Puppeteer
|
|
18
|
+
5. **DenoTool** - Sandboxed TypeScript/JavaScript execution
|
|
19
|
+
6. **JsonValidatorTool** - JSON validation and formatting
|
|
20
|
+
|
|
21
|
+
## Key Features
|
|
22
|
+
- Token streaming support (`onToken` callback)
|
|
23
|
+
- Vision support (pass images as base64)
|
|
24
|
+
- Progress events (`onProgress` callback)
|
|
25
|
+
- Scoped filesystem with exclusion patterns
|
|
26
|
+
- Result truncation with configurable limits
|
|
27
|
+
- History windowing to manage token usage
|
|
10
28
|
|
|
11
29
|
## Key Dependencies
|
|
12
|
-
- `@push.rocks/smartai`:
|
|
30
|
+
- `@push.rocks/smartai`: Multi-provider AI interface
|
|
31
|
+
- `@push.rocks/smartfs`: Filesystem operations
|
|
32
|
+
- `@push.rocks/smartshell`: Shell command execution
|
|
33
|
+
- `@push.rocks/smartbrowser`: Browser automation
|
|
34
|
+
- `@push.rocks/smartdeno`: Deno code execution
|
|
35
|
+
- `@push.rocks/smartrequest`: HTTP requests
|
|
36
|
+
- `minimatch`: Glob pattern matching for exclusions
|
|
13
37
|
|
|
14
38
|
## Test Structure
|
|
15
39
|
- Tests use `@git.zone/tstest/tapbundle`
|
package/readme.md
CHANGED
|
@@ -50,6 +50,7 @@ flowchart TB
|
|
|
50
50
|
Shell["Shell"]
|
|
51
51
|
Browser["Browser"]
|
|
52
52
|
Deno["Deno"]
|
|
53
|
+
JSON["JSON Validator"]
|
|
53
54
|
end
|
|
54
55
|
|
|
55
56
|
Task --> Orchestrator
|
|
@@ -99,7 +100,7 @@ await orchestrator.stop();
|
|
|
99
100
|
|
|
100
101
|
## Standard Tools
|
|
101
102
|
|
|
102
|
-
SmartAgent comes with
|
|
103
|
+
SmartAgent comes with six battle-tested tools out of the box:
|
|
103
104
|
|
|
104
105
|
### 🗂️ FilesystemTool
|
|
105
106
|
|
|
@@ -117,11 +118,29 @@ File and directory operations powered by `@push.rocks/smartfs`.
|
|
|
117
118
|
</tool_call>
|
|
118
119
|
```
|
|
119
120
|
|
|
120
|
-
**Scoped Filesystem**: Lock file operations to a specific directory:
|
|
121
|
+
**Scoped Filesystem**: Lock file operations to a specific directory with optional exclusion patterns:
|
|
121
122
|
|
|
122
123
|
```typescript
|
|
123
124
|
// Only allow access within a specific directory
|
|
124
125
|
orchestrator.registerScopedFilesystemTool('/home/user/workspace');
|
|
126
|
+
|
|
127
|
+
// With exclusion patterns (glob syntax)
|
|
128
|
+
orchestrator.registerScopedFilesystemTool('/home/user/workspace', [
|
|
129
|
+
'.nogit/**',
|
|
130
|
+
'node_modules/**',
|
|
131
|
+
'*.secret',
|
|
132
|
+
]);
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
**Line-range Reading**: Read specific portions of large files:
|
|
136
|
+
|
|
137
|
+
```typescript
|
|
138
|
+
<tool_call>
|
|
139
|
+
<tool>filesystem</tool>
|
|
140
|
+
<action>read</action>
|
|
141
|
+
<params>{"path": "/var/log/app.log", "startLine": 100, "endLine": 150}</params>
|
|
142
|
+
<reasoning>Reading only the relevant log section to avoid token overload</reasoning>
|
|
143
|
+
</tool_call>
|
|
125
144
|
```
|
|
126
145
|
|
|
127
146
|
### 🌐 HttpTool
|
|
@@ -212,6 +231,105 @@ By default, code runs **fully sandboxed with no permissions**. Permissions must
|
|
|
212
231
|
</tool_call>
|
|
213
232
|
```
|
|
214
233
|
|
|
234
|
+
### 📋 JsonValidatorTool
|
|
235
|
+
|
|
236
|
+
Validate and format JSON data. Perfect for agents to self-check their JSON output before completing tasks.
|
|
237
|
+
|
|
238
|
+
**Actions**: `validate`, `format`
|
|
239
|
+
|
|
240
|
+
```typescript
|
|
241
|
+
// Validate JSON with required field checking
|
|
242
|
+
<tool_call>
|
|
243
|
+
<tool>json</tool>
|
|
244
|
+
<action>validate</action>
|
|
245
|
+
<params>{
|
|
246
|
+
"jsonString": "{\"name\": \"test\", \"version\": \"1.0.0\"}",
|
|
247
|
+
"requiredFields": ["name", "version", "description"]
|
|
248
|
+
}</params>
|
|
249
|
+
<reasoning>Ensuring the config has all required fields before saving</reasoning>
|
|
250
|
+
</tool_call>
|
|
251
|
+
|
|
252
|
+
// Pretty-print JSON
|
|
253
|
+
<tool_call>
|
|
254
|
+
<tool>json</tool>
|
|
255
|
+
<action>format</action>
|
|
256
|
+
<params>{"jsonString": "{\"compact\":true,\"data\":[1,2,3]}"}</params>
|
|
257
|
+
<reasoning>Formatting JSON for readable output</reasoning>
|
|
258
|
+
</tool_call>
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
## 🎥 Streaming Support
|
|
262
|
+
|
|
263
|
+
SmartAgent supports token-by-token streaming for real-time output during LLM generation:
|
|
264
|
+
|
|
265
|
+
```typescript
|
|
266
|
+
const orchestrator = new DualAgentOrchestrator({
|
|
267
|
+
openaiToken: 'sk-...',
|
|
268
|
+
defaultProvider: 'openai',
|
|
269
|
+
guardianPolicyPrompt: '...',
|
|
270
|
+
|
|
271
|
+
// Token streaming callback
|
|
272
|
+
onToken: (token, source) => {
|
|
273
|
+
// source is 'driver' or 'guardian'
|
|
274
|
+
process.stdout.write(token);
|
|
275
|
+
},
|
|
276
|
+
});
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
This is perfect for CLI applications or UIs that need to show progress as the agent thinks.
|
|
280
|
+
|
|
281
|
+
## 🖼️ Vision Support
|
|
282
|
+
|
|
283
|
+
Pass images to vision-capable models for multimodal tasks:
|
|
284
|
+
|
|
285
|
+
```typescript
|
|
286
|
+
import { readFileSync } from 'fs';
|
|
287
|
+
|
|
288
|
+
// Load image as base64
|
|
289
|
+
const imageBase64 = readFileSync('screenshot.png').toString('base64');
|
|
290
|
+
|
|
291
|
+
// Run task with images
|
|
292
|
+
const result = await orchestrator.run(
|
|
293
|
+
'Analyze this UI screenshot and describe any usability issues',
|
|
294
|
+
{ images: [imageBase64] }
|
|
295
|
+
);
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
## 📊 Progress Events
|
|
299
|
+
|
|
300
|
+
Get real-time feedback on task execution with the `onProgress` callback:
|
|
301
|
+
|
|
302
|
+
```typescript
|
|
303
|
+
const orchestrator = new DualAgentOrchestrator({
|
|
304
|
+
openaiToken: 'sk-...',
|
|
305
|
+
guardianPolicyPrompt: '...',
|
|
306
|
+
logPrefix: '[MyAgent]', // Optional prefix for log messages
|
|
307
|
+
|
|
308
|
+
onProgress: (event) => {
|
|
309
|
+
// Pre-formatted log message ready for output
|
|
310
|
+
console.log(event.logMessage);
|
|
311
|
+
|
|
312
|
+
// Or handle specific event types
|
|
313
|
+
switch (event.type) {
|
|
314
|
+
case 'tool_proposed':
|
|
315
|
+
console.log(`Proposing: ${event.toolName}.${event.action}`);
|
|
316
|
+
break;
|
|
317
|
+
case 'tool_approved':
|
|
318
|
+
console.log(`✓ Approved`);
|
|
319
|
+
break;
|
|
320
|
+
case 'tool_rejected':
|
|
321
|
+
console.log(`✗ Rejected: ${event.reason}`);
|
|
322
|
+
break;
|
|
323
|
+
case 'task_completed':
|
|
324
|
+
console.log(`Done in ${event.iteration} iterations`);
|
|
325
|
+
break;
|
|
326
|
+
}
|
|
327
|
+
},
|
|
328
|
+
});
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
**Event Types**: `task_started`, `iteration_started`, `tool_proposed`, `guardian_evaluating`, `tool_approved`, `tool_rejected`, `tool_executing`, `tool_completed`, `task_completed`, `clarification_needed`, `max_iterations`, `max_rejections`
|
|
332
|
+
|
|
215
333
|
## Guardian Policy Examples
|
|
216
334
|
|
|
217
335
|
The Guardian's power comes from your policy. Here are battle-tested examples:
|
|
@@ -294,10 +412,19 @@ interface IDualAgentOptions {
|
|
|
294
412
|
// Agent configuration
|
|
295
413
|
driverSystemMessage?: string; // Custom system message for Driver
|
|
296
414
|
guardianPolicyPrompt: string; // REQUIRED: Policy for Guardian to enforce
|
|
415
|
+
name?: string; // Agent system name
|
|
416
|
+
verbose?: boolean; // Enable verbose logging
|
|
297
417
|
|
|
298
418
|
// Limits
|
|
299
419
|
maxIterations?: number; // Max task iterations (default: 20)
|
|
300
420
|
maxConsecutiveRejections?: number; // Abort after N rejections (default: 3)
|
|
421
|
+
maxResultChars?: number; // Max chars for tool results before truncation (default: 15000)
|
|
422
|
+
maxHistoryMessages?: number; // Max history messages for API (default: 20)
|
|
423
|
+
|
|
424
|
+
// Callbacks
|
|
425
|
+
onProgress?: (event: IProgressEvent) => void; // Progress event callback
|
|
426
|
+
onToken?: (token: string, source: 'driver' | 'guardian') => void; // Streaming callback
|
|
427
|
+
logPrefix?: string; // Prefix for log messages
|
|
301
428
|
}
|
|
302
429
|
```
|
|
303
430
|
|
|
@@ -311,6 +438,10 @@ interface IDualAgentRunResult {
|
|
|
311
438
|
iterations: number; // Number of iterations taken
|
|
312
439
|
history: IAgentMessage[]; // Full conversation history
|
|
313
440
|
status: TDualAgentRunStatus; // 'completed' | 'max_iterations_reached' | etc.
|
|
441
|
+
toolCallCount?: number; // Number of tool calls made
|
|
442
|
+
rejectionCount?: number; // Number of Guardian rejections
|
|
443
|
+
toolLog?: IToolExecutionLog[]; // Detailed tool execution log
|
|
444
|
+
error?: string; // Error message if status is 'error'
|
|
314
445
|
}
|
|
315
446
|
|
|
316
447
|
type TDualAgentRunStatus =
|
|
@@ -365,6 +496,7 @@ class MyCustomTool extends BaseToolWrapper {
|
|
|
365
496
|
return {
|
|
366
497
|
success: true,
|
|
367
498
|
result: { processed: params.input },
|
|
499
|
+
summary: `Processed input: ${params.input}`, // Optional human-readable summary
|
|
368
500
|
};
|
|
369
501
|
}
|
|
370
502
|
|
|
@@ -439,11 +571,11 @@ const orchestrator = new DualAgentOrchestrator({
|
|
|
439
571
|
|--------|-------------|
|
|
440
572
|
| `start()` | Initialize all tools and AI providers |
|
|
441
573
|
| `stop()` | Cleanup all tools and resources |
|
|
442
|
-
| `run(task
|
|
443
|
-
| `continueTask(input
|
|
574
|
+
| `run(task, options?)` | Execute a task with optional images for vision |
|
|
575
|
+
| `continueTask(input)` | Continue a task with user input |
|
|
444
576
|
| `registerTool(tool)` | Register a custom tool |
|
|
445
577
|
| `registerStandardTools()` | Register all built-in tools |
|
|
446
|
-
| `registerScopedFilesystemTool(basePath)` | Register filesystem tool with path restriction |
|
|
578
|
+
| `registerScopedFilesystemTool(basePath, excludePatterns?)` | Register filesystem tool with path restriction |
|
|
447
579
|
| `setGuardianPolicy(policy)` | Update Guardian policy at runtime |
|
|
448
580
|
| `getHistory()` | Get conversation history |
|
|
449
581
|
| `getToolNames()` | Get list of registered tool names |
|
|
@@ -459,14 +591,18 @@ export { GuardianAgent } from '@push.rocks/smartagent';
|
|
|
459
591
|
|
|
460
592
|
// Tools
|
|
461
593
|
export { BaseToolWrapper } from '@push.rocks/smartagent';
|
|
462
|
-
export { FilesystemTool } from '@push.rocks/smartagent';
|
|
594
|
+
export { FilesystemTool, type IFilesystemToolOptions } from '@push.rocks/smartagent';
|
|
463
595
|
export { HttpTool } from '@push.rocks/smartagent';
|
|
464
596
|
export { ShellTool } from '@push.rocks/smartagent';
|
|
465
597
|
export { BrowserTool } from '@push.rocks/smartagent';
|
|
466
|
-
export { DenoTool } from '@push.rocks/smartagent';
|
|
598
|
+
export { DenoTool, type TDenoPermission } from '@push.rocks/smartagent';
|
|
599
|
+
export { JsonValidatorTool } from '@push.rocks/smartagent';
|
|
467
600
|
|
|
468
601
|
// Types and interfaces
|
|
469
|
-
export * from '@push.rocks/smartagent';
|
|
602
|
+
export * from '@push.rocks/smartagent'; // All interfaces
|
|
603
|
+
|
|
604
|
+
// Re-exported from @push.rocks/smartai
|
|
605
|
+
export { type ISmartAiOptions, type TProvider, type ChatMessage, type ChatOptions, type ChatResponse };
|
|
470
606
|
```
|
|
471
607
|
|
|
472
608
|
## License and Legal Information
|
|
@@ -483,7 +619,7 @@ Use of these trademarks must comply with Task Venture Capital GmbH's Trademark G
|
|
|
483
619
|
|
|
484
620
|
### Company Information
|
|
485
621
|
|
|
486
|
-
Task Venture Capital GmbH
|
|
622
|
+
Task Venture Capital GmbH
|
|
487
623
|
Registered at District Court Bremen HRB 35230 HB, Germany
|
|
488
624
|
|
|
489
625
|
For any legal inquiries or further information, please contact us via email at hello@task.vc.
|
package/ts/00_commitinfo_data.ts
CHANGED
|
@@ -35,6 +35,13 @@ export abstract class BaseToolWrapper implements interfaces.IAgentToolWrapper {
|
|
|
35
35
|
*/
|
|
36
36
|
abstract getCallSummary(action: string, params: Record<string, unknown>): string;
|
|
37
37
|
|
|
38
|
+
/**
|
|
39
|
+
* Get a comprehensive explanation of this tool for LLM consumption.
|
|
40
|
+
* Tools should implement this to provide detailed usage instructions with examples.
|
|
41
|
+
* This includes parameter schemas and concrete <tool_call> XML examples.
|
|
42
|
+
*/
|
|
43
|
+
abstract getToolExplanation(): string;
|
|
44
|
+
|
|
38
45
|
/**
|
|
39
46
|
* Validate that an action exists for this tool
|
|
40
47
|
* @throws Error if the action is not valid
|
|
@@ -60,14 +67,10 @@ export abstract class BaseToolWrapper implements interfaces.IAgentToolWrapper {
|
|
|
60
67
|
|
|
61
68
|
/**
|
|
62
69
|
* Get the full tool description including all actions
|
|
63
|
-
* Used for Driver's tool awareness
|
|
70
|
+
* Used for Driver's tool awareness - now delegates to getToolExplanation()
|
|
64
71
|
*/
|
|
65
72
|
public getFullDescription(): string {
|
|
66
|
-
|
|
67
|
-
.map((a) => ` - ${a.name}: ${a.description}`)
|
|
68
|
-
.join('\n');
|
|
69
|
-
|
|
70
|
-
return `${this.name}: ${this.description}\nActions:\n${actionDescriptions}`;
|
|
73
|
+
return this.getToolExplanation();
|
|
71
74
|
}
|
|
72
75
|
|
|
73
76
|
/**
|