@push.rocks/smartagent 1.0.2

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.
Files changed (42) hide show
  1. package/dist_ts/00_commitinfo_data.d.ts +8 -0
  2. package/dist_ts/00_commitinfo_data.js +9 -0
  3. package/dist_ts/index.d.ts +10 -0
  4. package/dist_ts/index.js +18 -0
  5. package/dist_ts/plugins.d.ts +6 -0
  6. package/dist_ts/plugins.js +8 -0
  7. package/dist_ts/smartagent.classes.driveragent.d.ts +70 -0
  8. package/dist_ts/smartagent.classes.driveragent.js +274 -0
  9. package/dist_ts/smartagent.classes.dualagent.d.ts +62 -0
  10. package/dist_ts/smartagent.classes.dualagent.js +298 -0
  11. package/dist_ts/smartagent.classes.guardianagent.d.ts +46 -0
  12. package/dist_ts/smartagent.classes.guardianagent.js +201 -0
  13. package/dist_ts/smartagent.classes.smartagent.d.ts +123 -0
  14. package/dist_ts/smartagent.classes.smartagent.js +274 -0
  15. package/dist_ts/smartagent.interfaces.d.ts +165 -0
  16. package/dist_ts/smartagent.interfaces.js +8 -0
  17. package/dist_ts/smartagent.tools.base.d.ts +46 -0
  18. package/dist_ts/smartagent.tools.base.js +45 -0
  19. package/dist_ts/smartagent.tools.browser.d.ts +16 -0
  20. package/dist_ts/smartagent.tools.browser.js +177 -0
  21. package/dist_ts/smartagent.tools.filesystem.d.ts +16 -0
  22. package/dist_ts/smartagent.tools.filesystem.js +352 -0
  23. package/dist_ts/smartagent.tools.http.d.ts +15 -0
  24. package/dist_ts/smartagent.tools.http.js +187 -0
  25. package/dist_ts/smartagent.tools.shell.d.ts +16 -0
  26. package/dist_ts/smartagent.tools.shell.js +155 -0
  27. package/npmextra.json +18 -0
  28. package/package.json +50 -0
  29. package/readme.hints.md +16 -0
  30. package/readme.md +299 -0
  31. package/ts/00_commitinfo_data.ts +8 -0
  32. package/ts/index.ts +29 -0
  33. package/ts/plugins.ts +14 -0
  34. package/ts/smartagent.classes.driveragent.ts +321 -0
  35. package/ts/smartagent.classes.dualagent.ts +350 -0
  36. package/ts/smartagent.classes.guardianagent.ts +241 -0
  37. package/ts/smartagent.interfaces.ts +210 -0
  38. package/ts/smartagent.tools.base.ts +80 -0
  39. package/ts/smartagent.tools.browser.ts +200 -0
  40. package/ts/smartagent.tools.filesystem.ts +379 -0
  41. package/ts/smartagent.tools.http.ts +205 -0
  42. package/ts/smartagent.tools.shell.ts +182 -0
