@push.rocks/smartagent 1.8.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 +8 -14
- package/dist_ts/index.js +8 -24
- 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 +7 -70
- package/dist_ts/smartagent.classes.toolregistry.js +11 -155
- package/dist_ts/smartagent.interfaces.d.ts +47 -283
- 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 +38 -84
- package/readme.md +254 -682
- package/ts/00_commitinfo_data.ts +2 -2
- package/ts/index.ts +10 -37
- package/ts/plugins.ts +22 -21
- package/ts/smartagent.classes.agent.ts +198 -0
- package/ts/smartagent.classes.toolregistry.ts +11 -179
- package/ts/smartagent.interfaces.ts +51 -363
- 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 -93
- package/dist_ts/smartagent.classes.dualagent.js +0 -614
- 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.expert.d.ts +0 -27
- package/dist_ts/smartagent.tools.expert.js +0 -126
- 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.search.d.ts +0 -29
- package/dist_ts/smartagent.tools.search.js +0 -215
- 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 -692
- 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.expert.ts +0 -144
- 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.search.ts +0 -237
- package/ts/smartagent.tools.shell.ts +0 -230
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import * as interfaces from './smartagent.interfaces.js';
|
|
2
|
-
import { BaseToolWrapper } from './smartagent.tools.base.js';
|
|
3
|
-
/**
|
|
4
|
-
* HTTP tool for making web requests
|
|
5
|
-
* Wraps @push.rocks/smartrequest
|
|
6
|
-
*/
|
|
7
|
-
export declare class HttpTool extends BaseToolWrapper {
|
|
8
|
-
name: string;
|
|
9
|
-
description: string;
|
|
10
|
-
actions: interfaces.IToolAction[];
|
|
11
|
-
initialize(): Promise<void>;
|
|
12
|
-
cleanup(): Promise<void>;
|
|
13
|
-
execute(action: string, params: Record<string, unknown>): Promise<interfaces.IToolExecutionResult>;
|
|
14
|
-
getToolExplanation(): string;
|
|
15
|
-
getCallSummary(action: string, params: Record<string, unknown>): string;
|
|
16
|
-
}
|
|
@@ -1,264 +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
|
-
* HTTP tool for making web requests
|
|
6
|
-
* Wraps @push.rocks/smartrequest
|
|
7
|
-
*/
|
|
8
|
-
export class HttpTool extends BaseToolWrapper {
|
|
9
|
-
name = 'http';
|
|
10
|
-
description = 'Make HTTP requests to web APIs and services';
|
|
11
|
-
actions = [
|
|
12
|
-
{
|
|
13
|
-
name: 'get',
|
|
14
|
-
description: 'Make a GET request',
|
|
15
|
-
parameters: {
|
|
16
|
-
type: 'object',
|
|
17
|
-
properties: {
|
|
18
|
-
url: { type: 'string', description: 'URL to request' },
|
|
19
|
-
headers: { type: 'object', description: 'Request headers (key-value pairs)' },
|
|
20
|
-
query: { type: 'object', description: 'Query parameters (key-value pairs)' },
|
|
21
|
-
timeout: { type: 'number', description: 'Timeout in milliseconds' },
|
|
22
|
-
},
|
|
23
|
-
required: ['url'],
|
|
24
|
-
},
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
name: 'post',
|
|
28
|
-
description: 'Make a POST request with JSON body',
|
|
29
|
-
parameters: {
|
|
30
|
-
type: 'object',
|
|
31
|
-
properties: {
|
|
32
|
-
url: { type: 'string', description: 'URL to request' },
|
|
33
|
-
body: { type: 'object', description: 'JSON body to send' },
|
|
34
|
-
headers: { type: 'object', description: 'Request headers (key-value pairs)' },
|
|
35
|
-
query: { type: 'object', description: 'Query parameters (key-value pairs)' },
|
|
36
|
-
timeout: { type: 'number', description: 'Timeout in milliseconds' },
|
|
37
|
-
},
|
|
38
|
-
required: ['url'],
|
|
39
|
-
},
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
name: 'put',
|
|
43
|
-
description: 'Make a PUT request with JSON body',
|
|
44
|
-
parameters: {
|
|
45
|
-
type: 'object',
|
|
46
|
-
properties: {
|
|
47
|
-
url: { type: 'string', description: 'URL to request' },
|
|
48
|
-
body: { type: 'object', description: 'JSON body to send' },
|
|
49
|
-
headers: { type: 'object', description: 'Request headers (key-value pairs)' },
|
|
50
|
-
timeout: { type: 'number', description: 'Timeout in milliseconds' },
|
|
51
|
-
},
|
|
52
|
-
required: ['url', 'body'],
|
|
53
|
-
},
|
|
54
|
-
},
|
|
55
|
-
{
|
|
56
|
-
name: 'patch',
|
|
57
|
-
description: 'Make a PATCH request with JSON body',
|
|
58
|
-
parameters: {
|
|
59
|
-
type: 'object',
|
|
60
|
-
properties: {
|
|
61
|
-
url: { type: 'string', description: 'URL to request' },
|
|
62
|
-
body: { type: 'object', description: 'JSON body to send' },
|
|
63
|
-
headers: { type: 'object', description: 'Request headers (key-value pairs)' },
|
|
64
|
-
timeout: { type: 'number', description: 'Timeout in milliseconds' },
|
|
65
|
-
},
|
|
66
|
-
required: ['url', 'body'],
|
|
67
|
-
},
|
|
68
|
-
},
|
|
69
|
-
{
|
|
70
|
-
name: 'delete',
|
|
71
|
-
description: 'Make a DELETE request',
|
|
72
|
-
parameters: {
|
|
73
|
-
type: 'object',
|
|
74
|
-
properties: {
|
|
75
|
-
url: { type: 'string', description: 'URL to request' },
|
|
76
|
-
headers: { type: 'object', description: 'Request headers (key-value pairs)' },
|
|
77
|
-
timeout: { type: 'number', description: 'Timeout in milliseconds' },
|
|
78
|
-
},
|
|
79
|
-
required: ['url'],
|
|
80
|
-
},
|
|
81
|
-
},
|
|
82
|
-
];
|
|
83
|
-
async initialize() {
|
|
84
|
-
// SmartRequest is stateless, no initialization needed
|
|
85
|
-
this.isInitialized = true;
|
|
86
|
-
}
|
|
87
|
-
async cleanup() {
|
|
88
|
-
this.isInitialized = false;
|
|
89
|
-
}
|
|
90
|
-
async execute(action, params) {
|
|
91
|
-
this.validateAction(action);
|
|
92
|
-
this.ensureInitialized();
|
|
93
|
-
try {
|
|
94
|
-
let request = plugins.smartrequest.SmartRequest.create().url(params.url);
|
|
95
|
-
// Add headers
|
|
96
|
-
if (params.headers && typeof params.headers === 'object') {
|
|
97
|
-
for (const [key, value] of Object.entries(params.headers)) {
|
|
98
|
-
request = request.header(key, value);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
// Add query parameters
|
|
102
|
-
if (params.query && typeof params.query === 'object') {
|
|
103
|
-
request = request.query(params.query);
|
|
104
|
-
}
|
|
105
|
-
// Add timeout
|
|
106
|
-
if (params.timeout) {
|
|
107
|
-
request = request.timeout(params.timeout);
|
|
108
|
-
}
|
|
109
|
-
// Add JSON body for POST, PUT, PATCH
|
|
110
|
-
if (params.body && ['post', 'put', 'patch'].includes(action)) {
|
|
111
|
-
request = request.json(params.body);
|
|
112
|
-
}
|
|
113
|
-
// Execute the request
|
|
114
|
-
let response;
|
|
115
|
-
switch (action) {
|
|
116
|
-
case 'get':
|
|
117
|
-
response = await request.get();
|
|
118
|
-
break;
|
|
119
|
-
case 'post':
|
|
120
|
-
response = await request.post();
|
|
121
|
-
break;
|
|
122
|
-
case 'put':
|
|
123
|
-
response = await request.put();
|
|
124
|
-
break;
|
|
125
|
-
case 'patch':
|
|
126
|
-
response = await request.patch();
|
|
127
|
-
break;
|
|
128
|
-
case 'delete':
|
|
129
|
-
response = await request.delete();
|
|
130
|
-
break;
|
|
131
|
-
default:
|
|
132
|
-
return { success: false, error: `Unknown action: ${action}` };
|
|
133
|
-
}
|
|
134
|
-
// Parse response body
|
|
135
|
-
let body;
|
|
136
|
-
const contentType = response.headers?.['content-type'] || '';
|
|
137
|
-
try {
|
|
138
|
-
if (contentType.includes('application/json')) {
|
|
139
|
-
body = await response.json();
|
|
140
|
-
}
|
|
141
|
-
else {
|
|
142
|
-
body = await response.text();
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
catch {
|
|
146
|
-
body = null;
|
|
147
|
-
}
|
|
148
|
-
return {
|
|
149
|
-
success: response.ok,
|
|
150
|
-
result: {
|
|
151
|
-
url: params.url,
|
|
152
|
-
method: action.toUpperCase(),
|
|
153
|
-
status: response.status,
|
|
154
|
-
statusText: response.statusText,
|
|
155
|
-
ok: response.ok,
|
|
156
|
-
headers: response.headers,
|
|
157
|
-
body,
|
|
158
|
-
},
|
|
159
|
-
};
|
|
160
|
-
}
|
|
161
|
-
catch (error) {
|
|
162
|
-
return {
|
|
163
|
-
success: false,
|
|
164
|
-
error: error instanceof Error ? error.message : String(error),
|
|
165
|
-
};
|
|
166
|
-
}
|
|
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
|
-
}
|
|
245
|
-
getCallSummary(action, params) {
|
|
246
|
-
const method = action.toUpperCase();
|
|
247
|
-
let summary = `${method} request to "${params.url}"`;
|
|
248
|
-
if (params.query && Object.keys(params.query).length > 0) {
|
|
249
|
-
const queryStr = JSON.stringify(params.query);
|
|
250
|
-
summary += ` with query: ${queryStr.length > 50 ? queryStr.substring(0, 50) + '...' : queryStr}`;
|
|
251
|
-
}
|
|
252
|
-
if (params.body) {
|
|
253
|
-
const bodyStr = JSON.stringify(params.body);
|
|
254
|
-
const preview = bodyStr.length > 100 ? bodyStr.substring(0, 100) + '...' : bodyStr;
|
|
255
|
-
summary += ` with body: ${preview}`;
|
|
256
|
-
}
|
|
257
|
-
if (params.headers && Object.keys(params.headers).length > 0) {
|
|
258
|
-
const headerKeys = Object.keys(params.headers).join(', ');
|
|
259
|
-
summary += ` with headers: [${headerKeys}]`;
|
|
260
|
-
}
|
|
261
|
-
return summary;
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhZ2VudC50b29scy5odHRwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRhZ2VudC50b29scy5odHRwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxVQUFVLE1BQU0sNEJBQTRCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTdEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxRQUFTLFNBQVEsZUFBZTtJQUNwQyxJQUFJLEdBQUcsTUFBTSxDQUFDO0lBQ2QsV0FBVyxHQUFHLDZDQUE2QyxDQUFDO0lBRTVELE9BQU8sR0FBNkI7UUFDekM7WUFDRSxJQUFJLEVBQUUsS0FBSztZQUNYLFdBQVcsRUFBRSxvQkFBb0I7WUFDakMsVUFBVSxFQUFFO2dCQUNWLElBQUksRUFBRSxRQUFRO2dCQUNkLFVBQVUsRUFBRTtvQkFDVixHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRTtvQkFDdEQsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsbUNBQW1DLEVBQUU7b0JBQzdFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLG9DQUFvQyxFQUFFO29CQUM1RSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSx5QkFBeUIsRUFBRTtpQkFDcEU7Z0JBQ0QsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDO2FBQ2xCO1NBQ0Y7UUFDRDtZQUNFLElBQUksRUFBRSxNQUFNO1lBQ1osV0FBVyxFQUFFLG9DQUFvQztZQUNqRCxVQUFVLEVBQUU7Z0JBQ1YsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsVUFBVSxFQUFFO29CQUNWLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFO29CQUN0RCxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRTtvQkFDMUQsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsbUNBQW1DLEVBQUU7b0JBQzdFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLG9DQUFvQyxFQUFFO29CQUM1RSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSx5QkFBeUIsRUFBRTtpQkFDcEU7Z0JBQ0QsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDO2FBQ2xCO1NBQ0Y7UUFDRDtZQUNFLElBQUksRUFBRSxLQUFLO1lBQ1gsV0FBVyxFQUFFLG1DQUFtQztZQUNoRCxVQUFVLEVBQUU7Z0JBQ1YsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsVUFBVSxFQUFFO29CQUNWLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFO29CQUN0RCxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRTtvQkFDMUQsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsbUNBQW1DLEVBQUU7b0JBQzdFLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLHlCQUF5QixFQUFFO2lCQUNwRTtnQkFDRCxRQUFRLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDO2FBQzFCO1NBQ0Y7UUFDRDtZQUNFLElBQUksRUFBRSxPQUFPO1lBQ2IsV0FBVyxFQUFFLHFDQUFxQztZQUNsRCxVQUFVLEVBQUU7Z0JBQ1YsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsVUFBVSxFQUFFO29CQUNWLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFO29CQUN0RCxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRTtvQkFDMUQsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsbUNBQW1DLEVBQUU7b0JBQzdFLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLHlCQUF5QixFQUFFO2lCQUNwRTtnQkFDRCxRQUFRLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDO2FBQzFCO1NBQ0Y7UUFDRDtZQUNFLElBQUksRUFBRSxRQUFRO1lBQ2QsV0FBVyxFQUFFLHVCQUF1QjtZQUNwQyxVQUFVLEVBQUU7Z0JBQ1YsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsVUFBVSxFQUFFO29CQUNWLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFO29CQUN0RCxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxtQ0FBbUMsRUFBRTtvQkFDN0UsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUseUJBQXlCLEVBQUU7aUJBQ3BFO2dCQUNELFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQzthQUNsQjtTQUNGO0tBQ0YsQ0FBQztJQUVLLEtBQUssQ0FBQyxVQUFVO1FBQ3JCLHNEQUFzRDtRQUN0RCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztJQUM1QixDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQU87UUFDbEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDN0IsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPLENBQ2xCLE1BQWMsRUFDZCxNQUErQjtRQUUvQixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBRXpCLElBQUksQ0FBQztZQUNILElBQUksT0FBTyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBYSxDQUFDLENBQUM7WUFFbkYsY0FBYztZQUNkLElBQUksTUFBTSxDQUFDLE9BQU8sSUFBSSxPQUFPLE1BQU0sQ0FBQyxPQUFPLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ3pELEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFpQyxDQUFDLEVBQUUsQ0FBQztvQkFDcEYsT0FBTyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUN2QyxDQUFDO1lBQ0gsQ0FBQztZQUVELHVCQUF1QjtZQUN2QixJQUFJLE1BQU0sQ0FBQyxLQUFLLElBQUksT0FBTyxNQUFNLENBQUMsS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUNyRCxPQUFPLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBK0IsQ0FBQyxDQUFDO1lBQ2xFLENBQUM7WUFFRCxjQUFjO1lBQ2QsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ25CLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFpQixDQUFDLENBQUM7WUFDdEQsQ0FBQztZQUVELHFDQUFxQztZQUNyQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO2dCQUM3RCxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEMsQ0FBQztZQUVELHNCQUFzQjtZQUN0QixJQUFJLFFBQVEsQ0FBQztZQUNiLFFBQVEsTUFBTSxFQUFFLENBQUM7Z0JBQ2YsS0FBSyxLQUFLO29CQUNSLFFBQVEsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztvQkFDL0IsTUFBTTtnQkFDUixLQUFLLE1BQU07b0JBQ1QsUUFBUSxHQUFHLE1BQU0sT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO29CQUNoQyxNQUFNO2dCQUNSLEtBQUssS0FBSztvQkFDUixRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBQy9CLE1BQU07Z0JBQ1IsS0FBSyxPQUFPO29CQUNWLFFBQVEsR0FBRyxNQUFNLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztvQkFDakMsTUFBTTtnQkFDUixLQUFLLFFBQVE7b0JBQ1gsUUFBUSxHQUFHLE1BQU0sT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUNsQyxNQUFNO2dCQUNSO29CQUNFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxtQkFBbUIsTUFBTSxFQUFFLEVBQUUsQ0FBQztZQUNsRSxDQUFDO1lBRUQsc0JBQXNCO1lBQ3RCLElBQUksSUFBYSxDQUFDO1lBQ2xCLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7WUFFN0QsSUFBSSxDQUFDO2dCQUNILElBQUksV0FBVyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUM7b0JBQzdDLElBQUksR0FBRyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDL0IsQ0FBQztxQkFBTSxDQUFDO29CQUNOLElBQUksR0FBRyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDL0IsQ0FBQztZQUNILENBQUM7WUFBQyxNQUFNLENBQUM7Z0JBQ1AsSUFBSSxHQUFHLElBQUksQ0FBQztZQUNkLENBQUM7WUFFRCxPQUFPO2dCQUNMLE9BQU8sRUFBRSxRQUFRLENBQUMsRUFBRTtnQkFDcEIsTUFBTSxFQUFFO29CQUNOLEdBQUcsRUFBRSxNQUFNLENBQUMsR0FBRztvQkFDZixNQUFNLEVBQUUsTUFBTSxDQUFDLFdBQVcsRUFBRTtvQkFDNUIsTUFBTSxFQUFFLFFBQVEsQ0FBQyxNQUFNO29CQUN2QixVQUFVLEVBQUUsUUFBUSxDQUFDLFVBQVU7b0JBQy9CLEVBQUUsRUFBRSxRQUFRLENBQUMsRUFBRTtvQkFDZixPQUFPLEVBQUUsUUFBUSxDQUFDLE9BQU87b0JBQ3pCLElBQUk7aUJBQ0w7YUFDRixDQUFDO1FBQ0osQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPO2dCQUNMLE9BQU8sRUFBRSxLQUFLO2dCQUNkLEtBQUssRUFBRSxLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO2FBQzlELENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVNLGtCQUFrQjtRQUN2QixPQUFPOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQTBFVixDQUFDO0lBQ0EsQ0FBQztJQUVNLGNBQWMsQ0FBQyxNQUFjLEVBQUUsTUFBK0I7UUFDbkUsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BDLElBQUksT0FBTyxHQUFHLEdBQUcsTUFBTSxnQkFBZ0IsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBRXJELElBQUksTUFBTSxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFlLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbkUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDOUMsT0FBTyxJQUFJLGdCQUFnQixRQUFRLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNuRyxDQUFDO1FBRUQsSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDaEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDNUMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1lBQ25GLE9BQU8sSUFBSSxlQUFlLE9BQU8sRUFBRSxDQUFDO1FBQ3RDLENBQUM7UUFFRCxJQUFJLE1BQU0sQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBaUIsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN2RSxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFpQixDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BFLE9BQU8sSUFBSSxtQkFBbUIsVUFBVSxHQUFHLENBQUM7UUFDOUMsQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Q0FDRiJ9
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import * as interfaces from './smartagent.interfaces.js';
|
|
2
|
-
import { BaseToolWrapper } from './smartagent.tools.base.js';
|
|
3
|
-
/**
|
|
4
|
-
* JsonValidatorTool - Validates and formats JSON data
|
|
5
|
-
* Useful for agents to self-validate their JSON output before completing a task
|
|
6
|
-
*/
|
|
7
|
-
export declare class JsonValidatorTool extends BaseToolWrapper {
|
|
8
|
-
name: string;
|
|
9
|
-
description: string;
|
|
10
|
-
actions: interfaces.IToolAction[];
|
|
11
|
-
initialize(): Promise<void>;
|
|
12
|
-
cleanup(): Promise<void>;
|
|
13
|
-
execute(action: string, params: Record<string, unknown>): Promise<interfaces.IToolExecutionResult>;
|
|
14
|
-
/**
|
|
15
|
-
* Validate JSON string and optionally check for required fields
|
|
16
|
-
*/
|
|
17
|
-
private validateJson;
|
|
18
|
-
/**
|
|
19
|
-
* Format/pretty-print JSON string
|
|
20
|
-
*/
|
|
21
|
-
private formatJson;
|
|
22
|
-
getToolExplanation(): string;
|
|
23
|
-
getCallSummary(action: string, params: Record<string, unknown>): string;
|
|
24
|
-
}
|
|
@@ -1,202 +0,0 @@
|
|
|
1
|
-
import * as interfaces from './smartagent.interfaces.js';
|
|
2
|
-
import { BaseToolWrapper } from './smartagent.tools.base.js';
|
|
3
|
-
/**
|
|
4
|
-
* JsonValidatorTool - Validates and formats JSON data
|
|
5
|
-
* Useful for agents to self-validate their JSON output before completing a task
|
|
6
|
-
*/
|
|
7
|
-
export class JsonValidatorTool extends BaseToolWrapper {
|
|
8
|
-
name = 'json';
|
|
9
|
-
description = 'Validate and format JSON data. Use this to verify your JSON output is valid before completing a task.';
|
|
10
|
-
actions = [
|
|
11
|
-
{
|
|
12
|
-
name: 'validate',
|
|
13
|
-
description: 'Validate that a string is valid JSON and optionally check required fields',
|
|
14
|
-
parameters: {
|
|
15
|
-
type: 'object',
|
|
16
|
-
properties: {
|
|
17
|
-
jsonString: {
|
|
18
|
-
type: 'string',
|
|
19
|
-
description: 'The JSON string to validate',
|
|
20
|
-
},
|
|
21
|
-
requiredFields: {
|
|
22
|
-
type: 'array',
|
|
23
|
-
items: { type: 'string' },
|
|
24
|
-
description: 'Optional list of field names that must be present at the root level',
|
|
25
|
-
},
|
|
26
|
-
},
|
|
27
|
-
required: ['jsonString'],
|
|
28
|
-
},
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
name: 'format',
|
|
32
|
-
description: 'Parse and pretty-print JSON string',
|
|
33
|
-
parameters: {
|
|
34
|
-
type: 'object',
|
|
35
|
-
properties: {
|
|
36
|
-
jsonString: {
|
|
37
|
-
type: 'string',
|
|
38
|
-
description: 'The JSON string to format',
|
|
39
|
-
},
|
|
40
|
-
},
|
|
41
|
-
required: ['jsonString'],
|
|
42
|
-
},
|
|
43
|
-
},
|
|
44
|
-
];
|
|
45
|
-
async initialize() {
|
|
46
|
-
this.isInitialized = true;
|
|
47
|
-
}
|
|
48
|
-
async cleanup() {
|
|
49
|
-
this.isInitialized = false;
|
|
50
|
-
}
|
|
51
|
-
async execute(action, params) {
|
|
52
|
-
this.validateAction(action);
|
|
53
|
-
switch (action) {
|
|
54
|
-
case 'validate':
|
|
55
|
-
return this.validateJson(params);
|
|
56
|
-
case 'format':
|
|
57
|
-
return this.formatJson(params);
|
|
58
|
-
default:
|
|
59
|
-
return { success: false, error: `Unknown action: ${action}` };
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Validate JSON string and optionally check for required fields
|
|
64
|
-
*/
|
|
65
|
-
validateJson(params) {
|
|
66
|
-
const jsonString = params.jsonString;
|
|
67
|
-
const requiredFields = params.requiredFields;
|
|
68
|
-
if (!jsonString || typeof jsonString !== 'string') {
|
|
69
|
-
return {
|
|
70
|
-
success: false,
|
|
71
|
-
error: 'jsonString parameter is required and must be a string',
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
try {
|
|
75
|
-
const parsed = JSON.parse(jsonString);
|
|
76
|
-
// Check required fields if specified
|
|
77
|
-
if (requiredFields && Array.isArray(requiredFields)) {
|
|
78
|
-
const missingFields = requiredFields.filter((field) => {
|
|
79
|
-
if (typeof parsed !== 'object' || parsed === null) {
|
|
80
|
-
return true;
|
|
81
|
-
}
|
|
82
|
-
return !(field in parsed);
|
|
83
|
-
});
|
|
84
|
-
if (missingFields.length > 0) {
|
|
85
|
-
return {
|
|
86
|
-
success: false,
|
|
87
|
-
error: `Missing required fields: ${missingFields.join(', ')}`,
|
|
88
|
-
result: {
|
|
89
|
-
valid: false,
|
|
90
|
-
missingFields,
|
|
91
|
-
presentFields: Object.keys(parsed || {}),
|
|
92
|
-
},
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
return {
|
|
97
|
-
success: true,
|
|
98
|
-
result: {
|
|
99
|
-
valid: true,
|
|
100
|
-
parsed,
|
|
101
|
-
type: Array.isArray(parsed) ? 'array' : typeof parsed,
|
|
102
|
-
fieldCount: typeof parsed === 'object' && parsed !== null ? Object.keys(parsed).length : undefined,
|
|
103
|
-
},
|
|
104
|
-
summary: `JSON is valid (${Array.isArray(parsed) ? 'array' : typeof parsed})`,
|
|
105
|
-
};
|
|
106
|
-
}
|
|
107
|
-
catch (error) {
|
|
108
|
-
const errorMessage = error.message;
|
|
109
|
-
// Extract position from error message if available
|
|
110
|
-
const posMatch = errorMessage.match(/position\s*(\d+)/i);
|
|
111
|
-
const position = posMatch ? parseInt(posMatch[1]) : undefined;
|
|
112
|
-
// Provide context around the error position
|
|
113
|
-
let context;
|
|
114
|
-
if (position !== undefined) {
|
|
115
|
-
const start = Math.max(0, position - 20);
|
|
116
|
-
const end = Math.min(jsonString.length, position + 20);
|
|
117
|
-
context = jsonString.substring(start, end);
|
|
118
|
-
}
|
|
119
|
-
return {
|
|
120
|
-
success: false,
|
|
121
|
-
error: `Invalid JSON: ${errorMessage}`,
|
|
122
|
-
result: {
|
|
123
|
-
valid: false,
|
|
124
|
-
errorPosition: position,
|
|
125
|
-
errorContext: context,
|
|
126
|
-
},
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* Format/pretty-print JSON string
|
|
132
|
-
*/
|
|
133
|
-
formatJson(params) {
|
|
134
|
-
const jsonString = params.jsonString;
|
|
135
|
-
if (!jsonString || typeof jsonString !== 'string') {
|
|
136
|
-
return {
|
|
137
|
-
success: false,
|
|
138
|
-
error: 'jsonString parameter is required and must be a string',
|
|
139
|
-
};
|
|
140
|
-
}
|
|
141
|
-
try {
|
|
142
|
-
const parsed = JSON.parse(jsonString);
|
|
143
|
-
const formatted = JSON.stringify(parsed, null, 2);
|
|
144
|
-
return {
|
|
145
|
-
success: true,
|
|
146
|
-
result: formatted,
|
|
147
|
-
summary: `Formatted JSON (${formatted.length} chars)`,
|
|
148
|
-
};
|
|
149
|
-
}
|
|
150
|
-
catch (error) {
|
|
151
|
-
return {
|
|
152
|
-
success: false,
|
|
153
|
-
error: `Cannot format invalid JSON: ${error.message}`,
|
|
154
|
-
};
|
|
155
|
-
}
|
|
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
|
-
}
|
|
187
|
-
getCallSummary(action, params) {
|
|
188
|
-
const jsonStr = params.jsonString || '';
|
|
189
|
-
const preview = jsonStr.length > 50 ? jsonStr.substring(0, 50) + '...' : jsonStr;
|
|
190
|
-
switch (action) {
|
|
191
|
-
case 'validate':
|
|
192
|
-
const fields = params.requiredFields;
|
|
193
|
-
const fieldInfo = fields ? ` (checking fields: ${fields.join(', ')})` : '';
|
|
194
|
-
return `Validate JSON: ${preview}${fieldInfo}`;
|
|
195
|
-
case 'format':
|
|
196
|
-
return `Format JSON: ${preview}`;
|
|
197
|
-
default:
|
|
198
|
-
return `JSON ${action}: ${preview}`;
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhZ2VudC50b29scy5qc29uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRhZ2VudC50b29scy5qc29uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxVQUFVLE1BQU0sNEJBQTRCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTdEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxlQUFlO0lBQzdDLElBQUksR0FBRyxNQUFNLENBQUM7SUFDZCxXQUFXLEdBQUcsdUdBQXVHLENBQUM7SUFFdEgsT0FBTyxHQUE2QjtRQUN6QztZQUNFLElBQUksRUFBRSxVQUFVO1lBQ2hCLFdBQVcsRUFBRSwyRUFBMkU7WUFDeEYsVUFBVSxFQUFFO2dCQUNWLElBQUksRUFBRSxRQUFRO2dCQUNkLFVBQVUsRUFBRTtvQkFDVixVQUFVLEVBQUU7d0JBQ1YsSUFBSSxFQUFFLFFBQVE7d0JBQ2QsV0FBVyxFQUFFLDZCQUE2QjtxQkFDM0M7b0JBQ0QsY0FBYyxFQUFFO3dCQUNkLElBQUksRUFBRSxPQUFPO3dCQUNiLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7d0JBQ3pCLFdBQVcsRUFBRSxxRUFBcUU7cUJBQ25GO2lCQUNGO2dCQUNELFFBQVEsRUFBRSxDQUFDLFlBQVksQ0FBQzthQUN6QjtTQUNGO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsUUFBUTtZQUNkLFdBQVcsRUFBRSxvQ0FBb0M7WUFDakQsVUFBVSxFQUFFO2dCQUNWLElBQUksRUFBRSxRQUFRO2dCQUNkLFVBQVUsRUFBRTtvQkFDVixVQUFVLEVBQUU7d0JBQ1YsSUFBSSxFQUFFLFFBQVE7d0JBQ2QsV0FBVyxFQUFFLDJCQUEyQjtxQkFDekM7aUJBQ0Y7Z0JBQ0QsUUFBUSxFQUFFLENBQUMsWUFBWSxDQUFDO2FBQ3pCO1NBQ0Y7S0FDRixDQUFDO0lBRUYsS0FBSyxDQUFDLFVBQVU7UUFD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
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import * as interfaces from './smartagent.interfaces.js';
|
|
2
|
-
import { BaseToolWrapper } from './smartagent.tools.base.js';
|
|
3
|
-
import { ToolRegistry } from './smartagent.classes.toolregistry.js';
|
|
4
|
-
/**
|
|
5
|
-
* ToolSearchTool - AI-facing interface for discovering and activating tools
|
|
6
|
-
*
|
|
7
|
-
* This tool enables the Driver to:
|
|
8
|
-
* - Search for tools by capability
|
|
9
|
-
* - List all available tools
|
|
10
|
-
* - Activate on-demand tools
|
|
11
|
-
* - Get detailed information about specific tools
|
|
12
|
-
*/
|
|
13
|
-
export declare class ToolSearchTool extends BaseToolWrapper {
|
|
14
|
-
name: string;
|
|
15
|
-
description: string;
|
|
16
|
-
actions: interfaces.IToolAction[];
|
|
17
|
-
private registry;
|
|
18
|
-
private onToolActivated?;
|
|
19
|
-
constructor(registry: ToolRegistry, onToolActivated?: (tool: BaseToolWrapper) => void);
|
|
20
|
-
initialize(): Promise<void>;
|
|
21
|
-
cleanup(): Promise<void>;
|
|
22
|
-
execute(action: string, params: Record<string, unknown>): Promise<interfaces.IToolExecutionResult>;
|
|
23
|
-
private handleSearch;
|
|
24
|
-
private handleList;
|
|
25
|
-
private handleActivate;
|
|
26
|
-
private handleDetails;
|
|
27
|
-
getCallSummary(action: string, params: Record<string, unknown>): string;
|
|
28
|
-
getToolExplanation(): string;
|
|
29
|
-
}
|