@push.rocks/smartagent 1.1.1 → 1.2.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.
- package/dist_ts/index.d.ts +1 -1
- package/dist_ts/index.js +1 -1
- package/dist_ts/plugins.d.ts +2 -0
- package/dist_ts/plugins.js +4 -1
- package/dist_ts/smartagent.classes.driveragent.d.ts +5 -0
- package/dist_ts/smartagent.classes.driveragent.js +57 -9
- package/dist_ts/smartagent.classes.dualagent.d.ts +6 -0
- package/dist_ts/smartagent.classes.dualagent.js +51 -17
- package/dist_ts/smartagent.interfaces.d.ts +2 -0
- package/dist_ts/smartagent.interfaces.js +1 -1
- package/dist_ts/smartagent.tools.filesystem.d.ts +15 -0
- package/dist_ts/smartagent.tools.filesystem.js +50 -17
- package/package.json +6 -10
- package/ts/index.ts +1 -1
- package/ts/plugins.ts +5 -0
- package/ts/smartagent.classes.driveragent.ts +55 -8
- package/ts/smartagent.classes.dualagent.ts +55 -18
- package/ts/smartagent.interfaces.ts +2 -0
- package/ts/smartagent.tools.filesystem.ts +60 -16
package/dist_ts/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ export { DualAgentOrchestrator } from './smartagent.classes.dualagent.js';
|
|
|
2
2
|
export { DriverAgent } from './smartagent.classes.driveragent.js';
|
|
3
3
|
export { GuardianAgent } from './smartagent.classes.guardianagent.js';
|
|
4
4
|
export { BaseToolWrapper } from './smartagent.tools.base.js';
|
|
5
|
-
export { FilesystemTool } from './smartagent.tools.filesystem.js';
|
|
5
|
+
export { FilesystemTool, type IFilesystemToolOptions } from './smartagent.tools.filesystem.js';
|
|
6
6
|
export { HttpTool } from './smartagent.tools.http.js';
|
|
7
7
|
export { ShellTool } from './smartagent.tools.shell.js';
|
|
8
8
|
export { BrowserTool } from './smartagent.tools.browser.js';
|
package/dist_ts/index.js
CHANGED
|
@@ -16,4 +16,4 @@ export { DenoTool } from './smartagent.tools.deno.js';
|
|
|
16
16
|
export * from './smartagent.interfaces.js';
|
|
17
17
|
// Re-export useful types from smartai
|
|
18
18
|
export {} from '@push.rocks/smartai';
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUV4Qyx3REFBd0Q7QUFDeEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFMUUsMkJBQTJCO0FBQzNCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFdEUsa0RBQWtEO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUU3RCx3QkFBd0I7QUFDeEIsT0FBTyxFQUFFLGNBQWMsRUFBK0IsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsUUFBUSxFQUF3QixNQUFNLDRCQUE0QixDQUFDO0FBRTVFLHdCQUF3QjtBQUN4QixjQUFjLDRCQUE0QixDQUFDO0FBRTNDLHNDQUFzQztBQUN0QyxPQUFPLEVBTU4sTUFBTSxxQkFBcUIsQ0FBQyJ9
|
package/dist_ts/plugins.d.ts
CHANGED
package/dist_ts/plugins.js
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
// node native
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
export { path };
|
|
1
4
|
// @push.rocks scope
|
|
2
5
|
import * as smartai from '@push.rocks/smartai';
|
|
3
6
|
import * as smartdeno from '@push.rocks/smartdeno';
|
|
@@ -6,4 +9,4 @@ import * as smartrequest from '@push.rocks/smartrequest';
|
|
|
6
9
|
import * as smartbrowser from '@push.rocks/smartbrowser';
|
|
7
10
|
import * as smartshell from '@push.rocks/smartshell';
|
|
8
11
|
export { smartai, smartdeno, smartfs, smartrequest, smartbrowser, smartshell, };
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3BsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYztBQUNkLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBRTdCLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUVoQixvQkFBb0I7QUFDcEIsT0FBTyxLQUFLLE9BQU8sTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEtBQUssU0FBUyxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sS0FBSyxPQUFPLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxLQUFLLFlBQVksTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEtBQUssWUFBWSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxVQUFVLE1BQU0sd0JBQXdCLENBQUM7QUFFckQsT0FBTyxFQUNMLE9BQU8sRUFDUCxTQUFTLEVBQ1QsT0FBTyxFQUNQLFlBQVksRUFDWixZQUFZLEVBQ1osVUFBVSxHQUNYLENBQUMifQ==
|
|
@@ -63,6 +63,11 @@ export declare class DriverAgent {
|
|
|
63
63
|
* Get the default system message for the driver
|
|
64
64
|
*/
|
|
65
65
|
private getDefaultSystemMessage;
|
|
66
|
+
/**
|
|
67
|
+
* Get the system message when no tools are available
|
|
68
|
+
* Used for direct task completion without tool usage
|
|
69
|
+
*/
|
|
70
|
+
private getNoToolsSystemMessage;
|
|
66
71
|
/**
|
|
67
72
|
* Reset the conversation state
|
|
68
73
|
*/
|
|
@@ -31,16 +31,30 @@ export class DriverAgent {
|
|
|
31
31
|
async startTask(task) {
|
|
32
32
|
// Reset message history
|
|
33
33
|
this.messageHistory = [];
|
|
34
|
-
// Build the user message
|
|
35
|
-
const
|
|
34
|
+
// Build the user message based on available tools
|
|
35
|
+
const hasTools = this.tools.size > 0;
|
|
36
|
+
let userMessage;
|
|
37
|
+
if (hasTools) {
|
|
38
|
+
userMessage = `TASK: ${task}\n\nAnalyze this task and determine what actions are needed. If you need to use a tool, provide a tool call proposal.`;
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
userMessage = `TASK: ${task}\n\nComplete this task directly. When done, wrap your final output in <task_complete>your output here</task_complete> tags.`;
|
|
42
|
+
}
|
|
36
43
|
// Add to history
|
|
37
44
|
this.messageHistory.push({
|
|
38
45
|
role: 'user',
|
|
39
46
|
content: userMessage,
|
|
40
47
|
});
|
|
41
|
-
// Build
|
|
42
|
-
|
|
43
|
-
|
|
48
|
+
// Build the system message - adapt based on available tools
|
|
49
|
+
let fullSystemMessage;
|
|
50
|
+
if (hasTools) {
|
|
51
|
+
const toolDescriptions = this.buildToolDescriptions();
|
|
52
|
+
fullSystemMessage = `${this.systemMessage}\n\n## Available Tools\n${toolDescriptions}`;
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
// Use a simpler system message when no tools are available
|
|
56
|
+
fullSystemMessage = this.getNoToolsSystemMessage();
|
|
57
|
+
}
|
|
44
58
|
// Get response from provider
|
|
45
59
|
const response = await this.provider.chat({
|
|
46
60
|
systemMessage: fullSystemMessage,
|
|
@@ -66,9 +80,16 @@ export class DriverAgent {
|
|
|
66
80
|
role: 'user',
|
|
67
81
|
content: message,
|
|
68
82
|
});
|
|
69
|
-
// Build
|
|
70
|
-
const
|
|
71
|
-
|
|
83
|
+
// Build the system message - adapt based on available tools
|
|
84
|
+
const hasTools = this.tools.size > 0;
|
|
85
|
+
let fullSystemMessage;
|
|
86
|
+
if (hasTools) {
|
|
87
|
+
const toolDescriptions = this.buildToolDescriptions();
|
|
88
|
+
fullSystemMessage = `${this.systemMessage}\n\n## Available Tools\n${toolDescriptions}`;
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
fullSystemMessage = this.getNoToolsSystemMessage();
|
|
92
|
+
}
|
|
72
93
|
// Get response from provider (pass all but last user message as history)
|
|
73
94
|
const historyForChat = this.messageHistory.slice(0, -1);
|
|
74
95
|
const response = await this.provider.chat({
|
|
@@ -263,6 +284,33 @@ When you need to use a tool, output a tool call proposal in this format:
|
|
|
263
284
|
- Wait for the result before proposing the next action
|
|
264
285
|
- If you encounter an error, analyze it and try an alternative approach
|
|
265
286
|
- If you need clarification, ask using <needs_clarification>your question</needs_clarification>`;
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Get the system message when no tools are available
|
|
290
|
+
* Used for direct task completion without tool usage
|
|
291
|
+
*/
|
|
292
|
+
getNoToolsSystemMessage() {
|
|
293
|
+
// Use custom system message if provided, otherwise use a simple default
|
|
294
|
+
if (this.systemMessage && this.systemMessage !== this.getDefaultSystemMessage()) {
|
|
295
|
+
return this.systemMessage;
|
|
296
|
+
}
|
|
297
|
+
return `You are an AI assistant that completes tasks directly.
|
|
298
|
+
|
|
299
|
+
## Your Role
|
|
300
|
+
You analyze tasks and provide complete, high-quality outputs.
|
|
301
|
+
|
|
302
|
+
## Output Format
|
|
303
|
+
When you have completed the task, wrap your final output in task_complete tags:
|
|
304
|
+
|
|
305
|
+
<task_complete>
|
|
306
|
+
Your complete output here
|
|
307
|
+
</task_complete>
|
|
308
|
+
|
|
309
|
+
## Guidelines
|
|
310
|
+
1. Analyze the task requirements carefully
|
|
311
|
+
2. Provide a complete and accurate response
|
|
312
|
+
3. Always wrap your final output in <task_complete></task_complete> tags
|
|
313
|
+
4. If you need clarification, ask using <needs_clarification>your question</needs_clarification>`;
|
|
266
314
|
}
|
|
267
315
|
/**
|
|
268
316
|
* Reset the conversation state
|
|
@@ -271,4 +319,4 @@ When you need to use a tool, output a tool call proposal in this format:
|
|
|
271
319
|
this.messageHistory = [];
|
|
272
320
|
}
|
|
273
321
|
}
|
|
274
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
322
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhZ2VudC5jbGFzc2VzLmRyaXZlcmFnZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRhZ2VudC5jbGFzc2VzLmRyaXZlcmFnZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxVQUFVLE1BQU0sNEJBQTRCLENBQUM7QUFHekQ7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLFdBQVc7SUFDZCxRQUFRLENBQWtDO0lBQzFDLGFBQWEsQ0FBUztJQUN0QixjQUFjLEdBQWtDLEVBQUUsQ0FBQztJQUNuRCxLQUFLLEdBQWlDLElBQUksR0FBRyxFQUFFLENBQUM7SUFFeEQsWUFDRSxRQUF5QyxFQUN6QyxhQUFzQjtRQUV0QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsSUFBSSxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztJQUN2RSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxZQUFZLENBQUMsSUFBcUI7UUFDdkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxRQUFRO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBWTtRQUNqQyx3QkFBd0I7UUFDeEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFFekIsa0RBQWtEO1FBQ2xELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNyQyxJQUFJLFdBQW1CLENBQUM7UUFDeEIsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLFdBQVcsR0FBRyxTQUFTLElB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
|
|
@@ -14,6 +14,7 @@ export declare class DualAgentOrchestrator {
|
|
|
14
14
|
private tools;
|
|
15
15
|
private isRunning;
|
|
16
16
|
private conversationHistory;
|
|
17
|
+
private ownsSmartAi;
|
|
17
18
|
constructor(options: interfaces.IDualAgentOptions);
|
|
18
19
|
/**
|
|
19
20
|
* Get provider by name
|
|
@@ -27,6 +28,11 @@ export declare class DualAgentOrchestrator {
|
|
|
27
28
|
* Register all standard tools
|
|
28
29
|
*/
|
|
29
30
|
registerStandardTools(): void;
|
|
31
|
+
/**
|
|
32
|
+
* Register a scoped filesystem tool that can only access files within the specified directory
|
|
33
|
+
* @param basePath The directory to scope filesystem operations to
|
|
34
|
+
*/
|
|
35
|
+
registerScopedFilesystemTool(basePath: string): void;
|
|
30
36
|
/**
|
|
31
37
|
* Initialize all tools (eager loading)
|
|
32
38
|
*/
|
|
@@ -22,6 +22,7 @@ export class DualAgentOrchestrator {
|
|
|
22
22
|
tools = new Map();
|
|
23
23
|
isRunning = false;
|
|
24
24
|
conversationHistory = [];
|
|
25
|
+
ownsSmartAi = true; // true if we created the SmartAi instance, false if it was provided
|
|
25
26
|
constructor(options) {
|
|
26
27
|
this.options = {
|
|
27
28
|
maxIterations: 20,
|
|
@@ -29,16 +30,16 @@ export class DualAgentOrchestrator {
|
|
|
29
30
|
defaultProvider: 'openai',
|
|
30
31
|
...options,
|
|
31
32
|
};
|
|
32
|
-
//
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
33
|
+
// Use existing SmartAi instance if provided, otherwise create a new one
|
|
34
|
+
if (options.smartAiInstance) {
|
|
35
|
+
this.smartai = options.smartAiInstance;
|
|
36
|
+
this.ownsSmartAi = false; // Don't manage lifecycle of provided instance
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
this.smartai = new plugins.smartai.SmartAi(options);
|
|
40
|
+
this.ownsSmartAi = true;
|
|
41
|
+
}
|
|
42
|
+
// Note: Don't access providers here - they don't exist until start() is called
|
|
42
43
|
}
|
|
43
44
|
/**
|
|
44
45
|
* Get provider by name
|
|
@@ -68,8 +69,13 @@ export class DualAgentOrchestrator {
|
|
|
68
69
|
*/
|
|
69
70
|
registerTool(tool) {
|
|
70
71
|
this.tools.set(tool.name, tool);
|
|
71
|
-
|
|
72
|
-
this.
|
|
72
|
+
// Register with agents if they exist (they're created in start())
|
|
73
|
+
if (this.driver) {
|
|
74
|
+
this.driver.registerTool(tool);
|
|
75
|
+
}
|
|
76
|
+
if (this.guardian) {
|
|
77
|
+
this.guardian.registerTool(tool);
|
|
78
|
+
}
|
|
73
79
|
}
|
|
74
80
|
/**
|
|
75
81
|
* Register all standard tools
|
|
@@ -86,12 +92,35 @@ export class DualAgentOrchestrator {
|
|
|
86
92
|
this.registerTool(tool);
|
|
87
93
|
}
|
|
88
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* Register a scoped filesystem tool that can only access files within the specified directory
|
|
97
|
+
* @param basePath The directory to scope filesystem operations to
|
|
98
|
+
*/
|
|
99
|
+
registerScopedFilesystemTool(basePath) {
|
|
100
|
+
const scopedTool = new FilesystemTool({ basePath });
|
|
101
|
+
this.registerTool(scopedTool);
|
|
102
|
+
}
|
|
89
103
|
/**
|
|
90
104
|
* Initialize all tools (eager loading)
|
|
91
105
|
*/
|
|
92
106
|
async start() {
|
|
93
|
-
// Start smartai
|
|
94
|
-
|
|
107
|
+
// Start smartai only if we created it (external instances should already be started)
|
|
108
|
+
if (this.ownsSmartAi) {
|
|
109
|
+
await this.smartai.start();
|
|
110
|
+
}
|
|
111
|
+
// NOW get providers (after they've been initialized by smartai.start())
|
|
112
|
+
this.driverProvider = this.getProviderByName(this.options.defaultProvider);
|
|
113
|
+
this.guardianProvider = this.options.guardianProvider
|
|
114
|
+
? this.getProviderByName(this.options.guardianProvider)
|
|
115
|
+
: this.driverProvider;
|
|
116
|
+
// NOW create agents with initialized providers
|
|
117
|
+
this.driver = new DriverAgent(this.driverProvider, this.options.driverSystemMessage);
|
|
118
|
+
this.guardian = new GuardianAgent(this.guardianProvider, this.options.guardianPolicyPrompt);
|
|
119
|
+
// Register any tools that were added before start() with the agents
|
|
120
|
+
for (const tool of this.tools.values()) {
|
|
121
|
+
this.driver.registerTool(tool);
|
|
122
|
+
this.guardian.registerTool(tool);
|
|
123
|
+
}
|
|
95
124
|
// Initialize all tools
|
|
96
125
|
const initPromises = [];
|
|
97
126
|
for (const tool of this.tools.values()) {
|
|
@@ -109,9 +138,14 @@ export class DualAgentOrchestrator {
|
|
|
109
138
|
cleanupPromises.push(tool.cleanup());
|
|
110
139
|
}
|
|
111
140
|
await Promise.all(cleanupPromises);
|
|
112
|
-
|
|
141
|
+
// Only stop smartai if we created it (don't stop external instances)
|
|
142
|
+
if (this.ownsSmartAi) {
|
|
143
|
+
await this.smartai.stop();
|
|
144
|
+
}
|
|
113
145
|
this.isRunning = false;
|
|
114
|
-
this.driver
|
|
146
|
+
if (this.driver) {
|
|
147
|
+
this.driver.reset();
|
|
148
|
+
}
|
|
115
149
|
}
|
|
116
150
|
/**
|
|
117
151
|
* Run a task through the dual-agent system
|
|
@@ -297,4 +331,4 @@ export class DualAgentOrchestrator {
|
|
|
297
331
|
return Array.from(this.tools.keys());
|
|
298
332
|
}
|
|
299
333
|
}
|
|
300
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhZ2VudC5jbGFzc2VzLmR1YWxhZ2VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0YWdlbnQuY2xhc3Nlcy5kdWFsYWdlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxLQUFLLFVBQVUsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXREOzs7R0FHRztBQUNILE1BQU0sT0FBTyxxQkFBcUI7SUFDeEIsT0FBTyxDQUErQjtJQUN0QyxPQUFPLENBQTBCO0lBQ2pDLGNBQWMsQ0FBa0M7SUFDaEQsZ0JBQWdCLENBQWtDO0lBQ2xELE1BQU0sQ0FBYztJQUNwQixRQUFRLENBQWdCO0lBQ3hCLEtBQUssR0FBaUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNoRCxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ2xCLG1CQUFtQixHQUErQixFQUFFLENBQUM7SUFFN0QsWUFBWSxPQUFxQztRQUMvQyxJQUFJLENBQUMsT0FBTyxHQUFHO1lBQ2IsYUFBYSxFQUFFLEVBQUU7WUFDakIsd0JBQXdCLEVBQUUsQ0FBQztZQUMzQixlQUFlLEVBQUUsUUFBUTtZQUN6QixHQUFHLE9BQU87U0FDWCxDQUFDO1FBRUYsMEJBQTBCO1FBQzFCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVwRCxnQkFBZ0I7UUFDaEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFnQixDQUFDLENBQUM7UUFDNUUsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCO1lBQ25ELENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQztZQUN2RCxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUV4QixnQkFBZ0I7UUFDaEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFRDs7T0FFRztJQUNLLGlCQUFpQixDQUFDLFlBQXVDO1FBQy9ELFFBQVEsWUFBWSxFQUFFLENBQUM7WUFDckIsS0FBSyxRQUFRO2dCQUNYLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7WUFDckMsS0FBSyxXQUFXO2dCQUNkLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztZQUN4QyxLQUFLLFlBQVk7Z0JBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDO1lBQ3pDLEtBQUssUUFBUTtnQkFDWCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDO1lBQ3JDLEtBQUssTUFBTTtnQkFDVCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDO1lBQ25DLEtBQUssS0FBSztnQkFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO1lBQ2xDLEtBQUssS0FBSztnQkFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO1lBQ2xDO2dCQUNFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7UUFDdkMsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNJLFlBQVksQ0FBQyxJQUFxQjtRQUN2QyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRDs7T0FFRztJQUNJLHFCQUFxQjtRQUMxQixNQUFNLGFBQWEsR0FBRztZQUNwQixJQUFJLGNBQWMsRUFBRTtZQUNwQixJQUFJLFFBQVEsRUFBRTtZQUNkLElBQUksU0FBUyxFQUFFO1lBQ2YsSUFBSSxXQUFXLEVBQUU7WUFDakIsSUFBSSxRQUFRLEVBQUU7U0FDZixDQUFDO1FBRUYsS0FBSyxNQUFNLElBQUksSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsS0FBSztRQUNoQixnQkFBZ0I7UUFDaEIsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRTNCLHVCQUF1QjtRQUN2QixNQUFNLFlBQVksR0FBb0IsRUFBRSxDQUFDO1FBQ3pDLEtBQUssTUFBTSxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO1lBQ3ZDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUVELE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztJQUN4QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsSUFBSTtRQUNmLE1BQU0sZUFBZSxHQUFvQixFQUFFLENBQUM7UUFFNUMsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7WUFDdkMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBRUQsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ25DLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBWTtRQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsK0NBQStDLENBQUMsQ0FBQztRQUNuRSxDQUFDO1FBRUQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztRQUM5QixJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDbkIsSUFBSSxxQkFBcUIsR0FBRyxDQUFDLENBQUM7UUFDOUIsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksV0FBVyxHQUFrQixJQUFJLENBQUM7UUFFdEMsOEJBQThCO1FBQzlCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUM7WUFDNUIsSUFBSSxFQUFFLE1BQU07WUFDWixPQUFPLEVBQUUsSUFBSTtTQUNkLENBQUMsQ0FBQztRQUVILGlDQUFpQztRQUNqQyxJQUFJLGNBQWMsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFOUMsT0FDRSxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFjO1lBQ3hDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsd0JBQXlCO1lBQzlELENBQUMsU0FBUyxFQUNWLENBQUM7WUFDRCxVQUFVLEVBQUUsQ0FBQztZQUViLDRCQUE0QjtZQUM1QixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUN2RCxTQUFTLEdBQUcsSUFBSSxDQUFDO2dCQUNqQixXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksY0FBYyxDQUFDLE9BQU8sQ0FBQztnQkFDOUYsTUFBTTtZQUNSLENBQUM7WUFFRCxzQ0FBc0M7WUFDdEMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUMzRCwwQ0FBMEM7Z0JBQzFDLE9BQU87b0JBQ0wsT0FBTyxFQUFFLEtBQUs7b0JBQ2QsU0FBUyxFQUFFLEtBQUs7b0JBQ2hCLE1BQU0sRUFBRSxjQUFjLENBQUMsT0FBTztvQkFDOUIsVUFBVTtvQkFDVixPQUFPLEVBQUUsSUFBSSxDQUFDLG1CQUFtQjtvQkFDakMsTUFBTSxFQUFFLHNCQUFzQjtpQkFDL0IsQ0FBQztZQUNKLENBQUM7WUFFRCw0QkFBNEI7WUFDNUIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFN0UsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUMzQiwyQ0FBMkM7Z0JBQzNDLGNBQWMsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQ3BELDJJQUEySSxDQUM1SSxDQUFDO2dCQUNGLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQzlDLFNBQVM7WUFDWCxDQUFDO1lBRUQsNkNBQTZDO1lBQzdDLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUU5Qix5QkFBeUI7WUFDekIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDNUQsSUFBSSxRQUFzQyxDQUFDO1lBRTNDLElBQUksYUFBYSxFQUFFLENBQUM7Z0JBQ2xCLFFBQVEsR0FBRyxhQUFhLENBQUM7WUFDM0IsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLHFCQUFxQjtnQkFDckIsUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzFELENBQUM7WUFFRCxJQUFJLFFBQVEsQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQ3BDLHFCQUFxQixHQUFHLENBQUMsQ0FBQztnQkFFMUIsbUJBQW1CO2dCQUNuQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQy9DLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDVixNQUFNLFlBQVksR0FBRyxTQUFTLFFBQVEsQ0FBQyxRQUFRLGNBQWMsQ0FBQztvQkFDOUQsY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FDcEQsZUFBZSxZQUFZLHNDQUFzQyxDQUNsRSxDQUFDO29CQUNGLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7b0JBQzlDLFNBQVM7Z0JBQ1gsQ0FBQztnQkFFRCxJQUFJLENBQUM7b0JBQ0gsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUVwRSx3QkFBd0I7b0JBQ3hCLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxPQUFPO3dCQUNsQyxDQUFDLENBQUMsZ0JBQWdCLFFBQVEsQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFO3dCQUNyRyxDQUFDLENBQUMsZUFBZSxRQUFRLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxNQUFNLE9BQU8sTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUU3RSxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDO3dCQUM1QixJQUFJLEVBQUUsUUFBUTt3QkFDZCxPQUFPLEVBQUUsYUFBYTt3QkFDdEIsUUFBUSxFQUFFLFFBQVE7d0JBQ2xCLFVBQVUsRUFBRSxNQUFNO3FCQUNuQixDQUFDLENBQUM7b0JBRUgsY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztvQkFDdEUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDaEQsQ0FBQztnQkFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO29CQUNmLE1BQU0sWUFBWSxHQUFHLDBCQUEwQixLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDeEcsY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FDcEQsZUFBZSxZQUFZLHNDQUFzQyxDQUNsRSxDQUFDO29CQUNGLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQ2hELENBQUM7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sV0FBVztnQkFDWCxxQkFBcUIsRUFBRSxDQUFDO2dCQUV4QiwyQkFBMkI7Z0JBQzNCLElBQUksUUFBUSxHQUFHLG1DQUFtQyxDQUFDO2dCQUNuRCxRQUFRLElBQUksYUFBYSxRQUFRLENBQUMsTUFBTSxJQUFJLENBQUM7Z0JBRTdDLElBQUksUUFBUSxDQUFDLFFBQVEsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDdEQsUUFBUSxJQUFJLGdCQUFnQixRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDcEYsQ0FBQztnQkFFRCxJQUFJLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztvQkFDekIsUUFBUSxJQUFJLGtCQUFrQixRQUFRLENBQUMsV0FBVyxJQUFJLENBQUM7Z0JBQ3pELENBQUM7Z0JBRUQsUUFBUSxJQUFJLHNEQUFzRCxDQUFDO2dCQUVuRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDO29CQUM1QixJQUFJLEVBQUUsUUFBUTtvQkFDZCxPQUFPLEVBQUUsUUFBUTtvQkFDakIsUUFBUSxFQUFFLFFBQVE7b0JBQ2xCLGdCQUFnQixFQUFFLFFBQVE7aUJBQzNCLENBQUMsQ0FBQztnQkFFSCxjQUFjLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNqRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ2hELENBQUM7UUFDSCxDQUFDO1FBRUQseUJBQXlCO1FBQ3pCLElBQUksTUFBTSxHQUFtQyxXQUFXLENBQUM7UUFDekQsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2YsSUFBSSxVQUFVLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFjLEVBQUUsQ0FBQztnQkFDOUMsTUFBTSxHQUFHLHdCQUF3QixDQUFDO1lBQ3BDLENBQUM7aUJBQU0sSUFBSSxxQkFBcUIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLHdCQUF5QixFQUFFLENBQUM7Z0JBQzNFLE1BQU0sR0FBRyx3QkFBd0IsQ0FBQztZQUNwQyxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU87WUFDTCxPQUFPLEVBQUUsU0FBUztZQUNsQixTQUFTO1lBQ1QsTUFBTSxFQUFFLFdBQVcsSUFBSSxjQUFjLENBQUMsT0FBTztZQUM3QyxVQUFVO1lBQ1YsT0FBTyxFQUFFLElBQUksQ0FBQyxtQkFBbUI7WUFDakMsTUFBTTtTQUNQLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsWUFBWSxDQUFDLFNBQWlCO1FBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1FBQ25FLENBQUM7UUFFRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDO1lBQzVCLElBQUksRUFBRSxNQUFNO1lBQ1osT0FBTyxFQUFFLFNBQVM7U0FDbkIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxjQUFjLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFOUMsd0JBQXdCO1FBQ3hCLHlGQUF5RjtRQUN6RixPQUFPO1lBQ0wsT0FBTyxFQUFFLEtBQUs7WUFDZCxTQUFTLEVBQUUsS0FBSztZQUNoQixNQUFNLEVBQUUsY0FBYyxDQUFDLE9BQU87WUFDOUIsVUFBVSxFQUFFLENBQUM7WUFDYixPQUFPLEVBQUUsSUFBSSxDQUFDLG1CQUFtQjtZQUNqQyxNQUFNLEVBQUUsYUFBYTtTQUN0QixDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0ksVUFBVTtRQUNmLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7T0FFRztJQUNJLGlCQUFpQixDQUFDLFlBQW9CO1FBQzNDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7T0FFRztJQUNJLFFBQVE7UUFDYixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksWUFBWTtRQUNqQixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7Q0FDRiJ9
|
|
334
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhZ2VudC5jbGFzc2VzLmR1YWxhZ2VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3NtYXJ0YWdlbnQuY2xhc3Nlcy5kdWFsYWdlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxLQUFLLFVBQVUsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXREOzs7R0FHRztBQUNILE1BQU0sT0FBTyxxQkFBcUI7SUFDeEIsT0FBTyxDQUErQjtJQUN0QyxPQUFPLENBQTBCO0lBQ2pDLGNBQWMsQ0FBa0M7SUFDaEQsZ0JBQWdCLENBQWtDO0lBQ2xELE1BQU0sQ0FBYztJQUNwQixRQUFRLENBQWdCO0lBQ3hCLEtBQUssR0FBaUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNoRCxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ2xCLG1CQUFtQixHQUErQixFQUFFLENBQUM7SUFDckQsV0FBVyxHQUFHLElBQUksQ0FBQyxDQUFDLG9FQUFvRTtJQUVoRyxZQUFZLE9BQXFDO1FBQy9DLElBQUksQ0FBQyxPQUFPLEdBQUc7WUFDYixhQUFhLEVBQUUsRUFBRTtZQUNqQix3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
|
|
@@ -3,6 +3,8 @@ import * as plugins from './plugins.js';
|
|
|
3
3
|
* Configuration options for the DualAgentOrchestrator
|
|
4
4
|
*/
|
|
5
5
|
export interface IDualAgentOptions extends plugins.smartai.ISmartAiOptions {
|
|
6
|
+
/** Existing SmartAi instance to reuse (avoids creating duplicate providers) */
|
|
7
|
+
smartAiInstance?: plugins.smartai.SmartAi;
|
|
6
8
|
/** Name of the agent system */
|
|
7
9
|
name?: string;
|
|
8
10
|
/** Default AI provider for both Driver and Guardian */
|
|
@@ -5,4 +5,4 @@ import * as plugins from './plugins.js';
|
|
|
5
5
|
export function generateProposalId() {
|
|
6
6
|
return `proposal_${Date.now()}_${Math.random().toString(36).substring(2, 9)}`;
|
|
7
7
|
}
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhZ2VudC5pbnRlcmZhY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRhZ2VudC5pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBOE14Qzs7R0FFRztBQUNILE1BQU0sVUFBVSxrQkFBa0I7SUFDaEMsT0FBTyxZQUFZLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUNoRixDQUFDIn0=
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import * as interfaces from './smartagent.interfaces.js';
|
|
2
2
|
import { BaseToolWrapper } from './smartagent.tools.base.js';
|
|
3
|
+
/**
|
|
4
|
+
* Options for FilesystemTool
|
|
5
|
+
*/
|
|
6
|
+
export interface IFilesystemToolOptions {
|
|
7
|
+
/** Base path to scope all operations to. If set, all paths must be within this directory. */
|
|
8
|
+
basePath?: string;
|
|
9
|
+
}
|
|
3
10
|
/**
|
|
4
11
|
* Filesystem tool for file and directory operations
|
|
5
12
|
* Wraps @push.rocks/smartfs
|
|
@@ -7,6 +14,14 @@ import { BaseToolWrapper } from './smartagent.tools.base.js';
|
|
|
7
14
|
export declare class FilesystemTool extends BaseToolWrapper {
|
|
8
15
|
name: string;
|
|
9
16
|
description: string;
|
|
17
|
+
/** Base path to scope all operations to */
|
|
18
|
+
private basePath?;
|
|
19
|
+
constructor(options?: IFilesystemToolOptions);
|
|
20
|
+
/**
|
|
21
|
+
* Validate that a path is within the allowed base path
|
|
22
|
+
* @throws Error if path is outside allowed directory
|
|
23
|
+
*/
|
|
24
|
+
private validatePath;
|
|
10
25
|
actions: interfaces.IToolAction[];
|
|
11
26
|
private smartfs;
|
|
12
27
|
initialize(): Promise<void>;
|
|
@@ -8,6 +8,28 @@ import { BaseToolWrapper } from './smartagent.tools.base.js';
|
|
|
8
8
|
export class FilesystemTool extends BaseToolWrapper {
|
|
9
9
|
name = 'filesystem';
|
|
10
10
|
description = 'Read, write, list, and delete files and directories';
|
|
11
|
+
/** Base path to scope all operations to */
|
|
12
|
+
basePath;
|
|
13
|
+
constructor(options) {
|
|
14
|
+
super();
|
|
15
|
+
if (options?.basePath) {
|
|
16
|
+
this.basePath = plugins.path.resolve(options.basePath);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Validate that a path is within the allowed base path
|
|
21
|
+
* @throws Error if path is outside allowed directory
|
|
22
|
+
*/
|
|
23
|
+
validatePath(pathArg) {
|
|
24
|
+
const resolved = plugins.path.resolve(pathArg);
|
|
25
|
+
if (this.basePath) {
|
|
26
|
+
// Ensure the resolved path starts with the base path
|
|
27
|
+
if (!resolved.startsWith(this.basePath + plugins.path.sep) && resolved !== this.basePath) {
|
|
28
|
+
throw new Error(`Access denied: path "${pathArg}" is outside allowed directory "${this.basePath}"`);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return resolved;
|
|
32
|
+
}
|
|
11
33
|
actions = [
|
|
12
34
|
{
|
|
13
35
|
name: 'read',
|
|
@@ -162,9 +184,10 @@ export class FilesystemTool extends BaseToolWrapper {
|
|
|
162
184
|
try {
|
|
163
185
|
switch (action) {
|
|
164
186
|
case 'read': {
|
|
187
|
+
const validatedPath = this.validatePath(params.path);
|
|
165
188
|
const encoding = params.encoding || 'utf8';
|
|
166
189
|
const content = await this.smartfs
|
|
167
|
-
.file(
|
|
190
|
+
.file(validatedPath)
|
|
168
191
|
.encoding(encoding)
|
|
169
192
|
.read();
|
|
170
193
|
return {
|
|
@@ -177,9 +200,10 @@ export class FilesystemTool extends BaseToolWrapper {
|
|
|
177
200
|
};
|
|
178
201
|
}
|
|
179
202
|
case 'write': {
|
|
203
|
+
const validatedPath = this.validatePath(params.path);
|
|
180
204
|
const encoding = params.encoding || 'utf8';
|
|
181
205
|
await this.smartfs
|
|
182
|
-
.file(
|
|
206
|
+
.file(validatedPath)
|
|
183
207
|
.encoding(encoding)
|
|
184
208
|
.write(params.content);
|
|
185
209
|
return {
|
|
@@ -192,7 +216,8 @@ export class FilesystemTool extends BaseToolWrapper {
|
|
|
192
216
|
};
|
|
193
217
|
}
|
|
194
218
|
case 'append': {
|
|
195
|
-
|
|
219
|
+
const validatedPath = this.validatePath(params.path);
|
|
220
|
+
await this.smartfs.file(validatedPath).append(params.content);
|
|
196
221
|
return {
|
|
197
222
|
success: true,
|
|
198
223
|
result: {
|
|
@@ -202,7 +227,8 @@ export class FilesystemTool extends BaseToolWrapper {
|
|
|
202
227
|
};
|
|
203
228
|
}
|
|
204
229
|
case 'list': {
|
|
205
|
-
|
|
230
|
+
const validatedPath = this.validatePath(params.path);
|
|
231
|
+
let dir = this.smartfs.directory(validatedPath);
|
|
206
232
|
if (params.recursive) {
|
|
207
233
|
dir = dir.recursive();
|
|
208
234
|
}
|
|
@@ -220,34 +246,35 @@ export class FilesystemTool extends BaseToolWrapper {
|
|
|
220
246
|
};
|
|
221
247
|
}
|
|
222
248
|
case 'delete': {
|
|
223
|
-
const
|
|
249
|
+
const validatedPath = this.validatePath(params.path);
|
|
224
250
|
// Check if it's a directory or file
|
|
225
|
-
const exists = await this.smartfs.file(
|
|
251
|
+
const exists = await this.smartfs.file(validatedPath).exists();
|
|
226
252
|
if (exists) {
|
|
227
253
|
// Try to get stats to check if it's a directory
|
|
228
254
|
try {
|
|
229
|
-
const stats = await this.smartfs.file(
|
|
255
|
+
const stats = await this.smartfs.file(validatedPath).stat();
|
|
230
256
|
if (stats.isDirectory && params.recursive) {
|
|
231
|
-
await this.smartfs.directory(
|
|
257
|
+
await this.smartfs.directory(validatedPath).recursive().delete();
|
|
232
258
|
}
|
|
233
259
|
else {
|
|
234
|
-
await this.smartfs.file(
|
|
260
|
+
await this.smartfs.file(validatedPath).delete();
|
|
235
261
|
}
|
|
236
262
|
}
|
|
237
263
|
catch {
|
|
238
|
-
await this.smartfs.file(
|
|
264
|
+
await this.smartfs.file(validatedPath).delete();
|
|
239
265
|
}
|
|
240
266
|
}
|
|
241
267
|
return {
|
|
242
268
|
success: true,
|
|
243
269
|
result: {
|
|
244
|
-
path,
|
|
270
|
+
path: params.path,
|
|
245
271
|
deleted: true,
|
|
246
272
|
},
|
|
247
273
|
};
|
|
248
274
|
}
|
|
249
275
|
case 'exists': {
|
|
250
|
-
const
|
|
276
|
+
const validatedPath = this.validatePath(params.path);
|
|
277
|
+
const exists = await this.smartfs.file(validatedPath).exists();
|
|
251
278
|
return {
|
|
252
279
|
success: true,
|
|
253
280
|
result: {
|
|
@@ -257,7 +284,8 @@ export class FilesystemTool extends BaseToolWrapper {
|
|
|
257
284
|
};
|
|
258
285
|
}
|
|
259
286
|
case 'stat': {
|
|
260
|
-
const
|
|
287
|
+
const validatedPath = this.validatePath(params.path);
|
|
288
|
+
const stats = await this.smartfs.file(validatedPath).stat();
|
|
261
289
|
return {
|
|
262
290
|
success: true,
|
|
263
291
|
result: {
|
|
@@ -267,7 +295,9 @@ export class FilesystemTool extends BaseToolWrapper {
|
|
|
267
295
|
};
|
|
268
296
|
}
|
|
269
297
|
case 'copy': {
|
|
270
|
-
|
|
298
|
+
const validatedSource = this.validatePath(params.source);
|
|
299
|
+
const validatedDest = this.validatePath(params.destination);
|
|
300
|
+
await this.smartfs.file(validatedSource).copy(validatedDest);
|
|
271
301
|
return {
|
|
272
302
|
success: true,
|
|
273
303
|
result: {
|
|
@@ -278,7 +308,9 @@ export class FilesystemTool extends BaseToolWrapper {
|
|
|
278
308
|
};
|
|
279
309
|
}
|
|
280
310
|
case 'move': {
|
|
281
|
-
|
|
311
|
+
const validatedSource = this.validatePath(params.source);
|
|
312
|
+
const validatedDest = this.validatePath(params.destination);
|
|
313
|
+
await this.smartfs.file(validatedSource).move(validatedDest);
|
|
282
314
|
return {
|
|
283
315
|
success: true,
|
|
284
316
|
result: {
|
|
@@ -289,7 +321,8 @@ export class FilesystemTool extends BaseToolWrapper {
|
|
|
289
321
|
};
|
|
290
322
|
}
|
|
291
323
|
case 'mkdir': {
|
|
292
|
-
|
|
324
|
+
const validatedPath = this.validatePath(params.path);
|
|
325
|
+
let dir = this.smartfs.directory(validatedPath);
|
|
293
326
|
if (params.recursive !== false) {
|
|
294
327
|
dir = dir.recursive();
|
|
295
328
|
}
|
|
@@ -349,4 +382,4 @@ export class FilesystemTool extends BaseToolWrapper {
|
|
|
349
382
|
}
|
|
350
383
|
}
|
|
351
384
|
}
|
|
352
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhZ2VudC50b29scy5maWxlc3lzdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRhZ2VudC50b29scy5maWxlc3lzdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxVQUFVLE1BQU0sNEJBQTRCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTdEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxjQUFlLFNBQVEsZUFBZTtJQUMxQyxJQUFJLEdBQUcsWUFBWSxDQUFDO0lBQ3BCLFdBQVcsR0FBRyxxREFBcUQsQ0FBQztJQUVwRSxPQUFPLEdBQTZCO1FBQ3pDO1lBQ0UsSUFBSSxFQUFFLE1BQU07WUFDWixXQUFXLEVBQUUsNkJBQTZCO1lBQzFDLFVBQVUsRUFBRTtnQkFDVixJQUFJLEVBQUUsUUFBUTtnQkFDZCxVQUFVLEVBQUU7b0JBQ1YsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsMkJBQTJCLEVBQUU7b0JBQ2xFLFFBQVEsRUFBRTt3QkFDUixJQUFJLEVBQUUsUUFBUTt3QkFDZCxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQzt3QkFDbEMsT0FBTyxFQUFFLE1BQU07d0JBQ2YsV0FBVyxFQUFFLGVBQWU7cUJBQzdCO2lCQUNGO2dCQUNELFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQzthQUNuQjtTQUNGO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsT0FBTztZQUNiLFdBQVcsRUFBRSxpREFBaUQ7WUFDOUQsVUFBVSxFQUFFO2dCQUNWLElBQUksRUFBRSxRQUFRO2dCQUNkLFVBQVUsRUFBRTtvQkFDVixJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSwyQkFBMkIsRUFBRTtvQkFDbEUsT0FBTyxF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
|
|
385
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhZ2VudC50b29scy5maWxlc3lzdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRhZ2VudC50b29scy5maWxlc3lzdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxVQUFVLE1BQU0sNEJBQTRCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBVTdEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxjQUFlLFNBQVEsZUFBZTtJQUMxQyxJQUFJLEdBQUcsWUFBWSxDQUFDO0lBQ3BCLFdBQVcsR0FBRyxxREFBcUQsQ0FBQztJQUUzRSwyQ0FBMkM7SUFDbkMsUUFBUSxDQUFVO0lBRTFCLFlBQVksT0FBZ0M7UUFDMUMsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6RCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNLLFlBQVksQ0FBQyxPQUFlO1FBQ2xDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9DLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLHFEQUFxRDtZQUNyRCxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksUUFBUSxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDekYsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsT0FBTyxtQ0FBbUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxD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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@push.rocks/smartagent",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.2",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "an agentic framework built on top of @push.rocks/smartai",
|
|
6
6
|
"main": "dist_ts/index.js",
|
|
@@ -8,11 +8,6 @@
|
|
|
8
8
|
"type": "module",
|
|
9
9
|
"author": "Task Venture Capital GmbH",
|
|
10
10
|
"license": "MIT",
|
|
11
|
-
"scripts": {
|
|
12
|
-
"test": "(tstest test/ --verbose)",
|
|
13
|
-
"build": "(tsbuild --web --allowimplicitany)",
|
|
14
|
-
"buildDocs": "(tsdoc)"
|
|
15
|
-
},
|
|
16
11
|
"devDependencies": {
|
|
17
12
|
"@git.zone/tsbuild": "^4.0.2",
|
|
18
13
|
"@git.zone/tsbundle": "^2.6.3",
|
|
@@ -28,7 +23,6 @@
|
|
|
28
23
|
"@push.rocks/smartrequest": "^5.0.1",
|
|
29
24
|
"@push.rocks/smartshell": "^3.3.0"
|
|
30
25
|
},
|
|
31
|
-
"packageManager": "pnpm@10.18.1+sha512.77a884a165cbba2d8d1c19e3b4880eee6d2fcabd0d879121e282196b80042351d5eb3ca0935fa599da1dc51265cc68816ad2bddd2a2de5ea9fdf92adbec7cd34",
|
|
32
26
|
"repository": {
|
|
33
27
|
"type": "git",
|
|
34
28
|
"url": "https://code.foss.global/push.rocks/smartagent.git"
|
|
@@ -49,7 +43,9 @@
|
|
|
49
43
|
"npmextra.json",
|
|
50
44
|
"readme.md"
|
|
51
45
|
],
|
|
52
|
-
"
|
|
53
|
-
"
|
|
46
|
+
"scripts": {
|
|
47
|
+
"test": "(tstest test/ --verbose)",
|
|
48
|
+
"build": "(tsbuild --web --allowimplicitany)",
|
|
49
|
+
"buildDocs": "(tsdoc)"
|
|
54
50
|
}
|
|
55
|
-
}
|
|
51
|
+
}
|
package/ts/index.ts
CHANGED
|
@@ -11,7 +11,7 @@ export { GuardianAgent } from './smartagent.classes.guardianagent.js';
|
|
|
11
11
|
export { BaseToolWrapper } from './smartagent.tools.base.js';
|
|
12
12
|
|
|
13
13
|
// Export standard tools
|
|
14
|
-
export { FilesystemTool } from './smartagent.tools.filesystem.js';
|
|
14
|
+
export { FilesystemTool, type IFilesystemToolOptions } from './smartagent.tools.filesystem.js';
|
|
15
15
|
export { HttpTool } from './smartagent.tools.http.js';
|
|
16
16
|
export { ShellTool } from './smartagent.tools.shell.js';
|
|
17
17
|
export { BrowserTool } from './smartagent.tools.browser.js';
|
package/ts/plugins.ts
CHANGED
|
@@ -41,8 +41,14 @@ export class DriverAgent {
|
|
|
41
41
|
// Reset message history
|
|
42
42
|
this.messageHistory = [];
|
|
43
43
|
|
|
44
|
-
// Build the user message
|
|
45
|
-
const
|
|
44
|
+
// Build the user message based on available tools
|
|
45
|
+
const hasTools = this.tools.size > 0;
|
|
46
|
+
let userMessage: string;
|
|
47
|
+
if (hasTools) {
|
|
48
|
+
userMessage = `TASK: ${task}\n\nAnalyze this task and determine what actions are needed. If you need to use a tool, provide a tool call proposal.`;
|
|
49
|
+
} else {
|
|
50
|
+
userMessage = `TASK: ${task}\n\nComplete this task directly. When done, wrap your final output in <task_complete>your output here</task_complete> tags.`;
|
|
51
|
+
}
|
|
46
52
|
|
|
47
53
|
// Add to history
|
|
48
54
|
this.messageHistory.push({
|
|
@@ -50,9 +56,15 @@ export class DriverAgent {
|
|
|
50
56
|
content: userMessage,
|
|
51
57
|
});
|
|
52
58
|
|
|
53
|
-
// Build
|
|
54
|
-
|
|
55
|
-
|
|
59
|
+
// Build the system message - adapt based on available tools
|
|
60
|
+
let fullSystemMessage: string;
|
|
61
|
+
if (hasTools) {
|
|
62
|
+
const toolDescriptions = this.buildToolDescriptions();
|
|
63
|
+
fullSystemMessage = `${this.systemMessage}\n\n## Available Tools\n${toolDescriptions}`;
|
|
64
|
+
} else {
|
|
65
|
+
// Use a simpler system message when no tools are available
|
|
66
|
+
fullSystemMessage = this.getNoToolsSystemMessage();
|
|
67
|
+
}
|
|
56
68
|
|
|
57
69
|
// Get response from provider
|
|
58
70
|
const response = await this.provider.chat({
|
|
@@ -83,9 +95,15 @@ export class DriverAgent {
|
|
|
83
95
|
content: message,
|
|
84
96
|
});
|
|
85
97
|
|
|
86
|
-
// Build
|
|
87
|
-
const
|
|
88
|
-
|
|
98
|
+
// Build the system message - adapt based on available tools
|
|
99
|
+
const hasTools = this.tools.size > 0;
|
|
100
|
+
let fullSystemMessage: string;
|
|
101
|
+
if (hasTools) {
|
|
102
|
+
const toolDescriptions = this.buildToolDescriptions();
|
|
103
|
+
fullSystemMessage = `${this.systemMessage}\n\n## Available Tools\n${toolDescriptions}`;
|
|
104
|
+
} else {
|
|
105
|
+
fullSystemMessage = this.getNoToolsSystemMessage();
|
|
106
|
+
}
|
|
89
107
|
|
|
90
108
|
// Get response from provider (pass all but last user message as history)
|
|
91
109
|
const historyForChat = this.messageHistory.slice(0, -1);
|
|
@@ -312,6 +330,35 @@ When you need to use a tool, output a tool call proposal in this format:
|
|
|
312
330
|
- If you need clarification, ask using <needs_clarification>your question</needs_clarification>`;
|
|
313
331
|
}
|
|
314
332
|
|
|
333
|
+
/**
|
|
334
|
+
* Get the system message when no tools are available
|
|
335
|
+
* Used for direct task completion without tool usage
|
|
336
|
+
*/
|
|
337
|
+
private getNoToolsSystemMessage(): string {
|
|
338
|
+
// Use custom system message if provided, otherwise use a simple default
|
|
339
|
+
if (this.systemMessage && this.systemMessage !== this.getDefaultSystemMessage()) {
|
|
340
|
+
return this.systemMessage;
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
return `You are an AI assistant that completes tasks directly.
|
|
344
|
+
|
|
345
|
+
## Your Role
|
|
346
|
+
You analyze tasks and provide complete, high-quality outputs.
|
|
347
|
+
|
|
348
|
+
## Output Format
|
|
349
|
+
When you have completed the task, wrap your final output in task_complete tags:
|
|
350
|
+
|
|
351
|
+
<task_complete>
|
|
352
|
+
Your complete output here
|
|
353
|
+
</task_complete>
|
|
354
|
+
|
|
355
|
+
## Guidelines
|
|
356
|
+
1. Analyze the task requirements carefully
|
|
357
|
+
2. Provide a complete and accurate response
|
|
358
|
+
3. Always wrap your final output in <task_complete></task_complete> tags
|
|
359
|
+
4. If you need clarification, ask using <needs_clarification>your question</needs_clarification>`;
|
|
360
|
+
}
|
|
361
|
+
|
|
315
362
|
/**
|
|
316
363
|
* Reset the conversation state
|
|
317
364
|
*/
|
|
@@ -23,6 +23,7 @@ export class DualAgentOrchestrator {
|
|
|
23
23
|
private tools: Map<string, BaseToolWrapper> = new Map();
|
|
24
24
|
private isRunning = false;
|
|
25
25
|
private conversationHistory: interfaces.IAgentMessage[] = [];
|
|
26
|
+
private ownsSmartAi = true; // true if we created the SmartAi instance, false if it was provided
|
|
26
27
|
|
|
27
28
|
constructor(options: interfaces.IDualAgentOptions) {
|
|
28
29
|
this.options = {
|
|
@@ -32,18 +33,15 @@ export class DualAgentOrchestrator {
|
|
|
32
33
|
...options,
|
|
33
34
|
};
|
|
34
35
|
|
|
35
|
-
//
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
// Create agents
|
|
45
|
-
this.driver = new DriverAgent(this.driverProvider, options.driverSystemMessage);
|
|
46
|
-
this.guardian = new GuardianAgent(this.guardianProvider, options.guardianPolicyPrompt);
|
|
36
|
+
// Use existing SmartAi instance if provided, otherwise create a new one
|
|
37
|
+
if (options.smartAiInstance) {
|
|
38
|
+
this.smartai = options.smartAiInstance;
|
|
39
|
+
this.ownsSmartAi = false; // Don't manage lifecycle of provided instance
|
|
40
|
+
} else {
|
|
41
|
+
this.smartai = new plugins.smartai.SmartAi(options);
|
|
42
|
+
this.ownsSmartAi = true;
|
|
43
|
+
}
|
|
44
|
+
// Note: Don't access providers here - they don't exist until start() is called
|
|
47
45
|
}
|
|
48
46
|
|
|
49
47
|
/**
|
|
@@ -75,8 +73,13 @@ export class DualAgentOrchestrator {
|
|
|
75
73
|
*/
|
|
76
74
|
public registerTool(tool: BaseToolWrapper): void {
|
|
77
75
|
this.tools.set(tool.name, tool);
|
|
78
|
-
|
|
79
|
-
this.
|
|
76
|
+
// Register with agents if they exist (they're created in start())
|
|
77
|
+
if (this.driver) {
|
|
78
|
+
this.driver.registerTool(tool);
|
|
79
|
+
}
|
|
80
|
+
if (this.guardian) {
|
|
81
|
+
this.guardian.registerTool(tool);
|
|
82
|
+
}
|
|
80
83
|
}
|
|
81
84
|
|
|
82
85
|
/**
|
|
@@ -96,12 +99,39 @@ export class DualAgentOrchestrator {
|
|
|
96
99
|
}
|
|
97
100
|
}
|
|
98
101
|
|
|
102
|
+
/**
|
|
103
|
+
* Register a scoped filesystem tool that can only access files within the specified directory
|
|
104
|
+
* @param basePath The directory to scope filesystem operations to
|
|
105
|
+
*/
|
|
106
|
+
public registerScopedFilesystemTool(basePath: string): void {
|
|
107
|
+
const scopedTool = new FilesystemTool({ basePath });
|
|
108
|
+
this.registerTool(scopedTool);
|
|
109
|
+
}
|
|
110
|
+
|
|
99
111
|
/**
|
|
100
112
|
* Initialize all tools (eager loading)
|
|
101
113
|
*/
|
|
102
114
|
public async start(): Promise<void> {
|
|
103
|
-
// Start smartai
|
|
104
|
-
|
|
115
|
+
// Start smartai only if we created it (external instances should already be started)
|
|
116
|
+
if (this.ownsSmartAi) {
|
|
117
|
+
await this.smartai.start();
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// NOW get providers (after they've been initialized by smartai.start())
|
|
121
|
+
this.driverProvider = this.getProviderByName(this.options.defaultProvider!);
|
|
122
|
+
this.guardianProvider = this.options.guardianProvider
|
|
123
|
+
? this.getProviderByName(this.options.guardianProvider)
|
|
124
|
+
: this.driverProvider;
|
|
125
|
+
|
|
126
|
+
// NOW create agents with initialized providers
|
|
127
|
+
this.driver = new DriverAgent(this.driverProvider, this.options.driverSystemMessage);
|
|
128
|
+
this.guardian = new GuardianAgent(this.guardianProvider, this.options.guardianPolicyPrompt);
|
|
129
|
+
|
|
130
|
+
// Register any tools that were added before start() with the agents
|
|
131
|
+
for (const tool of this.tools.values()) {
|
|
132
|
+
this.driver.registerTool(tool);
|
|
133
|
+
this.guardian.registerTool(tool);
|
|
134
|
+
}
|
|
105
135
|
|
|
106
136
|
// Initialize all tools
|
|
107
137
|
const initPromises: Promise<void>[] = [];
|
|
@@ -124,9 +154,16 @@ export class DualAgentOrchestrator {
|
|
|
124
154
|
}
|
|
125
155
|
|
|
126
156
|
await Promise.all(cleanupPromises);
|
|
127
|
-
|
|
157
|
+
|
|
158
|
+
// Only stop smartai if we created it (don't stop external instances)
|
|
159
|
+
if (this.ownsSmartAi) {
|
|
160
|
+
await this.smartai.stop();
|
|
161
|
+
}
|
|
162
|
+
|
|
128
163
|
this.isRunning = false;
|
|
129
|
-
this.driver
|
|
164
|
+
if (this.driver) {
|
|
165
|
+
this.driver.reset();
|
|
166
|
+
}
|
|
130
167
|
}
|
|
131
168
|
|
|
132
169
|
/**
|
|
@@ -8,6 +8,8 @@ import * as plugins from './plugins.js';
|
|
|
8
8
|
* Configuration options for the DualAgentOrchestrator
|
|
9
9
|
*/
|
|
10
10
|
export interface IDualAgentOptions extends plugins.smartai.ISmartAiOptions {
|
|
11
|
+
/** Existing SmartAi instance to reuse (avoids creating duplicate providers) */
|
|
12
|
+
smartAiInstance?: plugins.smartai.SmartAi;
|
|
11
13
|
/** Name of the agent system */
|
|
12
14
|
name?: string;
|
|
13
15
|
/** Default AI provider for both Driver and Guardian */
|
|
@@ -2,6 +2,14 @@ import * as plugins from './plugins.js';
|
|
|
2
2
|
import * as interfaces from './smartagent.interfaces.js';
|
|
3
3
|
import { BaseToolWrapper } from './smartagent.tools.base.js';
|
|
4
4
|
|
|
5
|
+
/**
|
|
6
|
+
* Options for FilesystemTool
|
|
7
|
+
*/
|
|
8
|
+
export interface IFilesystemToolOptions {
|
|
9
|
+
/** Base path to scope all operations to. If set, all paths must be within this directory. */
|
|
10
|
+
basePath?: string;
|
|
11
|
+
}
|
|
12
|
+
|
|
5
13
|
/**
|
|
6
14
|
* Filesystem tool for file and directory operations
|
|
7
15
|
* Wraps @push.rocks/smartfs
|
|
@@ -10,6 +18,31 @@ export class FilesystemTool extends BaseToolWrapper {
|
|
|
10
18
|
public name = 'filesystem';
|
|
11
19
|
public description = 'Read, write, list, and delete files and directories';
|
|
12
20
|
|
|
21
|
+
/** Base path to scope all operations to */
|
|
22
|
+
private basePath?: string;
|
|
23
|
+
|
|
24
|
+
constructor(options?: IFilesystemToolOptions) {
|
|
25
|
+
super();
|
|
26
|
+
if (options?.basePath) {
|
|
27
|
+
this.basePath = plugins.path.resolve(options.basePath);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Validate that a path is within the allowed base path
|
|
33
|
+
* @throws Error if path is outside allowed directory
|
|
34
|
+
*/
|
|
35
|
+
private validatePath(pathArg: string): string {
|
|
36
|
+
const resolved = plugins.path.resolve(pathArg);
|
|
37
|
+
if (this.basePath) {
|
|
38
|
+
// Ensure the resolved path starts with the base path
|
|
39
|
+
if (!resolved.startsWith(this.basePath + plugins.path.sep) && resolved !== this.basePath) {
|
|
40
|
+
throw new Error(`Access denied: path "${pathArg}" is outside allowed directory "${this.basePath}"`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return resolved;
|
|
44
|
+
}
|
|
45
|
+
|
|
13
46
|
public actions: interfaces.IToolAction[] = [
|
|
14
47
|
{
|
|
15
48
|
name: 'read',
|
|
@@ -172,9 +205,10 @@ export class FilesystemTool extends BaseToolWrapper {
|
|
|
172
205
|
try {
|
|
173
206
|
switch (action) {
|
|
174
207
|
case 'read': {
|
|
208
|
+
const validatedPath = this.validatePath(params.path as string);
|
|
175
209
|
const encoding = (params.encoding as string) || 'utf8';
|
|
176
210
|
const content = await this.smartfs
|
|
177
|
-
.file(
|
|
211
|
+
.file(validatedPath)
|
|
178
212
|
.encoding(encoding as 'utf8' | 'binary' | 'base64')
|
|
179
213
|
.read();
|
|
180
214
|
return {
|
|
@@ -188,9 +222,10 @@ export class FilesystemTool extends BaseToolWrapper {
|
|
|
188
222
|
}
|
|
189
223
|
|
|
190
224
|
case 'write': {
|
|
225
|
+
const validatedPath = this.validatePath(params.path as string);
|
|
191
226
|
const encoding = (params.encoding as string) || 'utf8';
|
|
192
227
|
await this.smartfs
|
|
193
|
-
.file(
|
|
228
|
+
.file(validatedPath)
|
|
194
229
|
.encoding(encoding as 'utf8' | 'binary' | 'base64')
|
|
195
230
|
.write(params.content as string);
|
|
196
231
|
return {
|
|
@@ -204,7 +239,8 @@ export class FilesystemTool extends BaseToolWrapper {
|
|
|
204
239
|
}
|
|
205
240
|
|
|
206
241
|
case 'append': {
|
|
207
|
-
|
|
242
|
+
const validatedPath = this.validatePath(params.path as string);
|
|
243
|
+
await this.smartfs.file(validatedPath).append(params.content as string);
|
|
208
244
|
return {
|
|
209
245
|
success: true,
|
|
210
246
|
result: {
|
|
@@ -215,7 +251,8 @@ export class FilesystemTool extends BaseToolWrapper {
|
|
|
215
251
|
}
|
|
216
252
|
|
|
217
253
|
case 'list': {
|
|
218
|
-
|
|
254
|
+
const validatedPath = this.validatePath(params.path as string);
|
|
255
|
+
let dir = this.smartfs.directory(validatedPath);
|
|
219
256
|
if (params.recursive) {
|
|
220
257
|
dir = dir.recursive();
|
|
221
258
|
}
|
|
@@ -234,33 +271,34 @@ export class FilesystemTool extends BaseToolWrapper {
|
|
|
234
271
|
}
|
|
235
272
|
|
|
236
273
|
case 'delete': {
|
|
237
|
-
const
|
|
274
|
+
const validatedPath = this.validatePath(params.path as string);
|
|
238
275
|
// Check if it's a directory or file
|
|
239
|
-
const exists = await this.smartfs.file(
|
|
276
|
+
const exists = await this.smartfs.file(validatedPath).exists();
|
|
240
277
|
if (exists) {
|
|
241
278
|
// Try to get stats to check if it's a directory
|
|
242
279
|
try {
|
|
243
|
-
const stats = await this.smartfs.file(
|
|
280
|
+
const stats = await this.smartfs.file(validatedPath).stat();
|
|
244
281
|
if (stats.isDirectory && params.recursive) {
|
|
245
|
-
await this.smartfs.directory(
|
|
282
|
+
await this.smartfs.directory(validatedPath).recursive().delete();
|
|
246
283
|
} else {
|
|
247
|
-
await this.smartfs.file(
|
|
284
|
+
await this.smartfs.file(validatedPath).delete();
|
|
248
285
|
}
|
|
249
286
|
} catch {
|
|
250
|
-
await this.smartfs.file(
|
|
287
|
+
await this.smartfs.file(validatedPath).delete();
|
|
251
288
|
}
|
|
252
289
|
}
|
|
253
290
|
return {
|
|
254
291
|
success: true,
|
|
255
292
|
result: {
|
|
256
|
-
path,
|
|
293
|
+
path: params.path,
|
|
257
294
|
deleted: true,
|
|
258
295
|
},
|
|
259
296
|
};
|
|
260
297
|
}
|
|
261
298
|
|
|
262
299
|
case 'exists': {
|
|
263
|
-
const
|
|
300
|
+
const validatedPath = this.validatePath(params.path as string);
|
|
301
|
+
const exists = await this.smartfs.file(validatedPath).exists();
|
|
264
302
|
return {
|
|
265
303
|
success: true,
|
|
266
304
|
result: {
|
|
@@ -271,7 +309,8 @@ export class FilesystemTool extends BaseToolWrapper {
|
|
|
271
309
|
}
|
|
272
310
|
|
|
273
311
|
case 'stat': {
|
|
274
|
-
const
|
|
312
|
+
const validatedPath = this.validatePath(params.path as string);
|
|
313
|
+
const stats = await this.smartfs.file(validatedPath).stat();
|
|
275
314
|
return {
|
|
276
315
|
success: true,
|
|
277
316
|
result: {
|
|
@@ -282,7 +321,9 @@ export class FilesystemTool extends BaseToolWrapper {
|
|
|
282
321
|
}
|
|
283
322
|
|
|
284
323
|
case 'copy': {
|
|
285
|
-
|
|
324
|
+
const validatedSource = this.validatePath(params.source as string);
|
|
325
|
+
const validatedDest = this.validatePath(params.destination as string);
|
|
326
|
+
await this.smartfs.file(validatedSource).copy(validatedDest);
|
|
286
327
|
return {
|
|
287
328
|
success: true,
|
|
288
329
|
result: {
|
|
@@ -294,7 +335,9 @@ export class FilesystemTool extends BaseToolWrapper {
|
|
|
294
335
|
}
|
|
295
336
|
|
|
296
337
|
case 'move': {
|
|
297
|
-
|
|
338
|
+
const validatedSource = this.validatePath(params.source as string);
|
|
339
|
+
const validatedDest = this.validatePath(params.destination as string);
|
|
340
|
+
await this.smartfs.file(validatedSource).move(validatedDest);
|
|
298
341
|
return {
|
|
299
342
|
success: true,
|
|
300
343
|
result: {
|
|
@@ -306,7 +349,8 @@ export class FilesystemTool extends BaseToolWrapper {
|
|
|
306
349
|
}
|
|
307
350
|
|
|
308
351
|
case 'mkdir': {
|
|
309
|
-
|
|
352
|
+
const validatedPath = this.validatePath(params.path as string);
|
|
353
|
+
let dir = this.smartfs.directory(validatedPath);
|
|
310
354
|
if (params.recursive !== false) {
|
|
311
355
|
dir = dir.recursive();
|
|
312
356
|
}
|