@@ -0,0 +1,16 @@
1
+ import * as interfaces from './smartagent.interfaces.js';
2
+ import { BaseToolWrapper } from './smartagent.tools.base.js';
3
+ /**
4
+ * Browser tool for web page interaction
5
+ * Wraps @push.rocks/smartbrowser (Puppeteer-based)
6
+ */
7
+ export declare class BrowserTool extends BaseToolWrapper {
8
+ name: string;
9
+ description: string;
10
+ actions: interfaces.IToolAction[];
11
+ private smartbrowser;
12
+ initialize(): Promise<void>;
13
+ cleanup(): Promise<void>;
14
+ execute(action: string, params: Record<string, unknown>): Promise<interfaces.IToolExecutionResult>;
15
+ getCallSummary(action: string, params: Record<string, unknown>): string;
16
+ }
@@ -0,0 +1,177 @@
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
+ * Browser tool for web page interaction
6
+ * Wraps @push.rocks/smartbrowser (Puppeteer-based)
7
+ */
8
+ export class BrowserTool extends BaseToolWrapper {
9
+ name = 'browser';
10
+ description = 'Interact with web pages - take screenshots, generate PDFs, and execute JavaScript on pages';
11
+ actions = [
12
+ {
13
+ name: 'screenshot',
14
+ description: 'Take a screenshot of a webpage',
15
+ parameters: {
16
+ type: 'object',
17
+ properties: {
18
+ url: { type: 'string', description: 'URL of the page to screenshot' },
19
+ },
20
+ required: ['url'],
21
+ },
22
+ },
23
+ {
24
+ name: 'pdf',
25
+ description: 'Generate a PDF from a webpage',
26
+ parameters: {
27
+ type: 'object',
28
+ properties: {
29
+ url: { type: 'string', description: 'URL of the page to convert to PDF' },
30
+ },
31
+ required: ['url'],
32
+ },
33
+ },
34
+ {
35
+ name: 'evaluate',
36
+ description: 'Execute JavaScript code on a webpage and return the result. The script runs in the browser context.',
37
+ parameters: {
38
+ type: 'object',
39
+ properties: {
40
+ url: { type: 'string', description: 'URL of the page to run the script on' },
41
+ script: {
42
+ type: 'string',
43
+ description: 'JavaScript code to execute. Must be a valid expression or statements that return a value.',
44
+ },
45
+ },
46
+ required: ['url', 'script'],
47
+ },
48
+ },
49
+ {
50
+ name: 'getPageContent',
51
+ description: 'Get the text content and title of a webpage',
52
+ parameters: {
53
+ type: 'object',
54
+ properties: {
55
+ url: { type: 'string', description: 'URL of the page to get content from' },
56
+ },
57
+ required: ['url'],
58
+ },
59
+ },
60
+ ];
61
+ smartbrowser;
62
+ async initialize() {
63
+ this.smartbrowser = new plugins.smartbrowser.SmartBrowser();
64
+ await this.smartbrowser.start();
65
+ this.isInitialized = true;
66
+ }
67
+ async cleanup() {
68
+ if (this.smartbrowser) {
69
+ await this.smartbrowser.stop();
70
+ }
71
+ this.isInitialized = false;
72
+ }
73
+ async execute(action, params) {
74
+ this.validateAction(action);
75
+ this.ensureInitialized();
76
+ try {
77
+ switch (action) {
78
+ case 'screenshot': {
79
+ const result = await this.smartbrowser.screenshotFromPage(params.url);
80
+ return {
81
+ success: true,
82
+ result: {
83
+ url: params.url,
84
+ name: result.name,
85
+ id: result.id,
86
+ bufferBase64: Buffer.from(result.buffer).toString('base64'),
87
+ bufferLength: result.buffer.length,
88
+ type: 'screenshot',
89
+ },
90
+ };
91
+ }
92
+ case 'pdf': {
93
+ const result = await this.smartbrowser.pdfFromPage(params.url);
94
+ return {
95
+ success: true,
96
+ result: {
97
+ url: params.url,
98
+ name: result.name,
99
+ id: result.id,
100
+ bufferBase64: Buffer.from(result.buffer).toString('base64'),
101
+ bufferLength: result.buffer.length,
102
+ type: 'pdf',
103
+ },
104
+ };
105
+ }
106
+ case 'evaluate': {
107
+ const script = params.script;
108
+ // Create an async function from the script
109
+ // The script should be valid JavaScript that returns a value
110
+ const result = await this.smartbrowser.evaluateOnPage(params.url, async () => {
111
+ // This runs in the browser context
112
+ // We need to evaluate the script string dynamically
113
+ // eslint-disable-next-line no-eval
114
+ return eval(script);
115
+ });
116
+ return {
117
+ success: true,
118
+ result: {
119
+ url: params.url,
120
+ script: script.substring(0, 200) + (script.length > 200 ? '...' : ''),
121
+ evaluationResult: result,
122
+ },
123
+ };
124
+ }
125
+ case 'getPageContent': {
126
+ const result = await this.smartbrowser.evaluateOnPage(params.url, async () => {
127
+ return {
128
+ title: document.title,
129
+ textContent: document.body?.innerText || '',
130
+ url: window.location.href,
131
+ };
132
+ });
133
+ return {
134
+ success: true,
135
+ result: {
136
+ url: params.url,
137
+ title: result.title,
138
+ textContent: result.textContent.length > 10000
139
+ ? result.textContent.substring(0, 10000) + '... [truncated]'
140
+ : result.textContent,
141
+ actualUrl: result.url,
142
+ },
143
+ };
144
+ }
145
+ default:
146
+ return {
147
+ success: false,
148
+ error: `Unknown action: ${action}`,
149
+ };
150
+ }
151
+ }
152
+ catch (error) {
153
+ return {
154
+ success: false,
155
+ error: error instanceof Error ? error.message : String(error),
156
+ };
157
+ }
158
+ }
159
+ getCallSummary(action, params) {
160
+ switch (action) {
161
+ case 'screenshot':
162
+ return `Take screenshot of "${params.url}"`;
163
+ case 'pdf':
164
+ return `Generate PDF from "${params.url}"`;
165
+ case 'evaluate': {
166
+ const script = params.script;
167
+ const preview = script.length > 100 ? script.substring(0, 100) + '...' : script;
168
+ return `Execute JavaScript on "${params.url}": "${preview}"`;
169
+ }
170
+ case 'getPageContent':
171
+ return `Get text content and title from "${params.url}"`;
172
+ default:
173
+ return `Unknown action: ${action}`;
174
+ }
175
+ }
176
+ }
177
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhZ2VudC50b29scy5icm93c2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRhZ2VudC50b29scy5icm93c2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxVQUFVLE1BQU0sNEJBQTRCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTdEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxXQUFZLFNBQVEsZUFBZTtJQUN2QyxJQUFJLEdBQUcsU0FBUyxDQUFDO0lBQ2pCLFdBQVcsR0FDaEIsNEZBQTRGLENBQUM7SUFFeEYsT0FBTyxHQUE2QjtRQUN6QztZQUNFLElBQUksRUFBRSxZQUFZO1lBQ2xCLFdBQVcsRUFBRSxnQ0FBZ0M7WUFDN0MsVUFBVSxFQUFFO2dCQUNWLElBQUksRUFBRSxRQUFRO2dCQUNkLFVBQVUsRUFBRTtvQkFDVixHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSwrQkFBK0IsRUFBRTtpQkFDdEU7Z0JBQ0QsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDO2FBQ2xCO1NBQ0Y7UUFDRDtZQUNFLElBQUksRUFBRSxLQUFLO1lBQ1gsV0FBVyxFQUFFLCtCQUErQjtZQUM1QyxVQUFVLEVBQUU7Z0JBQ1YsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsVUFBVSxFQUFFO29CQUNWLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLG1DQUFtQyxFQUFFO2lCQUMxRTtnQkFDRCxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUM7YUFDbEI7U0FDRjtRQUNEO1lBQ0UsSUFBSSxFQUFFLFVBQVU7WUFDaEIsV0FBVyxFQUNULHFHQUFxRztZQUN2RyxVQUFVLEVBQUU7Z0JBQ1YsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsVUFBVSxFQUFFO29CQUNW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
@@ -0,0 +1,16 @@
1
+ import * as interfaces from './smartagent.interfaces.js';
2
+ import { BaseToolWrapper } from './smartagent.tools.base.js';
3
+ /**
4
+ * Filesystem tool for file and directory operations
5
+ * Wraps @push.rocks/smartfs
6
+ */
7
+ export declare class FilesystemTool extends BaseToolWrapper {
8
+ name: string;
9
+ description: string;
10
+ actions: interfaces.IToolAction[];
11
+ private smartfs;
12
+ initialize(): Promise<void>;
13
+ cleanup(): Promise<void>;
14
+ execute(action: string, params: Record<string, unknown>): Promise<interfaces.IToolExecutionResult>;
15
+ getCallSummary(action: string, params: Record<string, unknown>): string;
16
+ }
@@ -0,0 +1,352 @@
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
+ * Filesystem tool for file and directory operations
6
+ * Wraps @push.rocks/smartfs
7
+ */
8
+ export class FilesystemTool extends BaseToolWrapper {
9
+ name = 'filesystem';
10
+ description = 'Read, write, list, and delete files and directories';
11
+ actions = [
12
+ {
13
+ name: 'read',
14
+ description: 'Read the contents of a file',
15
+ parameters: {
16
+ type: 'object',
17
+ properties: {
18
+ path: { type: 'string', description: 'Absolute path to the file' },
19
+ encoding: {
20
+ type: 'string',
21
+ enum: ['utf8', 'binary', 'base64'],
22
+ default: 'utf8',
23
+ description: 'File encoding',
24
+ },
25
+ },
26
+ required: ['path'],
27
+ },
28
+ },
29
+ {
30
+ name: 'write',
31
+ description: 'Write content to a file (creates or overwrites)',
32
+ parameters: {
33
+ type: 'object',
34
+ properties: {
35
+ path: { type: 'string', description: 'Absolute path to the file' },
36
+ content: { type: 'string', description: 'Content to write' },
37
+ encoding: {
38
+ type: 'string',
39
+ enum: ['utf8', 'binary', 'base64'],
40
+ default: 'utf8',
41
+ description: 'File encoding',
42
+ },
43
+ },
44
+ required: ['path', 'content'],
45
+ },
46
+ },
47
+ {
48
+ name: 'append',
49
+ description: 'Append content to a file',
50
+ parameters: {
51
+ type: 'object',
52
+ properties: {
53
+ path: { type: 'string', description: 'Absolute path to the file' },
54
+ content: { type: 'string', description: 'Content to append' },
55
+ },
56
+ required: ['path', 'content'],
57
+ },
58
+ },
59
+ {
60
+ name: 'list',
61
+ description: 'List files and directories in a path',
62
+ parameters: {
63
+ type: 'object',
64
+ properties: {
65
+ path: { type: 'string', description: 'Directory path to list' },
66
+ recursive: { type: 'boolean', default: false, description: 'List recursively' },
67
+ filter: { type: 'string', description: 'Glob pattern to filter results (e.g., "*.ts")' },
68
+ },
69
+ required: ['path'],
70
+ },
71
+ },
72
+ {
73
+ name: 'delete',
74
+ description: 'Delete a file or directory',
75
+ parameters: {
76
+ type: 'object',
77
+ properties: {
78
+ path: { type: 'string', description: 'Path to delete' },
79
+ recursive: {
80
+ type: 'boolean',
81
+ default: false,
82
+ description: 'For directories, delete recursively',
83
+ },
84
+ },
85
+ required: ['path'],
86
+ },
87
+ },
88
+ {
89
+ name: 'exists',
90
+ description: 'Check if a file or directory exists',
91
+ parameters: {
92
+ type: 'object',
93
+ properties: {
94
+ path: { type: 'string', description: 'Path to check' },
95
+ },
96
+ required: ['path'],
97
+ },
98
+ },
99
+ {
100
+ name: 'stat',
101
+ description: 'Get file or directory statistics (size, dates, etc.)',
102
+ parameters: {
103
+ type: 'object',
104
+ properties: {
105
+ path: { type: 'string', description: 'Path to get stats for' },
106
+ },
107
+ required: ['path'],
108
+ },
109
+ },
110
+ {
111
+ name: 'copy',
112
+ description: 'Copy a file to a new location',
113
+ parameters: {
114
+ type: 'object',
115
+ properties: {
116
+ source: { type: 'string', description: 'Source file path' },
117
+ destination: { type: 'string', description: 'Destination file path' },
118
+ },
119
+ required: ['source', 'destination'],
120
+ },
121
+ },
122
+ {
123
+ name: 'move',
124
+ description: 'Move a file to a new location',
125
+ parameters: {
126
+ type: 'object',
127
+ properties: {
128
+ source: { type: 'string', description: 'Source file path' },
129
+ destination: { type: 'string', description: 'Destination file path' },
130
+ },
131
+ required: ['source', 'destination'],
132
+ },
133
+ },
134
+ {
135
+ name: 'mkdir',
136
+ description: 'Create a directory',
137
+ parameters: {
138
+ type: 'object',
139
+ properties: {
140
+ path: { type: 'string', description: 'Directory path to create' },
141
+ recursive: {
142
+ type: 'boolean',
143
+ default: true,
144
+ description: 'Create parent directories if needed',
145
+ },
146
+ },
147
+ required: ['path'],
148
+ },
149
+ },
150
+ ];
151
+ smartfs;
152
+ async initialize() {
153
+ this.smartfs = new plugins.smartfs.SmartFs(new plugins.smartfs.SmartFsProviderNode());
154
+ this.isInitialized = true;
155
+ }
156
+ async cleanup() {
157
+ this.isInitialized = false;
158
+ }
159
+ async execute(action, params) {
160
+ this.validateAction(action);
161
+ this.ensureInitialized();
162
+ try {
163
+ switch (action) {
164
+ case 'read': {
165
+ const encoding = params.encoding || 'utf8';
166
+ const content = await this.smartfs
167
+ .file(params.path)
168
+ .encoding(encoding)
169
+ .read();
170
+ return {
171
+ success: true,
172
+ result: {
173
+ path: params.path,
174
+ content: content.toString(),
175
+ encoding,
176
+ },
177
+ };
178
+ }
179
+ case 'write': {
180
+ const encoding = params.encoding || 'utf8';
181
+ await this.smartfs
182
+ .file(params.path)
183
+ .encoding(encoding)
184
+ .write(params.content);
185
+ return {
186
+ success: true,
187
+ result: {
188
+ path: params.path,
189
+ written: true,
190
+ bytesWritten: params.content.length,
191
+ },
192
+ };
193
+ }
194
+ case 'append': {
195
+ await this.smartfs.file(params.path).append(params.content);
196
+ return {
197
+ success: true,
198
+ result: {
199
+ path: params.path,
200
+ appended: true,
201
+ },
202
+ };
203
+ }
204
+ case 'list': {
205
+ let dir = this.smartfs.directory(params.path);
206
+ if (params.recursive) {
207
+ dir = dir.recursive();
208
+ }
209
+ if (params.filter) {
210
+ dir = dir.filter(params.filter);
211
+ }
212
+ const entries = await dir.list();
213
+ return {
214
+ success: true,
215
+ result: {
216
+ path: params.path,
217
+ entries,
218
+ count: entries.length,
219
+ },
220
+ };
221
+ }
222
+ case 'delete': {
223
+ const path = params.path;
224
+ // Check if it's a directory or file
225
+ const exists = await this.smartfs.file(path).exists();
226
+ if (exists) {
227
+ // Try to get stats to check if it's a directory
228
+ try {
229
+ const stats = await this.smartfs.file(path).stat();
230
+ if (stats.isDirectory && params.recursive) {
231
+ await this.smartfs.directory(path).recursive().delete();
232
+ }
233
+ else {
234
+ await this.smartfs.file(path).delete();
235
+ }
236
+ }
237
+ catch {
238
+ await this.smartfs.file(path).delete();
239
+ }
240
+ }
241
+ return {
242
+ success: true,
243
+ result: {
244
+ path,
245
+ deleted: true,
246
+ },
247
+ };
248
+ }
249
+ case 'exists': {
250
+ const exists = await this.smartfs.file(params.path).exists();
251
+ return {
252
+ success: true,
253
+ result: {
254
+ path: params.path,
255
+ exists,
256
+ },
257
+ };
258
+ }
259
+ case 'stat': {
260
+ const stats = await this.smartfs.file(params.path).stat();
261
+ return {
262
+ success: true,
263
+ result: {
264
+ path: params.path,
265
+ stats,
266
+ },
267
+ };
268
+ }
269
+ case 'copy': {
270
+ await this.smartfs.file(params.source).copy(params.destination);
271
+ return {
272
+ success: true,
273
+ result: {
274
+ source: params.source,
275
+ destination: params.destination,
276
+ copied: true,
277
+ },
278
+ };
279
+ }
280
+ case 'move': {
281
+ await this.smartfs.file(params.source).move(params.destination);
282
+ return {
283
+ success: true,
284
+ result: {
285
+ source: params.source,
286
+ destination: params.destination,
287
+ moved: true,
288
+ },
289
+ };
290
+ }
291
+ case 'mkdir': {
292
+ let dir = this.smartfs.directory(params.path);
293
+ if (params.recursive !== false) {
294
+ dir = dir.recursive();
295
+ }
296
+ await dir.create();
297
+ return {
298
+ success: true,
299
+ result: {
300
+ path: params.path,
301
+ created: true,
302
+ },
303
+ };
304
+ }
305
+ default:
306
+ return {
307
+ success: false,
308
+ error: `Unknown action: ${action}`,
309
+ };
310
+ }
311
+ }
312
+ catch (error) {
313
+ return {
314
+ success: false,
315
+ error: error instanceof Error ? error.message : String(error),
316
+ };
317
+ }
318
+ }
319
+ getCallSummary(action, params) {
320
+ switch (action) {
321
+ case 'read':
322
+ return `Read file "${params.path}" with encoding ${params.encoding || 'utf8'}`;
323
+ case 'write': {
324
+ const content = params.content;
325
+ const preview = content.length > 100 ? content.substring(0, 100) + '...' : content;
326
+ return `Write ${content.length} bytes to "${params.path}". Content preview: "${preview}"`;
327
+ }
328
+ case 'append': {
329
+ const content = params.content;
330
+ const preview = content.length > 100 ? content.substring(0, 100) + '...' : content;
331
+ return `Append ${content.length} bytes to "${params.path}". Content preview: "${preview}"`;
332
+ }
333
+ case 'list':
334
+ return `List directory "${params.path}"${params.recursive ? ' recursively' : ''}${params.filter ? ` with filter "${params.filter}"` : ''}`;
335
+ case 'delete':
336
+ return `Delete "${params.path}"${params.recursive ? ' recursively' : ''}`;
337
+ case 'exists':
338
+ return `Check if "${params.path}" exists`;
339
+ case 'stat':
340
+ return `Get statistics for "${params.path}"`;
341
+ case 'copy':
342
+ return `Copy "${params.source}" to "${params.destination}"`;
343
+ case 'move':
344
+ return `Move "${params.source}" to "${params.destination}"`;
345
+ case 'mkdir':
346
+ return `Create directory "${params.path}"${params.recursive !== false ? ' (with parents)' : ''}`;
347
+ default:
348
+ return `Unknown action: ${action}`;
349
+ }
350
+ }
351
+ }
352
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhZ2VudC50b29scy5maWxlc3lzdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRhZ2VudC50b29scy5maWxlc3lzdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxVQUFVLE1BQU0sNEJBQTRCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTdEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxjQUFlLFNBQVEsZUFBZTtJQUMxQyxJQUFJLEdBQUcsWUFBWSxDQUFDO0lBQ3BCLFdBQVcsR0FBRyxxREFBcUQsQ0FBQztJQUVwRSxPQUFPLEdBQTZCO1FBQ3pDO1lBQ0UsSUFBSSxFQUFFLE1BQU07WUFDWixXQUFXLEVBQUUsNkJBQTZCO1lBQzFDLFVBQVUsRUFBRTtnQkFDVixJQUFJLEVBQUUsUUFBUTtnQkFDZCxVQUFVLEVBQUU7b0JBQ1YsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsMkJBQTJCLEVBQUU7b0JBQ2xFLFFBQVEsRUFBRTt3QkFDUixJQUFJLEVBQUUsUUFBUTt3QkFDZCxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQzt3QkFDbEMsT0FBTyxFQUFFLE1BQU07d0JBQ2YsV0FBVyxFQUFFLGVBQWU7cUJBQzdCO2lCQUNGO2dCQUNELFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQzthQUNuQjtTQUNGO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsT0FBTztZQUNiLFdBQVcsRUFBRSxpREFBaUQ7WUFDOUQsVUFBVSxFQUFFO2dCQUNWLElBQUksRUFBRSxRQUFRO2dCQUNkLFVBQVUsRUFBRTtvQkFDVixJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSwyQkFBMkIsRUFBRTtvQkFDbEUsT0FBTyxF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
@@ -0,0 +1,15 @@
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
+ getCallSummary(action: string, params: Record<string, unknown>): string;
15
+ }